MATLAB平台下的PLC实时控制系统分析DOC.docx
《MATLAB平台下的PLC实时控制系统分析DOC.docx》由会员分享,可在线阅读,更多相关《MATLAB平台下的PLC实时控制系统分析DOC.docx(38页珍藏版)》请在冰豆网上搜索。
![MATLAB平台下的PLC实时控制系统分析DOC.docx](https://file1.bdocx.com/fileroot1/2023-6/13/7e1bdacb-6a10-4938-99b1-f6d944932604/7e1bdacb-6a10-4938-99b1-f6d9449326041.gif)
MATLAB平台下的PLC实时控制系统分析DOC
MATLAB平台下的PLC实时控制系统分析
—PLC程序设计
姓名:
华祥学号:
94203109班级:
03942
第一章文献综述
1.1组态软件概述
随着现代工业生产技术、工艺过程日趋复杂,生产设备及装置的规模不断扩大,企业生产自动化程度要求也越来越高,出现了各种工业自动控制系统。
早期的工控系统多是专用的封闭系统,针对不同的生产工艺过程需要编制不同的控制件,工控软件开发周期长、困难大,工业被控对象稍有变动就必须修改源程序,且很难与外界进行数据交互,升级和增加功能都受到限制。
新型的工业控制系统正以标准的工业计算机软、硬件平台构成的集成系统取代传统的封闭式系统,它具有适应性强、开放性好、易于扩展、经济、开发周期短等优点。
通常可以把这样的系统划分为控制层、监控层、管理层三个层次结构。
其中监控层对下连接控制层,对上连接管理层,它不但实现对现场的实时监测与控制,且在自动控制系统中完成上传下达、组态开发的重要作用。
监控层的硬件以工业级的微型计算机和工作站为主,目前更趋向于工业微机;监控层的软件则是指组态软件。
“组态(Configuration)”的含义是使用软件工具对计算机及软件的各种资源进行配置,达到让计算机或软件按照预先设置自动执行特定任务、满足使用者要求的目的。
组态软件是指一些数据采集与过程控制的专用软件,它是在工控系统监控层一级的软件平台和开发环境,是面向监控与数据采集的软件平台工具,具有丰富的设置项目,使用方式灵活,功能强大。
组态软件能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,其预置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各种硬件厂家的计算机和工/0设备,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、硬件的全部接口,进行系统集成。
组态软件有着工业产品和软件产品的共同特点,其最突出的特点是实时多任务。
例如,数据采集与输出、数据处理与算法实现、图形显示及人机对话、实时数据的存储、检索管理、实时通讯等多个任务要在同一台计算机上同时运行。
组态软件的主要目的,是使使用者在生成适合自己需要的应用系统时,不需要修改软件程序的源代码。
下面是组态软件主要解决的问题:
(1)如何与采集、控制设备间进行数据交换;
(2)使来自设备的数据与计算机图形画面的各元素关联起来;
(3)处理数据报警及系统报警;
(4)存储历史数据并支持历史数据的查询;
(5)各类报表的生成和打印输出;
(6)为使用者提供灵活多变的组态工具,可适应不同应用领域要求;
(7)最终生成的应用系统运行稳定可靠;
(8)具有与第三方程序的接口,方便数据共享。
自动化工程设计人员在组态软件中只需填写一些事先设计的表格,再利用图形功能把被控对象(如反应罐、温度计、锅炉、趋势曲线、报表等)形象地画出来,通过内部数据链接把被控对象的属性与I/O设备的实时数据进行逻辑连接。
当由组态软件生成的应用系统投入运行后,与被控对象相连的I/O设备数据发生变化后会直接带动被控对象的属性发生变化。
若要对应用系统进行修改,也十分方便,这就是组态软件的方便性。
从以上可以看出,组态软件具有实时多任务、接口开放、使用灵活、功能多样、运行可靠的特点。
一般来说,工业过程控制系统的组态有如下一些内容:
(1)控制组态
控制组态是最重要的。
控制组态又分为过程控制组态和顺序控制组态。
过程控制组态主要针对连续量。
当然,为了构成一个完整的过程控制系统,加入开关量以进行报警等事件处理也是必要的。
顺序控制则主要是针对开关量的控制。
在过程控制中,算法库是很重要的一部分,在建立控制算法库时,将控制软件的算法和参数分离,并将各控制算法功能块固化在EPROM中,在进行组态时生成一个文件,该文件与各个算法相对应,并且含有该控制算法执行所必须的参数,这个文件被装到现场控制站的RAM内存中,因此更改容易,这样,我们就可以将控制算法模块编成标准形式,并且可以应用于很多应用系统中。
在现场控制站中,诸多控制算法模块通常以一个库文件的形式因化在EPROM中,每个算法的入口和入口参数是己知的,这样,在执行时,CPU只是顺序地根据下装到RAM中的文件而依次调用各个子程序,返回参数。
根据文件中的内容写回实时数据库中或输出。
可见,过程控制组态是利用某种方法将适当的控制算法模块连接起来完成特定的控制功能。
过程控制组态一般在现场站进行。
现场站的软件系统是整个组态软件中极其重要的一部分,一般现场站软件采用模块化结构设计,分为执行代码部分和数据部分,执行代码固化在EPROM中,而数据则保留在RAM中,开机时由网络装入。
现场控制站的执行代码分为两部分:
周期性执行部分和随机执行部分。
周期性执行部分有:
周期性数据采集、转换处理、越限检查、控制算法的周期性运算、周期性的网络数据通信以及周期性系统状态检测等等,一般由硬件时钟实时激活;随机执行部分主要是一些实时功能如信号故障处理、事件顺序信号处理、实时网络数据的接受等随机信号,一般由硬件中断激活.执行代码部分的各个功能模块大致可以分为输入输出处理模块、控制回路运算模块等。
输入信号的处理分为开关量输入处理,模拟量输入处理和脉冲量输入处理。
开关量的输入主要用于进行报警检测,这在控制回路的构成中是必不可少的一环,它由开关状态决定。
模拟量的输入处理则要复杂些,一般要经过尖峰信号抑制和数字滤波之后才可以送入实时数据库,同时,还要进行输入转换处理,将信号转换成工程单位所对应的物理量。
模拟量的输出处理是对信号进行二进制编码,然后送入D/A转换通道即可,开关量的输出则相对简单,取出该位的值与其他各输出位一同输出即可。
此外现场控制站还可能有脉冲量输入处理模块等。
控制回路运算模块是形成控制规律的核心部分,目前的组态软件中大多包含如下的基本功能模块:
加减乘除开方算法模块、PID调节模块、选择控制模块等,其中PID为最常用且为广大工程人员掌握的控制算法之一,几乎所有的组态软件都包含各种类型的PID算法,如理想PID调节器、积分分离式PID调节器、不完全微分PID调节器、带死区的PID调节器等。
从而可以满足不同的生产应用的需要。
当然,控制算法中还有许多更高级一些的控制算法,如超前—滞后补偿算法、SMITH算法、以及目前己开始应用的自适应控制算法、模糊控制算法等等。
然而,仅有这些控制算法是不够完成一个实际系统的控制功能的,还要很多附加的功能才能保证系统的高可靠性和安全性,这些附加功能包括:
①控制死区和限幅—提供PID算法的死区值和对输出进行限幅;②控制方式的选择:
有自动方式、手动方式和串级方式等几种方式;③控制算法跟踪,无扰切换,这个功能的加入是由于在工业现场控制中,很多工业过程需要复杂的控制策略才能达到最佳的效果,因此需手动到自动,自动到手动等切换。
此外,在复杂控制系统中,串级控制的加入和切除也经常发生。
在不同的控制方式进行切换时,一般不希望有较大的控制输出扰动,所以需要加入控制算法跟踪来实现控制方式之间的无扰切换,保证整个控制系统的可靠性和安全性。
顺序控制的组态与过程控制的组态类似,在上位机进行组态,生成一个下装的目标文件,该目标文件下装到现场站,由现场站去执行。
而在现场站中则固化了顺序控制的若千基本单元,如与或非逻辑运算、定时器和计数器、移位寄存器,从而构成一个控制系统。
(2)数据库生成、趋势显示和报表技术
在组态软件的构成中,数据的记录和分析也是重要的部分,因此数据库也占有很重要的地位,它分为实时数据库系统和历史数据库系统。
实时数据库系统可将数据通过网络下装到现场控制站,也可将现场控制站的数据变为标准格式,通过网络传送给上位机。
通过调用或检查实时数据库的信息,可及时地对系统发生的各种问题作出相应反应,历史数据库系统是将一段时间内的数据存储起来,进行趋势变化分析,同时也可以将一段时间内的重要数据组织起来,汇成表格以便于管理人员进行各种高层次的分析。
(3)显示部分
显示部分是控制系统必不可少的功能之一。
工业流程图画面可以使操作人员不必时刻在排列的仪表盘上检查各仪表的数据或巡视整个过程的运行情况,只需轻松地坐在CRT显示终端前即可观察整个过程的工作情况。
同时,还具有支持各种趋势曲线,历史曲线,棒图等功能。
目前国内比较流行的国产工业自动化通用组态软件是组态王(KingView)。
组态王配有加密锁,支持工程加密;驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能;其扩展性强,可与管理计算机或控制计算机联网通信。
作为人机接口的智能软件包,组态王是一种流行的PC机上建立工控的对象,它以Windows98/WindowsNT4.0中文操作系统为平台,具有Windows的图形功能完备、界面一致性好和易学易用等特点;它为用户提供了从设备驱动、数据采集到数据处理、流程控制、动画显示、报表输出等组态工作的操作平台;它具有多任务、多线程功能,其系统框架采用VC++编程,提供丰富的设备驱动构件及丰富的图库元件。
利用组态王软件可以大大减少工控软件的开发重复性和单一性,并可利用PC机丰富的软件资源,与组态王融合进行二次开发,达到扩展功能、提高智能化程度和提高参数精度的目的。
1.2组态软件数据交换技术
与以往用计算机语言开发软件相比,组态软件具有成功率高,可靠性强,开发周期短,便于更改、扩充、升级等优点。
但组态软件并非面面俱全,从对组态软件的使用和研究情况看,这些问题主要表现在以下几个方面:
(1)在组态软件没有提供外部设备驱动程序时,它将无法实现和外部设备的通讯,这给用户在开发使用上造成了很大的不便。
(2)在数据库处理上,组态软件虽然提供了与各种数据库连接的有关数据库操作函数,但不能提供直接对多个表的操作或多个字段的操作。
不能提供关系数据库所要求的直接数据库表格。
(3)在报表统计处理功能上,组态王虽然提供了这方面的功能,但报表的格式不能满足不同的需要,而且不能完成较为复杂的数据计算与处理。
这就需要使用其它软件来进行数据库扩充或控制算法模块的调用。
目前这方面的研究主要是基于以下几种技术:
(1)DDE标准
DDE(DynamicDataExchange)是在Windows平台下两个应用程序之间实时交换数据的有效方法,是基于消息的并且利用通常的Windows中的通信联络系统进行内部进程间的相互通信的方法。
它采用客户/服务器模式,使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的同步。
DDE协议是不同应用程序之间共享数据的一个协议。
(2)OPC标准
OPC(OLEforProcessControl)定义了一个开放的接口,在这个接口上基于PC的软件组件能交换数据。
这个标准是基于微软的OLE(现在称为ActiveX),COM,DCOM技术,由一系列用于过程控制和制造业自动化应用领域的标准接口、属性及方法组成。
由于得到了微软的NT技术的支持,OPC为多种多样的过程控制设备提供了公共的接口,为过程控制和工厂自动化提供真正的即插即用软件技术,使得过程控制和工厂自动化的每一系统、每一设备、每一驱动器能够自由地连接和通信,而与过程中的控制软件或设备无关。
(3)ODBC标准
ODBC(OpenDatabaseConnectivity),即开放的数据库互连,是Microsoft建议并开发的数据库访问API标准,目的是实现异构数据库的互联,为异种数据库系统提供一个框架,实现了最大限度上的互操作性。
ODBC标准规定了开放数据库互联的所有标准。
支持ODBC标准的数据库产品都提供基于自己DBMS(DataBaseManagementSystem)的ODBC接口程序,如Access,FoxPro,SQLserver,Sybase,Oracle等均支持ODBC,支持ODBC标准的应用程序透过DBMS的ODBC接口程序,可以直接访问DBMS中的数据项,进行读写操作。
第2章MATLAB与组态软件的通信
工业过程自动控制水平的提高,要求采用比传统PID更先进的高级控制功能,而这些高级控制功能是通用组态软件难以实现的。
所以在针对控制要求较高的对象时需要开发新的监控软件以扩展原有系统的功能。
组态王提供了友好的人机交互界面,强大的通讯功能,但是它的计算能力不强,难以实现复杂的控制策略。
MATLAB以矩阵和向量为基本数据单位,提供了强大的科学运算、灵活的程序设计流程、便捷的与其他程序接口,高效率的复杂算法等,并且它还提供大量的标准算法库,如系统辨识、神经网络、小波分析、数字信号处理等。
但MATLAB本身也存在一些不足,如人机界面设计不方便、没有提供与计算机硬件的接口、无法进行端口操作,并且MATLAB一直被定位在科学计算、数学建模与仿真上,不能实现实时监控,始终未能应用于实际的控制系统中。
如果使用组态王作为系统主控,进行实时数据采样、动态工艺图显示、数据汇总等工作,同时MATLAB作为后台应用程序进行控制算法的处理,这将有利于发挥组态王和MATLAB各自的优势,实现复杂系统的控制,在实际的工程中必将达到较好的控制效果。
这种混合编程技术中,最关键的是组态王和MATLAB之间的实时数据通讯。
组态王和MATLAB数据通讯的方式主要有动态数据交换技术(DDE)和OPC、ODBC技术,本课题采用实时性较强的DDE通讯技术来实现两者之间的通讯。
2.1DDE概述
DDE(DynamicDataExchange,动态数据交换)是Windows环境提供的一种基于消息的进程Ml通信(InterProcessCommunication,IPC)的方法,它采用客户/服务器模式。
进程间通讯包括进程之间和同步事件之间的数据传递。
DOE使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的同步。
DOE协议是一组所有的DOE应用程序都必须遵循的规则集。
DDE协议可以应用于两类DDE应用程序:
第一类是基于消息的DDE,第二类是动态数据交换管理库(DDEML)应用程序(使用动态连接库(DLL))。
DDE应用程序可以分为4种类型:
客户、服务器、客户/服务器和监视器。
DDE会话发生在客户应用程序和服务器应用程序之间。
客户应用程序从服务器应用程序请求数据或服务;服务器应用程序响应客户应用程序的数据或服务请求;客户/服务器应用程序既是客户应用程序又是服务器应用程序,它既可发出请求又可提供信息;监视器应用程序用于调试目的。
DDE应用程序可拥有多重进发会话。
DDE协议规定会话中的消息必须同步控制,但应用程序可以在不同的会话之间异步切换。
DDE应用程序采用3层识别系统:
应用程序名(pplication)、主题(Topic)和项目名(Item)。
应用程序名位于层次结构的顶层,用于指出特定的DDE服务器应用程序名。
主题名更深刻地定义了服务器应用程序会话的主题内容,服务器应用程序可支持一个或多个主题名。
项目名更进一步确定了会话的详细内容,每个主题名可拥有一个或多个项目名。
DDE工作原理见图2-1。
图2-1DDE工作原理与结构
建立DDE会话后,客户应用程序和服务器应用程序可通过3种链接方式进行数据交换。
3种链接方式为:
冷链接(ColdLink)、温链接(WarmLink)和热链接(HotLink)。
冷链接—客户应用程序申请数据,服务器应用程序立刻给客户应用程序发送数据,服务器应用程序处于主动地位;
温链接—服务器应用程序通知客户应用程序数据项发生了变化,但并没有将已变化的值发送给用户应用程序;
热链接—当数据项发生变化时,服务器应用程序立即把变化后的值发送给客户应用程序,服务器应用程序处于主动地位。
2.2MATLAB的DDE功能
MATLAB作为客户应用程序时,支持文本格式的数据传送,可以使用MATLAB中的DDE客户端模块所提供的函数与服务器进行数据通信。
MATLAB提供了7个客户函数,它们分别是①DDEinit函数建立MATLAB和服务器对话,如果建立成功,则返回1个通道号,以后任何其他DDE操作均通过此通道进行;②DDEadv函数建立链接;③DDEreq函数用于从服务器请求数据;④DDEpoke函数则从MATLAB向DDE服务器应用程序发送数据;⑤DDEcxec函数用于向DDE服务器应用程序发送执行命令;⑥DDEunadv函数是释放链接;⑦DDEterm函数用于终止DDE服务器应用程序与MATLAB之间对话。
MATLAB的DDE通信功能需要通过编写M文件完成,此外作为客户应用程序,MATLAB还必须定义服务器应用程序的3个标识符。
2.3组态王与MATLAB的通讯设计
为便于理解,这里以某控制系统为例进行说明。
在组态王界面上设定给定值信号,同时它采集仿真PLC的数据作为被测量,并将这2个数据实时传送给MATLAB软件,由该软件进行复杂控制运算得到控制量输出给组态王进行显示和输出。
在组态王中定义3个变量,其中1个为被测量x
(1),连接设备为仿真PLC;1个为内存变量x
(2),即给定值信号,可通过界面进行修改,上述2个变量允许DDE访问。
另1个变量为I/O型变量,连接DDE设备。
变量x作为MATLAB的触发变量,只要其值变化,就通知MATLAB进行控制算法运算,并返回控制变量y。
MATLAB的DDE通信必须通过编写S函数实现。
MATLAB与组态王通信的仿真框图见图2-2。
图2-2 MATLAB与组态王通信的仿真框图
其中,InitDDE是DDE初始化函数,model模块是控制算法模块,DDEInput是MATLAB接收数据函数,其发送数据函数为DDEOutput。
(1)DDE初始化函数InitDDE
globalchannel;%channel是DDE初始化返回的标识通道值。
channel=DDEinit(‘view’,‘tagname’);%DDE通信初始化,指定“view”为应用程序名,“tagname”为主题名
ifchannel==0
disp(‘DDEinitializationfailed!
’);
else
disp(‘DDEinitializationsucceeded!
’);
end
(2)MATLAB接收数据函数DDEInput
Function[sys,x0,str,ts]=DDEInput(t,x,u,flag)
reg1=‘仿真PLC.RADOM100’;%在组态王中指定变量寄存器RADOM100
reg2=‘仿真PLC.STATIC100’;%在组态王中指定变量寄存器STATIC100
switchflag,
case0
[sys,x0,str,ts]=mdlInitializesizes;
case3
x
(1)=DDEreq(channel,reg1);%从寄存器中采集过程变量,并赋值给变量x
(1)
x
(2)=DDEreq(channel,reg2);%从寄存器中采集过程变量,并赋值给变量x
(2)
fori=1∶2
sys[i]=x(i)
end
case{1、2、4、9}
sys=[]
end
(3)MATLAB发送数据函数DDEOutput
Function[sys,x0,str,ts]=DDEInput(t,x,u,flag)
switchflag,
case0
[sys,x0,str,ts]=mdlInitializesizes;
case3
DDEpoke(channel,‘data’,y));将控制量y发送回组态王中,data为发送数据的项目名
case{1、2、4、9}
sys=[]
end
特别说明的是,应在控制算法模块中,引入2个函数。
第1个为DDEadv(),其作用是与DDE服务器建立势链接;第2个为根据控制策略编写的函数。
当组态王程序中变量x的内容一旦发生变化,将立即引起控制策略函数的执行,并通过指令将运算结果发送回组态王中。
2.4组态王监控画面的实现
组态王主要由TouchMak和TouchVew两大模块构成。
前者是开发环境,后者是运行环境。
用户在开发环境中设计并制作动画画面,进行相关变量的定义,然后进行动画连接,使画面中的图形对象与实时数据库中的数据变量间建立一种关系,数据库中的变量受外部设备的控制,外部设备如PLC、智能模块等通过各自的驱动程序,与实时数据库中的对应变量建立联系,最后切换到运行环境,就可实现动画效果。
由于组态王遵循Windows下标准动态数据交换(DDE)协议,所以借助于DDE和外设驱动程序,组态王可自动将外设的状态及时传递给数据库中的数据变量,用户无须考虑以往程序设计中繁杂的通信问题。
组态王与外设交换数据的示意图如图2-3所示。
组态王还为用户配备了丰富的命令语言,如应用程序命令语言、热键命令语言、事件命令语言和变量改变命令语言等。
用户可以使用这些语言非常方便地对画面进行控制。
图2-3组态王与外设交换数据的示意图
利用组态王进行系统开发的过程如下:
(1)配置I/O设备。
组态王支持的硬件设备包括:
可编程控制器(PLC),智能模块、板卡、智能仪表、变频器等。
工程人员可以把每一台下位机当作一种设备,不必关心具体的通信协议,只需在组态王的设备库中选择相应设备的类型,然后按照“设备配置向导”的提示一步步完成安装即可,使驱动程序的配置更加方便。
组态王的驱动程序采用ActiveX技术,使通讯程序和组态王构成一个完整的系统,保证运行系统的高效率。
已配置的I/O设备在工程浏览器的设备节点中分类列出,用户可以随时查询和修改。
(2)构造数据库。
数据库是“组态王”最核心的部分,是联系上位机和下位机的桥梁。
在数据库中存放的是变量的当前值,变量的集合称为“数据词典”,数据词典记录了所有用户可使用的数据变量的详细信息。
工程人员根据需要建立内存变量和I/O变量,配置变量的类型和各种属性,并将I/O变量与相应的I/O设备寄存器连接。
(3)制作图形画面。
根据生产操作要求建立自己需要的画面,利用组态王提供的丰富图库,在每个画面上生成互相关联的静态或动态图形对象。
画面包括具备一定功能的按钮及菜单、实时数据及历史数据显示、实时趋势曲线、历史趋势曲线、报警显示等。
(4)定义动画连接。
建立动画连接使画面上的图形对象与数据库的数据变量之间建立了一种特定的对应关系,当变量的值改变时,图形对象可以按动画连接的要求改变颜色、尺寸、位置、填充百分数等。
也可以通过图形对象改变数据变量的值。
(5)网络设置。
组态王完全基于网络的概念,是一种真正的客户机/服务器模式,支持分布式历史数据库和分布式报警系统,支持TCP/IP协议。
工程人员根据系统需要设立I/0服务器、报警服务器、登录服务器、WEB服务器和客户端。
(6)运行和调试。
在开发过程中,可以不断运行实时运行环境TouchVew,利用组态王信息窗口运行和调试在画面制作系统中建立的图形画面。
第三章PLC实时监控系统
3.1PLC通讯连接方式
PLC与上位机一般采用RS-232接口的异步串行方式。
C200HS是OMRON公司在C200H的基础上推出的一种新型PLC,比C200H有许多优点,其中一个主要的特点就是在CPU单元上,增加了一个内置的RS-232连接器,PLC不用再配置专用的通讯模块,就可以很方便地和外部设备进行串行通讯,图3-1是C200HS与上位机通讯的接口连线。
图3-1 通讯连接