quote:以下是引用Automann在2012-08-27 16:32:05的发言:
某些其他品牌的小型PLC的子程序没有局部变量和输入、输出参数,在子程序内部只能使用全局变量。这样的子程序移植性极差。FC、FB的局部变量和输入、输出参数、各被控对象专用的背景数据块,这是S7-300/400程序结构的精华。如果一次调用可完成全部任务,可以选用FC。需要多个扫描周期的调用才能完成全部任务,则需要选用FB,用它的静态变量在两次调用之间来保存数据。
底层FC、FB内部不使用全局变量,才能保证块的100%的可移植性。全局变量用来作块的实参。
调用块与被调用块之间的数值传送应该用块的输入、输出参数来完成,而不是用全局变量来完成。
廖老师的话有一定的道理,但是难道FC与FB就不能实现完全一样的功能了吗?话再说回来,S7-200只有FC,难道就不能实现类似S7-300/400的FB的功能了吗?
有时候,倒也不必拘泥于一定的规矩,尝试一下倒也能有一片别样的天地,当然这不是对于初学者说的,他们还要打好基础。