用户自定义数据类型
SIMOTION中用户自定义数据类型可以在单元的INTERFACE和IMPLEMENTATION区声明,也可以在FC/FB的接口区声明。
T-CPU中用户自定义数据类型是在PLC Data Types中声明的,它可以放在一个软件单元的内部或外部。
声明的位置和可用范围的关系,可以参考本公众号往期文章:
【从SIMOTION到SIMATIC T-CPU】之软件单元枚举/命名值数据类型
SIMOTION中的枚举型和T-CPU中的命名值数据类型有点像特殊的用户自定义数据类型,它是一组基本数据类型(Byte, Word, Int,…)的命名常量值集合,有助于提高代码的可读性和可维护性。下图是在T-CPU中声明一个命名值数据类型的示例,只能在软件单元的PLC Data Types中创建并定义。此外,在T-CPU中读写NVT数据类型的变量时,变量值写法必须是工艺对象数据类型
由于SIMOTION和T-CPU在工艺对象方面的差异,使得具体的TO数据类型也略有不同,可参见文末附表,此处重点讲解二者在任意TO数据类型使用上的差别。为了增加程序的灵活性或实现标准化,通常要将FC/FB中TO类型的变量定义为任意TO数据类型,例如SIMOTION中使用的ANYOBJECT。当这个TO类型的变量被赋值后,假设传递了一个速度轴,如果接下来要执行的是定位任务,就会发生错误。因此必须先对该变量的取值做判断,在SIMOTION中这段程序是这样的:在SIMATIC T-CPU中没有ANYOBJECT这种TO数据类型,解决方法是通过DB_ANY和REF_TO配合来实现的,详见本公众号往期文章:
轴控制的标准化和模块化编程