《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 便于移植智能算法的软PLC控制器设计
便于移植智能算法的软PLC控制器设计
2017年微型机与应用第5期
赖宝鹏,李志斌,熊杰,方毅然
上海电力学院 自动化工程学院,上海 200090
摘要: 针对科学研究人员研究的智能控制算法难以便捷地直接应用于实际控制器中这一现象,设计了一种基于嵌入式的软PLC控制器。智能控制算法可先由Simulink建模仿真后通过Simulink PLC Coder工具生成符合IEC611313标准的结构化文本语言,然后自动加载入PLC开发软件中,达到便捷地把智能算法移植到所设计的软PLC控制器中进行测试或工程化运用。测试结果表明,所设计的软PLC控制器运行稳定、可靠,控制效果与Simulink仿真结果一致。此控制器对于大力推动科研成果更快地转化为实际运用产品具有重要意义。
Abstract:
Key words :

  赖宝鹏,李志斌,熊杰,方毅然

  (上海电力学院 自动化工程学院,上海 200090)

       摘要:针对科学研究人员研究的智能控制算法难以便捷地直接应用于实际控制器中这一现象,设计了一种基于嵌入式软PLC控制器。智能控制算法可先由Simulink建模仿真后通过Simulink PLC Coder工具生成符合IEC611313标准的结构化文本语言,然后自动加载入PLC开发软件中,达到便捷地把智能算法移植到所设计的软PLC控制器中进行测试或工程化运用。测试结果表明,所设计的软PLC控制器运行稳定、可靠,控制效果与Simulink仿真结果一致。此控制器对于大力推动科研成果更快地转化为实际运用产品具有重要意义。

  关键词:嵌入式;控制器;软PLC;Simulink PLC Coder;STM32处理器

  中图分类号:TP23文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.05.001

  引用格式:赖宝鹏,李志斌,熊杰,等.便于移植智能算法的软PLC控制器设计[J].微型机与应用,2017,36(5):1-3,7.

0引言

  2015年5月,国务院印发《中国制造2025》,提出中国制造必须主攻智能制造[1]。智能制造核心在于智能控制,而智能控制主要是由智能控制器和智能控制算法组成。科学研究人员算法研发能力决定了智能算法的发展速度。然而,由于缺少实际应用的背景,很难把理论成果进行工程化验证。传统的控制器,由于自身结构特点和知识产权保护的原因,往往很难通过二次开发来验证所设计算法的可靠性。同时,算法研发人员很难有精力去自主研发一种通用的算法验证平台。因此,实际问题建模仿真后,如何将理论成果进行工程验证,这个问题一直困扰着研发人员[2]。本文设计了一种软PLC控制器,它能充分利用科研机构的研究成果以及他们拥有的强大的算法研发能力来搭建合理的数学模型,使模型的静态特性和动态特性与被控对象一致,在此模型上添加智能算法,并进行仿真调试[3]。最后把算法移植到所设计的软PLC控制器中,可便捷地把理论成果转换为实际工程应用。

1系统设计

  系统总体框架由软PLC内核系统、嵌入式系统、基于模型的算法开发系统三部分组成。嵌入式系统作为底层软、硬件平台;软PLC内核系统作为中间层负责PLC代码的解释翻译;算法开发系统作为科学研究人员的上层高级算法开发平台,它负责智能算法的生成,同时也是算法向IEC611313标准语言转换的平台[45]。

  1.1软PLC内核系统

  本设计的软PLC内核选用菲尼克斯软件提供的ProConOS eCLR。它基于.NET技术,是完全为工业控制应用而设计的内核。ProConOS eCLR提供了一个功能强大、开放、标准以及与平台无关的编程接口。PLC程序开发软件使用的是配套的MULTIPROG,该工具是专门用于设计和管理IEC61131标准的应用程序,支持多种编程语言,允许用户自定义库。在软PLC控制器中软PLC内核相当于一个解释器,用于解释MULTIPROG下装的目标代码,而不是将PLC运用程序直接编译成目标芯片的机器指令文件[6]。

  软PLC内核开发主要由固件库、共享缓存区和I/O接口开发三部分组成。固件库开发可使用现有的C++或者C#算法来搭建属于自己行业的固件库,是对基于模型算法设计的一种补充和扩展。同时固件库可以作为核心知识产权封装起来,形成差异化产品。固件库的两种开发方式如图1所示。ProConOS eCLR内核采用变址寻址方式,而嵌入式主要采用的是直接寻址方式,因此,需要采用共享缓存机制。共享缓存是用于ProConOS eCLR内核与嵌入式的其他运用程序之间的一种数据交换方式,它解决了ProConOS eCLR内核和嵌入式寻址方式不同而引起出错的问题。I/O接口开发的核心原理在于ProConOS eCLR内核并不关心外设的种类以及I/O点的数据类型,它只是作为一个ProConOS eCLR与实际物理I/O设备之间的数据中转站。系统开发工程师在I/O接口中实现的代码主要负责采集本地或者总线I/O点数据,返回给ProConOS eCLR内核,以及将ProConOS eCLR输出的数据发送到实际物理I/O设备或者现场总线I/O上。共享缓存开发和I/O驱动开发一般都是用Native方式实现,并且一般都是通过配置文件的方式来加载。

001.jpg

  1.2嵌入式系统

  本文设计的软PLC控制器采用意法半导体公司推出的工业级STM32F207ZG的32位高性能嵌入式微控制器,该微控制器基于ARM V7架构的CortexM3内核,主频高达120 MHz,内部含有128 KB的SRAM和1 024 KB的FLASH、自带3个12位24通道的ADC和2个12位DAC、12个通用16位定时器和2个通用32位定时器、1个低功耗RTC、2个CAN接口、拥有114个通用I/O口等。适用于低功耗、低成本、高性能的嵌入式控制器中。控制器硬件电路包括:控制器芯片主电路、电源电路、I/O接口电路、存储电路、通信电路等模块。

  系统由μC/OSIII作为实时操作系统,负责任务、中断、内存和其他资源的创建、删除、管理和调度。μC/OSIII内核代码是完全开源的,开发人员可以实现对系统的深度定制。本设计软PLC控制器通过IAR Embedded Workbench软件移植软PLC内核到嵌入式系统中,主要包括配置与操作系统的接口、文件系统的接口、时钟系统的接口、通信接口、板级支持包等内容。操作系统通过OSTaskCreate函数把软PLC内核创建为μC/OSIII的一个较高优先级的任务来运行;设置系统滴答时间为1 ms;设置串口通信参数波特率为115 200、数据位为8位、停止位为1位、无奇偶校验位等。同时可根据控制对象需求来选择性配置文件系统、总线、人机界面等[7]。

  1.3基于模型的算法开发系统

  本文采用一种基于Simulink建模仿真并自动代码生成的技术,它是一种强大的模块化、图形化的编程工具。其Simulink PLC Coder工具可根据Simulink模型生成独立于硬件的符合特定PLC开发平台配置的IEC611313标准的结构化文本语言[8]。它使得基于模型的设计方法能在PLC上运用。与传统的PLC开发方式相比,这种基于模型的设计方法能使开发者在开发过程中不断地完善系统模型,有效地减少了现场调试导致的事故发生[9]。

2系统实现和测试

  2.1系统实现

  2.1.1智能算法实现

  MATLAB提供了丰富的demo以备参考。为了开发方便迅速,本设计直接利用MATLAB 提供的demo中的plcdemo_simple_subsystem.slx为模板。首先在MATLAB命令行中执行命令plcdemo_simple_subsystem。把demo另存为自己的模板。打开参数配置面板(Simulation->Configuration Parameters),进入PLC Coder的选项页,Target IDE选为目标PLC开发软件。回到模型,双击进入SimpleSubsystem,根据系统的建模和计算结果搭建自己的模型。

  在电厂发电过程中,高压高温蒸汽在汽轮机内膨胀做功后,进入凝汽器冷却后凝结成水。为了使蒸汽在凝汽器内凝结成水,就必须不断地将冷却水送入凝汽器中的冷凝管内与蒸汽进行热交换[10-11]。现以此对象的循环水系统仿真实验台温度的PID控制为例来搭建Simulink模型并仿真。经实验测量计算得系统的Kp=2.5、Ki=14、Kd=3.7,传递函数为:G(s)=1s2+300s+1。循环水系统仿真实验台温度PID控制的Simulink模型结构如图2、图3所示。

002.jpg

  循环水系统仿真实验台温度控制模型的阶跃响应曲线如图4所示。

003.jpg

  Simulink PLC Coder工具只能转换离散模型,若为连续模块,还需进行离散化。选择Analysis→Control Design→Model Discretizer,调出Simulink Model Discretizer工具将所有环节离散化,转换方式可为Tustin,并修改采样时间[12]。如果出现代数环问题,则只需在代数回路上添加unit delay模块即可。右键单击已创建的子模块PIDControl,选择PLC Coder→Generate and Import Code for Subsystem[13]。若编译成功,将生成一个.xml文件及诊断对话框,同时Simulink PLC Coder工具会直接根据Configuration Parameters的设置来自动打开目标IDE,并将自动加载生成的固件库到MULTIPROG中。在MULTIPROG中把它形成用户库,方便其他工程调用。在MULTIPROG的编辑向导中选择UNTITLED便可看到Simulink建模转化生成的ST语言对应的一个名为PIDControl的功能块,可直接拖拽使用此功能块。功能块如图5所示。对于具有内部状态的顶层子系统所自动生成的功能块会在输入端自动增加一个名为ssMethodtype的输入口,它是一个特殊的输入参数,可当作功能选择端口。为便于实验验证将循环水系统仿真实验台的模型去掉输出反馈环节,将实测值SP作为输出反馈值。图5循环水系统仿真实验台温度

  

007.jpg

  2.1.2控制器硬件实现

  软PLC控制器设计主要参考IEC611312:2007标准(可编程序控制器第2部分:设备要求和测试)、IEC6100042标准(电磁兼容第2部分:静电放电抗干扰试验)、IEC6100043标准(电磁兼容第3部分:试验和测量技术——辐射、射频和电磁场的抗扰度试验)、IEC6100044标准(电磁兼容第4部分:试验和测量技术——电快速瞬变脉冲群抗扰度试验)来设计硬件。目前,软PLC控制器样机也制作完成。软PLC控制器已在实验室测试平台进行相关性能测试。基本误差满足:(1)输入信号为直流标准信号时,不超过±(0.2%F.S+1d);(2)输入信号为数字量信号时,显示正确逻辑值;(3)模拟量输出时,不超过±0.2%F.S;(4)数字量输出时,显示正确逻辑值。在高低温-20℃、25℃、60℃、80℃温度点不停机连续运行24 h未出现程序崩溃、数值异常变化的现象。同时也对数据存储、编程语言、软件平台、生产制造、系统架构、系统可靠性、硬件冗余、硬件功能模块、实时工业网络、工业网络安全等做了相应的测试。检测结果良好,符合标准的技术指标要求。

  2.2系统测试

  在已建好的循环水系统仿真实验台软件控制框架中添加PIDControl功能块,编译好后下装入已连接好设备的软PLC控制器中,得到图6所示的循环水系统实验台温度与时间的关系曲线。

  

006.jpg

  由图6可知,实际控制效果与Simulink模型仿真相似,说明算法移植成功且控制效果良好、系统稳定,实现了基于模型的算法开发与软PLC控制器两者的无缝连接。

3结论

  本文以STM32为嵌入式硬件平台、μC/OSIII为嵌入式软件平台、ProConOS eCLR软PLC作为PLC内核,设计了一种具有良好通用性、兼容性、可扩展性以及不受软硬件限制的软PLC控制器,并介绍了结合Simulink建模仿真自动生成符合IEC611313标准语言的算法生成方式。极

  大地提升了理论向实际转化的进度,为算法工程师提供了一种简便的开发平台。同时,所设计的软PLC控制器也能充分利用开放的平台面向工业发展更加深入的专用智能控制器,体现出专属化和定制化的特点与控制优势[14]。

参考文献

  [1] 周济. 智能制造——“中国制造2025”的主攻方向[J]. 中国机械工程, 2015,26(17): 2273-2284.

  [2] 孙立平, 姜建芳. Matlab代码在PLC控制系统中的实现方法研究[J]. 微计算机信息, 2012(5): 44-45,50.

  [3] 贾茜茜. 基于软PLC技术的仿真系统设计与应用[J]. 自动化与仪器仪表, 2016(2):211-213.

  [4] Zhou Qingguo, Yang Xuhui, Han Genliang, et al. An embedded control system designed based on soft PLC[M]. Springer Berlin Heidelberg, 2014:115-120.

  [5] WANG Z. The key technology research for embedded soft PLC control[C]. IEEE Workshop on Electronics, Computer and Applications, 2014:10451048.

  [6] LIANG Q, LI L. The study of soft PLC running system[J]. Procedia Engineering, 2011(15):1234-1238.

  [7] LIANG G, LI Z, LI W, et al. On an LASintegrated soft PLC system based on WorldFIP fieldbus[J]. Isa Transactions, 2012, 51(1):170180.

  [8] DEVEZA T, MARTINS J F. PLC control and Matlab/Simulink simulations: a translation approach[C]. 2009 IEEE Conference on Emerging Technologies & Factory Automation, IEEE, 2009: 1-5.

  [9] 刘贤, 梁慧敏, 李国良,等. 基于模型的设计在PLC控制系统开发中的应用[J]. 电气自动化, 2014, 36(2): 86-88.

  [10] 张鹏军. 基于主元素分析的火电厂热平衡计算应用研究[D]. 北京:北京交通大学, 2007.

  [11] 金果. 凝汽器泄漏判断与处理[C]. 中国电机工程学会电厂化学2013学术年会, 长沙,2013:155156.

  [12] 张国亮, 陈健, 徐威挺,等. Simulink应用于PLC运动控制系统初探[J]. 仪器仪表标准化与计量, 2014(2):29-32.

  [13] 石良臣. MATLAB/Simulink系统仿真超级学习手册[M]. 北京:人民邮电出版社, 2014.

  [14] 宋慧欣. 施耐德电气PLC:诠释市场趋势[J]. 自动化博览, 2015,32(6):42


此内容为AET网站原创,未经授权禁止转载。