您的位置 » 首页 » 嵌入式工控机 » 工业控制为何用PLC而不用嵌入式?

工业控制为何用PLC而不用嵌入式?

发表于5年前 | 作者: blog | 分类: 嵌入式工控机 | 破蛋日:2020年02月13日 |

工业控制为何用PLC而不用嵌入式?

  其实PLC就是单片机/嵌入式的具体应用。不过,PLC与单片机/嵌入式有本质的不同,这就是EMC电磁骚扰。

每年到了毕业季,学校就会把学生们做的各种毕业设计拿出来亮相,各种各样的应用,琳琅满目。有一次,一位学生问我,说他设计的某种自控系统能用在工业控制中吗?我问他:工业控制中除了要满足控制要求外,最重要的是什么?这位学生吱吱呜呜地说不出来。

为了可靠性,就必须提高电子设备和电气设备的抗干扰能力。抗干扰能力包括两个方面,一个是自身抵御电磁骚扰的能力要足够,另一个是自身不产生干扰去骚扰其它设备。这就是EMC。

PLC的输入输出接口一般都有隔离措施;PLC的程序是逐条执行,而且执行完一条不重复,就执行下一条。如此一来,程序不会死锁;EMC的抗骚扰能力从1级到4级,PLC的EMC抗骚扰能力是3级。

看了这些PLC的参数表,且不说单片机/嵌入式还需要设计电路板,它们的综合性能如何与PLC相比?更何况PLC配有多种开关量、模拟量等输入输出扩展模块,以及通信扩展模块。

从图2中我们能看到,PLC的模块化编程语言十分方便,把参数直接填写在模块的输入参量中即可。可见PLC编程语言的方便程度绝不是单片机/嵌入式能够媲美的。

我曾经用过一款PLC,在编写工程程序时就发现存在问题,但供应商说已经销售了几十万台,不会有问题。就这样,把这款PLC用在某石化企业中,结果出事了,系统发生死机,造成石化厂局部停电事故。事后,我们做了调查,这款PLC才刚刚入市,我用的PLC是全世界第一套!这家PLC生产商从此被公司采购部打入供货黑名单。

第二次,是另一款PLC,用在某地铁站的变电所中。我们用这台PLC作为通信管理机,同时又用作逻辑控制,结果这台PLC因为内存分配的原因,发生系统重启,造成地铁站失电近2分钟,站内一片漆黑,好在没出事。事后,我们查了PLC的深层核心参数,发现这款PLC是生产厂家的升级产品,又是一个不可靠的产品。

这第二次事故倒是给我们一个启示:对于任何一款PLC来说,不要把逻辑控制与通信管理控制混在一起,而是要完全分开,采用两套PLC来独立完成工作。

我们再看单片机/嵌入式,当我们把电路研发出来,并且调试好电路板的外围电路和程序,让它能够完美地实现预期的功能。但我们敢不敢把这款产品用在工业控制中?答案是显然的,我们绝不能把这种没经过严格测试的控制装置用在工控中。

可靠性,在工控中和工业生产中是最重要的。我们必须也只能使用可靠性高的产品,绝不能使用刚刚开发出来的单片机/嵌入式的测试产品。

如果仔细留意的话,如果是批量生产的标准工业产品,并且里边需要有一些复杂的运算的话,通常会用到嵌入式系统。比如变频器,标准工业机械手,一些专机设备等等。

有些产品是批量生产的,最开始采用嵌入式系统来专项研发时,需要投入一定的财力和人力去做研究,调试等等。一旦研发成功后,期初的研发费用会直接分摊到后期批量生产的每个单独产品中,这样会使整个产品的研发分摊费用极大的降低。如果只是批量生产设备,应该说嵌入式要比PLC的硬件成本便宜不少。

另外,很多场景中,用PLC是不理想的,比如有些产品里需要大量复杂的运算,比如变频器内的大量的电机拖动和控制算法的计算,再比如现在自动化搬运机器人的SLAM导航算法等等,也只适合在嵌入式高性能的运算器中实现,PLC是无法运算这么复杂的算法的。

再者,有些场合下也无法使用PLC,比如变频器或者一个精巧的工业设备,虽然PLC能够实现,但是体积是在哪摆着呢,至少需要一个稳压电源模块吧,至少需要几个输入输出模块吧,至少需要1个通讯模块吧,这么多的东西如果塞到一个标准小巧的工业设备里,外形上看着就不合理。

再来,就是一款标准的工业产品,如果只是PLC来控制的,那通常情况下同类产品的竞争对手非常多,如果是嵌入式系统做的,相对来说,竞争对手要少一些。也是侧面说明,PLC做的控制系统很容易被复制,起码打开控制柜就知道你是怎么做的控制系统的了,几个输入输出模块,外部都接到什么传感器上等等。而嵌入式系统要设计人员自己设计外围集成电路,相对而言保护性做的要好一些。

一个附加值高的工业设备,如果只是PLC控制实现的,如果竞争对手少,那一定不是他们的控制系统做的与别人有多大的差距,优势一定是在机械结构方面,或者专利保护方面,或者对工艺了解方面。而非要采用嵌入式系统的控制系统,往往本身的控制技术含量较高,算法较为复杂,嵌入式系统包含内嵌的程序就很有价值,就有一定的技术壁垒。

现实情况中的各种工业设备要投入到具体项目应用中来试用,而说到项目那就是千差万别了。做工业项目最重要的是什么要求,相信搞工控的人一定知道,那就是“稳定”。

大家可以看看,但凡是做PLC的公司,肯定都没有小公司,他们的PLC产品一定是非常畅销的,而且在各个行业各个领域都会被应用到,案例无计其数,PLC可以出现在输变电配电网路控制系统中,可以出现自动立体仓库的堆垛机里,可以出现在石化行业的某个设备里,也可以出现在钢铁行业里 的轧钢控制系统里。 而这一个个的项目就已经帮助其他的用户验证过了这个PLC的稳定性有多好 。

同时PLC问了促进稳定性,也专门设计了一个个模块,某个模块出了问题,只需要换个新的就可以,系统可以继续试用。更换速度也非常快。

试想一下,如果某个公司中标了要做一个项目,工期是100天,如果A组采用嵌入式的方式来开发控制系统的话,那他们在研究设计画电路板的时候,采用PLC方式的B组已经开始往买回来的PLC模块里写控制梯形图了。而这还没算做嵌入式系统后,采用干什么方式去控制输出和通过什么耦合电路去采集现场的输入,而这些对于PLC来说,什么都不需要做,他们需要做的只是到PLC厂家那里根据需要选择适合的模块插入到自己的柜子里就可以了。

另外,如果工期足够长,用嵌入式系统终于以高科技的姿态开发出来,下次再中标项目是完全不一样的工艺布置了,那这次的嵌入式系统也要高姿态的作废了,因为没有通用性。

再者即使嵌入式系统开发出来了,那这个系统是第一次问世,在之后的系统里谁能保证不出问题。一旦出了问题怎么弄,把控制系统彻底换掉?如果设计这个嵌入系统的设计人员已经换工作了,那又该怎么办?而以上说的PLC只需要做的的是再买一个模块替换掉之前的。

整车厂的自动化制造系统也都是用的PLC,以德系为例,基本都采用西门子的s7-300系列,使用profinet协议和ET200S做分布式系统。因为是使用工业以太网了,所以基本要用带网口的PLC(没错,就是cpu型号里带PN的)

1.组态布局方便,工业现场有很多设备,变频器,阀岛,电机,传感器,交换机,HMI触屏等,要通过一种协议把这些设备连接在一起,需要一个平台来设计组态和编程。那么,已经有现成的profinet协议,配合step7+wincc/wincc flexible或者说是博图平台,把厂商提供的gsd文件导入平台,就可以在平台上方便得组态和编程。这点上生态环境决定了只能用PLC,咱们现在用网线基础下的现场总线说实线.不能出错,在汽车制造行业有个东西叫做JPH,你是一小时能下线的车子数量,每天的车子数量都是有生产指标的,因此控制类设备一定要保证可靠不出错,而且是要求在工业环境下,总装还好,车身那边一堆焊枪和粉尘。流水线在满产的时候一天可以跑20多个小时,而且运行个十余年是需要的。需要保证控制类设备跑十余年不坏掉,只能选择PLC了。

3.维修方便。现场的维修工基本都是大专学历,他们更偏向于电工而不是程序员,因此c语言这种就免谈了。不过现在西门子系列的PLC也支持SCL这种类pascal的语言,用起来也跟c比较像,实际上在现实的编程中LAD,FBD,STL,SCL都是混用的,每种语言有适合的具体场景。西门子在这点上做的是不错的,UDT,数据块,功能块的形参和实参传递,模块化的概念非常好。对于电工来讲梯形图类似于继电器原理,看起来会比较方便。step7和博图自带监控功能,当设备出现了问题时可以方便得实时查看监控一些过程变量,PLC模块上也会有对应的指示灯,同时在HMI里也会很多报警信息。一般来讲都是现场传感器,安全继电器等装置检测到错误后发给PLC,PLC中的报警点位被HMI读取后在触摸屏上显示具体的故障信息,对于维修人员而言,反着去找就是了。同时软件也能一键把PLC程序下载到pc端,做日常程序备份方便。

其实本质上来讲,PLC,变频器,阀岛一类的内部都有嵌入式的东西,把他们的外壳拆下来,里面都是一块块板子。包括现在也有很多插在工控机上的PLC板卡。从编程和组态上来讲,他们都是嵌入式高度封装后的结果,profinet的底层必然是涉及到通信,电气,编程等众多领域的技术,但对于我们而言,只需要在软件平台里设计组态,分配每个设备的ip地址即可。对于工业控制而言,操作能更傻就更傻,这样才有更多的时间花在工艺上。

行业人员水平没这么高,工业领域很难抓到这么多搞嵌入式的,而且有很多非标产品,嵌入式老改不行,还是得大量封装,硬件要模块化,并不是简单一个嵌入式就搞得定的。所以这些厂家利用自己搞嵌入式的高水平封装成模块给我们用,并且搞了开发工具,简化开发语言为梯形图和ST(SCL)语言,你就想,这个行业的人大多只会梯形图,没PLC的话要搞点东西多难。

稳定安全对工业来说极其重要,自己开发的嵌入式需要大量的调试和测试,软件稳定了硬件还不一定稳定,这些厂商就是搞工业控制的,必然要把PLC做稳定了,断电后变量的值还能保留呢。

组态和上位机开发难度也同时降低,厂商对通信做了二次封装,让组态软件适配上后,就简单的变成地址变量读取,让组态软件开发界面也简单。

组态软件摆脱起来还容易点,只要能通信,自己写软件也可以。 但控制器改嵌入式那就难了。

PLC相当于嵌入式做的东西封装,通用化,模块化,软件配套体系,工业级安全稳定。

嵌入式 暴露的细节 和 所需要的填的坑太多了 , 对实施人员 的素质 要求 高; 这导致用嵌入式 做复杂的大项目变得不可行( 开发不经济, 维护不可能)。

可以用 嵌入式 做 批量大的 、完整的、 规模小的 控制系统,比如纺机。

要做大系统,可以用 嵌入式 构造 山寨的PLC, 替换掉 正牌 PLC , 推荐 树莓派+AWLSIM

传统意义的PLC 还有运动控制器等本身就算是嵌入式产品(也有不少基于非嵌入式OS的运动控制器除外)。主要是PLC厂家设计的不少专用硬件架构和处理器支持的功能更专注在工控领域的常用专有功能。 当然嵌入式应用单片机也可以做成PLC,目前不少低端PLC也可以用单片机实现,性能好点的还支持对应仿制的PLC原厂的工控编程语言

相比来说,工业控制更需要应对复杂的使用环境。真正的工厂内部,不可能每条通讯线或者模拟量线都会单独走管,很可能连屏蔽线都没有使用。而且经常会在高温,高湿的环境下。PLC很好的解决了这个问题。

从用户角度考虑,PLC更易维护。查故障,程序修改都是家常便饭。通过配合的编程软件,可以把保全员的准入水平拉的很低。开发上面更是化简到另人发指了,比如三菱通过运动CPU或者伺服控制模块,几条指令就可以多轴联动。

直接使用嵌入式开发的类似的工厂用品其实也相当多,复杂一点的比如机器人。因为可以大批量,更新周期较长,可以说占很大优势。真要是做一套设备,还是PLC来的简单,毕竟已经站在巨人肩膀上了。

其实PLC就是一个做好的嵌入式系统,兼容多种工业控制应用,相当于把嵌入式的设计外包了。专业的人去做专业的事,可以有效提高效率降低成本。

PLC诞生的一个重要目的就是为了降低技术门槛。早先的工业控制使用继电器接触器实现控制逻辑,每次修改逻辑需要耗费大量人力和时间成本,因此工厂希望引入计算机数字控制,但这对工人提出了更高的要求,需要工人使用编程语言调整控制逻辑。根据这个需求诞生了PLC这种使用梯形图设计控制逻辑的方法。用户不需要考虑嵌入式电源设计,抗干扰,可靠性等多方面因素,工控嵌入式。即可上手使用。

当然了,追求兼容和必然带来设计冗余,在一些对体积重量要求高的应用中,更多的是选择从板级重新设计的嵌入式系统。

区别就是核心算法,各家不太一样,细节不多说。简言之,提高易用性,提高安全性,提高稳定性,提高堆叠层次。

一般嵌入式开发聚焦设备层面,就是main-inithw-initother-while(1)&int&watchdog,PLC/DCS开发聚焦于系统层面,所有设备对于它就是数据类型组合。从而在设计方法,实现方法,现场工程有本质区别。

PLC的硬件部分就是嵌入式硬件,没区别。关于硬件的稳定性很多都是靠钱堆出来的,十年前那会一次EMC测试需要十万,浪涌测试很容易损坏硬件的。煤矿的硬件都需要支持

,这个在从电路、模具等都有设计规范的。学生能做不,可以,但是那个路怎么做,如何做这就需要大量学习,我当初光电路分析就写了200页,后来几个同事一起到600页,但是距离国外的标准还有很多要学习!硬件部分其实算里面最简单的部分,关键是软件。

PLC/DCS软件架构实现我知道有七八种,绝大多数支持脚本,这个是有国际标准的,有的脚本类C,但是没见人用过,因为基本所有的工程师都是用梯形图或者功能块做逻辑。用语言反而比较低级,原因给你一个,热更新逻辑时候可以做到0ms切换,当然这个功能是用C做的。

还有一个你做下就知道,高中生经过一周培训就可以玩PLC了,当然这个也是嵌入式,工业级嵌入式而已,培训学校会很长时间会贵很多,用过了你就知道嵌入式编程就是糊弄学生的。

嵌入式和PLC差在那了?差异就是层次就是格局。PLC/DCS历史非常长,OPC那种烂技术你看看用了多少年,为什么用,够用而已。

汽车安全级别是基于人生命的,但汽车控制多少个点?小鹏搭载的是20个传感器,对应PLC/DCS就是20-200个input而已,output你算算多少刹车、转向有多少,工厂里面控制点数,一般2-3万个I/O硬点很正常,分布区域5平方公里算起步。

倍福的PLC还可以用C/C++编程,能够连接各种工业总线。现在工控上各厂家的PLC其实都可以理解为嵌入式系统。只不过其内部操作系统未公开,编程开发环境不同。

用plc很多都是非标设备,每个项目需求不一样。今天要10个io,明天要100个,今天要rs232,明天要以太网,后天还要Profinet。你是开发人员,怎么做?每天画新电路图,画新pcb吗?势必要做一个通用平台,模块化那种。现场还有变频器、伺服,干扰很大,那得整点外围保护电路。得,这又成了plc了。

开发程序上,现在有用C开发,但是类似于在Windows上开发一样,有库,然后调函数开发。要是直接嵌入式开发,逻辑程序控制IO还好,但是连接外围设备的网络开发就太累了。一般成品plc看手册15分钟就配好一个modbus tcp主从网络,嵌入式从网口驱动到tcp协议,再到modbus协议,再到从站轮询函数,即使都有相关开源库,没搞过的人把它们配置到一起也得一天吧,还不能保证没有bug。

所以为了简单,为了快速开发前期可以选择PLC,若是你的设备一年1万台,想降成本,可以选择用嵌入式替换PLC。

问题。PLC经过多年发展,已经具备了完整的生态链:从梯形图等编程语言、到I/O、数据采集、通信,再到组态,再到诊断,再到和其他子系统的通信和互联。由于工控系统环环相扣,一个独立的系统犹如孤岛,是无法实现复杂的控制功能的。

并不是说单片机不能取代PLC,而是代价太高,且不具备太大意义。至于可靠性问题,PLC内部还是使用的工业级单片机,并不存在显著差别。PLC现在也支持通用编程语言了,单片机的优势全无。

已经有很多回答了,我就从标准化来说一下吧。不同于嵌入式这种太过泛泛的的概念,PLC 是一个高度标准化的产品。我们就是做 IEC61131/IEC61850 产品和 CANopen, EtherCAT 相关产品的。我举个例子,比如我们的开发工具、编译器、配置工具都是严格按 IEC61131-3 标准来做的,CANopen 的设备也严格按 CiA301/306/302/405/402… 等等一系列标准来做,比如什么情况下要做的基本动作标准都会有定义,就像系统如何处理紧急事件,如何一键配置和管理所有不同厂商的设备等等。我们以前做 IEC61850 也一样,电力工业相关产品也都得按这个标准来的,电力的控制器中都集成了这个层面的标准化工具,比如 IEC61850 Server 可以直接做成一个 Function Block,用户可以直接拖拽,使用同一标准,一个智能站很多供应商的设备也才可以协同工作。所以说,PLC 是一系列标准化的封装,而不单单是一个嵌入式设备。

硬件方面,PLC 是模块化、标准化的设备,非常很容易扩展。很多 PLC 的处理器也不是通用处理器,比如一些控制指令完全可以是内嵌在处理器上一些电子器件而非软件程序,比如我们的设备上的 FPGA 可以直接处理掉一些控制命令,而不是在通用处理器上跑一个程序。哪怕一个 Function Block 也不一定对应一个程序,你甚至可以把硬件功能变成一个的 Function Block,只有这样才能做到低时延。这也决定了编译器本身也不是通用的,甚至要编译出一些特殊的逻辑或机器指令。

文本标签:
本文地址:http://www.huapuxin.cn/blog/4247.html
除非注明,本站所有文章皆为原创,转载请以链接形式标明本文地址

马上分享给你的朋友吧~

评论已关闭!