基于PLC和MCGS的姿态传感器数据解析显示系统的设计*
2021-12-30苏蓓蓓
苏蓓蓓,杜 亮
(无锡科技职业学院物联网技术学院,江苏 无锡 214028)
姿态传感器[1]是一种常用的传感器,安装于待测物体后,通过输出俯仰角、横滚角和方位角3个互相垂直轴向的角度,确定待测物体的姿态。在工业自动化领域,经常用可编程逻辑控制器(Programmable Logic Controller,PLC)将姿态传感器的数据进行解析[2-3],并通过触摸屏进行显示,从而可以直观观测物体的姿态。现以一个西门子PLC结合北京昆仑通态自动化软件科技有限公司研发的监视与控制通用系统(Monitor and Control Generated System,MCGS)触摸屏,解析、显示姿态传感器角度数据的系统为例进行研究分析。
1 系统构成及选型
系统构成见图1。姿态传感器输出姿态角度数据(含俯仰角、横滚角和方位角),PLC解析出数据,存放于内部寄存器,同时送MCGS触摸屏进行显示。MCGS触摸屏除了显示数据,还可以进行数据存储、曲线显示等。
图1 系统构成
姿态传感器选用无锡咏为传感科技有限公司提供的LCM346T-M型三维电子罗盘,这是一款40°倾角补偿三维电子罗盘[4],输出俯仰角和横滚角精度为0.2°,方位角精度为1°。数据通信协议采用的是MODBUSRTU通信协议[5],与西门子PLC对接方便。PLC选用西门子S7-200 SMART型,它是西门子公司开发的一款小型PLC,功能齐全,使用方便,包含1个RS485接口,可通过MODBUSRTU通信协议与传感器进行通信。触摸屏选用MCGSTPC1061Hn型,它是一套以先进的Cortex-A8 CPU(主频为1 GHz)为核心的高性能嵌入式一体化触摸屏,采用了259.08 mm(即10.2 in)高亮度薄膜场效应晶体管(Thin Film Transistor,TFT)液晶显示屏(分辨率为1 024×600)。该产品接口丰富,同时具有一路RS232通信接口、两路RS485通信接口、一路局域网(Local Area Network,LAN)网络接口。
LCM346T-M型三维电子罗盘通过串口连接PLC,TXD线连接PLC串口头的3脚,RXD线连接PLC串口头的8脚,二者之间通过MODBUSRTU通信协议进行数据通信。PLC和MCGS之间通过网线连接,二者网际互连协议(Internet Protocol,IP)设置在同一LAN网段,即IP前3位保持一致,第4位保持不同即可。
LCM346T-M型三维电子罗盘采用问答式工作模式,即PLC按一定时间周期向LCM346T-M型三维电子罗盘发送十六进制数据“01 03 00 01 00 06 94 08”,其中01表示地址,03是功能码,00 01是寄存器地址,00 06是寄存器数量,94 08是循环冗余校验(Cyclic Redundancy Check,CRC)。LCM346 T-M型三维电子罗盘接收到该指令后,会返回一组十六进制数据,例如“01 03 0CBDA3 D7 0A 3FBD 70 A4 43 87 01 48 0A B5”,其中01表示地址,03是功能码,0C是字节数,BD A3 D7 0A是俯仰角值,为32 b浮点数形式,同理3FBD 70 A4是横滚角值,43 87 01 48是方位角值,0A B5是CRC。按照ANSI/IEEEStd 754-1985《二进制浮点数算术标准》,可将数据转化为十进制浮点数形式(取到小数点后2位小数)。
俯仰角:(0xBDA3D70A)=-0.08°
横滚角:(0x3FBD70A4)=1.48°
方位角:(0x43870148)=270.01°
2 PLC程序编写要点
2.1 MODBUSRTU通信初始化指令
PLC在MODBUS RTU通信时,首先要进行MBUS_CTRL指令初始化操作,见图2。
图2 MBUS_CTRL指令初始化操作程序梯形图
SM0.0始终为1,EN设置为1,每次扫描时均执行该指令,Mode设置为1,启用MODBUSRTU通信协议,波特率选择9 600 b/s,Parity取0表示无奇偶校验,Port取0表示采用CPU中集成的RS485通信接口,超时时间设为100 ms。指令完成时,V100.0设置为1;如发生错误,错误代码存放于VB101。
2.2 振荡时钟程序
V100.0置位后,启用T37进行100 ms延时,确保初始化完成。利用内部继电器M0.1和M0.2形成振荡时钟,周期为20 ms,占空比为1∶1,见图3。
图3 振荡时钟程序梯形图与波形图
由于MODBUSRTU通信协议规定两条数据帧之间应至少大于3.5 B的时间,在9 600 b/s波特率下,该时间为3.5×(1/9 600)×11 s=0.004 s,为了留下足够余量,LCM346T-M型三维电子罗盘将此时间提高到大于10 ms,因此每条数据帧之间至少留下10 ms的时间间隔。PLC中设置的时间为20 ms,从而可以确保每个周期内有足够的时间进行数据解析。
2.3 MODBUSRTU通信MBUS_MSG指令
MODBUSRTU通信MBUS_MSG指令配置见图4,振动时钟M0.2驱动EN和First。EN输入接通时,MBUS_MSG指令会向Modbus从站 (即LCM346T-M型三维电子罗盘)发起主站请求。有新请求要发送时,将参数First设置为接通,并仅保持一个扫描周期。First输入以脉冲方式通过边沿检测元素(例如上升沿),这将导致程序发送请求一次。在本设计中M0.2持续20 ms的时间,确保每次数据交互时间充裕。
图4 MBUS_MSG指令配置程序梯形图
因为LCM346T-M型三维电子罗盘地址默认为1,所以Slave设置为1。RW设置为0,表示PLC读取LCM346T-M型三维电子罗盘数据。数据从LCM346T-M型三维电子罗盘的寄存器中读取,起始地址为40002,长度共12 B。DataPtr用于存放从LCM346T-M型三维电子罗盘中读取的原始数据,存放地址为:&VB0,表示从VW0开始存放,一直到VW10。其中读取的有效数值分别存放于VD0,VD4,VD8,数据类型为浮点数。完成标志位为V100.1;如有错误代码,存放于VB102。
3 MCGS触摸屏设计要点
在设备组态中添加“西门子_Smart200”通信组件,PLC的IP地址为192.168.2.1,MCGS的IP设置为同一网段,例如设置为192.168.2.2。设置3个变量X,Y,Z,分别连接通道VDF000,VDF004,VDF008,对应与PLC数据存放地址VD0(VB0),VD4和VD8。MCGS设备组态设置界面见图5。
图5 MCGS设备组态设置界面
MCGS显示界面见图6,分别包含主界面、曲线界面和历史数据界面。主界面显示俯仰角X(Pitch)、横滚角Y(Roll)和方位角Z(Head);曲线界面显示数据曲线值,直观观察数据变化情况;历史数据界面显示设定的一段时间内数据情况,并可使用U盘保存,存储格式为EXCEL表格形式。注意事项中主要注明触摸屏使用方法及技巧。
图6 MCGS显示界面
4 系统调试
系统调试主要包括LCM346T-M型三维电子罗盘与PLC的通信调试、PLC与MCGS的通信调试。
4.1 LCM346T-M与PLC的通信调试
先确保LCM346T-M型三维电子罗盘与PLC硬件连接正确,然后调试程序,在PLC上位机的软件仿真运行中进行程序状态监控,观察程序运行情况,同时监视状态图表,观测VD0,VD4和VD8中浮点类型角度数据,PLC调试界面见图7。如有异常则进行程序调整,直到正常为止。
图7 PLC调试界面
4.2 PLC与MCGS的通信调试
PLC与MCGS用网线连接好,IP设置一定要确保无误,另外显示文本中的变量输出格式要设置正确,见图8。变量名称链接正确,设置为数值型,保留两位小数位,都设置好后,文本可正确显示PLC解析出的角度数据值。
图8 MCGS变量输出设置界面
综上所述,系统通过PLC解析出LCM346T-M型三维电子罗盘姿态传感器的角度数据,并送MCGS触摸屏进行了显示,主要技术要点包含了PLC的MODBUSRTU通信编程和MCGS触摸屏通信及数据显示设置。此外,PLC解析出角度数据后,除了送MCGS触摸屏显示,还可以将数据应用于其他方面,例如与继电器、电机等连接,用于控制相关器件,从而可以设计出功能更强大的自动化系统。