一种广域数据采集的通信处理方法

文档序号:7740355阅读:170来源:国知局
专利名称:一种广域数据采集的通信处理方法
技术领域
本发明涉及一种应用于广域数据采集系统,基于GPRS/CDMA与RS232/485的通信 处理方法。
背景技术
目前成熟的广域数据采集系统的前端采集设备多采用专用的GPRS/CMDA拨号连 设备GPRS/CDMA Modem及前端数据采集终端RTU配合使用的方式实现数据采集与监控功 能。系统在数据传输的过程中,一般采用透明传输的方式,即Modem不进行任何数据处理, 将任何接收到的应用层数据原样转发,完全依赖于前端数据采集终端RTU提供的数据通信 功能。由于专用的GPRS/CDMA Modem采用透明传输方式,对于采用TCP/IP协议的通信链 路保活(ke印alive)检测需要数据采集终端RTU与远程监控终端配合完成,Modem不参与 检测,因此保活检测不具有透明性,即通信保活功能的实现需要modem、数据采集终端RTU 和远程监控终端共同协商保活的工作方式和数据格式才能实现。对于RTU,需要重新修改通 信机制和数据格式,定时发送保活数据检测TCP链路的状态,增加了通信的复杂性。通过RTU主动发送保活数据的保活命令帧结构为见图6,远程监控终端回复的保活ACK帧结构为见图7,保活命令的TCP数据区域长度为len,因此,通过RTU主动发送数据的保活方法数 据流量大,提高了 TCP链路维持的通信费用。通常前端采集设备的功能一般设计为面向实时高可靠的现场总线,对于广域监控 系统采用的GPRS/CDMA无线网络,高速的数据采集可以在一定程度上提高数据采集的实时 性,但与之相随的是高昂的数据通信费用和通信可靠性的限制。因此需要RTU特别提供主 动上传功能,但是对于大多数支持工业总线通信协议的RTU,基本不具备事件发生时的主 动上传功能,因此直接采用透明传输Modem的方式很难支持广域数据采集系统的应用,尤 其是大规模的监控系统。

发明内容
本发明的目的就是针对上述广域数据采集系统现有Modem和RTU通信处理方式的 不足,提出一种广域数据采集的通信处理方法,使保活检测具有透明性,节省通信费用,同 时具备事件主动上传的功能。为实现上述目的,本发明提供一种广域数据采集的通信处理方法,该方法包括下 列步骤1)在微处理器MCU通过串行接口控制Modem拨号,通过GPRS/CDMA正确的连接到 Internet或移动运营商提供的专用网络后,由MCU主发起TCP Client连接请求,连接目标为指定的连接到网络的远程监控终端,该监控终端具有运行时刻固定的IP地址和端口号;2)如果成功连接到远程监控终端,即在MCU与远程监控终端之间建立了一条TCP 连接通道,远程监控终端为TCP Server,MCU为TCPClient,并行执行多任务,该多任务包括 TCP链路保活检测任务和接受远程监控任务,否则,返回步骤1)。其中TCP链路保活检测任务包括下列步骤2A1)微处理器MCU定时主动发出保活命令,检测TCP链路的连接情况;2A2)如果远程监控终端没有及时回复保活应答ACK,MCU会重复尝试多次,重复 尝试多次后,远程监控终端均没有回复保活应答,则TCP链路出现问题,MCU控制Modem关 闭,切断GPRS/CDMA通信,并在延时一段时间后回到步骤1),若远程监控终端回复保活应答 ACK, TCP通信链路正常,则返回步骤2A1)。MCU主动发出的TCP保活帧结构为见图8,远程监控终端回复的保活应答ACK帧结构为见图9,MCU主动发出的保活命令采用TCP协议基本的数据区域长度为零的TCP保活命令。上述多任务还包括事件检测主动上传任务。上述接受远程监控任务包括下列步骤2B1)微处理器MCU检测远程监控命令;2B2)检测到有远程监控命令,则接受远程监控终端发送准Modbus/TCP协议规 定的数据包,准Modbus/Tcp协议定义,作为Modbus/TCP Slave端的MCU作为TCP连接 的Client,作为Modbus/TCP Master端的远程监控终端作为TCP连接的Server,同时准 Modbus/TCP协议还定义了 MCU发送的主动上传命令帧格式,MCU在接收到远程监控终端 发送的标准Modbus/TCP数据读写命令时,MCU实现Modbus/TCP与Modbus RTU协议之间 的转换,MCU将通过TCP接口接收到的Modbus/TCP数据帧,通过协议转换处理,转换成标 准Modbua RTU数据帧格式并转发到与MCU串行接口连接的RTU设备上,同时对于本次MCU 转发到RTU设备的modbusRTU数据帧的回复帧,也通过MCU的协议转换处理转换成标准 Modbus/TCP,通过TCP链路发送到远程监控终端,完成本次的协议转换处理过程,返回步骤 2B1)。没有检测到有远程监控命令,MCU产生Iteport ID的主动上传信息,返回步骤 2B1)。Iteport ID命令格包含一个具有整个系统唯一的ID号,该ID号与当前发送IteportID 命令的MCU —一对应,通过ID号远程监控终端可以识别系统中的MCU ;上述事件检测主动上传任务包括下列步骤2C1)在远程监控终端通过MCU协议转换读写RTU设备信息的空闲期间,MCU主动 快速地通过与RTU连接的串行接口检测接口上的RTU设备是否具有事件标志;2C2) 一旦发现其中一个RTU设备产生了事件,MCU立即生成事件主动上传命令, 并且读取RTU设备中的事件内容,经协议转换处理,通过TCP链路将主动上传命令帧发送到 远程监控终端,完成远程监控终端事件内容的快速更新,返回步骤2C1);若没有发现有事 件,则直接返回步骤2C1)。上述MCU发送的modbus TCP主动上传命令帧格式为
5
见图10,Transaction ID 远程监控终端生成,MCU原样复制;Always ZERO 总是零,表明是 modbus/TCP 协议;Byte Count 表明在此之后的数据字节数;Slave address :RTU 的 ID 号,内容可以是 1 254 ;Fouction 主动上传命令号;Starting Address 上传寄存器起始地址高字节和低字节;No. of Points 上传寄存器个数高字节和低字节;ByteCount :Data 的;Data...数据。由于本发明通信处理方法采用的保活命令,TCP数据区域长度为零,因此该方法 的保活数据总长度总是比现有通过RTU主动发送数据的保活方法数据流量要小。因目前 一般GPRS/CDMA都是根据流量收费的,故能够节省通信费用。同时,对于远程监控终端TCP Server端,不需要对本发明保活TCP命令中的数据进行应用层的解释,保活在MCU将命令发 出后由TCP Server端接收到该命令回复后自动实现,对于远程监控终端透明,远程监控终 端TCP Server端不需要做任何处理,从而,使保活检测具有透明性。本发明的通信处理方法能够将RTU连接到远程监控终端,使远程监控终端能够监 视其采集的数据,同时还能够通过透明的保活功能维持TCP链路连接的可靠性。对于广域的监控,不可以快速地按照秒级的速度不停地快速获取RTU数据,否则 通信的流量会很大。本发明在不能快速获取RTU数据的情况下,通过事件检测主动上传任 务,在发现问题的第一时间主动报告给远程监控终端,使远程监控终端及时知道前端某个 RTU采集的数据是否出现异常。避免了高速的数据采集伴随的高昂的数据通信费用。本发明在保持前端采集设备现有通信功能不变的前提下,实现了正常的远程监控 数据采集、事件主动上传以及通信保活功能。


图1是本发明实施例基于广域数据采集的前端采集设备方框示意图;图2是本发明通信处理方法主流程图;图3是图2流程中TCP链路保活检测任务流程图;图4是图2流程中接受远程监控任务流程图;图5是图2流程中事件检测主动上传任务流程图;图6是现有通过RTU主动发送保活数据的保活命令帧结构;图7是现有远程监控终端回复的保活ACK帧结构;图8是本发明MCU主动发出的TCP保活帧结构;图9是本发明远程监控终端回复的保活应答ACK帧结构;图10是本发明MCU发送的modbus TCP主动上传命令帧格式。
具体实施例方式如图1所示,本发明实施例基于广域数据采集的前端采集设备包括GPRS/CDMA无线Modem、通用工业微处理器MCU和多个前端数据采集终端RTUl至RTUx。与现有前端采集 设备不同,本发明的方法具体实现在硬件结构上采用通用工业微处理器MCU为工作核心, 微处理器MCU通过RS232标准接口与GPRS/⑶MA无线modem实现连接,同时微处理器MCU 提供一个RS232接口用于连接运行配置软件的计算机,以及一或多个RS485接口用于连接 前端的标准数据采集终端RTU。如图1所示,仅使用了其中的一个RS485接口,这个接口连 接一个或多个数据采集终端RTUl至RTUx。Modem为标准的GPRS/CDMA通信拨号器件,MCU 为通用的工业用单板机处理单元,MCU包括了用于协议处理的CPU以及与之相关的RS232、 RS485通信的处理器和接口电路,RTU为通用基于Modbus协议的前端数据采集终端。如图2所示,为本发明通信处理方法主流程图,本发明一种广域数据采集的通信 处理方法,该方法包括下列步骤1)在微处理器MCU通过RS232接口控制Modem拨号,通过GPRS/CDMA正确的连接 到Internet或移动运营商提供的专用网络后,由MCU主发起TCPClient连接请求,连接目 标为指定的连接到网络的远程监控终端,该监控终端具有运行时刻固定的IP地址和端口 号;2)如果成功连接到远程监控终端,即在MCU与远程监控终端之间建立了一条TCP 连接通道,远程监控终端为TCP Server,MCU为TCP Client,并行执行多任务,该多任务包 括TCP链路保活检测任务、事件检测主动上传任务、接受远程监控任务和参数配置任务,否 则,返回步骤1)。其中,参数配置任务是根据需要任意设定保活命令发送间隔、尝试次数和接收保 活命令回复的超时时间参数。正常通信时不需要,第一次使用时需要正确配置参数,也可以 在通信当中,实现TCP连接保活之后,随时修改配置参数。如图3所示,TCP链路保活检测任务包括下列步骤2A1)微处理器MCU定时主动发出保活命令,检测TCP链路的连接情况;2A2)如果远程监控终端没有及时回复保活应答ACK,MCU会重复尝试多次,重复 尝试多次后,远程监控终端均没有回复保活应答,则TCP链路出现问题,MCU控制Modem关 闭,切断GPRS/CDMA通信,并在延时一段时间后回到步骤1),若远程监控终端回复保活应答 ACK, TCP通信链路正常,则返回步骤2A1);MCU主动发出的TCP保活帧结构为见图8,远程监控终端回复的保活应答ACK帧结构为见图9,MCU主动发出的保活命令采用TCP协议基本的数据区域长度为零的TCP保活命令。本发明对于TCP连接的保活控制,由MCU主动完成,远程监控终端仅需要实现TCP Server端的侦听、接受连接、接受数据和发送数据的基本功能。在MCU与远程监控终端之 间建立TCP连接后,MCU主动发出的保活命令采用TCP协议基本的数据区域长度为零的TCP 命令,与RTU主动发送的保活命令不同的是,通过RTU主动发送的保活命令,TCP命令帧数 据区域包含了一定长度的保活数据。采用本发明保活命令的好处在于命令帧不包含数据, 减少了数据传输的流量,在一定的程度上降低了 TCP链路维持的通信费用,同时对于远程 监控终端TCPServer端,不需要对本发明保活TCP命令中的数据进行应用层的解释,保活在MCU将命令发出后由TCP Server端接收到该命令回复后自动实现,对于远程监控终端透 明,远程监控终端TCP Server端不需要做任何处理,从而,使保活检测具有透明性。本发明采用的保活命令和现有技术采用的保活命令的主要区别是本发明采用的保活命令中,nUml,nUm2与保活回复命令中的位置和值的关系为,保 活命令中当 sequence number = numl,acknowledgement number = num2 时,保活回复命令 中的 sequence number 一定为 num2,,acknowledgement number 一定为 numl+1。同时保活 命令中TCP —定不包含一个应用层数据。现有技术保活命令中,当 sequence number = numl, acknowl edgement number =num2时,此时TCP —定包含长度为Ien > 0的应用层数据,且回复的命令中,sequence number 一定为 num2, acknowledgement number 一定为 numl+len。现有技术通信保活功能的实现,需要modem、数据采集终端RTU和远程监控终端共 同协商保活的工作方式和数据格式才能实现,保活检测不具有透明性。本发明通信保活功能的实现,对modem、数据采集终端RTU以及远程监控终端三个 子系统完全不需要关心保活的活动过程,就好像不存在一样,保活过程完全由TCP通信协 议自动完成,保活检测具有透明性。如图4所示,接受远程监控任务包括下列步骤2B1)微处理器MCU检测远程监控命令;2B2)检测到有远程监控命令,则接受远程监控终端发送准Modbus/TCP协议规 定的数据包,准Modbus/Tcp协议定义,作为Modbus/TCP Slave端的MCU作为TCP连接 的Client,作为Modbus/TCP Master端的远程监控终端作为TCP连接的Server,同时准 Modbus/TCP协议还定义了 MCU发送的主动上传命令帧格式,MCU在接收到远程监控终端发 送的标准Modbus/TCP数据读写命令时,MCU实现Modbus/TCP与Modbus RTU协议之间的 转换,MCU将通过TCP接口接收到的Modbus/TCP数据帧,通过协议转换处理,转换成标准 Modbua RTU数据帧格式并转发到与MCU串行接口 RS485连接的RTU设备上,同时对于本次 MCU转发到RTU设备的modbus RTU数据帧的回复帧,也通过MCU的协议转换处理转换成标 准Modbus/TCP,通过TCP链路发送到远程监控终端,完成本次的协议转换处理过程,返回步 骤 2B1);没有检测到有远程监控命令,判断是否大于IteportID发送次数num,若大于 ReportID发送次数num,直接返回步骤2B1),否则,MCU产生IteportID的主动上传信息,返 回步骤2B1) ;Report ID命令格包含一个具有整个系统唯一的ID号,该ID号与当前发送 Report ID命令的MCU —一对应,通过ID号远程监控终端可以识别系统中的MCU。如图5所示,事件检测主动上传任务包括下列步骤2C1)在远程监控终端通过MCU协议转换读写RTU设备信息的空闲期间,MCU主动 快速地通过与RTU连接的串行接口 RS485检测接口上的RTU设备是否具有事件标志;2C2) 一旦发现其中一个RTU设备产生了事件,MCU立即生成事件主动上传命令,并 且读取RTU设备中的事件内容,经协议转换处理,通过TCP链路将主动上传命令帧发送到远 程监控终端,完成远程监控终端事件内容的快速更新,返回步骤2C1);若没有发现有事件, 则直接返回步骤2C1)。上述MCU发送的modbus TCP主动上传命令帧格式为
8
见图10,Transaction ID 远程监控终端生成,MCU原样复制;Always ZERO 总是零,表明是 modbus/TCP 协议;Byte Count 表明在此之后的数据字节数;Slave address :RTU 的 ID 号,内容可以是 1 254 ;Fouction 主动上传命令号;Starting Address 上传寄存器起始地址高字节和低字节;No. of Points 上传寄存器个数高字节和低字节;ByteCount :Data 的;Data...数据。本发明远程监控终端发送准Modbus/TCP协议规定的数据包。准Modbus/Tcp协议 定义,作为 Modbus/TCP Slave 端的 MCU 作为 TCP 连接的 Client,作为 Modbus/TCP Master 端的远程监控终端作为TCP连接的Server,同时准Modbus/TCP协议还定义了主动上传的命 令帧格式。除此之外,MCU与远程监控终端之间的通信中使用的帧结构与标准Modbus/TCP 完全一致。MCU会产生Iteport ID的主动上传信息,通过R印ortID远程监控终端可以识别 系统中的MCU,由MCU发送的modbus TCP主动上传命令帧,根据Slave address得到RTU的 ID号,故每一个MCU有唯一的ID号,每一个通过MCU连接到远程监控终端的RTU有唯一的 Slave ID,通过MCU的ID,结合Slave ID就可以识别不同的RTU。MCU主动上传与RTU中 的事件密切相关,即使MCU没有接收到远程监控终端发送的命令,如果条件允许,例如某个 RTU发生了事件,MCU可以发送主动上传命令帧通知远程监控终端,远程监控终端可以解析 主动上传数据帧内包含的数据信息,从而及时地获取事件的内容。综上所述,数据采集终端RTU通过RS485接口连接到GPRS/CDMA,最终连接到远程 监控终端,在RTU与远程监控终端之间建立可靠的TCP连接,实现监控。本发明的通信处理 方法实现了 modbus/RTU与modbus/TCP协议的转换,使远程监控终端可以通过TCP连接, 采用modbus/TCP协议实现与RTU设备采用RS485接口 modbus/RTU通信协议的连接,同时 还提供了广域监控的TCP链路保活和主动上传功能。最终实现了能够适应广域监控的准 modbus/TCP 与 modbus/RTU 协议的转换。
9
权利要求
一种广域数据采集的通信处理方法,该方法包括下列步骤1)在微处理器MCU通过串行接口控制Modem拨号,通过GPRS/CDMA正确的连接到Internet或移动运营商提供的专用网络后,由MCU主发起TCP Client连接请求,连接目标为指定的连接到网络的远程监控终端,该监控终端具有运行时刻固定的IP地址和端口号;2)如果成功连接到远程监控终端,即在MCU与远程监控终端之间建立了一条TCP连接通道,远程监控终端为TCP Server,MCU为TCP Client,并行执行多任务,该多任务包括TCP链路保活检测任务和接受远程监控任务,否则,返回步骤1);其中TCP链路保活检测任务包括下列步骤2A1)微处理器MCU定时主动发出保活命令,检测TCP链路的连接情况;2A2)如果远程监控终端没有及时回复保活应答ACK,MCU会重复尝试多次,重复尝试多次后,远程监控终端均没有回复保活应答,则TCP链路出现问题,MCU控制Modem关闭,切断GPRS/CDMA通信,并在延时一段时间后回到步骤1),若远程监控终端回复保活应答ACK,TCP通信链路正常,则返回步骤2A1);MCU主动发出的TCP保活帧结构为见图8,远程监控终端回复的保活应答ACK帧结构为见图9,MCU主动发出的保活命令采用TCP协议基本的数据区域长度为零的TCP保活命令。
2.根据权利要求1所述的通信处理方法,其中,所述多任务还包括事件检测主动上传 任务;所述接受远程监控任务包括下列步骤 2B1)微处理器MCU检测远程监控命令;2B2)检测到有远程监控命令,则接受远程监控终端发送准Modbus/TCP协议规定的数 据包,准Modbus/Tcp协议定义,作为Modbus/TCP Slave端的MCU作为TCP连接的Cl ient,作 为Modbus/TCP Master端的远程监控终端作为TCP连接的Server,同时准Modbus/TCP协议 还定义了 MCU发送的主动上传命令帧格式,MCU在接收到远程监控终端发送的标准Modbus/ TCP数据读写命令时,MCU实现Modbus/TCP与Modbus RTU协议之间的转换,MCU将通过TCP 接口接收到的Modbus/TCP数据帧,通过协议转换处理,转换成标准Modbua RTU数据帧格式 并转发到与MCU串行接口连接的RTU设备上,同时对于本次MCU转发到RTU设备的modbus RTU数据帧的回复帧,也通过MCU的协议转换处理转换成标准Modbus/TCP,通过TCP链路发 送到远程监控终端,完成本次的协议转换处理过程,返回步骤2B1);没有检测到有远程监控命令,MCU产生R印ort ID的主动上传信息,返回步骤2B1); Report ID命令格包含一个具有整个系统唯一的ID号,该ID号与当前发送Iteport ID命令 的MCU —一对应,通过ID号远程监控终端可以识别系统中的MCU ; 所述事件检测主动上传任务包括下列步骤2C1)在远程监控终端通过MCU协议转换读写RTU设备信息的空闲期间,MCU主动快速 地通过与RTU连接的串行接口检测接口上的RTU设备是否具有事件标志;2C2) —旦发现其中一个RTU设备产生了事件,MCU立即生成事件主动上传命令,并且读 取RTU设备中的事件内容,经协议转换处理,通过TCP链路将主动上传命令帧发送到远程监2控终端,完成远程监控终端事件内容的快速更新,返回步骤2C1);若没有发现有事件,则直 接返回步骤2C1)。
3.根据权利要求2所述的通信处理方法,其中,所述MCU发送的modbusTCP主动上传 命令帧格式为见图10,Transaction ID 远程监控终端生成,MCU原样复制; Always ZERO 总是零,表明是modbus/TCP协议; Byte Count 表明在此之后的数据字节数; Slave address :RTU的ID号,内容可以是1 254 ; Fouction 主动上传命令号;Starting Address 上传寄存器起始地址高字节和低字节; No. of Points 上传寄存器个数高字节和低字节; ByteCount :Data 白勺; Data···数据。
4.根据权利要求2所述的通信处理方法,其中,步骤2B2)MCU没有检测到有远程监控命 令流程中,还设有IteportID发送次数num,若没有检测到有远程监控命令,首先判断是否大 于IteportID发送次数num,若大于ReportID发送次数num,直接返回步骤2B1),否则,MCU 产生Iteport ID的主动上传信息,返回步骤2B1)。
5.根据权利要求1或2所述的通信处理方法,其中,所述多任务还包括根据需要任意设 定保活命令发送间隔、尝试次数和接收保活命令回复超时时间的参数配置任务。
全文摘要
本发明提供一种广域数据采集的通信处理方法,包括步骤1)在微处理器MCU通过串行接口控制Modem拨号,通过GPRS/CDMA正确的连接到Internet或移动运营商提供的专用网络后,由MCU主发起TCP Client连接请求,连接目标为指定的连接到网络的远程监控终端;2)如果成功连接到远程监控终端,并行执行多任务,该多任务包括TCP链路保活检测任务和接受远程监控任务,否则,返回步骤1)。上述多任务还包括事件检测主动上传任务。由于本发明保活检测任务中采用的保活命令,TCP数据区域长度为零,故能节省通信费用,保活检测具有透明性。本发明实现了正常的远程监控数据采集、事件主动上传以及通信保活功能。
文档编号H04L29/06GK101945088SQ20101001930
公开日2011年1月12日 申请日期2010年1月8日 优先权日2010年1月8日
发明者唐会天, 孙伟力, 段鑫, 王彦桂, 章云辉 申请人:广州中浩控制技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1