专利名称::Epa分布式控制系统功能块程序建模及优化方法
技术领域:
:本发明属于计算机应用
技术领域:
,涉及EPA分布式现场总线控制系统,特别涉及可编程控制器(ProgrammableLogicController,PLC)的IEC61131-3功能块编程语言。
背景技术:
:EPA(EthernetforPlantAutomation)是我国制定的一种工业实时以太网标准,己被列入IEC国际标准并在现场总线控制系统领域得到了广泛应用。IEC61131-3为PLC规范了编程语言语法及语义的统一标准。其中,IEC61131-3功能块(FunctionBlock,FB)把为实现某种应用功能或算法,按某种方式将反复执行的函数模块化,提供一种结构来规定输入、输出、算法和控制参数,把输入参数通过这种模块化的函数,转化为输出参数。功能块图(FunctionBlockDiagram,FBD)是以图形表示的功能、功能块、数据元素、标号和连接元素的一个或多个网络。控制程序作为控制系统的核心,将本地I/0与扩展I/0以输入输出寄存器的方式直接添加到功能块的输入端或输出端,以组态的形式实现控制算法。EPA分布式控制系统中,为保证系统运行的高效性和可靠性,控制程序设计应尽量简洁。然而在实际应用中,由于控制任务不同、系统规模庞大,缺乏统一的编程指导模式,往往导致实际系统的控制程序冗余度高、执行效率低,内存资源占用率高等弊端,因此对程序的优化方法进行研究显得至关重要。现有的PLC程序优化方法往往是工程技术人员长期实践过程中经验的总结,如特定条件下指令的应用技巧,如何节省i/o点数或内部资源的使用,如何根据具体的控制对象的特性优化程序等,然而针对功能块程序尚无较系统的解决方法。
发明内容本发明要解决的技术问题是提出一种EPA分布式控制系统功能块程序建模及优化方法,解决系统控制程序的优化问题。该方法将控制程序作为建模对象,通过建立并简化其状态空间模型来优化该程序。即根据各个功能块封装的算法及功能块的组态形式,对控制程序建立状态空间模型,描述系统外部输入、内部状态及输出变量三者之间的关系,通过对模型的简化实现对控制程序的优化。本发明解决技术问题采用的技术方案如下首先对可编程控制器支持的所有功能块封装的控制算法建立数学模型,描述各功能块输入信号与输出信号之间的关系。其次,按照程序中功能块图的组态形式所确定的功能块之间的逻辑关系,将程序中使用的功能块对应的数学模型进行组合,并运用下文列举的简化方法运算整理,建立并简化程序的状态空间模型。最后基于简化后的模型,重新分配各状态变量对应的内存资源,编写控制程序,即可实现对原程序的优化。该方法包括以下步骤一、功能块数学模型的建立功能块作为功能块图的基本组成单元,是功能块图编程的基本要素。因此,对程序整体模型的建立应从原子级的功能块出发,分析各功能块封装的控制算法,建立其各自的数学模型,为状态空间模型的建立做准备。功能块按功能可分为以下几类,下面表(1)一表(11)列举了各类中的部分典型功能块及其数(l)位逻辑指-表1位逻辑指令功能块数学模型示例功能块功能描述及数学模型与一AND—'少逻辑与的关系表示为:K"i)=)上升沿在输入由低到高跳变后,输出能流接通一个扫描周期。^保存前一个状态,以判断是否上升沿到来。+1)=,.^:)位指令置位指令用来将指定数量(N)的从固定位地址开始的寄存器进行置位,N从l65535.v「ENSW—N、W—M满M_我位优先vl一S1V2一RSR置位优先触发器在SI为1时触发置位,输出为1,当SI和R均为0的时候,输出保持不变。(2)比较指'表2位逻辑指令功能块数学模型示例功能块功能描述及数学模型相比'少比较输入的两个有符号双字节整数,如果上输入等于下输入,则输出一个逻辑位为l,否则为零。j^+l)v2W)'1Z=0其中,冲激函数5(0=0Z#o大于比'少比较输入的两个有符号双字节数,如果上输入大于下输入则输出一个逻辑位为l,否则为零。;;("1)=一)<table>tableseeoriginaldocumentpage14</column></row><table>(3)定时器指令表3定时器指令功能块数学模型示例<table>tableseeoriginaldocumentpage14</column></row><table>(4)计数器指令表4计数器指令功能块数学模型示例<table>tableseeoriginaldocumentpage14</column></row><table>(5)整数数学运算指令表5整数数学运算指令功能块数学模型示例功能块功能描述及数学模型整数加V,—v2—v广ADD1EN§NOIN1OUTIN2—I一少整数加指令对两个16位整数进行运算得到16位的结果。^+1)=(v2+v3W)-Vl(A:)y(".S整数乘h一"2一v3一MULENENOIN1OUT—I—少整数相乘得到双整数指令对两个16位整数进行运算得到32位的结果。+1)=(v2(A)xv3,.v,("④.7'(A)字加1v,—v2~iINCWENENOINOUT—少字加1指令对输入(IN)进行加1后,将结果保存到输出OUT.+1)=(v2("+1).Vl("y7,(A)注+和@分别表示算术加和逻辑或运算;x和g分别表示算术乘和逻辑与运算。(6)实数运算指令表6实数运算指令功能块数学模型示例功能块功能描述及数学模型实数减v1一v2—SUB_REN;NOIN1OUTIN2—I一y实数相减指令对两个32位实数进行运算得到32位的结果,放入OUT中。I)=W—v3W)-v'W十.巧(A)开方v,一SQRTENENOINOUT一少幵方指令对32位实数进行开方运算得到32位的结果。正弦V_V2一SINENENOINOUT一J正弦指令对32位实数进行正弦运算得到32位的结果。+1)=sin(v2(&))v(A;)eSW白然对数v一v2一ENEN。INOUT—1一少自然对数指令对32位实数进行自然对数运算得到32位的结果。+1)=ln(>2(A:)).v,0.^⑨(7)逻辑运算指令表7逻辑运算指令功能块数学模型示例<table>tableseeoriginaldocumentpage16</column></row><table>(8)移位和循环指令表8移位和循环指令功能块数学模型示例<table>tableseeoriginaldocumentpage16</column></row><table>字左移指令将输入IN左移N位,结果写入输出OUT,并把移出位填零。如果N大于16则只移动16次。_yO+l)=(v2("x2"%216)(A:),)"e<table>tableseeoriginaldocumentpage16</column></row><table>字右移指令将输入IN右移N位,结果写入输出OUT,并把移出位填零。如果N大于16则只移动16次。>;("1)=02("/2"),洲"e[O16]<table>tableseeoriginaldocumentpage16</column></row><table>注表中%为取余数运算符。(9)传送指令表9传送指令功能块数学模型示例功能块功能描述及数学模型动MOV—WEN;NOHlINOUT少字移动指令把输入IN的值移动至输出OUT,并且不改变IN的值.;^+1)=,.,將柳字块移动BLKMOV_WeneK0HIINOUT字块移动指令把输入IN开始的N个字数据移动至输出OUT开始的N个字数据,并且不改变IN的值。乂(A:+1)]「,]「满._y2(*+l)x2(A:)_y2(WMM1M,)(10)转换指-表10转换指令功能块数学模型示例功能块功能描述及数学模型R一iENENOhlINOUT少换R—I指令将输入的实数转换为16位符号整数,将结果送入OUT。W+1)=(INT)v2("Vi(".5("其中(INT)为自定义的实数转换为符号整数运算伪指令。取vROUNDENENO|~)lINOUT7ROUND指令将输入的实数(IN)转换为32位有符号整数(OUT)。如果大于0.5就进一位。>^+l)=[v2W].Vl(,>^)^("其中[]为带四舍五入的取整符号。(11)通讯指令表ll通讯指令功能块数学模型示例17<table>tableseeoriginaldocumentpage18</column></row><table>二、功能块图程序模型的建立在单个功能块的数学模型建立完成的基础上,则可针对不同任务下系统的功能块图控制程序建立整体的状态空间模型。首先,对于特定的工程任务要求,进行控制器的选型,确定系统i/o点数及主从设备的资源分配情况,建立系统拓扑结构框架。依据任务描述,分配内存资源,编写功能块图控制程序。其次,确定状态空间模型的形式和相关参数。由于控制器周期性地进行输入采样和输出刷新,CPU执行任务采用循环扫描的方式,且状态变量值可能与上一周期的变量值相关,因此采用离散非线性系统的状态空间模型形式,如式(l)所示。+=f(x(A:r),"(AT)),)=g(x(A:r),》其中,状态向量<^)=(1)x2(ytr)M输入向量"(w)输出向量J(^Hw,(AT)w2(AT)M少刷Mr为采样周期,可省略不写,将系统AI、DI作为输入向量",AO、DO作为输出向量"程序中的内存变量作为状态向量x。模型中采样周期r的选择视系统的分布式结构而定。若为一级网络,即主控制器直接作为现场应用层设备完成数据采集和输出的情况,由于无需进行主从设备通讯和以太网通讯,则可将CPU扫描周期作为采样周期r;若系统由多个主设备及各自的从设备构成,则采样周期r取为CPU扫描周期、主从设备通讯周期及以太网通讯周期的最小公倍数。最后,根据程序中由具体组态形式所确定的功能块之间的逻辑关系,并参照用到的各个功能块的数学模型,将相应功能块的数学表达式进行组合运算,整理成如式(l)所示形式,即可得到系统控制程序的状态空间模型。三、模型简化方法及程序优化实现为使建立的状态空间模型形式达到最简,组合整理各程序段的数学模型时,可按照一定的规则进行化简运算,从而得到简化后的状态空间模型。常用的简化规则整理如下。(1)当处理布尔运算时,使用冗余定理、吸收定理、合并定理等逻辑代数公式。(2)卡诺图化简法逻辑函数较复杂时通常采用此方法,通过对卡诺图中相邻最小项的处理来简化相应逻辑函数。(3)定时器、计数器的化简PLC是"软"继电器系统,其内部计数器、定时器等资源相对较少。因此对这些资源的节省利用就显得尤为重要。以定时器为例说明其简化方法,假设有三个定时器,表达式为<formula>formulaseeoriginaldocumentpage20</formula>右;两足-①V2二VX,可写为少2少3=Au(x-v2),表示三个定时器预设值相同;②^卜巧表示三个定时器使能端信号在逻辑上不能同时发生;那么,表达式则可改写为y3一)u(x—v2)=0,十十v().u(x-v2)可见,程序中原本需要三个定时器功能块实现的功能,简化后只需一个或逻辑功能块与一个定时器功能块即可实现。(4)对于具体的工程任务,每个变量对应其各自的实际意义。例如,有些变量所表征的情况在实际中不可能同时发生,若",,A逻辑上不能同时发生,则当状态方程中出现",,A的时候就可以省略;若^^必有一个发生,则可将",e^的情况替换为l。此外,还有一些其它情况。总之,具体的省略和简化方法需要根据不同的实际情况来分析确定。根据上述规则整理得到简化后的状态空间模型,保持系统的输入输出不变,重新分配所需的内部寄存器、定时器等软件资源,根据模型所确定的输入输出变量及状态变量的作用关系,重新编写程序,即可实现对原程序的优化。本发明的有益效果是以建立并简化模型的方式实现了程序的优化,具体体现在以下几点(1)首次将状态空间的思想应用于系统控制程序建模中,状态空间模型的建立不仅弥补了己有功能块建模方法缺乏数据概念的不足,也为模型在工程上的实际应用提供了途径。(2)对支持的所有功能块均建立了数学模型,因此,本发明适用于不同工程任务中功能块的不同组态形式,具有通用性。P)模型的建立和简化过程实现了相似逻辑功能的抽象与合并,因此程序中使用的内部寄存器、定时器等软件资源及功能块数量随之减少,从而降低了程序的冗余度。总之,系统控制程序的优化可以縮短控制器的CPU扫描周期,减少内存资源的占用率,提高系统的运行效率。同时,程序的可读性得到增强。若应用于实际工业控制中,可提高生产效率,节约成本。衡量优化效果的相关指标参数根据控制任务不同而不同。图1是本发明的技术方案流程图。图2是EPA现场总线分布式控制系统结构框图。具体实施例方式以流水灯控制任务为例详细叙述本发明的具体实施例。实验平台为EPA现场总线分布式控制系统,如图2所示。该系统中,以太网可编程控制器PEC模块作为主控制器,支持EPA协议、支持IEC61131-3功能块编程,具有1个以太网通讯接口和2个RS485通讯接口,支持EPA网络,支持Modbus协议。PEC设备既可以作为独立的控制模块应用于现场,也可以外扩基于RS485总线的各种从设备,包括DIO系列开关量输入输出模块、AIO系列模拟量输入输出模块、TAC系列温控模块等,还可以与任何RS-485总线上遵循标准Modbus通讯协议的其它产品互联,与其进行数据交换,组成控制网络,应用于工业现场,实现基于工业以太网的分布式控制。本例选用PEC8000控制DIO3000的4个DO作为输出信号控制四路彩灯,2个DI采集系统启动控制及左右移方向控制两路输入信号。分配寄存器等内存资源,编写功能块图程序如下表12所示。表12流水灯控制系统功能块图原程序<table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table><table>tableseeoriginaldocumentpage25</column></row><table>程序段19:2号灯定时程序段20:左移情况下2号灯定时时间到,1号灯亮为程序中的寄存器分配对应的输入输出变量及状态变量如下所示(输入变量X/0.0使能控制输出变量乂--义0XOl号灯y2—-XgO.l2号灯状态变量a--noo.o右移标志x2-—l号灯x3—ro定时器当前计数值x,--TO定时器状态位x5——ZgO.l2号灯x,--n定时器当前计数值x,--n定时器状态位x8——10).23号灯x9--r2定时器当前计数值x,。--r2定时器状态位w7--X/0.1方向标志A—3号灯少4一—100.34号灯&--4号灯x12--73定时器当前计数值&--73定时器当前计数值x14--noo.i左移标志^--ri4定时器当前计数值x16--n4定时器状态位《7--213定时器当前计数值&--713定时器状态位jc19--ri2定时器当前计数值A。--H2定时器状态位x21--ni定时器当前计数值&--ni定时器状态位在功能块图中,程序被分为一些称为网络的段,也称程序段,一个程序段是实现特定功能的若干功能块的有序排列。以表12所示控制程序中的程序段5和程序段8为例,对由单个功能块模型到整体功能块图程序模型建立的过程予以阐述。根据程序中输入输出变量及状态变量的分配情况,结合表l一表11中各功能块的数学模型及表12中功能块之间的连接方式,程序段5和18的数学模型分别如下所示程序段5:jc5(A+1)=1-x4(t)-(,x5(t)x4(A).祸(2)x2(A+l)=x2(A:》x4(^),)(3)程序段18:x5(A+1)=1;的■;^的@x5(A)^的;^的(4)x8(A:+l)=x8(^)-x14(^)'x20(A:)(5)将式(2)与式(4)合并,运用逻辑代数公式进行简化,可得x5(A:+1)=x4(A).;c,(A)x14(A:).x20(A:)x5(A)(6)依据各变量在实际系统中的物理意义,上述简化便可得到解释。左移情况下3号灯亮定时时间到和右移情况下1号灯亮定时时间到所引起的结果均为点亮2号灯。因此,将2号灯点亮的这两种条件合并,即将式(2)和式(4)合并得到式(6)。依此类推,并综合运用适当的简化方法,将各个程序段模型进行整理,可得该控制程序简化后的状态方程及输出方程,如式(7)所示。模型中隐含的采样周期r为PEC8000的CPU扫描周期和主从设备通讯周期的最小公倍数。状态方程<formula>formulaseeoriginaldocumentpage27</formula>输出方程:<formula>formulaseeoriginaldocumentpage27</formula>根据模型(7),重新分配PLC内部寄存器及定时器等资源,编写控制程序如表13所示,编译并下载至控制器运行,依据系统的实际运行情况检验模型的正确性及控制效果。表13流水灯控制系统优化后的功能块图程序<table>tableseeoriginaldocumentpage27</column></row><table><image>imageseeoriginaldocumentpage28</image><table>tableseeoriginaldocumentpage29</column></row><table>程序段10:右移时3号灯定时或左移时1号灯定时<table>tableseeoriginaldocumentpage29</column></row><table>程序段ll:定时时间到,4号灯亮对比优化前后的程序,相关参数见下表14:表14程序优化效果表<table>tableseeoriginaldocumentpage29</column></row><table>由表14可知,优化后的程序节省了内存变量及定时器等软件资源的使用,程序段总数量和功能块个数均有大幅度减少,同时,减少了代码所占内存空间:縮短了程序运行时间。根据简化后的模型改写程序,系统的工作效率得到提高:算法功能实现的冗余度明显降低。并且,控制系统规模越大,控制程序越复杂:优化效果越显著。权利要求1.EPA分布式控制系统功能块程序建模及优化方法,其特征在于如下步骤(一)功能块数学模型的建立,功能块如下(1)—(11)(1)位逻辑指令(2)比较指令(3)定时器指令(4)计数器指令(5)整数数学运算指令表中“+”和分别表示算术加和逻辑或运算;“×”和“g”分别表示算术乘和逻辑与运算;(6)实数运算指令(7)逻辑运算指令(8)移位和循环指令表中“%”为取余数运算符;(9)传送指令(10)转换指令(11)通讯指令(二)功能块图程序模型的建立首先,进行控制器选型,确定系统I/O点数及主从设备的资源分配情况,建立系统拓扑结构框架;依据任务描述,分配内存资源,编写功能块图控制程序;其次,确定状态空间模型的形式和相关参数,如下式(1)所示其中,状态向量输入向量输出向量T为采样周期,省略不写;将系统AI、DI作为输入向量u;AO、DO作为输出向量y;程序中的内存变量作为状态向量x;模型中采样周期T的选择如下若为一级网络,即主控制器直接作为现场应用层设备完成数据采集和输出的情况,则将CPU扫描周期作为采样周期T;若系统由多个主设备及各自的从设备构成,则采样周期T取为CPU扫描周期、主从设备通讯周期及以太网通讯周期的最小公倍数;最后,根据程序中由具体组态形式所确定的功能块之间的逻辑关系,并参照用到的各个功能块的数学模型,将相应功能块的数学表达式进行组合运算,整理成如式(1)所示形式,即得到系统控制程序的状态空间模型;(三)模型简化方法及程序优化实现常用的简化规则如下(1)处理布尔运算时,使用冗余定理、吸收定理和合并定理等逻辑代数公式;(2)卡诺图化简法;(3)定时器、计数器的化简以定时器为例说明其简化方法,假设有三个定时器,表达式为若满足①写为表示三个定时器预设值相同;②表示三个定时器使能端信号在逻辑上不能同时发生,表达式写为计数器的简化方法与定时器类似;(4)若u1,u2逻辑上不能同时发生,则当状态方程中出现u1,u2时则省略;若u1,u2必有一个发生,则将的情况替换为1;根据简化后的模型所确定的输入输出变量及状态变量之间的相互作用关系,分配寄存器等软件资源,重新编写程序,则实现对系统原控制程序的优化。全文摘要本发明以EPA现场总线分布式控制系统为实验平台,针对IEC61131-3功能块图编程语言,提出了一种基于状态空间模型的程序建模及优化方法。该方法在对所有功能块封装的算法建立数学模型的基础上,将系统的DI、AI,DO、AO和内部存储器单元分别映射为模型中的输入向量、输出向量和状态向量,根据功能块的数学模型及程序的组态形式所确定的功能块之间的逻辑关系,建立控制程序的状态空间模型,描述系统输入、内部状态及输出三者之间的相互作用关系。并运用逻辑代数公式、卡诺图和定时器合并等方法对该状态空间模型进行简化,根据简化后的模型重新编写程序,从而实现对控制程序的优化。文档编号H05B37/02GK101510082SQ200910010810公开日2009年8月19日申请日期2009年3月19日优先权日2009年3月19日发明者仲崇权,洁刘,张立勇,丹李,杨素英申请人:大连理工大学