基于3G上网的Modbus协议转换系统的制作方法

文档序号:7806924阅读:238来源:国知局
专利名称:基于3G上网的Modbus协议转换系统的制作方法
技术领域
本发明涉及网络技术领域的协议转换系统,是一种Modbus协议转换系统。
背景技术
远程监控系统存在一个基础问题,就是现场总线和以太网的互联。2003年4月, IEC61158 Ed. 3现场总线标准第3版正式成为国际标准,规定10种类型的现场总线。目前现场总线种类繁多,标准不一,因此在和以太网互联的时候,首先遇到的就是协议转换的问题。施耐德公司发明的Modbus协议是一种在工业领域被广为应用的网络通信协议,它已经成为了一种通用标准。通过此协议,服务器与协议转换装置之间经由网络可以进行通信。
经对现有文献的检索,查找到中国专利申请号200910310034. X,名称为“M0DBUS 工业现场总线与无线ZIGBEE间的协议转换装置及方法”。该技术提供了有线Modbus数据和无线Zigbee数据间的转换装置和方法。而ZigBee是一种低传输速率的近距离无线组网通讯技术。同时查找到台湾Moxa公司的MGate MB3000标准产品系列,整合了 Modbus TCP 和RTU/ASCII网络,能完成Modbus TCP和Modbus RTU/ASCII协议之间的转换,但该产品的网络技术也是基于以太网。虽然Modbus协议转换相关的文献和产品已经有出现,但在已公布的专利、文献和已售产品中尚未有涉及基于3G无线网络的Modbus协议转换装置。
目前国内3G技术已经日益成熟,采取3G网络能够支持不同的数据传输速度,满足室内、室外各种不同的工作环境,特别是移动环境或有线接入不便的场合。3G网络最大的优势就是免去或减少了网络布线的工作量。
现阶段3G网络比有线网络更易受环境的影响,更容易出现掉线、断网等影响正常工作的情况。发明内容
为了克服现有3G网络存在上网不稳定、网络正常接入率较低的不足,本发明采用基于3G上网的Modbus协议转换系统,有效保证Modbus协议转换时保证数据传输的正确性和透明性,上网稳定性良好、有效提高协议转换装置的网络正常接入率。
本发明解决其技术问题所采用的技术方案是
一种基于3G上网的Modbus协议转换系统,包括服务器、协议转换装置与数据采集设备,服务器和协议转换装置之间的通信通过3G网络交互,协议转换装置与数据采集设备之间通过RS485连接,采用串口通信,协议转换装置与服务器间的数据通信采用Modbus TCP协议,协议转换装置与数据采集设备间的数据通信采用Modbus RTU协议;所述协议转换装置中由脚本实现3G拨号上网,在每次连接服务器前检测pppO接口,能快速检测到pppO 接口的非正常断开并自动重连。
进一步,所述脚本实现3G拨号上网的过程为脚本在检测到pppO设备存在后获取动态IP,再Ping服务器,成功即代表网络正常工作,每隔固定时间段再重新检测,持续循环;如果检测PPPO失败或ping服务器失败,都杀死可能存在的pppd进程,再重启3G模块重新PPPd拨号,进入拨号循环;如果网络异常断开,协议转换装置就能自动检测,并自动重拨。
再进一步,在采用状态转移图后,由Socket通信模块实现Modbus TCP协议, Modbus RTU协议由串口通信模块实现,两者共同完成Modbus协议透明传输。
更进一步,控制检测网络状态的过程为在创建Socket客户端之后,调用ioctlO 检测pppO接口状态,若检测到pppO接口正常,调用bind ()绑定到pppO接口,检测不到pppO 接口,就再次检测,直到检测到能正常工作的PPPO接口。
采用状态转移图的过程为从配置文件中获配置,然后再创建Socket客户端,并开启保活机制和检测网络状态;之后与服务器建立连接、发送注册包;检测是否有数据到来,若检测到有数据,则接收服务器发送的命令,创建数据处理线程处理数据;若定时到,则发送心跳包;若检测到网络异常断开,则关闭Socket和临时线程,重新创建Socket客户端, 并与服务器建立连接;其他情况,则继续等待。
Modbus协议透明传输的过程为协议转换装置对接收到的Modbus数据不进行协议解析,只需要简单的在接收数据时去除报文头、在发送数据时再加上报文头即可,实现了透明传输,使得程序更为简单,并且降低了差错率。
本发明的技术构思为本发明的网络工作环境是在3G条件下,采用TCP套接口技术(Socket通信协议)、Modbus/Modbus TCP协议及串口通信协议,实现服务器、协议转换装置与数据采集设备三者间的通信。
针对3G拨号容易受环境影响出现断网、掉线等问题,作出来了下列几点改进措施
(I)拨号上网ppp自动检测网络,当断网或者ping不通时自动重拨,用脚本完成。
(2)保证Socket通信可靠性
(a)在socketO函数创建套接字后及bind ()函数绑定之前,调用ioctlO函数检测拨号网络PPPO接口是否存在;
(b)调用connect ()函数与服务器连接,当服务器处于繁忙时,多次重连;
(c)设置setsockopt ()函数的keepalive激活机制和定时发送心跳包联合机制, 保证与服务器激活连接;
(d)采用selectO函数查询机制,从recv ()函数读取报文之前判断服务器主动断开/异常断开/正常报文;如果出现异常,则用close ()函数关闭套接字,再次启动新一轮与服务器重连过程;
(e)采用状态转移图2编程,简单可靠。
(3)分析了 Modbus协议与Modbus TCP协议之间的关系之后,采用透明传输的方式。
软件实现步骤为在协议转换装置成功注册登陆到服务器后,服务器将指令以 Modbus TCP协议规定的格式转译后下发到协议转换装置;协议转换装置将接收到的指令, 依据和服务器相同的转译协议转换为Modbus RTU协议规定格式的数据,再通过RS485接口发送给多个数据采集设备;数据采集设备将响应数据以Modbus协议规定格式上传给协议转换装置;协议转换装置将接收到的数据响应转换为Modbus TCP协议格式发回给服务器。 软件实现流程图为图3。
3G脚本拨号流程图为图4,协议转换装置对数据进行处理的流程图为图5,协议转换装置与数据采集设备的RS485通信流程图为图6。
本发明的有益效果主要表现在实现了透明传输,协议转换装置能快速检测到3G 网络的非正常断开并自动重连,保证监控系统的稳定持久运行;上网稳定性良好、有效提高协议转换装置的网络正常接入率。







图I是总体硬件架构框架。2是Socket通彳目状态转移图。3是软件实现流程图。4是3G脚本拨号流程图。5是数据处理线程的流程图如图。6是Modbus RTU的RS485通信流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
参照图I 图5,一种基于3G上网的Modbus协议转换系统,包括服务器、协议转换装置与数据采集设备,服务器和协议转换装置之间的通信通过3G网络交互,协议转换装置与数据采集设备之间通过RS485连接,采用串口通信,协议转换装置与服务器间的数据通信采用Modbus TCP协议,协议转换装置与数据采集设备间的数据通信采用Modbus RTU协议;所述协议转换装置中由脚本实现3G拨号上网,在每次连接服务器前检测pppO接口,能快速检测到PPPO接口的非正常断开并自动重连。
依据附图I搭建工作环境。网络选择3G网络,实现了无线通信,能更好的适应不同环境。
对措施⑴的详细说明3G网络采用ppp脚本拨号,实现拨号检测和自动重拨。协议转换装置工作在一个3G模块的环境下,拨号成功后生成一个名称为pppO的网络接口。如图4的3G脚本拨号流程图所示,3G脚本首先检测pppO网络接口,在检测到pppO网络接口存在后再获取IP。为了确保协议转换装置与服务器网络是正常连通的,脚本需再次Ping服务器。正常连接之后,协议转换装置每隔固定时间重新检测和Ping服务器,持续循环。如果检测不到PPPO设备或者ping服务器失败时,脚本杀死所有存在的pppd进程,再重启3G 模块,重新PPPd拨号,进入拨号循环。如果网络异常断开,协议转换装置就能自动检测,并自动重拨。
对措施(2)的详细说明协议转换装置与服务器间采用Socket通信。协议转换装置首先从配置文件中获取服务器IP及端口号、然后调用socketO函数创建Socket客户端、并开启TCP保活机制。在创建Socket客户端之后,调用ioctlO函数检测PPPO接口状态,若检测到PPPO接口正常,调用bind ()函数绑定到pppO接口,检测不到pppO接口,就再次检测,直到检测到能正常工作的pppO接口。在检测pppO接口完成之后,调用connectO 函数与服务器建立连接、发送注册包。调用selectO函数检测是否有数据到来,若检测到有数据,则调用recvO函数接收服务器发送的命令,创建数据处理线程处理数据;若定时到,则发送心跳包;若检测到网络异常断开,则关闭Socket和数据处理线程,重新创建 Socket客户端,并与服务器建立连接;其他情况,则继续等待。开启如图5所示的数据处理线程把服务器下发的数据转发至采集器、并读取采集器的响应,若成功则返回等待接收数据状态;若sendO函数发送失败,则调用closeO函数关闭Socket、关闭数据处理线程,重新创建Socket客户端,并与服务器建立连接。如图2所示为整个状态转移图,根据状态转移图进行编程,思路清晰,简单可靠。
协议转换装置可以挂载多个数据采集器,与采集器之间采用半双工RS485,由 GPIO来控制收发。Modbus RTU的RS485通信首先初始化GPIO和RS485接口,对接收到的数据计算CRC校验码并加至数据末尾,调用write ()函数将加上CRC校验码的数据写入RS485 接口,调用read()函数读取数据采集设备的响应。调用closeO函数关闭RS485接口和 GPI0。Modbus RTU的RS485接口通信流程图如图6所示。
对措施(3)的详细说明协议转换装置对接收到的数据不进行协议解析,只需要简单的在接收数据时去除报文头、在发送数据时加上报文头即可,实现了透明传输,使得程序更为简单,并且降低了差错率。
本发明基于Modbus协议,协议转换装置能主动与服务器建立连接,同时在网络异常断开之后,协议转换装置能自动检测并重连,保证数据稳定传输与交互。由于使用了 3G 网络,因此能在更多的环境下得到使用。本发明实现了在协议转换时,保证3G网络稳定、可靠的工作,Modbus协议转换数据实现透明化传输。
权利要求
1.一种基于3G上网的Modbus协议转换系统,其特征在于包括服务器、协议转换装置与数据采集设备,服务器和协议转换装置之间的通信通过3G网络交互,协议转换装置与数据采集设备之间通过RS485连接,采用串口通信,协议转换装置与服务器间的数据通信采用Modbus TCP协议,协议转换装置与数据采集设备间的数据通信采用Modbus RTU协议;所述协议转换装置中由脚本实现3G拨号上网,在每次连接服务器前检测pppO接口,能快速检测到PPPO接口的非正常断开并自动重连。
2.根据权利要求I所述的基于3G上网的Modbus协议转换系统,其特征在于脚本实现3G拨号上网是脚本在检测到pppO设备存在后获取动态IP,再ping服务器,成功即代表网络正常工作,每隔固定时间段再重新检测,持续循环;如果检测PPPO失败或ping服务器失败,都杀死可能存在的PPPd进程,再重启3G模块重新pppd拨号,进入拨号循环;如果网络异常断开,协议转换装置就能自动检测,并自动重拨。
3.根据权利要求I或2所述的基于3G上网的Modbus协议转换系统,其特征在于在采用状态转移图后,由Socket通信模块实现Modbus TCP协议,Modbus RTU协议由串口通信模块实现,两者共同完成Modbus协议透明传输。
4.如权利要求3所述的基于3G上网的Modbus协议转换系统,其特征在于控制检测网络状态的过程为在创建Socket客户端之后,调用ioctlO检测pppO接口状态,若检测到pppO接口正常,调用bind()绑定到pppO接口,检测不到pppO接口,就再次检测,直到检测到能正常工作的PPPO接口。
5.根据权利要求3所述的基于3G上网的Modbus协议转换系统,其特征在于采用状态转移图的过程为从配置文件中获配置,然后再创建Socket客户端,并开启保活机制和检测网络状态;之后与服务器建立连接、发送注册包。检测是否有数据到来,若检测到有数据, 则接收服务器发送的命令,创建数据处理线程处理数据;若定时到,则发送心跳包;若检测到网络异常断开,则关闭Socket和临时线程,重新创建Socket客户端,并与服务器建立连接;其他情况,则继续等待。
6.根据权利要求3所述的基于3G上网的Modbus协议转换系统,其特征在于=Modbus 协议透明传输的过程为协议转换装置对接收到的Modbus数据不进行协议解析,只需要在接收数据时去除报文头、在发送数据时再加上报文头即可实现透明传输。
全文摘要
一种基于3G上网的Modbus协议转换装置,是属于网络技术领域的协议转换装置。针对3G拨号上网不稳定的问题,保证Modbus协议转换时保证数据传输的正确性和透明性,本发明采用基于3G上网的Modbus协议转换装置。硬件架构需求远程服务器,协议转换装置和数据采集设备。3G脚本完成拨号上网PPP自动检测网络,当断网或者Ping不通时自动重拨。协议转换装置与服务器间的数据通信采用Modbus TCP协议,协议转换装置与数据采集设备间的数据通信采用Modbus RTU协议。数据传输实现了透明传输,并且协议转换装置能快速检测到网络的非正常断开并自动重连,保证稳定持久运行,能在更多的环境下得到使用。
文档编号H04W80/04GK102546619SQ20111045173
公开日2012年7月4日 申请日期2011年12月29日 优先权日2011年12月29日
发明者孟利民, 宋文好, 彭宏, 徐志江, 李晶 申请人:杭州普诺科技有限公司, 浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1