正在学习自由口通讯,200先发送请求命令,再接收从机(串口调试软件发送)返回的数据,按MODBUS协议做简单的读操作,XMT和RCV都是定时错开执行的,如果从机有数据发送,通讯能正常应答,但是串口软件停止发送数据,将接收不到200XMT发出的数据,实际就相当于要先有从站发送数据通讯才能正常应答,但200程序是按定时发送的,无论从机有无应答也始终发送请求命令,为什么在从站无数据回应的情况下XMT也不执行了呢?PLC错误信息显示XMT,RCV同时执行,但正常通讯时也存在这个非致命故障,
程序中XMT发送前已经对SM87.7进行了置零,RCV前也对SM87.7进行了置位,为什么还会出现XMT、RCV同时执行呢?
LD SM0.1
MOVB 16#09, SMB30
MOVB 8, VB100
MOVB 2#10000, SMB87
MOVB 16#09, SMB94
MOVW 100, SMW90
LD SM0.0
AN T37
TON T37, +10
LD SM0.0
AW= T37, 2
EU
MOVB 2#10000, SMB87
XMT VB100, 0
LD SM0.0
AW= T37, 6
EU
MOVB 2#10010000, SMB87
RCV VB200, 0