一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂
你真的了解PLC吗?你知道PLC与计算机的本质区别吗?我来简单解释一下吧。
第一、PLC可以工作在极其恶劣的电磁环境中
如果我们把计算机直接放到PLC工作的环境中,无需太久,这些计算机将死机甚至烧毁。
在ABB的早期工程中,我们就是把工业控制计算机直接放在变电站开关柜中,用来实施测控和数据处理。然而,用不了多久,电源故障和硬盘故障,还有输入输出接口的故障就接踵而来。直到我们用PLC替换下这些工控机,事情才算完。
这叫做抵御电磁骚扰EMC的能力,PLC可达三级甚至四级,而计算机能达到二级就算很不错了。
抵御EMC电磁骚扰,会有许多措施。例如隔离技术、接地技术等等都是。
第二、PLC的程序是一行行顺序执行的,不会陷入死循环
我们在编写计算机程序时,经常会遇见循环。如果一个循环子程序设计不恰当,或者条件引起了程序返回,有可能进入到死循环中,系统当然就死机了。
然而,PLC的程序是一条接一条顺序执行的,只有到了程序末尾才会回头。在程序中任何部位,若条件满足,可以实现跳转,但程序还是一条接一条顺序执行。
如此一来,PLC几乎不会死机。这也是PLC区别于普通计算机的根本特性。
因此,我们会发现PLC的可靠性极高,这是普通计算机完全不能比拟的。
第三、冗余配置
所谓冗余配置,就是在控制过程中存在主机和从机,它们依靠握手线关联,并共享资源和信息。
如果是计算机,当主机出现问题时,切换到从机的时间较长。但对于PLC,我们可以在机架上安排2套CPU作为主从控制,它们之间的转换仅几个时钟周期即可完成。
例如我们的控制对象是汽轮机,它的转子在高速旋转。我们不妨假定转子的转速就是工频周期,也即每分钟3000转。如果我们对汽轮机实施DCS监控,在现场层面我们只能选用带冗余配套的PLC,绝不可能使用计算机。一旦PLC的主机发生故障,它立刻就转入从机控制,对于受控对象来说几乎感觉不到,但计算机就未必可以实现类似功能了。
事实上,带冗余配套的PLC系统就属于规模较大的PLC了。
第四、PLC的程序特点
PLC的程序规模都不大,一般才几千字节,能上万字节就算很大的程序了。
PLC有许多输入输出接口,以及各种类型的变量,这些都需要专门设置地址,以便在程序中使用。
我们看下图,此图是用PLC国际通用标准IEC61131-3模块化编程语言写成的:
图1:某地铁配电控制系统PLC的输入接口参数定义程序和延迟判误程序
在图1中,我们在左侧看到了许多输入参量,它们的末尾都有_s的标识,这些就是开关量输入参数,它们不但有地址,还有名称。这是必须的,否则程序无法辨识和使用它们。
我们由图1的程序看到,这种编程方法比所谓的C语言方便得多。事实上,每一个功能块就相当于一段C语言。例如TON模块,它是延迟模块,如果用C语言,怎么也要若干语句行,但这里仅仅只是一个程序模块而已。何者更方便一看便知。
我们再看下图:
图2:PLC的16位字解析为单个开关量的程序段
图2中,程序开头的AND(与逻辑模块)实施程序转移。当条件满足时,AND启动子程序入口。
在图2中,我们看到了UNPACK16模块,它的任务是把一个16位的字解析为16个开关量,供下一步程序使用。
我们很容易想到,这个UNPACK16模块若用C语言来写,又会有何种形式?何者更方便?
我们看下图:
图3:数据交换的RS485接口定义和MODBUS通信管理
图3是PLC对系统中各种数据交换的定义、数据采集和管理。图中的一个个模块就是处理MODBUS通信协议数据的,同时还实现数据采集轮巡操作。
这些模块用C语言该如何写?是不是会麻烦很多?
我们看到,PLC程序的便捷性是C语言无法比拟的。
第五、PLC的工作范围
PLC的内存不大,尽管它的可靠性很高,但PLC不能用于较大的计算。我曾经设计过一个PLC程序,用于浮点数的乘法,麻烦得很,最后不得不使用模块配合查表来解决问题。
PLC的内部其实就是单片机,只不过整个PLC的单片机系统经过了严格的EMC测试,而操作系统和编程系统也进行了优化,方便我们这些编程者使用。
既然PLC只是一台单片机系统,可想而知它与计算机不在同一个技术水平上。计算机能够完成的工作,哪怕只是一篇WORD文档的写作,用PLC绝不可能完成。但PLC能够轻松实现的控制功能,用计算机虽然也能勉强实现,但效果极差,且可靠性极低,尺寸也巨大。
如此看来,PLC与计算机的工作特性不一样,适用的工作对象当然也不一样。
什么是PLC?单片机和PLC有什么区别?
自二十世纪六十年代美国推出PLC取代传统继电器控制装置以来,PLC得到了快速发展,在世界各地得到了广泛应用。同时PLC的功能也不断完善,随着计算机技术、信号处理技术、控制技术网络技术的不断发展和用户需求的不断提高,PLC在开关量处理的基础上增加了模拟量处理和运动控制等功能。今天的PLC不再局限于逻辑控制,在运动控制、过程控制等领域也发挥着十分重要的作用。
PLC
PLC (Programmable Logic Controller) 是可编程逻辑控制器,专为工业生产设计的一种数字运算操作的电子装置,它采用一类可编程的存储器,用于其内部存储程序、执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。是工业控制的核心部分。
单片机
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在各个领域广泛应用。
诸如手机、汽车电子、工业上的步进马达、机器手臂的控制等,都可见到单片机的身影。单片机的特点是编程、维护相对复杂,编程方式常用C语言或者汇编语言,成本较低,I/O接口相对有限。
PLC与单片机的区别
PLC是应用单片机构成的比较成熟的控制系统,是已经调试成熟稳定的单片机应用系统的产品,有较强的通用性。单片机可以构成各种各样的应用系统,使用范围更广,但单就“单片机”而言,它只是一种集成电路,还必须与其它元器件及软件构成系统才能应用。从工程的使用来看,对单项工程或重复数极少的项目,采用PLC快捷方便,成功率高,可靠性好,但成本较高。对于量大的配套项目,采用单片机系统具有成本低、效益高的优点,但这要有相当的研发力量和行业经验才能使系统稳定。从本质上说,PLC其实就是一套已经做好的单片机(单片机范围很广泛)系统。
PLC的特点
PLC广泛使用梯形图代替计算机语言,对编程有一定的优势。你可以把梯形图理解成是与汇编等计算器语言一样,是一种编程语言,只是使用范围不同。而且通常做法是由PLC软件把你的梯形图转换成C或汇编语言(由PLC所使用的CPU决定),然后利用汇编或C编译系统编译成机器码。PLC运行的只是机器码而已,梯形图只是让使用者更加容易使用而已。
如所说,MCS-51单片机也可以用于PLC制作,只是8位CPU在一些高级应用如:大量运算(包括浮点运算)、嵌入式系统(现在UCOS也能移植到MCS-51)等,有些力不从心而已。不过加上DSP就已经能满足一般要求了,而且同样使用梯形图编程,我们可把梯形图转化为C51再利用KEIL的C51进行编译。不难发现不同型号的PLC会选用不同的CPU,其实也说明PLC就是一套已经做好的单片机系统。
这样一看PLC其实并不神秘,不少PLC是很简单的,其内部的CPU除了速度快之外,其他功能还不如普通的单片机。通常PLC采用16位或32位的CPU,带1或2个的串行通道与外界通讯,内部有一个定时器即可,若要提高可靠性再加一个看家狗定时器问题就解决了。
另外,PLC的关键技术在于其内部固化了一个能解释梯形图语言的程序及辅助通讯程序,梯形图语言的解释程序的效率决定了PLC的性能,通讯程序决定了PLC与外界交换信息的难易。对于简单的应用,通常以独立控制器的方式运作,不需与外界交换信息,只需内部固化有能解释梯形图语言的程序即可。
实际上,设计PLC的主要工作就是开发解释梯形图语言的程序。现在的单片机完全可以取代PLC。以前的单片机由于稳定性和抗电磁干扰能力比较的弱和PLC是没有办法相比的,现在的单片机已经做到了高稳定性和很强的抗干扰能力在某些领域已经实现了替换。
单片机可以取代PLC吗?
有人说这是个伪问题,单片机是元器件,PLC是由元器件以及庞大的软件构成的系统,两者在这一方面没有可比性 —— 大多PLC的控制芯片实际上就是单片机,也就是说可以将PLC看成是单片机的二次开发。单论工业防护等级,单片机的稳定性和可靠性能根本比不了PLC这种IP67类的产品( IP为标记字母,第一标记数字表示接触保护和外来物保护等级,第二标记数字表示防水保护等级)。而且就PLC这种能应对工业恶劣环境的产品还开发出一套冗余系统。
I/O功能
单片机的I/O点实在有限,而反观PLC呢?针对不同的现场信号,均有相应的I/O点可与工业现场的器件(如按钮、开关、传感电流变送器、电机启动器或控制阀等)直接连接,并通过总线与CPU主板连接。工业里几乎任意一条生产线,都有上百甚至上千I/O点,就这点单片机完全无法比拟。
开发周期
PLC的品牌多达200多种,几乎每个品牌都有不同编程软件,而且都在不断完善自己的编程软件,使之能够越来越简单的服务于电气工程师,而各种程序块也是越来越方便人性化的任意去调用,比如PID模块、运动控制模块等,大大减轻了工程师的开发压力也缩短了开发周期。
那单片机要如何实现?没有现成的模块使用,那就只能开发,那么做过非标自动化设备的工程师都会遇到工期不足问题。PLC这种高度集成化模块化的产品在达到满足设备所需的开发周期,在工期面前也是抓襟见肘,更不用说如同白纸一张的单片机。
通信距离
现在大多数流水线是要跨区域整合与监视的,所用的通讯方式多为以太网加中继器,或者直接走民用宽带光纤,所用的东西到最后很可能是用的就是微软的IE浏览器,很明显PLC是有RJ-45接口,即使本体没有RJ-45也可以配备以太网模块,可单片机搭载的PCB板能加上这个接口然后开发出以太网通信吗?开发需要多久?
编程语言
这点对单片机来讲是一个优势,同时也是一个劣势。上面提到PLC的品牌有两百多种,编程软件更多,尽管大多数PLC的编程语言都大同小异,但是每接触一款不同品牌的PLC,电气工程师就要从PLC的硬件参数、软元件、编程软件等等各个方面从头了解一次才能使用的得心应手。而单片机的编程语言用的是C语言或者汇编语言,这对于任何单片机都是通用的。换句话说,学会C语言或者汇编语言,便可以应用任何单片机开发想要的功能(前提是要有相关的电工电子学基础)。
但话又说回来,电气工程师不是电子工程师,他们的工作不是单单考虑单片机如何驱动继电器来控制机床的,甚至有的电气工程师都不会C语言、汇编语言之类的MCU开发语言。近些年,IEC-61131-3标准的推广,越来越多的PLC支持多种编程语言,如类似C语言的ST语言,类似电路图的CFC语言。这种便利的功能是传统单片机开发环境真的无法实现。
在工业控制领域,PLC占据绝对优势,就目前形势(单片机的功能、稳定性、易用性、编程及维护等)来看,单片机取代PLC那将是一项不可能完成,或者说期限趋向于无穷的艰巨任务。
相关问答
计算机编程与PLC编程有何区别?
其实编程方法都一样关键是硬件环境不一样PLC编程相对简单一点PLC编程一般有5种语言:梯形图语句表功能图ST文本流程图等;计算机编程语言就很多了一般...
数控编程与plc编程的区别?
PLC编程与数控编程不同点:1.plc主要是用于非标自动化设备,而数控是针对标准机台(如车床、铣床,磨床等)。2.plc编程是开放的平台,可以根据自己的想法随意...
工业机器人编程和plc区别?
1、工业机器人编程和PLC的区别是编程语言不一样。2、工业机器人是根据其本身的控制对象采用C语言进行编程运用。工控PLC多采用专门语言和梯进图进行编程,是原...
程序员和plc的区别?
有区别。程序员和PLC工程师的区别如下:职业发展方向:程序员一般从事软件开发、程序测试、编码等工作,专注于编写代码和开发软件。PLC工程师主要面向工业自动...
自动化和plc有什么区别?
自动化包含PLC。PLC是指逻辑控制器,是实现自动化控制的一种选择控制方法。自动化控制可选的控制方案有好多,可以用电脑控制,可以用单片机控制,也可以用运动...
机械手编程与plc区别?
你好,机械手编程和PLC编程在本质上是不同的。机械手编程是指编写程序,使机械手能够按照预定的路径和动作进行操作。而PLC编程则是将逻辑控制器(PLC)编程,以...
dcs编程与plc编程区别?
DCS编程一般都提供统一的数据库,换句话说,在DCS系统中一旦一个数据存在于数据库中,就可以在任何情况下引用,比如在组态软件中、在监控软件中、在趋势图里、在...
PLC编程属于硬件编程还是软件编程?跟IT有区别么?谢谢?
硬件编程针对的是硬件的驱动之类的东西,应该说是底层的东西,一般用C、C++和汇编以及hdl语言编写,需要对数字逻辑,数字电路,模拟电路等电子学方面有一定的基...
单片机和PLC的比较?
单片机和PLC的区别如下:结构不同:PLC是建立在单片机之上的产品,单片机是一种集成电路。用途不同:单片机可以构成各种各样的应用系统,从微型、小型到中型、...
plc编程与c#的区别?
PLC编程与C#是两种不同的编程语言,它们在应用领域和特点上有一些明显的区别。以下是几个方面的比较:1.应用领域:PLC编程主要用于工业自动化控制系统,如生产...