NETW NETR指令中数据块缓存区有D A E几个标志位
D是功能完成
是否可以理解为一次读或者一次写 完成 就会D为1
那么第二次读写完成如何知道呢?是否需要在第二次读写前,程序里先把D写为0.
E是发生错误 是否只要一旦发生错误 就会E=1 整个通信就会停止
程序里把E写为0 是否就会重新通信?
很困惑,请大家指教
问题补充:
谢谢阿鸣的回答!
第三条有一点疑问
你说的状态字清除是调用一次NetW吗?
即:
LD Always_On
NETW VB100, 0
还是自己用其他指令复位,
VB100为状态字节
比如:
LD Always_On
R V100.7, 1
或者
LD Always_On
MOVB 0, VB100
还是说两种方法都可以?
在S7 200没看到更多状态字的细节描述
//-----------------------------------------
3、那么第二次读写完成如何知道呢?是否需要在第二次读写前,程序里先把D写为0.?
是的。当执行一次网络读写指令NetR/NetW后,要编程将缓冲区的数据进行相应处理后,要用NetW指令发一条信息来清除状态字。
图片说明:
最佳答案
1、有关参数代码:
D:操作已完成。0=未完成,1=已完成。
A:操作已排队。0=无效,1=有效。
E:操作返回一个错误。0=无错误,1=错误。
2、是否可以理解为一次读或者一次写 完成 就会D为1?
是的。执行一次网络读写指令NetR/NetW上述有关参数代码就重置一次。
3、那么第二次读写完成如何知道呢?是否需要在第二次读写前,程序里先把D写为0.?
是的。当执行一次网络读写指令NetR/NetW后,要编程将缓冲区的数据进行相应处理后,要用NetW指令发一条信息来清除状态字。
4、E是发生错误 是否只要一旦发生错误 就会E=1 整个通信就会停止?
是的。此时根据错误代码来进行相应的处理。
5、程序里把E写为0 是否就会重新通信?
必须是错误被排除后,即没有错误才可以,否则E还是置位。
6、使用用NetR/NetW时,应当注意:
避免简单地定时激活NetR/NetW:由于串行通信的特点(如上所述),无法得知何时真正结束。如果定时进行网络读写通信,必须判断此次通信是否正常结束
同时有效的NetR/NetW指令不能超过8个,否则通信请求队列会超出操作系统的管理能力
使用SM0.0调用网络读写指令,虽然能长期工作,但不能超过8个指令,而且会出现监控时指令块变为红色的现象,最好还是加上必要的读写状态判断条件。
最简单可靠的方法,是使用Micro/WIN中的NetR/NetW Wizard(网络读写指令向导)。
使用NetR/NetW向导可以编辑最多24条网络读写指令,其核心是使用顺序控制指令,这样在任一时刻只有一条NetR/NetW指令有效。如果要求超出24条网络读写指令,可以自己按照此方法编程。
7、如果不使用向导自己编程,建议看看:
<S7-200 可编程控制器系统手册>下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1017[2].pdf
提问者对于答案的评价:
虽然还是有点疑惑
不过,已经明白多了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc305318.html