利用PLC在工业控制中实现多任务处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用PLC在工业控制中实现多任务处理
陶敏;郭琪
【摘要】通过对PLC工作原理以及现场总线系统的分析,探讨了如何在PLC这种常规的控制设备上实现多任务并行处理,并提出了一些简单易行的方法。
%In this paper,how to realize multi task parallel processing in PLC,a conventional control e-quipment,was discussed by analyzing the working principle of PLC and fieldbus systems.Some simple and easy methods were presented.【期刊名称】《昆明冶金高等专科学校学报》
【年(卷),期】2014(000)005
【总页数】5页(P43-47)
【关键词】PLC;现场总线;多任务处理
【作者】陶敏;郭琪
【作者单位】昆明冶金高等专科学校电气学院,云南昆明650033;中国船舶重工集团公司第七二二研究所,湖北武汉430205
【正文语种】中文
【中图分类】TP273
随着工业生产由简单过程向大型化、连续化、集成化和复杂化的方向发展,与之相对应的控制技术、控制理论、控制系统和控制工具都发生了很大的变化,特别是控制工具由常规的仪器仪表控制或继电接触器控制发展到了计算机控制。
PLC(可编程控制器)是由传统的继电接触器控制发展来的一种应用十分广泛的通
用微机控制装置。
20世纪70年代至今,PLC已经由最早的代替继电接触器控制
系统进行逻辑控制的简单设备,发展到了可以实现模拟量PID调节或其他智能控
制的高级智能控制器。
由于PLC具有功能强大、简单易用、可扩展性高、工作可靠、维护方便等特点,所以迅速成为工业控制领域最常用的控制设备。
但是,由于PLC的核心是单片机,而PLC本身所带的系统软件都是单任务操作的,所以要通
过PLC来实现多任务并行处理就显得有些力不从心。
近几年来,随着计算机技术
的发展,PLC的CPU处理能力越来越快,处理一条指令的速度已经达到了微秒级;同时PLC的连网通讯能力也得到了很大的提高,通过PLC来实现控制系统中的多任务并行处理已经变成了可能。
本文就工作中所积累的编程经验,论述如何通过软件在PLC中实现多任务处理。
PLC中的程序分为操作系统和用户程序2部分。
操作系统用于PLC的启动、刷新
输入/输出过程映像区、调用用户程序、处理中断和错误、管理存储区和通信等任务。
用户程序则是由用户编写的实现自动化任务的程序,现代的PLC中已经实现
了结构化程序设计,通过子程序的调用实现控制功能。
与普通的计算机不同,PLC在工作时采用循环执行用户程序的方式,这种运行方
式也称为扫描工作方式。
PLC上电或由STOP模式切换到RUN模式时,CPU执
行启动操作,清除没有保持功能的位存储器、定时器和计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等,然后进入周期性的循环运行。
下面是循环处理各个阶段的任务:
(1)操作系统启动循环时间监控;
(2)CPU将输出过程映像区的数据写到输出模块;
(3)CPU读取输入模块的输入状态,并存入输入过程映像区;
(4)CPU处理用户程序,执行用户程序中的指令;
(5)在循环结束时,操作系统执行所有其他的任务,如处理中断、接收和发送全
局数据等;
(6)CPU返回第一阶段,重新启动循环时间监控。
操作系统执行一次上述操作所需要的时间叫循环时间(Cycle time),循环时间又称扫描循环时(Scan cycle time)或扫描周期。
循环时间与用户程序的长短、指
令的种类和CPU执行指令的速度有很大的关系。
当用户程序较长时,指令执行时
间在循环时间中占相当大的比例。
在现代的PLC中,在PLC处于运行时,利用编程软件的监控功能,可以获得最大循环时间、最小循环时间和上一次的循环时间,并且可以通过编程软件来修改默认设置的最大循环时间和最小循环时间。
在早期的计算机中,由于操作系统都是单任务的,所以也只能实现单任务的处理,当多任务的操作系统(如Unix、Windows)出现后,计算机才可以实现多任务处理。
在使用多任务操作系统的计算机中,CPU在某一特定时刻其实也只是在处理
一个特定的任务,只不过由于操作系统将CPU时间按任务的要求分成了若干小段,每一段负责处理一项任务,反复轮换交替,当时间段足够短,同时CPU的处理速
度足够快时,从宏观看来,计算机就是在并行地处理多项任务。
根据这一原理,可以考虑通过在用户程序中做一些设置来实现PLC中多任务的并
行处理。
PLC本身的操作系统是单任务的,但是,由于PLC使用的是循环扫描工
作方式,这样,可以在一段用户程序中放置多个任务,如任务1、任务2和任务3,当CPU第1次循环的时候先执行任务1、再执行任务2、最后执行任务3,第2
次循环时,又重复第1次的操作,如果每次循环的时间足够短,从宏观上看,PLC 也相当于在并行处理多个任务。
现代PLC处理指令的能力都已经达到了毫秒甚至
微秒级,所以一般的多任务控制问题都可以通过这种方法来进行处理。
随着PLC技术的发展,目前,几乎所有的PLC都具备了网络通讯的能力。
如西门子公司的S7系列的各型PLC都可以通过外接的网络模板或自带的网络接口连接到
Profibus现场总线当中。
这就提供了另一条并行处理多项任务的途径。
当控制系
统中需要进行多任务并行处理时,可以采用几台功能相对较弱的PLC作为从站来
分别处理这些任务,采用一台功能较强的PLC作为主站来对各从站的任务进行统
一的管理,从而达到多任务的目的。
由于使用这种方法需要多台PLC通过网络进
行并行处理,投资较大,系统比较复杂,所以一般用于一些控制要求较复杂、被控变量较多的控制场合。
一般来说,PLC采用语句表、梯形图和功能图3种常用方法来进行用户程序的编写,其中,梯形图简单易懂、方便学习,是最常用的编程方法。
在PLC系统的设计过程中,为了方便编程人员设计应用程序,一般采用经验设计法、继电器电路转换法、逻辑分析法和顺序控制设计法等几种方法来进行程序设计。
其中经验设计法是根据程序设计人员已有的编程经验进行程序设计;继电器电路转换法是将传统的继电接触器控制系统中的电路转换成为PLC的梯形图来实现程序
设计,这2种方法都与设计人员的工作经验有关,不具备一般性。
而逻辑分析法
和顺序控制设计法在程序设计之前都要根据被控对象的工作原理进行分析,再根据分析的结果来进行程序设计。
在较简单的控制系统中,可能采用上述的某一种方法就能够解决控制所要解决的问题,这样的系统不在我们的讨论范围内。
对于复杂的控制系统,一般要通过2种
或2种以上的方法进行分析才能找到解决问题的途径。
一般说来,逻辑分析法主
要用于对控制的逻辑性要求较高的系统;顺序控制设计法主要针对按照一定时间先后顺序动作的被控对象的控制。
在实际的控制中,需要并行处理的任务一般有以下的2种情况:
1)整个控制过程总体来讲是按时间先后顺序来动作的,但其中控制过程中的某些动作是同时进行的,并要求在几个动作之间进行协调。
2)并行处理的几个任务中,有些任务对控制的逻辑性要求较高,或直接对过程量
的连续控制;有些任务是按照时间的先后顺序来动作的。
对于第1种情况,可以用顺序控制设计法所提供的工具直接进行分析,最后通过
程序来实现多任务的并行处理,例如图1所示的控制要求。
在图1中,每一个方
框代表一项操作,称为步,在步上通过数字来进行标识;竖直的线段表示程序进行的方向,称为有向线段,默认的方向是从上到下,当方向为默认方向时不需要进行标注;短横线表示转移的条件,也就是当条件达成时,程序从上一步转换到由有向线段指向的下一步,短横线旁边的字母是转移条件的具体内容,一般是一些标志性的位、开关或定时器;平行的双横线表示并行分支,表示向下的几个分支是同时发生的。
从上面的描述可以看出,其实顺序控制设计法中的并行分支就是用来对并行的多任务进行描述的。
这里用图1的例子来说明在实际过程中是如何处理并发的事件的。
在图1所示的
流程中,第2、4、6步是3个并行发生的任务所要完成的具体工作,当b条件发
生时,程序从第1步转换,即第2、4、6步同时进行,当c条件发生时,表示第
2步的操作已完成;当d条件发生时,表示第4步的操作已完成;当e条件发生时,表示第6步的操作已完成。
为了使3项并发的任务能够相互协调,在流程中
加入了第3、5、7步,这些步骤用来协调2、4、6步的等待步,只有当3、5、7步都已经发生了,程序才能转换到第8步。
在大多数的PLC中都有把流程图转换
成程序的梯形图指令,如三菱的步进指令、S7-200的顺序继电器指令、S7-300
所采用的S7-GRAPH编程语言等,即使是PLC本身没有类似的指令,我们也可以通过起保停电路或置位复位指令来实现顺序控制。
但是这种方法在实施的过程中应当注意,并行的几个分支的执行周期应该大致相似,或者并行部分对于实时性的要求不高,否则如果某一分支执行时周期较长的话,就无法保证处理的同步性和实时性。
在这种情况下,就应该考虑采用其他的方法来实现。
第2种情况实际上是多种不同类型任务的并行处理。
对于这种情况,为了避免编
写的程序过于复杂,一般将不同的任务用不同的子程序来实现。
例如现有3个不
同类型的任务需要并行处理,为了避免程序过于复杂,将任务1、任务2和任务3分别用子程序1、子程序2和子程序3来实现。
在主程序中,3个子程序采用图2的排列方式,由于PLC在执行用户程序时采用的是扫描的工作方式,即第n次扫
描时先执行子程序1、再执行子程序2、最后执行子程序3(其实就是先执行任务1、再执行任务2、最后执行任务3),第n+1、n+2、…、n+i次扫描时的工作顺序和第n次扫描的工作顺序完全一致,这样的话,就好像每个扫描周期都将CPU时间按比例分配给3个任务,如果PLC执行指令的速度足够快,每一次扫描的时间都很短暂,那么从宏观看来3项任务就是同时在进行的。
这种方式类似于
计算机中多任务操作系统中的多线程操作,在多任务操作系统中,每一项操作就是一个线程,计算机的CPU在某一时刻实际上只对一个线程进行处理,当每个线程
所分配的时间足够短,则整个处理就是对多个线程并行的。
在这里,子程序1、2、3就相当于系统中的3个线程,通过PLC扫描的工作方式将CPU时间进行了划分。
应当注意的是,这种方法和PLC编程中的顺序控制系统是有区别的,顺序控制系
统中的各个步骤是按顺序发生的,在同一个扫描周期中,只有一个步骤被PLC执行,其他步骤是不活动的,但图2中的3个子程序是并行发生的3个操作,在同
一个扫描周期中全都要被执行。
采用这样的方式来实现多任务并行处理,要求PLC的处理能力足够快,否则系统
的实时性将得不到保证,同时,如果控制系统过于复杂,系统的性能也会下降,这种情况下就应该采用后面的方法来实现多任务并行处理。
在一些复杂的工业控制过程中,由于需要处理的多项任务非常庞大和复杂,1台PLC的处理能力可能不够,这时可考虑使用现场总线来实现多任务的并行处理。
现场总线技术是工业控制领域在最近十几年内发展起来的1项新技术,它能够把
包括PLC在内的现场控制设备通过网络连接在一起,同时具备网络的开放性和可
扩展性。
我们以西门子公司的Profibus现场总线网络来说明如何采用现场总线进
行多任务并行处理。
Profibus是西门子公司用于车间级控制的现场总线标准,其中包含了FMS、DP
和PA 3个子标准,FMS通讯的数据量大、但实时性较差;DP通讯的数据量较小、但实时性很好;PA是DP的扩展,带有本质安全的特性,主要用于石油、化工等
高危环境。
在现场,DP总线占有主导地位。
在DP网络中分为主站和从站,从站
在主站的控制下进行工作。
例如有3项比较复杂的控制任务需要并行完成,我们
把任务进行分解,用3台S7-200PLC(西门子的小型PLC)来完成每一项任务,再使用1台S7-300/400PLC(西门子的中/大型PLC)来对3台S7-200的工
作进行协调,S7-200通过ET223模板连接到DP网中作为从站,S7-300/400
通过CP342/442-5连接到DP网中作为主站,这样就可以解决这3个复杂控制
任务并行处理的要求,图3所示的就是一个标准的Profibus网络,其中PLC和计算机作为主站。
采用这种方法来实现多任务并行处理实际相当于将需要并行处理的任务进行分解,并通过多台设备来进行控制,这样,每台设备所分担的任务都相对较轻松,可以充分发挥设备的功能而不会提高系统的开销。
这样的系统在实现复杂控制时和传统意义上的DCS控制系统有相似的地方,但由于现场总线系统采用了相对较为开放的
网络技术,因此组成比较灵活,甚至可以用在一些小型的系统中,同时与DCS相
比具有较高的可升级的潜力。
工业自动化技术的发展趋势是:工业生产过程由简单到复杂,由小规模到大规模,越来越多的被控对象都是复杂、时变的系统,采用传统的单任务简单控制系统越来越不能满足控制的要求。
很多控制系统都要求采用模糊控制、预测控制、专家系统等先进控制方法,这就要求控制系统具有多任务并行处理能力。
随着现代计算机技
术、电子技术的高速发展,PLC也在向高运算速度、大存储容量方向发展,并且
新的PLC大都集成了现场总线或工业以太网接口,这就为PLC实现并行多任务处理提供了很好的条件。
本文陈述的几种PLC实现多任务处理的方法简单易行,可用于大多数的应用场合。
第1种方法采用顺序控制的并发性分支来实现多任务处理,对于采用中小型PLC
实现功能简单的离散自动化系统控制比较实用,且编程简单。
第2种方法采用子程序串行工作的方式实现多任务处理,适用于有较多模拟量处
理的场合,但对于PLC的处理能力要求较高。
如果在控制系统中采用大型PLC则可以结合多中断的处理方式来提高程序的运行效率。
第3种方法实际采用了分级递阶控制模型,在大型集散控制系统中具有很高的应
用价值,对于需要多任务处理的场合,采用多台PLC各司其职,能够达到最大的
应用效能,但由于每个任务都需要由单一的PLC实现处理,所以系统投资及运行
成本较高。
【相关文献】
[1]廖常初.S7-300/400PLC应用技术[M].北京:机械工业出版社,2005.
[2]王树青.先进控制技术及应用[M].北京:化学工业出版社,2001.
[3]邹益仁.现场总线控制系统的设计和开发[M].北京:国防工业出版社,2003.
[4]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.
[5]杨卫华.现场总线网络[M].北京:高等教育出版社,2004.。