基于PLC的自动化控制系统的配置及组态分析

http://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-1-l.jpghttp://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-2-l.jpghttp://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-3-l.jpghttp://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-4-l.jpghttp://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-5-l.jpghttp://img1.qikan.com.cn/qkimages/jszd/jszd201802/jszd20180211-6-l.jpg
  摘要:目前工业控制中的过程控制主要采用基于工控机的集散控制系统,这种自动控制系统虽然具有专业性好、控制精度高的优点,但是也存在可靠性差和性价比相对较低的问题。针对此问题,提出基于PLC的自动化控制系统。该控制系统在常规顺序控制逻辑中融入对组态控制算法调度使用,实现了梯形图内程序与控制算法的相结合,使得PLC完成了面向模拟量的过程控制功能,有效提高了控制系统的稳定性和可靠性。
  关键字:PLC; DCS;顺序控制;过程控制;PID算法
  中图分类号:TP273
  文献标识码:A
  1 引言
  PLC(可编程逻辑控制器)以其优越的性能被广泛应用于工业控制领域中。在工业控制中PLC主要针对离散控制变量进行顺序控制,而面向模拟变量的复杂回路控制主要由基于计算机技术的集散控制系统(DCS)完成[1]。但是DCS在实际部署和使用中存在难以克服的缺点,主要表现在一次性投入太高、维护费用高,硬件和软件相对封闭,且通信协议兼容性差,容易形成了信息孤岛,此外DCS的晕可靠性受制于器硬件的配置,因此在相同价格基础上DCS的稳定性大大低于PLCc2-3]。
  由于DCS在工业控制中存在的使用局限性,使得针对基于PLC的自动控制系统的研究日益深入,在PLC中集成DCS的自动控制系统成为发展趋势[4-5]。随着技术的发展,PLC已经具有PID回路控制的功能,并提供模拟量输入和输出的模块,一些PLC在PID控制模块,甚至还发展了“超前滞后”“模糊控制”等控制算法,这使得基于PLC的闭环控制和过程控制已经具备可靠的技术基础[6]。
  针对上述问题,本文提出一种PLC梯形图内嵌入组态算法的自动控制系统总体框架。该控制系统基于数字量处理的逻辑控制和模拟量的过程控制的有机结合,在传统梯形图PLC程序中融入PID逻辑控制算法,通过对回路控制测量的设计和配置,并在组态软件的支持下,最终实现基于PLC的自动控制系统,有效提升自动控制系统的可靠性和稳定性。
  2 基于PLC的控制系统的设计与配置
  2.1 总体架构
  基于顺序控制和回路控制的独立PLC自动控制系统总体框架如图1示[7-8]。
  由图1知,PID控制算法是以功能模块的形式在梯形图被调用,而实现控制算法和顺序控制有机结合的是PLC控制引擎。PLC控制引擎实现由组态软件生成的梯形图控制程序向PLC可执行代码的解释。
  2.2 梯形图系统设计与配置
  传统梯形图在图形化PLC编程平台完成设计,而回路控制算法在组态软件中完成组态配置[9-10]。随着PLC技术的发展,PLC图形化编程平台已经能够提供类似PID控制算法模块的拖放式操作,以便在梯形图中以图形元素形式完成控制算法的设计和配置[11]。具有回路控制功能的梯形图完成设计后,解释成成操作指令,然后再编译成PLC可执行的文件下载到PLC设备中进行调试和运行。
  2.3 过程控制的组态与配置
  过程控制的组态就是把根据控制系统的设计要求对可完成具体控制算法程序的功能模块进行调用实现一个完整的回路过程控制[12-14]。针对控制模块采用图形与命令相结合的方式,完成具体控制元素的输入输出端口、算法参数等具体实现细节的配置。
  过程控制组态流程包括控制模块调用,控制模块定序和控制参数的设置三步。控制模块调用是从从基本控制模块库中选择所用的控制模块。控制模块定序是通过各个控制模块输入和输出关系的设定完成控制回路的设计。控制参数设置是对各个控制模块的算法参数进行设置,这些参数包括比例系数,积分时间、微分时间、滞后时间等。完成过程控制组态后,进行程序编译,生成目标代码。过程控制的组态与配置流程如图2示[15]。
  2.4 总体设计与配置流程
  基于回路控制的梯形图首先完成回路控制的组态,随后生成梯形图,具体实现步骤如图3示[16-17]。
  3 控制算法的组态分析
  3.1 控制算法的组态识别
  基于图形化的回路控制对用户非常直观,能够容易不同控制策略以及控制回路的不同组态。但对PLC而言,显然需要采用有效读取模式,对控制策略进行组态识别。基于双堆栈的方式能够有效实现对过程控制策略的识别。
  对控制模块自输出节点依次向前逆向遍历。下面以单输出与单输入控制模块为例,说明具体识别过程。
  第一步是确定组态图中无输出属性的输出模块,建立主、从两个堆栈,。将确定的输出模块压入从堆栈。
  第二步从堆栈中弹出一个输出模块,并将该输出模块压入主堆栈中,此时主堆栈中的栈顶模块为当前操作模块。
  第三步将当前操作模块的输入端口所连接的输入模块压入从堆栈。如当前端口为输入模块,则跳转下一步,如不是输入模块,则分析其他输入端口,直到完成所有端口的分析为止。
  第四步对从堆栈中是否还有模块进行最后检查。如果从堆栈中没有模块则过程结束,此时的主堆栈就是控制模块的组态序列。如果从堆栈还有没有弹出的控制模块,则将其压入主堆栈中,并设为当前操作模块并跳转上一步继续识别。
  3.2 控制算法的数据分析
  DCS控制系統的采集数据大多存储在实时数据库中,以便相关信息系统进行数据处理操作。但是基于PLC的自动控制系统在运行的过程中,通常只操作PLC的输入输出区数据,因此采用数据库存储数据显然造成了资源的浪费。采用数据库进行数据储存难以保证PLC对系统实时性的严苛要求。
  由此本文采用数据栈这种数据结构来实现对PLC功能块数据的存储。具体数据存储操作包括以下流程:
  (1)输入数据压入数据栈。压入的数据个数与输入点数一一对应。当输入数据为空时,也要把NULL值压入对应的位置。