硬件:cpu 1214C
目的:测试数据记录功能
软件:Portal V14SP1
CPU设置
![](https://i-blog.csdnimg.cn/blog_migrate/581db3881b611b449e7577bbdf2b96fe.jpeg)
程序编写
1,新建MyDataLog数据块,存放创建数据日志的相关变量
Name:所创建数据日志的名称
ID:所创建数据日志的ID
Header:数据日志的行标题,中间用逗号间隔
Data:Struct型数据,填入所需要记录的变量
NewName:新数据日志的名称
2,调用DataLogCreate指令,调用成功后会在Web中创建一份以Name命名的数据日志
RECORDS:数据日志可存储的最大数据记录数
3,调用DataLogWrite指令,当数据日志处于打开状态时,可以进行写入操作,触发一次REQ引脚,将记录一条ProcessValue与Pressure数据
4,当数据日志写入条目数到达上限时,STATUS会输出16#0001,此时可以选择关闭数据记录
5,如果希望继续写入条目,可以利用DataLogOpen指令再次打开数据记录
MODE:打开数据日志的方式
MODE= “0” 保留数据日志的数据记录;
MODE= “1” 删除数据日志的数据记录,但保留标题;
6,也可以选择利用DataLogNewFile指令创建一份以NewName命名的新数据日志
7,打开浏览器,输入PLC的IP地址,可以进入Web服务器,在文件浏览器→DataLogs下可以找到所创建的数据日志,可以进行下载或者删除操作,打开下载的CSV文件可以看到记录的数据
8,调用DataLogClear指令,将清除所打开的数据日志内的所有条目
9,调用DataLogDelete指令,将删除数据日志,作用于Web服务其中的删除按钮相同
小结
DataLogCreate与DataLogNewFile
指令调用成功后,创建的数据日志将处于打开状态,用此种方式打开的数据日志当写入条目数第一次达到设定值时,Status会输出16#0001(Name或NewName创建日志的都一样),如果忽略Status输出,继续写入的数据记录将从上往下覆盖旧的数据,当写入的数据条目数再次到达设定值时,Status并不会再次输出16#0001,数据记录将继续循环覆盖。
当Web服务器中未存在用DataLogCreate创建的数据日志,直接调用DataLogNewFile将不起作用
DataLogWrite
只有当数据日志处于打开状态下,才能写入成功
DataLogOpen
当存在Name和NewName两份数据日志时,优先打开NewName数据日志(与Name数据日志内的记录条数是否到达上限没有关系)
当Mode=0(保留数据日志中的数据记录),若条目数尚未到达设定值,此时新写入的数据记录将继续往下记录,当达到设定的条目数时,Status会输出16#0001,若条目数已经达到设定值,此时写入的数据记录将从上往下进行覆盖,再次达到设定条目数时,Status并不会输出16#0001(Name或NewName创建日志的都一样)
当Mode=1(删除数据日志的数据记录,但保留标题),此时数据日志内容将被清空,标题栏被保留,此时当写入的数据再次到达设定条目数时,Status会输出16#0001,如果忽略Status输出,继续写入的数据记录将从上往下覆盖旧的数据,当写入的数据条目数再次到达设定值时,Status并不会再次输出16#0001,数据记录将继续循环覆盖。(Name或NewName创建日志的都一样)
STATUS的输出逻辑相当于,当CSV文件中的空条目被填满至设定条目值时,才进行输出,若CSV文件中已经已经不存在空条目,单纯进行覆盖操作无法再次触发STATUS
DataLogClear
只有当数据日志处于打开状态时,才能执行
DataLogDelete
当存在Name和NewName两份数据日志时,优先删除NewName数据日志,然后再删除Name数据日志
不论数据日志处于打开或者关闭状态时,均能执行将数据日志彻底删除(与WebServer页面中的删除按钮功能相同)
注意:数据日志被删除后,无法再执行写入操作,数据日志处于打开状态下直接进行删除操作时需要程序内部进行逻辑处理