随着个人计算(PC机)和通讯技术的发展,现在PLC和DCS的设计结构越来越接近.基本构架都是操作站通过以太网接主站,主站通过现场总线接从站。出于安全性的考虑,冗余技术也不断发展,双冗余(如:GTCON2000)、三冗余(如:TRICON)、七冗余(航空领域)。从PLC主站CPU的运行方式上又分为冷备、热备和同步热备。冗余技术的发展使得PLC可以冲破低级芯片的限制,而大量应用尖端的电子技术,与PC机发展同步。由于个人计算机的飞速发展,PC机变得稳定而可靠。其接口的开放性,通讯和cpu的速度都使得它比原始设计思想下的PLC更适用于工控的要求。因此出现了软PLC的概念,又称为软逻辑。其构架是:在PC机上安装如Linux、WinCE等操作系统,而在操作系统中运行IEC1131的逻辑执行程序,作为PLC系统的主站(如:GTCON2000就是如此)。这种嵌入式的PLC使得工业控制可以应用各个领域的先进技术,突破了禁锢瓶颈,典型的软逻辑PLC结构为 ARM嵌入Linux然后安装PLC解释程序(www.LinuxPLC.cn)。软PLC的另外一个发展分支是,直接在微软的个人计算机操作系统上运行类似PLC的软件,而用计算机取代PLC系统中的主站。运行软件PLC的计算机可以充分应用计算机的开放性接口和通讯速度,兼容性好。可以挂接板卡、USB设备、以太网设备、串行通讯设备。比较典型的应用方案是:组态王软逻辑通过串行通讯(现在也可用以太网)挂接研华的亚当模块。随着电子技术、通讯技术和软件技术的不断发展。这种构架将完全取代PLC 和 DCS 成为主流形式。但目前PC机技术、操作系统和以太网还不能满足可靠性要求。
PLC的控制技术
PLC实现控制的过程一般是:
输入刷新--再运行用户程序--再输出刷新--再输入刷新--再运行用户程序--再输出刷新……永不停止地循环反复地进行着。
有了上述过程,用PLC实现控制显然是可能的。因为:有了输入刷新,可把输入电路监控得到的输入信息存入PLC的输入映射区;经运行用户程序,输出映射区将得到变换后的信息;再经输出刷新,输出锁存器将反映输出映射区的状态,并通过输出电路产生相应的输出。又由于这个过程是永不停止地循环反复地进行着,所以,输出总是反映输入的变化的。只是响应的时间上,略有滞后。当然,这个滞后不宜太大,否则,所实现的控制不那么及时,也就失去控制的意义。
为此,PLC的工作速度要快。速度快、执行指令时间短,是PLC实现控制的基础。事实上,它的速度是很快的,执行一条指令,多的几微秒、几十微秒,少的才零点几,或零点零几微秒。而且这个速度还在不断提高中。
公共处理工作有:循环时间监控、外设服务及通讯处理等。
监控循环时间的目的是避免"死循环",避免程序不能反复不断地重复执行。办法是用"看门狗"(Watchingdog)。只要循环超时,它可报警,或作相应处理.
外设服务是让PLC可接受编程器对它的操作,或通过接口向输出设备如打印机输出数据.
通讯处理是实现PLC与PLC,或PLC与计算机,或PLC与其它工业控制装置或智能部件间信息交换的。这也是增强PLC控制能力的需要。
也就是说,实际的PLC工作过程总是:公共处理--I/O刷新--运行用户程序--再公共处理--……反复不停地重复着。
1.3可编程控制器实现控制的方式
用这种不断地重复运行程序实现控制称扫描方式。是用计算机进行实时控制的一种方式。此外,计算机用于控制还有中断方式。在中断方式下,需处理的控制先申请中断,被响应后正运行的程序停止运行,转而去处理中断工作(运行有关中断服务程序)。待处理完中断,又返回运行原来程序。哪个控制需要处理,哪个就去申请中断。哪个不需处理,将不被理睬。显然,中断方式与扫描方式是不同的。
在中断方式下,计算机能得到充分利用,紧急的任务也能得到及时处理。但是,如果同时来了几个都要处理的任务该怎么办呢?优先级高的还好办,低的呢?可能会出现照顾不到之处。所以,中断方式不大适合于工作现场的日常使用。
但是,PLC在用扫描方式为主的情况下,也不排斥中断方式。即,大量控制都用扫描方式,个别急需的处理,允许中断这个扫描运行的程序,转而去处理它。这样,可做到所有的控制都能照顾到,个别应急的也能进行处理。
PLC的实际工作过程比这里讲的还要复杂一些,分析其基本原理,也还有一些理论问题。有关人员如果能把上面介绍的入出变换、物理实现--信息处理、I/O电路--空间、时间关系--扫描方式并辅以中断方式,作为一种思路加以研究,弄清了它,也就好理解PLC是怎样去实现控制的,也就好把握住PLC基本原理的要点了。
PLC常用程序设计语言简介
PLC常用程序设计语言简介方源 可编程控制器程序设计语言:
在可编程控制器中有多种程序设计语言,它们是梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成大多数简单的控制功能,例如,代替继电器、计数器、计时器完成顺序控制和逻辑控制等,通过扩展或增强指令集,它们也能执行其它的基本操作。功能表图语言和语句描述语言是高级的程序设计语言,它可根据需要去执行更有效的操作,例如,模拟量的控制,数据的操纵,报表的报印和其他基本程序设计语言无法完成的功能。功能模块图语言采用功能模块图的形式,通过软连接的方式完成所要求的控制功能,它不仅在可编程序控制器中得到了广泛的应用,在集散控制系统的编程和组态时也常常被采用,由于它具有连接方便、操作简单、易于掌握等特点,为广大工程设计和应用人员所喜爱。
根据可编程器应用范围,程序设计语言可以组合使用,常用的程序设计语言是:梯形图程序设计语言 、 布尔助记符程序设计语言(语句表)、功能表图程序设计语言 、功能模块图程序设计语言、 结构化语句描述程序设计语言、 梯形图与结构化语句描述程序设计语言、 布尔助记符与功能表图程序设计语言、 布尔助记符与结构化语句描述程序设计语言。
1、梯形图(Ladder Diagram)程序设计语言
梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,程序采用梯形图的形式描述。这种程序设计语言采用因果关系来描述事件发生的条件和结果。每个梯级是一个因果关系。在梯级中,描述事件发生的条件表示在左面,事件发生的结果表示在后面。梯形图程序设计语言是最常用的一种程序设计语言。它来源于继电器逻辑控制系统的描述。在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉,因此,由这种逻辑控制技术发展而来的梯形图受到了欢迎,并得到了广泛的应用。
梯形图程序设计语言的特点是:
(1)与电气操作原理图相对应,具有直观性和对应性;
(2)与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于撑握和学习;
(3)与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power FLow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待;
(4)与布尔助记符程序设计语言有一一对应关系,便于相互的转换和程序的检查。
2、布尔助记符(Boolean Mnemonic)程序设计语言
布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。 布尔助记符程序设计语言具有下列特点:
(1)采用助记符来表示操作功能,具有容易记忆,便于撑握的特点;
(2)在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;
(3)与梯形图有一一对应关系。其特点与梯形图语言基本类同。
3、功能表图(SepuentialChart)程序设计语言
功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。它是近年来发展起来的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。
功能表图程序设计语言的特点是:
(1)以功能为主线,条理清楚,便于对程序操作的理解和沟通;
(2)对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间;
(3)常用于系统的规模校大,程序关系较复杂的场合;
(4)只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。
功能表图来源于佩特利(Petri)网,由于它具有图形表达方式,能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的象死锁、不安全等反常现象进行分析和建模,在模型的基础上能直接编程,所以,得到了文泛的应用。近几年推出的可编程控制器和小型集散控制系统中也已提供了采用功能表图描述语言进行编程的软件。关于佩特利(Petri)网的一些基本概念,我在以后有机会时再介绍给各位,以有助于对功能表图的进一步理解。
4、功能模块图( Block)程序设计语言
功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功能模块有不同的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其它端子,完成所需的控制运算或控制功能。功能模块可以分为不同的类型,在同一种类型中,也可能因功能参数的不同而使功能或应用范围有所差别,例如,输入端的数量、输入信号的类型等的不同使它的使用范围不同。由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制方案的更改、信号连接的替换等操作可以很方便实现。
功能模块图程序设计语言的特点是:
(1)以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
(2)功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;
(3)对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少;
(4)由于每种功能模块需要占用一定的程序内存,对功能模块的执行需要一定的执行时间,因此,这种设计语言在大中型可编程控制器和集散控制系统的编程和组态中才被采用。
5、结构化语句(Structured Text)描述程序设计语言
结构化语句描述程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。
结构化语句描述程序设计语言采用计算机的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数制造厂商采用的语句描述程序设计语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
结构化程序设计语言具有下列特点:
(1)采用高级语言进行编程,可以完成较复杂的控制运算;
(2)需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成。
(3)直观性和易操作性等性能较差;
(4)常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。部分可编程序控制器的制造厂商为用户提供了简单的结构化程序设计语言,它与助记符程序设计语言相似,对程序的步数有一定的限制,同时,提供了与可编程序控制器间的接口或通信连接程序的编制方式,为用户的应用程序提供了扩展余地。另外一个发展方向是PAD。