使用S7-1200/1500记录数据

在项目中有时候难免需要用PLC记录一些生产数据,比如一些关键工艺参数的修改记录或者第三方自动化系统传送过来的数据记录等。对于这种需求,在S7-1200/1500中有两种方式可以实现,一是使用自带的Data Logging指令组将数据保存在CSV文件里,二是自己编程将数据存储在数据块中。前一种方式简单易用,但是不能在线查看数据,需要开启PLC的WEB SERVER功能,然后登陆上去将CSV文件下载到本地打开。后一种方式对编程要求稍高一点,但是可以在线查看数据,缺点是不好离线保存。

使用Data Logging指令组实现数据记录

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编程实现数据存储。

用SCL编程实现数据存储

在上一篇里面我们介绍了使用自带的Data Logging指令组实现数据记录的方法。这种方法的优点是使用简单,可以离线查看数据,也可以长期保存。但是它也不是没有缺点,首先是需要开启PLC的WEB SERVER功能,然后才能登录下载查看。另外一点就是我们不太方便使用这些历史数据。比如因为某种原因,我们需要访问历史记录那就没办法了。如果我们自己编程来实现数据记录,那就灵活多了,虽然难度稍大,但是我们可以对这些历史数据自由控制。

初级实现

下面我们来简单介绍一下如何自己编程实现数据记录。首先新建一个PLC项目,插入一个PLC数据类型"RecorderType"。该类型包含了四个元素,参见下图所示。

图片

图1 PLC数据类型

然后我们再创建一个数据块作为数据库保存历史数据。重命名数据块为Database,插入两个变量,类型分别为"RecorderType"和Array[0..99] of "RecorderType",前者用于保存当前数据,后者用于保存历史数据。这里我们声明的数组长度为100,也就是最多可以保存100个历史数据。

图片

图2 创建数据块

数据记录通常由一个布尔量来触发,在捕捉到上升沿时将数据保存到变量Database.CurrentData中。为了便于测试,我们用固定值代替了变量,程序参见下图所示。

图片

图3 保存当前数据

在这里我们使用了指令RD_LOC_T读取当前PLC时间,意在为历史数据加上时间戳。在保存当前数据的同时,我们还需要对保存历史数据的数组Database.HisData进行操作,所有数据逐个后移,最后一个数据丢弃,然后将当前数据保存到数组的起始位置。

图片

    图4 保存历史数据

保存并下载程序,我们可以试着置位触发信号,然后就会看到变量Database.CurrentData中保存了当前数据,同时数组Database.HisData的起始位置也保存了最近的一次数据。

图片

图5 查看历史数据

如果再次置位触发信号的话就能看到数组中的数据整体后移,而起始索引始终是最新的一条数据。 

进一步提升

切记,我们写任何程序,都要考虑如何进行“封装”。并不是只有面向对象才有封装,一段具有独立功能的代码都可以进行封装,既可以封装成对象(Function Block,也就是FB),也可以封装成函数(Function,也就是FC)。小到一个方法,大到一个系统,都需要好好的思考如何进行封装。

封装的好处主要有三点,一是便于维护,我们只需要维护一个个的函数或者对象即可,这样不会在增加功能或者改变工艺时牵一发而动全身。二是便于知识的积累,封装后的函数或者对象便于在使用中逐渐完善、优化,慢慢形成自己的知识库。三是提升效率,随着知识库的不断庞大,我们做项目的效率也会越来越高。下面我们还是以这个例子来谈谈如何进行封装。

上面的代码虽然实现了功能,但是不便于移植到别的项目,程序复用性差。如果想提高程序复用性,我们必须对它进行封装。根据数据记录这一需求特性,我们只需要将它封装成FC即可,不需要封装成FB。

首先新建一个FC,接口如下图所示。

图片

图6 函数接口

在上图中,参数“IN”类型是“RecorderType”,用于接收当前数据。参数“DataStrage”类型是“Arry[*] of “RecorderType””。注意这里的数组下标我们用了*,这个表示我们对存储数据的数组长度没有限制,从而函数的灵活性大大增强。因为我们使用了动态数组,所以第一步我们需要获取用于存储数据的数组上、下限。

图片

图7 获取数组上、下限

然后我们根据数组的上、下限来循环操作该数组。

图片

图8 操作数组

输出参数“Done”用于标识数据存储动作完成。完成后保存该函数,然后我们直接调用它就行了。

图片

图9 调用函数

大家可以自行测试下,效果和之前的代码是一致的。这种封装形式大大简化了程序,虽然第一次稍微麻烦点,但是后面带来的好处显而易见。

  • 28
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TIA博途软件与S7-1200/1500 PLC应用详解PDF是一本详细介绍TIA博途软件和S7-1200/1500 PLC应用的电子书。TIA博途软件是西门子公司开发的一款用于工业自动化领域的集成开发环境软件,它集成了PLC编程、HMI设计、驱动程序编写等功能,可以实现对工业控制系统的全面开发和管理。 本电子书详细介绍了TIA博途软件的安装与配置、PLC编程语言、HMI界面设计等内容。首先,它介绍了TIA博途软件的安装过程,并指导用户正确配置软件环境,以便能够顺利进行后续工作。 其次,本书详细讲解了S7-1200/1500 PLC的编程语言。这些编程语言包括梯形图、指令列表和结构化文本,读者可以根据实际需要选择适合的编程语言进行工作。通过实例演示和详细的解释,读者可以深入了解PLC编程的要点和技巧。 此外,本书还介绍了HMI界面设计的相关内容。HMI界面是人机交互的重要组成部分,本书通过简单易懂的语言和丰富的图例,向读者展示了如何设计醒目而功能强大的HMI界面,以满足用户对工控系统操作体验的需求。 总之,TIA博途软件与S7-1200/1500 PLC应用详解PDF对于使用TIA博途软件和S7-1200/1500 PLC进行工业自动化控制的人员来说是一本宝贵的学习资料。通过学习本书,读者可以全面了解TIA博途软件和S7-1200/1500 PLC的使用方法和应用技巧,提高自己在工业自动化领域的实践能力和解决问题的能力。 ### 回答2: TIATIA博途软件是西门子公司为其S7-1200/1500系列可编程逻辑控制器(PLC)开发的一款工程软件。该软件具有强大的PLC编程和控制功能,可实现工业自动化控制系统的设计、调试和管理。下面将详细介绍TIATIA博途软件与S7-1200/1500PLC的应用。 首先,TIATIA博途软件为工程师提供了友好的可视化编程界面,使得PLC的编程变得简单易懂。它支持多种编程语言,包括梯形图、功能块图和结构化文本等,满足了不同工程需求。此外,TIATIA博途软件还提供了丰富的标准函数库,可快速搭建各种控制逻辑和算法。 其次,TIATIA博途软件具有强大的在线调试和监控功能。通过软件的仿真模式,可以在没有实际硬件设备的情况下进行程序调试,节省了设备和材料成本。一旦PLC与实际设备连接,TIATIA博途软件可以实时监控PLC运行状态、观察输入输出信号和变量值,以及记录历史数据,便于故障诊断和性能优化。 另外,TIATIA博途软件还提供了丰富的通信接口,支持与其他设备和系统的集成。通过以太网、PROFIBUS和PROFINET等通信协议,TIATIA博途软件可以与其他PLC、上位机、触摸屏和远程监控系统等进行数据交换和远程控制,实现系统的全面联网。 总结来说,TIATIA博途软件与S7-1200/1500PLC的应用简化了工业自动化控制系统的设计和调试流程,提高了工程师的编程效率和工作效果。它的强大功能和可靠性使得S7-1200/1500PLC能够广泛应用于各种领域,包括制造业、能源、交通和建筑等。 ### 回答3: 博途软件是西门子(Siemens)公司推出的一套PLC编程和仿真工具,用于开发、配置和管理S7-1200S7-1500系列PLC。而S7-1200/1500西门子公司的最新一代可编程逻辑控制器(PLC),具有高性能、高可靠性和开放性的特点。 TIA博途软件与S7-1200/1500PLC的应用详解PDF是一份详细介绍博途软件和S7-1200/1500PLC应用的电子文档。该文档主要包含以下内容: 1. 博途软件的介绍:介绍博途软件的功能和特点,包括编程、仿真、调试、监控和诊断等功能。同时还介绍了博途软件的安装和配置方法。 2. S7-1200/1500PLC的介绍:介绍了S7-1200/1500PLC的硬件特点和技术指标,包括输入输出模块、通信模块、CPU和存储器等组成部分。同时还介绍了S7-1200/1500PLC的安装和连接方法。 3. PLC编程:详细介绍了使用博途软件进行PLC编程的方法和技巧,包括基本指令、数据类型、数据传输和数据处理等。同时还介绍了常用的编程语言,如梯形图和结构化文本语言。 4. PLC应用案例:提供了一些实际的PLC应用案例,包括自动化控制、生产线控制、机器人控制和过程控制等。通过这些案例,读者可以了解如何使用博途软件和S7-1200/1500PLC来解决实际的控制问题。 总之,TIA博途软件与S7-1200/1500PLC应用详解PDF是一份全面介绍博途软件和S7-1200/1500PLC的电子文档,对于学习和应用PLC控制技术的工程师和技术人员来说是一份非常有价值的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值