(图片来源网络,侵删)
在项目中有时候难免需要用PLC记录一些生产数据,比如一些关键工艺参数的修改记录或者第三方自动化系统传送过来的数据记录等对于这种需求,在S7-1200/1500中有两种方式可以实现,一是使用自带的Data Logging指令组将数据保存在CSV文件里,二是自己编程将数据存储在数据块中前一种方式简单易用,但是不方便在线查看数据,需要开启PLC的WEB SERVER功能,然后登陆上去将CSV文件下载到本地打开后一种方式对编程要求稍高一点,但是可以在线查看数据,缺点是不好离线保存Data Logging是博途自带的一个用于保存数据的指令组,里面包含了创建、打开、写入数据记录等指令图1 Data Logging指令组使用Data Logging记录数据是有大小限制的数据日志中可存储的数据量取决于存储卡上的可用空间,或所用 CPU 内部装载存储器中的存储空间对于S7-1200CPU,生成的CSV文件的最大大小为500,000,000字节;而S7-1500 CPU为1,000,000,000字节我们在创建记录文件时可以指定最大记录数,如果达到了数据文件中数据记录指定的最大数目,则覆盖最早的数据记录要避免覆盖现有数据记录,可以使用“DataLogNewFile”指令一旦达到参数RECORDS中指定的数量时,可通过该指令创建一个相同结构的新数据文件,之后数据记录将保存在新的数据记录中下面我们来简单演示下Data Logging指令的使用首先创建一个项目,插入一个S7-1200系列的CPU打开CPU属性页面,勾选“启用模块上的WEB服务器”,同时去掉“仅允许HTTPS访问”的勾选,参见下图所示图2 激活WEB服务启用Web服务器的目的是为了下载数据记录文件然后创建一个数据块,如下图所示添加若干变量图3 用于数据记录的数据块上图中的LogName用于指定数据记录文件的名称,LogId用于保存数据记录文件的ID,结构变量LogData用于向记录文件传送数据我们也可以为数据记录文件添加标题,这里不再赘述然后将指令组Data Logging下面的DataLogCreate指令拖到程序编辑器中,各引脚参数如下图4 指令DataLogCreate该指令用于创建一个数据记录文件具体指令的各引脚功能可以参见帮助文件这里我们指定了数据记录文件名称和最大记录数当创建文件成功后置位变量CreateDone接下来我们再拖一个DataLogWrite指令到程序编辑器,各引脚参数如下图所示图5 指令DataLogWrite上面的指令在数据记录文件创建成功后使能,当变量Write为真时数据写入到记录日志中需要注意的是指令DataLogWrite和指令DataLogCreate的引脚“ID”必须为同一个变量保存并下载程序到PLC中,首先我们置位变量CreateCmd,然后可以看到变量CreateDone已经为真,表示数据记录文件创建成功图6 创建数据记录成功为了验证是否成功创建了数据记录文件,我们可以打开浏览器,输入PLC的IP地址,点击左边目录“文件浏览器”,可以看到文件夹“DataLogs”下面有个文件“log1”,和我们在数据块中的命名一致,参见图3所示图7 数据记录文件下载页面接下来我们尝试往记录里面写数据,置位变量“Write”然后刷新下浏览器页面,点击文件“log1.csv”下载打开文件“log1.csv”就可以看到记录的数据了图8 已记录的数据这里我们只是简单演示了如何使用Data Logging指令组实现数据记录,其它创建新文件、清空记录文件等功能感兴趣的话也可以自行尝试下下一节我们将介绍如何自己用SCL编程实现数据存储
0 评论