我现在读和写,用的是1S脉冲,加上计数器,当计数值等于1,的时候,读参数值。当计数值等于2的时候,写参数值。但是这样速度慢,想问下,大家有没有快一点的读写轮询方法,用时间控制的方法效率不是很高,如果要读写多台设备的话,整个周期会延长很多时间
出错后不用管的。只要下一轮通讯正常的话那个错误标志会自己变0的。
我说的那个贴我自己找不到了。
这个库我说说几个要点。我只用过主机程序,从机的没有用过。
ctrl指令两个触点长期接通就可以了。参数的话看着调吧。
MSG指令的EN位问题比较麻烦。长期接通不是办法,除非只有**的一个信息向外发送。多于一个信息的话就要切换开关状态,让出通讯。
要在什么时候断开呢?
当done位由0变1的时候,下一个周期就不要再执行这个MSG了。要把EN断开。是切换的时候了。当然不切换也不会错的,只是一直发送多余的相同的内容罢了。(如果你是从机,你烦不烦啊?一直在唠叨同一个事情)
这个0变1可能伴随着出错编号的产生,你要马上记下出错编号。因为下一个MSG可能使用到相同的出错编号地址。出错不影响你的切换。
first触点。无论如何请只给一个周期的信号就好了。多了只会坏事。如果信息内容变更了,就要把这个触点断开一个周期然后重新接通。还有一个要点。在EN位断开之前的一个周期,first位一定要先断开,这样才会在下次调用MSG子程序的时候可以产生上升缘。否则,又有机会说错了。
几个MSG参数不个别说了。手册都有。我说手册没有的。在first发出了信号之后Done位会在本个周期变0 。表示正在工作。这个0的期间不要更改任何参数,包括*后一个间接寻址里面的值。因为通讯过程中一直要读这些地址内容。一变了的话就会这个错那个错的了。很多人用通讯去修改变频器的速度给定,随时想改就改,未有理会Done位。结果在不该改的时候改了。结果就产生了通讯错。很莫名其妙的错。然而,这个错可能没有检测程序跟踪就溜走了。轮到了下一轮通讯的时候恰好又通讯正常了。结果就掩盖了刚才的错误,表面上看变频器一直都在工作,谁又会怀疑刚才已经发生了错误。*好是在EN位OFF的时候更改。
这个游戏是比较难玩。稍稍一错,就完了。也不知道哪里错。手册也没多说。只能面对着设备沉浸一段时间,否则一出错就打消了使用的念头了。