基于Beremiz的在线实训平台开发
2020-12-28周国栋
摘 要:PLC的虚拟化已成为智能制造发展的必然趋势,分析了PLC虚拟化的技术架构。介绍了虚拟PLC软件Beremiz开源平台的技术标准,及其主要功能和组成模块,进一步探讨了其运行原理以及应用现状。通过实例介绍了虚拟PLC的编程和仿真过程以及开发注意事项,并给出了开发过程详细的参数设置和功能配置。最后探讨了基于SVG格式的HMI图形界面开发流程,为PLC的学习和虚拟PLC的开发提供了技术方案。
关键词:虚拟PLC 自动控制 虚拟实训 在线课程
中图分类号:G712 文献标识码:A文章编号:1672-3791(2020)10(c)-0011-03
Abstract: The virtualization of PLC has become an inevitable trend in the development of intelligent manufacturing. The technical framework of PLC virtualization is analyzed. This paper introduces the technical standards, main functions and components of the open source platform of the virtual PLC software Beremiz, and further discusses its operation principle and application status. This paper introduces the programming and simulation process of Virtual PLC, and points for attention in development, and gives the detailed parameter setting and function configuration in the development process. Finally, the development process of HMI graphic interface based on SVG format is discussed, which provides a technical scheme for PLC learning and virtual PLC development.
Key Words: Virtual PLC; Automatic control; Virtual training; Online course
隨着“中国制造2025”的持续推进,传统封闭的工业控制系统,其通过特定硬件实现的功能在工业互联网或“工业4.0”时代都将被软件所取代。
所谓PLC的虚拟化,是指通过软件模拟的方式,将PLC的硬件和逻辑抽象出来,利用软件虚拟网络的思路,通过特定应用程序来实现PLC执行程序逻辑的开发和管理,从而完成应用程序虚拟硬件PLC的功能。也就是将传统PLC的程序控制、数据存储和IO模块分离,利用虚拟应用程序来实现逻辑控制部分[1]。
从技术角度来讲,就是实现PLC系统的“硬件重构和软件模拟”。硬件重构和软件模拟是基于虚拟化技术之上的更高级、更抽象的数据和资源自动化。
基于PLC虚拟化的产品和服务形态是新时代的工业互联网或工业4.0的发展需要,其标准化、模块化的优势更加显著,能广泛利用人工智能作为控制系统核心大脑,大幅度降低客户的进入门槛。而基础技术架构层面的稳定性、灵活性、便捷性又带来了更好的客户体验。再加上云计算、大数据技术所带来的规模效应,将使基于PLC虚拟化的物联网、工业互联网能够成为更大的一种商业模式。
1 Beremiz开源平台
Beremiz是一款开源软件,它的出现给PLC的学习与开发者带来了福音。其电气规范符合国际电工委员会IEC61131标准以及可编程控制器通用PLCopen标准。Beremiz是一个多功能的集成开发环境,其内部组件包含PLCOpen编辑器和MatPLCIEC编译器[2-3]。
PLCOpen编辑器组件是使用Python语言开发的,它提供了类似西门子、三菱等商业化软件的图形化编程界面,带给开发者良好的用户体验。并且提供5种开发语言供开发者自由选择和编辑,这5种语言都是符合IEC61131-3标准的控制程序,完全支持PLC程序的在线(Online)和离线(Offline)调试。编写完成的程序采用符合PLCOpen规范的XML格式文件进行存档;同时,Beremiz也可以动态载入符合PLCOpen规范的XML程序文件,利用这个功能,可实现用户程序在符合PLCOpen标准的不同编程平台之间进行无障碍移植,以实现不同软件平台的资源交换,提高程序的可重复利用率。
完成程序文件的编辑后,MatPLCIEC编译器开始工作,其作用是将上述保存为XML格式的PLC程序翻译为基于C语言格式的代码,最后通过交叉编译器完成远程编译,便得到可在嵌入式系统中运行的C语言目标代码。编译完成的最终代码,包含了PLC程序里全部的POU变量和参数,用户也可以利用嵌套的C语言代码程序实时访问POU中的参数和变量,从而完全实现在线监控和调试功能。
近年来,为响应国家推荐智能制造战略发展,虚拟PLC及其网络实训平台成为很多高校的科研热点[3-4]。
2 虚拟PLC控制系统开发流程
进入Beremiz系统后新建一个项目,会自动生成一个资源文件,再新建一个梯形图程序。梯形图程序文档的上方列表为变量,下方为程序,变量列表中的类型有输入、输出、外部、Local等。其中,输入和输出的意思是当此梯形图作为别的程序的一个模块时,定义的输入和输出端口。外部是用来定义和HMI接口用的(Wxglade类型、svgui类型不需要),且一定要和HMI接口中定义的一样,如果只在该程序内用,用Local就可以了。
梯形图编辑时,会用到工具栏中常见的几个工具。其中,手型为幅面移动工具;CMT为注释工具;导轨工具为梯形图左右母線;线圈为输出;触点为输入;变量工具比较灵活,一般作为模块的参数设置端,可以设定为某个变量,也可以自己写常量或者字符串表达式,数字常量直接写,时间常量格式为T#30ms,字符串常量需要加单引号。
梯形图设置好了,还不能运行,需要设置资源文件。资源文件里有3个设置:变量、任务和实例,主要设置好任务和实例就可以了。在任务栏里单击增加,每添加一行就添加一个任务“mainprg”,Trigging设置为“Cyclic”,即循环执行,时间设置为10ms。还可以再添加一个任务guiprg,意思是图形显示任务,Trigging设置为“Cyclic”,时间可以设置长一点,比如1s。
最后设置实例,添加两个实例,一个为主程序执行实例,一个为HMI执行实例。当然,也可以只执行一个实例,将HMI和主程序放一起。以上3个设置列表中,绝对不能有空行,如果有,编译就会出错。
最后进入运行阶段,点击连接按钮,连接成功后,任务栏会出现成功提示。接下来,点击编译按钮,完成编译。接下来点击传输按钮,将编译后的程序传到PLC,传输完成后,就可以点击人形按钮,开始执行。
3 基于SVG格式的HMI图形界面开发
如果不需要图形界面,以上操作就够了,如果要用到HMI图形界面,则需要进一步开发工作。
Beremiz图形界面的原理是这样的:需要一个svg格式的图形文件,文件里设置好了不同图形的ID名称,通过这些ID名称和梯形图的名称关联,从而实现动画效果。比如SVGUI组里的Led指令块,有3个参数可以设置,即back-id、sele-id、state-in,当state_in为1时,显示sele_id对应的图形,反之,显示back_id对应的图形。下图,当T1为1时,显示红色RED图片,为0时,显示黑色BLACK图片。这里的RED和BLACK必须和svg文件中的图形ID完全一致。
举一个例子来说明svg文件的创建,比如使用inkscape画图软件。打开inkscape软件后,画一个红色圆状图形,再选择编辑菜单,选择XML编辑器,出现XML代码编辑框后,将ID号改为RED;同样画一个红色圆状图形,将ID号改为BLACK。按照这个方法继续将其他图形的设置做完。并保存为svg格式文件。
导入svg文件,在beremiz项目中新建svgui文件,双击进入界面,选择import svg按钮,找到刚才的svg文件,导入。
再次执行程序,在浏览器中,输入http://localhost:8009/,便可以看到运行界面。
4 结语
PLC正在朝着开放式、多功能的方向发展,软PLC代表着这一趋势。西门子、倍福、3S、菲尼克斯等大公司都推出了自己的软PLC产品,但是其底层核心代码不够开放、通信模块不便宜、不利于初学者的深入学习和开发。Beremiz就是一个完全开源的软PLC,它包括了开发环境和运行系统。在开发环境中,用户可以灵活地使用梯形图、ST、C、Python等语言进行编程,并且Beremiz自带上百个常用的函数。
Beremiz大部分都是用Python这种解释性语言编写而成,并使用了大量的第三方库,与底层硬件通信的部分用C语言实现。Beremiz的IDE部分可以在Linux和Windows下运行,而运行系统既可以在Linux和Windows下运行,也可以在无操作系统的嵌入式设备上运行。
按照该文提到的方法,便可以将调试好的程序下载到运行系统中自动执行。目前,Beremiz已经集成了Modbus RTU/TCP、CANopen、EtherCAT等常用的总线通信协议,可以控制各类现场设备。借助Beremiz,我们完全可以搭建自己的PLC控制系统,是一种强大的、低成本的学习和开发工具。
参考文献
[1] Asier Llano,Itziar Angulo,David de la Vega,et al.Virtual PLC Lab Enabled Physical Layer Improvement Proposals for PRIME and G3-PLC Standards[J]. Applied Sciences,2020,10(5):1777.
[2] 王雨晨.基于μC/OS-Ⅱ的嵌入式软PLC系统的设计实现[D].西南交通大学,2016.
[3] 李芃.基于Beremiz的逻辑控制二次开发[J].技术与市场,2016,23(12):98.
[4] 周国栋.融入工匠精神培养的工科专业人才培养改革[J].科技资讯,2019,17(12):144-145.
[5] 周国栋.自适应学习对高职课程改革的思考[J].科技资讯,2019,17(13):102-103.
[6] 林雪冬,孙建.基于虚拟仿真技术的电气控制与PLC教学改革实践研究[J].科技创新导报,2019,16(17):236-238.
[7] 顾巍.基于虚拟仪器的PLC仿真验证系统开发[J].现代制造技术与装备,2019(3):54-55.
[8] 李继芳,许英杰,鲍平,等.虚拟仿真被控对象在PLC实践教学中的应用研究[J].实验技术与管理,2017,34(6):114-118.