PLC 项目式教学编程方法的研究

2021-08-20 10:28吴元凯
电子设计工程 2021年16期
关键词:状态机洗衣机调用

周 颖,沈 勇,范 菁,吴元凯

(云南民族大学云南省高校信息与通信安全灾备重点实验室,云南昆明 650500)

可编程逻辑控制器(Programmable Logic Controller,PLC)是用于自动控制的数字运算控制器,也是现代工业自动化系统的重要组成部分,被广泛应用于国家重要基础设施和各种工业控制领域[1]。

国内各大学工科专业均开设了与PLC 相关的课程,传统的PLC 课程教学采用“先理论讲解,后动手实验”的教学模式[2-3]。传统PLC 教学着重传授学生理论知识,缺乏对学生实践能力和综合运用知识能力的培养,导致学生PLC 理论与实践分离,而且老师讲授的教学内容抽象,学生难以理解,教学效果并不理想[4-9]。

针对传统教学模式的不足,文中采用了项目式教学方法,将理论教学和实践教学有机结合。以洗衣机控制系统的项目为例,采用结构化编程进行洗衣机控制系统PLC 程序的设计,达到控制3 台洗衣机的目的。同时引入有限状态机的概念,结合WINCC 组态软件,介绍了PLC 结构化编程方法,将PLC 编程化抽象为具体,便于学生理解,有利于培养学生对PLC 的综合应用能力。

1 洗衣机控制系统PLC控制原理

文中的洗衣机控制系统选用德国西门子S7-1200 系列CPU 1214C 作为控制单元,控制的对象包括电磁阀、电动机、继电器、蜂鸣器[10]。其中电动机的工作状况、工作时间,需要根据不同的程序来进行设定。洗衣机控制系统原理图如图1 所示。

图1 洗衣机控制系统原理图

电动机的正转、反转以及脱水工序皆由继电器控制,继电器与PLC 的输出端相连,以PLC 的输出信号控制继电器。脱水继电器组与电动机、电源直接相连,当洗衣机脱水时,电动机以额定转速工作[11]。洗衣机脱水时的转速与洗涤漂洗时的转速不同,电动机脱水时的转速要比洗涤时的转速大[12]。进水电磁阀和排水电磁阀通过水位检测传感器进行控制,通过按键进行手动启动、手动停止、选择调试模式、调试启动和调试停止操作,蜂鸣器用来报警。洗衣机控制系统开关量所需的输入点和输出点数各为19 个和18 个,I/O 分配表如表1 所示。

表1 系统I/O分配表

2 洗衣机控制系统工艺流程

洗衣机的工作模式包括调试模式、遥控模式、手动模式。洗衣机控制系统开始启动运行前,确保系统处于初始状态。选择洗衣机模式,按下启动按钮,进水电磁阀打开,当到达高水位时,停止进水,并开始进行正转洗涤30 s,再暂停2 s 后开始进行反转洗涤30 s,再暂停2 s 后重新开始正转洗涤,如此反复循环5 次[13]。洗涤结束后,排水电磁阀打开,开始排水,当到达低水位时,脱水电磁阀打开,开始脱水,脱水时间为30 s,30 s 后报警,预示洗衣完成,按下停止按钮,洗衣机停机。洗衣机控制系统的工艺流程图如图2 所示。

图2 工艺流程图

3 有限状态机的设计

在系统程序设计的过程中,不仅涉及到PLC 控制系统的程序现态,还涉及到它的历史状态,故将此抽象成有限状态机(Finite-State Machine,FSM),有限状态机是有限个状态以及在这些状态之间的转移和动作等行为的数学模型,由一组状态、一个初始状态、输入和根据输入及现有状态转换为下一个状态的转换函数组成[14]。现实世界中存在大量具有有限个状态的系统:通信协议系统、编译器、硬件电路系统等。有限状态机的概念就是来自于现实世界中的这些有限系统。

设计洗衣机控制系统状态转移图时,首先确定状态转移图中具体包括几个状态以及状态转换关系。洗衣机控制系统涉及的状态较多,为了便于分析程序,故将洗衣机控制系统的程序进行拆分,将状态转移图划分成主状态转移图和子状态转移图两个部分,绘制两个状态转移图。主状态转移图中包括6个状态,分别是0 状态停止、1 状态进水、2 状态运行、3 状态排水、4 状态脱水、5 状态报警,如图3(a)所示;子状态转移图中包括6 个状态,分别是9 状态结束、10 状态正洗、11 状态正暂、12 状态反洗、13 状态反暂、14 状态空闲,如图3(b)所示。洗衣机控制系统状态转移图如图3 所示。

图3 洗衣机控制系统状态转移图

4 洗衣机控制系统结构化编程

传统的小型系统可在程序循环OB中进行线性化编程,但这种编程方式仅适用于简单程序。文中使用TIA Portal V15.1 软件对洗衣机控制系统进行结构化程序设计,系统结构由程序组织块、函数块、函数、数据块4 个部分组成。将系统分割成与工艺流程相对应或可重复使用的更小的子任务,这些子任务以独立的块来表示,更易于系统的处理和管理。通过结构化更容易进行复杂程序的编程,通过更改参数可以反复使用,使得程序结构更简单,更改程序更容易,简化了调试工作。结构化程序示意图如图4所示。

图4 结构化程序示意图

建立用户自定义数据类型“washing machine interface”,在用户自定义数据类型中定义3 台洗衣机的输入接口、输出接口,如图5 所示。

图5 用户自定义数据类型

数据块(Data Block,DB)用于存储用户程序数据及程序的中间变量数据,数据块与临时数据不同,当数据块工作结束时,数据块中的数据会被保留下来。建立“equipment”DB 块,添加3 台洗衣机“M1、M2、M3”,数据类型为“washing machine interface”,如图6 所示。

图6 “equipment”DB块

函数块(Function Block,FB)是含有DB 块的FC函数,具有“存储器”功能。它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值仍然有效。函数块(FB)易于移植,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景DB,同一个FB 块就可以实现控制,减少了重复工作,提高了工作效率[15]。文中通过建立“washing machine advanced”、“washing process advanced”、“master control”3 个FB 函数块,分别在各自FB 函数块的局部变量声明表中进行定义,包括输入接口、输出接口、输入/输出接口以及静态变量。

洗衣机控制系统函数块里涉及的定时器、计数器皆为多重背景数据块,可以把某一个FB 块作为一个FB 类型的变量,方便多重数据块多次、重复地按FB 接口参数建立FB 数据区,即多重数据块包含多个背景数据块的数据[16],使得3台洗衣机工作时,彼此之间不会发生冲突。系统FB块如图7所示。

图7 洗衣机控制系统的FB块

函数(Function,FC)是不带存储器的代码块。由于没有可以存储块参数值的数据存储器,调用函数时,必须给所有形参分配实参,可以使用全局数据永久性存储数据。常常在FC 函数中写一些需要重复执行的代码,可以在程序的不同地方调用,可以被OB 块、FC 块、FB 块调用,也可以调用其他FB 块、FC块。使用FC 可以简化需要重复执行的任务,提高代码的运行效率,不占用额外的存储资源。在洗衣机控制系统中建立"enter"、"out"两个FC 块,将信号传送到每一台设备对应的接口上。

组织块(Organization Block,OB)是CPU 操作系统和用户程序之间的接口,由操作系统调用,当建立一个程序时,系统会自动建立一个Main[OB1]程序,负责调用其他模块[17]。如果程序简单,只需要OB 块就可以实现。该程序会在PLC 的每个扫描周期被调用,可以在CPU 上启动时调用,可以循环调用,也可以在PLC 发生错误时调用。Main[OB1]程序类似于C语言里面的Main 函数,即为函数的入口点,可以在Main 程序里面调用各种函数块[18]。

在"master control" FB 块中进行调用"washing machine advanced"FB 块,实现对3 台洗衣机的控制,在"washing machine advanced" FB 块中进行调用"washing process advanced" FB 块,其中,每个被调用的FB 块皆为多重背景数据块。在Main[OB1]中调用"enter"FC 块、"master control"FB 块、"out"FC 块。

5 WINCC画面

在WINCC 组态软件的项目视图中新建一个洗衣机控制系统的画面。画面中能直观地看到洗衣机的整个工艺流程。主画面进行洗衣机台号的选择,子画面为每一台洗衣机的画面,子画面与主画面可以进行切换,如图8 所示。

图8 洗衣机控制系统仿真画面图

6 结束语

通过教学实践证明,与传统的PLC 教学方法相比,文中采取的项目式教学PLC 编程方法从实际应用出发,使得编程方法通俗易懂,逐步引导学生进行控制系统的设计,既培养了学生的专业综合素质,又能够让学生在今后的PLC 技术应用领域有一定的工程设计能力。

猜你喜欢
状态机洗衣机调用
核电项目物项调用管理的应用研究
基于有限状态机的交会对接飞行任务规划方法
洗衣机里不能藏
全自动洗衣机
LabWindows/CVI下基于ActiveX技术的Excel调用
糊涂的洗衣机
使用洗衣机
基于系统调用的恶意软件检测技术研究
双口RAM读写正确性自动测试的有限状态机控制器设计方法
利用RFC技术实现SAP系统接口通信