SIMOTION中的代码块包括FC、FB、Program,其中:
所以本文将比较两种控制器在FC/FB方面的异同(不考虑面向对象编程)。
FC (Function)
FC是没有 “存储器” 的代码块,当FC执行结束时,临时变量的当前值丢失,典型应用例如过程值计算。每个FC都具有接口区,可以声明形参和本地数据。形参类型分为输入参数、输出参数、输入/输出参数和返回值,本地数据包括临时变量和常量。
和T-CPU不同的是,SIMOTION中除了以上内容,还可以在FC内声明本地使用的用户自定义的数据类型,并且所有形参和本地数据都可以在声明时进行初始化。FC的调用
在T-CPU中调用FC时必须给所有形参分配实际值,而SIMOTION的实参传递允许跳过有初始值的形参。
另外在SIMOTION中采用ST语言编程时,简短调用格式(参数传递时省略形参名)仅适用于系统FC,并且实参必须按照正确的顺序排列,考虑灵活性和清晰度的原因,目前T-CPU中SCL编程不支持简短调用格式。
FB (Function Block)
FB是具有 “存储器” 的代码块,当FB执行结束时,形参和静态变量的值会保存在这个“存储器”中,在接口区声明时还可以对它们进行初始化。形参类型分为输入参数、输出参数、输入/输出参数,本地数据包括静态变量、临时变量和常量。
SIMOTION中除了以上内容,还可以在FB内声明本地使用的用户自定义的数据类型,另外不允许对输入/输出型参数在声明时赋初值。
FB的调用
FB的调用需要分配一个数据区,在SIMOTION中应提前创建一个FB的实例(变量声明),在T-CPU中则使用背景数据块,二者都支持多重背景数据模式。