quote:以下是引用winter938在2012-12-03 12:19:42的发言:
系统提供的边沿指令的旧状态存储初始值可能与楼主的不太一样。
这个是有可能的,比如PLC可以硬件实现边沿捕捉,捕捉到后将上升沿存到一个寄存,下降沿存到另一个寄存,即它直接存储边沿状态,而不是旧的状态。指令读 I0.0 时它从映像寄存器读,加上 P 或 N 后,它从保存寄存器读。
但这种可能性不大,大面积的实现硬件捕捉成本是一个因素,另一个原因是S7-200不光可以实现端口边沿,而且任意内存位都可以做边沿判断,如果所有的位都用硬件捕捉的话不现实,而且那样的话应该也没有256个的限制了。所以猜测保存的仍是“上次状态”
至于初始值的问题,不必计较系统是怎样的,我们可以实验一下,在第一个扫描周期系统边沿能否检出即可(我没有实验,根据原理判断是不能的),如果不能,则跟我们自己定义的行为一致,这样就行了。