刘兴松 杨执中 边党伟 秦幸妮 李红丽
(西北机电工程研究所,陕西 咸阳 712099)
科学技术的发展对电气控制系统的控制精度、可靠性和快速性提出了更高的要求。而可编程控制器(Programmable Logic Controller,PLC)因具有可靠性高、体积小、功耗低及抗干扰能力强等优点,在电气控制系统中得到了广泛的应用[1]。
近年来,由于传统硬件PLC无通信接口,调试不方便,以传统硬件PLC为核心设计的电气控制器将增加外围电路的复杂性、结构膨大、控制方式复杂。随着开放式控制系统的发展需求,传统的硬件PLC表现出兼容性差、抗干扰能力差、不易更改、扩展能力差、可维护性差及成本较高等缺点,这些问题成为制约其发展的主要因素。因此,软PLC作为一项新兴技术,它不仅具有传统PLC所具有的开关量控制、模拟量控制、数学运算及数值处理等功能,而且还朝网络化、智能化方向发展,远超出了传统PLC涵盖的范围[2]。计算机技术的快速发展及工业自动化领域的IEC61131国际标准的推出和实施,极大地促进了软PLC技术的出现和发展。
因此,选用具有高可靠性、抗干扰能力强、易在线更改、易调试操作、易维护,具有通信接口的新型软PLC为核心设计电气控制器将成为发展趋势。笔者介绍了以软PLC为核心的电气控制器的构成、软硬件设计、特点和应用。
SPN-MH18型PLC是针对电气控制系统设计的紧凑的、多功能的新型软PLC,具有可靠性高、抗干扰能力强、易操作及编程方式灵活等特点,符合IEC61131-3标准的要求[3]。笔者选择该软PLC作为电气控制器核心控制器件,可以采用梯形图语言、图形语言和ST文本高级语言3种PLC编程语言编程,在一个项目里可以根据实际需要采用不同的语言编写程序,且不影响整个程序的编译和执行。
该软PLC能够满足电气系统的环境适应性要求:工作温度为-50~80℃;防护等级为IP67,可以耐受严寒、高温、振动、湿气及冲击等恶劣环境,模块安装方便而不需要另外的保护措施。开关网络以硬件方式实现I/O端口的灵活配置,利用编辑环境可以模拟系统实现,同时可以实现在线实时动态调试。因此,该软PLC非常满足各种恶劣环境下电气控制系统的控制器的要求。且该软PLC具有丰富的片上资源,内含128KByte的数据存储空间和256KByte的程序存储空间,为实现复杂的控制算法提供了保障;具有丰富的I/O资源,可满足系统对外围信号的采集,具有符合CAN2.0规范的总线接口可以实现同其他单体之间的信息传递,几乎不需要系统扩展即可满足控制系统对硬件资源的需求。因而,采用该软PLC为控制核心设计的控制器,不仅可减少元器件的种类和数量,简化设计,而且可提高系统的可靠性。
电气控制器主要由软PLC和信号转换电路组成。电气控制器硬件结构如图1所示。
图1 电气控制器结构
软PLC的主要功能是通过输入输出模块接收信号转换电路的输入信号,以满足软PLC的控制运算要求;同时输出控制信号至信号转换电路,以驱动各种负载。同时利用CAN通信模块与上位机进行通信,实现信息的传递。
信号转换电路主要负责接收各种负载信号,把采集到的信号转换信号类型,送给软PLC,以满足软PLC的功能需求。信号转换电路的基本原理如图2所示。
图2 信号转换电路基本原理
电气控制器的软件开发平台为CoDeSys。该开发平台符合IEC61131-3标准,具有稳定的特性和丰富完善的底层函数库。该软PLC拥有CoDeSys编程接口,实时操作系统(RTS)和底层引导程序(BootLoader)固化在处理器内部闪存中,CoDeSys应用层固化在外部闪存中,PLC运行时应用程序启动部分被安装在外部闪存中,应用程序可以通过CoDeSys或者MOBA CAN2Flash专用工具下装到控制器中,RTS定时调用应用程序。软PLC在工作时按照如图3所示的顺序执行。
图3 软PLC的执行顺序
电气控制器软件采用模块化设计,主要功能是完成系统初始化,通过中断方式接收系统外部信号,采集控制信息进行运算并输出控制量。初始化部分完成对硬件的基本配置,包括I/O口的配置、CAN通信模块的初始化(包括内存地址的分配、CAN总线端口的初始化以及波特率设置和滤波方式参数的设置)以及PLC程序循环时间的设置等。
电气控制器的控制程序采用软PLC中常用的梯形图语言、指令语言和结构文本语言相结合的方式。软PLC软件对系统状态连续巡查,对来自外部的信号进行检测,保证系统始终在控制范围内,发现故障时系统自动报警。在系统工作时,将系统反馈信号与给定信号比较,对差值进行综合处理,处理后的值作为输出值送入下一环节,用于对负载的控制[2]。控制系统的软件流程如图4所示。
图4 软件流程
电气控制系统以控制器为节点,利用控制器的CAN通信模块,通过CAN总线定时向上位机传送控制系统的工作状态信息,同时接收上位机传送给控制系统的指令信息,采用标准CAN2.0通信方式。在发送条件成立时,控制器周期性地通过CAN_IITX功能块发送数据信息,数据信息中包含数据帧ID号、帧格式、数据长度及数据等信息。当控制器需要接收数据时根据数据帧的ID号决定是否为所需信息,若是则通过CAN_II_BUFF_INIT功能块把数据接收到缓存中,与内存中的数据比较,若数据有变化,则通过CAN_II_GET_MSG功能模块取所需的数据信息,对系统进行相应的控制。
利用控制器集成CAN通信模块中的功能模块函数进行通信的方式简单明了,方便开发人员开发调试。
以软PLC为核心的控制器具备通信功能、信息存储功能,采用多种编程方式,程序简洁;PLC控制器的内部硬件电路与外部接口信号完全隔离,软件可以设置不同的参数对各种信号进行抗干扰平滑处理,增强了整个控制系统的抗干扰能力。
该电气控制器的程序执行周期为10ms,集成的CAN通信模块作为通信工具,实时向上位机提供系统状态。按笔者提出的方法设计的电气控制器目前已经成功应用于某电气控制系统中。
目前,随着PLC的扩展能力和通信能力的发展,将以高度集成化为一体的软PLC为发展前景,且以软PLC为核心的控制器将逐步发展成为一类解决自动化问题的有效而便捷的方式。
笔者采用基于IEC61131-3标准的SPN-MH18 型软PLC为核心的电气控制器,简化了外围接口设计,降低了成本,提高了工作可靠性;而且其集成化编程开发环境遵循IEC标准,方便用户的编程和开发,有利于用户程序在不同的PLC的移植和转换。