董建忠,程博伦,黄 哲
(1.新疆塔里木河流域管理局信息中心,新疆 库尔勒 841000;2.新疆塔里木河流域巴音郭楞管理局,新疆 库尔勒 841000;3.新疆塔里木河流域巴音郭楞管理局博斯腾湖管理处,新疆 博湖 841400)
传统型RTU(远程终端设备)一直是数据通信领域的主流设备之一,但随着技术的不断发展,新型DTU可以提供更快速、更可靠的数据传输,同时支持更多种类的数据传输协议,新型DTU可以采用128位AES加密算法以加强数据传输的安全性,新型DTU还可以提供更长的使用寿命,更低的故障率等,本文主要讨论使用新型DTU+服务器端软件替代通用型RTU的思路和方法。
市面上存在2种不同形式的RTU,即通用型RTU和专用型RTU。专用型RTU针对项目或某种前端设备简化RTU设计,使之仅处理特定型号的前端设备的输入输出,并针对项目需求仅输出特定规约的数据格式,成本较低;通用型RTU内部集成各种类型前端设备的处理规则,并为了适配服务器端需求,又集成了各种规约处理方法,成本较高。
利用支持MQTT协议透传的DTU,将通用型RTU的前端处理规则和后端规约,以配置文件的方式存储于服务器端,当到达指定的时间或条件后,服务器端通过读取配置文件,对前端DTU进行轮询,并根据配置文件解析前端DTU返回的数据,经计算后,按照配置文件中的指定规约将数据进行打包并发送给数据接收服务器。这样,就使用最低成本的DTU+服务器端配置文件+定时轮询,实现了原来高成本的通用型RTU所具有的功能。
据测算,使用该方法成本仅为通用型RTU的1/10-1/30,具有较好的经济效益。可供类似工程参考。
RTU是Remote Terminal Unit的缩写,即远程终端单元。它是一种在监控和控制系统中常用的设备,主要用于收集和传输现场监测点的数据并向控制中心发送反馈信号。
RTU通常由数据采集模块、通讯模块、控制模块和电源模块等组成。数据采集模块负责接收传感器的监测数据,通讯模块负责将数据传输到控制中心或其他设备,控制模块负责执行控制指令,电源模块负责为整个设备提供电力。
RTU的工作原理是,将现场监测点的数据采集、存储和处理,然后将数据通过通讯模块传输到远程控制中心,控制中心根据接收到的数据进行分析和处理,然后向现场下发控制指令,使得现场设备实现自动化控制。RTU通过现场总线与各种设备进行连接,在无线电、有线电以及光纤等各类信道上传输数据。原理如图1所示。
图1 RTU的工作原理
由图1可知,数据采集系统可分为4个部分:前端设备、RTU、DTU、数据接收服务器。
下面简要分析数据采集系统的一般工作流程:
(1)取数。前端设备与RTU通过RS485接口连接,RTU通过RS485接口向前端设备发送取数指令,前端设备接到取数指令后,将数据通过RS485接口返回RTU
(2)封包。RTU接到前端设备返回的数据后,根据解析规则进行解析,解析后的数据根据后端数据接收服务器的数据传输规约进行封包,一般的封包规则例如:前缀+站码+时间+数据含义+数据+校验码+结束符。
(3)传输。RTU唤醒DTU,通过AT指令拨号,将DTU与数据接收服务器建立连接通道,连接完成后,RTU将封包后的数据通过RS232接口发向DTU,DTU通过连接通道将封包数据发给数据接收服务器。
(4)接收及解包。数据接收服务器接收到封包数据后,首先进行校验,校验无误后,按照解包规则,依次解析出站码、时间、数据含义、数据,然后将数据写入数据库,并记录接收日志。
DTU是Data Terminal Unit的缩写,即数据终端单元,它是一种用于将各种终端设备的数据集成到互联网等公网中的设备。
DTU的工作原理是,通过各种通讯接口(如RS232、RS485、CAN等)与终端设备连接,采集设备的数据,然后通过无线或有线网络将数据传输到远端的监控平台或者基站。
DTU设备常用在智能家居、工业自动化、农业、车辆追踪、远程监控等领域。在智能家居中,DTU作为智能家居系统与各种传感器、摄像头等设备连接的桥梁,实现设备之间的数据通讯和交互控制。在工业自动化中,DTU用于采集并传输各类工业设备的数据,以便于管理人员对生产线进行监控和控制。在农业方面,DTU可用于对农业设备进行远程监控,实现种植、灌溉等细节的自动化控制。原理如图2所示。
图2 DTU的工作原理
由图1—2可知,DTU的构造要远比RTU简单,前端基本无数据处理能力,以透传模式连接前端设备与后端服务器。服务器通过透传模式与前端设备进行通讯,以轮询的方式查询前端设备数据,DTU仅起到牵线搭桥的作用。
RTU和DTU都是远程终端设备,但是它们的应用场景和工作原理有所不同。
(1)应用场景。RTU主要应用于工业控制和自动化领域,用于现场数据的采集和处理、控制和保护;DTU主要用于物联网领域,提供设备接入云平台的功能。
(2)数据传输方式。RTU通常通过专用的现场通讯网络,如Modbus、DNP3等协议,将数据传输到远端控制中心;而DTU则是利用GPRS、LTE等无线网络或以太网等有线网络,将设备的数据传输到云端。
(3)数据处理能力。RTU通常具有较强的实时数据处理能力,能够在现场进行控制、监测和调节;而DTU则主要负责将设备采集的数据上传云端,由云端进行数据分析和处理。
(4)价格。由于RTU需要更高的硬件配置和工业级的准确度、可靠性和抗干扰性能,因此价格通常较高。而DTU的造价相对较低,主要是由于其专注于物联网接入领域而不需要过多重视工业级的指标。
总之,RTU主要用于工业自动化领域,DTU则属于物联网领域。其主要区别在于应用场景、数据传输方式、数据处理能力和价格等方面。
如果能通过技术手段,将RTU的优势与DTU的低廉价格相结合,将有很好的应用价值。
由于DTU本身数据处理能力较弱,将RTU所具有的取数规则、解析规则、封包规则等均以文件方式存放在服务器端,服务器通过DTU建立的透传通道直接与前端设备对话,将取数指令发送给前端设备,再通过解析规则解析传回的数据,然后将解析完的数据按照封包规则将数据进行封包,最后发送给数据接收服务器,这样,就可以完成用服务器端的软件+DTU替代RTU进行数据采集的工作。原理如图3所示。
图3 +DTU的工作原理
某型RTU在塔里木河流域管理局水利系统中有着广泛应用,但其价格较为高昂,采购价格约9000元/台,再算上安装费用,保守估计每台价格在1.1万元。
由于服务商已全面将数据业务迁移到4G,2G、3G业务已停止服务,因此,DTU应支持4G全网通;考虑到现场的恶劣环境,应支持宽电压;在低温和高温环境下正常工作;支持多种网络传输协议透传;至少有一个RS485串口等。最简规格参数见表1。
智嵌物联ZQWL-GD2110YM型DTU即可满足上述要求,采购价格210元/台,算上安装费用价格300元/台。
计算机端使用USB转485转换器,连接4GDTU的RS485接口,在DTU的电源接口处接入9~36V直流电,待DTU正常启动后,使用智嵌物联提供的4GDTU配置软件对DTU进行配置,如图4所示。
图4 4G DTU配置软件
勾选MQTT,点击设置,进入MQTT设置界面如图5所示。
图5 MQTT设置界面
按照下表2设置MQTT服务器参数,填写完成后确定退出,点击图4中的保存参数,将设置保存在DTU。
表2 MQTT设置参数表
2.3.1功能分析
(1)定义MQTT服务器,数据接收服务器,站点列表文件,站点配置文件。可以选择自己架设MQTT服务器,一般选择APACHE ACTIVEMQ,或APACHE APPOLLO,也可以利用网上免费的MQTT服务器,如:broker-cn.emqx.io,端口号:1883。如果是正式的生产环境,建议搭建自己的MQTT服务器。之所以还要设定数据接收服务器而不是直接将接收到的数据入库,主要是基于如下考虑:①本文只是实验性质,小范围试用,不宜改变原有的数据采集架构;②原有的数据接收服务器有数据校验功能,而数据库本身是没有数据校验功能的,直接入库易假造数据。可以用JSON文件存储配置,也可以将配置写入数据库,如站点较多,建议使用数据库,本次采用JSON文件以减少复杂度。配置文件保存MQTT服务器、数据接收服务器的IP地址、端口号,订阅和发布的频道信息。站点列表文件保存站点列表,包括站点名称、站点编码等。站点配置文件保存站点名称、站点编码,前端设备型号,取数指令,回数指令格式,误差值调整,回数解析公式等。
(2)定义读取配置接口。
(3)将各功能分成不同的模块,有助于减少每个模块的复杂度,也便于模块的复用。
(4)主程序实现如下功能:连接MQTT服务器,订阅DTU上传频道,下发取数指令到DTU,接收DTU返回指令,解析返回指令,加工数据,发送数据到数据接收服务器,定时循环,运行状态写日志,出现故障向钉钉群报警。
(5)后台启动主程序。在windows系统中,可以通过将程序做成服务的方式以避免不小心关闭窗口导致程序被关闭;而在linux系统中,可以通过后台启动程序,启动完毕后可以在进程中发现主程序,这样也能避免不小心主程序被关闭。
(6)后台监控主程序,一旦发现主程序意外退出,立刻重启主程序。
(7)其他的一些问题。①一些RTU具有超限加报功能,从服务器端实现也是很方便的。首先在配置文件中对该站要设置警戒值,可以是高限,也可以是低限。当服务器端取数指令发出后,待回数指令解析后,如数据高于高限或低于低限,则服务器进入加密采数程序,即取数间隔减小,上报间隔也减少,即实现了超限加报功能。当数据处于正常值范围,则转入正常采集数据模块。②RTU具有本地存储,远程召测功能。这部分功能可以考虑将数据现存入DTU服务器端数据库,如数据接收服务器故障导致期间数据丢失,可以从DTU服务器数据库中查询历史数据后,重新将这部分数据发送到数据接收服务器即可。DTU本身也具有一定的数据存储能力,也可以用指令找回历史数据发送到数据接收服务器即可。
为实现2.3节服务器端功能,在一台安装centos的linux虚拟机服务器上,以python3.7作为开发环境进行开发,以paho-mqtt模块为客户端,逐个实现2.3节服务器端主程序功能,由于塔里木河流域管理局使用的《塔里木河流域水资源信息化整合项目数据采集编码通信规约》规定了数据传输的格式,以SW+站码+时间+数据标识+数据+校验码+NNN的形式进行传输,以python crcmod模块的mkCrcFun实现校验码,其他数据使用python的join函数连接即可用上述的方法,使用了9台DTU做实验,每台DTU6 min取一次数据,每天共计取数240条,理想情况下一年回数788400条,实验结果是786974,数据返回率99.82%,数据损失率<0.3%,满足实际生产需要。
本文提出一种利用DTU+服务器端软件替代传统RTU的新方法,低成本实现远程数据采集系统。通过准确定义系统各个部件的责任,利用DTU实现基本的数据采集与通信,而服务器端软件承担主要的控制与智能处理,大大降低了远程数据采集系统的成本和难度。这种软硬件混合的结构使系统在保证性能的同时显著降低成本,极具实用价值。
当然,本文仅是初步探索,还存在一定不足。首先,文中系统较为简单,无法处理海量数据和复杂控制场景,后续需要深入研究。其次,安全性问题没有进行深入分析,实际应用中安全方面也需要重点考虑。再次,该结构下系统的可靠性如何保证也需进一步探讨。