1. 变量分类:总得分类算两种外部变量和内部变量。软件授权的变量数量就是说的外部变量的数量,内部变量不计入授权。
a. 外部变量:就是和外部设备的变量,就是通过连接,创建驱动之后创建的各种变量,比如PLC,OPC驱动等。外部变量中的UDT(自定义数据类型),可以直接从PLC里面选择已经定义好的数据类型,这种方法只支持符号访问。在WinCC Unified里面也可以创建自己的HMI用户数据类型(UDT),这种方式可以使用绝对地址方式寻址。

b. 内部变量又分两种,自己创建的变量和系统变量
ⅰ. 内部变量:一般是只在WinCC内部使用的变量。内部变量可以在属性里面勾选上保持后,退出运行系统之后,变量值可以保持,再次启动后,内部变量就会自动恢复到退出之前的数值。数据保持的位置可以进行设置,保持存储的数据库,在运行系统设置-->存储系统里面可以设置,一般情况下都保持到项目文件夹内。

ⅱ. 系统变量:在运行系统中显示相关的系统信息,属于内部变量,比如@DiagnosticslndicatorTag,显示驱动连接的诊断状态;@LocalMachineName:包含本地计算机的名称;@UserName包含当前登录的用户等,每个变量的含义,在软件的帮助里面都有说明。
2. 变量访问方式:支持符号访问和绝对地址访问
a. 符号访问:WinCC按PLC内变量的名称寻址,适用于S7-1200/1500 PLC 集成连接访问,可以通过拖拽的方式创建变量,比较方便。
b. 绝对地址访问:用户手动创建变量,然后输入变量的绝对地址,这个适用性比较广,适用于所有类型的连接。这种访问方式,S7-1200/1500的数据块,需要再属性里面取消勾选“优化的块访问”,并进行编译后才有绝对地址。
3. 变量读写权限:在PLC里面可以设置变量是否允许被HMI访问,其中1200/1500PLC可以单独设置是否允许读写/可见;300/400PLC中低版本的固件,只能设置是否可见,不可见也能读写。


4. 采集模式:有"循环操作"和"必要时"两种采集方式
a. “循环操作”(Cyclic operation):只要变量在画面中显示或归档,便会定期进行更新。这个模式可以选择不同的采集周期,最快是100ms,具体的周期可以在项目的周期里面设置。一般情况下使用的都是这种方式。
b. “必要时”:使用命令刷新,例如,只有当通过脚本或使用“UpdateTag”系统函数请求时才会更新变量。
5. 多路复用:这个是使用的非常多的功能,多个重复设备的控制和状态显示,做画面模板的时候,都会用到这个功能。
a. 绝对地址寻址方式:可以直接把数据块编号,对应的绝对地址使用内部变量进行简介寻址,改变其地址来实现多路复用的功能。创建这种方式的寻址方式的时候,根据需要输出变量名称和数据类型、要连接的PLC,然后访问模式选择绝对访问,在地址属性点击下拉框,在DB号和地址属性里面,点击最右边的那个按钮选择HMI_Tag,然后选择对应的变量,这个变量内部外部变量都可以。如果是I、M、Q类型的地址,那只在地址栏里面选择就可以了。

如果是布尔类型的变量,就需要填写地址和位号对应的属性。

b. 符号寻址方式:只能使用数组类型的变量,通过间接改变数组下标来实现多路复用,这个方式只适合符号寻址的变量。


c. 启用间接寻址:使用内部变量存储变量名称,给这间接寻址的变量赋值不同的变量字符串,这个字符串就代表变量的名称。这个设置一般是在画面对象连接变量的地方,比如IO域,在设置里面当你勾选上使用间接寻址之后,这个IO显示的内容就是变量值对应的变量的值。

输入的字符串要注意字母的大小写要和变量一样,要不然会不能正确显示,这应该也是JavaScript语言的特性决定的。


视频课程学习链接:
https://1847.siemens.com.cn/course/detail/1/18076/4893