西门子代理商西门子CPU模块6DD1607-0AA2
西门子代理商西门子CPU模块6DD1607-0AA2
西门子代理商西门子CPU模块6DD1607-0AA2
S7-1200配方功能使用数据管理
西门子plc S7-1200 CPU 固件版本为 V4.0 及以上,编程软件版本在 STEP 7 V13 以上提供配方函数功能,可实现配方数据的导入、导出,方便实际应用中使用配方数据。
使用 S7-1200 实现配方函数功能,必须创建配方数据块,且仅“存储在装载存储器”中。
可以用“RecipeExport”指令将完整的配方数据块导出,存储在 CPU 装载存储器的**性配方数据文件中。配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡中。
可以用 S7-1200 CPU 内置的 Web 服务器、或直接读取存储卡“程序卡”中的文件,来管理配方数据文件,实现配方数据文件的下载、修改和删除;使用 ASCII 文本编辑器修改 CSV 文件中的数值,再将CSV 文件通过 PC 上传至 PLC 的装载存储器。
可以用“Recipeimport”指令将配方数据从装载存储器上的 CVS 文件导入到装载存储器上的配方数据块中。此过程会覆盖数据块中的值。
配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡“程序卡”中。分别可通过 PLC Web 服务器或对于存储卡文件操作,将数据文件传送到 PC 进行管理和查看。也可将修改过后的配方数据文件上传至PLC,再通过“Recipeimport”配方导入指令更新PLC装载存储器中配方数据块的数值。
测试实例:
SIMATIC S7-1200 系列 CPU 使用配方数据功能,需要注意以下几点:
在项目中创建的配方数据块,必须存储在 CPU 装载存储器中,可以使用内部 CPU 存储器或外部存储器"程序"卡
程序中必须创建一个活动配方数据块,此 DB 块必须在工作存储器中,其中使用程序逻辑读取或写入一个活动配方记录
为了方便配方数据的导入导出,建议建立 2 个活动配方数据块分别用于配方的导入和导出
为方便通过外部设备对某一条配方数据实现读取和写入,建议创建一个 DB 块作为数据应用接口
下面,举例说明用 S7-1200 实现配方的写入和读取功能。为方便配方数据操作,按照下图思路进行项目编程:
测试环境:
软件:STEP 7 Professional V13 SP1
硬件:CPU1215 C DC/DC/DC 订货号:6ES7 215-1AG40-0XB0
实现步骤
1.定义一个 PLC 数据类型
配方数据块必须包含一维数组,结构是 PLC 数据类型或结构。在这个配方实例中使用 PLC 数据类型创建配方数据块,其成分的数据类型在本例中选择是 DINT 数据类型。 成分数据类型也可以是除结构以外的任何混合数据类型(如 REAL 类型)。 在配方数据块数组元素中,不允许 PLC 数据类型中存在结构,也不允许结构中嵌套结构。
在此,创建一个 PLC 数据类型,以定义一个配方记录中的所有成分,如配方名称 Name 和各成分 A、B,见图 2 所示:
图2.定义 PLC 数据类型
数据类型是一个数据模板,它在每个配方数据块以及活动配方数据块中重复使用。输入所有实例配方共用的成分名称和数据类型,根据分配给配方成分的数值不同而产生不同的产品配方。
2.使用 PLC 数据类型创建配方数据块
创建一个配方数据块,为全局数据块,并启用数据块属性"仅存储在装载存储器中"。本例中,配方数据 DB 块名称为 “Recipe_backup”,插入数组类型变量,名称"Recipe",数据类型为Array of “数据类型”,本例中设置数组大小 4 即是可创建的配方的*大数目。
图3.创建配方数据块
图4.定义数据块属性
3.在工作存储器中创建活动配方 DB,并通过“READ_DBL”和“WRIT_DBL”指令实现对装载存储区配方数据块的读写操作
配方数据块"仅存储在装载存储器中",所以对此 DB 块(装载存储区数据)的读写操作均需要通过指令来实现,其指令位置如图 5 所示:
图5.“数据块控制”指令
因此,需要在工作存储器中准备一个活动配方数据块,用于配方数据的写入和读取。在本例中,分别为读、写装载存储区数据块的操作,在工作存储器中创建了两个全局数据块,且配方数组与配方数据块一致。如名称为“Recipe_read”和“Recipe_write”,其配方数组均为 Array [0..3] of "Recipe",如图 6 所示:
图6.用于“read”和“write”的活动配方数据块
将这两个 DB 块作为与装载存储器中配方数据块的接口,分别通过指令“WRIT_DBL”能实时将存于工作存储器的活动配方数据写入至装载存储器的配方数据块,或者通过指令“READ_DBL”实时读取装载存储器的配方数据块到工作存储区中活动配方数据。
4.创建用于设置配方数据的接口数据块,并用指令写入到活动配方 DB 中
考虑在实际应用中,不一定方便通过 Web 服务器等来直接更改配方文件中的数据,多采用触摸屏或者上位机软件对某一条数据配方进行操作。为此,分别建立写入配方的 ARRAY 和读取配方的 ARRAY,实际仅使用数组中的一个元素作为接口即可,即数组长度为1,如图 7 所示:
图7.用于设置配方数据的接口数据块
对于变址的数据传送,可利用简单的“MOVE”指令编写功能块来实现。在 FB 中定义接口变量,作为数组中某个元素的选择,该变量可以在外设中设置。若程序中需要使用某条配方记录,也可如此操作。对于写入和读取操作,分别建立 FB 程序,如下所示:
图8.FB1用于写入某条配方
图9.FB2用于读取某条配方
在 OB1 中条件调用功能块即可,指令的触发条件也可以通过外设控制。
5.启用 Web 服务器
使用"Recipe Export"指令将完整的配方记录导出,即生成为一个 CSV 文件。未使用的配方记录也被导出。可以通过 Web 服务器或者存储卡来查看配方文件。
按照以下路径和方法为要连接的 CPU 启用 Web 服务器:“设备视图”→“鼠标选中 CPU”→“属性”→“Web 服务器”→“启用模块上的 Web 服务器前打钩”。如下图 10 所示:
图10.启用 Web 服务器
使用管理员权限,或者建立一个用户账户,进行访问权限设置。读取和修改配方数据文件,需要具有“读取文件”和“写入/删除文件”功能。若要求更多访问功能,可以勾选相应权限。
6.实验例程
本例仅为实验测试,目的在于掌握配方函数功能,程序间相互连锁关系并未通过例程中设置。编程部分如下所示:
程序段1,可在外设上设置参数 X,为写入目标值。结合 FB1,即实现实时修改目标配方条目的功能。
程序段2,使用“WRIT_DBL”指令,将工作存储区的活动配方数据块“Recipe_write”写到装载存储器的配方数据块“Recipe_backup”中。
程序段3,使用“RecipeExport”指令将完整的配方记录导出,按照标准 CSV 格式存储在装载存储器中,名称与配方数据块名称相同。
程序段4,通过 Web 服务器更改配方文件中的数据后,已经从 PC 上传至 PLC 的装载存储器。再通过"Recipeimport"指令导入配方数据,即将装载存储器中的配方数据文件覆盖PLC的配方数据块。
程序段5,使用“WRIT_DBL”指令,将装载存储器的配方数据块“Recipe_backup”写到工作存储区的DB块“Recipe_read”中。
程序段6,可在外设上设置参数 Y,为读取目标值。结合 FB2,即实现实时读取目标配方条目的功能。这一功能方便在程序中调用某条配方数据用于生产使用。
图11.程序组图
7.使用 Web 服务器,或查看存储卡,浏览配方数据文件
详细操作步骤,请参见配方文件的使用说明。
8.修改配方 CSV 文件数据,并导入配方数据
可使用 ASCII 文本编辑器修改配方 CSV中的数值。 可以修改分配给成分的起始值,但不能修改数据类型或数据结构 。将修改的 CSV 文件从 PC 再次上传到 CPU。
但是,在 CPU Web 服务器允许上传操作之前,必须删除或重命名 CPU 装载存储器中的旧 CSV 文件(具有相同名称)。
将修改的 CSV 文件上传到 CPU 后,可以使用"Recipe import"指令将新的起始值从修改的 CSV 文件(在 CPU 装载存储器中)传送到配方数据块(在 CPU 装载存储器中)。 导入操作由指令的"REQ"参数触发。 导入过程中,参数 BUSY 设置为"1"。执行该指令后,BUSY 将复位为"0",完成操作后,DONE 参数将指示为"1"。 如果执行期间出错,ERROR 和 STATUS 参数将发出信号加以指示。
9.修改 CSV 文件的规则
只有配方数据块中包含一个与 CSV 文件数据结构一致的结构,才能执行配方的导入操作。下面是修改 CSV 文件规则:
CSV 文件必须位于内部装载存储器根目录的"Recipes"文件夹中
如果安装了可选的外部"程序"存储器卡,则 CSV 文件也可以位于外部装载存储器的相应文件夹中
CSV 文件的名称必须与 RECIPE_DB 参数中的数据块名称相匹配
CSV 文件的第一行(标题)包含配方成分的名称。导入期间会忽略第一行。导入过程中不会检查 CSV 文件和数据块中配方成分的名称是否一致
任何情况下,CSV 文件各行的第一个值都作为配方的索引编号。各个配方按索引顺序导入。因此,CSV 文件中的索引必须按升序排列并且不能间断,否则,STATUS 参数中会输出错误消息80B0
CSV 文件中包含的配方数据记录数不能超过配方数据块中提供的数量。数据记录的*大值由数据块中的数组限值指出。
配方数据的管理
配方数据文件以 CSV 格式存储在**性存储器中。 可以使用以下两种方法查看、管理配方数据:
1. 通过内置的 PLC Web 服务器功能;
2. 通过 PG 查看 PLC 存储卡中的配方文件;
3. 通过上述两种方法,可以管理配方文件中的数据;
S7-1200 SIMATIC 存储卡如下:
使用 PLC Web 服务器查看配方数据
如果 PLC PROFINET 端口和 PC 连接到同一网络,则可使用 PC Web 浏览器访问内置 PLC Web 服务器。操作步骤如下:
1.启用 Web 服务器
在目标 CPU 的设备配置中启用 Web 服务器,“设备视图”→“鼠标选中 CPU”→“属性”→“Web 服务器”→“启用模块上的 Web 服务器前打钩”。如下图 1 所示:
图1.启用 Web 服务器
建立一个用户账户,进行访问权限设置。若需要读取和修改配方数据文件,需要具有“读取文件”和“写入/删除文件”功能。若要求更多访问功能,可以勾选相应权限。如图 2 所示:
图2.定义 Web 服务器的用户权限
2. 通过 PROFINET 网络将 PC 连接到 PLC
电脑 IP 地址需与 PLC 的 IP 地址在同一网段。
3. 登录内置 Web 服务器
在 IE 浏览器地址栏中,输入 https://192.168.0.25/ 或者输入 S7-1200 CPU 的 IP 地址(如192.168.0.25)。通过 Web 服务器的文件浏览器页面来读取配方数据文件,按照预先设置的用户名和密码登录, 浏览器操作界面如图 3 所示:
图3.Web 服务器的用户界面首页
在左侧项目栏中,选择"文档浏览器",如图 4 所示:
图4.Web 服务器的文件浏览器页面
进入"Recipes"文件夹后,即看到与 PLC 设置的配方数据块名称相同的配方数据文件,如图 5 所示:
图5.配方数据文件名称
可使用 Web 服务器中的文件浏览器页面将现有配方 CSV 文件从 CPU 下载到 PC ,双击配方数据文件即弹出下载保存界面,打开后以标准的 EXCEL 格式显示。本例中,仅设置了前两条配方数据,未经设置的配方数据也会导出,如图 6 所示:
图6.在 Excel 中查看配方文件
查看 PLC 存储卡中的数据日志
如果 S7-1200 CPU 中插入了“程序”型 S7-1200 存储卡,则可以取出该存储卡,然后将该卡插入 PC 或 PG 上的标准 SD 卡槽或 MMC 卡槽中。在 Windows 资源管理器中导航至存储卡中的 \Recipes 目录,复制配方文件到PC的本地驱动器中,使用 Microsoft Excel 打开即可。 操作步骤如下:
注意:以下第 1-2 步必须在创建配方文件之前执行!
1. 将插好 S7-1200 存储卡的读卡器插入 PC,在 STEP7 V13 软件中按照以下路径和方法打开存储卡:“项目树”→“读卡器/USB 存储器”→“鼠标选中需要打开的存储卡盘符”(如下图所示的 H:)→“鼠标右键”→属性”,如下图 7 所示:
图7.打开读卡器
2. 鼠标选中“属性”后打开存储卡,设置卡类型:程序。如下图 8 所示:
图8.设置“程序卡”
3. 通过软件操作,向处于存储卡中装载项目
第一步:按照上面方法将存储卡设定到“程序卡”。
第二步:设置 CPU 的启动状态:在"Project tree"中右击 CPU 选择“属性”,在“属性”窗口中点击“Startup”,此处我们必须选择“Warm restart-RUN”
第三步:直接拖拽 PL C设备到存储卡盘符,如图 9 所示:
图9:拖拽
注意:必须拖拽 PLC项目到存储卡盘符,而不是程序块等其他项目内容
4. 设置完配方数据后,在 PLC 停机时,可以从 S7-1200 CPU 中取出存储卡,插入 PC 或 PG 上的标准 SD 卡槽或 MMC 卡槽中,然后插入 PC。
5. 在 Windows 资源管理器中导航至存储卡中 \Recipes 目录。如下图 10 所示:
图10.程序卡文件夹
在 \Recipes 文件夹中的配方文件,与 PLC 装载存储器中的配方数据块同一名称,如下图 11 所示。
图11.打开配方文件
6. 使用 Excel 打开如上图 11 所示的配方文件,用于查看和管理。
配方数据的管理
1. 使用 Web 服务器管理配方数据
通过 Web 服务器点击配方 CSV 文件名称后,自动弹出下载保存按钮,如图 12 所示。
图12.保存配方文件按钮
双击打开已经下载的配方文件,通过 ASCII 文本编辑器修改数值。在通过 Web 服务器的功能从 PC 上传至 PLC,使用"Recipe import"配方导入指令更新配方数据块,这有步骤实现了配方数据的修改和管理。
注意:
配方 CSV 文件的名称必须与 RECIPE_DB 参数中的数据块名称相匹配
仅能通过 ASCII 文本编辑器修改配方 CSV,简单的更改 EXCEL 文件中的数据无效
若需要上传新的配方文件,须将原配方文件删除、或重命名
确定没有重名文件之后,点击“浏览”查询到新的配方文件后上传
配方文件上传至装载存储区,使用"Recipe import"配方导入指令,覆盖配方数据块中的数值
图13.删除或重命名配方文件
图14.通过 ASCII 文本编辑器修改配方数据
图15.上传新的配方文件
图16.使能"Recipe import"配方导入指令
图17.在线监控活动配方数据已经更新
2. 使用存储卡管理配方数据
PLC 断电时从 S7-1200 CPU 中取出存储卡,插入 PC 或 PG 上的标准 SD 卡槽或 MMC 卡槽中,然后插入 PC。通过 ASCII 文本编辑器修改好后的文件(CSV 格式),直接复制粘贴至Recipes 文件夹中的配方文件,覆盖原文件即可。
图18.复制替换“程序卡”中的配方文件
将存储卡插回至 PLC后,CPU上电,使用“配方导入”指令,后续操作步骤同上图 16。