以配方表5-28为例,编程实现输入不同的序号来调用不同口味的配料和搅拌时间,如序号1表示巧克力口味、序号2表示香草口味等。通过序号来选择参数,再结合程序运行生产指定口味的冰淇淋,步骤如下:
1)创建PLC数据类型“Recipe_Ice Cream”,如图5-17所示,包含配方变量名称和相应数据类型。
2)建立配方数据块,定义“属性”为“仅存储在装载存储器”和“优化的块访问”。在配方数据块中建立Array类型的变量,如果配方条目数为5条,则定义Array[1..5]of“Recipe_Ice Cream”,如图5-18所示。Ice Cream[1]即序号1巧克力的配方,Ice Cream[2]即序号2香草味的配方。
图5-17 定义用于配方的数据类型
图5-18 配方数据块
注意:
•配方数据块中的元素须包含在一维数组中,并且数组元素是UDT或结构类型的变量:
•如果使用PLC数据类型,不允许PLC数据类型中存在UDT;
•如果使用UDT,不允许UDT中嵌套UDT。
3)创建活动配方数据块,定义“属性”为“优化的块访问”,如图5-19所示,变量的数据类型为“Recipe_IceCream”,将用于装载存储器与工作存储器之间的数据交换。
4)使用“RecipeExport”指令导出配方文件,如图5-20所示。
图5-19 活动配方数据块
图5-20 配方导出
“RecipeExport”指令参数说明,见表5-30。(www.xing528.com)
表5-30 “RecipeExport”指令参数
注意:
如果想生成一个新的配方CSV文件,需要更改配方数据块的Name参数。Name参数必须遵守Windows文件系统命名规则,不允许使用\/:∗?"<>|及空格等。
5)配方数据块中的变量是数组类型,可以使用数组元素的坐标进行变量的寻址。定义“Int”类型变量“Write_Y”作为数组坐标,如图5-21所示,执行“WRIT_DBL”指令实现单个配方条目的修改。如果Write_Y=1则表示写入巧克力口味的这一配方条目。
图5-21 单个配方条目的修改
6)定义“Int”类型变量“Read_X”作为数组坐标,如图5-22所示,执行“READ_DBL”指令从装载存储区的配方数据块写入到活动配方数据块,实现读取单个配方条目。
图5-22 调用单个配方条目
7)修改的CSV文件通过Web服务器上传至PLC,这部分操作请参见5.3.4章节。更新文件后,执行“RecipeImport”指令更新配方数据块中的数据,如图5-23所示。
“RecipeImport”指令参数说明,见表5-31。
图5-23 配方数据导入
表5-31 “RecipeImport”指令参数
示例程序请参见随书光盘中的例程《Recipe_Function》项目。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。