- 设备全局变量
设备全局变量能够无条件地在整个SIMOTION设备范围内使用,它们在GLOBAL DEVICEVARIABLES表中声明,只能选择基本数据类型,可以指定初始值和断电保持性。
- I/O变量
I/O变量包括外设和过程映像区,同样能够无条件地在SIMOTION设备范围内被访问,它们在ADDRESSLIST表中声明。
- 单元变量单元变量也属于全局变量,在LAD/MCC单元或ST源文件中定义,变量声明的位置决定了它们的可用范围。在INTERFACE区声明的变量可以在本单内无条件使用,也可以被其它单元访问,前提是其它单元必须已关联(Connection)此单元。
在IMPLEMENTATION区声明的变量只能在本单元内使用,无法被其它单元访问。单元变量可以选择所有数据类型,指定初始值和断电保持性。
- 局部变量局部变量只能在声明它们的POU(Program、FC、FB)中使用,包括临时变量和静态变量。
SIMATIC T-CPU的变量模型与SIMOTION略有差异:T-CPU中的变量既可以基于符号名寻址,也可以通过地址访问,这些数据区包括过程映像输入区I、过程映像输出区Q、标志位存储区M、数据块DB等,都属于全局变量。
在PLCTags表中可以声明I、Q、M变量的符号名,个人建议用户变量尽量在DB块中声明,好处一是支持复杂数据类型,二是位于软件单元外部亦可被访问。
博途从版本V15.1开始支持软件单元(SoftwareUnit)的概念,PLC Tags和DB可以建在软件单元内部或外部。建在软件单元内的变量可在本单元内无条件使用,如果还要被其它单元访问,需激活 它们的 “Published”访问属性。对于已发布的变量,相当于在SIMOTION单元的INTERFACE区声明,否则等同于在SIMOTION单元的IMPLEMENTATION区声明。
软件单元A要想访问软件单元B中已发布的变量,必须先在关系表(Relations)中关联软件单元B。此处可参考本公众号的往期文章:
【从SIMOTION到SIMATIC T-CPU】之软件单元T-CPU中的局部变量使用本地数据区L,主要在OB、FC、FB中作临时变量使用。