总结一下现在MOBUS屏向PLC(EN3D)发送的报文种类和详细信息,要涵盖目前这个屏所能在一个界面中编辑的所有种类控件。
控件类型 | 大小 | 说明 |
INT | 16bit |
|
UINT | 16bit |
|
DINT | 32bit |
|
STRING |
| 根据输入字符而定 |
READ |
|
|
BOOL | 1bit | 1个地址1bit,8个地址组成1BYTE进行协议控制。 |
UDINT | 32bit |
|
BOOL型:表示线圈状态(on/off),常用于指示灯、开关按钮等。
INT、UINT、DINT、UDINT:对应不同长度的数值,用于读写PLC对应地址寄存器。
STRING、REAL几乎用不到。
STRING 为字符型,
REAL为float类型,float类型常用INT类型+小数位数设置来替代(在HMI控件属性中进行设置)。
STRING类型 : 修改为”空格space“ : 2个字符1个寄存器,及2B。最多5个寄存器
01 10 00 2b 00 01 02 00 20 a1 93 : Hex20表示 space,
控件写入:4567894GF ,则写5个寄存器 45占用一个,67,89,4G,F分别占一个寄存器。两个字符对应一个寄存器: 最长为10个字符,对应5个寄存器。>10时,界面软键盘禁止输入。
01 10 00 29 00 05 0a 35 34 37 36 39 38 47 34 00 46 3b ea
REAL: 控件内输入5 : 对应2个寄存7,4Byte,但字符与协议的对应关系找不到。
01 10 00 2f 00 02 04 40 a0 00 00 a4 15 ; 5 为什么是40 a0 00 00
控件内: 55552--->Hex D900--->
01 10 00 2f 00 02 04 47 59 00 00 75 50
MOBUS屏向PLC(EN3D)发送的报文种类:
功能码 01/02 读线圈状态:功能描述以HMI端为基准。
01:读取从机离散量输出(0x类型)的 ON/OFF 状态。可写。起始地址:0x0000;
02:读取从机离散量输入信号(1x类型)的ON/OFF状态,不支持广播。输入:只读。
功能码:03/04
03:读取从机保持寄存器(4x类型)的数据。
查询信息规定了要读的保持寄存器起始地址及保持寄存器的数量,保持寄存器寻址起始地址为0000H,寄存器1-16所对应的地址分别为0000H –0015H。
04:读取从机输入(只读)寄存器(3X类型)中的数据。
查询信息规定了要读的寄存器的起始地址及寄存器的数量,寻止起始地址为0,寄存器1-16所对应的地址分别为0000H –0015H。
0F:强置多线圈(功能码15)
按线圈的顺序把各线圈 (DO,0X 类型) 强制成 ON 或 OFF。广播时,该功能代码可对各从机中相同类型的线圈起强制作用。
该功能代码可越过内存保护和线圈的禁止状态线圈。保持强制状态有效,并只能由控制器的下一个逻辑来处理。若无线圈控制逻辑程序时,线圈将保持强制状态。
REAL: 用于除法的数据保存
0F/10;
考虑到和PLC端的对应问题,进行BUF操作时,不考虑寄存器的读写属性。均可进行读、写。