能否有大神解答如下疑惑:
PLC型号:S7-200 smart
使用端口数量:两个,port0(RS485),和port1(RS232)
程序流程:条码扫描器读写条码送入Port0,程序截取条码中的某一部分内容后放入规定的协议中通过Port1发送给设备,设备收到port1发送的指令后会返回一条指令代表收到指令,其中包含是否有报警的状态位。
程序中使用发送完成和接收完成中断以及sm187,7来控制Port1 的接收状态
问题:当通过Port1发送正确指令的时候PLC相应的缓存器可以收到设备回复的指令。而当发送的指令,设备处理发生错误时应该回复带有报警状态位的一条指令,但是PLC缓存器却收不到这条回复指令。
可以肯定设备是收到了这条指令,因为设备以及做出相应的处理,只是输出的结果应该会带有报警。
我通过串口调试工具监视Port1口发现设备的确是回复了指令,但是PLC却没有收到。这是怎么回事?
我的理解是不是,Smart的Port1口是半双工,所以在中断切换的过程中会有遗漏。