自由口通讯的问题

PLC为224,和一个RS232接口的仪表通讯,现在通讯可以了,就是PLC发送给仪表数据之后,如果仪表判断数据错误,仪表会返回一个错误信息,PLC方要再发送一次,而且还要吧发送的错误次数包含在内,我现在是在PLC方的接受中断程序中做判断,如果接受的信息不是错误信息,就不发送,如果是,出发一个计数器计数,并把计数器当前值放到发送缓冲区,让后在发送,请问我应该拿哪个状态位去触发发计数器计数?请各位专家指教。

问题补充:
谢谢大家的回答!通讯协议是我们自己制定的,没有用奇偶校验,所以不能用sm3.0做触发,2楼的方法我也做了,不过是置位一个M位以后,这个复位指令在哪进行?在M位置位之前还是在其后面?
 两个我都试过了,不行的,我还想知道PLC的主程序的工作方式,在主程序执行一条发送子程序时,在执行发送子程序时,主程序还对其他的主程序指令扫描吗?

最佳答案

仪表返回的错误信息应该是一个或一组固定的ACSII代码,而且在数据块中处在一个固定的字节位置,即在接收缓冲区中处于一个固定的位置。只要在中断程序中对这个位置的寄存器中的数据作判断,置位一个M标志位,从其它子程序中都可以调用这个标志位作为指令的使能条件,完成一系列相关的工作。不要忘了在相关工作结束后,复位这个标志位,等待下一次置位的条件出现。

提问者对于答案的评价:
虽然没有解决我实质的问题,但您的回答还是比较好的 ,谢谢.

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午10:57
下一篇 2021年7月5日 上午10:57

相关推荐

发表回复

登录后才能评论