从一份用户调查看PLC编程语言和编程平台的现状和趋势
2019年PLCopen国际组织和美国的automation.com网站联合进行了PLC用户编程偏好的调查。总数为200个响应者绝大部分来自北美和欧洲。调查的结果反映了PLC编程的趋势,以及用户对PLC编程软件供应商的一些想法和意见。这些对我国的自动化领域的发展,特别是以PLC为主要手段开发工业控制系统的工程师们也有一定的参考价值。
一、用户喜欢用哪些编程语言?
图1是用户喜欢用哪些编程语言的调查结果。用得最多的是结构化文本语言,其次是梯形图,再次是功能块图,第四是顺序功能图,其它编程语言位居最后,在其它编程语言中用的最多的是C/C++语言。
从用户这些语言的偏好看,可以得出以下结论:
(1)各种编程语言运用的差距并不大,没有特别多的,即使居第一的结构化文本也不过比居于第五的其它语言多得有限。
(2)明显可见,用户对于面向对象的语言如结构化文本语言和C/C++语言更为青睐。这反映了在智能制造和工业互联网的应用中面向对象的编程语言更能满足用户编程的需求。
(3)许多PLC的编程环境支持用C/C++语言编写功能块。
图1 用户采用PLC编程语言的调查结果
为什么这次调查没有列出指令表(IL)语言呢?
这是因为在2012年更新的IEC 61131-3 V.3编程语言国际标准规范中,虽然还保留了IL语言,但已经有提议将将它从5种编程语言中剔除。随着时间的推移,使用这种类似汇编语言的IL对PLC编程的人越来越少,几乎失去了存在的价值。
这里顺便指出,结构化文本语言ST在国内的普及程度很差。有一个原因是某些在国内应用相当广泛的小型PLC不支持ST编程,影响了它的推广使用。面向对象的编程OOP正在随着智能制造和工业互联网的需求快速地发展,而IEC 61131-3规范的5种编程语言中ST是最容易实现OOP的。因此,这一倾向值得重视。如果我们国家继续沿着按某些自动化公司的PLC产品机型进行工科教育,那么在PLC的开发和应用方向上将永远步少数几个工业发达国家的后尘,很难有翻身的机会。
二、编程的熟练程度
从调查的结果看,熟练掌握梯形图语言和结构化文本语言的比例较高,熟练掌握功能图语言次之,熟练掌握顺序功能图语言的比例较低。而不了解顺序功能图语言的比例最高。
看起来结构化程度很高、而且最适宜表达顺序工艺,工艺与编程对应得最好(也即程序的可读性最好)的顺序功能图语言,在欧美普及程度不算高。这也令人有所不解。
源于法国的这种PLC编程语言获得了一些专业组织青睐,譬如美国OMAC推的PackML就重点选择了SFC作为包装行业的编程语言,符合顺序控制工艺的机械加工和批处理加工的比比皆是,为什么SFC的使用者不多呢?一种可能性是被调查的样本还不够多,或者说被调查的细分行业还不够全。
图2 掌握编程语言的熟练程度
三、对PLC编程软件平台的要求
调查从软件的可靠性、软件的易用性、不同供应商软件平台所编制的应用软件的移植性、I/O配置软件和不同供应商的PLC控制器之间的通信等5个方面征询意见。
结果不出所料,认为软件可靠性好和很好的占大多数,认为软件的易用性中等和好的占大多数,认为应用程序移植性差、较差和中等的占大多数,认为I/O配置软件中等和好的占大多数,认为不同供应商PLC控制器间的通信差和中等的占大多数。
这些调查结果实事求是地反映了当前PLC编程软件和平台的现状,表明不同软件和平台开发出来的应用软件的移植性远远达不到最终用户的要求,这也是单纯基于IEC 61131-3的开发软件和平台难以基本解决的问题,更遑论彻底解决的问题。
看来要解决这一问题需要另辟蹊径,譬如说美国开放流程自动化系列标准OPAS正在开发以IEC 61499为依托的应用程序的移植性,已经取得了实验室的验证,进一步需要进行工业实践的验证。
图3 用户对软件平台的评价
四、流程控制采用PLC呈现增长趋势
这次调查有一个出乎所料的结果就是,PLC在流程控制领域中的应用呈现增长趋势,超过73%的被调查者反映他们采用PLC进行流程控制,而采用DCS在流程控制中的只占27%左右(见图4)。当然,规模巨大的流程控制(如I/O点接近10万点或超过10万点,非DCS系统莫属,在这方面PLC系统还有很长的路要走。
PLC在流程控制中的应用超过DCS,估计原因有几个方面:
一是 PLC的性价比远超DCS,在PLC能满足流程控制的系统要求的时候,选择PLC的投入要显著的少,维护成本也随之下降。
二是 PLC的性能有较大的提升,在一定的成程度上可以替代DCS的功能。
三是 调查样本有可能不够全,参与调查的以流程控制为主的企业不够多。
图4 PLC在流程控制中的应用超过DCS
五、调查中许多用户的想法和留言
编程软件和编程平台的用户在调查中通过额外的留言反映了他们的想法和意见,他们希望PLC的供应商在其编程软件方面能更好地满足用户的需要。下面按有关的题目分门别类的阐述。
应用软件的移植性问题
有用户认为,采用PLCopen的XML规范来解决多个软件供应商的移植性问题,看来不太可能真正付诸实现,或者总是难以适当地正常地运行。 最好是供应商现在能够为编程环境提供开放的脚本语言的接口,在这样的环境下代码转换和自动操作比较容易进行。
关于编程平台的相互交叉兼容性的问题,有用户认为应该引起重视。但另一种意见则认为,一般的PLC供应商和开发商都难以与他们的竞争对手合作,试想将一根以太网网线从罗克韦尔的ControlLogix PLC上接到西门子的S7-400的以太网口,想象得到如果能够真能通信起来,这岂不是滑天下之大稽吗。显然用户对移植性的问题是不抱太大的希望的。不过,希望已经开发的代码能够实现更多的交叉移植性,一直是用户希望解决的事情,但至少到目前为止,这还是没有很好的解决方案。
OPC UA
有用户认为,完全接受OPC UA的支持这种可能性实属异想天开,真正实现的可以说是凤毛麟角。也有用户提出,应该能够定义自己的信息模型和采用其它的标准信息模型(如PackML和其它)。
有一个用户提出很好的建议,PLCopen的IEC 61131-3的OPC UA信息模型应该完全发挥结构化文本语言ST面向对象编程(OOP)的性能。这样用OPC UA通信应该实现起来就简单了,只要一个接口便可以在OPC UA网络中点开一个实例,接着按程序中的一个对象(功能块FB)那样进行处理。这样最终得到一个面向通信的架构和面向对象的编程。不过我们仍然需要状态机进行方法的调用。为什么不这样做呢?
可靠性
有用户认为,现在有些PLC编程平台的集成开发环境IDE往往并不完善,或者有时会出现操作系统蓝屏。显然,可靠性问题出现在现代的集成开发环境内,每个供应商都太忙于将他们的编程环境集成到一个工具中,同时还实现新的喜好性能,而花在提高可靠性方面的投入不够。希望编程平台的开发商要认识到,可靠性和可用性问题常常造成最终用户昂贵的时间损失。
编程特性
关于编程平台的改善,调查中用户提出了改进的意见。如在用ST键入能时自动完成标签命名的全部;能给出有意义的出错信息;文档能易于存取和能搜索;软件开发者应该对客户负责,给予技术支持;在梯形图编程的框架下允许嵌入复杂的编程;能够实现由顺序功能图语言自动自动生成代码;能在编程平台系统中开放像C/Java的编程语言;文本文件的编译采用C语言类型的编程工具的方法,具有版本管理、归档、管理、实用程序库,以及转换为另一种编译程序/另一种版本/另一种语言的能力。还有用户提出,采用现代的编程方法和技术,软件供应商应该有更好的源代码控制(Git)、单元测试等的知识和集成能力。所谓Git是一种在软件开发期间跟踪源代码变化的分布式版本控制系统,专门用来协调编程人员之间的工作,但也可以用来跟踪任意组合的文件的变化。
PLCopen和OPC UA的协同
工业4.0和数字化转型推动着先进的物联网IoT方法,这就是语义信息模型。工业自动化工业已经在支持建立开放的语义模型,这就是为什么PLCopen和OPC基金会建立联合工作组来满足这一需求。其结果包括IEC 61131-3的OPC UA信息模型标准,以及PLCopen和OPC UA合作开发的IEC 61131-3的OPC UA客户端功能块规范和OPC UA服务端功能块规范。现在还只有很少的编程平台能够提供按规范开发的OPC UA的功能块。
六、后记
自从在国内活跃多年的德国KW公司被菲尼克斯收购后,因发展目标调整的关系,从2019年中开始不再发展基于IEC 61131-3的编程平台的客户。于是在国际和国内IEC 61131-3编程平台市场中3S的CodeSys一枝独秀,随之涨价之风盛吹。
国内经过多年的发展,虽然没有真正具有市场竞争力的有关软件产品出现,但毕竟一些DCS和PLC的公司(如浙江中控、、和利时、杭州优稳)都拥有自用的编程平台环境。杭州电子科技大学计算机学院的严义、邬惠峰团队的CASE平台历经十多年的锤炼和提升,在IEC 61131-3的编程平台上增加了PLCopen运动控制规范的功能。与此同时,近年在北京和上海都出现了专门以开发IEC 61131-3的编程平台为目标的公司,规模尽管不大,但由于创业者凭着许多年在这个领域内摸爬滚打的积累的技术,发展的还是有声有色。我们期待在此工业软件方向上会出现商品化产业化的突破。
注:本文由作者为《工控百家谈》独家撰稿,如需转载请与我们联系。作者简介彭瑜,教授级高工,上海工业自动化仪表研究院技术顾问,PLCopen中国组织名誉主席,工信部智能制造标准化体系建设工作组专家,国家智能制造标准化协调推进组专家咨询组专家。
有人说:SCL将成为PLC的主流编程语言?
现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD)、结构化文本(ST)、流程图(SFC)、指令表(IL)和功能块(FB)。在这五种编程语言中,
此外,由于西门子 S7 系列 PLC 在国内工控领域中使用很广,它的编程软件 Step7 默认情况下只支持梯形图和指令表编程,但通过安装“S7-SCL”软件包和“S7-Graph”软件包可实现结构化文本和流程图编程。
结构化文本是一种类似于计算机高级语言的编程方式,它的语法规范接近计算机中的PASCAL 语言。
所以有人就问:SCL将成为PLC的主流编程语言么?
于是很多电气人发表了自己的看法,一起来看看吧!
bnnyygy 说:
我献丑来一个,半成品,给设备改造的,用的欧姆龙CP1L,ST语言功能块,部分节选。
wenpian 说:
还是梯形图适合逻辑。
ljj977 说:
程序写的不错。tia protal中可以采用SCL与LAD混编的模式。这样的灵活性就更大了。
作为一个有C基础的人来说,用SCL他可能更擅长,入门更快。作为习惯了LAD编程的人员来说,写一般的逻辑关系程序,确实要清晰些。
计算机的普通编程人员将会有一部分人能胜任1200的编程工作,而且他们的转行不会有多大的门坎。可以说,PLC的编程人员来源会更广泛。
fujifa 说:
在JAVA出现之前,C语言的菜鸟们也是认为C语言将一统江湖,在PYTHON出来之前,JAVA的菜鸟们也是这么认为的。菜鸟们总是习惯使用必将,一定等词汇来描述他们认为的事物,为什么老鸟们不这样认为呢?因为老鸟们知道:
1:SCL,也就是ST语言,编译为机器码的执行效率比其他语言效率低。
2:梯形图编程语言也在进步,去看看诸如富士、AB这类在梯形图中使用高级语言编程等增强型梯形图语言的厂家就知道了。
hgxmm123 说:
老外喜欢用SCL语言编程,它功能丰富。国人喜欢用梯形图编程,易于推广。
有些PLC语言不能实现的功能,用SCL就能实现。
twtynijj 说:
最多只能说是备选的语言方法 ,主流怕是很难,可读性并不是很好,推广也难。老外是因为人家母语就是字母组成,对他们来说可读性还是非常强。
现在PLC还是以LAD SFC ST CFC 这一类为代表,也符合IEC标准的。如果哪一家PLC只有一种你说的SCL,怕是干不了几年在中国就只能关门了,这是由市场决定的。
cvlsam 说:
西门子之所以称为SCL而不是ST,是因为其编程语言指令表叫做STL,为了避免混淆,所以叫做SCL,其实就是其他厂家的ST语言。
“还是以 LAD SFC ST CFC 这一类为代表”,看到这句就说明您不太熟悉西门子了啊。
twtynijj 说:
嗯,西门子是不熟悉,刚出社会那会接触过。换工作环境后就没怎么接触。而且也只会用梯形图呀。
pqsh 说:
我觉得,5-10年这些语言都将消失。
人工智能,会听懂人的语言和思想。只要你说清楚,机器就会执行。当然,这样汉语会失去优势,因为汉语逻辑不严谨。
fsjnzhouyan 说:
现在有些智能家居就能接收中文语音控制家电。
vao 说:
梯形图,这种应该是主流趋势,不是你自己擅长什么就一定会主流,工人容易看懂的才好。
gaoyingchun 说:
工控人要失业了
ljj977 说:
在数据的处理方面,SCL还是要比LAD更具有它的它快捷性,计算的功能也是十分强大的。比如一个一维数组,你在使用时,感觉用LAD不难,但一个二维数组、一个多维数组你再使用LAD编程,难度就要大多了。
作为博图软件三大编程语言,SCL就是其中的标配,在原来300/400编程语言中,还没有列入标配行列之中。这也说明了西门子对它的重视,也给大家一个信号。因此了解它、学习它还是有必要的。
SCL是三大语言之一,说它是主流的编程语言不为过吧。
cvlsam 说:
用过AB的梯形图的话,觉得其他语言都可以不要了。
其实三大语言并不包括ST语言。
以前是梯形图,指令表和功能块,现在部分厂商取消了指令表,被SFC替代了。
当然,多学习一点没有错,不过不是以西门子SCL语言为基础,西门子的SCL语言离标准还有点距离,要用也应该从菲尼克斯的学起,人家才是完全符合IEC标准的。
wgefwgef 说:
越是菜鸟,越是水平差,越抵制ST。
逍遥的久鸣 说:
不管白毛黑猫抓到老鼠才是好猫,越简单明了越好,这么多年过去了,梯形图还是那么坚挺!
如果后期维护,现场水平不高,是不是就要失业了?
hnhyczj 说:
高级语言应当是发展的方向。
乌龟船长 说:
老外喜欢用SCL语言编程,它功能丰富。国人喜欢用梯形图编程,易于推广。
fuhuafeng72 说:
SCL确实好,但一些工控不适合。
ljj977 说:
LAD是PLC编程使用最广泛的语言,用户量最多,当然它是老大。但SCL也一定会壮大起来的,因为它有自己优势。这里并不是说LAD不好,但有时候,有些人用SCL去编程反而更方便,特别是熟悉高级语言(如C语言等)的人。这两种语言的使用肯定是因人而异的,喜好不同、知识背景不同,他们的选择就不同。
用LAD语言写的程序,复杂一点的话,一般的电工是看不懂的。说句实在话,LAD语言,当初就是为电工准备的编程语言。那时候只有逻辑控制。电工如果满足了一般的逻辑控制,数据处理程序的编写就成了一句空话,别人用LAD写出来的程序也不见得看得懂。
现在时代不同了,PLC不只是去处理逻辑控制,还多了好多些功能。老早之前,S7-200就明显看到它的结构化编程的思想。300/400,到现在的1200/1500,它们都在朝着更先进的方向发展,LAD的语言更是如此。现在的LAD就是面向开发人员、工程师、技术人员的。再说电工也分好几类吧,一般的电工在工厂里是接触不到编程这一块的。LAD现在也是也是十分强大。
SCL未来将成为主流的语言,并不意味着LAD不是主流语言。大家还是不要误解了我的观点。
SCL能作为标配的编程语言出现在博途中,说明了什么,不正是说明它的存在价值吗。
年轻的朋友们,如果感兴趣,学习一下SCL语言的程序编写,我觉得还是蛮好的。
liuxd6909 说:
但凡是主流都是被大多数人所认同 的,所接受的。
fuhuafeng72 说:
企业有三六九等,很多小作坊,你给他传统的继电器系统原理图都搞不明白,不要说英文类C的程序了。世界就是个矛盾体。
LAD确实是一种不错的编程方式,之于类C,形如安卓之于IOS。
zhanghaiw 说:
做逻辑SCL确实不怎么样,搞搞算法还可以。建议LAD+SCL的组合,感觉非常棒。
965528555 说:
做逻辑也是非常好的,算法更是好用。而且方便转换其他PLC
以上观点都非常棒!至于结论如何,小编自身觉得每个语言都有自己的可取之处,对于大型的主流化编程语言,是作为一个资深的电气人应该了解的内容,时刻把握行业潮流动态,才不会让自己处于被动状态。看了以上内容,你觉得呢?留言哦!
往期优秀文章回顾:
新手学西门子PLC,要从哪开始?「附PLC与电动机控制精品讲解」
相关问答
plc语言有哪5种?
PLC(可编程逻辑控制器)语言包括五种主要类型:梯形图(LadderLogic)是最常用的一种,模仿了传统电气控制面板上的接线方式;功能块图(FunctionBlockDiagr...P.....
PLC编程语言有什么?
常见的PLC编程语言包括以下几种:1.LadderDiagram(梯形图):最常用的PLC编程语言,将输出信号和输入信号以具有逻辑关系的图形方式表示,类似于电气图。2....
plc编程语言有哪些?
1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图...
PLC的编程语言最常用的有哪两种?
PLC编程常用的有梯形图和逻辑图。比如:西门子,AB的PLC采用前者。Honeywell,Emerson的SIS采用后者。PLC编程常用的有梯形图和逻辑图。比如:西门子,AB...
plc编程语言主要有那几种?
PLC编程语言主要有三种:1.梯形图语言(LD):是一种可视化的编程语言,使用类似于电气原理图的符号和逻辑连接方式来表示程序。梯形图语言是PLC中最常用的编...
PLC用什么语言编程?
1、梯形图。这是PLC工程师应用的最常见的编程语言,在处理一些逻辑类控制问题时,梯形图是非常好用的,深受大家的喜爱。2、结构化文本。它也是PLC工程师常用的...
到了工业2025后,现在的PLC工控技术会落后被替代吗?
关注冀工控,我们一起长知识现在是2019年,距离2025年还有六年的时间,题主的问题PLC工控技术会落后被取代吗?我个人观点是不会被取代,下面我就来论证一下我...就...
学习PLC是不是要先学习C语言?
虽然PLC(可编程控制器)和C语言都与程序控制有关,但是学习C语言并不是PLC基础入门所必需的。PLC是利用LadderLogic(梯形图)语言进行程序设计和控制的,它是...
西门子PLC编程语言有哪几种?
目前比较流行的西门子PLC编程语言有如下几类:1.梯形图。最明了最容易上手的PLC编程语言,一般新手上路都是梯形图。特别方便监测。2.STL语言:STL是高手用的,...
plc的scl语言有什么优势?
SCL语言是PLC编程中的一种高级语言,它具有结构化编程范式,使编写代码更加清晰、易于维护和调试。SCL语言使用符号表达式,使程序更接近实际电路图,易于理解和...