PLC编程教学中程序架构设计技巧

(整期优先)网络出版时间:2023-01-07
/ 2

PLC编程教学中程序架构设计技巧

王春

襄阳技师学院,湖北襄阳  441021

【摘要】本文介绍了PLC编程教学中好的程序架构设计原则,详细阐述了构建三层次程序架构的方法步骤及优势。

【关键词】PLC  程序架构   三层级编程

PLC控制系统是由PLC作为控制器来构成的电气控制系统。PLC的控制系统设计就是设计根据控制对象控制要求的控制方案,包括硬件设计和软件设计。在软件设计中,初学者编程完成功能可能不难,但写出优质高效的程序并不容易,这里面PLC程序构架的设计至关重要。

一、设计原则

在编程的过程中,对于同一个被控对象,同一套控制逻辑,不同的人编写的程序虽然都实现了相同的功能,但是程序本身却并不一样。哪一个程序才是比较好的,怎样的架构才是比较优化的,对于程序优劣的评判,可以遵循以下几个原则。

1、保证安全。

安全永远是第一重要的。即使系统结构上有独立的安全机制,程序本身也必须保证人员、机器和环境的安全。

2、实现功能。

程序在保证安全的前提下,需要实现预期设计的功能。

3、较少的漏洞,无致命漏洞。

程序不仅需要在各部件都正常情况下完成相应的功能,同时当某些部件出现问题时,依然能够保证设备处于安全状态并产生相应报警。比如某个限位开关出现异常时,程序依然可以控制某个移动部件安全停车。否则,该移动部件冲出限位,造成电动机过流或其他事故,这都说明程序中存在漏洞。

4、易于修改、调试和升级。

任何一个控制系统的完成都是这样的流程:规划相应的功能,编程设计、调试并实现该功能,规划修改功能或添加新的功能,继续编程、调试,继续新一轮修改和规划,如此往复多次,最终才会完成。所以程序本身在设计上就需要易于修改、调试和升级。

5、易于阅读。

一方面,工程师所编写的程序应该易于读懂和上手。一个控制系统往往由一个团队完成,团队中每个人都能迅速读懂彼此的程序,才能让整个项目顺畅高效地运行;另一方面,程序中的信息便于检索和查找。比如程序中的某个接近开关的信号,可以方便地通过程序中的变量名、注释与图表与图纸与实际元件相对应。

二、设计建议。

1、系统的设计。

为了保证整个控制系统的安全性,控制系统应按照SiL3级标准设计,安全机制需与主程序相对独立。可以使用分布式安全模块和安全型PLC,并在相对独立的安全程序中使用标准程序块,同时保证所有执行器件的安全使能(如变频器的STF信号)被安全程序和安全模块直接控制。也可以在电气系统中使用经过SIL3 级认证的安全器件(如安全继电器等),保证安全信号(如急停信号)直接与安全器件连接,同时保证安全器件直接控制所有执行器件的安全使能端。

2、程序的编辑。

程序只有通过合理的架构及各层面上优化的编程思路,才能保证功能的实现,同时少漏洞、易修改、易阅读。我们可以采用输入、状态、输出三层级的编程与分析方法。所谓三层级就是输入、状态、输出这三组变量,方法的精髓是在编程和分析程序的时候,始终将程序变量分为输入、状态、输出三组,其中永恒的关系是输入决定状态,状态决定输出。核心在于对状态的定义,然后勾连输入与状态的关系以及状态与输出的关系。

(1)构建控制程序。

构建控制程序大体分为以下三个步骤。第一步:先根据实际的控制要求和基本经验,定义几类状态变量,这几类状态变量的定义就决定了整个控制程序的结构。第二步:根据“输入决定状态”的原则,用输入量定义这些状态量。可以是直接定义的,也可以是间接定义的,总之是找到输入与状态之间的关系。第三步:根据“状态决定输出”的原则,用状态量决定输出量。经过这三步后,整个控制逻辑(程序)就很自然地编辑出来了。

步序控制是PLC程序中极常见的一类控制程序。编辑这类程序,如果方法不当可能会比较麻烦(尤其是步序复杂的时候)。通常对于步序控制,首先对控制步骤进行划分,针对每个步骤定义-类状态变量, 我们称为“步骤状态”。同时,根据各部分活动部件的位置定义一类状态变量, 我们称为“位置状态"。通过输入量决定了“系统状态”和“位置状态”,“系统状态”和“位置状态”决定了“步骤状态”,“步骤状态”决定了输出量。整个系统按照这个变量流推下来,可以分为四个层次,通常程序的层次就是指其在变量流的过程中(从输入输出)所经历的几类变量的传递关系。

(2)程序多层次的优势

1)便于使用惯用的方法编辑程序。

在编制其核心控制逻辑时,采用“系统状态”和“位置状态”决定“步骤状态”的层次结构,使得整个编程过程有章可循,给程序的设计、调试和修改带来方便。

2)使程序更加安全、可靠、极大地避免了出现与安全有关的漏洞。

在控制系统中,绝对的安全信号(急停、光栅、安全门等)由安全程序或其他独立的安全机构处理,但是有一些与安全相关的信号,其级别无须使用安全程序或安全机构处理,需要在控制程序中处理,并可能会参与一些控制逻辑。 如果程序有很好的层次划分,可以将这部分安全逻辑编辑在底层的程序块中。这样即使上层程序出现问题(例如发出了错误的运行信号),底层的安全逻,辑依然可以直接对IO点进行控制,有效地屏蔽了上层的错误信息。

3)使程序的功能划分更加清晰合理,编程和调试时可以更加专注。

程序进行层次划分后,上层程序仅与控制逻辑有关,下层程序仅与安全逻辑有关。在编辑上层程序时,只需考虑控制逻辑忽略安全逻辑。而在编写底层程序时,只需专注于安全逻辑而无须考虑控制逻辑。

4)便于程序数据和变量的规范及整理。

程序层次化之后,可以方便地统计某个层次上的变量使用状况,便于整体或部分程序的移植和集成。

在编写实际控制程序时,根据控制对象的复杂程度可以多分一些层次, 以及多划分一些控制段落。只要保证安全相关的逻辑至少单独一层,并保证越与安全有关的控制越贴近底层为原则,同时在宏观(结构)和微观(控制逻辑)上保持“输入”、“状态”、“输出”三层级的架构,就更容易编写出高效而又严格的程序了。

参考文献:

[1] 张硕. TIA博途软件与S7-1200/1500 PLC应用详解 [M]. 电子工业出版社2017

[2] 刘长青. S7-1500 PLC项目设计与实践 [M]. 机械工业出版社2020