西门子驱动器代理商|CPU模块总代理商
西门子驱动器代理商|CPU模块总代理商
西门子plc S7-1200 CPU 固件版本为 V4.0 及以上,编程软件版本在 STEP 7 V13以上提供配方函数功能,可实现配方数据的导入、导出,方便实际应用中使用配方数据。
使用 S7-1200实现配方函数功能,必须创建配方数据块,且仅“存储在装载存储器”中。
可以用“RecipeExport”指令将完整的配方数据块导出,存储在 CPU装载存储器的**性配方数据文件中。配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200SIMATIC 存储卡中。
可以用 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 V13SP1
硬件:CPU1215 C DC/DC/DC 订货号:6ES7215-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.在工作存储器中创建活动配方DB,并通过“READ_DBL”和“WRIT_DBL”指令实现对装载存储区配方数据块的读写操作
配方数据块"仅存储在装载存储器中",所以对此 DB块(装载存储区数据)的读写操作均需要通过指令来实现,其指令位置如图 5 所示:
因此,需要在工作存储器中准备一个活动配方数据块,用于配方数据的写入和读取。在本例中,分别为读、写装载存储区数据块的操作,在工作存储器中创建了两个全局数据块,且配方数组与配方数据块一致。如名称为“Recipe_read”和“Recipe_write”,其配方数组均为Array [0..3] of "Recipe",如图 6 所示:
将这两个 DB块作为与装载存储器中配方数据块的接口,分别通过指令“WRIT_DBL”能实时将存于工作存储器的活动配方数据写入至装载存储器的配方数据块,或者通过指令“READ_DBL”实时读取装载存储器的配方数据块到工作存储区中活动配方数据。
4.创建用于设置配方数据的接口数据块,并用指令写入到活动配方 DB中
考虑在实际应用中,不一定方便通过 Web服务器等来直接改配方文件中的数据,多采用触摸屏或者上位机软件对某一条数据配方进行操作。为此,分别建立写入配方的 ARRAY和读取配方的 ARRAY,实际仅使用数组中的一个元素作为接口即可,即数组长度为1,如图 7 所示:
对于变址的数据传送,可利用简单的“MOVE”指令编写功能块来实现。在 FB中定义接口变量,作为数组中某个元素的选择,该变量可以在外设中设置。若程序中需要使用某条配方记录,也可如此操作。对于写入和读取操作,分别建立FB 程序,如下所示:
在 OB1中条件调用功能块即可,指令的触发条件也可以通过外设控制。
5.启用 Web 服务器
使用"RecipeExport"指令将完整的配方记录导出,即生成为一个 CSV 文件。未使用的配方记录也被导出。可以通过 Web服务器或者存储卡来查看配方文件。
按照以下路径和方法为要连接的 CPU 启用 Web服务器:“设备视图”→“鼠标选中 CPU”→“属性”→“Web 服务器”→“启用模块上的 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,即实现实时读取目标配方条目的功能。这一功能方便在程序中调用某条配方数据用于生产使用。
7.使用 Web服务器,或查看存储卡,浏览配方数据文件
详细操作步骤,请参见配方文件的使用说明。
8.修改配方 CSV文件数据,并导入配方数据
可使用 ASCII 文本编辑器修改配方 CSV中的数值。可以修配给成分的起始值,但不能修改数据类型或数据结构 。将修改的 CSV 文件从 PC 再次上传到CPU。
但是,在 CPU Web 服务器允许上传操作之前,必须删除或重命名CPU 装载存储器中的旧 CSV 文件(具有相同名称)。
将修改的 CSV 文件上传到 CPU 后,可以使用"RecipeImport"指令将新的起始值从修改的 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
tianxia56.b2b168.com/m/