PLC编程到底是啥?看电气大神讲PLC,膜拜!真是一针见血
PLC常见的用途是替代电气控制中的继电器逻辑控制电路。例如电机控制、变电站市电进线互投和自备发电机起停控制、过程控制DCS操控系统和楼宇消防系统控制等等。一般的城市居民小区高层建筑的水压控制,就是采取PLC配套变频器执行水泵操控的。
PLC更重要的用途是构建数据交换系统,它把现场总线变换为工业以太网,实现现场设备与后台的数据交换,以及接收和执行遥控命令等等。
在工业、民居、国防、交通(地铁、港口、民航)、银行和移动的数据中心中都大量使用PLC,由此可见PLC的用途之广。
PLC的硬件系统简介
图1:ABB的AC500系列PLC
图1的左侧是通信接口模块,它能实现PLC的通信数据和网络数据交换。向右显示了"AC 500"的是PLC的主体,即CPU模块。再往右是开关量输入/输出模块以及模拟量输入输出模块。
由此我们看到,PLC类似于一个单片机系统。事实上,PLC就是单片机智能化系统,但它的可靠性和稳定性非常高,远远超过了一般的单片机。
在工业环境下的电磁骚扰强烈,所以PLC必须要满足国家标准对电磁骚扰的要求。有关电磁骚扰的国家标准如下:
图2:国家标准中对工业条件下电磁骚扰的测量方法和要求
PLC抵御电磁骚扰的硬件措施包括电源隔离、开关量输入接口采取光电隔离、模拟量也采取光电隔离等措施。输出接口的电磁骚扰会弱一些,但也需要采取一定的措施,包括OC门和继电器接口等等。
为了提高PLC的可靠性,在重要场合还采取主PLC与从PLC冗余配套工作的措施,见下图:
图3:PLC的冗余措施
我们原来在变电站电力监控系统中用工业控制计算机作为中间层面的数据处理中心,但工业控制计算机存在电源故障、硬盘故障,抗电磁骚扰能力弱,后来就淘汰了,转而使用PLC作为数据处理中心。下图是《低压成套开关设备的原理及其控制技术》中的插图:
图4:图中的CCU就是PLC构建的通信管理中心
在图4中,既有利用PLC执行低压进线、母联和自备发电机间的备自投系统,也有执行数据交换的PLC系统。
PLC的软件系统
学过初级编程知识的人都知道循环语句。一旦程序进入死循环,程序事实上就是死机了。对于PLC来说也是如此。一旦PLC进入死循环,它的接口会复位,被控制量会发生严重问题。因此,PLC的程序语句是一条条顺序执行的,一直运行到最后一条再返回,不会出现死循环。即便是转移指令,只要转移条件满足就转移,否则跳过转移程序段继续执行。
这就是PLC软件系统的可靠性很高的原因之一。
我们看下图:
图5:PLC的模块化编程语言
图5摘自北京地铁工程的PLC程序局部。
PLC程序格式有两种,其一是梯形图格式,其二是模块化编程语言格式。对于较复杂的PLC程序,一般都采用模块化编程语言来编写。不管是梯形图也好,是模块化编程语言也好,它们都必须符合国际电工委员会IEC61131-3标准的要求。
下图是用于控制电机实现星三角转换的程序:
图6:电动机星三角转换的PLC程序局部
图6中的STEP2和STEP3就是转移程序端。如果不符合条件,程序会跳过转移程序段执行。
最有意思的是PLC的PID程序模块,很有使用价值。
给大家的建议
学习PLC技术,刚开始大都以梯形图为主。实际上,PLC刚开始学习时无非就是控制十字路口红绿灯等等,真正的PLC技术绝不仅仅在于此,只要做过一个工程,对PLC的认知就会大幅提升。
话说PLC程序的比较
程序比较是编程软件一个很重要的功能,当我们不知道哪个备份是最新的时候、当我们的程序修改发生问题,需要判断是哪部分修改造成的时候,都需要进行代码对比。对于PLC来说,有在线和离线两种程序,对应的程序比较也有两种:离线-在线、离线-离线。不同的厂家和编程软件提供的比较功能也是不同的,下面就我熟悉的几个产品进行一下简单对比:
一、西门子STEP7
STEP7可以进行在线-离线,离线-离线对比,当代码不同时,可以打开代码进行逐行比较,能快速跳转到不同的地方。
离线对比时,可以进行不同项目的对比,也可以进行本项目内不同程序目录、设备的对比。
二、西门子TIA博图
TIA博图软件功能非常强大,其比较功能也很强大和漂亮。
在线后,马上就能看出哪些程序块不一致。然后对于不一致的程序块点击右键,选择快速比较->与在线对象进行比较,就可以马上进行对比,不一致的程序段会醒目标识,非常方便。
如需进行离线-离线比较,在打开主项目后,再打开参考项目,选择对应的欲比较的块,也可以完成比较(首先选择在左侧窗口的块,然后再到另外一个项目里选择欲对比的块即可)。
三、罗克韦尔(AB)的RSLogix
最近处理一起AB PLC5软件故障时,需要知道离线和在线程序的异同,对于20年前的RSLogix5 Pro软件是否有对比功能,很担心,翻了一下菜单,竟然找到了,操作非常简单,结果界面非常漂亮、清晰。同样,可以快速定位到不同点。
遗憾的是,PLC5只能进行离线-离线比较,如果需要在线-离线比较,需要先上传程序,离线保存,再进行比较。
对于RSLogix5000,默认是不带比较功能的(这有点奇葩),需要自己安装RSLogix 5000 Compare Tool(可以集成在RSLogix5000内),也只能进行离线-离线比较(咋几十年没有啥大变化呢?)。
四、ABB的APB软件
ABB的APB编程软件是AC450、AC110、AC80等进行编程的工具。对于小控制器,如果在线与离线不一致,根本就不允许在线,因此,不存在在线-离线比较的可能。对于AC450这种大型控制器,在线与离线是分离的,同样没有在线-离线比较的功能。
同时,APB也不提供离线-离线比较的功能。如果需要进行比较,怎么办?将离线程序转成源文件(source),在线程序进行源程序上载,再转变成源文件,用第三方的比较软件进行文本比较即可(比如ultraCompare)。
曾经发生过最新源程序丢失的事故,我上载后,与老版本进行对比,修改,才逐步恢复了完整的源程序。
小结
当我们拿到一个程序,不知道是否最新版本时,对于西门子软件,可以进行在线,然后自动或者手动对比即可。对于罗克韦尔,如果与在线不一致,则会直接告知用户,并且不允许在线。对于AC450,在线时,也会自动进行用户存储信息(包括注释等)的比对,但是不能说明程序是否一致,要小心对待。总之,程序比较是一个比较重要的功能,可以为工作带来比较大的便利。
2019年12月10日
说明:
1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。
2、原创不易,欢迎转发,让更多朋友看到(引用请注明出处!)
相关问答
plc编程和软件编程的区别?
1.语言上有不同,PLC编程一般都是LAD语言(也就是梯形图),而软件语言是语法语言。2.PLC编程一般要了解设备的工艺流程,各种运行设备之间的逻辑关系,而软件语...
组态与plc区别?
PLC是负责程序控制和输入输出信号采集与输出;组态软件负责程序控制和数据处理(如记录,展示等);二者象头脑(上位)和躯干(PLC)的关系;程序控制部分功...PLC...
plc编程软件如何与CPU交互?
1,PLC与PC间连网线2,给plc上电3,打开step7-micro、winsmart4,双击屏区左区项目下CPU,选CPUSR40,出现系统块,IP192.168.2.1,子网俺码2...
plc编程很难吗?
不难,PLC编程比PythonJavaWET这些语言要简单多了,我本身就是学电子信息专业,但我没学好,只懂一些皮毛,前段时间报了一个线上课程,包括寄来了6本书(...不难,...
什么是PLC怎么用,用什么软件编程,不同型号的PLC编程方式一样吗?
PLC是一台可编程逻辑控制器,至于用法(它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数...
和利时powerpro和autothink的不同在哪里-ZOL问答
你好,我们单位就用和利时LM系列和西门子s7-200系列PLCpowerpro和autothink都是和利时PLC的编程软件,区别是:powerpro是用于和利时LM系列PLCautothin...
欧姆龙软件编程的梯形图后怎么样上传到plc里-ZOL问答
1、硬件准备:将PLC用编程电缆和电脑连接,并安装电缆驱动(USB的要,串口不要)。2、软件准备:在编程软件中通信设置PLC类型、通信类型中toolbus,选择所要连接的串...
上位机与plc的区别?
一、主体不同1、上位机:可以直接发出操控命令的计算机。2、PLC:直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。二、通讯协议不同1、上位机:...
plc先接线还是先编程?
PLC的接线和编程是没有严格意义上的先后顺序的。接线是属于安装的过程,编程是属于软件编写过程,可以同时进行,也可以先把线全部接好,再进行编程,也可以先把...
科创思plc用什么编程软件?
各个厂家都有自己的软件,比如国内最流行的西门子plc,有三款编程软件,对应不同的plcs7-200--------microwins7-300、400------step7s7-1200----...