电工学习网

 找回密码
 立即注册
查看: 3478|回复: 2
打印 上一主题 下一主题

经验|听前辈聊PLC编程

[复制链接]
跳转到指定楼层
楼主
发表于 2020-5-17 21:39:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一千个人就有一千个学习方法,别人的方法或许不适合自己,但是绝对值得我们借鉴。
来源:知乎
作者:Patrick Zhang

plc并不难学, plc编程语言符合IEC 61131标准。其中比较主流的语言是模块化的编程语言,也即IEC 61131-3语言。

由于所有的PLC生产厂家都必须遵循IEC 61131标准,因此深入学习某一款PLC后,其它的PLC大体上是类似的。

1、模块化编程方式

学校PLC课本上讲解时一般都用梯形图。这是很落后的一种编程方式。走上工作岗位后,务必改用模块化编程方式。之所以要摒弃梯形图的编程方法,是因为梯形图有很多局限。

举一个最简单的例子:当三个开关量在梯形图上构成三角形时,这个梯形图是无法执行的,必须用三角-星转换为星形结构才行。

这种问题在模块化编程语言中根本就不会出现。由于梯形图的局限性,纯梯形图程序中也开始配套模块图了。

现在梯形图应该还是主流的PLC编程语言,模块化编程虽然是趋势可学习时从梯形图入门仍然是比较推荐的方法。

下图是我为北京地铁的双路电源自动投退系统编写的程序局部:

经验|听前辈聊PLC编程

此程序用模块化的编程语言IEC 61131-3写成。可见模块化的PLC程序有点类似集成电路的形式,甚至连PID测控都有相应的模块。

我们再来看看同一个程序的通信管理部分:

经验|听前辈聊PLC编程

这里有通信接口初始化程序,有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,软件自带模拟。
适合自己的才是最好的,听取前辈的经验,总结自己的学习方法。

回复

使用道具 举报

沙发
发表于 2020-5-17 22:16:04 | 只看该作者
谢谢admin分享经验,作为一个初学者,希望前辈们分享一些有用的教学视频和软件

回复 支持 反对

使用道具 举报

板凳
发表于 2020-5-18 14:33:29 | 只看该作者
面向大海2020 发表于 2020-5-17 22:16
谢谢admin分享经验,作为一个初学者,希望前辈们分享一些有用的教学视频和软件

受益匪浅啊 不错的资源哈

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-23 16:36

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表