|
1030 【万泉河】LAD是否被SCL/ST片面碾压了?
LAD即梯形图。
SCL和ST即IEC 6十一31规则的构造化文本编程言语,在西门子中称为SCL,而在其余品牌,CODESYS, 三菱,OMRON等则称之为ST。
前段时间, 有一个参加了烟台办法学习的学员,在看了几天分享给他的规范化架构的顺序材料之后,给我提了这样的问题。
而其实我本人还真没子细想过。
被他这么疑难, 想了一下, 好像的确有这么个趋向。 所以,用语音给他讲授了一下。 明天再把这个情理文字方式论述颁发出来。 与大家讨论。
咱们在做顺序的时分要讲求高内聚低耦合。 即内聚的环节难度高, 耦合的环节难度要相对于低。
但是不论二者之间详细做到了多高和多低, 首先一点, 要做到内聚和耦合严格离开,即顺序中一眼望去,能够十分分明地分出来。
关于烟台办法来讲,其实更首要的奉献是完成了这一点。 一切学员拿到烟台办法的材料顺序, 最被惊艳到,也是第一次开眼见到的就是内聚和耦合的严格离开,且耦合部份的难度低到了使人发指之低。
低到了有得多人发生了幻觉,认为我不如他会写顺序。 认为我不会做循环语法。依然有这类认知的同行倡议去理解下GML ,MODBUS优雅库。 看看本人能不克不及做到同样的优雅。
![](https://bbs.china2au.com/bbsimg/20221101/q04zmapc34c.jpg)
附图是烟台办法移植到三菱之后的顺序, 手动部份和自动部份,加起来是全部的耦合部份, 整个都是顺序块(FB)的调用和挂实参。 没有任何逻辑。
而耦合部份则整个在顺序块的文件夹中, 那外面定义了顺序中一切需求用到的功用块和库函数。 但是没有使用全局变量, 也没有拜候任何内部IO变量,所以顺序块能够跨名目自在拷贝,而毫不会变量冲突,也固然不需求进行任何反省修正。
那末, 回答这个学员的问题,分为两部份:
1,内聚部份,假如谜底:是。
2,耦合部份,假如谜底:是。
则1+2加起来,谜底就是:是的。
1,内聚。
读过我较多文章的读者都知道,我初版的烟台办法的顺序, 是在S7-1500中完成的, 库函数少量借用了西门子的BST库函数。 而后在其根底上,又本人开发了工艺函数。
而不论是BST库函数, 仍是我近来始终在鼎力鼓吹引见的BPL/LBP, 他们的库函数本来都是用SCL言语写成的。那末我在移植到其余的PLC平台之后,也只不外将SCL的语法顺应到了ST。
而我本人为行业和名目开发的库函数,就有些混淆了。 大部份是随性而为。 看详细的功用需要,在陈说性语句对比多,以及有循环和前提判别的时分就随手用SCL。 而假如是程序管制等需求对比多调试的时分,就尽可能仍是多用LAD。 由于关于在线调试来讲,我以为LAD仍是强于SCL的。
但当我从西门子移植到CODESYS ,三菱, OMRON , B&R等的时分, LAD就逐步落伍了。
我表述过我的观念,即,假如能够电脑两个屏幕平铺,同时关上两个PLC平台的LAD编纂器,能够照着一套的LAD顺序, 不需求动脑,简略在后一套中画出其LAD顺序,咱们也以为这能够合乎移植前提。
但是,在实际操作中,仍是有一些狗血的。 次要是,西门子的LAD语法比其余品牌要繁杂很多。 本来在西门子LAD中随性画出来的梯形图,到了倍福或者三菱中,好多画法不反对。在西门子中的一个NETWORK,到对方有时分需求联系到多个网络中才能够。乃至有时分还需求添加外部变量来承接。
这固然不是难度方面的障碍。 其实次要仍是我有些懒,也是由于没有被逼到份上。 真要给我个装备需要让我实打实上电调试完成,我花个个把小时实现他们,也就OK了。
固然,也还有一个问题,是我对好些品牌的LAD的操作不相熟,指令用法不习气。画起来顺当得很。
所以,在移植的时分, 有的顺序块我乃至左侧是LAD,右侧我硬生生按ST给抄上去了。 我也有文章写过二者之间的转换办法。
而后,终究的三菱中的顺序,就大部份是ST了, 而LAD就很少了。 也有三菱规范化的学员来问我:万教师, 为啥我发现有的FB,你只定义了接口,而实际顺序逻辑全是空的呢?
我就赶快报歉,欠好意思, 是由于我懈怠了,抄LAD的时分懒得抄了。不外这里的逻辑自身不是学习烟台办法的重点,对每个曾经入门的工程师,简略的很。 所以就没做。
所以能够看到,在全部内聚部份, 不论是剽窃来的顺序仍是移植来的顺序,都仍是ST的完成对比简略,也逐步愈来愈多,LAD被挤压到愈来愈少了。
固然, 假如我新调试一个零碎功用块,在没有移植需要的状况下,我仍是会尽可能选择LAD, 被碾压了也选。
2,耦合
耦合就是顺序的调用。
顺序调用的特征在于难度低, 而反复的任务量大。 大家有看过我80系列的例子, 不论是80工位仍是80摹拟量, 那种大任务量的反复顺序,并无甚么语法,也天然不需求甚么调试,那末即使教给一个老手来帮助干详细的任务,需求教给他的编程常识都很少。
只需求在文本编纂中不停的照猫画虎就能了。
所以,其实咱们次要是在Excel中写耦合顺序。 如文章《0628 【万泉河】优雅的PLC顺序一定是用EXCEL写出来的》中所述。
由于选择了SCL,所以能够用EXCEL拖一下间接生成。而假如选择LAD,则需求用OPENNESS配合EXCEL编程完成。
后者需求的技巧对比高,看起来可能会使人感觉对比目眩纷乱, 心生畏敬。
但是代价是,只要做编程的工程师本人能做。其余人很难上手,也更难于规范化。
而咱们的指标是能尽可能地把本人解放,而不是把本人一辈子套牢。
所以,宁可选一个低难度的EXCEL解决计划, 也不去学OPENNESS的花拳绣腿。
在做80系列例子的时分, 有一些厂家平台如汇川的H5U,只反对LAD, 而不反对文本言语, 乃至导入导出到文本的功用都没有。 那末我也只好老诚实实用LAD来逐一画出来。 画的过程当中试探能更高效完成的技能。
但是比来据说的是,汇川的新版的AUTOSHOP编程软件,曾经反对ST了。
我固然很欣喜。
1+2
综上所述,的确, LAD被SCL/ST片面碾压了。
这是个主观问题主观谜底, 不包孕客观偏向。
那末假如只会LAD的工程师,看到LAD如斯被碾压,应该怎么做?固然是能够开始学习SCL编程了。
其实这反而是个好动静,阐明发现了进步技巧的标的目的。 而网上有少量材料,让你学这个品牌阿谁品牌产品的运用常识,那些只能算是简略累加,并算不上甚么技巧的晋升。对技巧和身价的进步,其实不会有甚么明显的价值。
而后,假如有人坚持说,我这辈子不打算再学言语了,就打算LAD干究竟了。是否烟台办法的架构就学不了,不克不及完成了呢?
基本没有多大瓜葛。 那些底层的库函数,我违心抄和借用现成的库,也仍是出于我想省些力气的缘故。 我辅导的工程师,有的人就把BST函数间接扔掉了,本人用LAD从新写了交换掉,固然次要目的是简化功用,厌恶其中没用的繁杂功用。我本人也始终在规画找时机从新做一套模块,把它们交换掉。
而SMART 200等的规范化顺序,我也是全盘用LAD写的。 由于,没得小抄能够抄。
而信捷等小型PLC,只反对LAD言语,我不也照样在文章中宣告了能够做规范化的嘛!真的把LAD玩得溜了,都同样能够完成。 只不外鼠标和手指关节累一点。
没啥。
![](https://bbs.china2au.com/bbsimg/20221101/jynd4ljrgy4.jpg) |
|