plc端口实现二进制式读取与发送

目的:达到二进制状态读取与输出

将端口000.07-000.11作为5位2进制输入接口(000.00为低)

首先要读取000CH的数据,但000CH中的.00-.06和.12位不能读取。所以不能用MOV直接传送数据

应该使用XFRB(多位传送)传送000字中的7-11位。

XFRB #05(取5位)00(目标首位)07(源首位)000(源字) D1(目标字)

这样就能得到7-11位的状态。

可是刚好,现在的状态是刚好相反的,也就是说外部数据为 0 时(0000)得到的是15(FFFF)

只能再次进行-BCD运算,

15-(0 (外部数据)=0000(外部数据状态)=1111(接收到的状态)=FFFF(内部数据状态)=15(内部BCD))=0(运算结果)

这样就得到了和外部数据一样的结果。可以开始下一步进行数据的BIN输出处理

如输出到100CH的07-11位

那么就是:XFRB#04 00 07 D1 100

输出完成,目的:达到二进制状态读取与输出

将端口000.07-000.11作为5位2进制输入接口(000.00为低)

首先要读取000CH的数据,但000CH中的.00-.06和.12位不能读取。所以不能用MOV直接传送数据

应该使用XFRB(多位传送)传送000字中的7-11位。

XFRB #05(取5位)00(目标首位)07(源首位)000(源字) D1(目标字)

这样就能得到7-11位的状态。

可是刚好,现在的状态是刚好相反的,也就是说外部数据为 0 时(0000)得到的是15(FFFF)

只能再次进行-BCD运算,

15-(0 (外部数据)=0000(外部数据状态)=1111(接收到的状态)=FFFF(内部数据状态)=15(内部BCD))=0(运算结果)

这样就得到了和外部数据一样的结果。可以开始下一步进行数据的BIN输出处理

如输出到100CH的07-11位

那么就是:XFRB#04 00 07 D1 100

输出完成

plc端口实现二进制式读取与发送

相关文章:

你感兴趣的文章:

标签云: