quote:以下是引用tak在2013-08-14 10:11:36的发言:
有一个进口仪表,通信协议比较复杂,需要先后发送5条命令并收到回应,才能开始采集数据。每一条命令格式不同,仪表回复命令也不同。。这样的话,无法使用开始和结束字符作为接收完成标志。看到手册里可以设置SMW90空闲线超时时间,来检测接收完成。。
给SM87.4置1,启用SMW90。
我给SMW90设置20ms。
并在INT0的发送计时器启用条件设置为LDB= SMB86, 16#04 (即Sm86.2置1)。
但是我在状态表中观察收到数据后,并没有启动发送。也就是说LDB= SMB86, 16#04没有满足。
请问我这样设置有错误吗?
你好,看到你的帖子,和我的情况差不多,我现在正在做类似的项目。用200的自由口方式与3个microscan一维读码器通讯
读码器的通讯格式也是多次发送 收到回应,最后读出条码。我在用串口调试软件也是这样操作,一次发送,返回一组代码(ACK,表示成功),第二次发送,返回一组代码(ACK),再一次发送,读出的数据才是条码数据。这个过程是在调试软件中完成的,要是把这一套搬到PLC程序中来编程实现,程序如何编制还没有思路呢,特想跟您请教下,你的这个项目做完了吗?请多多指教