西门子赣州授权代理商
在讲PLC的原理的时候,我们重点以V80小型PLC为模板,其它的中大型PLC就不再多说。
PLC是一种提供给用户进行二次开发的通用控制系统。
大家以前可能学过C语言,比方说C语言常见的编译器有Borland公司的Borland C/C++、微软的Visual C++以及Symantec C/C++和Watcom C/C++等,学习过标准C语法的同志都能看懂任何其它工具写的C语言代码,不同的只是各厂商提供的函数库不同以及工具操作习惯的不同。在不同工具下的移植也是相对比较方便的,大家可以很容易的把用Borland C/C++写的程序用Visual C++打开。
但这一切在工控行业却相当困难,比方说用三菱软件编写的程序,是无法用西门子的软件打开的,如果一个工程师当初学习的是日系的编程习惯,那么给他一份施耐德的程序,他可能要晕一礼拜才能搞明白。
为此,国际上成立了PLCopen组织,它的宗旨是促进PLC兼容软件的开发和使用。PLCopen组织推广的核心是PLC的——IEC61131,IEC61131标准是由化组织IEC(国际电工技术委员会)的SC65BWG7工作组制订的。它包括1至8部分,每个部分分别对应于PLC的不同部件或者不同功能的描述和定义,由于PLC标准的制定包含了巨大的利益在中间,国外的各大PLC厂商对于IEC61131标准的执行和推广一直并不是特别热心,目前大家比较关心的是IEC61131-3,IEC61131-3是为工业控制系统提供标准化编程语言的,目前一共制定了五种语言作为PLC的标准,包括LD(梯形图)、IL、SFC、ST、FBD。
PLCOPEN组织把IEC61131-3标准的符合程序分了三级:
1、基本级(Base Level,BL):编程系统开发的程序的基本结构必须兼容IEC61131-3,必须提供编程语言的基本语言元素。
2、符合级(Conbbbbity Level,CL)
3、移植级(Reusability Level,RL)
第二级和第三级是组合使用的,如果符合第二级和第三级则称为全兼容级,能实现跨平台的程序移植。
从我们理解将PLC标准化分为三个层次:
个层次是语言的标准化,也就是说各PLC的语法要求一致,工程师学过德维森的V80再用三菱PLC编程,就不需要重新学习编程。
第二个层次是文件的标准化,要求用西门子软件编写的程序,可以用德维森或者任何第三方的软件打开。
第三个层次是目标码的标准化,每种PLC编程软件编写的程序都将编译成它的下位机可以执行的目标程序,如果每种PLC使用相同的目标码,那么上位机编程软件与下位机就可以分离开,用户可以选用自己适应的软件开发自己的控制程序,并将程序下载给任一种硬件平台,配置和资源可以很容易的重定义;大家使用相同的通信协议,包括编程通信、现场总线、模块间接口协议,这时用户就可以达到与PC类似的标准化程度,跨系统跨厂商的互联和编程将成为可能。
当然达到这么一致的标准化程度需要很多年的过程,需要工控行业更多的兼并和重组,从现在来看只要能走完个和第二个层次就相当不错了,第三个层次可能需要更长的时间。
技术行业的厂商是标准的制定者,但工控行业因为牵涉每个国家的工业、军事竞争力,这个行业的标准化也是困难的,目前欧洲对于IEC61131的热心程度是高的,因为标准的大多是欧洲企业,而其它国家的厂商明显对此并不是太积极。
就像现场总线IEC61158,制定花了13年,后制定了一个包含8种协议的标准,全是标准就意味着没有标准,我们希望IEC61131不要步其后尘。
PLC从系统而言可以分为两个部分
用户通过使用PC上的编程软件Vladder进行梯形图的编辑,编完后的程序编译下载到下位机PLC内运行。习惯上我们把PC上的软件称为上位机软件,把PLC内的软件称为下位机软件。
上位机软件主要由以下功能模块组成:
1、多语言编辑模块
2、编译模块
3、通信模块
4、IO管理模块
5、调试模块
6、工程和文件管理模块
其中对系统影响大的是1、2、5这三个部分,这三个部分的好与坏决定了整个PLC软件的好与坏。我们在后面的文档中将专门讲解这一部分的功能和应用。
V80下位机系统分为硬件和软件两个部分:1、CPU单元:大家注意到上面有两块CPU,其中专用CPU正是用来执行PLC逻辑的,有了它整个系统的速度可以提升20倍左右,通用CPU用于处理其它的工作,包括功能块、通信、IO扫描、运控等。
德维森正在研发的新一代N系列PLC将把通用CPU和专用CPU合二为一,专门开发一颗PLC专用的CPU芯片并将通用CPU、专用CPU、运控MCU合并在一起,中型PLC和小型PLC的CPU也将统一起来,从而达到佳的性能与成本结合点。
2、固件ROM:用来存放PLC厂商程序。
3、LD ROM:用来存放用户的逻辑程序,这一块有48K字的空间,也就是多可以放下48K步的梯形图指令。
4、RAM:存放用户的数据,也用来暂存用户下载的梯形图程序,实际上梯形图的解算也是在RAM内执行的。
5、实时时钟:年月日时分秒星期,这是一块专用的时钟芯片。
6、电池:保证实时时钟在掉电后的运行,使RAM在掉电情况下10年不丢失数据。
7、运控单元:专用的运控逻辑单元,可以完成高速计数和脉冲输出的功能,因为是硬件保证的,不用CPU单元的介入,速度高达50K~100K,实际上可以做得更高速,当然这种速度对于步进和大多数伺服来说已经够用了。
8、IO接口:本体模块自带的IO,包括数字量输入、数字量输出、电位器输入,部分CPU模块还带有模拟量的输入输出如M20MAD就有6路模拟量输入和2路模拟量输出。
因为PLC是工作在工业环境,现场情况比较复杂,PLC采集和控制的信号经常并不是共地的,跨步电动势和强干扰是经常存在的,为防止对PLC的损坏,为了隔绝各种非共地信号的相互影响和损坏,PLC一般要求IO接口隔离,数字量一般是单路隔离的,而模拟量一般是模拟电路与数字电路之间隔离,用户在使用时需核对硬件手册,并根据现场实际情况安排使用。
9、扩展接口:使本体能联接各种扩展模块,对于V80系统,所有的扩展模块都被看成是总线上的一块存储器,这就要求所有的扩展模块上有MCU芯片,几乎可以说V80是所有小型PLC中扩展总线快的,可以达到2M BYTE。
PLC软件执行的标准框图大家在一般的书上都可以看到,一般的实现分为两类,一类是没有多任务操作系统的,一类是有多任务操作系统的,前者在可靠性和实时性方面有一定的优势,后者对于结构化编程方面有一定的帮助。我们的V80系列属于前一者,而N80系统将支持这两种结构。
实际上的PLC执行情况要复杂得多,但大体流程是一致的。
1、系统初始化:一般小型PLC的系统初始化主要是进行初始化、设置、查找扩展模块等。
2、扫描输入:扫描IO输入信号。
3、执行逻辑:根据用户PLC程序执行逻辑。
4、家务管理:PLC诊断、维护和其它系统程序执行。
5、扫描输出:将逻辑执行的结果输出。
6、通信管理单元:通信服务程序,响应编程软件和其它通信任务。
PLC运行方式:
由上面可以看到PLC的运行是一种循环扫描的运行方式,实际上PLC还有定时扫描和中断扫描共三种扫描方式。
循环扫描:PLC按上图循环执行。
定时扫描:PLC根据用户设置的时间定时扫描,比方说50ms扫描一次,使用这种扫描方式,用户需要保证用户程序在设定时间内一定能扫描完毕,一般PLC使用定时中断和子程序结合起来实现这个功能(这种情况下与中断扫描方式并无不同),但在IO扫描方面会有一些细微的不同,很可能会用到立即刷新IO的功能块UpData_IO。
中断扫描:中断扫描根据外部或者内部中断的激活中断扫描程序的运行。比方说外部IO中断、高速计数中断、定时中断等。
通常PLC都采用上面的三种运行方式中的一种或者几种,用户需要对其有一定的了解,这可以使大家在编程的时候更加清晰,V80支持三种运行方式。
1.编程器操作准备 编程器模式开关放在“PROGRAM”位置,基本单元放在“STOP”位置,使可编程控制器处于编程状态。键入程序前先进行清除原来存储程序,将图2的梯形图键入可编程控制RAM内。 |