西门子触摸屏VBScript编程系列教程(3)——变量
今天,我们来深入探讨WinCC中的变量,并学习如何利用VBScript脚本访问这些变量。本文中使用的软件为WinCC专业版。在WinCC的配置中,我们通常在左侧项目树下的“HMI变量”部分声明变量。这些变量划归于变量表管理,变量表可以在默认的变量子集中使用,也可以根据需求新增。比如下面的插图展示了如何声明一个名为“conveySystem”的变量集:
在变量表内声明的变量被视为全局变量,在整个项目中都能运用。一旦将变量添加到变量表中,就可以在画面设置或VBScript脚本中直接引用这些变量。全局变量名称在整个项目中共享,必须避免重复。需要明确的是,WinCC对变量名称的大小写感知并不严格,举例如下:“startMotor”和“startmotor”实际上指向同一变量。
全局变量根据其访问范围的不同,分为内部变量与外部变量。外部变量指那些通过PLC连接进行配置的变量,其内部结构旨在与PLC中的变量相对应。修改外部变量直接影响到PLC内的同名变量。相反,内部变量专用于WinCC内部操作,对其修改不直接影响PLC变量。以下面的示例作为说明:
假设“conveySystem”变量表内涉及以下变量:
startMotor1 和 stopMotor1 为外部变量,其连接属性为“HMI_connection_1”,它与“PLC_1”中的startMotor1和stopMotor1变量相对应。在WinCC中的逐个改动会映射到PLC中的同一变量。
motorStarted 和 motorStopped 为内部变量,其用途仅限于当前WinCC项目内的操作。
Canvas中提供了SmartTags对象来简化访问全局变量的过程,助您通过脚本直接修改它们。示例代码如下:
适配部分高级WinCC RT版本,同样支持直接引用变量名称访问全局变量,这种访问方式有助于实现更高效的变量管理功能。
除了通过变量表定义全局变量外,我们也可以在VBScript代码中使用“Dim”关键字声明全局变量,这种局部变量仅在函数或过程内部有效。如下所示:
无需指定大小写或预设数据类型,在声明时灵活性更强。不过需要注意,局部变量的作用域仅限于当前脚本,一旦函数或过程执行完毕,这些变量将不会继续影响系统状态。