建立结构体
在 OB1 调用RecipeExport,以及捕捉是否完成及错误代码等程序,如图8所示。
图8.调用RecipeExport指令
5.配方csv文件的导入和导出
可以使用Web服务器或者存储卡的方式对csv文件进行导入和导出,在电脑上的Excel等软件上进行配方数据的编辑,具体操作详见配方数据的管理。
6.导入配方数据块
当配方文件通过WEB上载完成,或通过存储卡重新导入文件后,就可以导入配方数据块。和第4步类似,在DB块"DB3操作",中建立结构体"Import",以及相关变量,结构同"Export",如图9所示,用于RecipeImport的请求与状态位。
图9. 建立结构体
在 OB1 调用RecipeImport,以及捕捉是否完成及错误代码等程序,如图10所示。思路同第4步。
图10.调用RecipeImport指令
7.读取配方数据
经过使用配方指令或者直接在配方数据块的编辑,此时配方数据已经保存在PLC的装载存储器中,需要使用READ_DBL指令读取出来。可以在DB块"DB3操作",建立一个Int类型变量Index用作配方编号。对于本例,配方数组限值为0-7,该配方编号变量取值范围也是0-7,可以在HMI画面上设置该值,也可以在程序中设置该值。同样在DB块"DB3_操作",建立结构体"Read",以及相关变量,用于READ_DBL的请求与状态位,如图11所示。
图11.建立Index变量及结构体
利用数组的索引寻址功能,将配方数组指定索引的变量读取到活动配方,即如果需要配方0送到活动配方数据块,则Index赋值为0,需要配方1送到活动配方数据块,则Index赋值为1,......,具体程序如图12所示。
图12.读配方
就可以直接使用活动配方了,不论是程序中,还是HMI画面中。例如本例中,当Index=0时,读出的活动配方DB,如图13所示。
图13.活动配方数据
8.在线修改配方
通常配方功能使用到第7步就可以结束了,如果需要偶尔小范围修改配方数据,不想大规模导入导出,或者不想打开程序修改配方数据起始值,可以使用WRIT_DBL指令实现该功能。
对于本例依然利用DB块"DB3_操作"的变量Index,确定需要修改的配方编号,实际编程可以根据需要使用和读配方不一样的配方编号变量。
通常在HMI画面上指定需要修改的配方编号,并且将活动配方的变量与HMI的IO域关联,使用一个按钮触发READ_DBL的REQ将该配方编号对应的参数都读取到活动配方,即映射到了IO域,再修改其中需要修改的变量,Zui后再使用一个按钮触发WRIT_DBL的REQ实现将改后的活动配方写入该指定配方编号对应的配方,参考画面如图14。
图14.HMI画面
同样在DB块"DB3_操作",建立结构体"Write",以及相关变量,结构同"Read",用于WRIT_DBL的请求与状态位,如图15所示。
图15.建立结构体
Zui后同样,利用数组的索引寻址功能,将活动配方写入到配方数组指定索引的变量,即如果需要修改配方0,则将Index赋值为0,修改活动配方数据块后写入,需要修改配方1,则将Index赋值为1,修改活动配方数据块后写入,......,具体程序如图16所示。
图16.写配方
本例如图17所示,读出Index为0的配方,修改黄油数据为2.0,点击“写入配方”按钮即可修改配方DB的值。
图17.HMI修改数据
配方数据的管理配方数据文件以 CSV 格式存储在yongjiu性存储器中。可以使用以下两种方法查看、管理配方数据:
1. 通过内置的 PLC Web 服务器功能;
2. 通过电脑查看 PLC 存储卡中的配方文件;
S7-1200 SIMATIC Zui新存储卡订货号如下:
订货号容量6ES7954-8LC03-0AA04MB6ES7954-8LE03-0AA012MB6ES7954-8LF03-0AA024MB6ES7954-8LL03-0AA0256MB6ES7954-8LP03-0AA02GB6ES7954-8LT03-0AA032GB使用PLC Web 服务器查看配方数据激活CPU的Web服务器功能,则可以使用电脑网口连接CPU的PROFINET接口或者扩展CP1243-1的网口,使用电脑的IE浏览器访问PLC 内置的 Web 服务器。
1.启用 Web 服务器
在目标 CPU 的设备配置中启用 Web 服务器,具体参考Web服务器配置。
使用配方功能,需要具有“读取文件”和“写入/删除文件”功能。若要求更多访问功能,可以勾选相应权限。本例中只用默认用户,实际可以根据需要设置用户及权限,如图1 所示:
图1.定义 Web 服务器的用户权限
2. 通过 PROFINET 网络将 PC 连接到 PLC
通常情况下,电脑网口网线或通过交换机连接CPU的PROFINET接口或者扩展CP1243-1的网口。
3. 登录内置 Web 服务器
在 IE 浏览器地址栏中,本例中输入 192.168.1.3 或者输入 CP1243-1的 192.168.1.28。通过Web 服务器的文件浏览器页面来读取配方数据文件, 浏览器操作界面如图 2 所示:
图2.Web 服务器的用户界面首页
在左侧项目栏中,选择"文件浏览器",如图 3 所示:
图3.Web 服务器的文件浏览器页面
进入"Recipes"文件夹后,即看到与 PLC 设置的配方数据块名称相同的配方数据文件,如图 4 所示:
图4.配方数据文件名称
此时左键单击csv文件即可以下载,下载后记得点击删除按钮,将该配方文件删除。
注意:如果配方DB名称含有中文字符,例如本例的"DB1_蛋糕配方",如果TIAPORTAL版本在V14以前,则无法下载,可以通过右边重命名为只有字母和数字的名称后下载,修改后上传文件前,需要将文件名改为原来正确的名字。
TIAPORTAL版本V14及其以后,中文名称的文件可以下载,下载的文件名将为乱码,本例中如图5所示。保存至本地前将文件名改为正确的名字。
正因如此,建议配方DB名称zuihao不出现中文。
图5.下载乱码文件名
4.编辑配方文件
配方条目名称的编码,String,WString数据类型的编码各有不同,如果需要导出变量到CSV文件编辑会带来以下问题,注意:
1. 不要在配方中使用WChar与WString数据类型。
2. 如果配方条目名称中出现中文,或果配方条目的String类型出现中文,都不要使用Excel进行编辑,例如本例。
3. 配方条目名称中出现中文,与配方条目的String类型出现中文,不要出现。
zuihao在配方中不出现任何中文,这样导入导出不会出现任何问题,还可以使用Excel进行编辑。否则就需要使用ASCII编辑器,例如Windows自带的文本文档,或者本例中使用的Notepad++。
编辑好的CSV如图6所示。
图6.CSV文件
在修改时需要注意:
1. 配方DB包含的条目数不能再增加,数组的限值限制了配方的条目数。
2. 只能修改配方内容,不要修改第一行的配方条目名称以及第一列的索引。
3. 使用ASCII编辑器容易数据错位,zuihao配方全部内容使用英文字母+数字,使用EXCEL等工具编辑。
5.上载配方文件
编辑好配方文件,即可以上载该文件,如图7所示。
图7.上载修改的CSV文件
查看 PLC 存储卡中的配方如果 S7-1200 CPU 中插入了存储卡,则可以取出该存储卡,将该卡插入 PG/PC 上的标准 SD 卡槽或 MMC卡槽中。在 Windows 资源管理器中导航至存储卡中的 \Recipes目录,复制配方文件到PC的本地驱动器中,使用ASCII编辑器或者Excel 打开即可。操作步骤如下:
1. 将插好 S7-1200 存储卡的读卡器插入 PC,以U盘形式打开该卡,全选删除所有文件。
2. 在 TIA PORTAL 软件中按照以下路径和方法打开存储卡:“项目树”→“读卡器/USB存储器”→“鼠标选中需要打开的存储卡盘符”(如下图所示的 I:)→“鼠标右键”→属性”,如图 8所示:
图8.打开读卡器
3. 鼠标选中“属性”后打开存储卡,设置卡类型:程序。如图9 所示:
图9.设置“程序卡”
4. 将该卡插入S7-1200卡槽,下载程序后,程序即保存到程序卡中。
5. 配方数据块使用指令导出后,会在存储卡中生成对应的配方文件,例如本例中的“DB1_蛋糕配方.csv”。
6. CPU断电,将存储卡取出,将插好 S7-1200 存储卡的读卡器插入 PC,以U盘形式打开该卡,打开 \Recipes目录,找到配方文件。本例中和图6问题相同,中文名称出现乱码,如图 10所示。这里注意,不要修改该名称。
图10.程序卡文件夹
7.此时即可以对该配方文件进行编辑,编辑文件注意事项参见通过Web导出的步骤4,编辑后重新拷贝回\Recipes文件夹,执行配方导入指令。