PLC为224,和一个RS232接口的仪表通讯,现在通讯可以了,就是PLC发送给仪表数据之后,如果仪表判断数据错误,仪表会返回一个错误信息,PLC方要再发送一次,而且还要吧发送的错误次数包含在内,我现在是在PLC方的接受中断程序中做判断,如果接受的信息不是错误信息,就不发送,如果是,出发一个计数器计数,并把计数器当前值放到发送缓冲区,让后在发送,请问我应该拿哪个状态位去触发发计数器计数?请各位专家指教。
问题补充:
谢谢大家的回答!通讯协议是我们自己制定的,没有用奇偶校验,所以不能用sm3.0做触发,2楼的方法我也做了,不过是置位一个M位以后,这个复位指令在哪进行?在M位置位之前还是在其后面?
两个我都试过了,不行的,我还想知道PLC的主程序的工作方式,在主程序执行一条发送子程序时,在执行发送子程序时,主程序还对其他的主程序指令扫描吗?
最佳答案
仪表返回的错误信息应该是一个或一组固定的ACSII代码,而且在数据块中处在一个固定的字节位置,即在接收缓冲区中处于一个固定的位置。只要在中断程序中对这个位置的寄存器中的数据作判断,置位一个M标志位,从其它子程序中都可以调用这个标志位作为指令的使能条件,完成一系列相关的工作。不要忘了在相关工作结束后,复位这个标志位,等待下一次置位的条件出现。
提问者对于答案的评价:
虽然没有解决我实质的问题,但您的回答还是比较好的 ,谢谢.
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359343.html