MCGS简单配方组态.docx
《MCGS简单配方组态.docx》由会员分享,可在线阅读,更多相关《MCGS简单配方组态.docx(8页珍藏版)》请在冰豆网上搜索。
![MCGS简单配方组态.docx](https://file1.bdocx.com/fileroot1/2023-1/9/d1332065-4899-4021-9ab4-e4f13f9d6106/d1332065-4899-4021-9ab4-e4f13f9d61061.gif)
MCGS简单配方组态
简单配方组态
1.配方组态设计
在实时数据库中建立配方所要绑定的变量
单击在“工具”菜单下的“配方组态设计”,进入配方组态设计
配方功能具体说明
●配方组和配方:
在MCGS嵌入版配方构件中,每个配方组就是一张表格,每个配方就是表格中的一行,而表格的每一列就是配方组的一个成员变量。
●配方组名称:
配方组的名称应能够清楚反映配方的实际用途,例如面包配方组就是各种面包的配方。
●变量个数:
这里的变量个数就是配方组成员变量的数量,也就是配方中的原料总数。
例如上表的配方就有5种原料,那么对应的配方组就应该有5个成员变量。
●输出系数:
输出系数会从整体上影响配方中所有变量的输出值。
在输出变量值时,每个成员变量的值会乘以输出系数以后再输出。
如果输入系数为空,那么就会跳过这个操作,其等效于将输出系数设置为1。
输出系数除了可以设置成固定常数外,也可以设置成数据对象。
这样就可以通过改变输出系数对应的数据对象来控制配方组成员变量的最终输出值了。
●变量名称:
变量名称实际上是数据对象的名称。
例如面包配方中“糖”这个原料对应的数据对象可能叫做“原料-糖”。
●列标题:
每一列的标题并不会对输出值造成任何影响,只是为了便于用户查看和编辑配方,因此设置成有意义的名字即可。
●输出延时:
输出延时参数会影响成员变量的值复制到数据对象时的等待时间,单位是“秒”。
例如“糖”的输出延时是100秒,那么在运行环境下装载配方时,“糖”的变量值会在100秒以后才复制到对应的数据对象中去。
如果使用脚本函数装载配方,那么要注意有一个脚本函数在输出值时是不会受到输出延时参数影响的,详细情况请查阅脚本参考部分的内容。
(1)增加配方组
两种方法:
A:
文件-新增配方组
B:
所有配方组列表中鼠标右键-新增配方组
可以有建立多个配方组
(2)修改配方组名称
A:
文件-配方组改名
B:
所有配方组列表中选择配方组,鼠标右键-配方组改名
(3)添加组对象成员
点击
,在
会新增一行,根据配方变量实际数量去添加。
变量名称输入配方绑定的变量名,列标题为配方表列标题名称,可以手动输入标题名也可以点击
系统将自动把变量名做为列标题名。
(4)编辑配方
A:
在组态时编辑配方表
点击
打开配方编辑对话框
增加:
增加配方表
删除:
删除配方表
拷贝:
复制选中的配方表
左移:
将选择的配方表向左移动1位
右移:
将选择的配方表向右移动1位
保存:
保存修改后的配方表
退出:
退出配方编辑对话框
B:
可以使用脚本函数编辑配方
2.配方组态画面
实时数据库建立组对象配方组,将配方绑定变量按配方变量顺序添加到组对象成员中
配方组态:
装载配方:
!
RecipeLoadByDialog("配方组","") “弹出配方选择对话框,让用户选择要装入的配方。
选择后配方变量的值会输出到对应数据对象上
配方名称=!
RecipeGetName("配方组") “得到配方组当前配方的名称
新增配方:
!
RecipeAddNew("配方组",配方名称,配方组) “在配方组中追加一个新配方,并将组对象成员的值复制到配方中
修改配方:
!
RecipeGetValueFrom("配方组",配方组) “将组对象配方组成员中的值复制到配方组的当前配方中
!
RecipeSetName("配方组",配方名称) “设置配方组当前配方的配方名称
删除配方:
!
RecipeDelete("配方组",) “删除配方组的当前配方。
删除成功后当前配方会重新定位到被删除配方的下一个配方。
!
RecipeGetCurrentValue("配方组") “将组对象配方组成员中的值复制到配方组的当前配方中
配方名称=!
RecipeGetName("配方组") “得到配方组当前配方的名称赋值给变量配方名称。
上移配方:
!
RecipeMovePrev("配方组") “载入当前配方的上一个配方。
配方名称=!
RecipeGetName("配方组") “得到配方组当前配方的名称赋值给变量配方名称。
下移配方:
!
RecipeMoveNext("配方组") “载入当前配方的下一个配方。
配方名称=!
RecipeGetName("配方组") “得到配方组当前配方的名称赋值给变量配方名称。
下载PLC:
设备0_读写DWUB0000=水
设备0_读写DWUB0001=糖
设备0_读写DWUB0002=面粉
采用直接赋值的方式下载,将配方变量的值直接赋值给PLC地址关联的变量.
配方导出:
return=!
RecipeToCsv("配方组","配方组导出","",0,!
RecipeGetCount("配方组"),导出条数,3)
!
RecipeToCsv(配方组名,csv文件名,导出列名,起始编号,要求导出条数,实际导出条数,导出参数)
将配方组的数据导出到配方组导出.csv文件中
导出列名=””表示全部导出
起始编号=0表示从第一条开始导出
要求导出条数=!
RecipeGetCount("配方组")获取配方表配方组中配方的个数
导出参数=3覆盖csv表现有数据,导出数据的内容包含配方组成员字段名称
Return开关型变量
返回0:
导出成功;
返回1:
起始编号超过范围;
返回2:
导出文件创建或写入失败;
返回4:
指定的配方组不存在;
返回5:
指定的导出列名在配方组中不存在;
返回6:
指定的导出参数类型错误(必须是开关型)。
!
sleep(200)
在脚本程序中等待mTime毫秒,然后再执行下条语句
!
FileCopy("\HardDisk\mcgsbin\Data\recipe\配方组导出.csv","\USBHardDisk\配方组导出.csv")
将\HardDisk\mcgsbin\Data\recipe\配方组导出.csv复制到目标文件\USBHardDisk\配方组导出.csv,若目标文件已存在,则将目标文件覆盖。
U盘在触摸屏存储器中路径名是\USBHardDisk。
配方导入
!
FileCopy("\USBHardDisk\配方组导出.csv","\HardDisk\mcgsbin\Data\recipe\配方组导出.csv")
将\USBHardDisk\配方组导出.csv复制到目标文件\HardDisk\mcgsbin\Data\recipe\配方组导出.csv,若目标文件已存在,则将目标文件覆盖。
U盘在触摸屏存储器中路径名是\USBHardDisk。
!
sleep(200)
在脚本程序中等待mTime毫秒,然后再执行下条语句
return=!
CsvToRecipe("配方组","配方组导出","水,糖,面粉",3,导入条数,3)
!
CsvToRecipe(配方组名,csv文件名,导入列名,要求导入条数,实际导入条数,导入参数)
从配方组导出.csv文件中导入数据到配方组。
导入列名,字符型,以逗号分隔,区分大小写,内容应与配方列标题一致.
要求导入条数,开关型,要求导入配方记录的最大条数。
实际导入条数,开关型,实际导入配方记录的条数.
导出参数=3 文件包含配方组成员字段名称,删除配方组中现有数据,写入导入数据;
Return开关型变量
返回0:
导入成功;
返回1:
导入文件创建或写入失败;
返回2:
指定的配方组不存在;
返回3:
指定的导入列名在配方组中不存在;
返回6:
指定的导入参数类型错误(必须是开关型)