0912 「万泉河」PLC编程方法,适合自己的就是最好的
0912 【万泉河】PLC编程方法,适合自己的就是最好的
工业控制领域,技术知识大致分两方面,一部分为某个厂家某个产品怎么使用的问题,而另一部分则为某个领域工艺设备如何设计如何实现的问题。 分别称之为A类问题和B类问题。
通常, A类问题的答案可以从各厂家的说明书,文档,以及其专业论坛得到。 而且通常也会有标准答案,对就是对,错就是错,泾渭分明,不存在太多的争论的空间。 各品牌长久以来各自培养了大批的忠实用户,也自然形成了大批这方面的专家,即A类专家。
而B类问题,则相对存在一些主观判断的问题。
但其实也仍然是个客观问题。
比如,控制柜内元件如何排布, 图纸中线号怎么规则,线色如何分配,通常不存在一个硬性的标准答案,不会非此即彼,对错分明,然而类似这样的问题, 如果有人提出来,大家也还能比较心平气和地讨论,给出比较合理的建议。
通常, 很多问题在各行各业中也已经逐渐积累形成了相应的规范可以参考。 那么相邻的行业可以借鉴借用,或者在其基础上发展进步。总之不会有太大的争议。
然而, 唯独在PLC编程方法方面不一样。
不管是在微信群中还是在技术论坛中,每当大家开始讨论该如何组织架构编程实现功能的时候,通常讨论才刚刚开始没几个回合, 甚至场子还没热乎起来呢,就会有一个平素不怎么发言的号,出来一嗓子总结性发言:适合自己的就是最好的 。
这种理论不管是从逻辑方面还是从思想方面都混乱到一塌糊涂,然而影响却极广,成为很多人坚信不疑的底线。 本文对这个言论从几方面做个剖析解读。
首先, 这是典型的一步到位把一个原本的客观问题给偷换概念成了主观问题,然后用主观的偏见做了解答。
我从来没听人说过, 电控柜如何布置, 适合我的就是最好的。
我也从来没听人建议,设计图纸怎么画,适合你自己的就是最好的。
然而偏偏在设计程序的时候,就总有人出来宣布,适合我自己的就是最好的。
我在前面一篇文章《0825 【万泉河】设计工作中服务与被服务》中分析过程序设计工作本质是为其他专业提供服务。而所有设计工作本质上是在付出劳动,获取收入回报。
就好比,一个厨师,做饭的时候做成什么口味,菜里面是不是放香菜,竟然不是问客人的需要,而是听信什么人生哲理:适合你自己的就是最好的?
有的人或许会认为,厨师的服务对象是顾客是人,而我设计程序的服务对象是冷冰冰的没有智慧的机器,因为他没有意志,没有选择权,所以我作为设计者可以有完全地替他做主的权利。
可是,有没有想过,你设计的这台机器,这个产品,也和厨师做出的一道菜一样,一旦从你自己眼前离开,一旦交付到客户手中,它从此就不再属于你,甚至可能与你的今生再无关联。你甚至都不再有资格再次遇到它。所以你和它的缘分,也只不过是上电之前在你电脑中的设计蓝图阶段,以及上电之后,交工之前的调试阶段。你在设计调试它的时候,或许会觉得这个时间很漫长,然而,一旦交付,相比起这台机器几十年的运行寿命周期, 你和他相处的几天,几周,或者顶多几个月的时间,只不过是短暂瞬间而已。
所以,如果真的有人来代为选择,那也应该是它未来的主人,生产线的运营方呀!为了未来设备运行维护保养的便利,制定统一的规范,在设备出故障的时候,以及设备需要升级改造的时候,可以快速处理,而不依赖原来的承包公司,以及其原本负责设计的工程师。
对于甲方来说,最麻烦的是设备出问题的时候发现原来的承包公司找不到了,生产线的设备程序无人能读了。而最最麻烦的是,承包公司能找到,然而原本承担设计的工程师找不到了。 或者离职了,或者升官了不做具体技术工作了。 而更不可承受的是,工程师各种突发原因,死了。
这种悲剧已经听闻过多次了。 所以,虽然经常有人拿 “离了任何人地球都照样转”的道理来辩解,然而其实那只是秀智商的抬杠。 从地球的大尺度,离了任何人,甚至整个人类当然可以照样转没问题。 然而在具体到一个设备一个工厂的尺度, 少了某个人,当然会被严重影响到。更严重的情况会导致一个公司的倒闭。 正好比丢了一个马掌,亡了一个国家的典故。
这都是没有标准化规范化意识带来的严重后果。 而追其原委,工程师认为适合自己的就是最好的,是祸根。
这是由当下的整个工控行业的现状所决定的。 在硬件设计方面已经有了一定程度的标准化规范化,通常只要承包方有一定的行业资质,其硬件设计规范基本都可以放心。而在软件方面,则大部分令人放心不下。 这就导致了部分行业的甲方,亲自下场,为软件设计规定规范,即比如汽车行业,即诞生了SICAR标准。 根源还是设备提供方的标准太差所致。
差到什么程度呢,如果有人直接武断说没有标准,都无法反驳。
有人说,不对啊, 比如西门子就有《TIA程序设计规范指南》,照着那个规范来写程序,不就有啦?
啊哈, 关于那个指南,我早就写文章介绍过了, 见《【万泉河】<S7-1500 程序设计规范指南>与标准化编程的关系》,与其称之为规范, 不如称之为风格指南更合适。
它所规定和建议的规范,只是细节部分。 就好比,你要开车去北京,他并没有告诉你先到哪里后经过哪里, 哪个出口切换高速,哪个出口下高速。它只高速你了行车要靠右,不要超速,路上遇到的标识符如何辨别。
你当然可以认为那是在指导你怎么开车。 但你要是指望有人告诉你去某一个地方如何行驶,还是需要另外开导航软件。
正是因为本行业目前各设备公司普遍都没有方向性的导航标准规范,才给大批工程师留下了适合自己的就是最好的操作空间。 但凡公司有规范约束,要求工程师必须按照公司规定的标准框架来做程序, 也不会有工程师把自己当成艺术家,要在工程设计中发挥张扬个性为荣了。
工业领域,工程师都是工具人,要么是规范化流程的创造者,要么是规范化流程的执行者。 而不存在什么个性十足的艺术家,以自己为中心,自己想做啥就做啥,想咋做就咋做。 那不叫个性,叫任性。
这个观点的任性之处还在于,他们的时空关系是错乱的。
作为一个科技工作者,正常情况下,每时每刻都是要在学习中,水平和认知当然也要在不断进步中。 那么当他说出适合自己的就是最好的观点的时候, 指的是哪个时间点的自己呢, 过去,现在,还是未来?
如果以自己当下的水平做设计方案, 那么如果完成以后,甚至执行过程中,自己水平就已经得到了提高,那么回过头来看, 所选择的架构方法就显然不是最好的了, 而很有可能成了自己都嫌弃的垃圾。
我自己近些年开始有意地删除一些历史项目文件,那些跟客户已经断绝联系很多年,客户手里都有完整的文档归档,甚至可能已经改造过多次的生产线。那么我还只从归档角度保存这些文档就没什么意义了。而从技术角度,我的技术水平已经经历过多次迭代升级, 那些资料里面所包含的技术对我来说已经不存在什么参考意义。换句话说, 那些我曾经珍惜珍视的宝贵资料在我眼里已经变成了我自己都嫌弃的垃圾。
所以,如果我们认为彼时彼刻选择的设计方案,是最好的话, 完整一点的说法,是在现有的硬件方案下,以自己当下的认知能力,所能驾驭的水平,被迫不得已,只能选择的最不差的方式。
就好比,从大连到烟台,选择什么交通方式是最方便的?这是个客观问题。
除了乘坐飞机,当下最好的方式还是坐船。而如果几十年后跨渤海大桥或者隧道修通,或许最好的方式会是开车。
我来回答一下这个问题,我认为的答案。
适合自己徒弟(接班人)的程序才是最好的。
首先,一个终极问题是,工程师的职业理想是做一辈子设计工作吗?当然不是。
工程师的终极出路是不做技术, 去做管理,从技术管理到公司运营管理乃至投资管理。只干一点点技术工作是赚不到大钱,发不了财也更不可能实现财务自由的。
那么, 一个优秀的工程师从做技术工作的第一天起,就要注意不要把自己做过的技术工作做成了自己一辈子的包袱。有的同行经常表达出要在技术上防着同事防着老板,提防技术被同事学去了,自己就失去了价值,有可能工作岗位被同事抢去,自己恐怕被老板炒鱿鱼。说白了还是知道自己不够优秀,那这样做也有情可原,但如果还同时做职位升迁,加薪发财的美梦,就有点多了。
所以, 优秀的职场人生,一方面工作中要能出成绩,以获得升迁的资本,另一方面还要做好技术的传承,不可以躺在成绩之上裹足不前。 假设你做的工作成绩斐然,然而技术没有传承,全公司上下,除了你自己,再无别人可以接手你的工作。那么当公司内有高级别职位升迁机会的时候,你或许也有足够的资历来参与竞争,但老板们可能会担心你脱产以后那部分工作无人接手,在决定人选的时候就会犹豫再三。 而职场上,稍加犹豫 ,可能机遇就错过了。
所以,每个人在职场上需要随时为升迁做好准备。除非能力客观条件不够。而接受你技术传承的后辈,其实也同样处在竞争的起跑线上。 你交接给后辈的技术的同时,还必须能接受其最严格的审查。只有能做出让对方无可挑剔,只能在你基础上进一步发扬光大,而不会逮住机会就跟你唱反调,只要你稍微一撒手,就把你的工作方法全盘掀翻推导重来,建立他自己的一套,从而为他自己升迁做储备。
那么,假设你已经升级为高级主管,而自己曾经打天下的那部分业绩被人批判到一钱不值, 那自己在公司内很难谈得上脸上有光。 而自己的大本营都丢了,后面再图谋更进一步,恐怕就难上加难了。
我曾经写过文章探讨工控PLC行业的CODE REVIEW,其实纵然没有明面上的规则,其实同事后辈之间也仍然存在最严格的CR。职场的竞争就是如此残酷。
而烟台方法的本质,就是在帮助学员在公司内的职场竞争中超人一步。 帮助你能经得起同事、徒弟、竞争对手的审查。 而我自己,在把样板例子高价出售给学员的同时,也是要经得起学员的审查。学员需要审查从我给付的样板中是不是真的能学到技能,技能是否足以帮助他在行业内技压群雄,这压力恐怕比起职场内的竞争压力有过之而无不足。
毕竟, 职场升职的竞争除了业绩,还有更多其他方面的因素,资历,人缘,情商等等。而学员跟我之间,是纯粹的付费购买服务的关系,除此之外,无其他因素了。
有人抱怨价格贵,有人眼红我卖的价格贵。那么,请扪心自问下,审查一下自己做过的设计,打个分估个值,敢不敢承受这样的压力,完全纯粹的面向市场,经受市场的严厉审查呢?
毫不夸张的说,烟台方法是经受住了这个审查的。网上所有非议质疑的人,没有一个是烟台方法的学员和用户。现在如此,将来也会是如此。
经验|听前辈聊PLC编程
一千个人就有一千个学习方法,别人的方法或许不适合自己,但是绝对值得我们借鉴。
来源:知乎
作者:Patrick Zhang
PLC并不难学, PLC编程语言符合IEC 61131标准。其中比较主流的语言是模块化的编程语言,也即IEC 61131-3语言。
由于所有的PLC生产厂家都必须遵循IEC 61131标准,因此深入学习某一款PLC后,其它的PLC大体上是类似的。
1、模块化编程方式
学校PLC课本上讲解时一般都用梯形图。这是很落后的一种编程方式。走上工作岗位后,务必改用模块化编程方式。之所以要摒弃梯形图的编程方法,是因为梯形图有很多局限。
举一个最简单的例子:当三个开关量在梯形图上构成三角形时,这个梯形图是无法执行的,必须用三角-星转换为星形结构才行。
这种问题在模块化编程语言中根本就不会出现。由于梯形图的局限性,纯梯形图程序中也开始配套模块图了。
现在梯形图应该还是主流的PLC编程语言,模块化编程虽然是趋势可学习时从梯形图入门仍然是比较推荐的方法。
下图是我为北京地铁的双路电源自动投退系统编写的程序局部:
此程序用模块化的编程语言IEC 61131-3写成。可见模块化的PLC程序有点类似集成电路的形式,甚至连PID测控都有相应的模块。
我们再来看看同一个程序的通信管理部分:
这里有通信接口初始化程序,有MODBUS-RTU的主站定义程序,有MODBUS-RTU的从站数据采集和交换的循环程序。
可见,模块化的PLC编程语言与梯形图编程语言有天壤之别。由于PLC编程语言都支持软件层面的程序调试,所以仿真没有太大的问题。
2、 怎么学习PLC
除了要有编程环境外,就需要有工程范例。
其实工程范例很容易获得,我们可以找一本描述电动机控制的书籍,把其中控制电动机的方式,当然是用继电器和接触器构成的,把这些控制方式编写成PLC控制方式。
几个范例编完,基本上就明白了。范例编完后,给自己增加难度。
例如设想有四台电机,分别作为中央空调的冷水机组、热水机组、冷却塔电机,再配上末端空调装置的风机,就构成了完整的中央空调系统。
中央空调采用热焓控制方式,并采用PID调节。试着用PLC作为中央控制系统,来编写一个程序。
这个范例完成后,最后再学习PLC的通信技术。
特别关注PLC模块化编程语言中的MODBUS-RTU模块,理解它的内容和要领。
然后编写一个数据采集和转发系统。数据来源为上一个例子中所有电动机的外围开关量、温度量、焓值、电流电压参量、电机运行状态等等。
把这些参量编写成通信协议,也即数据点表,然后发送给计算机上的ACCESS数据库。
利用ACCESS的VBA,编写若干控制界面,然后实现软件上的信息交换和控制。
这些都完成后,就可以毕业了。
从此可以胜任任何PLC的编程工作。
三、PLC的应用十分广泛
在工业环境下,PLC几乎无所不能。
为什么?
第一、 是PLC的高可靠性:因为它的程序是顺序执行的,因此不会进入死循环,几乎不会死机。
PLC不会死机,这一点十分重要。
我们原先采用工控机来作为测控和配电系统的通信管理机。
结果发现,工控机的硬盘在高温下会出现故障、工控机的电源一旦风机停转,电源很快就因为过热而停机(死机),造成通信阻断。
工控机通过各种卡件,来实现数据采集和控制功能,这些卡件故障率很高。
工控机实现硬件冗余很困难,而PLC的CPU硬件冗余十分便利。
在测控工程中将通信管理机换成PLC后,上述这些问题一劳永逸地完美解决。
第二、 是PLC具有很高的EMC(电磁兼容)水平,也即抗干扰能力。
所谓EMC指的是电器元件在运行时,抵御环境电磁干扰的能力,以及自身对环境产生电磁干扰的程度。
IEC和国家标准对电器元件和控制柜都提出了强制性EMC试验要求。
高档PLC一般需要通过2级到3级EMC群脉冲试验,以及接地电流冲击试验。
我测试过,一块多功能电力仪表的电路板,只因为电源滤波电容焊的略微高一些,整块电路板就在接地电流冲击试验中被击毁。
可见EMC测试对于电子仪表来说十分残酷,通过试验十分不易。
一句话:凡单片机能做的事,PLC一定能做 ;反过来,PLC能做的事,单片机不一定能做 ,甚至连边都沾不上。
对比:一般的家用电器要通过一级EMC试验都有点困难。
由于PLC应用是如此之广,因此一位PLC的资深优秀编程者,也一定是一位工业系统的多面手。
他熟悉各种工业条件下的元器件和传感器性能参数,熟悉各种工业条件下的测控原理和自动控制原理,明确机械原理和各种工业工艺过程,明确强电磁环境下的如何选配元器件及开关电器。当然,此人对于PLC的模块也应当十分熟悉。
总之,优秀的PLC编程者,一定同时也是技术上的佼佼者。
学习伊始,不要总想着赚钱,要沉下心来学会真本事。
天下之大,何处无芳草?何愁无处供职?
结论:关键还是在于自己的编程本领和技术水平。
来源:知乎
作者:rhythm magic
实名反对最@patrick zhang老师的答案,题主提出想学习西门子PLC,而且表示想用模拟的方式。
那么从本人经验来看,西门子PLC主要应用点还是在于梯形图、STL以及SCL。
zhang老师用的FBD,尤其是第一张图片上的内容使用梯形图完全可以做到,从Setp7 v4.0到5.5以及TIA均可实现。
而Modbus通讯也完全可以使用模块来做,FBD这种方式我认为很少用到,不信可以去西门子官方BBS上考证。
那么说了这么多,介绍一下三种不同语言的区别。
1、梯形图
对于初学者是入门学习的不二选择,并且西门子自带的库内容非常丰富,基本涵盖了初级所需一切功能。
对于单纯逻辑关系或者多一些功能的处理完全没有问题。但如果是偏电子类的人,可以考虑直接使用西门子一直以来的精华:STL。
2、STL
需要注意的是,step7 v4.0和5.x系列不管用什么语言编程,在PLC内部编译的时候,都是转化为STL的。
STL强大的地方,在于不仅可以随意处理各种逻辑关系,而且在运算以及指针等复杂的功能上,也能完成梯形图无法做到的地方。
比如当梯形图模块的PID算法需要自定义时,或者自编译冒泡法等复杂运算,可谓得STL者得天下。
3、SCL
从几年前开始,西门子最让人诟病的软件全家桶,开始让西门子痛定思痛,着手准备一个大平台,目的是将旗下大部分工控软件整合到一个统一平台中。
TIA(博途)问世了,软件的最大亮点在于,将以前step7 v5.5上收费的SCL语言包整合进来。
这是一种类似C语言的编程语言,在运算上的强大甚至超过STL,编程风格与STL类似,不赘述。
三种语言我认为学习的顺序就是以上介绍的顺序,还有就是题主担心的硬件问题,西门子有自己的模拟软件可以下载,下载学习最好从西门子200开始,软件为step7 v4.0。
还有如果学习PLC那么HMI是你必学的东西,西门子HMI的软件为wincc flexible,软件自带模拟。
适合自己的才是最好的,听取前辈的经验,总结自己的学习方法。
相关问答
求win10系统32位可以使用的PLC编程软件?-ZOL问答
西门子S7-200.PLC编程软件是xp系统下装的啊!win7够呛!我的step7v5.都不行,建议虚拟机vmware下安装XP系统吧!一般这样解决。有用(0)回复f105710339...
北京哪个Plc培训班好?
北京三源plc不错。1、北京三源PLC培训机构是早在全国各地专业开展各类工业自动化系列培训公开课及企业内训的公司,也是国内开设工控培训项目多、且能够根据不...
台达plc如何用北京时间来控制开启停止-ZOL问答
首先PLC要有万年历功能,然后将PLC上电并与编程软件WPLSoft连接,在编程软件的“设置”——“万年历设置”中,将PLC内部的万年历设置正确,然后编程使用指令TRD将P...
本人从事PLC编程10年,想办培训班但没有经验,请教各位给指点一二可以吗?
当你对你是受众人群进行了分析之后,你的培训机构的选址就很重要了,抖音上不是有很多培训机构的视频么?我想主要的培训机构面向的对象,应该还是工厂的员工,...在...
PLC编程语言中LD/IL/FBD,ST/SFC/CFC的全称是什么?望高手指点?
LD:laderdiagramIL:这个又叫STL,statementlist而IL应该是日系叫法,I什么list的意思吧,没仔细研究过日系的PLC。FBD:FunctionBlockd...
PLC培训哪里好?
科技引领生活,爱科技的小青年带你在科技的海洋里无限遨游……PLC培训哪里好,这个问题可能是所有初学者都会问的,是想着通过一个好的培训更早的掌握PLC的知识...
有没有办法让不同品牌的PLC有用同一个编程软件?
汇川,三菱,科威以及国内一大堆山寨三菱的都使用三菱的编程软件。类似的还有西门子,欧姆龙。ABB,倍福,施耐德,和利时。。。甚至于步科,他们使用了同样的软...
理论联系实际的第一步,电脑如何和PLC建立连接?
理论联系实际的第一步,如何电脑和PLC建立连接,这是学习PLC编程的第一步,把程序写入到PLC中、对程序进行监控都需要电脑和PLC进行通讯连接,这也是新手入门的第...
plc编程很难吗?
不难,PLC编程比PythonJavaWET这些语言要简单多了,我本身就是学电子信息专业,但我没学好,只懂一些皮毛,前段时间报了一个线上课程,包括寄来了6本书(...不难,...
s7-200中远程PLC地址怎么确定?
默认是2,如想更改,在下载的时候,系统设置菜单里有相应的地址,下载成功,PLC地址就是编程软件里设定的。X0-X33为输入信号,地址0-33八进制Y0-Y233为输出...