组态王应用技术分析内容覆盖了“组态王”软件的大部分基本功能,具体包括工程管理器、工程浏览器、I/O设备管理、变量定义与管理、画面与动画连接、趋势曲线和报警信息、命令语言等主要功能应用分析等。
其中,工程管理器与工程浏览器是应用工程组态的平台;I/O设备管理、变量定义与管理、画面与动画连接等是完成应用工程项目组态的工作内容。读者应在了解熟悉前者的基础上,重点掌握I/O设备管理、变量定义与管理、画面与动画连接等内容。本节内容编排也是按照这样的顺序进行的,有一定基础的读者可以跳过前者,在学习后者的过程中进一步熟悉前者。
7.2.2.1 工程管理器的应用
工程管理器实现了对组态王应用工程的集中管理,主要作用是集中管理用户计算机上的所有组态王应用工程。工程管理器的主要功能包括新建工程与删除工程、搜索指定路径下的所有组态王工程、修改工程属性、工程的备份与恢复、数据词典的导入与导出、切换到组态王开发或运行环境等。
本节仅对工程管理器的主要功能应用进行概要说明,具体菜单命令的详细介绍请见组态王用户手册。
1.工程管理器
工程管理器界面简洁友好,易学易用,具有通用Windows系统的属性风格,界面从上至下大致分为三个部分,菜单栏与工具栏、工程信息显示区、状态栏,如图7-2所示。
工程信息显示区显示了用户计算机上所有的组态王工程,其中阴影部分为当前工程。
2.工程管理器的应用
(1)新建工程 组态王提供新建工程向导工具,利用向导新建工程,用户操作更简便、简单。单击菜单栏“文件/新建工程”命令或工具栏中【新建】按钮或快捷菜单中“新建工程”命令后,弹出“新建工程向导”对话框,按向导要求操作就可以完成一个组态王工程的新建工作。此处新建的工程,只是在给定的工程路径下设置了工程信息,当将此工程作为当前工程,并且切换到组态王开发环境时,才可以进入创建工程的工作。
图7-2 组态王工程管理器界面
图7-3 添加工程路径选择对话框
(2)打开已建工程 在工程管理器中使用“添加工程”命令,可以找到一个已有的组态王应用工程,并将工程的信息显示在工程管理器的信息显示区中。单击菜单栏中“文件/添加工程”命令或工具栏中【添加工程】按钮后,弹出添加工程路径选择对话框,如图7-3所示。
(3)当前工程设置 被设置为当前工程的工程在工程管理器信息显示区的第一列中用一个图标(小红旗)来标识,如图7-4中Kingdemo1所示。进入组态王开发系统或运行系统时,系统将默认打开该工程。
在工程管理器工程信息显示区中,选中想要设置的工程,单击菜单栏中“文件/设为当前工程”命令或工具栏中【设为当前工程恢复】按钮即可设置该工程为当前工程。
(4)工程备份和恢复工程 备份命令是将选中的组态王工程按照指定的格式进行压缩备份。恢复命令是将组态王的工程恢复到压缩备份前的状态。下面分别讲解如何备份和恢复组态王工程。
1)工程备份:工程备份步骤是选中要备份的工程,单击菜单栏中“工具/工程备份”命令或工具栏中【备份】按钮或快捷菜单“工程备份”命令后,弹出“备份工程”对话框,如图7-5所示。
工程备份文件又分为两种形式:不分卷和分卷。不分卷是指将工程压缩为一个备份文件,无论该文件有多大。分卷是指将工程备份为若干指定大小的压缩文件。
工程不分卷备份:选择该选项,系统将把整个工程压缩为一个备份文件。单击“浏览”按钮,选择备份文件存储的路径和文件名称,工程将被存储成扩展名为.cmp的文件,如filename.cmp。系统的默认方式为不分卷。
图7-4 设置当前工程界面
图7-5 “备份工程”对话框
工程分卷备份(自定义):选择该选项,系统将把整个工程按照给定的分卷尺寸压缩为给定大小的多个文件。“分卷尺寸”文本框变为有效,在该文本中输入分卷的尺寸,即规定每个备份文件的大小,单位为兆字节。分卷尺寸不能为空,否则系统会提示用户输入分卷尺寸大小。单击【浏览】按钮,选择备份文件存储的路径和文件名称。分卷文件存储时会自动生成一系列文件,生成的第一个文件的文件名为所定义的文件名.cmp,其他依次为文件名.c01、文件名.c02…。如果定义的文件名为filename,则备份产生的文件为filename.cmp、filename.c01、filename.c02…。如果用户指定的存储路径为软驱,在保存时,若磁盘满,则系统会自动提示用户更换磁盘。备份过程中在工程管理器的状态栏的左边有文字提示,右边有备份进度条标识当前进度。
2)恢复工程:选择要恢复的工程,单击菜单栏中“工具/工程恢复”命令或工具栏中【恢复】按钮或快捷菜单中“工程恢复”命令后,弹出“选择要恢复的工程”对话框,如图7-6所示。
图7-6 “选择要恢复的工程”对话框
选择组态王备份文件——扩展名为.cmp的文件,如上例中的filename.cmp。单击【打开】按钮,弹出“恢复工程”对话框,如图7-7所示。
单击【是】按钮,则以前备份的工程覆盖当前的工程。如果恢复失败,系统会自动将工程还原为恢复前的状态。恢复过程中,工程管理器的状态栏上会有文字提示信息和进度条显示恢复进度。
图7-7 “恢复工程”对话框
(5)删除工程 选中要删除的工程,该工程为非当前工程,使之加亮显示,单击菜单栏中“文件/删除工程”命令或工具栏中【删除】按钮或快捷菜单中“删除工程”命令后,为防止用户误操作,弹出删除工程确认对话框,提示用户是否确定删除,如图7-8所示。单击【是】按钮,则删除工程,单击【否】按钮取消删除工程操作。确认删除工程后,将从工程管理器中删除该工程的信息,工程所在目录包括子目录,将被全部删除。
图7-8 “删除工程”对话框
7.2.2.2 工程浏览器应用
工程浏览器是组态王的一个重要组成部分。它将图形画面、命令语言、设备驱动程序、配方、报警、网络等工程元素集中管理。组态王工程浏览器的结构如图7-9所示。
图7-9 组态王工程浏览器
工程浏览器的操作界面与Windows中的资源管理器非常类似,为工程项目的管理提供了高效的手段。组态王开发系统内嵌于组态王工程浏览器,又称为画面开发系统,是应用程序的集成开发环境,工程人员在这个环境里进行系统组态开发。
1.工程浏览器基本结构组成
组态王的工程浏览器由Tab标签条、菜单栏、工具栏、工程目录显示区、目录内容显示区、状态栏组成。工程目录显示区以树形结构图显示功能节点,用户可以扩展或收缩工程浏览器中所列的功能项。
工程浏览器左侧是工程目录显示区,主要展示工程的各个组成部分,包括系统、变量、站点和画面四个部分,这四个部分的切换是通过工程浏览器最左侧的Tab标签实现的。右侧是目录内容显示区,将显示每个工程组成部分的详细内容,同时对工程提供必要的编辑修改功能。
(1)系统部分 共有Web、文件、数据库、设备、系统配置和SQL访问管理器等六大项,如图7-9所示。
1)Web:组态王以太网功能界面发布工具。
2)文件:主要包括画面、命令语言、配方和非线性表。其中,命令语言又包括应用程序命令语言、数据改变命令语言、事件命令语言、热键命令语言和自定义函数命令语言。
3)数据库:主要包括结构变量、数据词典和报警组。
4)设备:主要包括COM1(串行口1)、COM2(串行口2)、DDE设备、板卡、OPC服务器和网络站点。
5)系统配置:主要包括设置开发系统、设置运行系统、报警配置、历史数据记录、网络配置、用户配置和打印配置。
6)SQL访问管理器:主要包括表格模板和记录体。
(2)变量部分 主要为变量管理,包括变量组。
(3)站点部分 显示定义的远程站点的详细信息。
(4)画面部分 用于对画面进行分组管理,创建和管理画面组。
2.工程浏览器应用功能的作用
本节介绍借助工程浏览器完成画面新建、画面管理以及组态王画面开发系统菜单应用分析等内容。
(1)画面的新建和管理
1)新建一个画面:使用工程管理器新建一个组态王工程后,进入组态王工程浏览器,新建组态王画面。新建画面的方法有三种。
①在“系统”标签页的“画面”选项下新建画面。单击工程浏览器左边“工程目录显示区”中“画面”项,右面“目录内容显示区”中显示“新建”图标,用鼠标双击该图标,弹出“新画面”对话框,如图7-10所示。
图7-10 “新画面”对话框
②在“画面”标签页中新建画面。用右键单击“新建”画面图标,在显示的快捷菜单中选择“新建画面”命令,如图7-11所示。
③单击工具栏中【MAKE】按钮或用右键单击工程浏览器空白处,从显示的快捷菜单中选择“切换到Make”命令,进入组态王“开发系统”。选择“文件/新画面”菜单命令,弹出“新画面”对话框,如图7-10所示。
2)查找画面:在工程浏览器的工具栏中,提供了“大图标”、“小图标”、“详细资料”三种工具,用来控制画面在目录内容显示区中显示的方式。无论以哪种方式显示,画面在目录内容显示区中都是按照画面名称顺序进行排列的。可以从排好顺序的画面中直接查找所需的画面。
另外,组态王还提供了查找画面的工具。选择工程浏览器左边“工程目录显示区”中“画面”项,在右面“目录内容显示区”中空白处,单击右键显示快捷菜单,如图7-11所示,选择“查找“命令,弹出“查找”对话框,如图7-12所示。
输入所要查找的画面名称,选择查找方式——模糊查找、精确查找,然后选择是否查找到后直接进行编辑,选择完成后单击【确定】按钮,开始查找画面。如果查找到的话,鼠标光标将高亮显示所查找到的第一个符合条件的画面。如果没有找到,系统会提示在系统中没有找到画面。
图7-11 “新建画面”快捷菜单
图7-12 “查找”对话框
3)画面分组管理功能:当工程中的画面比较多时,开发者查找某个画面时会有一定的困难。而且开发者往往需要建立一些内容基本相同的画面,比如各I/O数据采集站,如果工况相同,画面上包含的图素内容就大体相同,如果每个采集站的画面都需要重新制作的话,势必会增加开发者的劳动量和劳动时间。为此,组态王提供了画面的分组管理功能,对画面进行分组管理,开发者可以根据需要,将画面放入不同的画面组中,这样在修改和选择画面时,只需到相应的组内去找就可以了,方便了用户的使用。另外,组态王还提供了画面的复制和剪切的功能:开发者可以对画面进行复制,在某个画面组下进行粘贴,这样就节省了开发者制作画面的时间,避免了重复劳动;开发者还可以通过组态王提供的画面剪切-粘贴的功能,根据需要将画面从一个画面组移到另一个画面组。
(2)组态王画面开发系统菜单的分析 组态王画面开发系统内嵌于组态王工程浏览器中,也就是图形组态组件,是应用程序的集成开发环境,工程人员在这个环境里进行系统画面组态。
单击工程浏览器工具栏中【Make】按钮或用右键单击工程浏览器空白处,从显示的快捷菜单中选择“切换到Make”命令,进入组态王开发系统,如图7-13所示。此时开发系统没有画面打开,菜单栏只有“文件”和“帮助”两栏。当打开或新建一个画面时,开发系统菜单与图7-13显示不同,如图7-14所示。
图7-13 组态王界面开发系统菜单
(3)组态王画面属性设置 对于图7-10中各个项目的填写,是画面属性的设置问题。各项参数的设置唯一地确定了该画面的显示风格、色彩等内容。
在对话框中可定义画面的名称、大小、位置、风格,以及画面在磁盘上对应的文件名。该文件名可由组态王自动生成,工程人员可以根据自己的需要进行修改。输入完成后,单击【确定】按钮使当前操作有效,或单击【取消】按钮放弃当前操作。
1)画面名称:在此编辑框内输入新画面的名称,画面名称最长为20个字符。如果在画面风格里选中“标题杆”复选框,此名称将出现在新画面的标题栏中。
2)对应文件:此编辑框输入本画面在磁盘上对应的文件名,也可由组态王自动生成默认文件名。工程人员也可根据自己需要输入。对应文件名称最长为8个字符。画面文件的扩展名必须为“.pic”。
3)注释:此编辑框用于输入与本画面有关的注释信息。注释最长为49个字符。
4)画面位置:输入6个数值来决定画面显示窗口位置、大小和画面大小。其中,左边和顶边位置形成画面左上角坐标;显示宽度和显示高度是指显示窗口的宽度和高度,以像素为单位计算;画面宽度和画面高度是指画面的大小,是画面总的宽度和高度,总是大于或等于显示窗口的宽度和高度。
画面的最大宽度和高度为4个显示屏幕大小(以1024像素×768像素标准显示屏幕大小),也就是说可定义画面的最大宽度和高度为4096像素×3072像素。如指定的画面宽度或高度小于显示窗口的大小,则自动设置画面大小为显示窗口大小。
当定义画面的大小小于或者等于显示窗口大小时,不显示窗口滚动条;当画面宽度大于显示窗口宽度时,显示水平滚动条;当画面高度大于显示窗口高度时,显示垂直滚动条。可用鼠标拖动滚动条,拖动滚动条时画面也随之滚动。
图7-14 组态王界面开发系统菜单
5)画面风格:包括标题杆、大小可变、类型、背景色、边框等选项。
①标题杆。此复选框用于决定画面是否有标题杆。若有标题杆,选中此复选框在其前面的小方框中有“√”号显示,开发系统画面标题杆上将显示画面名称。
②大小可变。此复选框用于决定画面在开发系统(Touch Explorer)中是否能由工程人员改变大小。改变画面大小的操作与改变Windows窗口相同。鼠标挪动到画面边界时,鼠标箭头变为双向箭头,拖动鼠标,可以修改画面的大小。
③类型。主要是指在运行系统中,有两种画面类型可供选择。“覆盖式”:新画面出现时,它重叠在当前画面之上,关闭新画面后被覆盖的画面又可见;“替换式”:新画面出现时,所有与之相交的画面自动从屏幕上和内存中删除,即所有画面被关闭。建议使用“替换式”画面,以节约内存。
④边框。画面边框有三种样式,可从中选择一种。只有当“大小可变”复选框没有被选中时,该选项才有效,否则灰色显示无效。
⑤背景色。此按钮用于改变窗口的背景色,按钮中间是当前默认的背景色。用鼠标单击此按钮后出现一个浮动的调色板窗口,可从中选择一种颜色。
6)命令语言(画面命令语言):根据程序设计者的要求,画面命令语言可以在画面显示时执行、隐含时执行或者在画面存在期间定时执行。如果希望定时执行,还需要指定时间间隔。
(4)组态王画面开发系统菜单 组态王画面开发系统菜单部分包括文件、编辑、排列、工具、图库、画面、帮助等项目。各菜单内又有相应的下拉子菜单分别完成相应功能,详见参考资料《组态王用户手册》或组态王帮助文件。
7.2.2.3 I/O设备管理
组态王系统可以与不同的硬件设备组成上下位机系统,根据不同的硬件设备配置相应的通信驱动程序。组态王驱动程序采用最新软件技术,使通信程序和组态王构成一个完整的系统。这种方式既保证了运行系统的高效率,也使系统能够达到很大的规模。
组态王支持的下位机硬件设备包括可编程序控制器(PLC)、智能模块、板卡、智能仪表和变频器等。工程人员可以把每一台下位机看做一种设备,不必关心具体的通信协议,只需要在组态王的设备库中选择设备的类型,然后按照“设备配置向导”的提示,一步步完成安装即可,这一过程也称之为设备组态,其本质是进行驱动程序的配置。
组态王支持的几种通信方式:串行口通信、数据采集板、DDE通信、人机界面卡、网络模块、OPC等。
1.I/O设备管理
组态王I/O设备管理在工程浏览器中完成,已配置好驱动程序的设备统一列在工程浏览器界面下的设备分支之中。组态王对设备的管理是通过对逻辑设备名的管理来实现的。
(1)相关概念 介绍组态王软件设备组态中涉及的相关概念。
1)设备名称:是指组态王的设备管理结构列出的已配置了相应驱动程序的物理设备名称,特指不同厂商的设备名称,如西门子公司PLC、研华公司板卡等的具体型号。
2)逻辑设备名称:是指组态王连接的具体下位机I/O设备,有一个下位机I/O设备就必须指定一个唯一的逻辑设备名,特别是设备型号完全相同的多台I/O设备,也要指定不同的逻辑设备名。比如有两台型号为西门子公司S7-200PLC作为下位机控制工业生产现场,同时这两台PLC均要与装有组态王的上位机通信,则必须给两台S7-200PLC指定不同的逻辑名。
3)设备配置向导:组态王的设备管理提供了设备的配置向导,按照配置向导的提示选择I/O设备的生产厂商、设备名称、通信方式,指定设备的逻辑名称、进行相应的参数设置,则组态王自动完成逻辑设备的配置。
4)组态王I/O变量与I/O设备的关系:组态王I/O变量与I/O设备的数据交换就是通过逻辑设备名来实现的,在组态王中定义I/O变量属性时,要指定与该I/O变量进行数据交换的逻辑设备名。
(2)I/O设备分类 组态王设备管理中的逻辑设备分为DDE设备、板卡类设备(即总线型设备)、串行口类设备、人机界面卡、网络模块,工程人员根据自己的实际情况通过组态王的设备管理功能来配置定义这些逻辑设备,下面分别介绍这五种逻辑设备。
1)DDE设备:是指与组态王进行DDE数据交换的Windows独立应用程序,因此DDE设备通常就代表了一个Windows独立应用程序,该独立应用程序的扩展名通常为.exe文件,组态王与DDE设备之间通过DDE协议交换数据,如Excel是Windows的独立应用程序,当Excel与组态王交换数据时,就是采用DDE的通信方式进行的。
2)PC总线采集板卡:简称为板卡类设备,实际上是组态王内嵌的板卡驱动程序的名称,内嵌的板卡驱动程序不是一个独立的Windows应用程序,而是以动态/链接库(DLL)形式供组态王调用,这种内嵌的板卡驱动程序与对应计算机总线扩展槽中的I/O设备相对应,因此一个板卡逻辑设备也就代表了一个实际插入计算机总线扩展槽中的I/O扩展板卡。
3)串行口类设备:实际上是组态王内嵌的串行口驱动程序的名称,内嵌的串行口驱动程序不是一个独立的Windows应用程序,而是以DLL形式供组态王调用,这种内嵌的串行口驱动程序对应实际上与计算机串行口相连的I/O设备,一个串行口逻辑设备也就代表了一个实际与计算机串行口相连的I/O设备。如前面设备连接事例所示,连接的是西门子公司S7-200PLC。
4)人机界面卡:又可称为高速通信卡,它既不同于板卡,也不同于串行口通信,它往往由硬件供应商提供,如西门子公司的S7-300 PLC用的多点接口(MPI)卡、莫迪康公司的SA85卡。通过人机界面卡可以使设备与计算机进行高速通信,这样不占用计算机本身所带RS-232串行口,因为这种人机界面卡一般插在计算机的工业标准体系结构(ISA)板槽上。
5)网络模块:组态王利用以太网和TCP/IP可以与专用的网络通信模块进行连接,例如选用松下ET-LAN通信单元通过以太网与上位机相连,该单元和其他计算机上的组态王运行程序使用TCP/IP。
(3)组态王与OPC规范OPC规范包括OPC服务器和OPC客户两个部分,其实质是在硬件供应商和软件开发商之间建立了一套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程。
组态王充分利用了OPC服务器的强大性能,为工程人员提供方便高效的数据访问能力。在组态王中,可以同时挂接任意多个OPC服务器,每个OPC服务器都被作为一个外部设备,工程人员可以定义、增加或删除它,如同一个PLC或仪表设备一样。
2.典型I/O设备设置分析
(1)S7-200PLC设备设置分析 本事例选择组态王与西门子公司S7-200PLC通信设置为例,说明组态王设备配置向导的作用。
1)选择物理设备:选择工程浏览器左侧大纲项“设备/COM1”,在工程浏览器右侧用鼠标左键双击“新建”图标,运行“设备配置向导”,依次选择PLC、西门子、S7-200系列、PPI,如图7-15所示。单击【下一步】按钮,继续设备配置向导。
2)选择设备名称:在上述步骤下,单击【下一步】按钮,弹出如图7-16所示的“设备配置向导——逻辑名称”对话框,输入设备名称,如S7-200(组态王不支持S7-200的名称形式)。
3)通信端口与设备地址定义:按照实际计算机与PLC连接的串行口端号输入如图7-17a所示,设备地址按照组态王相关规定,如图7-17b所示。单击【下一步】按钮,继续弹出“设备配置向导”对话框,进行参数属性设置。
图7-15 西门子公司PLC设备对话框
图7-16 “设备配置向导——逻辑名称”对话框
4)设备相关参数设置:设置通信故障恢复参数(一般情况下,使用系统默认设置即可),按规定键入通信参数,选择默认值即可,如图7-18所示。
5)完成设备定义:单击【下一步】按钮,弹出图7-19所示对话框。检查各项设置是否正确,确认无误后,单击【完成】按钮即可。
图7-17 设备通信端口与设备地址对话框
a)设备通信端口对话框 b)设备地址对话框
设备定义完成后,可以在工程浏览器的右侧看到新建的外部设备“PLC”。在定义数据库变量时,只要把I/O变量连接到这台S7-200设备上,组态王就可以和PLC交换数据。
(2)模拟设备分析 程序在实际运行中是通过组态王I/O设备和下位机交换数据的,当程序在调试时,可以使用仿真I/O设备模拟下位机向画面程序提供数据,为画面程序的调试提供方便。组态王提供一个仿真PLC设备,用来模拟实际设备向程序提供数据,供用户调试。
图7-18 西门子公司PLC通信参数设置对话框
图7-19 西门子公司PLC设备设置完毕对话框
仿真PLC可以模拟PLC为组态王提供数据。假设仿真PLC连接在计算机的COM1。在组态王工程浏览器的左侧选中“COM1”,在右侧双击“新建”,运行“设备配置向导”。选择“仿真PLC”的“串口”项,单击【下一步】按钮;为外部设备取一个名称,输入“PLC1”,单击【下一步】按钮;为设备选择连接串行口,假设为COM1,单击【下一步】按钮;填写设备地址,假设为1,单击【下一步】按钮;请检查各项设置是否正确,确认无误后,单击【完成】按钮。设备定义完成后,可以在工程浏览器的右侧看到新建的外部设备“PLC1”。在定义数据库变量时,只要把I/O变量连接到这台设备上,它就可以和组态王交换数据了。具体内容请参见《组态王用户手册》。
3.I/O设备测试分析
(1)开发环境下的设备通信状态的测试 为测试上下位机间的通信是否正常,在完成设备组态配置与物理连接后,用户在组态王开发环境中即可以对硬件进行测试。当选择某台设备后,单击鼠标右键弹出浮动式菜单,除DDE外的设备均有菜单项“测试设备名”。使用设备测试时,单击“测试...”命令对于不同类型的硬件设备将弹出不同的对话框,对话框共分为两个选项卡:通信参数、设备测试。“通信参数”选项卡中主要定义设备连接的串行口的参数、设备的定义等。设备测试时要选择与进行通信测试的设备相对应的寄存器。
开发环境下的设备通信测试,使用户很方便地就可以了解设备的通信能力,而不必先定义很多的变量和做一大堆的动画连接,省去了很多工作,而且也方便了变量的定义。
(2)运行环境下设备通信状态的判断 组态王的驱动程序(除DDE外)为每一个设备都定义了CommErr寄存器,该寄存器表征设备通信的状态,是故障状态还是正常状态。另外,用户还可以通过修改该寄存器的值控制设备通信的通断。
在使用该功能之前,应该先为该寄存器定义一个I/O离散型变量,变量为读/写型。当该变量的值为0或被置为0时,表示通信正常或恢复通信。当变量的值为1或被置为1时,表示通信出现故障或暂停通信。
另外,当某个设备通信出现故障时,画面上与故障设备相关联的I/O变量的数值输出显示都变为“???”号,表示出现了通信故障。当通信恢复正常后,该符号消失,恢复为正常数据显示。
7.2.2.4 变量定义与管理
数据库是组态王最核心的部分。在组态王运行时,工业现场的生产状况要以动画的形式反映在计算机显示器上,同时工程人员在计算机前发布的指令也要迅速送达生产现场,所有这一切都是以实时数据库为中介环节,数据库是联系上位机和下位机的桥梁。在数据库中存放的是变量的当前值,变量包括系统变量和用户定义的变量。变量的集合形象地称为“数据词典”,数据词典记录了所有用户可使用的数据变量的详细信息。
1.变量的分类
组态王系统中定义的变量与一般程序设计语言(比如Basic、Pascal、C语言)定义的变量有很大的不同,既能满足程序设计的一般需要,又能满足工业控制软件的特殊需要。
(1)基本变量类型 变量的基本类型共有两类:内存变量和I/O变量。
内存变量是指那些不需要和其他应用程序交换数据,也不需要从下位机得到数据,只在组态王内需要的变量,比如计算过程的中间变量,就可以设置成“内存变量”。
I/O变量是工业控制过程中的各种实际物理量。I/O变量要通过相应的下位机物理设备与组态王进行连接通信,如PLC、数据采集板卡、智能仪表等都可作为下位机设备。组态王内部建有相应的下位机设备驱动程序,通过程序完成双向的、动态的数据交换,也就是说:在组态王系统运行过程中,每当I/O变量的值改变时,该值就会自动写入下位机或其他应用程序;每当下位机或应用程序中的值改变时,组态王系统中的变量值也会自动更新。
I/O变量按物理量的物理形态分类,有开关的通断、位移、速度、加速度、质量、大小、颜色、电压、电流、温度、压力、流量、液位、物质浓度、亮度、酸碱度、种类繁多的化学及生物物理量等。
(2)变量的数据类型 变量的数据类型与一般程序设计语言中的变量比较类似,主要有以下几种:
1)实型变量:类似一般程序设计语言中的浮点型变量,用于表示浮点(Float)型数据,取值范围为10E-38~10E+38,有效值为7位。
2)离散变量:类似一般程序设计语言中的布尔(Bool)变量,只有0、1两种取值,用于表示一些开关量。
3)字符串型变量:类似一般程序设计语言中的字符串变量,可用于记录一些有特定含义的字符串,如名称、密码等,该类型变量可以进行比较运算和赋值运算。字符串长度最大值为128个字符。
4)整数变量:类似一般程序设计语言中的有符号长整数型变量,用于表示带符号的整型数据,取值范围为-2147483648~2147483647。
5)结构变量:当组态王工程中定义了结构变量时,在变量类型的下拉列表框中会自动列出已定义的结构变量,一个结构变量作为一种变量类型,结构变量下可包含多个成员,每一个成员就是一个基本变量,成员类型可以为内存离散、内存长整型、内存实型、内存字符串、I/O离散、I/O长整型、I/O实型、I/O字符串。
(3)特殊变量类型 特殊变量类型有报警窗口变量、历史趋势曲线变量、系统预设变量三种。这几种特殊类型的变量正是体现了组态王系统面向工控软件、自动生成人机界面的特色。
1)报警窗口变量:它是工程人员在制作画面时通过定义报警窗口生成的,在报警窗口定义对话框中有一选项为“报警窗口名”,工程人员在此处输入的内容即为报警窗口变量。此变量在数据词典中是找不到的,是组态王内部定义的特殊变量。可用命令语言编制程序来设置或改变报警窗口的一些特性,如改变报警组名或优先级、在窗口内上下翻页等。
2)历史趋势曲线变量:是工程人员在制作画面时通过定义历史趋势曲线时生成的,在历史趋势曲线定义对话框中有一选项为“历史趋势曲线名”,工程人员在此处输入的内容即为历史趋势曲线变量(区分大小写)。此变量在数据词典中是找不到的,是组态王内部定义的特殊变量。工程人员可用命令语言编制程序来设置或改变历史趋势曲线的一些特性,如改变历史趋势曲线的起始时间或显示的时间长度等。
3)系统预设变量:预设变量中有8个时间变量是系统已经在数据库中定义的,用户可以直接使用。
$年:返回系统当前日期的年份。
$月:返回1~12之间的整数,表示当前日期的月份。
$日:返回1~31之间的整数,表示当前日期的日。
$时:返回0~23之间的整数,表示当前时间的时。
$分:返回0~59之间的整数,表示当前时间的分。
$秒:返回0~59之间的整数,表示当前时间的秒。
$日期:返回系统当前日期字符串。
$时间:返回系统当前时间字符串。
以上变量由系统自动更新,工程人员只能读取时间变量,而不能改变它们的值。预设变量还有$用户名、$访问权限、$启动历史记录等。
2.变量定义与变量属性的设置
(1)变量定义 内存离散、内存实型、内存长整数、内存字符串、I/O离散、I/O实型、I/O长整数、I/O字符串等八种基本类型的变量是通过“变量属性”对话框定义的,同时在“变量属性”对话框的“基本属性”选项卡中设置它们的部分属性。
在工程浏览器中左边的目录树中选择“数据词典”项,右侧的内容显示区会显示当前工程中所定义的变量。双击“新建”图标,弹出“定义变量”对话框,如图7-20所示。
图7-20 “定义变量”对话框
组态王的变量属性由基本属性、报警定义、记录和安全区三个选项卡组成。采用这种选项卡管理方式,用户只要用鼠标单击某选项卡,则该选项卡有效,用户可以定义相应的属性。
(2)变量的基本属性设置“定义变量”对话框的“基本属性”选项卡中的各项用来定义变量的基本特征,各项意义解释如下:
1)变量名:唯一标识一个应用程序中数据变量的名称,同一个应用程序中的数据变量不能重名,数据变量名区分大小写,最长不能超过31个字符。用鼠标单击编辑框的任何位置进入编辑状态,工程人员此时可以输入变量名称,变量名可以是汉字或英文名字,第一个字符不能是数字。例如,温度、压力、液位、var1等均可以作为变量名。
2)变量类型:在对话框中只能定义八种基本类型中的一种,用鼠标单击变量类型下拉列表框列出可供选择的数据类型。当定义有结构模板时,一个结构模板就是一种变量类型。
3)描述:用于输入对变量的描述信息。例如若想在报警窗口中显示某变量的描述信息,可在定义变量时,在描述编辑框中加入适当说明,并在报警窗口中加上描述项,则在运行系统的报警窗口中可见该变量的描述信息(最长不超过39个字符)。
4)变化灵敏度:数据类型为模拟量或整型时此项有效。只有当该数据变量的值变化幅度超过“变化灵敏度”时,组态王才更新与之相连接的画面显示(默认为0)。
5)最小值与最大值:最小值是指该变量值在数据库中的下限值;最大值是指该变量值在数据库中的上限值;最小原始值是指变量为I/O模拟变量时,驱动程序中输入原始模拟值的下限值;最大原始值是指变量为I/O模拟变量时,驱动程序中输入原始模拟值的上限值。
以上四项是对I/O模拟量进行工程值自动转换所需要的。组态王将采集到的数据按照这四项的对应关系自动转为工程值。
6)保存参数:在系统运行时,修改变量的域(可读可写型)值,系统自动保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变量的域值为上次系统运行时最后一次的设置值,无须用户再去重新定义。
7)保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。
8)初始值:这项内容与所定义的变量类型有关。定义模拟量时,出现编辑框,可输入一个数值,定义离散量时,出现开或关两种选择。定义字符串变量时,出现编辑框,可输入字符串。它们规定软件开始运行时变量的初始值。
9)连接设备:只对I/O类型的变量起作用,工程人员只需从下拉式“连接设备”列表框中选择相应的设备即可。此列表框所列出的连接设备名是组态王设备管理中已安装的逻辑设备名。用户要想使用自己的I/O设备,首先单击【连接设备】按钮,则“定义变量”对话框自动变成小图标出现在屏幕左下角,同时弹出“设备配置向导”对话框,工程人员根据安装向导完成相应设备的安装,当关闭“设备配置向导”对话框时,“定义变量”对话框又自动弹出;工程人员也可以直接从设备管理中定义自己的逻辑设备名。
说明:如果连接设备选为Windows的DDE服务程序,则“连接设备”选项下的选项名为“项目名”;当连接设备选为PLC等,则“连接设备”选项下的选项名为“寄存器”;如果连接设备选为板卡等,则“连接设备”选项下的选项名为“通道”。
10)项目名:连接设备为DDE设备时,DDE会话中的项目名,可参考Windows的DDE交换协议资料。
11)寄存器:指定要与组态王定义的变量进行连接通信的寄存器变量名,该寄存器与工程人员指定的连接设备有关。
12)转换方式:规定I/O模拟量输入原始值到数据库使用值的转换方式。有线性转换、开方转换和非线性表、累计等转换方式。
13)数据类型:只对I/O类型的变量起作用,定义与变量对应的寄存器的数据类型,共有九种数据类型供用户使用,这九种数据类型分别是:
BIT:1位,范围是0或1。
BYTE:8位,1字节;范围是0~255。
SHORT,2字节;范围是-32768~32767。
UNSHORT:16位,2字节;范围是0~65535。
BCD:16位,2字节;范围是0~9999。
LONG:32位,4字节;范围是-2147483648~2147483647。
LONGBCD:32位,4字节;范围是0~4294967295。
FLOAT:32位,4字节;范围是10E-38~10E+38,有效位为7位。
STRING:128字符长度。
各寄存器的数据类型请参见组态王的驱动帮助中相关设备的帮助。
14)采集频率:用于定义数据变量的采样频率,与组态王的基准频率设置有关。
15)读/写属性:定义数据变量的读/写属性,工程人员可根据需要定义变量为“只读”属性、“只写”属性、“读/写”属性。“只读”,对于只进行采集而不需要人为手动修改其值,并输出到下位设备的变量,一般定义属性为只读;“只写”,对于只需要进行输出而不需要读回的变量,一般定义属性为只写;“读/写”,对于需要进行输出控制又需要读回的变量,一般定义属性为读/写。
说明:当采集频率为0时,只要组态王上的变量值发生变化时,就会进行写操作;当采集频率不为0时,会按照采集频率周期性地输出值到设备。
16)允许DDE访问:组态王内置的驱动程序与外部设备进行数据交换,为了方便工程人员用其他程序对该变量进行访问,可通过选中“允许DDE访问”复选框,这样组态王就作为DDE服务器,可与DDE客户程序进行数据交换。
3.结构变量
工程实际中,往往一个被控对象有很多参数,而这样的被控对象很多,且都具有相同的参数。如一个储料罐,可能有压力、液位、温度、上下限硬报警等参数,这样的储料罐可能在同一工程中有很多个。如果用户对每一个对象的每一个参数都在组态王中定义一个变量,有可能会造成使用时查找变量不方便,定义变量所耗费的时间很长,而且大多数定义的都是有重复属性的变量。如果将这些参数作为一个变量组的属性,在使用时直接定义变量组,就会减少大量的工作,提高效率。为此,组态王引入了结构变量的概念,结构变量本质上是个变量组。
(1)结构变量的概念 结构变量是指利用定义的结构模板(变量组)在组态王中定义的变量,该结构模板包含若干个变量成员,当定义的变量的类型为该结构模板类型时,该模板下所有的成员都成为组态王的基本变量。一个结构模板下最多可以定义64个成员。结构变量中结构模板允许两层嵌套,即在定义了多个结构模板后,在一个结构模板的成员数据类型中可嵌套其他结构模板数据类型。
(2)结构变量的设置 要应用结构变量,首先需要定义结构模板和结构成员及属性。在组态王工程浏览器中选择数据库下的结构变量,如图7-21所示,双击右侧的提示图标,进入“结构变量定义”对话框,即可完成结构变量的设置。
如在“结构名称输入”对话框中输入“储料罐”,单击【确定】按钮,关闭对话框,则在结构变量定义界面上增加了一个新的结构,如图7-22所示。按照上述方法,可以建立多个结构。
在结构变量模板(变量组)中增加成员:选中一个结构模板,如图7-22所示,单击【增加成员】按钮,弹出“新建结构成员”对话框,如图7-23所示。
该对话框与组态王基本变量定义属性对话框相同,用户在这里可以直接定义结构成员(变量组成员)的各种属性,如基本数值属性、I/O属性、报警属性、记录属性等。在成员名编辑框中输入成员名称。然后单击成员类型列表框,选择该成员的数据类型。按照上述方法,可以将其他成员加入到成员列表中来。定义完成后,如图7-24所示。如果此时确定完成,单击对话框上的【确定】按钮,关闭对话框。
图7-21 选择定义结构变量
图7-22 生成的结构变量图示
另外,如果用户定义了其他结构模板,并且其他结构模板下定义了结构成员,那么其他结构模板(变量组)的名称也会出现在数据类型中,用户可以选择结构模板作为数据类型,将其嵌入当前结构模板中,如图7-25所示的压力、温度来自储料罐结构模板之中。
(3)结构变量的应用 定义了结构变量和成员之后,选择变量类型时,下拉列表框中除了基本的八种类型外,还会出现所有的结构模板(变量组)名称,一种结构模板就是一种变量类型。在组态王的工程浏览器中,单击数据库中的变量词典,单击右侧的新建,弹出“定义变量”对话框,如图7-26所示。在变量名中输入对象名称(或基本变量名称),在“变量类型”列表中选择定义过的“储料罐”数据类型,如图7-27所示。
图7-23 “新建结构成员”对话框
图7-24 结构变量成员(变量组成员)
在结构成员中选择该模板结构中的每一个成员,在成员类型中选择该成员的变量类型(因为其数据类型在定义结构变量时已经定义过,所以在此处只是选择内存型、I/O型)。其余各项定义与定义组态王普通变量一致。定义完毕后,单击【确定】按钮。这样,在数据词典里定义一个变量,利用结构变量,这一个变量代表很多个变量(因为一个结构中有着很多个成员)。数据词典列表中显示的结构变量的ID号为其最后一个成员的ID号,每个成员都会被自动分配一个ID号。
图7-25 结构变量模板的增加图示
图7-26 “定义变量”对话框
图7-27 结构变量设置
4.I/O变量的工程量转换
对于I/O变量中的模拟变量,在现场实际中,可能要根据输入要求的不同,要将其按照不同的方式进行转换。比如一般的信号与工程值都是与线性对应的,可以选择线性转换;有些需要进行累计计算,则选择累计转换。组态王为用户提供了线性、开方、非线性表、直接累计、差值累计等多种转换方式。
(1)线性转换方式 用原始值和数据库使用值的线性插值进行转换。如图7-28所示,线性转换是将设备中的值与工程值按照固定的比例系数进行转换。如图7-29所示,在变量基本属性定义对话框的“最大值”、“最小值”编辑框中输入变量工程值的范围,在“最大原始值”、“最小原始值”编辑框中输入设备中转换后的数字量值的范围(可以参考组态王驱动帮助中的介绍),则系统运行时,按照指定的量程范围进行转换,得到当前实际的工程值。线性转换方式是最直接也是最简单的一种转换方式。
图7-28 线性转换原理图示
(2)开方转换方式 用原始值的平方根进行转换,即转换时将采集到的原始值进行开方运算,得到的值为实际工程值,该值在变量基本属性定义的“最大值”、“最小值”范围内。
图7-29 定义线性转换
(3)非线性表转换与累计转换 非线性表转换:采用非线性表的方式实现非线性物理量的转换;累计转换:累计是在工程中经常用到的一种工作方式,经常用在流量、电量等计算方面。组态王的变量可以定义为自动进行数据的累计。另外,组态王提供两种累计算法:直接累计算法和差值累计算法,详见《组态王用户手册》。
7.2.2.5 图形画面与动画连接
在组态王开发系统中,制作的画面都是静态的,如何才能反映工业现场的动态工艺状况呢?这就需要通过I/O设备将现场数据传输到组态王的数据库中,数据库中的变量与现场变量是同步变化的。如果把数据库中变量的变化反映到静态画面中,即随着数据变量变化,静态画面“动”起来直接反映现场的工艺过程,这就是所谓的“动画连接”,其本质上就是建立画面的图素与数据库变量的对应关系。
工业现场的数据,比如温度、液面高度等,当它们发生变化时,通过I/O接口设备,将引起实时数据库中变量的变化,如果设计者曾经定义了一个画面图素,比如指针与这个变量相关,将会看到指针在同步偏转。组态软件中的图素对象与变量之间有着丰富的连接类型,给工程人员设计图形界面提供了极大的方便。
1.静态画面制作工具分析
(1)图形编辑工具箱 图形编辑工具箱是绘图菜单命令的快捷方式。工具箱提供了许多常用的菜单命令,也提供了菜单中没有的一些操作。当鼠标放在工具箱任一按钮上时,立刻出现一个提示条标明该工具按钮的功能。
图7-30 工具箱
画面组态过程中,在打开一个已有画面或建立一个新画面时,图形编辑工具箱都会自动出现,如图7-30所示。
在菜单“工具/显示工具箱”的左端有“√”号,表示选中菜单;没有“√”号,屏幕上的工具箱也同时消失,再一次选择此菜单,“√”号出现,工具箱又显示出来,或按【F10】键来切换工具箱的显示隐藏,其菜单如图7-31所示。
工具箱中的工具大致可分为四类。
1)画面类:提供对画面的常用操作,包括新建、打开、关闭、保存、删除、全屏显示等。
2)编辑类:绘制各种图素(矩形、椭圆、直线、折线、多边形、圆弧、文本、点位图、按钮、菜单、报表窗口、实时趋势曲线、历史趋势曲线、控件、报警窗口)的工具;剪切、粘贴、复制、撤销、重复等常用编辑工具;合成、分裂组合图素,合成、分裂单元;对图素的前移,后移,旋转,镜像等操作工具。
3)对齐方式类:这类工具用于调整图素之间的相对位置,能够以上、下、左、右、水平、垂直等方式把多个图素对齐或者把它们水平等间隔、垂直等间隔放置。
4)选项类:提供其他一些常用操作,比如全选、显示调色板、显示画刷类型、显示线形、网格显示/隐藏、激活当前图库、显示调色板等。
工具箱中各种工具的具体使用应在画面制作中逐渐学习掌握。
图7-31 菜单“工具/显示工具箱”
(2)典型工具的使用 简单说明相关工具的功能作用。
1)线形类型工具的使用:组态王系统支持11种线形。线形窗口可方便工程人员改变图素线条的类型。“线形”窗口如图7-32所示。“线形”类别有无线条、虚线(四种)、实线(六种)。其具体使用为:在画面中选定需修改线形的图素后,单击“线形选择工具条”上相应按钮,即可选择图素线条粗细、虚实线等属性,如图7-33所示。
图7-32 线形选择工具条
图7-33 线形类别
2)“调色板”的使用:“调色板”就是“颜料盒”,共有无限种颜色。显示/隐藏调色板可通过选择菜单“工具/显示调色板”或单击工具箱中的“显示调色板按钮”来实现。应用“调色板”可以对各种图形、文本及窗口等进行颜色修改,图形包括圆角矩形、椭圆、直线、折线、扇形、多边形、管道、文本以及窗口背景色等。“调色板”具有无限色功能,即除了可以选定“基本颜色”外,还可以利用“无限色”来编辑各种颜色,并能保存和读取调色信息。调色板外观如图7-34所示。其中包括:
对象选择按钮:选择要填充颜色的对象,从左到右依次为线条色、填充色、背景色、文本色、窗口色、透明色。当鼠标箭头指向时就会出现相应名称,以方便操作;
图7-34 调色板图示
基本颜色选择:可以选择任一按钮,以改变对应的颜色属性。第一个为多色选择,其余为单色选择;
用户调色窗:为用户提供选择无限色的设置,其按钮定义从左到右依次为显示条色窗口、吸色管、保存当前调色窗设置,读取调色窗设置。下方为选色区。
(3)组态王图库的应用 图库是指组态王中提供的已制作成型的图素组合。图库中的每个成员称为“图库精灵”。
使用图库开发工程界面至少有三个方面的好处:一是降低了工程人员设计界面的难度,使他们能更加集中精力于维护数据库和增强软件内部的逻辑控制,缩短开发周期;二是用图库开发的软件将具有统一的外观,方便工程人员学习和掌握;三是利用图库的开放性,工程人员可以生成自己的图库元素。
组态王为了便于用户更好地使用图库,提供了图库管理器。图库管理器集成了图库管理的操作,在统一的界面上,完成“新建图库”、“更改图库名称”、“加载用户开发的精灵”、“删除图库精灵”,如图7-35所示。
图7-35 图库管理器
1)图库的管理:是依靠组态王提供的图库管理器来完成的。图库管理器集成了图库管理的操作,在统一的界面上完成“新建图库”、“更改图库名称”、“加载用户开发的精灵”、“删除图库精灵”。如果在开发过程中,图库管理器被隐藏,可选择菜单栏“图库/打开图库”或按【F2】键激活图库管理器。利用工具箱中的打开图库快捷键也可以打开图库,如图7-36所示。
2)图库“精灵”的应用:取用图库精灵时,在图库管理器窗口内用鼠标左键双击所需要的精灵(如果图库窗口不可见,请按【F2】键激活它),鼠标变成直角形。移动鼠标到画面上适当位置,单击鼠标左键,图库精灵就复制到画面上了。可以任意移动、缩放精灵,如同处理一个单元一样。
修改图库精灵:双击画面上的图库精灵,将弹出改变图形外观和定义动画连接的“属性向导”对话框。对话框中包含了图库精灵的外观修改、动作、操作权限、与动作连接的变量等各项设置,对于不同的图库精灵,具有不同的属性向导界面。用户只需要输入变量名,合理调整各项设置,就可以设计出符合自己使用要求的个性化图形。
图库精灵的动画连接属性的设置方法与普通图素的动画连接一样。
(4)变量浏览器的应用 变量浏览器是供用户在进行动画连接或书写命令语言并选择变量时使用的。在动画连接输入表达式对话框中,单击右边“?”按钮可以打开“选择变量名”窗口,用于查看、选择本机和其他站点已定义的基本变量和结构变量,如图7-37所示。其中,左上角4个按钮功能描述如图7-38所示。
1)显示/隐藏变量树:选中此按钮可以显示/隐藏左边的变量树。按钮凹下时显示变量树,凸起时隐藏变量树。
2)小图标/报表格式显示基本变量:当选中此按钮,按钮凹下时,右边变量显示窗口中的变量以小图标的形式显示,没有变量的详细介绍列表;当选择【报表格式/小图标显示基本变量】按钮时,该按钮变为凸起。
图7-36 打开图库方式
图7-37 变量浏览器窗口图示
3)报表格式/小图标显示基本变量:当选中此按钮,按钮凹下时,右边变量显示窗口中的变量以报表的形式显示,有变量的详细介绍列表,如变量类型、报警组、安全区、连接设备、备注等,变量可以根据单击列表第一列表头文本自动排序;当选择【小图标/报表格式显示基本变量】按钮时,该按钮变为凸起。
4)新建变量:单击此按钮,弹出“定义变量”窗口,可直接新建变量。方法与在数据词典中定义变量相同。
(5)连接表达式和运算符的应用 连接表达式是定义动画连接的主要内容,因为连接表达式的值决定了画面上图素的动画效果。连接表达式由数据字典中定义的变量、变量域、报警组名、数值常量以及各种运算符组成,与C语言中的表达式非常类似。在连接表达式中,不允许出现赋值语句,连接表达式的值在组态王运行时进行计算。变量名和报警组名可以直接从变量浏览器中选择,出现在表达式中,不必加引号,但区分大小写,变量的域名不区分大小写。连接表达式中可用到的运算符如图7-39所示。
2.动态画面的制作
(1)动画连接概述 所谓“动画连接”就是建立画面的图素与数据库变量的对应关系。建立动画连接后,当数据库中的变量变化时,对应的图形对象可以按动画连接的要求改变颜色、尺寸、位置、填充百分数等。一个图形对象又可以同时定义多个连接。把这些动画连接组合起来,应用程序将呈现出丰富的图形动画效果,以再现工业生产的工艺过程。
图7-38 快捷按钮图示
图7-39 连接表达式运算符图示
(2)连接对话框与动画连接的类别 给图形对象定义动画连接是在“动画连接”对话框中进行的。在组态王开发系统中,双击图形对象(不能有多个图形对象同时被选中),弹出“动画连接”对话框,如图7-40所示。
对不同类型的图形对象弹出的对话框大致相同。但是对于特定属性对象,有些是灰色的,表明此动画连接属性不适用于该图形对象,或者该图形对象定义了与此动画连接不兼容的其他动画连接。
下面以“圆角矩形”为例,分析图形属性对话框相关内容的具体功能作用与设置说明。
对话框的第一行分别说明图形对象的类型,右上角数字表示该图素对象在画面中的坐标以及图形对象的宽度和高度。
对话框的第二行提供“对象名称”和“提示文本”编辑框。“对象名称”是为图素提供的唯一的名称,供以后的程序开发使用,暂时不能使用。“提示文本”的含义为:当图形对象定义了动画连接时,在运行时,将鼠标放在图形对象上,会出现开发中定义的提示文本。
下面分组介绍所有的动画连接种类。
图7-40 “动画连接”对话框
1)属性变化:共有三种连接(线属性、填充属性、文本色),它们规定了图形对象的颜色、线形、填充类型等属性如何随变量或连接表达式的值变化而变化。单击任一按钮,弹出相应的连接对话框。线类型的图形对象可定义线属性连接,填充形状的图形对象可定义线属性、填充属性连接,文本对象可定义文本色连接。
2)位置与大小变化:有五种连接(水平移动、垂直移动、缩放、旋转、填充)规定了图形对象如何随变量值的变化而改变位置或大小。不是所有的图形对象都能定义这五种连接。单击任一按钮,弹出相应的连接对话框。
3)值输出:只有文本图形对象能定义三种值输出连接中的某一种。这种连接用来在画面上输出文本图形对象的连接表达式的值。运行时文本字符串将被连接表达式的值所替换,输出的字符串的大小、字体和文本对象相同。单击任一按钮,弹出相应的输出连接对话框。
4)用户输入:所有的图形对象都可以定义为三种用户输入连接中的一种,输入连接使被连接对象在运行时为触敏对象。当TouchVew运行时,触敏对象周围出现反显的矩形框,可由鼠标或键盘选中此触敏对象。按【Space】键、【Enter】键或鼠标左键,会弹出输入对话框,可以从键盘键入数据,以改变数据库中变量的值。
5)特殊:所有的图形对象都可以定义闪烁、隐含两种连接,这是两种规定图形对象可见性的连接。单击任一按钮,弹出相应连接对话框。
6)滑动杆输入:所有的图形对象都可以定义两种滑动杆输入连接中的一种,滑动杆输入连接使被连接对象在运行时为触敏对象。当TouchVew运行时,触敏对象周围出现反显的矩形框。用鼠标左键拖动有滑动杆输入连接的图形对象,可以改变数据库中变量的值。
7)命令语言连接:所有的图形对象都可以定义三种命令语言连接中的一种,命令语言连接使被连接对象在运行时成为触敏对象。当TouchVew运行时,触敏对象周围出现反显的矩形框,可由鼠标或键盘选中。按【Space】键、【Enter】键或鼠标左键,就会执行定义命令语言连接时用户输入的命令语言程序。单击相应按钮弹出连接的命令语言对话框。
8)等价键:设置被连接的图素,在被单击执行命令语言时,与鼠标操作相同功能的快捷键。
9)优先级:此编辑框用于输入被连接的图形元素的访问优先级级别。当软件在Touch-Vew中运行时,只有优先级级别不小于此值的操作员才能访问它,这是组态王保障系统安全的一个重要功能。
10)安全区:此编辑框用于设置被连接元素的操作安全区。当工程处在运行状态时,只有在设置安全区内的操作员才能访问它,安全区与优先级一样是组态王保障系统安全的一个重要功能。
(3)几种典型动态效果连接示例 在“动画连接”对话框中,单击任一种连接方式,将会弹出设置对话框,本节介绍几种典型连接的设置。如果要使用动画连接自动向导,请参考《组态王用户手册》中“使用动画连接向导”内容。
1)线属性连接:在“动画连接”对话框中,单击【线属性】按钮,弹出“线属性连接”对话框,如图7-41所示。
(www.daowen.com)
图7-41 “线属性连接”对话框
线属性连接是使被连接对象的边框或线的颜色和线形随连接表达式的值而改变。定义这类连接需要同时定义分段点(阈值)和对应的笔属性。利用连接表达式的多样性,可以构造出许多有用的连接。
“线属性连接”对话框中各项设置的意义如下。
①表达式:用于输入连接表达式,单击【?】按钮,可以查看已定义的所有变量;
②增加:增加新的分段点;
③修改:修改笔属性设置;
④删除:删除增加的分段点设置。
应用中,单击【增加】按钮,弹出输入新值对话框,在对话框中输入新的分段点(阈值)和设置线属性,即可完成线属性设置。
2)填充属性连接:填充属性连接使图形对象的填充颜色和填充类型随连接表达式的值而改变,通过定义一些分段点(包括阈值和对应填充属性),使图形对象的填充属性在一段数值内为指定值。“填充属性连接”的设置方法为:在“动画连接”对话框中单击【填充属性】按钮,弹出的“填充属性连接”对话框如图7-42所示,各项意义与线属性的类似。
图7-42 “填充属性连接”对话框
本例为封闭图形对象定义填充属性连接,阈值为0时填充属性为白色,阈值为100时为黄色,阈值为200时为红色。画面程序运行时,当变量“温度”的值在0~100之间时,图形对象为白色;在100~200之间时为黄色,变量值大于200时,图形对象为红色。
3)水平移动连接:水平移动连接是使被连接对象在画面中随连接表达式值的改变而水平移动。移动距离以像素为单位,以被连接对象在画面制作系统中的原始位置为参考基准。水平移动连接常用来表示图形对象实际的水平运动。
图7-43 水平连接示例
图7-44 “水平移动连接”对话框
本例中建立一个指示器,在画面上画一三角形,将其设置“水平移动”动画连接属性,以表示移动量的实际大小。图7-43a是设计状态,图7-43b是在组态王运行中的状态。水平移动连接的设置方法为:在“动画连接”对话框中,单击【水平移动】按钮,弹出“水平移动连接”对话框,如图7-44所示。对话框中各项设置的意义如下。
①表达式:在此编辑框内输入合法的连接表达式,单击图7-44中【?】按钮,可查看已定义的变量名。
②向左与向右:以被连接对象在画面中的原始位置为参考基准,输入图素在水平方向向左移动的距离与向右移动的距离。
③最左边与最右边:以原始位置为参考基准,输入与图素处于最左边时相对应的变量值,当连接表达式的值为对应值时,被连接对象的中心点向左移到最左边规定的位置;输入与图素处于最右边时相对应的变量值,当连接表达式的值为对应值时,被连接对象的中心点向右移到最右边规定的位置。
4)缩放连接:缩放连接是使被连接对象的大小随连接表达式的值而变化。本例中建立一个温度计,用一矩形表示水银柱(将其设置“缩放连接”动画连接属性),以反映变量“温度”的变化。图7-45a是设计状态,图7-45b是在组态王运行中的状态。
缩放连接的设置方法是:在“动画连接”对话框中,单击【缩放连接】按钮,弹出“缩放连接”对话框,如图7-46所示。对话框中各项设置的意义如下。
图7-45 缩放连接实例
图7-46 “缩放连接”对话框
图7-47 变化方向
图7-48 填充连接实例
①表达式:在此编辑框内输入合法的连接表达式,单击【?】按钮,可以查看已定义的变量名和变量域。最小时与最大时:输入对象最小时占据的被连接对象的百分比(占据百分比)及对应的表达式的值(对应值),百分比为0时,此对象不可见;输入对象最大时占据的被连接对象的百分比(占据百分比)及对应的表达式的值(对应值),若此百分比为100,则当表达式值为对应值时,对象大小为制作时该对象大小。
②变化方向:选择缩放变化的方向。变化方向共有五种,用【方向选择】按钮旁边的指示器来形象地表示,如图7-47所示。箭头是变化的方向,蓝点是参考点。单击【方向选择】按钮,可选择变化方向。
5)填充连接:填充连接是使被连接对象的填充物(颜色和填充类型)占整体的百分比随连接表达式的值而变化的。本例建立一个矩形对象,以表示变量“液位”的变化。图7-48中左图是设计状态,右图是在组态王运行中的状态。
填充连接的设置方法是:在“动画连接”对话框中,单击【填充连接】按钮,弹出“填充连接”对话框,如图7-49所示。对话框中各项设置的意义如下:
①表达式:在此编辑框内输入合法的连接表达式,单击【?】按钮,可以查看已有的变量名和变量域。
图7-49 “填充连接”对话框
②最小填充高度与最大填充高度:输入对象填充高度最小时或最大时所占据的被连接对象的高度(或宽度)的百分比(占据百分比)及对应的表达式的值(对应数值)。
③填充方向:规定填充方向,由【填充方向】按钮和填充方向示意图两部分组成。共有4种填充方向,如图7-50所示。单击【填充方向】按钮,可选择其中之一。
图7-50 填充方向
④缺省(即默认)填充画刷:若本连接对象没有填充属性连接,则运行时用此默认填充刷。
(4)动画连接命令语言 组态王中命令语言是一种在语法上类似C语言的程序,利用这些程序可增强应用程序的灵活性、处理一些算法和操作等。
命令语言有三种触发模式:“按下时”、“弹起时”和“按住时”,分别表示鼠标左键在触敏对象上按下、弹起、按住时执行连接的命令语言程序。单击任一种【命令语言连接】按钮,将弹出“命令语言”对话框,如图7-51所示。
命令语言编辑器是组态王提供的用于输入、编辑命令语言程序的地方。所有命令语言编辑器的大致界面和主要部分及功能都相同,只是按照触发条件的不同,在界面上“触发条件”部分会有所不同。编辑器各部分的大致功能为:
1)菜单条:提供给编辑器的操作菜单,“文件”菜单下有两个菜单项:确认和取消。确认表示保存当前在编辑器中内容的修改,然后关闭编辑器;取消表示直接关闭编辑器,不保存当前在编辑器中内容的修改。这两个菜单项与编辑器右下角的【确认】按钮和【取消】按钮作用相同。“编辑”菜单提供使用编辑器编辑命令语言时所需的一些操作工具。
2)工具栏:提供命令语言编辑时的工具,包括剪切、复制、粘贴、删除、全选、查找、替换、更改命令语言编辑器中的内容显示字体、字号等。
3)关键字选择列表:可以在这里直接选择现有的画面名称、报警组名称、其他关键字(如运算连接符等)到命令语言编辑器里。如选中一个画面名称,然后双击它,则该画面名称就被自动添加到了编辑器中。
4)函数选择:单击某一按钮,弹出相关的函数选择列表,直接选择某一函数到命令语言编辑器中。函数选择按钮有【全部函数】——显示组态王提供的所有函数列表;【系统】——显示系统函数列表;【字符串】——显示与字符串操作相关的函数列表;【数学】——显示数学函数列表;【SQL】——显示SQL函数列表;【控件】——选择ActiveX控件的属性和方法;【自定义】——显示自定义函数列表。当用户不知道函数的用法时,可以单击“帮助”菜单进入在线帮助,查看使用方法。
5)运算符输入:单击某一个按钮,按钮上标签表示的运算符或语句自动被输入到编辑器中。
6)变量选择:选择变量或变量的域到编辑器中。
7)命令语言编辑区:输入命令语言程序的区域。
8)触发条件:触发命令语言执行的条件,不同的命令语言类型有不同的触发条件。
(5)动画连接向导使用分析 组态王提供可视化动画连接向导供用户使用。该向导的动画连接包括水平移动、垂直移动、旋转、滑动杆水平输入、滑动杆垂直输入等五个部分。使用可视化动画连接向导可以简单、精确地定位图素动画的中心位置、移动起止位置和移动范围等。
图7-51 “命令语言”对话框
7.2.2.6 趋势曲线与报警
1.趋势曲线概述
组态王的实时数据和历史数据除了在画面中以值输出的方式和以报表形式显示外,还可以曲线形式显示。组态王的曲线有趋势曲线、温控曲线和X-Y曲线。
趋势分析是控制软件必不可少的功能,趋势曲线有实时趋势曲线和历史趋势曲线两种。对于实时趋势曲线,最多可显示4条曲线;而对于历史趋势曲线,最多可显示16条曲线。画面程序运行时,实时趋势曲线可以自动卷动,以快速响应变量随时间的变化;历史趋势曲线不能自动卷动,它一般与功能按钮一起工作,共同完成历史数据的查看工作。
温控曲线反映出实际测量值按设定曲线变化的情况。在温控曲线中,纵轴代表温度值,横轴对应时间的变化,同时将每一个温度采样点显示在曲线中,主要适用于温度控制、流量控制等。X-Y曲线主要是用曲线来显示两个变量之间的运行关系,例如电流-转速曲线等。
图7-52 实时趋势曲线
2.实时趋势曲线的应用
(1)实时趋势曲线的制作 在组态王开发系统中制作画面时,选择菜单中“工具/实时趋势曲线”项或单击工具箱中的【画实时趋势曲线】按钮,此时鼠标在画面中变为十字形,在画面中用鼠标画出一个矩形,实时趋势曲线就在这个矩形中绘出,如图7-52所示。
实时趋势曲线对象的中间有一个带有网格的绘图区域,表示曲线将在这个区域中绘出,网格左方和下方分别是X轴(时间轴)和Y轴(数值轴)的坐标标注。可以通过选中实时趋势曲线对象来移动位置或改变大小。在画面运行时,实时趋势曲线对象由系统自动更新。
(2)实时趋势曲线参数的设置 在生成实时趋势曲线对象后,双击此对象,弹出“实时趋势曲线”对话框,如图7-53所示。通过单击对话框上端的两个选项卡,在“曲线定义”和“标识定义”之间切换。
1)“曲线定义”选项卡设置:曲线定义属性设置包括坐标轴、分割线为短线、边框色、背景色、曲线等选项内容。
图7-53 “实时趋势曲线”对话框中“曲线定义”选项卡
①坐标轴:可以变更坐标轴的颜色。
②分割线为短线:选择分割线的类型。选中此项后在坐标轴上只有很短的主分割线,整个图纸区域接近空白状态,没有网格,同时下面的“次分割线”选择项变灰。
③边框色、背景色:分别规定绘图区域的边框和背景(底色)的颜色。单击这两个按钮的方法与坐标轴按钮类似,弹出的浮动对话框也与之大致相同,只是没有线型选项。
④X方向、Y方向:X方向和Y方向的主分割线将绘图区划分成矩形网格,次分割线将再次划分主分割线划分出来的小矩形。这两种线都可改变线型和颜色。分割线的数目可以通过小方框右边【加减】按钮增加或减小,也可通过编辑区直接输入。工程人员可以根据实时趋势曲线的大小决定分割线的数目,分割线最好与标识定义(标注)相对应。
⑤曲线:定义与所绘的1~4条曲线Y坐标对应的表达式,实时趋势曲线可以实时计算表达式的值,所以它可以使用表达式。实时趋势曲线名的编辑框中可输入有效的变量名或表达式,表达式中所用变量必须是数据库中已定义的变量。右边的【?】按钮可列出数据库中已定义的变量或变量域供选择。每条曲线可通过右边的线型和颜色按钮来改变线型和颜色。
2)“标识定义”选项卡设置:“标识定义”选项卡如图7-54所示。
图7-54 “标识定义”选项卡
①标识X轴——时间轴、标识Y轴——数值轴:选择是否为X或Y轴加标识,即在绘图区域的外面用文字标注坐标的数值。如果此项选中,左边的复选框中有小勾标记出现,同时下面定义相应标识的选择项也由灰变为“加亮”。
②数值轴(Y轴)定义区:因为一个实时趋势曲线可以同时显示4个变量的变化,而各变量的数值范围可能相差很大,为使每个变量都能表现清楚,组态王中规定,变量在Y轴上以百分数表示,即以变量值与变量范围(最大值与最小值之差)的比值表示。所以Y轴的范围是0(0%)~1(100%)。
标识数目填写数值轴的数量;起始值规定数值轴起点对应的百分比值,最小为0;最大值规定数值轴终点对应的百分比值,最大为100;字体规定数值轴标识所用的字体。
③时间轴(X轴)定义区:定义时间分度值大小。其中,标识数目规定时间轴标识的数量,在组态王开发系统中,时间是以yy:mm:dd:hh:mm:ss的形式表示;格式规定时间轴标识的形式;更新频率表示TouchVew是自动重绘一次实时趋势曲线的时间间隔;时间长度规定时间轴所表示的时间范围;字体规定时间轴标识所用的字体。
图7-55 实时趋势曲线的“笔”
3)为实时趋势曲线建立“笔”:首先使用图素画出笔的形状(一般用多边形即可),如图7-55所示,然后定义图素的垂直移动动画连接,可以通过动画连接向导选择实时趋势曲线绘图区域纵轴方向两个顶点,然后用对应的实时曲线变量所用的表达式定义垂直移动连接。
3.历史趋势曲线的应用
组态王提供三种形式的历史趋势曲线:
第一种是从图库中调用已经定义好各功能按钮的历史趋势曲线,对于这种历史趋势曲线,用户只需要定义几个相关变量,适当调整曲线外观即可完成历史趋势曲线的复杂功能,这种形式使用简单方便;该曲线控件最多可以绘制8条曲线,但这种形式无法实现曲线打印功能。
第二种是调用历史趋势曲线控件,对于这种历史趋势曲线,功能很强大,使用比较简单。通过该控件,不但可以实现组态王历史数据曲线的绘制,还可以实现ODBC数据库中数据记录的曲线绘制,而且在运行状态下,可以实现在线动态增加/删除曲线、曲线图表的无级缩放、曲线的动态比较、曲线的打印等。
第三种是从工具箱中调用历史趋势曲线,对于这种历史趋势曲线,用户需要对曲线的各个操作按钮进行定义,即建立命令语言连接才能操作历史曲线,对于这种形式,用户使用时自主性较强,能给出个性化的历史趋势曲线;该曲线控件最多可以绘制8条曲线,这种形式无法实现曲线打印功能。
无论使用哪一种历史趋势曲线,都要进行相关配置,主要包括变量属性配置和历史数据文件存放位置配置,详见《组态王用户手册》。
4.其他曲线分析
(1)温控曲线及其制作 单击工具箱中的【插入控件】按钮或选择菜单命令“编辑/插入控件”,则弹出创建控件对话框;在创建控件对话框内选择趋势曲线中的温控曲线控件;用鼠标左键单击【创建】按钮,鼠标变成十字形,在画面上画一个矩形框,则温控曲线控件就被放置到画面之上了。温控曲线控件可以任意移动和缩放。
在画面上放置的温控曲线如图7-56所示。在温控曲线中,纵轴代表温度值,横轴对应时间的变化,同时将每一个温度采样点显示在曲线中,运行环境中还提供左右两个游标,当工程人员把游标放在某一个温度的采样点上时,该采样点的注释值就可以显示出来。
图7-56 温控曲线图示
注:纵坐标为温度(℃),横坐标为时间t(min)
(2)X-Y曲线及其制作 在画面上创建X-Y轴曲线操作步骤如下:单击工具箱中的【插入控件】按钮或选择菜单命令“编辑/插入控件”,则弹出“创建控件”对话框;在“创建控件”对话框内选择X-Y轴曲线控件;用鼠标左键单击【创建】按钮,鼠标变成十字形。然后在画面上画一个矩形框,X-Y轴曲线控件就放到画面上了。X-Y曲线控件同样可以任意移动和缩放。
在画面上放置的X-Y轴曲线控件如图7-57所示。在此控件中,X轴和Y轴变量由工程人员任意设定,因此,X-Y轴曲线能用曲线方式反映任意两个变量之间的函数关系。
5.报警和事件的概念
(1)报警和报警组及相关概念
1)报警:报警是指当系统中某物理量的值超过了所规定的界限时,系统自动产生相应警告信息,表明该量的值已经超限。
如往炼油厂的油品储罐中输油时,如果没有规定油位的上限,系统就产生不了报警,无法有效提醒操作人员,则有可能会造成“冒罐”,形成危险。报警允许操作人员应答。
2)报警的相关概念:关于报警有三个概念,即报警的产生:变量值的变化超出了定义的正常范围,处于报警区域;报警的确认:对报警的应答,表示已经知道有该报警,或已处理过了,报警进行确认后,报警状态并不消失;报警的恢复:变量的值恢复到定义的正常范围,不再处于报警区域。
图7-57 X-Y轴曲线
3)报警组:组态王提供报警组的功能,即将变量产生的报警信息归到不同的组中,使变量的报警信息属于某个规定的报警组。报警组是按树状组织的结构,默认时只有一个根节点,默认名为RootNode(可以改成其他名字)。可以通过报警组定义对话框为这个结构加入多个节点和子节点。组态王中最多可以定义512个节点的报警组。
通过报警组名可以按组处理变量的报警事件,如报警窗口可以按组显示报警事件,记录报警事件也可按组进行,还可以按组对报警事件进行报警确认。
在组态王工程浏览器的目录树中选择“数据库/报警组”,可以定义报警组。定义报警组后,组态王会按照定义报警组的先后顺序为每一个报警组设定一个ID号,在引用变量的报警组域时,系统显示的都是报警组的ID号,而不是报警组名称。
(2)事件的概念 事件是指用户对系统的行为、动作。如修改了某个变量的值,用户的登录、注销,站点的启动、退出等。事件不需要操作人员应答。
6.变量的报警属性设置
(1)通用报警属性分析 在组态王工程浏览器“数据库/数据词典”中,对新建一个变量或选择一个原有变量双击,在弹出的“定义变量”对话框中选择“报警定义”选项卡,如图7-58所示。
“报警定义”选项卡可以分为以下几个部分:
1)报警组名和优先级选项:单击“报警组名”标签后的按钮,会弹出“选择报警组”对话框,在该对话框中将列出所有已定义的报警组,选择其一,则该变量的报警信息就属于当前选中的报警组。优先级主要是指报警的级别,用以操作人员区别报警的紧急程度。报警优先级的范围为1~999,1为最高,999最低。在图7-58的优先级编辑框中输入当前变量的报警优先级。
2)模拟量报警定义区域:如果当前的变量为模拟量,则这些选项是有效的。
3)开关量报警定义区域:如果当前的变量为离散量,则这些选项是有效的。
4)报警扩展域的定义:它有两个,主要是对报警的补充说明、解释,在报警产生时的报警窗中可以看到。
图7-58 “报警定义”选项卡
(2)模拟量变量的报警类型分析 模拟量主要是指整型变量和实型变量,包括内存型和I/O型的。模拟型变量的报警类型主要有三种:越限报警、偏差报警和变化率报警。对于越限报警和偏差报警可以定义报警延时和报警死区,相关具体参数可通过对话框设置完成。
1)越限报警:模拟量的值在跨越规定的高低报警限时产生的报警。越限报警的报警限共有四个:低低限、低限、高限、高高限。其原理如图7-59所示。
2)偏差报警:模拟量的值相对目标值上下波动超过指定的变化范围时产生的报警。偏差报警可以分为小偏差和大偏差报警两种。当波动的数值超出大小偏差范围时,分别产生大偏差报警和小偏差报警,其原理如图7-60所示。
偏差报警在使用时可以按照需要定义一种偏差报警或两种都使用。变量变化的过程中,如果跨越某个界限值,则立刻会产生报警,而同一时刻,不会产生两种类型的偏差报警。
3)变化率报警:它是指模拟量的值在一段时间内产生的变化速度超过了指定的数值而产生的报警,即变量变化太快时产生的报警。系统运行过程中,每当变量发生一次变化,系统都会自动计算变量变化的速度,以确定是否产生报警。变化率报警的类型以时间为单位分为三种:%x/秒、%x/分、%x/时。
图7-59 越限报警原理图
图7-60 偏差报警原理图
(3)开关量报警的报警 开关量有两种状态:1、0。开关型变量的报警有三种状态。
1)“1”状态报警:变量的值由0变为1时产生报警;
2)“0”状态报警:变量的值由1变为0时产生报警;
3)状态变化报警:变量的值由0变为1或由1变为0时都产生报警。
开关量的报警组名、优先级和扩展域的定义与模拟量报警定义相同;但需在“开关量报警”组内选择“离散”选项,三种类型的选项变为有效。定义时,三种报警类型只能选择一种。选择完成后,在报警文本中输入不多于15个字符的类型说明。
7.事件类型及使用方法
事件是不需要用户来应答的。组态王中根据操作对象和方式等的不同,事件分为操作事件、用户登录事件、应用程序事件和工作站事件等四类。
(1)操作事件 操作事件是指用户修改有“生成事件”定义的变量的值时,系统产生的事件。如修改重要参数的值或报警限值、变量的优先级等。这里需要注意的是,同报警一样,字符串型变量和字符串型域值的修改不能生成事件。操作事件可以进行记录,使用户了解当时的值是多少,修改后的值是多少。变量要生成操作事件,必须先定义变量的“生成事件”属性。
(2)用户登录事件 用户登录事件是指用户向系统登录时产生的事件。系统中的用户,可以在工程浏览器——用户配置中进行配置,如用户名、密码、权限等。用户登录时,如果登录成功,则产生“登录成功”事件;如果登录失败或取消登录过程,则产生“登录失败”事件;如果用户退出登录状态,则产生“注销”事件。
(3)应用程序事件 如果变量是I/O变量,变量的数据源为DDE或OPC服务器等应用程序,对变量定义“生成事件”属性后,当采集到的数据发生变化时,产生该变量的应用程序事件。
(4)工作站事件 所谓工作站事件就是指某个工作站站点上的组态王运行系统的启动和退出事件,包括单机和网络。组态王运行系统启动,产生工作站启动事件;运行系统退出,产生工作站退出事件。
8.其他问题
(1)报警记录与报警显示 组态王提供了多种报警记录和显示的方式,如报警窗、数据库、打印机等。系统提供一个预定的缓冲区,对产生的报警信息首先保存在缓冲区中,报警窗根据定义的条件,从缓冲区中获取符合条件的信息显示。当报警缓冲区满或组态王内部定时时间到时,将信息按照配置的条件进行记录。
(2)短信和E-mail报警信息 组态王除了可以将画面发布为Web页面,使用户通过IE来访问现场的动态画面、实时数据信息、查询历史数据外,还提供了短信和E-mail功能。这两个功能以通用驱动程序的方式提供,使用方便。使用任意一个或两个功能,组态王就可以自动将需要的特定数据或报警信息,通过手机短信的方式或电子邮件的方式发送给指定的用户。
7.2.2.7 命令语言程序应用
组态王中命令语言是一种在语法上类似C语言的程序,利用命令语言可以增强应用程序的灵活性、便捷地处理一些算法和操作等。
命令语言编辑器是组态王提供的用于输入、编辑命令语言程序的工具,编辑器的组成如图7-61所示。所有命令语言编辑器的大致界面和主要部分及功能都相同,唯一不同的是,按照触发条件的不同,在界面上“触发条件”部分会有所不同。
图7-61 命令语言编辑环境图示
1.命令语言类型
命令语言都是靠事件触发执行的,如定时、数据变化、键盘键按下、鼠标单击等。根据事件和功能的不同,命令语言包括应用程序命令语言、热键命令语言、事件命令语言、数据改变命令语言、自定义函数命令语言、动画连接命令语言和画面命令语言等。命令语言具有完备的词法语法查错功能和丰富的运算符、数学函数、字符串函数、控件函数、SQL函数和系统函数。各种命令语言通过“命令语言编辑器”编辑输入,并在组态王运行系统中编译执行。
其中,应用程序命令语言、热键命令语言、事件命令语言、数据改变命令语言称为“后台命令语言”,它们的执行不受画面打开与否的限制,只要符合条件就可以执行。使用运行系统中的菜单“特殊/开始执行后台任务”和“特殊/停止执行后台任务”可控制这些命令语言是否执行,也可以通过修改系统变量“$启动后台命令语言”的值来实现上述控制,该值置0时停止执行,置1时开始执行,对画面命令语言和动画连接命令语言的执行不受影响。
(1)应用程序命令语言 应用程序命令语言是指在组态王运行系统应用程序启动时、运行期间和程序退出时执行的命令语言程序。如果是在系统运行期间,该程序按照指定时间间隔定时执行。
当选择“运行时”执行,会有输入执行周期的编辑框“每…毫秒”。输入执行周期,则组态王运行系统运行时,将按照该时间周期性地执行这段命令语言程序,无论打开画面与否;选择“启动时”执行,在该编辑器中输入命令语言程序,该段程序只在运行系统程序启动时执行一次;选择“停止时”执行,在该编辑器中输入命令语言程序,该段程序只在运行系统程序退出时执行一次。
(2)数据改变命令语言 在工程浏览器中选择命令语言——数据改变命令语言,在浏览器右侧双击“新建…”,弹出“数据改变命令语言”编辑器,如图7-62所示。数据改变命令语言触发的条件为连接的变量或变量的域值发生变化,并可以按照需要定义多个数据改变命令语言。
图7-62 “数据改变命令语言”编辑器
在命令语言编辑器“变量[域]”编辑框中输入或通过单击【?】按钮来选择变量名称(如:原料罐液位)或变量的域(如:原料罐液位.Alarm)。这里可以连接任何类型的变量,如离散型、整型、实型、字符串型等。当连接的变量值发生变化时,系统会自动执行该命令语言程序。
(3)事件命令语言 事件命令语言是指当规定的表达式的条件成立时执行的命令语言,如某个变量等于定值、某个表达式描述的条件成立等。
在工程浏览器中选择命令语言——事件命令语言,在浏览器右侧双击“新建…”,弹出“事件命令语言”编辑器,如图7-63所示。其中,事件描述框中应指定命令语言执行的条件,备注框中应对该命令语言给出一些说明性的文字。
事件命令语言有发生时、存在时、消失时的三种类型。
图7-63 “事件命令语言”编辑器
1)发生时:事件条件初始成立时执行一次;
2)存在时:事件存在时定时执行,在“每…毫秒”编辑框中输入执行周期,则当事件条件成立存在期间周期性执行命令语言;
3)消失时:事件条件由成立变为不成立时执行一次。
(4)热键命令语言 热键命令语言链接到工程人员指定的热键上,软件运行期间,工程人员随时按下键盘上相应的热键都可以启动这段命令语言程序。
热键命令语言可以指定使用权限和操作安全区。输入热键命令语言时,在工程浏览器的目录显示区,选择“文件/命令语言/热键命令语言”,双击右边的内容显示区出现“新建…”图标,即可弹出热键命令语言编辑器,如图7-64所示。
(5)用户自定义函数 如果组态王提供的各种函数不能满足工程的特殊需要,组态王还提供用户自定义函数功能。用户可以自己定义各种类型的函数,通过这些函数能够实现工程特殊的需要,如特殊算法、模块化的公用程序等,都可通过自定义函数来实现。自定义函数是利用类似C语言来编写的一段程序,其自身不能直接被组态王触发调用,必须通过其他命令语言来调用执行。
编辑自定义函数时,在工程浏览器的目录显示区,选择“文件\命令语言\自定义函数命令语言”,在右边的内容显示区出现“新建…”图标,用左键双击此图标,将弹出“自定义函数命令语言”对话框,详细操作请见《组态王用户手册》。
(6)画面命令语言 画面命令语言就是与画面显示与否有关系的命令语言程序。画面命令语言定义在画面属性中。打开一个画面,选择菜单“编辑/画面属性”,或用鼠标右键单击画面,在弹出的快捷菜单中选择“画面属性”菜单项,或按下【Ctrl】+【W】键,打开画面属性对话框,在对话框上单击【命令语言…】按钮,弹出画面命令语言编辑器。
图7-64 “热键命令语言”编辑器
画面命令语言分为三个部分:显示时、存在时、隐含时。显示时:打开或激活画面为当前画面,或画面由隐含变为显示时执行一次;存在时:画面在当前显示时,或画面由隐含变为显示时周期性执行,可以定义指定执行周期,在“存在时”中的“每…毫秒”编辑框中输入执行的周期时间;隐含时:画面由当前激活状态变为隐含或被关闭时执行一次。
当画面被关闭或被其他画面完全遮盖时,画面命令语言才会停止执行。只与画面相关的命令语言可以写到画面命令语言里,如画面上动画的控制等,而不必写到后台命令语言中,这样可以减轻后台命令语言的压力,提高系统运行的效率。
(7)动画连接命令语言 对于一般的动画连接表达式完成不了的工作,可以借助动画连接命令语言完成。该命令语言是针对画面上的图素的动画连接的,组态王中的大多数图素都可以定义动画连接命令语言。
2.命令语言语法
命令语言程序的语法与一般C程序的语法没有太大的区别,每一程序语句的末尾应该用分号“;”结束,在使用if…else…、while()等语句时,其程序要用花括号“{}”括起来。
(1)运算符 用运算符连接变量或常量就可以组成较简单的命令语言语句,如赋值、比较、数学运算等。命令语言中可使用的运算符以及算符优先级与连接表达式相同。运算符有以下几种:
~ 取补码,将整型变量变成“2”的补码。
* 乘法
/ 除法
% 模运算
+ 加法
- 减法
& 整型量按位与
| 整型量按位或
整型量异或
&& 逻辑与
|| 逻辑或
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于(判断)
!= 不等于
= 等于(赋值)
(2)运算符的优先级 下面列出算符的运算次序,首先计算最高优先级的算符,再依次计算较低优先级的算符。同一行的算符有相同的优先级。
表达式举例:
复杂的表达式:开关==1液面高度>50&&液面高度<80(开关1||开关2)&&(液面高度.alarm)
(3)几种简单语句说明
1)赋值语句:赋值语句用得最多,可以给一个变量赋值,也可以给可读写变量的域赋值。
语句结构为:变量(变量的可读写域)=表达式;例如:
自动开关=1; //表示将自动开关置为开(1表示开,0表示关)
颜色=2; //将颜色置为黑色(如果数字2代表黑色)
反应罐温度.priority=3; //表示将反应罐温度的报警优先级设为3
2)if-else语句:if-else语句用于按表达式的状态有条件地执行不同的程序,可以嵌套使用。语句结构如下:
上述语句表示当变量step与数字3相等时,将变量颜色置为“红色”(变量“颜色”为内存字符串变量)。
if-else语句示例2:
if(出料阀= =1)
进料阀=0;//将离散变量“进料阀”设为0状态else
出料阀=1;
上述语句表示当变量step与数字3相等时,将变量颜色置为“红色”(变量“颜色”为内存字符串变量),反应罐温度的报警优先级设为1;否则变量颜色置为“黑色”,反应罐温度的报警优先级设为3。
3)while()语句:当while()括号中的表达式条件成立时,循环执行后面“{}”内的程序。语法如下:
当变量“循环”的值小于等于10时,向报表第一列的1~10行添入变量“原料罐液位”的值。应该注意使while表达式条件满足,然后退出循环。
同if语句一样,while里的语句,若是单条语句,可省略花括号“{}”,但若是多条语句,必须在一对花括号“{}”中。这条语句要慎用,否则会造成死循环。
(4)命令语言程序的注释方法 命令语言程序添加注释,有利于程序的可读性,也方便程序的维护和修改。组态王的所有命令语言中都支持注释。注释的方法分为单行注释和多行注释两种。注释可以在程序的任何地方进行。
1)单行注释:在注释语句的开头加注释符“∥”。
注释方法示例1:
//设置装桶速度
if(游标刻度>=10)∥判断液位的高低
装桶速度=80;
2)多行注释:在注释语句前加“/*”,在注释语句后加“*/”。多行注释也可以用在单行注释上。
注释方法示例2:
if(游标刻度>=10)/*判断液位的高低*/
装桶速度=80;
注释方法示例3:
/*判断液位的高低
改变装桶的速度*/
if(游标刻度>=10)
{装桶速度=80;}
else
装桶速度=60;
3.命令语言的其他相关问题
(1)命令语言的调试 命令语言一旦运行起来,往往看到的是最终的结果,如果结果出现差错,就需要查看命令语言的执行过程——调试命令语言。组态王提供了一个函数——Trace(),该函数可以将规定的信息发送到组态王信息窗口中,类似于程序的调试,根据这些信息,用户可以了解到命令语言执行的过程和期间变量的值。该函数可以添加到命令语言程序的任何需要跟踪的位置,当命令语言调试完成后,可以将其删除。函数的具体使用方法请参见《组态王使用手册》。
(2)在命令语言中使用自定义变量 自定义变量是指在组态王的命令语言里单独指定类型的变量,这些变量的作用域为当前的命令语言,在命令语言里,可以参加运算、赋值等。当该命令语言执行完成后,自定义变量的值随之消失,相当于局部变量。自定义变量不被计算在组态王的点数之中。自定义变量适用于应用程序命令语言、事件命令语言、数据改变命令语言、热键命令语言、自定义函数、画面命令语言、动画连接命令语言、控件事件函数等。自定义变量功能的提供可以极大地方便用户编写程序。
自定义变量的类型有BOOL(离散型)、LONG(长整型)、FLOAT(浮点型)、STRING(字符串型)和自定义结构变量类型。其在命令语言中的使用方法与组态王变量相同。
(3)命令语言函数及使用方法 组态王支持使用内建的复杂函数,其中包括字符串函数、数学函数、系统函数、控件函数、SQL函数及其他函数,具体见《组态王命令语言函数速查手册》。
7.2.2.8 其他典型功能应用
1.组态王应用工程的运行
(1)组态王运行系统的配置 在完成组态王工程的人机界面组态等工作之后,运行之前还要在开发系统中对运行系统环境进行配置。
在开发系统中,单击菜单栏中“配置/运行环境”命令或工具栏中【运行】按钮或工程浏览器“工程目录显示区/系统配置/设置运行系统”命令后,弹出“运行系统设置”对话框,如图7-65所示。“运行系统设置”对话框由三个选项卡组成。
图7-65 “运行系统设置”对话框
1)“运行系统外观”选项卡:此选项卡中各项的含义和使用介绍如下:
①启动时最大化:运行系统(TouchVew)启动时,占据整个屏幕。
②启动时缩成图标:运行系统(TouchVew)启动时,自动缩成图标。
③窗口外观标题条文本:此字段用于输入TouchVew运行时出现在标题栏中的标题。若此内容为空,则TouchVew运行时将隐去标题条,全屏显示。
④窗口外观系统菜单:选择此选项,使TouchVew运行时标题栏中带有系统菜单框。
⑤窗口外观最小化按钮:选择此选项,使TouchVew运行时标题栏中带有最小化按钮。
⑥窗口外观最大化按钮:选择此选项,使TouchVew运行时标题栏中带有最大化按钮。窗口外观可变大小边框:选择此选项,使TouchVew运行时,可以改变窗口大小。
⑦窗口外观标题条中显示工程路径:选择此选项,使当前应用程序目录显示在标题栏中。
⑧菜单:选择此选项,使TouchVew运行时带有菜单。
2)“主画面配置”选项卡:规定TouchVew画面运行系统启动时自动调入的画面,如果几个画面互相重叠,最后调入的画面在前面。单击“主画面配置”选项卡,则弹出此选项卡对话框,同时选项卡画面列表对话框中列出了当前应用程序所有有效的画面,选中的画面则加亮显示。
3)“特殊”选项卡:此选项卡对话框用于设置运行系统的基准频率等一些特殊属性,单击“特殊”选项卡,则弹出“特殊”选项卡对话框,如图7-66所示。
图7-66 “特殊”选项卡对话框
①运行系统基准频率:是一个时间值。所有其他与时间有关的操作选项(如有“闪烁”动画连接的图形对象的闪烁频率、趋势曲线的更新频率、后台命令语言的执行)都以它为单位,是它的整数倍。
②时间变量更新频率:用于控制TouchVew在运行时更新数据库中时间变量($毫秒、$秒、$分、$时等)。
③通信失败时显示上一次的有效值:用于控制组态王中的IO变量在通信失败后在画面上的显示方式。选中此项后,对于组态王画面上IO变量的“值输出”连接,在设备通信失败时,画面上将显示组态王最后采集的数据值,否则将显示“???”。
④禁止退出运行环境:选择此选项后,其左边小方框内出现“√”号。选择此选项使TouchVew启动后,除关机外不能退出。
⑤禁止任务切换(Ctrl—Esc):选择此选项后,其左边小方框内出现“√”号。选择此选项将禁止【Ctrl—Esc】键,用户不能作任务切换。
⑥禁止【Alt】键:选择此选项后,其左边小方框内出现“√”号。选择此选项将禁止【Alt】键,用户不能用【Alt】键调用菜单命令。
⑦使用虚拟键盘:选择此选项后,其左边小方框内出现“√”号。画面程序运行中,当需要操作者使用键盘时,比如输入模拟值,则弹出模拟键盘窗口,操作者用鼠标在模拟键盘上选择字符即可输入。
⑧单击触敏对象时有声音提示:选中此项后,其左边小方框内出现“√”号。系统运行时,用鼠标单击按钮等图素时,蜂鸣器发出声音。
⑨支持多屏显示:选择此选项后,其左边小方框内出现“√”号。选择此选项支持多终端显示,可以一台主机接多个显示器,组态王画面在多个显示器上显示。
(2)进入运行系统菜单详解 配置运行系统后,可以启动运行系统,在开发系统中单击工具栏中【VIEW】按钮或快捷菜单中“切换到View”命令,即可进入组态王运行系统。以组态王DEMO工程为例进入运行系统,如图7-67所示。
图7-67 组态王运行系统
2.组态王的信息窗口
组态王信息窗口是一个独立的Windows应用程序,用来记录、显示组态王开发和运行系统在运行时的状态信息。信息窗口中显示的信息可以作为一个文件存于指定的目录中或是用打印机打印出来,供用户查阅。当工程浏览器、TouchVew等启动时,会自动启动信息窗口。
一般情况下,启动组态王系统后,在信息窗口中可以显示的信息有:“组态王”系统的启动、关闭、运行模式,历史记录的启动、关闭,I/O设备的启动、关闭,网络连接的状态,与设备连接的状态,命令语言中函数未执行成功的出错信息。
如果用户想要查看与下位设备通信的信息,可以选择运行系统“调试”菜单下的“读成功”、“读失败”、“写成功”、“写失败”等项,则I/O变量读取设备上的数据是否成功的信息也会在信息窗口中显示出来。组态王的信息窗口如图7-68所示。
图7-68 组态王信息窗口
信息窗口的信息通过参数设置可以进行查看、存储、打印等。
3.组态王的控件分析
(1)控件的概念 控件实际上是可重用对象,用来执行专门的任务。每个控件实质上都是一个微型程序,但不是一个独立的应用程序,通过控件的属性、方法等控制控件的外观和行为,接收输入并提供输出。例如,Windows操作系统中的组合列表框就是一个控件,通过设置属性可以决定组合列表框的大小、要显示文本的字体类型以及显示的颜色。组态王的控件(如棒图、温控曲线、X-Y曲线)就是一种微型程序,它们能提供各种属性和丰富的命令语言函数,用来完成各种特定的功能。
(2)控件的功能 控件在外观上类似于组合图素,工程人员只需把它放在画面上,然后配置控件的属性,进行相应的函数连接,控件就能完成复杂的功能。
当所实现的功能由主程序完成时,需要制作很复杂的命令语言,或根本无法完成时,可以采用控件。主程序只需要向控件提供输入,而剩下的复杂工作由控件去完成,主程序无需理睬其过程,只要控件提供所需要的结果输出即可。另外,控件的可重用性也提供了方便。比如画面上需要多个二维条图,用以表示不同变量的变化情况,如果没有棒图控件,则首先要利用工具箱绘制多个长方形框,然后将它们分别进行填充连接,每一个变量对应一个长方形框,最后把这些复杂的步骤合在一起,才能完成棒图控件的功能。而直接利用棒图控件,工程人员只要把棒图控件复制到画面上,对它进行相应的属性设置和命令语言函数的连接,就可实现用二维条图或三维条图来显示多个不同变量的变化情况。总之,使用控件将极大地提高工程人员工程开发和工程运行的效率。
(3)组态王支持的控件 组态王本身提供很多内置控件,如列表框、选项按钮、棒图、温控曲线、视频控件等,这些控件只能通过组态王主程序来调用,其他程序无法使用,这些控件的使用主要是通过组态王相应控件函数或与之连接的变量来实现的。
随着Active X技术的应用,Active X控件也普遍被使用。组态王支持符合其数据类型的Active X标准控件。这些控件包括Microsoft Windows标准控件和任何用户制作的标准Active X控件。这些控件在组态王中被称为“通用控件”,即指Active X控件。
组态王内置控件是组态王提供的、只能在组态王程序内使用的控件。它能实现控件的功能,组态王通过内置的控件函数和连接的变量来操作、控制控件,从控件获得输出结果。其他用户程序无法调用组态王内置控件。这些控件包括:棒图控件、温控曲线、X-Y曲线、列表框、选项按钮、文本框、超级文本框、音频视频接口(AVI)动画播放控件、视频控件、开放式数据库查询控件、历史曲线控件等。在组态王中加载内置控件,可以单击工具箱中的【插入控件】按钮,弹出的对话框左侧的“种类”列表中列举了内置控件的类型,选择每一项,在右侧的内容显示区中可以看到该类中包含的控件。选择控件图标,单击【创建】按钮,则创建控件;单击【取消】按钮,则取消创建。
4.配方管理概述
(1)配方的概念 在制造领域,配方是用来描述生产一件产品所用的不同配料之间的比例关系。配方是生产过程中与一些变量对应的参数设定值的集合。
例如,一个面包厂生产面包时有一个基本的配料配方,此配方列出所有要用来生产面包的配料成分表(如水、面粉、糖、鸡蛋、香油等),另外也列出所有可选配料成分表(如果酱、维生素、巧克力等),而这些可选配料成分可以被添加到基本配方中,用以生产各种各样的面包。
(2)组态王中的配方管理 组态王提供的配方管理由两部分组成:配方管理器和配方函数集。打开配方管理器后,弹出对话框,用于创建和维护配方模板文件;配方函数允许组态王运行时对包含在配方模板文件中的各种配方进行选择、修改、创建和删除等一系列操作。
所有配方都在配方模板文件中定义和存储,每一个配方模板文件以扩展名为.csv的文件格式存储,一个配方模板文件是通过配方定义模板产生的。
配方定义模板:用于定义配方中的所有项目名(即配料名)、项目类型、数据变量(与每一个项目名对应)和配方名。每一个配方指定每一个配料成分所要求的数量大小。
在组态王的工程浏览器中,能够创建和管理配方模板文件,在工程浏览器的目录显示区中,选中大纲项“文件”下的成员“配方”,即可按部就班地完成配方设计。配方的使用是在建立配方模板后,通过使用配方命令语言函数实现的。配方命令语言函数的调用可通过建立操作按钮或是在命令语言中调用来实现。
5.组态王系统安全管理
组态王提供一个强有力的、先进的基于用户的安全管理系统。在“组态王”系统中,在开发系统里可以对工程进行加密。打开工程时,只有输入的密码正确时才能进入该工程的开发系统,组态王以此来保障系统的安全运行。
(1)组态王开发系统安全管理 为了防止其他人员对工程进行修改,在组态王开发系统中,可以分别对多个工程进行加密。当进入一个有密码的工程时,必须正确输入密码方可进入开发系统,否则不能打开该工程进行修改,从而实现了组态王开发系统的安全管理。新建组态王工程时,首次进入组态王浏览器,系统默认没有密码,可直接进入组态王开发系统。如果要对该工程的开发系统进行加密,执行工程浏览器中“工具/工程加密”命令。弹出“工程加密处理”对话框,如图7-69所示。按下述步骤可完成开发系统加密。
图7-69 “工程加密处理”对话框
1)密码:输入密码,密码长度不超过12个字节,密码可以是字母(区分字母大小写)、数字、其他符号等。
2)确认密码:再次输入相同密码进行确认。
单击【取消】按钮,将取消对工程实施加密操作;单击确定按钮后,系统将对工程进行加密。加密过程中,系统会弹出提示信息框,显示对每一个画面分别进行加密处理。当加密操作完成后,系统弹出确认操作成功画面,如图7-70所示。
(2)组态王运行系统安全管理 在“组态王”系统中,为了保证运行系统的安全运行,对画面上的图形对象设置访问权限,同时给操作者分配访问优先级和安全区,当操作者的优先级小于对象的访问优先级或不在对象的访问安全区内时,该对象为不可访问,即要访问一个有权限设置的对象,要求先具有访问优先级,而且操作者的操作安全区须在对象的安全区内时,方能访问。操作者的操作优先级级别为1~999,每个操作者和对象的操作优先级级别只有一个。系统安全区共有64个,用户在进行配置时,每个用户可选择除“无”以外的多个安全区,即一个用户可有多个安全区权限,每个对象也可有多个安全区权限。除“无”以外的安全区名称可由用户按照自己的需要进行修改。在软件运行过程中,优先级大于900的用户还可以配置其他操作者,为他们设置用户名、口令、访问优先级和安全区。
6.组态王的其他功能分析
组态王还具备各种报表组态功能、网络功能、冗余功能、Web发布功能等用于工程应用开发。具体的应用设置步骤参见《组态王用户手册》。
图7-70 加密操作成功画面
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。