一种基于opc的工业控制实训装置的制造方法_4

文档序号:9788489阅读:来源:国知局
0110] 4.3方案实施
[0111] 若需采用LT10 3液位变送器、FV101调节阀实现对V10 3水箱的液位控制。则应首先 在WINCC中建立两内存变量,如LT103_AI,FV101_A0分别代表LT103液位测量值与FV101调 节阀控制值,随后Matlab即可通过WINCC的0PC服务器"OPCServer. WinCC"读写上述工艺参 数。
[0112] 其控制流程是:由S7-300系统中的SM331扩展AI通道获取测量值,经WINCC的0PC月艮 务器借助0PC机制传递给Matlab;再由Matlab实现相应控制算法后,利用0PC机制通过WINCC 的0PC服务器将阀位值回传给S7-300系统中的SM332扩展A0通道输出端,以便驱动FV-101调 节阀,最终实现对液位的自动控制。
[0113] 5.基于VB的0PC客户端编程技术
[0114] 由上述1-4各节,已介绍了通过各种智能10模块、智能调节器及PLC构成过程接口, 并实现0PC服务器的方法。目前,众多的工控仪表、组态软件均提供了类似的0PC服务器功 能,为基于0PC的控制模式应用奠定了良好的基础。本节将介绍利用通用编程软件实现0PC 客户端的编程技术,由于通用编程软件(VB、VC++,V#等)具有几乎无限的UI界面、通讯网络、 数据存储等控制能力,故采用此种编程方法为控制算法及其它应用功能的开发提供了广泛 的可能性及适用性。
[0115] 由于VB语言相对简单,编写开发周期较短,故本节仅以VB6.0为例介绍0PC客户端 的开发方法。
[0116] 5.1建立VB的0PC自动化接口
[0117] 首先要在VB程序的工程引用中加载0PC自动化接口 0P⑶AAUTO. dl 1,如果没有,可 从网络链接http://www.opcf oundat ion. com上下载该动态链接库。
[0118] 开发之前需先引用动态链接库0PCAauto.dll,操作步骤如下:在"工程"菜单下选 择"引用",在弹出的引用窗口选中"〇PC DA Automation Wrapper X.XX"(这里X.XX取决于 不同的dll版本号)。只有引用了0PC DA Automation Wrapper x.xx中的动态链接库 0PCAuto.dll文件,在程序中才能创建服务器对象,并进行一系列对象的操作。以下大致说 明程序开发的基本步骤:
[0119] 5.2变量的定义
[0120] 定义全局变量是为了在窗体的任何方法的代码内应用。为了避免程序出错,在窗 体的通用声明部分可加上"Option Explicit"语句,表示模块里的所有变量都需要显式声 明。由于0PC自动化接口的数组索引要求必须从1开始,而系统默认是从0开始,为了避免错 误最好在代码的最初加上"Option Basel"语句。为了使对象可以处理事件,必须将 MyOPCGroup和MyOPCServer的声明中加上"With Events"语句,表不声明的对象可以响应事 件。
[0121]其具体步骤包括:定义一个0PC服务器对象,用于连接0PC服务器;定义一个0PC组 集合,用于管理0PC组;定义一个0PC组对象,用于管理0PC项;定义一个0PC项集合;定义一个 OPC项对象;定义项ID对象;定义值对象;定义服务器句柄;定义客户端句柄;定义错误句柄 等。
[0122] 5.3连接0PC服务器对象、建立0PC组、添加 0PC项
[0123] 其具体步骤包括:建立OPCServer服务器对象;连接OPCServer服务器,其中: ServerName为OPC Server的服务名称,比如ADAM模块Advantech OPC Server服务器的ID为 "Advantech .AdamOPCDA. 3" ; ServerNode为OPCServer的计算机结点名称;建立一个0PC组集 合;添加一个0PC组;建立0PC项集合;添加与工控参数相关的0PC项,比如ADAM模块模拟量输 入通道0为 "ADAM_P0RT · ADAM_4018p · ΑΙ0"。
[0124] 一旦OPC项在OPC服务器中添加成功,OPC服务器将赋予被添加的各个OPC项一个唯 一的标识符,这个标识符叫做服务器句柄。被赋予的服务器句柄将返回给0PC客户程序,0PC 客户程序可通过句柄对0PC项进行读写。
[0125] 5.4订阅式读取的代码实现
[0126] 订阅式方式进行数据访问,必须把0PC组对象的"IsSubscribed"属性设置为 "True",这样才能在0PC服务器中的数据变化的时候触发"Data Change"事件,这个事件中 返回的"NumI terns"参数表明多少0PC项发生变化;返回的"Cl ientHandles"数组给出了发生 变化的0PC项目ID值;而返回的"ItemValues"数组则给出了变化后的0PC项目值。
[0127] 5.5数据的同步读写
[0128] 0PC的读写可以分为同步和异步操作,对于大量的数据传送,优选异步操作,而对 于较少的数据操作,同步操作效率较高。同步读写分别可用"SyncRead"及"SyncWrite"函数 实现。
[0129] 5.6操作结束,断开0PC服务器
[0130]其步骤包括:删除全部0PC组集合;关闭与0PC服务器的连接以及释放内存变量等 操作。
[0131] 6.基于0PC机制,借助VB开发的实验管理软件
[0132] 本系统中利用0PC功能,借助VB开发了一套实验管理软件,用于对实验进行安排, 交流并可对实验结果进行记录及监控,以提高工作效率。本软件中使用上节所述的基于VB 的0PC客户端开发技术,读取系统中各种工控装置及被控对象的运行状态及运行参数,配合 数据库管理、网络管理功能,编写了一个实验管理软件,包括下述功能,如图3所示:
[0133] ?通过网页发布实验室综合信息,包括教学计划、实验课程介绍、规章制度、操作 规程、数据图表、教师队伍、实验教材讲义、开放实验室管理、通知、成绩公布等;
[0134] ?通过开放实验室管理系统远程登录后,学生可以通过提出问题,参加讨论,发表 见解,向教师提出设计性实验方案,预约实验内容和时间。教师可以辅导答疑,介绍有关知 识。学生可根据自己的学习进度方便地查阅有关的实验教学内容。教师可以对实验安排、实 验完成情况进行查询;可以统计数据,打印报表,在网上公布;
[0135] ?系统还具有系统监控、实验安排、实验成绩管理等功能。
[0136] 7.基于Matlab/Simulink的单神经元PID控制器构建示例
[0137] Matlab/Simulink中提供了丰富的控制工具箱,可方便地实现各种从普通PID控制 到模糊控制、神经网络控制等预定义的控制算法。由于Ma 11 ab / S i mu 1 i n k强大的编程能力, 还可为控制算法的进一步扩展提供各种灵活的可能性。以下实例介绍一个利用Matlab/ S imu 1 i nk实现的单神经元PID控制实例。
[0138] 7.1单神经元PID控制算法
[0139] PID控制的各个参数均有明显的物理意义,且结构简单,调整方便、鲁棒性好,并为 广大现场工作人员和设计工程师所熟悉,在自动控制中一直发挥着巨大的作用。但由于实 际生产过程中广泛存在的非线性、时变及不确定性等因素,恒参数的常规PID控制器往往难 以达到理想的控制效果。
[0140]利用神经网络的自学习能力和逼近任意函数的能力,把神经网络与传统的PID控 制有机地结合,可在一定程度上解决PID调节器参数在线实时整定问题,表现出对时变、非 线性对象特性良好的自适应性和鲁棒性。
[0141] 在神经网络控制中,单神经元是最基本的控制部件。由于仅有一个神经元,结构简 单,计算量小,权值学习时间短,可获得较好的实时性。
[0142] 考察PID控制器的离散算式:
[0144] 其中:e(k),u(k)分别为k时刻的控制系统的偏差与控制器输出值;T为计算机采样 周期。写成增量形式,得:
[0145] Au(k)=kP(e(k)-e(k_l) )+kie(k)T+kd[e(k)-2e(k_l )+e(k_2) ]/T (2)
[0146] 运用神经网络思想,构造单神经元PID控制器,如图4所示。
[0147] 图中,神经网络输入为:
[0148] xi(k) = e(k)-e(k-l)
[0149] X2(k) = e(k)T=(r(k)-y(k))T (3)
[0150] X3(k)=[e(k)-2e(k_l)+e(k_2)]/T
[0151] 神经网络输出为:
[0153] u(k) =Kz(k)+u(k-l) (4)
[0154] 其中:%(1〇4 = 1,2,3为加权值。
[0155] 采用有监督的Hebb学习规则,权向量的调整公式为:Wi = n(ri(k)-〇i(k) )〇i(k)Xi (k)。为保证这种单神经元自适应控制学习算法的收敛性和鲁棒性,将其规范化处理后可得 以下式(5)与式(6):
[0158] 其中:
[0159] wi(k+l) =Wi(k)+riie(k)u(k)xi(k) (6)
[0160]这里,e(k)是输出误差信号,ru, iGP, I,D分别表不比例、积分、微分的学习速率。 单神经元PID控制器将根据控制系统实际输出和期望输出的偏差值,采取特定的学习规 贝1J,不断调节网络权值向量^到最佳值^*。网络权值的调整过程也可视作PID控制器参数的 自整定过程,从而使得神经元PID控制器对于时变及非线性具有较强的适应能力。
[0161] 7 · 2
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1