发表于:2011-06-16 08:48:55
1楼
EN使能仅表示功能块执行条件满足,而ENO输出也仅仅代表功能块执行结束。
实际上ENO,EN仅仅表示功能块的执行状态,并不表示其他的,在西门子中,不是都有隐含的返回变量RET_VAL,你也会看到,西门子的功能块的状态实际上是通过这个变量进行返回的,并不是通过ENO返回的。
如果你解析过西门子的功能块,你会发现,在功能块的结束,是通过SAVE指令来置位BR位,从而使得ENO有输出,而真正的返回是通过RET_VAL变量的。
如果你自己编写FB,那么你应该在你的程序中添加错误的诊断,并通过OUT变量进行返回,而不是通过ENO进行。
有些厂牌的PLC并没有EN,ENO,他们是通过增加IN,OUT变量来实现的,在因此这些厂家的PLC更容易进行移植。
Good Luck~