当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:提出了一种面向工业现场信号采集和对现场设备控制的新型通用一体化RTU的设计方案。介绍了基于ARM9处理器并采用μC/OS_II实时操作系统的RTU系统设计方法,同时对数据传输采用的Modbus通信协议和硬件功能模块的设计进行了描述。硬件功能模块主要包括8路数字量输入、8路数字量输出、8路模拟量输入、RS232通信、RS485通信和以太网通信等模块。文中还提出了从站RTU的软件设计方法。与普通RTU相比,该方法具有更大的存储容量,更强的计算功能,更简便的编程与开发能力和强大的通信组网能力。

引言

RTU(RemoteTenninalUnit)是一种远端测控单元装置,负责对现场信号、工业设备的监测和控制。与常用的可编程控制器PLC相比,RTU通常具有优良的通讯能力和更大的功能,使得RTU产品在SCADA系统中得到了大量的应用。RTU应用领域宽广,包括电力系统、给水系统、石油、化工等诸多领域。基于ARM处理器设计的RTU,硬件上具有成本低、体积小、耗电省、处理能力强等优点,软件上采用M/OS_II操作系统,有许多优秀的应用程序可以利用。本文将介绍一种基于ARM9和pC/OS_II的RTU硬件、软件设计方法。

1RTU系统设计

基于ARM9的新型RTU系统结构如图1所示。该系统以S3C2440A为主控制器,主要包括数字量输入模块、数字量输出模块、模拟量输入模块、RS232通信模块、RS485通信模块、以太网通信模块、存储器模块、E2PROM和测温模块等等。软件采用uC/OS_II实时多任务操作系统,数据传输采用Modbus通信协议,设计了TCP\IP、RS232、RS485等多种通信方式。

图1     RTU系统结构图

为使该RTU适用于复杂苛刻的环境、满足工业控制的指标和需求,在各个模块与MCU之间加上适当的隔离保护器件,同时给各个模块和MCU供电的部分电源模块也要选取隔离型的DC-DC电源,还有在主电源端口和通信端口处加上适当的防雷保护电路和ESD保护电路,使得该RTU各个模块之间基本上互不干扰,更能适用于恶劣的环境。

1.1主控制器的选择

RTU的处理芯片采用S3C2440A,S3C2440A的内核为ARM920T,并且片内集成了RS232、RS485、SPI、IIC、通用I/O口等外围设备接口,并具有低价格、低功耗、高性能等特点,能够满足多种通信协议,如Modbus等通信协议。

1.2数字量输入输出模块设计

该RTU具有8路数字量输入和8路数字量输出。单路数字量输入和数字量输出原理图如图2所示。数字量输入的直流有效电压为10〜48V,具有光耦隔离,隔离电压的有效值为2500V。数字量输出的直流有效电压为10〜36V,也具有光耦隔离,隔离电压的有效值为2500V。

对于数字量输入,可在输入端加入适当的滤波电容、自恢复保险丝、压敏电阻、整流二极管和电阻等元件组成的电路,然后和光耦隔离器PS2801串联。值得注意的是,和光耦隔离器串联的电阻R,、并联的电阻R4选取要恰当,通过调整其电阻值,可以得到合适的输入电压阈值。数字量输入电压通过光耦隔离之后,转换为合适的电压信号至MCU。考虑到数字量输入可为开关量输入和脉冲信号输入,应选用MCU的外部中断功能引脚作为数字量输入管脚,这样MCU才能及时响应数字量输入。

对于数字量输出(电压输出),MCU通过光耦隔离器PS2801控制固态继电器VN340ISP的输出。数字量输出可分为开关量输出和脉冲输出。对于开关量输出,可以通过MCU的普通GPIO引脚来实现控制;对于脉冲输出,可以使用MCU的PWM引脚来实现控制。

基于ARM9的RTU设计

1.3模拟量输入模块

当MCU内部集成的ADC不能满足系统设计要求时,需要外加一个满足系统设计要求的ADC,外部ADC采集的数据可以通过多种总线传输到MCU(如IIC、SPI等)。

该RTU具有8路模拟量输入,模拟量输入原理图如图

3所示。模拟量输入范围为直流4〜20mA或0〜5V,采用TI公司的ADS7952(采样频率为1MHz,12位分辨率,20MHz的SPI串行接口),在模拟量输入前端加入适当的调理电路(由滤波电容、自恢复保险丝、TVS管、精密电阻、高速运放、稳压管等元件组成的电路),ADS7952的数据传输采用SPI总线传输,在ADC和MCU的SPI总线上加上一个磁耦隔离器

ADUM1401,注意磁耦隔离器的数据转换速率要大于SPI的传输波特率。

基于ARM9的RTU设计

1.4通信模块

新型RTU具有强大的通信组网能力,并且兼容多种通信方式,如TCP/IP、RS232、RS485通信等等。该RTU有1个RS232通信接口、1个RS485通信接口和1个以太网接口。其中,RS232通信接口还可以外接一个ZigBee模块,实现无线数据传输。

MCU的UART端口通过磁耦隔离器ADUM1402分别与RS232收发器MAX3232E和RS485收发器SN65HVD-1176D相连。由于RS232/RS485通信均为有线通信,在恶劣的环境下,例如通信电缆受到雷击干扰,收发器可能由于过压而烧坏,甚至会影响MCU的正常工作,所以应该在收发器接线端子上加上合适的防雷保护电路。防雷保护电路可以分为三层保护:第一层用三个玻璃放电管组成一个三角形电路作为一级保护,可以把雷击电压降到数百伏;第二层用耐高压的TVS管,可以把传输线上的电压降到数十伏;第三层加上适当的电感或保险丝,用于进一步保护收发器。RS232/RS485通信模块的结构原理图如图4所示。

图4     RS232/RS485通信模块结构原理图

MCU通过数据总线、地址总线、若干控制信号线与以太网控制器DM9000相连,以太网控制器的两对差分信号线接到合适的网络变压器上,同时为了保护以太网控制器,在网络变压器跟RJ45网口之间加入一个合适的ESD保护电路,可以消除外部环境的影响。以太网通信模块图工作原理如图5所示。

图5     以太网通信模块工作原理框图

1.5存储器模块和温度测量模块

存储器包括SDRAM、Norflash和Nandflash。SDRAM用来临时存放数据,确保程序能正常运行;Norflash用于存储程序;Nandflash用于存储数据,在RTU突然掉电或通信网络故障的情况下,Nandflash能把重要的数据信息保存起来,待到RTU再次上电并且网络通畅时,再把数据提取出来发送出去。

E2PROM可以用来存储RTU的初始配置信息,包括RTU设备基本属性、IP地址信息、网络参数、串口参数、主从模式选择和AD采样配置等信息。RTU上电运行时,先从E2PROM中读取配置信息,RTU初始化各个模块之后才能正常工作。

测温模块可以用来测量RTU的工作温度,并实时地或定时地向上传输其温度值,实现温度监控。

2RTU软件设计

该新型RTU内嵌uC/OS_II实时操作系统,数据传输协议采用Modbus协议。nC/OS_II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核,适用于工业控制中的实时监控。Modbus协议包括ASCII、RTU、TCP。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通信采用主-从方式。Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。Modbus/TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。在本文中,作为主站的RTU,内嵌的实时操作系统nC/OS_II实现上层Modbus/TCP协议与Modbus/RTU协议之间的通信(即上位机与计算机、上位机与下位机之间的通信)。而作为从站的RTU,内嵌的实时操作系统pC/OS_II实现Modbus/RTU协议通信(即上位机与下位机之间的通信),对所连接的被测设备进行控制信息的输入输出以及RTU采集和输出模块的控制。以下主要介绍作为从站的RTU软件设计。

2.1Modbus/RTU协议

Modbus串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247)连接于同一个串行总线。Modbus通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个Modbus事务处理。当设备使用RTU模式在Modbus串行链路通信时,报文中每个8位字节含有两个4位十六进制字符[4]。这种模式的主要优点具有是较高的数据密度,而且在相同的波特率下比ASCII模式有更高的吞吐率。每个报文必须以连续的字符流传送。在RTU模式,报文帧由时长至少为3.5个字符时间的空闲间隔区分。如果两个字符之间的空闲间隔大于1.5个字符时间,则报文帧被认为不完整应该被接收节点丢弃。RTU接收驱动程序的实现,由于1.5个字符时间。1.5)和3.5个字符时间(65)的定时,隐含着大量的对中断的管理。在高通信速率下,这导致CPU负担加重。因此,在通信速率等于或低于19200b/s时,这两个定时必须严格遵守;对于波特率大于19200b/s的情形,应该使用2个定时的固定值:建议的字符间超时时间(45)为750”,帧间的超时时间(£3.5)为1.750ms。

2.2Modbus数据模型

在一系列不同平台上,Modbus数据模式有不同的特性,基本平台有离散输入、线圈、输入寄存器和保持寄存器。在该新型RTU系统中,事先要与主站RTU协商定义好一个离散输入对应表、线圈对应表、输入寄存器对应表、保持寄存器对应表。主站RTU和从站RTU根据对应表中的数据位执行相应的操作。主站RTU读离散输入即读取从站RTU数字量输入状态;主站RTU写线圈即控制从站RTU数字量输出(继电器输出);从站RTU模拟量输入(AD采集的数据)存储于输入寄存器中,供主站RTU读取;主站RTU通过写保持寄存器可以给从站RTU发送配置信息,从站RTU读保持寄存器执行相应操作。用来存储从站RTU的初始配置信息的E2PROM,就是通过读取相应的保持寄存器中数据,写入到E2PROM中,再对RTU重新配置。

2.3Modbus从站

Modbus主站和Modbus从站是两个独立的模块,主站为上位机(客户机),而从站为下位机(服务机)。主站和从站都有相同的数据链路层,并且它们的帧报文数据结构都是相同的。Modbus从站服务任务是从站协议的核心组成部分,它的主要工作是处理Modbus主站点功能请求,返回主站请求的保持寄存器、输入寄存器、线圈和离散量输入等值,或接收并保存主站写入的保持寄存器和线圈等值;另外,Modbus从站的应用程序也会读取或写入相关的寄存器。从站RTU程序流程:首先,初始化目标板、uC/OS_II、系统时基等等;接着,创建一个系统初始任务(优先级最高)和Modbus从站服务程序;再接着开始运行任务。基于nC/OS_II的从站RTU程序

流程图如图6所示。

图6    从站RTU程序流程图

2.4系统初始任务TaskO

从站RTU经过系统基本初始化之后,还需要进一步的配置才能正常工作,而这部分的工作就在系统初始任务TaskO中实现。TaskO主要完成的工作有:读取E2PROM中的数据,获取各种配置信息;根据配置信息初始化各种硬件驱动(如Modbus传输波特率、RS232/RS485通信选择、夕卜部中断功能引脚选择、SPI和IIC总线初始化等等);根据配置需求有选择地创建模拟量输入量任务Task2(AD采集任务)、数字量输入任务Task3,数字量输出任务Task4、读保持寄存器配置任务Task5和测温任务Task6;最后让一个LED指示灯定时闪烁表示RTU工作正常;接着进行任务调度,切换到已创建的、优先级高的其它就绪任务中运行并且实时响应外部中断(数字量输入)。系统初始任务Task0程序流程图如图7所示。

图7     系统初始任务Task0程序流程图

系统中的Task2主要完成AD采集任务Task2,本系统采用TI公司的ADS7952。ADS7952的AD采样率是根据其SPI传输波特率来换算的,改变MCU(S3C2440A)的SPI底层驱动程序中的SPI分频值就能实现不同AD采样率的选择。ADS7952可以根据E2PROM中的配置信息(采样率、通道数、采样点数)工作,也可以根据Task5中读取保持寄存器对应表中的数据位来实时更新配置。

Task3执行数字量输入任务,数字量输入包括开关量输入和脉冲信号量输入,可以把这两种功能的端口分开,也可以把这两种功能复用合并。功能复用合并实现方法:数字量输入口对应的MCU管脚先作为普通GPIO引脚,读取其GPIO状态寄存器获取高低电平状态(即开关状态),把开关状态写入Modbus离散输入寄存器中,接着把管脚功能从GPIO引脚切换到外部中断引脚,用于随时获取脉冲信号的输入,在外部中断函数中可以实现计数并且把计数值写入Modbus输入寄存器中。该任务执行时间必须短,代码必须简练,不能在其中加入延时之类的函数,任务挂起的时间也不能太长,不然会导致脉冲信号输入数据出现误码。

Task4主要完成数字量输出任务。主站RTU可以通过写线圈寄存器来控制从站RTU固态继电器的输出,也可以根据要求让从站RTU定时中断控制继电器输出PWM信号。同时主站RTU可以通过读线圈寄存器来获取从站RTU当前继电器的电平输出状态。

Task5可执行读保持寄存器配置任务。当Modbus保持寄存器中的数据发生变化时,根据保持寄存器对应表(与主站协商定义的一个从站配置表)对从站RTU进行相应配置,包括从站基本信息、AD采样率、AD通道数、AD采样点数、有线无线传输选择、UART波特率等等,同时把新的配置信息写入E2PROM中。配置代码应该放在卩C/OS-II临界区中,临界区中不响应中断,这样才能保证新配置的程序能正常地运行。

Task6执行测温任务。当RTU工作环境温度过高时,可能会影响RTU的正常工作,测温任务可以实时或定时把从站RTU工作温度值写入Modbus输入寄存器中,供主站RTU读取。

3结语

本文主要介绍了一种基于ARM9的RTU设计实现方法,对RTU硬件系统中的各个模块设计过程进行了详细的介绍,包括数字量输入模块、数字量输出模块、模拟量输入模块、RS232通信模块、RS485通信模块、以太网通信模块、存储器模块、E2PROM和测温模块等等,同时提出了基于此硬件系统的RTU从站软件设计方法。RTU从站采用nC/OS_II实时操作系统,数据传输釆用Modbus/RTU通信协议。该RTU可以应用于市政、能源、交通设施、环境、气象、地质、农业等有远程终端测控站点需求的行业回。

20210902_61306d7f2a3c9__基于ARM9的RTU设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种。

关键字: Modbus 通讯协议 工业控制

Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的一种工业控制总线协议,是全球第一个真正用于工业现场的总线协议。

关键字: Modbus 通讯协议 总线协议

Modbus是一种串行通信协议,是Modicon(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。它应用在电子控制器上,作为一种通用语言,使得控制器之间、控制...

关键字: Modbus 工业串行链路

西门子通信方式主要有以下几种,PPI通信:PPI协议是S7-200cpu最基本的通信方式,通过原端口通信,是S7-200 CPU默认的通信方式。RS485串行通信:第三方设备大部分支持,西门子S7 PLC可以通过选择自由...

关键字: 西门子通信 Modbus

Spectrum仪器全新旗舰型号集10GS/s、12位分辨率、4.7GHz带宽与12.8GB/s数据流传输于一体

关键字: 数字化仪卡 信号采集

运算放大器在信号的采集、放大等各种应用中非常广泛,其应用电路也非常多,因此我们特地针对运算放大器的各种电路的实现、参数和一些关键的特性做了总结,以供各位小伙伴查阅。

关键字: 运算放大器 信号采集 同相放大器

拥有10 GSample/s速率、12位分辨率+ 和12.8 GByte/s流式传输速度的新产品

关键字: PCIe数字化仪卡 信号采集

摘要:干燥空气和冷却塔在使用过程中需要依赖实时的露点温度和湿球温度,以达到最佳的能耗使用率,然而小型气象站并不具备上述两种温度的测量功能。鉴于此,提出一种应用方法,以小型气象站为数据监测源,以PLC为独立计算媒介,以纯计...

关键字: PLC Modbus DCS

在这篇文章中,小编将为大家带来智能断路器的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 智能断路器 断路器 信号采集

摘要:物联网信息网络技术发展非常迅速,他和SCADA系统应用于众多行业和领域。首先介绍了物联网和SCADA系统的基本概念和特征,其次介绍它们的现状和现行应用中的问题,然后归纳它们的共同点,最后总结出它们的未来发展方向,以...

关键字: 物联网 射频识别 RTU SCADA系统 通讯网络
关闭
关闭