发布于 2010-10-18 14:25:58
2楼
用字符中断的方式固然挺好,可以做到“实时”响应,但是太耗资源,而且通讯速率不能快(因为中断响应是有时间的)。
楼主使用RCV指令是如何使用的? 要想快速响应应该是使用XMT发送,然后XMT发送完成中断程序内调用RCV接收。 我想楼主是否是在主程序(或者一般调用性的子程序)内调用RCV了?这样子的话,RCV就会受扫描周期的影响,当你的扫描周期过大,而且从站响应过快, 从站发送数据过来的时候你的程序还没有扫描到RCV了,这个时候错误就产生了……
所以,现在一般的串口设备(比如变频器,温控器等)都会有一个参数:响应延迟。 就是该设备接收到指令后延迟一段时间再响应,这样就可以避免你上位PLC受扫描周期影响而接收不到信息了。 当然,对于S7-200来讲,因为有发送完成中断和接收完成中断,只要用好了就不会有问题。 而新出的S7-1200由于没有发送完成中断,所以特别要注意这个细节……
I can do it