一种实现不同modulebus协议的外置设备与服务器交互的方法

文档序号:8265784阅读:1526来源:国知局
一种实现不同modulebus协议的外置设备与服务器交互的方法
【技术领域】
[0001]本发明涉及通信传输技术领域,尤其涉及一种实现不同MODULEBUS协议的外置设备与服务器交互的方法。
【背景技术】
[0002]现在有的通信设备单纯的将串口、网口等相接的外置设备的通信数据传输到服务器或将服务器上面的数据传输到外置设备中。有的通信或控制或采集设备本身支持MODULEBUS (电气/光纤通信线)协议,便单纯的设备与服务器进行数据交互。
[0003]一个系统中,一个区域内可能用的多个外置设备,而多个外置设备可能无法与服务器上面MODULEBUS协议相兼容,于是通信就产生的困难。现有的方法只能是服务器支持下端外置设备或外置设备统一的一种协议并去支持服务器,这样通用性相对较差。
[0004]现有的设备本身支持MODULEBUS的情况下,基本上都不能很多的支持外置的设备接入,当一个区域内需要外置的接入时就需要另一个通信设备,这种做法相对浪费也不利于管理。

【发明内容】

[0005]本发明要解决的技术问题,在于提供一种实现不同MODULEBUS协议的外置设备与服务器交互的方法,能支持外置设备的MODULEBUS与服务器的MODULEBUS之间的转换,可以解决不同的MODULEBUS协议的设备接入服务器的问题。
[0006]本发明是这样实现的:一种实现不同MODULEBUS协议的外置设备与服务器交互的方法,包括如下步骤:
步骤1、将不同MODULEBUS协议的外置设备与通信设备连接,所述通信设备与服务器进行无线或有线连接;
步骤2、服务器接收通信设备传输的数据,并解析检测接收数据是否合法;否,则丢弃;是,则判断数据中的设备编号和寄存器地址是否与通信设备本身设置的一致;否,则将数据转换到外置设备相应的协议报文,发送给外置设备;进入步骤3 ;是,则对数据请求进行处理,完成后给服务器发送处理回应数据并结束流程;
步骤3、当向外置设备发送转换后的协议报文的数据后等待外置设备回应;若在预设时间内未收到外置设备回应时,则产生异常回应的数据包发送到服务器上;若有接收到外置设备数据后,对数据进行解析,检查合法性;若合法,则将数据转成服务器上的相应协议的数据,并发送给服务器;若不合法,则丢弃数据,继续等待直到到达超时时间,产生异常回应数据包发送到服务器上。
[0007]进一步地,所述将数据转换到外置设备相应的协议报文,具体为:
1、服务器为MODULEBUS-RTU协议,外置设备为MODULEBUS-RTU协议;
将收到服务器的MODULEBUS-RTU协议时,解析数据,RTU协议的数据格式为:地址域+功能码+数据体+CRC ;
首先判断CRC是否正常,异常则丢弃,解析出地址域、功能码和数据中的寄存器地址和相对应的值;
判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;
若需要向外置设备发送数据,则将地址域、功能码和需要下发的寄存器组成新的RTU数据包,并生成CRC校验,并将地址域、功能码和下发的寄存器地址保存起来,用于回应数据的判断和检验;
2、服务器为MODULEBUS-ASCII协议,外置设备为MODULEBUS-RTU协议;
将收到服务器的MODULEBUS-ASCII协议的时,解析数据;ASCII协议的数据格式为:起始符+地址域+功能码+数据体+LRC+结束符;
首先判断LRC是否正常,异常则丢弃,解析出地址域、功能码和数据中的寄存器地址和相对应的值;
判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;
RTU协议的数据格式为:地址域+功能码+数据体+CRC ;
若需要向外置设备发送数据,则将ASCII的地址域、功能码和需要下发的寄存器组成填充到RTU的地址域、功能码和数据体中形成数据包,并生成CRC校验;并将地址域、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
3、服务器为MODULEBUS-TCP/IP协议,外置设备为MODULEBUS-RTU协议;
将收到服务器的MODULEBUS-TCP/IP协议的时,解析数据;TCP/IP协议的数据格式为:MBAP报文头+功能码+数据体;所述MBAP报文头包括:事务元标识符、协议标识符、长度、单元标识符;
首先判断MBAP报文头中的长度与整包数据的长度是否相一致,异常则丢弃,解析MBAP报文头、功能码和数据中的寄存器地址和相对应的值;
判断MBAP报文头中的单元标识符是否与本设备地址相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;
RTU协议的数据格式为:地址域+功能码+数据体+CRC ;
若需要向外置设备发送数据,则将TCP/IP协议中的单元标识符、功能码和需要下发的寄存器组成填充到RTU的地址域、功能码和数据体中形成数据包,并生成CRC校验;并将MBAP报文头、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文; 4、服务器为MODULEBUS-RTU协议,外置设备为MODULEBUS-ASCII协议;
将收到服务器的MODULEBUS-RTU协议的时,解析数据;RTU协议的数据格式为:地址域+功能码+数据体+CRC ;
首先判断CRC是否正常,异常则丢弃;解析出地址域、功能码和数据中的寄存器地址和相对应的值;
判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据体中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;ASCII协议的数据格式为:起始符+地址域+功能码+数据+LRC+结束符;
若需要向外置设备发送数据,则将地址域、功能码和需要下发的寄存器填充到ASCII协议的地址域、功能码和数据体中,形成ASCII协议数据包,并生成LRC校验;并将地址域、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
5、服务器为MODULEBUS-ASCII协议,外置设备为MODULEBUS-ASCII协议;
将收到服务器的MODULEBUS-ASCII协议的时,解析数据;ASCII协议的数据格式为:起始符+地址域+功能码+数据体+LRC+结束符;
首先判断LRC是否正常,异常则丢弃;解析出地址域、功能码和数据中的寄存器地址和相对应的值;
判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据体中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;若需要向外置设备发送数据,则将ASCII的地址域、功能码和需要下发的寄存器组成填充到ASCII的地址域、功能码和数据体中形成数据包,并生成LRC校验;并将地址域、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
6、服务器为MODULEBUS-TCP/IP协议,外置设备为MODULEBUS-ASCII协议;
将收到服务器的MODULEBUS-TCP/IP协议的时,解析数据;TCP/IP协议的数据格式为:MBAP报文头+功能码+数据体;所述MBAP报文头包括:事务元标识符、协议标识符、长度、单元标识符;
首先判断MBAP报文头中的长度与整包数据的长度是否相一致,异常则丢弃;解析MBAP报文头、功能码和数据中的寄存器地址和相对应的值;
判断MBAP报文头中的单元标识符是否与本设备地址相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据体中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;
ASCII协议的数据格式为:起始符+地址域+功能码+数据体+LRC+结束符;
若需要向外置设备发送数据,则将TCP/IP协议中的单元标识符、功能码和需要下发的寄存器组成填充到ASCII协议的的地址域、功能码和数据体中形成数据包,并生成LRC校验;并将MBAP报文头、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
7、服务器为MODULEBUS-RTU协议,外置设备为MODULEBUS-TCP/IP协议;
将收到服务器的MODULEBUS-RTU协议的时,解析数据;RTU协议的数据格式为:地址域+功能码+数据+CRC ;
首先判断CRC是否正常,异常则丢弃;解析出地址域、功能码和数据中的寄存器地址和相对应的值;
判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据体中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;TCP/IP协议的数据格式为:MBAP报文头+功能码+数据体;所述MBAP报文头包括:事务元标识符、协议标识符、长度、单元标识符;
若需要向外置设备发送数据,则将地址域、功能码和需要下发的寄存器填充到TCP/IP协议的单元标识符、功能码和数据体,并自动填充事务元标识符、协议标识符和长度,组成新的TCP/IP数据包;并将MBAP报文头、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
8、服务器为MODULEBUS-ASCII协议,外置设备为MODULEBUS-TCP/IP协议;
将收到服务器的MODULEBUS-ASCII协议的时,解析数据;ASCII协议的数据格式为:起始符+地址域+功能码+数据体+LRC+结束符;
首先判断LRC是否正常,异常则丢弃;解析出地址域、功能码和数据中的寄存器地址和相对应的值;
先判断地址域是否与本设备相对应?不一致,则是外置设备的数据包;若一致,再判断功能码是否是设备本身支持的功能码?不支持,则是外置设备的数据包;若一致,则判断数据体中的各个寄存器地址是否都是本设备使用的寄存器?是,则对该寄存器进行相应的操作并将结果组成回应报文;若有不符合的寄存器,则该寄存器的操作是外置设备的操作;TCP/IP协议的数据格式为:MBAP报文头+功能码+数据体;所述MBAP报文头包括:事务元标识符、协议标识符、长度、单元标识符;
若需要向外置设备发送数据,则将地址域、功能码和需要下发的寄存器填充到TCP/IP协议的单元标识符、功能码和数据体,并自动填充事务元标识符、协议标识符和长度,组成新的TCP/IP数据包;并将MBAP报文头、功能码和下发的寄存器地址保存起来,用于回应数据的判断、检验和转换回应报文;
9、服务器为MODULEBUS-TCP/IP协议
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1