DACU软件与编程技术

数据采集和控制单元:软件

9.1 引言

在第8章中,我们讨论了通用数据采集控制单元(DACU)的硬件方面。多年来,硬件技术取得了许多进步(主要体现在电子、通信和网络方面)。然而,正如附录C所解释的,尽管硬件接口几乎保持不变,但由于处理器支持大内存和提高的速度,控制功能变得更加强大。除了紧凑性和可靠性外,早期系统中存在的内存和速度限制已不再适用。因此,软件已在执行许多任务方面超越了硬件。事实上,软件消除了对某些硬件接口电子元件的需求,并承担了工业过程的完整操作与控制。当前基于软件的系统更加灵活且模块化,可根据需要进行修改。它们还提供最大设施,用户只需针对特定过程定制自动化系统。当今自动化系统中的软件几乎完成了一切以运行、分析、监控和控制工业过程。本章讨论DACU的应用软件方面。

9.2 软件结构

数据采集控制单元的通用软件结构与其他实时系统相似。数据采集控制单元中的典型软件层次包括:

  • 硬件平台
  • 实时操作系统
  • 实用软件
  • 应用软件

示意图0

图9.1 说明了这些层的一般布置。每个较低层级都有一个接口,用于与上一级交互。此处除最内层或硬件层外,所有层级均为软件。以下各节简要说明此软件结构中各层的功能。

9.2.1 硬件平台

硬件平台层基本上由硬件资源组成,包括处理器子系统(处理器、内存和看门狗)、通信子系统(串行和以太网接口)以及输入‐输出(I/O)子系统(各种类型的输入和输出),以及它们与操作系统的接口。

9.2.2 实时操作系统

实时操作系统(RTOS)专为满足响应时间可预测性和确定性响应的实时操作而设计。主要标准是可预测性和确定性,而非速度。在同一系统中,也可以同时具备软实时和硬实时特性。操作系统软件中的过度开销可能影响响应时间和性能。与通用操作系统不同,RTOS 仅增加以微秒计的少量开销,而自动化系统中的响应需求通常在毫秒或更长时间级别。这为非实时任务的执行保留了大量计算能力。RTOS 的内核在基本形式上是内存驻留软件,负责整体管理通过响应时间和事件控制的任务来实现实时系统的功能。主要功能包括:

  • 资源管理 :根据执行时间表,由竞争的任务共享资源。这意味着任务在需要时能够获得所需的资源分配;
  • 任务管理 :任务的创建及其激活、运行、阻塞、恢复和停用;
  • 任务调度 :以循环/程序化方式或非循环/抢占式方式进行多个任务的调度,并严格遵守时间表,从而实现可预测或确定性的结果;
  • 输入/输出管理 :以编程或优先级方式执行服务任务;
  • 内存管理 :为任务分配和释放内存;
  • 任务间通信与同步 :在任务之间发送消息以实现同步。当并行处理任务时,尤其是某些任务的执行依赖于其他任务完成时,这一点尤为必要;
  • 中断管理 :处理基于多级优先级的中断;
  • 时间管理 :维持实时和日历时间,支持基于时间的任务执行,并监控任务启动后的经过的时间。定时器具有最高级别的中断,并跟踪实时。

9.2.3 实用软件

实用软件是由供应商开发的标准且常用的 应用程序。

9.2.4 应用软件

应用软件执行为工业过程特别定制的 自动化功能(自动化策略)。实时操作系统 提供与所有资源(硬件、软件和通信)连接的设施。因此,应用程序 开发人员只需了解与实时操作系统的连接,即可访问所有可用资源。

9.2.5 任务调度

数据采集控制单元 采用 实时操作系统,并通过实时 任务调度 来执行 自动化 任务。重要的实时 DACU 任务将在以下章节中讨论。

9.2.5.1 数据采集

这是基本任务,以下是最重要的实时活动:

  • 在数字输入状态发生变化时(例如过程报警的发生/消失或事件变化)对其进行采集。如果在当前变化被采集之前发生另一次变化,则有可能丢失此信息;
  • 以所需的周期/间隔采集模拟输入的值,因为这些值可能快速变化(例如过程值的连续变化)。存在一种可能性如果在当前值被获取之前发生显著变化,可能会导致信息连续性丢失;
  • 以所需的周期/间隔获取计数器的值,因为如果在计数器溢出之前未获取其值,这些值可能会快速更新(例如,以过程参数的累积值连续更新计数器)。

此任务负责确保数据采集在规定时间内完成,且不丢失任何数据。

9.2.5.2 数据分析与监控

获取输入数据后,过程数据分析和监控任务应尽早识别以下事件,以启动预期的操作:

  • 原始数字输入状态的变化(例如,发生报警)或作为原始输入函数的衍生输入(例如,生成组报警);
  • 原始模拟输入值的变化(例如,发生越限)或作为原始输入函数的衍生输入(例如,生成组合值);
  • 原始计数器值的变化(例如,超过某一过程输入的消耗)或作为原始输入函数的衍生值(例如,多个单独消耗的总和)。

此任务负责确保在规定的时间/优先级内完成数据分析与监控。

9.2.5.3 过程控制

在分析输入数据后,过程控制步骤将执行以下操作:

  • 根据所需周期或最终控制元件的要求,计算并发送可变控制命令(模拟输出),以调节过程性能(例如,保持精确的流量);
  • 在必要时立即向最终控制设备发送离散控制命令(数字输出)(例如,紧急停机命令);
  • 向最终控制设备发送脉冲命令(脉冲输出),以调节过程参数(例如,使用步进电机进行位置控制)。

此任务负责确保过程指令在正确或预定的时间被执行。

9.3 应用编程

除非为特定的自动化功能进行编程,否则数据采集控制单元无法执行所需的功能。通常,自动化策略由自动化工程师进行编程。自动化工程师的首要任务是针对特定过程或装置对数据采集控制单元进行配置或定制。此过程称为系统配置,需考虑数据采集控制单元所需的过程输入和输出的数量与类型以及其他标准输入。第15章详细讨论了自动化系统的定制。下一步是开发特定的自动化程序以满足该过程的应用要求。附录D描述了低级语言(机器和汇编)的基本编程,并介绍了高级语言编程。本章说明了使用DACU供应商提供的工具和程序,以高级语言对数据采集控制单元进行编程。

9.3.1 高级编程

如附录D所述,即使使用汇编级语言编写自动化策略能够充分利用数据采集控制单元的硬件特性,但所生成的应用程序只能在为其编写程序的特定机器或平台上运行。因此,数据采集控制单元的编程总是采用高级语言进行,以便程序员更容易理解,并使程序在其他数据采集控制单元和平台上只需最小程度的修改即可移植使用。由平台供应商开发的编译程序将该高级语言程序转换为其可执行的机器代码等效形式,并下载到数据采集控制单元(目标机器)中。

数据采集控制单元通过使用以下一种或多种符合IEC 61131-3标准的高级语言来编程实现自动化功能:

  • 梯形图(LD)
  • 功能块图(FBD)
  • 结构化文本(ST)
  • 指令表(IL)
  • 顺序功能图(SFC)

示意图1

图9.2 说明了这些高级自动化编程语言的通用结构,所有数据采集控制单元供应商通常都支持这些语言。

IEC 61131‐3 标准允许混合并编译使用所有这些高级语言编写的自动化程序。自动化工程师最常用的编程语言是用于自动化编程的梯形图和功能块图。它们基于图形化设计,旨在使自动化工程师和过程工程师的程序开发与维护更加简便。

ST 和 IL 是基于文本的语言,分别类似于 C/Pascal 和汇编语言。这两种语言通常由自动化软件开发人员使用。SFC 是一种基于图形的语言,在程序开发、启动和故障排除期间,提供数据采集控制单元与用户之间的基于时间和事件的接口。

除了这五种之外,还有另一种尚未包含在标准中的附加图形编辑器:连续功能图 (CFC)。它被视为FBD编辑器的扩展。在FBD中,连接由操作符自动建立,而在CFC中,必须由程序员手动绘制连接。这也为程序员提供了更大的自由度,因为所有框都可以自由放置,并且可以在不使用中间变量的情况下编程反馈回路。

在接下来的章节中,我们将讨论仅在工业中常用示例的LD和FBD语言的功能。

9.3.2 梯形图

梯形图源自使用继电器(基于继电器的逻辑)的电气控制系统中的图形表示。它主要用于离散自动化,非常适合带联锁的顺序控制。梯形图的具体特点如下:

  • 基于附录A中讨论的继电器逻辑的方案/电路图,
  • 编程元素的图形表示。

“梯形图”这一名称源于该程序类似于一个具有两条垂直导轨和一系列水平横档的梯子。在梯形图中,这些导轨被称为“电源导轨”。

示意图2

表 9.1 描述了LD中的基本编程符号。表9.2 描述了LD中的一些简单位逻辑指令。表9.3 描述了LD中的定时器和计数器指令。表 9.4 描述了LD中一些简单应用示例的编程。

表 9.1 梯形图:基本符号
符号
常开:正常情况下断开
常闭:正常情况下闭合
多输出
表9.2 梯形图:位逻辑指令
符号
反相器/非
双输入与门
双输入或门
表9.3 梯形图:定时器/计数器指令
符号
接通延时定时器:开延时定时器
TOF:关延时定时器
增计数器:上计数器
CTD:减计数器计数器
表 9.4 梯形图:简单应用示例的编程
方案
示例 1:输出自锁功能
示例 2:车门未关报警生成功能
示例3:停车满指示和关闭闸门
示例4:电梯门开启操作

数据采集和控制单元:软件

9.3.2.1 带联锁的顺序控制

本节以梯形图编程为例,说明对作为离散过程的热水器进行自动化(带联锁的顺序控制)的实现方法。 示意图3 展示了带有仪表子系统(离散输入和离散输出设备)的水加热过程。

表9.5 梯形图:I/O通道与过程信号的分配(带联锁的顺序控制)
从/到
数字输入(DI)模块(八个通道:DI0–DI7)
来自过程
来自操作员面板
数字输出模块(八个通道:DO0–DO7)
至操作员面板
待处理
未使用
表9.6 梯形图:特殊要求的内存位置分配(带联锁的顺序控制)
Name
FVO
FVC
FBO
FBC
XXX

示意图4

示意图5

示意图6

示意图7

图9.5 说明了数据采集控制单元在水加热过程自动化(带联锁的顺序控制)中的配置。图9.6 是水加热过程自动化(带联锁的顺序控制)的程序流程图。图9.7 说明了在水加热过程的自动化(带联锁的顺序控制)中梯形图编程的变量分配。图9.8 展示了用于水加热过程自动化(带互锁的顺序控制)的编码后的梯形图程序。该程序使用CoDeSys1软件进行编码和测试。如今,梯形图支持更多编程指令,包括连续过程自动化所需的数学函数。

9.3.3 功能块图

功能块图(FBD)也是一种对各种数学和逻辑功能的图形表示,主要用于连续过程自动化的编程,尽管它也完全支持逻辑操作。与梯形图一样,功能块图基于以下内容:

  • 它具有编程元素的图形表示,这些编程元素在程序的不同部分中是模块化、可重复和可重用的;
  • 功能块表示输入和输出之间的函数关系;
  • 程序通过连接功能块来构建,以定义数据交换;
  • 在程序中,数值通过功能块从输入流向输出;
  • FBD 的核心概念是数据流。连接线具有数据类型,两端必须兼容;
  • 它支持二进制数(数字 0 和 1)的编程,用于处理位逻辑;以及
  • 它支持整数(单精度和双精度)和实数的编程。

示意图8

图9.9 展示了一个典型的功能块图及其约定。以下部分介绍了功能块图中一些基本且常用的指令。表9.7说明了功能块图中的位逻辑指令。位逻辑指令解释信号状态1(开)和0(关),并根据布尔逻辑对其进行组合。表9.8 提供了功能块图中用于整数(I)的比较指令。此处的输入为整数、双整数或实数(浮点),输出为二进制。如果比较结果为真,则函数输出为1(开),否则为0(关)。通过将I分别替换为D和R,这些指令也可用于比较双整数和实数(浮点)值。表9.9 列出了功能块图中的触发器指令。表 9.10给出了功能块图中 [加计数和减计数(DN)]计数器指令。在加计数器中,输入端的上升沿(信号状态从0变为1)使计数器递增,并在计数器达到预设值时输出1。类似地,在减计数器中,输入端的上升沿(信号状态从0变为1)使计数器从预设值递减,并在计数值达到0时输出1。表9.11 列出了功能块图中的定时器指令。表9.12提供了功能块图中的算术指令。表9.13展示了功能块图中简单应用示例的编程。

表9.7 功能块图:逻辑指令
符号
&
>=1
NOT
SET
表9.8 功能块图:比较指令
符号
==I
>I
<I
<>I
>=I
<=I
表9.9 功能块图:触发器指令
符号
RS
SR
表 9.10 功能块图:计数器指令
B,布尔型;I,整型
表9.11 功能块图:定时器指令
B,布尔值;时间,控制器时间;TV,定时器值。
表9.12 功能块图:算术指令
符号
+I
-I
*I
/I
这些功能块适用于整数操作数。通过将I替换为D或R,类似的指令可应用于双整数和实数操作数。输出C始终为整数、双整数或实数(根据输入而定)。
表9.13 功能块图:简单应用示例的编程
示例 1:电机启停
示例 2:车厢灯/蜂鸣器
示例3:停车场满/未满指示
示例4:电梯门操作
示例5:空调两步控制
示例6:电机速度控制

9.3.3.1 回路控制

本节通过功能块图(FBD)编程示例说明热水器作为连续过程的自动化(回路控制)。 示意图9 描述了带有仪表子系统(连续输入和连续输出设备)的加热过程。

示意图10

图9.11 说明了用于水加热过程自动化(回路控制)的数据采集控制单元配置。

表9.14 功能块图:输入‐输出(I/O)通道到过程信号的分配(连续控制)
从/到
模拟输入(AI)模块(八个通道:AI0–7)
来自过程
来自操作员面板
未使用
模拟输出(AO)模块(八个通道:AO0–7)
待处理
至操作员面板
未使用
表 9.15 功能块图:特殊要求的内存地址分配(连续控制)
Name
XXX

表 9.15 给出了用于特定要求的内存位置分配。表9.14 说明了I/O通道与过程信号的分配。 示意图11 是水加热过程自动化(回路控制)的程序流程图。 示意图12 )说明了水加热过程自动化(回路控制)中FBD编程的变量分配。 示意图13 说明了水加热过程自动化(回路控制)的编码后的 FBD 程序。该程序使用CoDeSys2软件进行编写和测试。

9.3.3.2 带死区的两步控制

本节给出了一个使用功能块图(FBD)对作为混合过程的热水器进行自动化(带死区的两步控制)编程的示例。 示意图14 描述了一个带有仪表子系统(连续输入和数字输出设备)的水加热过程。 示意图15 说明了用于水加热过程自动化(带死区的两步控制)的数据采集控制单元配置。

表9.16 功能块图:输入‐输出(I/O)通道对过程参数的分配(带死区的两步控制)
从/到
模拟输入(AI)模块(八个通道:AI0–7)
From 过程
From 面操板作员
未使用
模拟输出(AO)模块(四个通道:AO0–3)
至操作员面板
未使用
数字输出(DO)模块(八个通道:DO0–7)
待处理
未使用
表 9.17 功能块图:带死区的两步控制特殊要求的内存地址分配
标志位
FVO
FVC
FBO
FBC
XXX

表9.16 描述了I/O通道与过程信号的分配。表 9.17 说明了用于特定要求的内存地址分配。 示意图16 描述了水加热过程自动化(带死区的两步控制)的程序流程图。 示意图17 展示了水加热过程自动化(带死区的两步控制)中FBD编程的变量分配。 示意图18 展示了水加热过程自动化(带死区的两步控制)的编码后的 FBD 程序。该程序使用CoDeSys3软件进行编码和测试。

9.4 总结

在本章中,我们研究了使用IEC 61131‐3标准对数据采集控制单元(DACU)进行编程的方法,以实现针对不同应用的定制。整个讨论均通过梯形图(LD)和功能块图(FBD)语言中的基本编程符号和指令(自动化工程师常用)以及简单的应用编程示例来支持。最后,给出了用于带联锁的顺序控制(离散水加热过程)、连续控制(连续水加热过程)和带死区的两步控制(混合水加热过程)的自动化程序。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值