对于WinCC来说,变量是数据的载体,借助于变量,数据可以传递到WinCC中。一个变量包含了数据的地址和符号名。地址用于与自动化系统(PLC)通讯;符号名是项目/应用中的唯一识别。
WinCC的变量一般分为内部变量、外部变量、WinCC系统变量、S7系统变量、系统信息变量和脚本变量。除了"脚本变量"外,所有的变量的创建和维护工作都在"变量管理器"下进行。
一、内部变量
WinCC内部使用的变量,与外部过程无关,无需建立过程驱动程序、通道单元和通道连接。使用数量不受限制。
创建内部变量的方法很简单,如图1所示。
二、外部变量
外部变量由外部过程为其提供数值,因此也叫做"过程变量"。外部变量是基于"驱动程序-通道单元-连接"的,其与自动化系统中的数据是相对应。
创建外部变量时,首先要明确其所属的通讯链路关系:驱动程序 - 通道单元 - 连接。在相应的连接下(如图2中的NewConnection1)创建变量并为其指定PLC侧的地址,该地址可以是输入/输出过程映象区、位存储区以及DB块。
外部变量的使用数量由PowerTags授权决定。如图3所示,在WinCC的项目管理器下,给出了当前已定义的外部变量的个数和总授权数,外部变量的个数不能超出总授权数。需要注意的是,不管外部变量定义为何种数据类型:BOOL、32位浮点数等,它们都各自占用一个授权。
三、WinCC系统变量
WinCC系统提供的预先定义好的变量。每个系统变量均有明确意义,可提供现场功能。系统变量由WinCC系统创建,工程人员不能创建,但可以使用。系统变量是一种特殊的内部变量,以"@"开头,如图4所示。
四、S7系统变量
基于TIA方式创建的项目,在编译完成OS站后,STEP7会向WinCC传递S7系统变量,包括PLC变量,归档和报警等。这些变量称其为"S7系统变量"。S7系统变量默认以"S7$Program(连接名)"开头。
只有采用TIA方式创建的项目才有S7系统变量,这部分内容集中在后面的TIA中再详细讨论。
五、系统信息变量
在"驱动程序"中有一种特殊的"驱动"——WinCC系统信息通道。在WinCC的系统信息通道下,可建立专门记录系统信息的变量,例如可记录WinCC系统的当前时间、CPU占用率、磁盘容量等信息。
要使用系统信息变量,首先要添加"系统信息通道",然后在其下建立连接,在"连接"下就可以创建系统信息变量了。方法和添加"S7协议集"类似,如图5所示。
系统信息变量不占用PowerTag授权。
六、脚本变量
在脚本中定义和使用的变量,只能在其定义范围内使用,遵循C/VB语言规范。它与编程语言相关,不在变量管理器中维护。