昆仑通态触屏2014_高级技术培训教程_V1.0
昆仑通态
高级技术培训教程
(内部使用版本)
修改日志 日期
2014-3-3
版本 V1.0 修改人 王倩 修改内容 第一版定稿
目录
第一章
第1节
第2节
第3节 显示和存盘 ............................................................................................................ 5 数据准备 ............................................................................................................ 5 实时报表 ............................................................................................................ 7 历史报表 .......................................................................................................... 10
1.3.1 数据存盘 ............................................................................................................... 10
1.3.2历史报表 ................................................................................................................ 12
第4节
第5节
第6节 实时曲线 .......................................................................................................... 16 历史曲线 .......................................................................................................... 18 U盘导出 .......................................................................................................... 21
1.6.1 U盘导出函数 ........................................................................................................ 21
1.6.2 U盘导出功能 ........................................................................................................ 22
第二章
第1节
第2节 权限和安全 .......................................................................................................... 24 用户权限 .......................................................................................................... 24 窗口权限 .......................................................................................................... 27
2.2.1 利用按钮构件权限 ............................................................................................... 27
2.2.2 利用用户登录函数 ............................................................................................... 29
第3节
第4节 工程密码 .......................................................................................................... 31 运行期限 .......................................................................................................... 32
2.4.1 窗口和变量准备 ................................................................................................... 32
2.4.2 编写功能脚本 ....................................................................................................... 33
第5节
第三章
第1节
第2节
第四章
第1节
第2节 下载安全 .......................................................................................................... 37 配方组态 .............................................................................................................. 39 配方使用 .......................................................................................................... 39 配方修改 .......................................................................................................... 43 策略和脚本 .......................................................................................................... 46 启动策略 .......................................................................................................... 46 循环策略 .......................................................................................................... 48
4.2.1 实例1:定时控制 ................................................................................................ 48
4.2.2 实例2:定点控制 ................................................................................................ 50
第3节
第4节
第五章
第1节
第2节
第3节
事件策略 .......................................................................................................... 53 用户策略 .......................................................................................................... 56 Modbus协议应用 ............................................................................................... 60 Modbus协议概述 ........................................................................................... 60 Modbus驱动介绍 ........................................................................................... 61 Modbus数据转发 ........................................................................................... 62
第一章 显示和存盘
MCGS软件提供了丰富的报表和曲线功能,用以实现实时报表、历史报表、实时曲线、历史曲线等功能,本章主要学习这些功能的组态方法,其中讲到了模拟设备的应用,实时报表、实时曲线显示,如何实现数据的存盘,存盘数据如何生成历史报表和历史曲线,最后还会实际操作人机界面中存盘数据的U盘导出功能。
第1节 数据准备
模拟设备是MCGS软件中,可以根据设置的参数产生一组模拟曲线数据的特殊设备驱动,以供用户调试工程使用。可以产生标准的正弦波,方波,三角波,锯齿波信号,且其幅值和周期都可以任意设置。我们首先添加模拟设备,产生一组正弦信号。
1. 添加驱动 在工作台中激活设备窗口,双击中的进入设备组态画面,点击工具条
打开“设备工具箱”。打开“设备工具箱”上的“设备管理”按钮,在通用设备分类下,找到“模拟设备”,添加到选定设备中。
图1-1-1
在“设备工具箱”中的双击“模拟设备”,驱动即被添加到设备窗口中。驱动添加完成后显示效果如下图所示。
图1-1-2 2.
连接变量
双击“设备0--[模拟设备]”打开“设备编辑窗口”。点击
打开“快速连接”对话框。将通道个数修改为2个,确认。 按钮,
图1-1-3
驱动的通道0和通道1分别连接了两个变量Data00、Data01。
图1-1-4
点击“设置设备内部属性”的扩展按钮,将通道1的正弦信号周期修改为20秒。
图1-1-5
图1-1-6 点击按钮,软件出现“添加数据对象”的提示,点击“全部添加”,即可将Data00和Data01两个数据对象在MCGS组态工程中进行定义。
图1-1-7
至此,数据准备部分已经完成。点击“启动设备调试”按钮,可以看到模拟设备按照正弦信号产生的调试数据。
图1-1-8
第2节 实时报表
实时报表是对变量瞬时值的反映,通常用于将当前时间的数据变量按一定报表格式显示和打印出来。实时报表可以通过MCGS系统的自由表格构件组态实现。这一节,我们要通过自由表格构件实现一个简单的实时报表的功能。
1. 添加自由表格
(1)进入用户窗口,点击“新建窗口”,修改窗口名字为“报表”。
(2)双击打开“报表”用户窗口,点击
件图标打开“工具箱”,选取自由表格构,在桌面适当位置,绘制一个表格。
图1-2-1 (3)双击表格进入编辑状态,通过表格编辑条
为2行2列。
(4)自由表格改变单元格大小的方法和微软EXCEL表格的编辑方式相同,即:在编辑状态,把鼠标指针移到A与B或1与2之间,当鼠标指针呈分隔线形状时,拖动鼠标至所需大小即可。 ,将表格调整
图1-2-2
2. 变量链接
(1)双击表格进入编辑状态。在A列的两个单元格中分别输入:变量1、变量2。
图1-2-3
(2)在B列中,选中变量1对应的单元格,单击右键。从弹出的下拉菜单中选取“连接”项。如下图1-2-4所示。自由表格进入连接模式,表格的行号和列号后面加“*”,如图1-2-5所示。
图1-2-4
图1-2-5
(3)在B1单元格点击右键,弹出的变量选择对话框选择Data00变量。同样,在B2单元格选择Data01变量。
图1-2-6
(4)至此,自由表格的组态结束。我们已经完成了一个简单的实时报表的组态。模拟运行程序,可以看到实时报表实时显示Data00和Data01的当前值。效果图如下所示: 图1-2-7
第3节 历史报表
历史报表通常用于从历史数据库中提取数据记录,并以一定的格式显示历史数据。实现历史报表有两种方式:
第一种是用动画构件中的“历史表格”构件;
第二种是用动画构件中的“存盘数据浏览”构件。
本节,我们以使用率更高的“历史表格”构件为例,来讲解如何实现历史报表功能。
1.3.1 数据存盘
MCGS把数据的存盘处理作为数据对象的一个属性,封装在变量的属性中。在MCGS嵌入版中,需要用组对象类型的变量进行存盘。组对象类型是MCGS引入的一种特殊类型的数据对象,类似于一般编程语言中的数组和结构体,用于把相关的多个数据对象集合在一起,作为一个整体来定义和处理。
我们要实现Data00和Data01两个数据对象的定时存盘功能。具体操作步骤如下:
(1)点击进入实时数据库,
点击右侧的按钮,在实时数据库中新建一个数据对象。双击打开数据对象的属性设置页,对象名称修改为“数据组”,对象类型修改为“组对象”。
图1-3-1
(2)打开数据对象属性设置页的“组对象成员”子页,将需要存盘的Data00、Data01两个数据对象添加到组对象成员中。
图
1-3-2 (3)打开数据对象属性设置页的“存盘属性”子页,设置存盘为定时存盘,存盘周期为10秒。点击“确认”按钮。
图1-3-3
至此,Data00和Data01两个数据对象的定时存盘功能我们就完成了。在实时数据库中,在存盘列我们可以看到“数据组”组对象的存盘信息。
图1-3-4
1.3.2历史报表
MCGS软件的历史表格构件主要功能是连接存盘数据源,运行时动态的显示存盘数据源中的存盘记录的值。可以多页显示和单页显示,并可以实现按照时间条件或是数值条件进行查询的功能。本节,我们实现用历史表格构件实现多页显示“数据组”组对象的存盘数据。
1. 添加历史曲线
(1)进入“报表”用户窗口。
(2)
在“工具箱”中选取历史表格构件图标表格。将表格调整为10行3列。 ,在桌面适当位置,绘制一个
图1-3-5
(3)双击表格进入编辑状态。在第一列的三个单元格中分别输入:存盘时间、变量1、变量2。
图1-3-6
2. 连接数据源
(1)选中C1R2至C3R10所有单元格,在选中的单元格区域单击右键。从弹出的下拉菜单中选取“连接”项。如下图1-3-7所示。历史表格进入连接模式,表格的行号和列号后面加“*”,如图1-3-8所示。
图1-3-7
图1-3-8
(2)点击菜单栏中的“表格”菜单,选择“合并表元”项,所选单元格区域会出现反斜杠。
图
1-3-9
(3)双击反斜杠区域,弹出数据库连接设置对话框,具体设置如下:
基本属性页中,连接方式选取:在指定的表格单元内,显示满足条件的
数据记录;按照从上到下的方式填充数据行;显示多页记录。
图1-3-10
数据来源页中,选取组对象对应的存盘数据;组对象名为:数据组。 图1-3-11
显示属性页中,点击“复位”按钮。
图
1-3-12 时间条件页中,排序列名:MCGS_TIME;降序;时间列名:MCGS_TIME;
所有存盘数据。
图1-3-13
(4)至此,历史曲线的功能组态已经完成。最后,我们需要在“报表”窗口的循环脚本中,调用窗口的Refresh方法,以使历史表格构件定时装载数据,实现自动刷新。
图1-3-14
模拟运行程序,可以看到历史报表显示数据组组对象的存盘数据。实时报表和历史报表的对比显示效果图下所示:
图1-3-15
第4节 实时曲线
实时曲线构件是从实时数据库中读取数据,用曲线显示一个或多个数据对象数值的动画图形,实时记录数据对象值的变化情况。本节,我们学习用实时曲线构件显示Data00和Data01两个数据对象的趋势图。
操作步骤如下:
(1)进入用户窗口,点击“新建窗口”,修改窗口名字为“曲线”。
(2)双击打开“曲线”用户窗口,在“工具箱”中选取实时曲线构件图标在桌面适当位置,添加实时曲线。 ,图1-4-1
(3)双击实时曲线,打开实时曲线构件属性设置对话框,具体设置如下:
在基本属性页中,默认设置不需要修改。
在标注属性页中,时间单位设为秒钟,最大值修改为1000,其它不变。
图1-4-2
在画笔属性页中,设置:
曲线1对应的表达式设为Data00,颜色为蓝色;
曲线2对应的表达式设为Data01,颜色为红色。
图1-4-3
(4)实时曲线设置完成。模拟运行可以看到周期为10秒的Data00的正弦曲线和周期为20秒的Data01的正弦曲线。效果图如下:
图1-4-4
第5节 历史曲线
MCGS软件中历史曲线是将存盘数据从数据库中读出,以时间为X轴,数据值为Y轴进行曲线绘制。工艺上,历史曲线主要用于事后查看数据的状态变化趋势和总结规律。本节,我们要用历史曲线构件将数据组中的Data00和Data01两个数据对象的存盘数据的趋势图进行显示。
1. 添加历史曲线
(1)进入“曲线”用户窗口。
(2)在“工具箱”中选取历史曲线构件图标史曲线构件。 ,在桌面适当位置绘制一个历图1-5-1
(3)在历史曲线矩形框的下方有一排按钮,按钮上有前进、后退、快进、快退、到最后、到最前以及曲线设置和时间设置按钮。这些按钮是历史曲线操作的缺省按钮。
2. 添连接数据源
(1)双击历史曲线构件,打开历史曲线构件属性设置对话框,进行如下设置: 在基本属性页中,将背景颜色设为白色;
在存盘数据页中,历史存盘数据来源选择组对象对应的存盘数据,并在
下拉菜单中选择数据组;
图1-5-2
在标注设置页中,坐标长度修改为10,时间单位修改为分;
图1-5-3
在曲线标识页中:
选中曲线1,曲线内容设为Data00,曲线颜色设为蓝色,最大值
设为1000,实时刷新修改为Data00;其它不变;
图1-5-4
同样,选中曲线2,曲线内容设为Data01,曲线颜色设为红色,最大值设为1000,实时刷新修改为Data01;其它不变。
在高级属性页中,勾选上运行时自动项。
(2)至此,我们就将历史曲线的组态工作完成了。模拟运行程序,可以看到历史报表显示数据组组对象的存盘数据。实时曲线和历史曲线的对比显示效果图下所示:
图1-5-5
其中,历史曲线有几个功能需要说明一下:
游标:游标是X轴和Y
轴坐标线上的四个小图标。通过这个小图标,可
以进行曲线的放大和缩小以及平移操作。
光标:光标是曲线区域中的一根线,随着鼠标移动,在信息显示窗口中,显示了光标当前指向的时间,以及此刻这些趋势点的值。
信息显示窗口:运行时显示光标所在位置的时间点和各条曲线的值,如下图所示。
图1-5-6
第6节 U盘导出
MCGS软件提供了将存储在人机界面存储介质中的历史存盘数据导出到U盘的功能,并且将数据转换成CSV格式,导出的数据表格在电脑上可以直接用Excel打开查看编辑。本节,我们将结合实际操作学习这一功能。
1.6.1 U盘导出函数
U盘导出功能需要用到MCGS中的系统函数!ExportHisDataToCSV( ),在帮助中索引该函数,可以看到函数功能及参数说明。我们需要注意函数的各参数意义和类型。
图1-6-1
1.6.2 U盘导出功能
操作步骤如下:
(1)
在“报表”窗口中,在报表的下方新建一个按钮构件本修改为“U盘导出”。
(2)双击按钮打开按钮构件属性设置,在脚本程序的抬起脚本里输入U盘导出函数“!ExportHisDataToCSV(
图1-6-2
(3)点击按钮属性页的确认按钮,此时,会弹出未知对象的组态提示,点击“是”,定义“进度”和“控制”两个数据对象,变量类型均为开关型。
图1-6-3
(4)函数意义:
!ExportHisDataToCSV(
表示将数据组中的存盘数据导出到TPC的U盘目录\usbharddisk\下 目标文件是数据名为“数据.csv”
导出的字段名为空,表示导出所有字段的数据
导出数据的开始时间为2014/1/1 0:0:0,结束时间为2015/1/1 0:0:0 最大导出条数为20000条
导出方式是覆盖方式
(5)
模拟运行,点击(下载配置)按钮,弹出下载配置对话框。将程序下
载到屏中,点击U
盘导出按钮。执行结果如下图:
第二章 权限和安全
MCGS嵌入版组态软件提供了一套完善的安全机制,用户能够自由组态进入和退出系统的操作权限,只允许有操作权限的操作员才能对某些功能进行操作。MCGS嵌入版还提供了工程密码功能,来保护使用MCGS嵌入版组态软件开发所得的成果,开发者可利用这些功能保护自己的合法权益。
本章,我们将学习用户权限的设置、用户窗口的进入权限、工程密码、组态工程中的运行期限功能以及工程下载保护等内容。
第1节 用户权限
MCGS嵌入版系统的操作权限机制和Windows NT类似,采用用户组和用户的概念来进行操作权限的控制。在MCGS嵌入版中可以定义多个用户组,每个用户组中可以包含多个用户,同一个用户可以隶属于多个用户组。
操作权限的分配是以用户组为单位来进行的,即某种功能的操作哪些用户组有权限,而某个用户能否对这个功能进行操作取决于该用户所在的用户组是否具备对应的操作权限。如此,能方便地建立多层次的安全机制。
1. 定义用户组和用户
新建MCGS组态工程,选取“工具”菜单中的“用户权限管理”菜单项,弹出如下用户管理窗口:
图2-1-1
可以看到,用户管理器里固定有一个名为“管理员组”的用户组和一个名为
“负责人”的用户,它们的名称不能修改。管理员组中的用户有权利在运行时管理所有的权限分配工作,管理员组的这些特性是由MCGS嵌入版系统决定的,其它所有用户组都没有这些权利。
点击按钮,新增一个用户名为
“李工”的用户,密码为“111”。
图2-1-2
选择管理员组,点击
员选择“李工”。 按钮,新增一个“操作员组”,用户组成
图2-1-3
2. 系统权限设置
为了更好的保证工程运行的安全、稳定可靠,防止与工程系统无关的人员进入或退出工程系统,MCGS嵌入版系统提供了对工程运行时进入和退出工程的权限管理。
点击进入主控窗口,选择图标,再点击
按钮打开主控窗口属性设置,如下窗口:
图2-1-4
在基本属性页中,设置为“进入登录,退出不登录”,确认。
点击工具栏的下载配置按钮,弹出下载配置对话框,选择模拟运行,点击工程下载,待提示下载成功后启动工程,如下图所示,可以看到启动时自动弹出用户登录对话框,需要正确登录用户后才能进入运行窗口。
图2-1-5
如果登录的用户信息不正确,会提示“用户未授权,退出系统”,而不能进入工程界面。
图2-1-6
第2节 窗口权限
工艺上,组态工程中的一些厂家参数或是生产参数等重要的用户窗口不允许现场操作工随意进入操作,进入窗口时需要登录级别更高的用户。本节我们就实现用户窗口的权限。有两种方法可以实现这一功能:利用按钮构件权限和利用用户登录函数,下面我们分别讲解。
2.2.1 利用按钮构件权限
具体操作步骤如下:
(1)新建两个用户窗口,修改窗口名为“主窗口”、“参数设置”。
(2)双击打开“主窗口”用户窗口,新建一个按钮构件
修改为“参数设置”。
(3)双击“参数设置”按钮打开按钮属性设置,点击,并将按钮的文本限设置对话框,选择“管理员组”,表示只有管理员组才有权限才操作此按钮。其他用户登录时按钮无效。
图2-2-1
(4)操作属性页,选择打开用户窗口,窗口选择参数设置窗口。
图2-2-2
(5)如此,便完成了打开参数设置窗口的按钮权限设置。配合这一功能,我们还需要做两个按钮,用脚本函数!LogOn()、!LogOff()来实现用户的登录和退出。
模拟运行程序,可以看到,没有登录用户时或是登录操作员组,点击参数设置按钮时没有任何反应。只有当登录的用户时管理员组时,才可以正常点击按钮打开参数设置用户窗口。
操作员组登录,点击“参数设置”按钮无反应:
管理员组登录,点击“参数设置”按钮进入参数设置窗口:
2.2.2 利用用户登录函数
具体操作步骤如下:
(1)打开“主窗口”用户窗口,新建一个按钮构件
为“参数设置”。
(2)双击打开按钮属性页,在脚本程序的抬起脚本输入以下脚本:
IF !LogOn( )=0 and !StrComp(!GetCurrentGroup( ),
用户窗口.参数设置.Open( )
ENDIF
脚本意义:
点击按钮时,弹出用户登录对话框
如果用户登录成功,且当前登录的用户组是管理员组,则打开到参数设
置窗口
(3)模拟运行可以看到如下效果:
点击“参数设置”按钮:
以管理员组登录后,自动进入了参数设置窗口:
以上就是实现窗口权限的两种方式,第一种方式只要当前登录的用户权限足够就可以点击按钮进入参数设置窗口;第二种方式则每次点击参数设置按钮都需要登录一次,登录权限足够才可以进入参数设置窗口。
第3节 工程密码
工程密码设置是MCGS软件提供的一个保护工程文件的功能。给正在组态或已完成的工程设置密码,可以保护该工程不被其它人打开使用或修改。当使用MCGS嵌入版来打开这些工程时,首先弹出输入框要求输入工程密码,如密码不正确则不能打开该工程,从而起到保护劳动成果的作用。
在MCGS工作台,选择工具菜单“工具”-“工程安全管理”-“工程密码设置”选项。
图2-3-1
打开“修改工程密码”对话框,旧密码为空,在新密码、确认新密码输入框
内输入“666”,点击确认。
图2-3-2
完成工程密码设置后,我们可以测试一下MCGS的安全管理,首先我们关闭当前工程,重新打开工程,此时弹出一个“输入工程密码”对话框。此时如果输入密码“666”,确认后可以打开工程。
图2-3-3
第4节 运行期限
因为商务或款项等原因,有时需要在MCGS组态工程中实现运行期限的功能,组态工程运行到设定的日期后,系统会自动提示,如不能输入正确密码,则组态工程停止运行。如此来保护MCGS组态工程开发者的合法权益。本小节,我们以实例来讲解如何在MCGS组态软件通过脚本程序实现运行期限的功能。
2.4.1窗口和变量准备
3. 添加窗口和构件
(1)新建组态工程,工程名为“运行期限”。
(2)新建2个用户窗口,窗口名分别修改为“主画面”、“运行期限”。
(3)打开“主画面”窗口,增加“标签”构件,文本内容输入“主画面”。
图
2-4-1 (3)打开“运行期限”窗口,增加“标签”、“输入框”、“标准按钮”构件,构件文本内容和布局如下:
图2-4-2
4. 创建数据对象
为了实现运行期限功能,我们需要创建以下数据对象:
标识开关型变量初始值为0
密码字符型变量初始值为空
图2-4-3
2.4.2 编写功能脚本
1. 期限判断脚本
(1)首先要编写的期限判断的脚本。
点击双击打开“循环策略”。
图标,进入运行策略, 图2-4-4
(2)点击工具栏的新增策略行图标,新增一个策略行。
图2-4-5
(3)点击工具栏的
移到策略块图标,打开“策略工具箱”。点击“脚本程序”,将鼠标指针上,单击鼠标左键,添加脚本程序构件。
图2-4-6
(4)双击“脚本程序”,打开脚本程序编辑器。输入以下脚本:
IF !TimeSpanGetSeconds(!TimeGetSpan(!TimeStr2I($Date+
!TimeStr2I(
用户窗口.运行期限.Open( )
ENDIF
脚本意义:
获取当前系统时间($Date+
(5)双击打开策略行的条件表达式,设置为当“标识”变量值为0时才执行这个策略行。也就是,当“标识=1”时便不再执行(4)中期限判断脚本,相当于解除了运行期限的功能。
图2-4-7
2. 解除期限密码
(1)进入“运行期限”窗口,双击输入框构件打开属性设置页,对应数据对象选择“密码”,勾选上“密码”选项。
图2-4-8
(2)双击标准按钮构件,打开脚本程序页,输入以下脚本:
IF !StrComp(密码,
用户窗口.主画面.Open( )
标识=1
标识.SaveDataInitValue( )
!FlushDataInitValueToDisk( )
ENDIF
脚本意义:
初始密码为“ABC”
输入的密码和初始密码“ABC”作比较,如正确,则打开到“主画面”
窗口,并执行“标识=1”使期限判断脚本不再执行
“标识”数据对象的值掉电保持。即使重启,组态程序还是能维持解除
运行期限功能的状态
至此,我们就完成了运行期限功能的所有组态工作。我们将设定期限适当调整,模拟运行可以看到如下效果:
启动工程之后,显示主画面:
运行期限到时,自动打开到运行期限已到的提示窗口:
此时,需要MCGS组态工程开发者提供密码,否则组态工程将不能正常使用。输入正确的密码后,则可以解除运行期限功能继续使用。
本实例,只讲解了运行期限基础功能的使用。用户还可以在基础上进行修改和增加特殊功能,比如,到达期限时停止组态工程与下位机设备的通讯等,可以举一反三地应用到MCGS组态工程中。
第5节 下载安全
开发好的组态工程需要下载到人机界面中使用,MCGS软件提供了可以将人机界面的工程上传到电脑的功能。用户可以根据需要设置,如果要保护下载的程序不被他人上传使用,则需要注意不要激活工程上传功能。本节我们讲解一下如何才可以实现工程上传。 点击
图标打开下载配置对话框,选择连机运行后,支持工程上传的选择激活,默认状态是不支持工程上传。此时,如果我们勾选上支持工程上传,那么下载到人机界面的工程可以通过MCGS组态软件上传到电脑中。
打开下载配置后,勾选支持工程上传,点击工程下载。
图2-5-1
下载成功后,打开MCGS组态软件工作台,在文件下点击“上传工程”项。打开上传工程对话框,设置工程路径及连接方式,点击“开始上传”,即完成了工程上传的操作。
图2-5-2 图2-5-3
第三章 配方组态
MCGS软件提供了配方组态工具,可以在组态工程中实现配方功能。
配方数据可以存储在PLC中,根据工艺选取配方数据,通过驱动采集将数据传送给HMI进行显示和使用,这种用法需要在PLC编程软件中实现。本章我们介绍配方数据存储在HMI中的用法。
第1节 配方使用
配方数据存储在HMI中,使用时选择其中的一条配方,将数据写到PLC中进行生产和计算。本节,我们以面包配方为例来讲解配方在组态工程中的应用。 配方组态
(1)新建组态工程,工程名为“配方组态”。
(2)点击“工具”菜单下的“配方组态设计”菜单项,打开配方组态设计对
话框。点击工具栏的新建配方图标“面包配方”。 自动创建一个配方组,将配方组名改名为
图3-1-1
(3)面包配方需要面粉、水、糖、盐4种配料,我们在实时数据库中建立4个数据对象作为配方变量:
图3-1-2
(4)
点击工具栏的新增一行图标,给配方组增加四行,
并在变量名称单元格分别输入“面粉”、“水”、“糖”、“盐”。点击“使用变量名作列标题名”。
图3-1-3
(5)实例中,我们要做以下三种口味的面包,也就是对应三条配方数据,我们拟设定配方数据如下表所示:
按钮增加(6)双击“面包配方”配方组,打开配方修改对话框。点击
三条配方,按着(5)中列表所示的数据填写。保存后退出。
图3-1-4
窗口组态
(1)根据初级教程学习的内容,我们在设备窗口创建西门子200PPI的驱动,
并添加VW0、VW2、VW4、VW6四个地址,作为PLC的配方数据地址。
图3-1-5
(2)新建用户窗口,窗口名称为“配方使用”。
(3)打开“配方使用”窗口,增加标签和标准按钮构件,文字和布局如下:
图3-1-6
配方名对应的标签关联变量“配方名”,定义为字符型变量,显示选择
的配方名称
面粉对应的标签关联变量“面粉”,输出值类型:数值量
水对应的标签关联变量“水”,输出值类型:数值量
糖对应的标签关联变量“糖”,输出值类型:数值量
盐对应的标签关联变量“盐”,输出值类型:数值量
(4)双击“通过对话框选择配方”按钮,在脚本程序页输入以下脚本: !RecipeLoadByDialog(
配方名=!RecipeGetName(
设备0_读写VWUB000=面粉
设备0_读写VWUB002=水
设备0_读写VWUB004=糖
设备0_读写VWUB006=盐
脚本意义:
运行时可以打开配方选择对话框,选择配方数据装载到配方变量中 将当前配方的配方名获取出来,赋值给“配方名”数据对象中
将当前配方的4个数据对象面粉、水、糖、盐的值分别写到PLC的对应
地址中
至此,我们就完成了配方使用的组态工作,可以在组态工程运行时选择甜面包、低塘面包、无糖面包三种配方中选择,并将选择的配方的值赋值到面粉、水、糖、盐4个变量中进行显示和生产。
模拟运行,可以看到面粉、水、糖、盐的数值全部为初始值0。
图3-1-6
点击“通过对话框选择配方”按钮,可以弹出配方选择对话框。在配方组态编辑好的三条配方中进行选择。
图3-1-7
选择甜面包,点击确认,可以发现变量的数据都变成了选择的甜面包配方中的数据。
图3-1-8
第2节 配方修改
使用配方功能时,一般还需要实现在HMI中增加、删除、修改配方等操作。本节我们讲解如何在HMI实现配方修改的操作。
打开“配方使用”窗口,再增加一个标准按钮构件,名称为“通过对话框编辑配方”,如下图:
图3-2-1
双击打开“通过对话框编辑配方”按钮,在脚本程序页输入以下脚本: !RecipeModifyByDialog(
脚本意义:
运行时可以打开配方编辑对话框,进行增加、删除、修改、移动、保存
配方等编辑工作
再次模拟运行,选择甜面包配方,可以看到此时的配方数据为:面粉80、水30、糖80、盐10。
图3-2-2
点击“通过对话框编辑配方”按钮,打开配方编辑对话框,增加一条“牛角面包”,将甜面包的数据修改为:面粉80、水35、糖60、盐10。
图3-2-3
此时,再次通过“通过对话框选择配方”按钮选择甜面包配方,可以看到配方数据已经修改为最新状态。
图3-2-4 图3-2-5 如此,便实现了运行时在HMI修改配方数据的功能。此外,MCGS软件还提供了大量的配方操作函数供开发者使用,用户可以在帮助文件中学习函数功能和用法,实现更加灵活多变的配方操作功能。
第四章 策略和脚本
运行策略是指对监控系统运行流程进行控制的方法和条件,它在MCGS软件的后台执行,可以灵活的根据既定的事件条件或是时间条件完成操作。可以完成脚本程序、窗口操作、定时器等等操作。
脚本程序是组态软件中的一种内置编程语言,非常类似普通的Basic语言。可以编制各种流程控制程序和操作。
本章我们将学习运行策略的七个类别中比较常用的启动策略、循环策略、事件策略、用户策略,通过实例讲解运行策略和脚本程序在MCGS软件中的应用。
第1节 启动策略
启动策略为系统固有策略,在MCGS嵌入版系统开始运行时自动被调用一次。只运行一次,一般完成系统初始化的处理。本节,我们学习使用启动策略和脚本程序实现放大键盘的功能。
新建组态工程,新建用户窗口,添加标签构件和输入框构件如下:
图4-1-1
标签构件输入文本标题:键盘放大
输入框构件关联数值型中间变量:Data1
模拟运行组态工程,点击输入框构件会在屏幕中央自动弹出数值输入键盘,键盘的大小如下图所示的效果。如果使用的人机界面尺寸比较小,那么键盘触摸输入时会感觉按键比较小,此时就需要使用调整软键盘大小的系统函数来放大键盘。函数只需要开机时执行一次就可以,因而我们将函数放在启动策略的脚本程序中执行。
图4-1-2 点击
进入运行策略,可以看到MCGS软件固有的启动策略,
,启动策略的名称是不能修改的。双击打开启动策略,点击新增策略行图标
给启动策略增加策略行,并添加脚本程序。增加后如下图所示:
图4-1-3
双击打开脚本程序,输入以下脚本:
!SetNumPanelSize(1,500)
脚本意义:
将数值输入键盘改为500像素点大小(键盘放大,长宽比例不变),显
示于屏幕中央
模拟运行组态工程,点击输入框弹出数值型软键盘,此时的键盘已经被放大到500像素点,对比之前的模拟运行效果图,键盘明显放大了。
图4-1-4
此系统函数还可以被用来放大字符型键盘、用户登录对话框、配方编辑对话框等,使用方法类似,都是使用于启动策略中。
第2节 循环策略
循环策略为系统固有策略,也可以由用户在组态时创建,在MCGS嵌入版系统运行时按照设定的时间循环运行,通常用来完成流程控制任务。我们通过两个实例来学习。
4.2.1 实例1:定时控制
1. 流程概述
启动后开始计时,5秒后启动定时开关1,10秒后启动定时开关2,并将数值输出变量赋值为100,流程结束。
2. 变量准备
根据需要,我们首先在实时数据库定义以下变量:
图4-2-1
3. 制作画面
新建用户窗口,名称修改为“主画面”,添加标准按钮构件,标签构件,文本名称和布局如下:
图4-2-2
定时器值对应的标签显示输出“定时器值”,输出值类型:数值量 数值输出对应的标签显示输出“数值输出”,输出值类型:数值量 定时开关1对应的指示灯属性页,填充颜色选择“定时开关1” 定时开关2对应的指示灯属性页,填充颜色选择“定时开关2” 双击“启动”按钮,在脚本程序页输入以下脚本:
!TimerRun(1)
!TimerReset(1,0)
脚本意义:
启动定时器1
将定时器1的值复位为0
4. 循环策略
点击进入运行策略,可以看到MCGS软件固有的循环策略。在循环策略上点击右键选择属性项,将定时循环的循环时间修改为1000毫秒。表示在MCGS嵌入版系统运行时循环策略每1秒执行一次。
图4-2-3
双击打开循环策略,点击新增策略行图标
序。双击打开脚本程序,输入以下脚本:
定时器值=!TimerValue(1,0)
IF !Abs(定时器值-5)
定时开关1=1
ELSE
IF !Abs(定时器值-10)
定时开关2=1
数值输出=100
!TimerStop(1)
ENDIF
ENDIF
脚本意义:
将定时器1的当前值赋值给“数值输出”变量
判断定时器1的值为5时,执行“定时开关1=1”
判断定时器1的值为10时,执行“定时开关2=1”、“数值输出=100”,
并关闭定时器1
考虑:为何判断条件不用等号,而是用的取绝对值的!Abs函数呢? 模拟运行组态工程,点击启动按钮后可以看到定时器值每1秒会更新一次。定时器值为5时,定时开关1对应的指示灯变为绿色.定时器值为10时,定时开关2对应的指示灯变为绿色,数值输出对应值变为100,且定时器关闭,数值输出的变量值不再更新。
图4-2-4
4.2.2实例2:定点控制
1. 功能概述
每天14点自动给温度设定为30,湿度设定为25。
2. 变量准备
根据需要,我们首先在实时数据库定义以下变量:
图4-2-5
3. 制作画面
新建用户窗口,名称修改为“主画面”,添加标签构件,文本名称和布局如下:
图4-2-6
温度设定对应的标签显示输出“温度设定”,输出值类型:数值量 湿度设定对应的标签显示输出“湿度设定”,输出值类型:数值量
系统时间对应的标签显示输出,选择内部对象中的“$Time”,为系统当
前时间