一、 说明
《AB DF1驱动》该驱动通讯方式为网口,支持如下PLC:
Logix5系列
实现了N类型数据块的读(如N10:31),但未实现写。
驱动名称:bin/drivers/abcipdrv/abdf1drv
二、 驱动配置
在驱动中,增加一个名称和模块名称均为abdf1drv的驱动。
三、 设备配置
在驱动abdf1drv下增加一个设备,
- 连接方式选择:串口(serial)
- 通讯参数:波特率:2400,数据位:8,奇偶校验:N,停止位:1。如:port=/dev/ttyO1;baudrate=2400;parity=N;databits=8;stopbits=1
- 参数1:无
- 参数2:无
四、 变量配置
增加变量所需要配置的属性
变量名称:按照项目规范设计的字符串
设备:选择刚刚配置的设备
周期:根据需要而定,缺省为1秒
Tag点数据类型:和PLC一致。如:DINT为4个字节,SINT为2个字节,REAL为4个字节
可控制:使能
Logix5:支持:N块,地址如:N10:25
五、 模拟
无法模拟。
六、 点表确认
使用AB的RSLinx,Communications/Config Drivers,在弹出对话框中选择增加一个Ethernet Device,并输入PLC的IP。再找到PLC的输入Backplane/xxxxLOGIXxxxx右键,选择DataMonitor,可以在弹出的Data Table Monitor查看所有的地址。
七、 协议分析
发送 [0021] 10 02 01 00 0F 00 6F 01 01 08 00 09 00 07 00 0A 00 02 10 03 5B
接收 [0013] 10 02 00 01 4F 00 6E 01 00 00 10 03 41
读取消息N10:31完整包如下
发送:
10 02 01 00 0f 00 00 00 01 01 00 02 00 07 00 0a 1e 02 10 03 bb
解析:
10 02: 包开头
01:DST
00:SRC
0f:命令号CMD
00:STS状态
00 00:事务号TNS
01:功能号
下面除了包结束外都是地址部分
01 00 02 00 07 00 :N10:31地址的前面部分。红色部分整个是地址的表示。 01=(31%10)%255 00=(31%10)/255,02=(31%10)+1,00 07:N块的类型,
0a:N10,第10个N块(文件)
1e:31 ,N10块内部的地址偏移 – 偏移%10. =31 - 31 % 10
02,固定为2.
10 03:包结束标志
bb BCC校验码
接收(必须>=13):
10 02 00 01 4f 00 00 01 21 00 10 03 8e
10 02:包开头
00(SRC)
01(DST)
4f :CMD
00(STS)
00 00(TNS)
21 00:数据,大端序?
10 03:包结束标志
8e:BCC校验码