quote:以下是引用eaglesky在2011-02-28 17:02:23的发言:
举个例子来说,有50台电机需要控制,这些电机除了参数不一样,控制流程上是一样的,每个电机需要不同的参数去运行,运行中的过程参数要参与到下一次的控制过程中。
这个要求,用FC做的话,你需要针对不同的电机分配好DB块,来逐一的确认参数地址,不能混淆,保存和调用不能出错,可以想象会有多麻烦。如果用FB来做呢?写好控制过程和定义的参数的调用就可以了。针对电机重复调用同一个FB,每次调用指定一个独立的DB作为背景数据块,完全不必理会背景DB中的数据是怎么存储的。如果功能需要修改,只要修改该FB就行了。
还有其他的例子,比如PID、比如流量累计等等。
举个例子,如果FC中用到了触发器或是边沿触发,地址不能是临时变量,因为这种变量需要保存上一周期的状态;但如果用绝对地址,又失去了它的封装性,只能每次调用都定义不同的绝对地址。用FB的话就没用这样的担心了。