恭喜,你发布的帖子
发布于 2021-03-04 10:42:46
8楼
发
LD SM0.1
MOVB 9, SMB30
MOVB 1, VB100
LD SM0.0
MOVB IB0, VB101
LD SM4.5
XMT VB100, 0
收
LD SM0.1
MOVB 9, SMB30
ATCH INT_0, 8
ENI
LD SM0.0
MOVB SMB2, QB0
这个是最精简的自由口通讯程序了,我在你的程序基础上加入注释,请查阅:
发
OB1:
LD SM0.1
MOVB 9, SMB30 //9600bps、8个数据位、无校验、在prot0口定义
MOVB 1, VB100 //定义一个字节的发送长度
LD SM0.0
MOVB IB0, VB101 //将IB0的输入状态传送到VB101
LD SM4.5 //prot0口发送空闲时为1,忙时(发送)为0
XMT VB100, 0 //由vb100定义好的一个字节数据长度VB101发送给对方。
收
OB1:
LD SM0.1
MOVB 9, SMB30 //同样的通讯参数定义
ATCH INT_0, 8 //prot0口接收字符中断
ENI //开中断
INT_0:
LD SM0.0
MOVB SMB2, QB0 //将接收到的通讯数据,通过特殊接收字节SMB2传送给QB0.
实际上,整体的通讯程序含义,就是上面的plc,IB0的状态通过自由口通讯方式, 将IB0的状态传送给QB0,以达到IB0 = QB0的目的。
请填写推广理由:
分享
只看
楼主