PLC通讯Modbus以太网规约soe及对时格式
后台部分:
1.对时
直接将“JS”寄存器变量的值赋“1”,便可以对PLC发送对时报文。或将上位机的时间按固定格写入PLC寄存器中。 2.Soe处理
SOE1~SOE255对应SOE量的值,其时标有固定的寄存器处理。目前默认同时有25个soe。
PLC部分:
事件记录数据分2部分:事件交换字和事件记录。事件记录的个数可在工程中配置(建议为10个)。交换字和事件记录在组态王中可以固定放在某个寄存器或某一段寄存器中。
3.1 事件记录交换方式
PLC初始化时先将事件交换字置0,同时另外开辟一定的缓冲区存储无法及时上传的事件。当发生事件时,先将事件记录放入该缓冲区。假设事件记录数据区最多放4条记录(目前最大可以放25个),进行事件记录传递的步骤如下:
PLC方面:
事件缓冲区中有未上传的事件时,检查事件交换字,当值为0时将事件写入事件记录部分,一次最多写入4个记录,然后将事件交换字置数(1~4)(写入几个记录置几)。
上位机方面:
步骤1:读取事件交换字,检查是否为0。
步骤2:当事件交换字不为0(1~4)时,读取事件记录,并进行处理。
三元催化清洗剂步骤3:将事件交换字置0。
3.2 事件记录格式
每个事件记录占5个字。采用压缩BCD码表示。
rake接收机遥信序号(0~255) |
年 | 月 |
日 | 时 |
分 | 秒 |
cos系统下载毫秒 | 值 |
| | |
假设事件发生时间为2001年09月23日12时43分52秒678毫秒,变化的遥信量为第4个遥信量,其值为1。其存储格式如下:
在Kingview中可将这个时间及值直接赋给第4个遥信的时间戳和值,更新遥信4。
注意:序号和交换字不是压缩BCD码!
4. 系统对时
上位机将时间以压缩BCD码格式写入约定的寄存器。
当PLC检查标志字非0时,将时间写入系统时钟,并将标志字清0。建议组态王中新开辟一类寄存器存放系统时间。
PLC中固定的寄存器如下:
3000:校时标志地址(值为1时通知PLC开始校时, PLC应该从3001-3008取出时间写入系统时钟)
3001-3004:校时时间存放地址(时间是BCD编码)
3010:事件交换字地址,表示有几个SOE纪录
3011后:每10个字节一条SOE纪录
3010以后的信息,由PLC编程写入.
SOE和JS在PLC中的存放格式请参照上述第3和4点。