SIMATIC河南汝州西门子PLC模块代理商
200smart做了自由口通信,不知道程序哪里出问题了sm87.7为1 (1 = 启用接收消息功能)为什么状态字的sm86.7=1(1 = 接收消息功能终止;用户发出禁用命令)测试程序就是正转反转停止循环读取
定义了smb88 smb89 .我可以启动反正停止,就是不能读取数据了。
现在的问题是如果变频器开机状态下,我下载程序,程序运行正常。如果把变频器关了重启,那么smb86一直为0,端口一直被占用,程序运行不了。smw92也试过,时间到了并没有终止接收(没有重新发送XMT)。 将SM87.7置位也没用 smb86还是为0 sm***只是在初始化程序里设置 为什么smb86.7还是为0呢? 还有用了smw92时间到了,sm86.2也应该为1啊
如果出现组帧错误、奇偶校验错误、超限错误或断开错误,则接收消息功能将自动终止。
必须定义开始条件和结束条件(*大字符数),这样接收消息功能才能运行
方法1:将SM87.7或SM187.7置为0,且需边沿触发RCV接收指令。
方法2:将SM87.2或SM187.2置为1,超出SMW92或SMW192的时间,终止接收。
SM87.7 = 1,终止接收的可能原因:校验、数据帧、超时、中断等错误引起的自动终止。
接收时间到达,而没有正常接收,说明你的程序还没有完善。
正确的方法应该是当发送一个数据请求后,进入发送完成中断,等待接收。当接收时间到达后,仍然没有接收到从站的响应,那么,就需要考虑再发送一次数据请求的程序段了。
SMB86仅仅是接收数据的状态字节,只是反映接收数据的状态,而不是控制字节
展开全文
相关产品