• {{item.name}}
{{item.name}}
{{item2.name}}
更多

数据记录功能

star star star star star
0 分
  • 软件编程
  • 使用操作
  • S7-1500
  • 数据记录
  • 新建归档
发布时间:2024年01月18日
  • 0
  • 12
本章节介绍了数据记录的功能、使用示例以及常见问题。

一、数据记录概述

S7-1500全系列CPU都支持数据记录功能,在用户程序中可使用数据记录指令,将过程值保存到数据日志文件中。

可以用 “Data Logging” 指令将过程数据值存储在永久性日志文件中,数据日志文件按照标准 CSV 格式存储在S7-1500 CPU 存储卡中。

使用S7-1500 CPU内置的 Web 服务器,可管理数据日志文件,实现数据日志文件的下载、清空和删除; 或将数据日志文件传送到PC,使用标准电子表格工具(如Excel)分析数据。还可以通过读卡器直接打开存储卡来访问和管理数据日志文件。

图1. 数据记录

二、S7-1500数据记录实验环境和内容

在本应用实例中,通过以下产品进行数据记录功能组态,实现数据记录的创建以及管理日志文件。

软件:

TIA V15.1

Internet Explorer 11

硬件:

CPU 1511C-1PN V2.6

SIMATIC MC 24M

实验内容将数据日志文件存储在 S7-1500 CPU 装载存储器中,使用PLC Web 服务器进行管理为例,实现下述功能:

1.执行“DataLogging”指令集将产品型号“Type”,长度“Length”,宽度“Width”三个变量值写入到数据日志文件;

2.当写入的条数达到设定的3条记录条数时,自动关闭该数据日志文件 ;

3.当写入的条数达到设定的3条记录条数时,可选择以下两种情况之一再分别写入数据记录:

情况一:如果旧的变量值允许被新的变量值覆盖,再打开这个数据日志文件,循环写入1条数据记录;

情况二:如果想保存之前的变量值,创建一个新的数据日志文件,再写入1条新的数据记录。

三、S7-1500 数据记录组态

1、数据记录创建

1.1、数据记录的程序指令

Data Logging 用于在程序中创建、打开、写入、清空、关闭、删除以及新建数据记录。从 “指令” →“扩展指令” →“Data Logging” 下可调用相关功能指令。如下图2所示

图2. Data Logging指令

1.2、创建全局数据块及变量

数据记录的输入数据值将存储在自定义结构体 “Data” 中:

  • DataLogName (String):该变量包含同时用作 CSV 文件名的数据日志名称。
  • DataLogID (DWord):调用 “DataLogCreate” 指令时,将数据记录 ID 写入该变量中。 “DataLogCreate” 指令会自动分配数据记录的 ID,在其它 DataLog 指令中,可使用变量 “DataLogID” 寻址该数据记录。
  • Header (String):该变量中包含数据日志的标头,即数据记录的各列名称。
  • Data (Struct):该变量中包含将写入数据日志的 3 个过程值。每次写入一个记录时,都会将当前值写入一个新记录中。

图3. 全局数据块

1.3、创建数据记录

调用指令 “DataLogCreate”,可在装载存储器的 “\DataLogs” 目录下创建一个新的数据记录文件,通过以下输入参数调用该指令:

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • RECORD (3):在数据日志中,最多可写入 3 个数据记录。之后,将覆盖最旧的数据记录。
  • FORMAT (1):将数据日志创建为 CSV 文件。
  • TIMESTAMP (1):启用:将自动创建数据记录的两个附加列(日期和时间)。每次执行 “DataLogWrite” 时,都将当前时间戳写入数据记录中。
  • NAME (VARIANT):指向数据块 “DataLog” 中变量 “DataLogName” 的指针。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。
  • HEADER (VARIANT):指向数据块 “DataLog” 中变量 “Header” 的指针。
  • DATA (VARIANT):指向数据块 “DataLog” 中变量 “Data” 的指针。

图4. 创建数据记录

1.4、写入数据记录

通过 “DataLogWrite” 指令,可将数据记录写入当前的数据日志中。通过 ID 参数,可选择待写入数据记录的数据日志。该指令将创建一条新的数据记录,在创建数据记录时并通过 DATA 参数指定其格式。

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • ID (DWORD):指向数据块“DataLog”中变量“DataLogID”的指针。

图5. 写入数据记录

1.5、当写入的条数达到设定的记录条数时,可选择以下两种情况之一再分别写入数据记录

情况一:循环写入数据记录,在指令 “DataLogCreate” 参数 RECORDS 中,可指定数据日志中所存储数据记录的最大数目,如果达到了数据日志中数据记录指定的最大数目,再次写入时则覆盖最早的数据记录,以此实现循环记录。

如果需要写入已关闭的数据日志,可使用指令 “DataLogOpen” 打开存储卡上的现有数据日志,可通过数据日志的 ID 或名称,选择需打开的数据日志, 最多可同时打开 10 个数据日志。 通过以下输入参数调用该指令:

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • Mode(0):MODE=“0” 保留数据日志中的数据记录;MODE=“1” 删除数据日志的数据记录,但保留标题。
  • NAME (VARIANT):指向数据块 “DataLog” 中变量 “DataLogName” 的指针。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。
  • DATA (VARIANT):指向数据块 “DataLog” 中变量 “Data” 的指针。

图6. 打开数据记录

情况二: 新建数据记录,

通过指令 “DataLogWrite” 状态位为 “16#0001” 来判断数据日志已满,执行指令 “DataLogClose” 来关闭已满数据日志,并使用指令 “DataLogNewFile” 来创建新的数据日志文件,可创建一个属性与现有数据日志相同的新数据日志,将允许保留现有数据记录的内容。调用时,该指令将在存储卡中创建一个新的数据记录,日志名称在 NAME 参数中已定义。ID 参数用于指定旧数据记录的 ID,该数据记录的属性将应用于新的数据记录。随后,新数据记录的 ID 将通过 ID 参数输出。创建新数据记录后,将自动打开该文件。

  • REQ (BOOL):REQ =“TRUE” 上升沿时,创建数据日志。
  • RECORD (3):在数据日志中,最多可写入 3 个数据记录。
  • NAME (VARIANT):指向数据块 “DataLog” 中变量 “DataLogNewName” 的指针。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。
  • DATA (VARIANT):指向数据块 “DataLog” 中变量 “Data” 的指针。

图7. 新建数据记录

1.6、关闭数据记录

通过“DataLogClose”指令,可关闭一个打开的数据日志。使用 ID 参数,选择数据日志。当写入的条数达到设定的3条记录条数时,数据日志已满 “DataLogWrite” 指令的输出参数 STATUS=16#0001。因此,可编程使用该状态字节自动关闭该数据日志文件。

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。

图8. 关闭数据记录

1.7、清空数据记录

指令 “DataLogClear” 可删除现有数据记录中的所有数据记录。该指令不会删除 CSV 文件的标题。 通过参数 ID,可选择待删除数据记录的数据日志。要求删除数据记录前,必须打开数据记录。

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。

图9. 清空数据记录

1.8、删除数据记录

使用 “DataLogDelete” 指令,可以删除存储卡上的数据记录文件。仅当使用指令 “DataLogCreate” 或 “DataLogNewFile” 创建数据日志和包含的数据记录时,才能将其删除。

  • REQ (BOOL):REQ =“TRUE”上升沿时,创建数据日志。
  • NAME (VARIANT):指向数据块 “DataLog” 中变量 “DataLogName” 的指针。
  • DelFile(1):0:将保留数据记录;1:将删除数据记录。
  • ID (DWORD):指向数据块 “DataLog” 中变量 “DataLogID” 的指针。

图10. 删除数据记录

2、数据记录管理

2.1、配置Web服务器

图11. Web服务器配置

2.2、管理数据日志文件的两种方式

方式1:登录Web服务器进行管理,打开 IE 浏览器,输入 S7-1500 CPU 的 IP 地址(如192.168.0.6),进入Web管理界面。可以对创建的数据记录文件进行删除、下载和清空操作。

图12. 激活记录

方式2:通过读卡器直接访问存储卡中的数据日志文件,如下图:

图13. 存储卡文件

将上述两种方式获取的数据日志文件直接可以用 Excel 来打开查看数据,如下图:

图14. 记录文件

2.3、当写入的条数达到设定的记录条数时,两种情况的测试结果如下所示。

情况一结果:

如果旧的变量值允许被新的变量值覆盖,再次打开 “Product” 这个数据日志文件,写入一条新记录后,发生如下图15将变化,第一条旧记录将被覆盖。

图15. 新记录文件

情况二结果:

如果想保存之前的变量值,创建一个新的数据日志文件,再写入新的数据记录。如下图16所示:

图16. 创建新记录文件

四、常见问题

1、调用 “DataLogCreate” 指令创建的数据日志文件个数是否有限制?

数据记录保存在存储卡或内部装载存储器的“\DataLogs”目录中。数据日志中可存储的数据量取决于存储卡上的可用空间,或所用 CPU 内部装载存储器中的存储空间。对于 S7-1200 CPU,生成的 CSV 文件的最大大小为 500,000,000 字节;而 S7-1500 CPU 为 1,000,000,000 字节。

2、对每个数据日志文件写入的最大数据记录条数是否有限制?

“DataLogCreate”指令的“RECORDS”输入参数是“UDINT” 数据类型,限值是4,294,967,295。 RECORD 参数的实际限值取决于单个记录的大小、其它数据日志的大小及装载存储器的可用资源。

3、对每个数据日志文件声明的最大数据元数个数是否有限制?

所声明数据元素的个数与标题参数中指定的列数相对应,数据结构可包含最多 256 个元素。

4、如何打开数据日志文件?打开的数据日志个数是否有限制?

执行“DataLogCreate”和“DataLogNewFile”操作后会自动打开数据日志文件。此外,对于已经关闭的数据日志文件,执行“DataLogOpen”指令可重新打开数据日志文件,最多可同时打开 10 个数据日志。

5、如何判断存储卡寿命到期?

SIMATIC 存储卡的使用寿命主要取决于以下因素:

  • SIMATIC 存储卡的容量
  • 写操作的频率
  • 写入 SIMATIC 存储卡的数据量

写入或删除操作(尤其是通过用户程序对 SIMATIC 存储卡进行循环写入/删除),会缩短其使用寿命。 如下17图,可选择达到SIMATIC存储卡的使用寿命阈值时是否生成诊断中断和诊断缓冲区条目。

图17. 存储卡阈值


  • 评论
更多
  • 分享

    扫码分享

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。