树莓派DIY一个边缘计算PLC是如何实现的?
偶然机会,我了解到树莓派也能和咱工业上的PLC撩上关系,而且还有一些成熟方案,本编挺有兴趣,觉得可以科普一下。很巧,上月与彭瑜老师沟通文稿《边缘可编程控制器是OT-IT融合的利器 》的过程中,彭教授推荐我和包锐先生微信认识(实际上早些年在KW活动上,我们就有过沟通),于是便有了今天这个系列文章。在从今天开始,我们将陆续发布三篇文章,分别从背景和硬件、系统软件以及控制软件几方面来作阐述分享,希望对大家开拓思路和实际项目有所帮助。
为啥要用“树莓派”?
Raspberry Pi(中文名为“树莓派”)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑。树莓派基于开放式Linux系统,可以自由进行C/C++、Python、Javascript等等编程语言的开发,为众多编程爱好者提供了绝佳的学习测试平台。借助于开放式的软硬件资源,让我们快速实现IEC61131-3标准的边缘计算PLC产品成为了可能。
什么是边缘计算PLC?
正式介绍实现树莓派边缘计算PLC之前首先我们还是需要看看边缘计算PLC的概念提出的背景。在工业4.0时代,传统的控制技术OT(Operation Technology)与信息技术IT(Information Technology)的边界越来越模糊 ,目前在工业自动化领域如果需要将传统PLC控制器与IT系统进行结合,大量使用网关产品,在目前阶段也许这是无奈之举。
但是系统架构的复杂化大大增加了工业数据的延时,降低了大数据的采集效率,从而制约了未来的工业大数据分析的精准性。同时所有的工业原始数据将由云平台服务器进行收集以及分析,随着工厂应用越来越复杂,云平台的算力限制以及数据库的臃肿不堪都将使的未来工业智能面临极大的挑战。
因此,我们需要尽可能简化工业4.0时代的系统设计,需要一种新型的PLC产品能够将OT与IT技术相融合,既能高速处理工业现场OT数据,同时能够承担与IT系统的开放式交互,并且具有一定的运算能力可以对大量的工业现场OT数据进行预处理 ,仅仅交付云平台需要的数据,而不是所有的数据处理功能都在云平台上完成,这就是我们理想中的边缘计算PLC。
为了实现这一目标,除了强大的数据处理能力,大容量的存储器等等硬件支持以外,在软件上需要同时支持开放式OT与IT平台,例如:IEC61131-3编程、PLCopen MC运动控制、EtherCAT、CANopen、Modbus等等传统OT技术,开放式物联网编程平台Node-RED、本地嵌入式数据库、OPC-UA、MQTT等等IT技术 。
而树莓派作为今天的主角是一个非常不错的硬件平台,同时基于x86架构的PC Based解决方案则会为我们开启另外一扇窗,本系列文章中,我们将聚焦分析树莓派实现边缘计算PLC的关键技术点。
树莓派硬件用于工业控制可能会有啥问题?
稳定可靠的硬件是工业控制器的基础,即使有强大的开源社区软硬件资源的支持,但是由于标准的树莓派(包括最新的树莓派3B/3B+/4B)产品硬件不是面对工业级的应用而设计,仅仅适用于实验、学习与测试,而不适合于在环境较复杂以及对可靠性要求较高的工业现场进行使用。面对工业级产品应用,树莓派官方社区发布了最新的树莓派3B+ Compute Module核心板(后面统一简称树莓派CM核心板),通过DDR2 SODIMM接口连接扩展板信号,可以用于工业级控制器产品设计:
这里我们也为大家初步整理了下树莓派3B+ Compute Module核心板的相关技术参数:
处理器 :Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.2GHz
RAM存储器 :1GB LPDDR2 SDRAM
Flash存储器 :8GB/16GB/32GB eMMC Flash
工作温度范围 :-25℃ - 80℃
硬件认证 :
Electromagnetic Compatibility Directive (EMC) 2014/30/EU
Restriction of Hazardous Substances (RoHS) Directive 2011/65/EU
维护截至日期 :2026年1月
从整体硬件规格来看,树莓派CM核心板在硬件设计上保持比较高的规格,处理器性能较高,存储器空间非常大,成本较低,符合工业级的温度以及硬件认证要求,并且其硬件设计原理图完全都公开,因此基于树莓派CM核心板实现的PLC产品可以有极高的运算性能与超大的存储器空间。
但是经过全面分析,我们认为树莓派CM核心板处理器面向工业控制应用时,其外设接口上依然偏少, 比如实现工业控制器的RS232/RS485/RS422接口的UART外设只有2个,没有CAN总线接口,以太网必须通过USB接口的芯片扩展出,大大限制网络交互实时性,对于一些速度要求较快的现场总线将会是较大的挑战:如EtherCAT,主要受限于该模块内部的USB转以太网接口芯片的带宽以及USB芯片处理以太网报文的实时性。
当然我们需要给与基于树莓派CM核心板开发的工业控制器产品一个合适的定位,充分发挥出其硬件特点。通常传统工业控制器使用的处理器主频较低,存储器空间非常有限,因此对于树莓派CM工业控制器来说,就是应该发挥出其高性能运算以及大存储容量的特点,原来传统工业控制需要上到云端进行的运算以及数据存储,可以根据需要下放到树莓派CM工业控制器上实现,这就是我们在前面介绍的边缘计算PLC的概念, 同时其还可以通过工业现场总线以及通讯协议与其他工业控制器或者传感器进行通讯,如:Modbus、CANopen、EtherCAT、OPC-UA等等。
关于硬件部分,最后需要特别说明的一点:树莓派CM核心板处理器发热较严重,设计需要做好散热工作,同样其功耗较高,并不适合一些低功耗或者对控制器发热量有要求的应用场景。
欢迎大家转发评论
基于CODESYS打造树莓派工业控制器(2)——安装CODESYS运行时
该系列教程目的是使用CODESYS把树莓派打造成一台工业控制器,上一篇文章已经介绍了怎样把树莓派开机并启动SSH连接,今天这篇文章来介绍下怎样在树莓派上安装CODESYS运行时(Runtime)。
CODESYS运行时(Runtime)是一套软件系统,它能把当前操作系统改造成一台工业控制器,因此也被称为软PLC。安装树莓派CODESYS运行时需要准备如下条件:
CODESYS集成开发环境。我使用的是CODESYS V3.5 SP17(64bit),可以去CODESYS官网下载;CODESYS树莓派安装包:CODESYS Control for Raspberry Pi SL(树莓派单核),可以去CODESYS商城下载或在【方正智芯】公众号底部 回复口令"树莓派包";说明:CODESYS树莓派安装包有单核和多核两种,都需要授权。未授权版可以运行两个小时,之后需要重启。CODESYS运行时会在树莓派每次重启后自动运行。
接下来介绍如何安装CODESYS树莓派软件包。
首先启动CODESYS集成开发环境——CODESYS V3.5,单击【工具】-【包管理器】,在弹出的对话框中单击【安装】,浏览定位到你下载的树莓派安装包(CODESYS Control for Raspberry Pi SL),如下图所示:
接下来就是一路单击【Next】,很快你会发现出现下面一个对话框:
表面看安装结束了,其实并没有,它要求关闭CODESYS开发环境才能继续。此时,你需要单击【Finish】按钮,然后关闭CODESYS V3.5,会发现出现新的安装界面,如下图所示:
等待它安装完成,然后重新启动CODESYS V3.5。你会发现在【工具】菜单栏下多了一个【Update Raspberry Pi】菜单。单击它,会在左侧出现一个设备控制窗口,如下图所示:
在Username和Password处输入你的树莓派的用户名和密码,IP地址处输入树莓派的静态IP地址,单击【CODESYS Runtime Package】下面的【Install】按钮,开始安装CODESYS运行时。安装过程很快,完成后,可以单击【System Info】按钮看到相关的信息。
控制窗口的下面有【Runtime】启动和停止按钮,默认情况下,安装完成运行时就启动了,你可以去控制其停止。单击【Configure】按钮可以配置运行时的模式:标准模式还是多核模式,目前我这里选择是标准模式。
接下来我们测试一下。
在CODESYS V3.5上创建一个空的工程,添加设备【CODESYS Control for Raspberry Pi SL】,扫描网络,找到树莓派,如下图所示:
单击【确定】按钮,可以看到设备处于激活状态,如下图所示:
单击【登录】菜单,设备可以成功在线,说明树莓派CODESYS运行时已经安装成功并运行了,如下图所示:
好了,到目前为止我们已经成功地将树莓派改造成一台控制器了,后续可以编写符合IEC 61131-3的PLC程序,体验CODESYS的编程乐趣了。现在我的树莓派已经在线接近两个小时,没有出现掉线情况,还是很稳定的。
推荐下我的专栏:
相关问答
树莓派与plc的区别?
树莓派(RaspberryPi)和PLC(ProgrammableLogicController)是两种不同的硬件设备,其主要区别如下:1.功能和应用领域:树莓派是一款基于ARM架构的单板计...
仪器类用什么笔记本?
测控技术与仪器专业的同学,大概率专业课包含:电路、数电、模电、自动控制、通信、计算机基础、计算机网络、PLC编程、计算机编程语言中的一种或几种【C,C++、j...