plc编程自动分解 PLC编程的结构化:走向成功的7个步骤

小编 77 0

PLC编程的结构化:走向成功的7个步骤

作者 | Eelco van der Wal

IEC 61131-3标准包括强大的结构化工具,可以帮助用户将控制系统分解为可管理的单元,从而提高整体效率。

根据现代软件开发环境的需求,国际电工委员会 (IEC) 的可编程逻辑控制器标准第 3 部分编程语言 IEC 61131-3 包括了强大的结构化工具。其中关键部分是顺序功能图 (SFC)用户自定义的功能块 。两者都为将控制系统分解成可管理的单元提供了一个很好的方法。

这些单元更容易被不同背景的人使用和理解。它提供了系统工程师、软件开发人员以及安装和维护人员之间缺失的环节。此外,它还为这些不同的群体提供了一种表达和交流的工具。

通过这种方式,在更大的应用中,多专业团队也可以相互协作,编制更易于理解和可复用的代码,并在程序员、安装和维护人员以及用户之间提供不同级别的隔离。

此外,在软件开发初期就可以进行错误检测和错误处理。另一种方法,是在安装过程中(甚至在运行期间)创建这些程序,但对于供应商(支持)和用户(停机)来说成本都太昂贵。

为控制系统编程提供结构

控制系统代码结构化的优点很多,包括:更好的系统概览,不仅对原始程序员很重要,对安装和维护人员也很重要;为多专业开发团队的内部沟通提供更好的基础;不同职责之间的明确分离;更好地关注真正的问题和可能的解决方案;以及可复用软件的基础。

结构化是通过将问题分成更小的部分来完成的 。这些部分可以进一步细分。但这样做也有局限性 :不能无限制的持续细化,因为这会增加集成工作。

模块化块的使用涉及 5 个基本原则 :

• 编程语言应支持模块化单元。

• 单元的组成方式和数量,应使其具有最少的接口和最少的交互。

• 接口要小,需要最少的数据交换。

• 模块交互需要明确定义,以增加其可复用性。

• 模块应该提供数据封装功能 :应用程序数据是分区的,每个分区只能由一组功能访问,这 样就可以将其隐藏起来,避免不必要的访问。

编程软件结构化的 7 个步骤

以下 7 个步骤,为控制系统编程软件的结构化提供了一条成功之路 :

• 识别控制系统的外部接口。

• 定义控制系统和工厂其它部分之间交换的主要信号。

• 定义所有操作人员的交互、覆盖和监控数据。

• 控制问题分析,从顶层到逻辑分区,逐步分解。

• 定义所需的功能块。

• 定义应用程序不同部分的扫描周期要求。

• 通过定义资源、将程序与物理输入和输出相连接,以及将程序和功能块分配给任务来配置系统。

IEC 61131-3 提供的合适环境可以支持这些步骤。下面将以发酵过程及其控制系统为例详细探讨编程软件结构化的过程。图 1 是整个系统的示意图。

发酵过程包括一个大容器,它可以装满液体(进料阀),可以用加热带加热(通过对流冷却), 通过电机搅拌,并且可以添加酸和碱液进入容器。处理完成后,就用收获阀来收获产品。要为此示例创建控制程序,需要完成上述 7个步骤 :

1 步骤一

识别控制系统的外部接口,包括 :

• 来自温度传感器的反馈 ;

• 来自 pH 传感器的反馈 ;

• 来自阀门位置的反馈 ;

• 来自电机的反馈(速度);

• 输出到阀门 ;

• 输出到电机 ;

• 输出到加热带。

2 步骤二

定义控制系统和工厂其它部分之间交换的主要信号。

在该例中,系统与工厂的其余部分没有耦合,但是在现实中不太可能。例如,人们可能需要 一个连接到容器的管道,该管道还需要接到接收系统,如容器或瓶子的运输系统。也可能与企业资源规划 (ERP) 系统耦合。

3 步骤三

定义所有操作人员交互、覆盖和监控数据。

对于操作人员,我们定义了 “开始”、“停止”和“持续时间” 按钮作为系统的输入。

4 步骤四

控制问题分析,从顶层到逻辑分区,逐步分解。

这个过程有 5 个主要功能 :

a. 主顺序,例如,顶层工艺步骤——灌装、加热、搅拌、发酵、收获、清洁 ;

b. 阀门控制,操作用于填充和清空容器的阀门 ;

c. 温度控制,用于监测容器温度, 调节加热器 ;

d. 搅拌器控制,用于根据主工艺顺序的要求启动搅拌器电机。

e.pH 控制,用于监测发酵内容物的酸度,根据需要添加酸液或碱液。

5 步骤五

定义所需的功能块。

使用上面的定义并向其添加(高级)功能块,我们就可以在编程语言中使用这些功能块图。发酵控制程序的功能块图如图 2 所示。

图 2 :此图表示的是发酵过程的功能块图,左侧是输入,右侧是输出。

功能块主序列连接到运行人员输入。它由其它控制块支持,这些块连接到相关的输入和输出。这些附加块可以是供应商提供的块,例如使用 PID 控制的温度控制块 ;也可以由您自己创建(图 3 所示的就是用 SFC 构 造序列)。

图3 :顺序功能图 (SFC) 提供了一种方法,可以将可编程控制器程序划分为一系列的步骤和转换,它们直接相互连接。

SFC 提供了一种方法,可以将可编程控制器程序划分为一系列的步骤和转换,它们直接相互连接。与每个步骤相关联的是一组动作,与每个转移相关联的是转移条件。

从初始化开始,因为在第一次启动系统时,并不知道系统的状态,所以我们必须检查阀门的位置等。然后开始填充,直至达到合适的液位。下一阶段是加热直到发酵过程开始。接着,进入实际发酵过程控制部分。

完成后,收获产品,然后清理干净,准备重新开始。这种分解,使每个参与者都清楚地了解所涉及的序列,并进一步模块化为功能块,然后用 4 种语言中的任何一种来进行编程。

现在要完成执行级别的编程工作。这些工作可以分配给不同背景的人。为此,IEC 定义了 2 种图形和 2 种文本编程语言,即指令列表、结构化文本、梯形图和功能块图,以最好地满足需要和手头的问题。此外,如果需要,还可以通过 SFC 进一步分解执行块。

6 步骤六

定义应用程序不同部分的扫描周期要求。

在这个例子中,我们原则上只有一个循环,可以在连续模式下运行。或者,我们可以让其定时运行,例如每 20 毫秒运行一次。剩余时间可用于附加序列,例如在收获期间检查,或控制运输 / 装瓶系统,或检查所有边界和错误条件。

7 步骤七

通过定义资源,将程序与物理输入和输出相链接,以及将程序和功能块分配给任务来配置系统。该阶段是专门针对相关系统的。

它包括符号到 I/O 地址的物理映射。通过使用符号表示,可以获得更好的硬件独立性。这对于创建独立于硬件的功能块尤其有效。有了清晰的物理映射,在现场重新布线更容易完成。例如,交换两个数字输入的接线,在物理映射中只需更改 两行,程序的其余部分仍然有效,无需更改。

在这里,资源是相互映射的,意味着无论哪个部分运行在系统中的哪个处理器上,都能一一对应。IEC 61131-3 支持多线程处理环境,尽管大多数系统实际仍使用一个处理器来处理程序。

用户还必须将任务映射到扫描周期和事件,如步骤 6 中定义的那样。这样,一个系统中可以有多个程序,例如这里描述的发酵过程,由整体检查和控制支持,而其背后又有支持环境,例如供应链前端的装瓶或液位。

IEC 61131-3 编程标准为多层次的用户和应用,提供了强大的工具。使用高级 SFC,可以为正在开发的系统提供很好的概览,从而提高可读性和透明度。它为手头的控制问题的模块化提供了指导。此外,它还为区分不同的开发任务提供了基础,并将注意力集中在实际编码层,创建可复用的软件代码上。

关键概念:

■ IEC 61131-3 编程标准为多层次的用户和应用提供了强大的工具。

■ 顺序功能图 (SFC) 和用户衍生功能块,是必不可少的部分。

思考一下:

您是否充分利用了IEC 6113-3 标准进行结构化设计?

掌握这些PLC程序阅读技巧,秒懂PLC程序

PLC控制系统梯形图的特点

(1)PLC控制系统的输入信号和输出负载

继电器电路图中的交流接触器和电磁阀等执行机构用PLC的输出继电器来控制,它们的线圈接在PLC的输出端。按钮、控制开关、限位开关、接近开关等用来给PLC提供控制命令和反馈信号,它们的触点接在PLC的输入端。

(2)继电器电路图中的中间继电器和时间继电器的处理

继电器电路图中的中间继电器和时间继电器的功能用PLC内部的辅助继电器和定时器来完成,它们与PLC的输入继电器和输出继电器无关。

(3)设置中间单元

在梯形图中,若多个线圈都受某一触点串/并联电路的控制,为了简化电路,在梯形图中可设置用该电路控制的辅助继电器,辅助继电器类似于继电器电路中的中间继电器。

(4)时间继电器瞬动触点的处理

时间继电器除了延时动作的触点外,还有在线圈得电或失电时立即动作的瞬动触点。对于有瞬动触点的时间继电器,可以在梯形图中对应的定时器的线圈两端并联辅助继电器,后者的触点相当于时间继电器的瞬动触点。

(5)外部联锁电路的设立

为了防止控制正/反转的两个接触器同时动作,造成三相电源短路,除了在梯形图中设置与它们对应的输出继电器的线圈串联的动断触点组成的软互锁电路外,还应在PLC外部设置硬互锁电路。

02

梯形图的结构分析

采用一般编程方法还是采用顺序功能图编程方法;采用顺序功能图的单序列结构还是选择序列结构、并行序列结构,使用启/保/停电路、步进顺控指令进行编程还是用置位/复位指令进行编程。

梯形图的分解由操作主令电路(如按钮)开始,查线追踪到主电路控制电器(如接触器)动作,中间要经过许多编程元件及电路,查找起来比较困难。

无论多么复杂的梯形图,都是由一些基本单元构成的。按主电路的构成情况,利用逆读溯源法,把梯形图和指令语句表分解成与主电路的用电器(如电动机)相对应的几个基本单元,然后一个环节、一个环节地分析,最后再利用顺读跟踪法把各环节串起来。

(1)按钮、行程开关、转换开关的配置情况及作用

在PLC的I/O接线图中有许多行程开关和转换开关,以及压力继电器、温度继电器等,这些电器元件没有吸引线圈,它们的触点的动作是依靠外力或其他因素实现的,因此必须先把引起这些触点动作的外力或因素找到。其中行程开关由机械联动机构来触压或松开,而转换开关一般由手工操作,从而使这些行程开关、转换开关的触点在设备运行过程中便处于不同的工作状态,即触点的闭合、断开情况不同,以满足不同的控制要求,这是看图过程中的一个关键。

这些行程开关、转换开关的触点的不同工作状态单凭看电路图难以搞清楚,必须结合设备说明书、电器元件明细表,明确该行程开关、转换开关的用途,操纵行程开关的机械联动机构,触点在不同的闭合或断开状态下电路的工作状态等。

(2)采用逆读溯源法将多负载(如多电动机电路)分解为单负载(如单电动机)电路

根据主电路中控制负载的控制电器的主触点文字符号,在PLC的I/O接线图中找出控制该负载的接触器线圈的输出继电器,再在梯形图和指令语句表中找出控制该输出继电器的线圈及其相关电路,这就是控制该负载的局部电路。

在梯形图和指令语句表中,很容易找到该输出继电器的线圈电路及其得电、失电条件,但引起该线圈的得电、失电及其相关电路就不容易找到,可采用逆读溯源法去寻找:

在输出继电器线圈电路中串、并联的其他编程元件触点的闭合、断开就是该输出继电器得电、失电的条件。

由这些触点再找出它们的线圈电路及其相关电路,在这些线圈电路中还会有其他接触器、继电器的触点……

如此找下去,直到找到输入继电器(主令电器)为止。值得注意的是:当某编程元件得电吸合或失电释放后,应该把该编程元件的所有触点所带动的前、后级编程元件的作用状态全部找出,不得遗漏。

找出某编程元件在其他电路中的动合触点、动断触点,这些触点为其他编程元件的得电、失电提供条件或者为互锁、联锁提供条件,引起其他电器元件动作,驱动执行电器。

(3)将单负载电路进一步分解

控制单负载的局部电路可能仍然很复杂,还需要进一步分解,直至分解为基本单元电路。

(4)分解电路的注意事项

若电动机主轴接有速度继电器,则该电动机按速度控制原则组成停车制动电路。

若电动机主电路中接有整流器,表明该电动机采用能耗制动停车电路。

(5)集零为整,综合分析

把基本单元电路串起来,采用顺读跟踪法分析整个电路。

转发是最大的鼓励!谢谢您的支持!

小贴士

PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!

免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!

如何获取 电气热门资料?

操作指引如下!

相关问答

三菱plc自动分拣编程实例详解?

[最佳回答]3.编程实现以下是一个简单的三菱PLC自动分拣编程实例:(1)系统初始化在程序开始时,需要初始化PLC各个模块,并设置系统运行参数。(2)读取传感器信号通...

三菱plc程序手动和自动,看梯形图应该怎么看,程序里手动和...

[最佳回答]当设备打到手动档,则手动控制输入点接通,比如为三菱的X0,此时就要保证所有自动控制部分的程序全部为断开状态。在程序里面可用X0,或者手动控制的状...

plc自动程序编写思路?

[最佳回答]plc自动程序的编写思路:1、确定程序的总体结构将系统的程序按工作方式和功能分成若干部份,如:公共程序、手动程序、自动程序等部份。确定了系统程序的结构形...

plc状态机编程思路及方法?

[最佳回答]PLC状态机编程是一种基于状态转移的程序设计方法,主要思路是将程序分解成多个状态,每个状态对应着一种特定的工作模式和控制逻辑,通过状态之间的转移实现程序...

PLC编程的六个一般原则是什么?

[最佳回答]PLC编程的六个一般原则如下:模块化原则:将复杂的程序分解为多个独立的模块,每个模块只负责完成特定的功能,这样可以提高程序的可维护性和可扩展性。模块化...

欧姆龙plc自动和,手动程序怎样写?

[最佳回答]你可以把自动和手动两段程序分开,手动使用ILILC单独例开,用一个选钮实现手动自动的切换就可以了。

三菱FX系列PLC怎么编写SFC程序块,自动,急停,手动,如何开启与...

首先要在电脑安装GXDeveloper软件,并正确设置通信端口、PLC型号,才可通过数据线实现通讯。具体的PLC程序的功能地址,需要查阅相关的《PLC地址手册》...

如何编程光伏供电plc自动程序?

[最佳回答]方法1:使用主控指令(有些PLC厂家叫做互锁指令)来区分自动段还是手动段。方法2:使用跳转指令来跳转到自动段和手动段的程序上。方法3:使用调用子程序的方...

怎样用PLC编程来实现混合产品的自动分类?

[最佳回答]1.采用接近开关根据尺寸大小来判断2.根据温度传感器来判断3.根据工业相机比对来判断4.采用光电传感器来判断根据产品不同特性,特征来实现分辨!plc作为控制...

plc编程实例讲解?

[最佳回答]当涉及PLC(可编程逻辑控制器)编程实例时,以下是一个简单的案例来说明:假设有一个自动灌装系统,该系统使用PLC来控制液体的进料和排出。系统中有一个传感器...