数据日志快速入门
数据日志文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡中。分别可通过 PLC Web 服务器或将数据文件传送到 PC 进行管理、查看。
测试目的:
下面以数据日志文件存储在 S7-1200 CPU 装载存储器中,使用PLC Web 服务器进行管理为例,实现下述功能:
(1)执行“DataLogging”指令将产品型号“Type”,长度“Length”,宽度“Width”三个变量值写入到数据日志文件;
(2)当写入的条数达到设定的3条日志条数时,自动关闭该数据日志文件 ;
(3)当写入的条数达到设定的3条日志条数时,可选择以下两种情况之一再分别写入数据日志:
情况一:如果旧的变量值允许被新的变量值覆盖,再打开这个数据日志文件,循环写入1条数据日志;
情况二:如果想保存之前的变量值,创建一个新的数据日志文件,再写入1条新的数据日志。
测试环境:
软件:STEP 7 Professional V11 SP2 UPD5
硬件:CPU1215 C DC/DC/DC 订货号:6ES7 215-1AG31-0XB0
实现步骤
1. 启用 Web 服务器
按照以下路径和方法为要连接的 CPU 启用 Web 服务器:“设备视图”→“鼠标选中CPU”→“属性”→“Web服务器”→“启用模块上的Web服务器前打钩”。如下图1所示:
图1.启用Web服务器
2. 创建数据日志名称、标题和 Data 结构
数据日志名称和日志的所有数据元素的数据类型、列标题分别由 Name、Data 参数和 Header 分配。因此需先创建 DB 块,在此指定“标准-与S7-300/400兼容”。如下图2所示:
图2.创建DB
在该 DB 中,创建数据日志名称(如Product)、新名称(如NewProduct)、标题(如Type,Length,Width)和 Data 结构等。如下图3所示:
图3.创建名称、标题和Data结构
a. 数据日志名称:此变量仅支持 String 数据类型。
(该名称应符合 Windows 文件名称的限制,不允许使用以下字符:“\”、“/”、“:”、“*”、“?”、“<”、“>”、“|”、“空格”)
b. 数据日志标题:Header 参数指向数据日志文件中第一行的列标题名称,各列名称需要用逗号分隔;如果未设置该值,则不会在数据日志文件中创建标题行。
c. 数据日志 Data 结构:指定数据日志日志的各个数据元素(列)及其数据类型:用户自定义类型 (UDT) 或数组。
d.新名称(创建新日志时使用,命名方法同a)
3.创建和初始化数据日志文件
创建数据日志需调用“DataLogCreate”指令。调用该指令时会自动弹出创建相应背景数据块的界面,如下图4所示:
图4.调用“DataLogCreate”指令
按照如上图3所创建的数据日志名称、标题和 Data 结构为“DataLogCreate”指令分配输入、输出参数。当触发该指令输入参数 REQ 时,创建数据日志文件。如下图5所示:
图5.“DataLogCreate”指令
“DataLogCreate”指令重要参数说明如下表1所示:
输入参数 数据类型 说明 REQ BOOL 上升沿信号时创建数据日志文件 RECORDS UDINT 数据日志可存储的最大数据日志数 FORMAT UINT 数据格式:0: 内部格式(不支持) 1: 逗号分隔值CSV TIMESTAMP UINT 时间戳:0:无时间戳 1: 日期和时间戳 NAME VARIANT 数据日志的名称(如上图3定义) ID DWORD 数据日志的对象 ID(如上图3定义) HEADER VARIANT 数据日志文件中第一行列标题(如上图3定义) DATA VARIANT 数据日志数据日志的数据缓冲区(如上图3定义)
表1.“DataLogCreate”指令重要参数说明
完成数据日志的创建需多个扫描周期,且 DONE 位仅在一个扫描周期内有效,因此可编程捕获“DataLogCreate”指令的 DONE 信号位。如下图6所示:
图6.“DataLogCreate”指令的DONE信号位
4. 写入数据日志
数据日志创建成功后,使用“DataLogCreate”指令的 Done=1 信号使能“DataLogWrite”指令,并触发该指令 REQ,将产品型号“Type”,长度“Length”,宽度“Width”三个变量值写入到数据日志文件。如下图7所示:
图7.“DataLogWrite”指令
5. 关闭打开的数据日志文件
当写入的条数达到设定的3条日志条数时,数据日志已满“DataLogCreate”指令的输出参数 STATUS=1。因此,可编程使用该状态字节自动关闭该数据日志文件。如下图8所示:
图8.“DataLogClose”指令
6. 当写入的条数达到设定的日志条数时,可选择以下两种情况之一再分别写入数据日志
情况一:打开已有数据日志文件
当写入的条数达到设定的3条日志条数时,如果旧的变量值允许被新的变量值覆盖,可再调用“DataLogOpen”指令打开这个数据日志文件,如下图9所示:
打开该数据日志文件成功后,可按照如上图7所示再写入一条新的数据日志,此时第一条旧的数据日志将被覆盖。
图9.“DataLogOpen”指令
该指令重要参数说明如下表2所示:
输入参数 数据类型 说明 MODE UINT 打开数据日志的方式:
MODE= "0" 保留数据日志的数据日志;
MODE= "1" 删除数据日志的数据日志,但保留标题;
表2.“DataLogOpen”指令重要参数说明
情况二: 新建数据日志
当写入的条数达到设定的3条日志条数时,如果想保存之前的变量值,可调用“DataLogNewFile”指令创建一个新的数据日志文件。如下图10所示:
新建数据日志文件成功后,可按照如上图7所示再写入一条新的数据日志。
图10.“DataLogNewFile”指令
“DataLogNewFile”指令重要参数说明如下表3所示:
输入参数 数据类型 说明 RECORDS UDINT 新数据日志中的数据日志数目 NAME VARIANT 新数据日志的文件名称(如上图3定义) ID VARIANT 数据日志的对象 ID
表3. “DataLogNewFile”指令重要参数说明
7. 查看数据日志
通过PC访问标准 Web 页面,在Web浏览器地址栏中输入 S7-1200 CPU 的 IP 地址(如192.168.70.26);并且以管理员身份登录 Web 服务器,如下图11所示:
图11.登录 Web 服务器
以管理员身份成功登录后,可在 Web 服务器的 Data Logs 页面中查看到数据日志,并且可下载、清除或删除数据日志文件。如下图12所示:
图12.查看数据日志
按上图12所示,下载该数据日志文件(如 Product ),然后通过EXCEL表格打开。写入了预定义的3条日志的数据日志文件,如下表4所示:
表4. 3条数据日志
情况一结果:
如果旧的变量值允许被新的变量值覆盖,写入一条新日志后,再次下载并打开“Product”这个数据日志文件。如上表4将发生变化,第一条旧日志将被覆盖,如下表5所示:
表5.循环写入的数据日志
情况二结果:
如果想保存之前的变量值,创建一个新的数据日志文件,再写入新的数据日志。如下图13所示:
图13.查看新数据日志
这种情况下,将创建一个新的数据日志文件,写入一条新日志,下载并打开“NewProduct”这个新数据日志文件。如上表4不会发生变化,新的数据日志文件及日志如下表6所示:
表6. 新数据日志文件及日志