触摸屏应用技术从入门到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第三节 HMI变量和HMI变量表

前面章节,我们学习了模板和画面的创建和组态,认识了它们的属性和关系。同时,学习了“图形视图”“符号I/O域”“日期/时间域”“文本域”“按钮”等画面对象的组态方法,认识了这些画面对象的属性和事件等,在组态画面过程中,认识和使用画面编辑窗口上的图标编辑工具,提高编辑组态效率。

第四节继续通过组态编辑画面的过程学习其它画面对象,主要是工具箱中“基本对象”“元素”和“图形”展板上的画面对象。“控件”展板上的画面对象,将用专门的章节进行介绍。

图4-3-1是已组态好的“机器实时运行状态”画面。在这个画面中新用到了“基本元素”展板中的线、矩形,“元素”展板中的I/O域和棒图等画面对象,还用到了前面学习过的文本域、按钮、图形视图等。在实时运行系统或仿真运行系统中,还能看到这个画面中的一些简单动画效果,如风机电动机的转动、警告文本域的可见/不可见等。上述诸条都要用到“变量”。在学习这个画面的编辑组态方法之前,我们先来学习变量和变量表的概念和用法。

图4-3-1 “机器实时运行状态”画面

一、HMI变量及基本属性

1. HMI变量的作用和HMI面板的变量可使用数

在图4-3-1画面中,有很多数据需要手动输入到HMI面板,或者从HMI输出显示出来。例如画面右侧的产品重量表格,第一件至第三件产品的重量需要操作人员通过触摸屏输入(若机器系统无自动称重装置),PLC或HMI计算总重后,会将重量之和从“产品重量”显示格中显示输出,还要提供给其它函数。因此,HMI设备内部必须要有四个“容器”来分别盛放输入的这四个数据,而且这四个容器中的数据值是可以改变的,因为不同批次的产品其重量是不同的。这个“容器”就是HMI的变量。

从HMI面板输入的数据保存在HMI的变量中,输出显示的数据也是来自HMI变量。

为了容纳大量的数据进行存储、传送、计算、处理分析等,就需要创建大量的变量。变量是在“变量表”中声明创建的,从第一章的精简系列面板和精智系列面板性能参数表中,可看到,第二代精简面板的最大定义变量数目是800个,精智系列面板最大定义变量数是2048个。

在变量表中定义和管理大量的变量。WinCC Advanced V13 系统有专门的变量表编辑器,用来定义和管理变量,见项目树导航中的“HMI变量”文件夹和其中的变量表编辑器、变量表等。对于图4-3-1中“产品重量”等四个数据,先在变量表中声明创建有唯一符号名的四个变量,当四个数据生成时(三个输入,一个计算输出)就保存在这四个变量中,变量随时被调用,变量值随时可被改变。

2. 变量的数据类型

一旦在HMI变量表中创建了变量,就相当于在HMI存储区开辟了一个存储单元,随时用来存放数据。HMI变量就是HMI的一个存储单元,保存的数据可能是数值数据,如整数或实数,也可能是文字字符数据,也就是保存文字字符信息。这就是变量的数据类型的设定,即在变量表中定义变量的同时,根据其值域不同,还要为变量设定数据类型,如某变量的值域是在实数范围内,则该变量的数据类型就设定为Real型,否则变量不能正常工作。很显然,变量的数据类型不同,则其作为存储单元的大小也不同。如Int型变量其存储单元大小为二进制2字节16位,Real型变量为4字节32位。

例如,三相异步电动机变频调速,设定速度给定频率值(Hz数),如果频率控制精度是±1Hz,则在变量表中定义“设定频率”变量时,其数据类型设定为整数Int型即可,因为“设定频率”这个变量的值域是±50。如果频率控制精度是±0.1 Hz,则数据类型就要设定为实数Real型。整数型“设定频率”变量不接受诸如10.2Hz的输入值。

PLC和HMI技术的科研人员、设备设计制造者为使这些智能化的设备更加方便精确地应用,将在自动化工程控制领域可能用到的各种数据信息进行分类汇总,结合电子技术、计算机技术、数制知识和人们的使用习惯为变量规定了若干数据类型,变量数据类型的制定是为更好地运用PLC和HMI技术来描述、分析生产和服务的工艺过程、处理、控制生产和服务的机器设备。采用一种类型的变量就可囊括保存和处理客观世界林林总总的所有类型的数据信息几乎是不可行的,极不经济。

理解和熟悉HMI和PLC变量的数据类型是非常重要的,初看这么多数据类型用起来复杂,实际上,变量数据类型的分类和制定使变量运用更加简约高效。

数据的类型是很多的,有整数、实数等,有正负数之分,有十进制数和二进制数,有数值和文本字符数据等。由于PLC、HMI、PC,归根结底,它们的基本运算都是以二进制形式进行的,参与运算处理的变量数据存储单元大小不同,有1位、8位、16位、32位和64位二进制数据之分,值大的数据就放到32位或64位的存储单元中,数值小的数据就放到8位或16位的存储单元中。也就是在定义变量时,如果它的二进制值域范围比较大,就为这个变量选定32位或64位的数据类型,反之就选定8位或16位的数据类型,这样既经济又提高运算速度。

在实际项目设计组态时,要根据控制量或者过程量值的内容和变化范围,为它定义变量,并设定数据类型。

3. HMI的外部变量和内部变量

触摸面板上输入的数据有些要通过通信传送到PLC控制器参与过程控制和运算,如图4-3-1中工艺参数的设定温度和设定时间。在HMI变量表中声明两个变量,保存设定温度

值和设定时间值,这两个变量要同PLC中的变量通信链接,以实现相互传送。在HMI变量表中,需要与PLC通信链接的变量称为外部变量。因而,不需要链接PLC,仅在HMI设备内部使用的HMI变量就叫内部变量。在创建变量的时候,需要声明是外部变量,还是内部变量。系统把外部变量划归到一个存储区,以方便快速与PLC通信交换数据。

外部变量是PLC中所定义的存储位置的映像。无论是HMI设备还是PLC,都可对该存储位置进行读写访问。

注意

外部变量的数据类型取决于与HMI设备相连的 PLC变量的数据类型。

如果在STEP 7 Professional中写入PLC控制程序,则在控制程序中创建的PLC变量将添加到PLC变量表中。外部变量(是HMI变量)连接到 PLC 变量,在WinCC Advanced V13运行系统中通过HMI和所连接PLC系统之间的通信连接双向传送当前变量值,从PLC传来的变量值保存在运行系统存储器中。 然后,会按照设置的周期时间定期更新变量值。WinCC Advanced V13在运行系统存储器中将访问上一周期时从 PLC 读取的变量值,然后用在运行系统项目中。反过来,在HMI运行系统存储器中的变量值可以更改PLC中的变量值。

在S7-1200或S7-1500型PLC控制器中使用PLC数组元素时,注意PLC 数组元素的索引可以任意数字开头,但在WinCC中,始终从0开始索引。例如,PLC数组变量“Array [1..3] of Int”映射到WinCC中的“Array [0..2] of Int”。在脚本中访问数组时,需注意正确的索引顺序。

内部变量不与 PLC连接。内部变量在HMI设备中传送各种值。只有运行系统处于运行状态时变量值才可用。内部变量存储在HMI设备的内存中,因此,只有这台HMI设备能够对内部变量进行读写访问,例如,可以创建内部变量来执行本地计算、数据传送和分析处理等。

内部变量的数据类型见表4-3-1。

表4-3-1 内部变量的数据类型

如定义一个Array(数组)型变量,不论是外部变量,还是内部变量,元素下标需从0开始,否则系统会报错。

在HMI变量表中声明的变量需有一个名称,也就是变量名。WinCC Advanced V13会给每个新添加的变量一个默认的变量名,通常是在前一个变量名称后缀数字。WinCC Advanced V13同样支持中文变量名,这样可以为变量命名一个与变量实际应用含义吻合的变量名。如上一段介绍的两个工艺参数变量,在HMI变量表中就可命名为“设定温度”和“设定时间”,这样做方便编程组态人员和现场维护操作人员的识别和记忆。

二、HMI外部变量的连接

在HMI变量表中创建外部变量时,必须为该变量指定“连接”,“连接”定义与HMI变量相连的PLC。HMI和PLC之间的连接类型分为集成连接和非集成连接两种类型,外部变量是在“连接”的基础上与PLC变量交换数据,实现通信,所以在WinCC Advanced V13中使用外部变量时必须为外部变量定义连接类型。

在第二章创建控制系统项目时,设备之间联网后又创建了“HMI连接”,在有关“连接”数据表格中,看到有“HMI连接”项存在,则可省略图4-3-2步骤。

图4-3-2 集成连接的创建步骤

①集成连接:在一个项目内通过“设备和网络”编辑器创建的设备连接称为集成连接。

②非集成连接:通过“连接”编辑器创建的设备连接称为非集成连接。 非集成连接的特点是所用设备并不一定要在一个项目中。

为连接PLC,需为“画面组态和编辑”项目添加PLC设备,本例选择CPU1513- 1PN,名称为“PLC_1”,方法见第二章所述。

图4-3-2给出在PorTal V13的“画面组态和编辑”项目的“设备和网络”编辑器中为HMI和PLC设备之间联网,并创建集成连接的操作步骤。这在第二章已有初步认识,这里强调集成连接的概念。上述操作创建的网络名称为“PN/IE_1”,集成连接名称为“HMI_连接_1”。

集成连接的优势在于既可通过符号方式,又可通过绝对地址方式寻址一个变量。所谓符号寻址,就是HMI的外部变量连接PLC的符号变量名称,与PLC变量存储器的绝对地址不再关联。HMI变量的有效数据类型由系统自动选择。在寻址PLC数据块中的元素时必须区分以下情况:是对具有优先访问功能的数据块还是对具有标准访问功能的数据块进行符号寻址。

在具有优先访问功能和标准访问功能的数据块进行符号寻址期间,数据块中元素的地址会动态分配并在更改时自动在 HMI 变量中采用。 在执行这一步时无需编译所连接数据块或WinCC项目。

对于具有优先访问功能的数据块,只可使用符号寻址。

对于符号寻址数据块中的元素,在发生以下变化时只需重新编译并重新装载 WinCC 项目:

①所连接数据块元素或全局 PLC 变量的名称或数据类型发生了变化。

②数据块元素或全局 PLC 变量中所连元素的较高层结构节点的名称或数据类型发生了变化。

③所连接数据块的名称发生了变更。

绝对寻址也适用于集成连接,必须使用绝对寻址从SIMATIC S7-300/400 PLC寻址 PLC 变量。如果连接了HMI变量和PLC变量并更改了PLC变量地址,那么只能重新编译控制程序来更新WinCC 中的新地址,然后重新编译WinCC项目并装载到 HMI设备。

在WinCC中,符号寻址为默认方式。要更改默认设置,请选择菜单命令“选项”→“设置”。在“设置”对话框中,选择“可视化”→“变量”。必要时,可以禁用“符号访问”选项。

在“设备和网络”编辑器中创建集成连接。 如果项目中包含PLC且支持集成连接,那么还可以自动创建该连接,即在HMI变量表中组态HMI变量时,只需选择现有的PLC变量来连接 HMI 变量,WinCC Advanced V13会自动创建集成连接。

WinCC Advanced V13同样支持非集成连接,我们现在再来看看HMI设备项下的“连接”编辑器中创建非集成连接的操作,见图4-3-3。

图4-3-3 连接编辑器中创建非集成连接

对于具有非集成连接的项目,应始终通过绝对寻址组态变量连接。手动选择有效的数据类型。如果在具有非集成连接的项目执行期间,项目中的PLC变量地址发生变更化,那么还必须在WinCC中进行相应更改。 在运行系统中无法检查变量连接的有效性,也无法发出错误消息。

非集成连接适用于所有支持的PLC,包括S7-300/400、S7-1200/1500等。

符号寻址不可用于非集成连接。对于非集成连接,控制程序无需是 WinCC 项目的组成部分,可独立组态PLC和WinCC项目。对于WinCC中的组态,只需知道PLC中所用的地址及其功能即可。

集成连接和非集成连接可通过连接的图标识别,见表4-3-2。

表4-3-2 连接的图标

集成连接和非集成连接是为变量通信,数据交换服务的。以往,S7-200/300/400PLC控制器在变量寻址时多采用绝对地址寻址方式,变量名和变量存储地址清楚对应。显然,当变量太多,控制程序比较庞大时,对编程者或阅读者来说,这么多变量和枯燥的地址编码及作用要清清楚楚调用、查询和修改是非常困难的。后来出现了符号变量,编辑识读效率提高。符号寻址变量已被众多知名PLC厂商选用,这也是PLC控制系统编程组态技术发展的重要基础。目前在线的多数控制程序都是采用绝对地址方式编制的,虽然也编配了符号变量名称,多数PLC技术维护人员习惯了这种编程寻址方式。在HMI设备与PLC设备组网时,就存在HMI的外部变量是寻址PLC变量的绝对地址,还是寻址PLC变量的符号名称。以前,西门子HMI设备和PLC设备组态编程可以分开独立进行,联网时HMI变量寻址PLC变量的绝对地址,要一一对应。但绝对地址方式寻址也有很多不足之处,西门子公司在推出S7-1200/1500新一代PLC的时候,已从项目系统的角度,将PLC组态软件STEP7和HMI组态软件WinCC整合在一起,成为博途自动化工程组态软件,并在这个过程中,重点推介符号变量及其程序组织和编译,以提高编程组态的效率和项目运行效率。但是技术的发展是连续的,所以博途自动化工程软件仍然保持了变量的绝对地址寻址,即符号变量寻址和绝对地址寻址都可以使用。所以在架构HMI和PLC网络系统时,在建立它们之间的变量通信连接时,需要声明变量是集成连接还是非集成连接。

三、在HMI变量表中创建变量

组态软件系统会为每个HMI设备自动创建一个变量表,存储在项目树HMI设备项下的“HMI变量”文件夹中。系统为其命名“默认变量表[X]”,X为含有的变量数。

为编辑组态好图4-3-1的画面,我们先在HMI变量表中为图4-3-1中的画面对象创建所必须的变量。如图4-3-4所示,打开默认变量表, 显示在编辑工作窗口,在组态软件整个显示屏下方的任务条上会显示“默认变量表”任务标签,点击之可随时关闭或打开显示。

图4-3-4 打开HMI变量表

图4-3-5是为完成图4-3-1画面的组态所创建的全部变量(显示部分),采用先前创建的集成连接,连接名称为“HMI_连接_1”,该连接指向的PLC名称为“PLC_1”。HMI外部变量寻址PLC符号变量,为了方便对照,同一个项目中,HMI外部变量的名称尽量定义和PLC的中文符号变量一致或相近,图4-3-5中“PLC变量”列指定PLC控制器中的变量名。

图4-3-5 变量表中创建集成连接型外部变量

集成连接的访问模式采用符号访问。当然集成连接也支持绝对访问。如果在创建变量的过程中,出现操作或输入错误,组态系统会以红色标记显示出错的位置,并有提示信息。

“采集周期”列显示为变量指定更新时间,图中皆为1s,由于温度变化相对较为缓慢,选用1s采集周期即可。过快的变量采集周期会增加通信的负担,周期大小取舍取决于过程控制量的变化快慢。

读者请对照图4-3-1的画面对象,看看图4-3-5变量表中,都创建了哪些变量,其中还有若干内部变量,也就是不需要与PLC通信交换数据,仅在WinCC运行系统中使用的变量。

HMI设备的外部变量的数据类型在集成连接指定PLC符号变量时,系统会自动根据PLC符号变量的数据类型定义HMI外部变量的数据类型。内部变量则需要根据实时过程中的数据值变化域为之定义数据类型,具体见表4-3-1。

创建完变量,检查无误后,单击图标命令工具“编译”,组态系统会对项目内部的变量连接进行检查复核,并编译成能够正确运行的方式,如果编译出错,例如地址有误等,会通过巡视窗口的“信息”→“编译”选项卡给出编译结果信息,图4-3-6是当前画面和变量表等组态的编译结果信息。

图4-3-6 画面和变量表编译信息

图4-3-6编译信息表明,前述组态结果错误处数为0,警告28个。主要是前面我们组态的图4-3-1所示的“机器实时运行状态”画面上很多“I/O域”画面对象没有为其组态变量。现在我们在变量表中创建了这么多变量,需要应用到画面对象中去。这个工作将在第四节学习组态“机器实时运行状态”画面时进行。编译出现的“错误”项必须修改,组态的任务才可正确运行。

接着,我们看看HMI外部变量使用非集成连接的情况。图4-3-7为全部外部变量改为非集成连接的情况说明。

图4-3-7 变量表中创建非集成连接型外部变量

本章实例外部变量选用图4-3-5的集成连接。

图4-3-5变量表的列项还有很多没有显示,可以通过在列标题行点击右键弹出的快捷菜单中,勾选“显示/隐藏”命令项下的选择项,来显示或隐藏表中的列项。

对于每个变量,在当前巡视窗格的属性选项卡上,可以组态变量的属性、事件等。

例如,可以在“属性→属性→范围”列表项中组态设定变量可以接受的最大值和最小值,假如在触摸屏上为变量输入数值超出最大和最小限值,则面板变量不予接受。这两个极限值既可以是常数,也可以是HMI变量。

在“属性→线性标定”列表项中,如果勾选“线形标定”,则PLC变量转换到HMI变量时有一个可以设定的线性转化关系。例如可以设定PLC变量在4~20之间变化时对应HMI变量的变化范围是0~100,这方便了变量的线性转换的操作运算。

在“属性→值”列表项中,HMI变量可以在组态时预置初值。

在“属性→指针化”列表项中,勾选“指针化”选项,可以通过定义一个索引变量(PLC变量、HMI变量都可以充当)分时复用寻址多个PLC变量。

在变量的“属性→事件”选项卡上,组态变量出现“数值更改”“超出上限”和“超出下限”等事件时执行的函数。例如报警功能,当实际温度超出设定温度时,触发报警信号等。