一种rs485总线上的多协议与tcp网络协议之间的转换方法
【技术领域】
[0001 ] 本文涉及一种RS485总线上的多协议与TCP网络协议之间的转换方法,属于现场总线控制技术领域。
【背景技术】
[0002]现场总线是用于生产制造现场的底层通信网络,它实现了微机化的现场测量控制仪器或设备之间的双向串行节点数字通信,具有实时性、稳定性高的特点。自从2000年国际电工委员会(IEC)公布通过了 IEC61158现场总线标准,现在已有十多种现场总线标准。
[0003]以太网是商业领域里普遍采用的局域网络,结合TCP/IP协议构成了 Internet的基础,成为网络应用中事实上的标准,这也使得现场总线控制系统通过以太网与国家信息网
集成实现全国监控一体化成为大势所趋。
[0004]DL/T 645-1997《多功能电表通信规约》是我国为统一和规范多功能电能表的费率装置与数据终端设备进行数据交换时的物理连接和协议而制定的一个电力行业标准。
[0005]CJ/T 188-2004《户用计量仪表数据传输技术条件》是我国针对户用计量仪表制定的一个行业标准,包括水表、燃气表、热量表等仪表数据传输的基本原则、接口形式及物理
性能、数据链路、数据标识及数据安全和数据表达格式的要求。
[0006]Modbus协议最初由Modicon公司开发出来,现已成为工业领域全球最流行的通用工业标准协议之一。2008年我国颁布国标GB/T 19582-2008《基于Modbus协议的工业自动化网络规范》,并于2008-09-01起实施。
[0007]目前DL/T 645-1997,CJ/T 188-2004 和 GB/T 19582-2008 通信协议普遍采用标准 RS485通讯接口作为其物理层传送方式,通讯波特率1200BPS-115200BPS,主从半双工方式。
[0008]根据《国务院关于印发节能减排综合性工作方案的通知》,逐步建立起全国联网的国家机关办公建筑和大型公共建筑能耗监测平台,对全国重点城市重点建筑能耗(电、
水、
燃气、热量)进行实时监测,这就需要利用能耗数据采集器对能耗计量装置进行数据采集,
然后将采集到的能耗数据通过TCP网络上传到数据中心(或数据中转站),而计量装置普遍
采用DL/T 645-1997,CJ/T 188-2004和GB/T 19582-2008通信协议,同时,能耗数据采集器与计量装置之间使用符合行业标准的物理接口(RS485接口),这就涉及到RS485总线上的以上三种协议与TCP网络协议之间的转换,所以,本发明提出了一种RS485总线上的多协议与TCP网络协议之间的转换方法。
【发明内容】
[0009]本发明的目的在于提出一种RS485总线上的多协议与TCP网络协议之间的转换方法,实现 DL/T645-1997、CJ/T188-2004 和 GB/T19582-2008 通信协议与 TCP 网络协议之间的转换。本协议转换模型主要采用基于协议的主站模型。
[0010]为了实现上述目的,本发明的构思如下:
生成系统配置文件
在基于现场总线的主站-从站通信系统中,一个通信主站设备通过现场总线连接有多个通信从站设备,整个主站-从站通信系统中,只有通信主站设备具有主动发起通信的能力,通信从站设备接收通信主站设备的信息并与通信主站设备进行信息交互。而通信主站设备要实现与通信从站设备之间的通信,通信主站设备需要知道通信从站设备的地址、通信协议等信息,因此,首先要由通信主站设备对整个系统进行一个系统配置,让通信主站设备知道连接到总线上的通信从站设备的相关信息,便于通信主站设备对整个系统进行管理。
[0011 ] 构建通信从站设备信息表
由于通信主站设备与通信从站设备之间的通信是由处理器软件控制实现的,通信主站设备要与通信从站设备进行通信,首先需要通过程序读取系统的配置信息,获得通信从站设备的地址、通信协议等相关信息,然后才能发起通信。
[0012]如果通信主站设备每次向通信从站设备主动发起通信都需要去读取系统的配置信息,系统的效率就会很低,为了提高系统的运行效率,可以根据读取的系统配置信息,建立一个通信从站设备信息表,该信息表是一个结构体数组,数组的每一个节点记录的是一个通信从站设备的信息,该信息包括通信从站设备编号、通信从站设备地址、通信从站设备所使用的协议类型、通信从站设备所连接总线等。
[0013]初始化RS485接口和TCP网络
由于RS485总线上的通信要求通信主站设备和通信从站设备接收和发送数据的速率相同,而TCP网络上的通信需要知道目的主机的IP地址等信息,所以在通信主站设备上,需要通过读取的系统配置信息对RS485接口和TCP网络进行初始化。
[0014]定时轮询RS485总线上的各通信从站设备及协议转换
通信主站设备根据通信从站设备信息表,定时轮询各通信从站设备,通信从站设备根据通信主站设备发出的数据包做出响应,通信主站设备接收通信从站设备的应答数据包,然后,通信主站设备根据通信从设备信息表解析协议数据,将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传,从而实现RS485总线上的多协议与TCP网络协议之间的协议转换。
[0015]根据上述发明构思,本发明采用下述技术方案:
一种RS485总线上的多协议与TCP网络协议之间的转换方法,其特征在于:本方法下行通信采用RS485总线通过RS485接口与微处理器连接,上行通信采用微处理器通过以太网接口接入互联网,微处理器还连接有NandFlash、SDRAM和SD卡,构建起了协议转换的硬件平台,并采用本发明提供的通信从站设备信息表定时轮询RS485总线上的各从站设备,并对接收的协议数据包进行解析,将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传,实现RS485总线上的多协议与TCP网络协议之间的转换。
[0016]上述的协议转换的具体步骤如下:
(1)微处理器初始化;
(2)操作系统初始化;
(3)通过以太网接口生成系统配置文件;
(4)根据步骤(3)的配置文件构建一张通信从站设备信息表;
(5)根据步骤(3)的配置文件分别初始化RS485接口和TCP网络;
(6)根据步骤(4)的通信从设备信息表,通过RS485总线定时轮询RS485总线上的各从站设备,并对接收的协议数据进行解析,最后将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传,从而实现RS485总线上的多协议与TCP网络协议之间的转换。
[0017]所述步骤(3)中的生成系统配置文件的具体方法:通过嵌入式Web的形式将连接到通信主站设备的各通信从站设备的设备编号、设备地址、协议类型等信息写入到系统中的一个XML文件中,从而生成一个系统配置文件。
[0018]所述步骤(4)中的通信从站设备信息表是一个结构体类型的链表(或数组),链表(或数组)的每一个节点记录了一个通信从站设备的相关信息,这些信息包括通信从站设备所连接的RS485端口、通信从站设备类型、通信从站设备所使用协议和通信从站设备的设备号。
[0019]所述步骤(6)中RS485总线上的多协议与TCP网络协议之间的转换的具体方法为:
[0032]I)根据系统配置文件,设定定时器;
2)定时时间到后,通信主站设备根据通信从站设备信息表中记录的RS485总线上连接通信从站设备的相关信息,依次轮询各个通信从站设备;
3)接收通信从站设备的协议数据,根据信息表中的设备信息解析协议数据;
4)将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传,从而实现RS485总线上的多协议与TCP网络协议之间的转换。
[0020]上述的系统配置文件包含RS485总线上的通信从站设备的设备编号、设备地址、协议类型以及以太网接口的数据远传主机的IP地址;所述的通信从站设备信息表是根据系统配置文件生成的,通信从站设备信息表中的信息与RS485总线上连接的通信从站设备——对应。
[0021]根据上述的协议转换方法中,在同一个RS485总线上允许传输多种协议的数据:DL/T645-1997、CJ/T188-2004 和 GB/T19582-2008 通信协议。
[0022]在上述的协议转换方法中,通过通信从站设备信息表,通信主站设备可对各通信从站设备进行统一管理;通信主站设备根据协议数据的地址可判断出发送该协议数据的设备编号,再通过查阅通信从站设备信息表,可获得该协议数据所使用的协议类型。
[0023]本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点:本发明在构建 RS485 总线上的 DL/T645-1997、CJ/T188-2004 和 GB/T19582-2008 与 TCP
网络协议转换的硬件平台上,根据系统配置文件构建了一张通信从站设备信息表,然后采用该通信从站设备信息表定时轮询RS485总线上的各从站设备,并对接收的协议数据包进行解析,最后将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传,从而实现DL/T645-1997、CJ/T188-2004和GB/T19582-2008通信协议与TCP网络协议之间的转换。
【附图说明】
[0024]图1是本发明实施例的硬件框图。
[0025]图2是本发明实施例的主程序框图。
[0026]图3是本发明实施例的通信从站设备信息表。
[0027]图4是本发明实施例的协议转换程序框图。
【具体实施方式】
[0028]本发明的优选实施例结合附图详述如下:
实施例一:
参见图1,本RS485总线上的多协议与TCP网络协议之间的转换方法下行通信采用RS485总线通过RS485接口与微处理器连接,上行通信采用微处理器通过以太网接口接入互联网,微处理器还连接有NandFlash、SDRAM和SD卡,构建起了协议转换的硬件平台,并采用下述的通信从站设备信息表,实现DL/T645-1997、CJ/T188-2004和GB/T19582-2008通信协议与TCP网络协议之间的转换:通过以太网接口在系统中生成系统配置文件,然后根据该配置文件构建一张通信从站设备信息表,最后采用该通信从站设备信息表定时轮询RS485总线上的各从站设备,并对接收的协议数据包进行解析,将解析得到的数据以一定的XML格式(以文本形式)打包成TCP/IP数据包进行远传。
[0029]实施例二:
本实施例与实施例一基本相同,特别之处如下:
所述的系统配置文件包含RS485总线上的通信从站设备的设备编号、设备地址、
协议类型以及以太网接口的数据远传主机的IP地址;所述的通信从站设备信息表是根据系统配置文件生成的,通信从站设备信息表中的信息与RS485总线上连接的通信从站设备一一对应。在同一个RS485总线上允许传输多种协议的数据:DL/T645-1997、CJ/T188-2004和GB/T19582-2008通信协议。所述的通信从站设备信息表,通过该表,通信主站设备可对各通信从站设备进行统一管理;通信主站设备根据协议数据的地址可判断出发送该协议数据的设备编号,再通过查阅通信从站设备信息表,可获得该协议数据所使用的协议类型。
[0030]实施例三:
参见图2,本RS485总线上的多协议与TCP网络协议之间的转换方法具体操作步骤:
一、微处理器初始化;
二、操作系统初始化;
三、通过以太网接口生成系统配置文件;
为了让通信主站设备设置知道通信从站设备的