您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 一种基于工业PC的软PLC控制系统
一种基于工业PC的软PLC控制系统首先介绍了基于PC的控制系统的发展状况以及软PLC技术的概念和组成结构。然后详细地叙述了基于工业PC的软PLC的软、硬件实现方案,最后给出了应用实例。引言基于PC的控制系统是国际上继PLC和DCS之后推出的工业控制系统。目前在工业控制领域,基于PC的控制系统得到日益广泛的应用。同时由于计算机软、硬件技术的迅速发展以及工控领域国际编程标准--IEC61131-3的制定和推广应用,在工业PC上以软件技术实现PLC的功能,即软PLC技术,成为一项新兴的技术。1、基于PC的软PLC控制系统的发展现状1.1IEC61131-3国际编程标准IEC61131国际标准的制订是软PLC技术发展的一个重要基础。为了规范工业控制领域的编程语言,20世纪90年代初,IEC(国际电工委员会)颁布了IEC61131国际标准。该标准共分八个部分,依次包括:基本概念、硬件装置和测试、编程语言标准、用户指南、通信服务规范、现场总线通信(未公布)、模糊控制语言和编程实施方针。其中IEC61131-3是PLC编程语言标准,它详细地说明了句法、语义和5种编程语言:指令表(Instruction),结构化文本(StructuredText),顺序功能图(SequentialFunctionDiagram),梯形图(LadderDiagram),功能块图(FunctionBlockDiagram)。在这五种编程语言中,指令表和结构化文本是文本语言,易于实现一些复杂的算法;顺序功能图、梯形图和功能块图是图形语言,它们则擅长处理逻辑控制。同时该标准还允许在同一项目中,使用多种语言进行混合编程,而且支持POU(程序组织单元)的重复使用,为不同知识背景的编程人员提供了方便。1.2基于PC的软PLC控制系统的发展现状[4]目前,国外许多工业控制系统开发商正在发展基于PC的控制系统,推出了符合IEC61131-3标准的产品。在国内市场上常见的控制产品有:法国CJInternational公司的ISaGRAF,德国KW公司的MULTIPROG,BECKHOFF公司的TWinCAT以及SOFTPLC公司的SoftPLC等。作为典型的基于PC的控制系统,西门子公司的WinAC在国内得到了广泛的应用。1.3基于PC的软PLC控制系统的优点软PLC基于PC机,建立在PC机的软、硬件平台之上,因此具有PC机的优点和PLC的特性。·具有良好的开放性。全面支持Windows、Linux等操作系统,通过OPC或DDE等通信方式易于与第三方的产品集成运行。其硬件结构不再封闭,用户可以选择不同的I/O模块来满足自己的要求。·具有广泛的兼容性。软PLC的技术是基于IEC61131-3标准的,用户在掌握了标准语言后,开发比较容易。由于该标准继承了传统PLC的编程方式,因此不同知识背景的工程人员容易接受和使用。·可以节省投资。与传统的PLC解决方案相比,基于PC的软PLC由于其良好的开放性和兼容性,可以大大减少设备投资和系统的集成费用。·性价比日益提高。PC处理器的速度日益提高,充分利用CPU的超强速度容易实现数据处理、多回路调节和多任务。基于以上原因,许多学者就软PLC控制系统的实现方案作了相应的探讨,在此,笔者设计了一种基于工业PC的软PLC控制系统。2、基于工业PC的软PLC控制系统的实现2.1系统的硬件结构搭建该软PLC控制系统的硬件平台选用的是凌华PACK-610工业计算机,I/O板卡分别选用的是研华公司的PCI-1710,PCL-720和中泰公司的PC6311。在工业PC中可以驱动多块板卡,根据被控对象而定。系统结构如图1。2.2软PLC系统的软件实现该软PLC系统由编程系统和运行系统构成。编程系统用来完成PLC应用程序的开发,运行系统负责对整个系统的管理和对应用程序的执行。由于编程系统和运行系统运行于同一台工控机,所以两者之间的通信采用了动态连接库(DLL)函数的方法实现数据交换。系统整体框图如图2。(1)编程系统按照IEC61131-3的标准,编程系统中提供了对整个工程的管理、资源配置和POU(程序组织单元)的编辑调试功能。POU包括程序、功能块和函数,其中程序可以调用程序、功能块和函数;功能块可以调用功能块和函数;函数可以互相调用。工程管理功能提供了整个工程所需文件的管理,在这个工程中可以同时用五种语言编程来实现控制功能。POU编辑功能包含两个窗口:一个是变量定义窗口,在此用户可以声明POU所需的元素,这些变量包含局部变量、外部变量,而且用户还可以声明相应的功能块和函数的名称。另外一个窗口则是程序的编辑窗口,用户在此可以编辑图形语言的程序和文本语言的程序。此外,在编程系统中还可以嵌入复杂的控制算法,如智能PID算法等。调试工具栏包含编译和调试功能:编译功能是将用户创建的图形或者文本程序编译成运行系统可以执行的目标代码,同时也提供了语法语义的检查功能。就调试功能而言,用户可以下载程序,而且可以在线仿真和调试。(2)运行系统运行系统的主要功能有三个:与编程系统的通信、目标代码的执行和各种I/O硬件的驱动。为了便于软件的日后维护和升级,将运行系统和编程系统分开,以便于移植到不同的硬件平台。两者的通信依靠动态连接库提供的函数,以下是动态连接库提供的函数:PlcNetInitialize();//通信初始化PlcNetShutDown();//关闭通信PlcNetSendData();//接收数据PlcNetRecData();//发送数据PlcNetGetRxStatus();//得到通信就绪信号在运行系统的工程中加入动态连接库的导入库文件IPCDrv.lib,这样就可以在运行系统中调用这些库函数了。当程序运行时,即可启动编程系统和运行系统的数据交换。软PLC运行系统虚拟机是运行系统的核心,也是整个软PLC系统的核心。它一方面负责处理操作系统的服务请求,另一方面对应用程序进行管理和执行。程序执行时,首先为应用程序分配内存,将程序加载到分配好的内存里,然后在虚拟机中解释并执行编程系统下载的目标代码。该运行系统虚拟机支持IEC61131-3标准规定的100余种函数、功能块和操作符。使用虚拟机技术,可以方便地将运行系统移植到不同的硬件平台。运行系统的I/O驱动模块直接驱动具体的硬件。为了完成与I/O模块的数据交换,运行系统在内存中开辟了一个段表,称为I/O映象区域。这个I/O映象区域在编程系统和运行系统之间起一个桥梁的作用,其作用是将编程系统定义的某一个地址的物理变量直接映射到段表的某一个地址,并根据这个地址的偏移量来操作具体的硬件。这个段表分成四段,依次为:段头(header),输入区(input),输出区(output)和标志区(maker)。段表的段头占用6个字节(byte),从0到5,定义了整个段的长度,输入和输出各占用的字节数等。输入区从6开始,也就是输入区的偏移量(offset)是6,如果将输入的变量值放在输入区的第1个字节(byte),则该变量的地址是7。如果输入区的长度占有2个字节数,则输出区的偏移量是8,这样输出变量的地址应该加上偏移量8。标志区(maker)则用来存放中间变量。原理如图3所示。I/O驱动模块中提供了四个函数,依次为:LzsEnvInitialize(void);//初始化过程LzsEnvShutDown(void);//关闭过程LzsEnvWriteProcImg();//写过程映象LzsEnvReadProcImg();//读过程映象按照上面的原理,以研华板卡PCI-1710为例,为了读写编程系统中定义的三个变量(地址分别为%IX0.5、%IX1.6、%QX0.7)其主要代码如下:LzsEnvReadProcImg(){ptDioReadBit.port=0;//读输入区的第零个字节ptDioReadBit.bit=6;//读输入区第零个字节的第六位,编程系统中的地址为%IX0.5ptDioReadBit.state=&usState;//返回值dwErrCde=DRV_DioReadBit(lDriverHandle,(LPT_DioReadBit)&ptDioReadBit);*((LZSBYTE*)pProcImgSeg_p+0)=usState;}写过程映象,也按照上面的方法。整个系统在VisualC++6.0环境下开发,目前,已对多个试验对象实现成功控制。3、应用实例按照以上的系统构建方案,控制对象既有开关量又有模拟量,分别为五层电梯模型和三容液位水槽。(1)对于电梯模型的控制而言,主要涉及到开关量信号,故采用梯形图编程语言。以研华公司的PCL-720板卡为I/O硬件,PCL-785B继电器板卡将信号放大,已对五层电梯模型实现控制。部分梯形图程序如图4。(2)三容液位水槽是一个强耦合、变结构的复杂被控对象,在此采用了PID算法。由于结构化文本是一种类pascal语言,擅长一些复杂算法和模拟信号的控制,故采用结构化文本语言,以中泰公司的PC6311板卡作为I/O硬件,应用PID算法对三容液位水槽实现成功控制。部分代码如下:VARt:ton;t_in,t_out:bool;aoutport0_1:REALAT%QX2.0;ain_1:REALAT%IX6.0;END_VAR//以上声明了中间变量和输入输出变量ifnow_f<2.0thennow_control:=4.96;aoutport0_1:=now_control;elseifnow_f<2.64thennow_control:=k_p*now_e;aoutport0_1:=now_control+1.01;elsecontrol_error_p:=k_p*(now_e-past_e);control_error_i:=k_i*now_e;control_error_d:=k_d*(now_e-2.0*past_e+ppast_e);control_error:=control_error_p+control_error_i+control_error_d;now_control:=control_error+past_control+1.01;end_if;end_if;//以上是PID算法4、结束语基于工业PC的软PLC技术具有很大的发展潜力,它具有成本低,开发性好以及维护简单等优点,特别适合于在中小型的控制系统中推广使用。参考文献[1]R.W.Lewis.ProgrammingindustrialcontrolsystemusingIEC1131-3.IEEControlEngineering.TheInstitutionofElectricalEngineers,1998.[2]Karl-HeinzJohn,MichaelTiegelkamp.IEC61131-3:ProgrammingIndustrialAutomationSystems,2000.[3][4]彭瑜.PC控制的新近进展.世界仪表与自动化,2001,5(3):14-22[5]Dr.WolfgangBrendel.ComponentBasedIEC61131-3SoftwareinIndustrialcontrol.TheInstitutionofElectricalEngineers,2002.[6]BillBlunden(美)著;杨涛等译,虚拟机的设计与实现-C/C++[M].北京:机械工业出版社.
本文标题:一种基于工业PC的软PLC控制系统
链接地址:https://www.777doc.com/doc-2825868 .html