西门子PLC配方和数据日志怎么用?

2019年1月12日14:08:48 发表评论 652 阅读

配方概述

配方数据存储

  • 在项目中创建的配方数据块必须存储在CPU装载存储器中。 可以使用内部 CPU

存储器或外部存储器“程序”卡。

  • 另一个必须创建的DB是活动配方数据块。 此 DB

必须在工作存储器中,其中使用程序逻辑读取或写入一个活动配方记录。

配方数据管理

配方数据块使用一个产品配方记录数组。 配方数组的每个元素代表一种不同的配方形式,各个配方以一组共同的成分为基础。

  • 创建PLC数据类型或结构,以定义一个配方记录中的所有成分。 此数据类型模板重复使用于所有配方记录。 根据分配给配方成分的起始值而产生不同的产品配方。
  • 使用READ_DBL 指令,可以随时将配方从配方数据块(装载存储器中的所有配方)传送到活动配方数 据块(工作存储器中的一个配方)。 配方记录移动到工作存储器后,程序逻辑便可读取成分值并开始生产运行。 此过程将配方数据需要的 CPU 工作存储器使用量降到最低。
  • 如果在生产运行期间使用HMI设备调整活动配方成分值,可以使用 WRIT_DBL

指令将修改的值写入配方数据块。

配方导出(从配方数据块到 CSV 文件)

可以使用 RecipeExport 指令将完整的配方记录集生成为一个 CSV 文件。 未使用的配方记录也被导出。

配方导入(从 CSV 文件到配方数据块)

完成配方导出操作后,即可将生成的 CSV 文件用作数据结构模板。

  1. 使用CPU web 服务器中的文件浏览器页面将现有配方 CSV 文件从 CPU 下载到 PC
  2. 使用 ASCII 文本编辑器修改配方CSV。可以修改分配给成分的起始值,但不能修改数据类型或数据结构
  3. 将修改的CSV 文件从 PC 再次上传到 CPU。 但是,在 CPU Web 服务器允许上传操作之前,必须删除或重命名 CPU 装载存储器中的旧 CSV 文件(具有相同名称)。
  4. 将修改的CSV 文件上传到 CPU 后,便可以使用 RecipeImport 指令将新的起始值从修改的 CSV 文件(在 CPU 装载存储器中)传送到配方数据块(在 CPU 装载存储器中)。

配方示例 

配方实例

下表显示如何准备用于配方数据块的配方信息。 该实例配方数据块存储 5 条记录,其中三条已使用。 第四条和第五条记录留空以供将来扩展。 表中的每行表示一条记录,存储配方名称、成分数据类型和成分值。

配方实例

创建配方数据块

说明 配方数据块的规则

  • 配方数据块必须包含一维数组,结构是 PLC数据类型或结构。本配方实例显示如何使用 PLC 数据类型创建配方数据块。
  • 在实例中,成分的数据类型都是 UINT数据类型。 成分数据类型也可以是除结构以外的任何混合数据类型。 在配方数据块数组元素中,不允许PLC 数据类型中存在结构,也不允许结构中嵌套结构。

首先,创建新的 PLC 数据类型

添加新的 PLC 数据类型,名称作为配方类型。 在下图中,“Beer_Recipe”是新的复合 PLC 数据类型,它存储一系列简单数据类型。 “Beer_Recipe”PLC 数据类型是一个数据模板,它在每个配方数据块记录以及活动配方数据块中重复使用。 输入所有实例配方共用的成分名称和数据类型。 各成分值以后在配方数据块中添加。

创建PLC

创建PLC

第二步,创建配方数据块

  • 将配方数据块创建为全局数据块,并启用数据块属性“仅存储在装载存储器中”(Only store in loadmemory)。
  • 配方数据块的名称用作相应CSV文件的文件名。 数据块名称中使用的字符必须遵守Windows 文件系统命名限制。 字符 \ / : * ? " < > | 及空格字符均不许使用。
  • 配方数组分配是"Products"作为 Array [1.. 5] of "Beer_Recipe"。 数组大小 5

是可创建的配方风味的最大数目。

  • 配方成分值添加为数据块起始值。 在下图中,展开的“BlackBeer”配方显示了配方记录的所有成分。

配方导出(从配方数据块到 CSV 文件)

"执行“RecipeExpor”,可将配方数据块数据传送到一个 CSV文件,如下面的文本文件所示。

Recipe_DB.csv

index,productname,water,barley,wheat,hops,yeast,waterTmp, mashTmp,mashTime,QTest 1,”Pils”,10,9,3,280,39,40,30,100,0

2,”Lager”,10,9,3,150,33,50,30,120,0

3,”BlackBeer”,10,9,3,410,47,60,30,90,1

4 ”Not_used”,0,0,0,0,0,0,0,0,0

5 ”Not_used”,0,0,0,0,0,0,0,0,0

配方导入(从 CSV 文件到配方数据块)

  1. 使用CPU web 服务器中的文件浏览器页面将现有配方 CSV 文件从 CPU

装载存储器下载到 PC

  1. 使用 ASCII 文本编辑器修改配方CSV。可以修改分配给成分的起始值,但不能修改数据类型或数据结构
  2. 将修改的CSV 文件从 PC 再次上传到 CPU。 但是,在 CPU Web 服务器允许上传操作之前,必须删除或重命名 CPU 装载存储器中的旧 CSV 文件(具有相同名称)。
  3. 将修改的CSV 文件上传到 CPU 后,便可以使用 RecipeImport 指令将新的起始值从修改的 CSV 文件(在 CPU 装载存储器中)传送到配方数据块(在 CPU 装载存储器中)。

CSV 文件必须精确匹配对应的配方数据块结构

  • 可以更改CSV文件中的值,但不允许更改结构。 RecipeImport 指令要求记录和成分的数量与目标配方数据块结构完全匹配。 否则 RecipeImport 的执行会失败。 例如,如果在配方数据块中定义了 10 个配方但实际使用的只有 6 个配方,则 CSV 文件的第 7 至第 10 行也传送到数据块。 必须检查该数据是否有效。 例如,对于未使用配方记录中的产品名称,可以赋予一个变量“Not_used”。
  • 如果向文本文件添加数据记录并导入修改的文件,请确保您分配的配方数据块数组限 制可以有足够的元素用于所有配方记录。
  • 导出到CSV文件期间会自动生成索引编号。 如果创建附加数据记录,请相应添加连续的索引编号。
  • 执行RecipeImport 会检查 CSV 文件数据,判断结构是否正确以及值是否与相关配方数据块中分配的数据类型匹配。 例如,Bool 数据类型不能存储整数值,否则 RecipeImport 的执行会失败。

在Excel中显示CSV配方数据

为使阅读和编辑更加容易,可以在 Excel 中打开 CSV 文件。 如果逗号未被识别为十进制分隔符,则使用 Excel 导入功能以结构化形式输出数据。

 

weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: