展开查看
以下是引用并州将在2015-04-20 21:56:29的发言 >12楼:首先我没注意你们谈的是1200,而不是200,我是基于S7200和S7200 Smart 说的,下面说说我的看法,如果说错了,还请前辈给予指教奥:
1、done位在手册上虽然没有直接说错误也能置为1,但有这么1句话,不知兄台注意到没有?
==发送请求和接收响应时,“完成”(Done) 输出关闭。 响应完成或 MBUS_MSG 指令因错误中止时,“完成”(Done) 输出接通。==
仅当“完成”(Done) 输出接通时,“错误”(Error) 输出才有效。
这句话是不是表明了:一切错误代码的有效性是完全基于DONE==1为前提?
2、你可以这样验证下,就是只用done位来轮询3个站,然后你把其中任何1个站拔掉,看是否其它2个站还可以! 如果你拔掉其中任何一个站,其他2个站都停掉了,证明你的说法是对的,相反如果你拔掉其中任何1个站,其他2个站还照常运行,那么你的说法就是错误的,
综上,以前我现场用过的,我认为我的理解应该是对的,因为我就是轮询的3个510变频器,可是有时候变频器故障了,但是其他照样运行,只不过稍微延迟那么几百毫秒罢了,就是我说的延迟时间×唤醒次数,如果按照兄台的逻辑,假设某个设备故障了或者通讯故障了,done位就一直为0,那么请兄台解释下那个ERROR错误码还有何意义?因为done位一直为0,那么它的错误代码就没有任何有效性,你要是用错误位判断岂不是错上加错?除非西门子手册上这句话是写错了!
==发送请求和接收响应时,“完成”(Done) 输出关闭。 响应完成或 MBUS_MSG 指令因错误中止时,“完成”(Done) 输出接通。==
仅当“完成”(Done) 输出接通时,“错误”(Error) 输出才有效。
以下是引用link_wxm在2015-04-08 11:02:47的发言 >:刚看到你说的,让我...
以下是引用并州将在2015-04-08 01:22:10的发言 >:完成位在错误时也是...
以下是引用link_wxm在2015-03-18 10:19:52的发言 >:用完成位做轮训是...
兄台以后得注意标题方可回答,否则“殃及鱼池”(200的不清楚可能有区别);
实验就不做了没有一点意义了,兄台难道没有看见实验中的结果吗?
“完成位”和“错误代码”两者互不冲突啊!