0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用JBS2GK03装置和OPC服务器实现水箱系统的动态矩阵控制

牵手一起梦 来源:电子设计应用 作者:周以琳;张文霞; 2020-03-28 09:54 次阅读

引言

FF现场总线系统是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络,与现行控制系统相比,具有如下技术优势:① 现场总线用数字信号代替传统的模拟信号,测量精度高,抗干扰能力强;② 基于总线的现场仪表可以对量程和零点进行远程设定,具有仪表工作状态自诊断功能,能进行多参数测量和对环境影响的自动补偿;③ 现场设备集检测、转换、运算和控制功能于一体,既降低了成本,又增加了安全性和可靠性。④ 所有现场设备直接通过一对传输线即现场总线连接,减少了连线的数量,易于安装和维护,节省费用、调试和维修成本。

本实验测控系统采用JBS2GK03过程控制实验装置,并采用中科院沈阳自动化研究所开发的FF H1 OPC服务器MicroCyber. FFServer.1作为OPC服务器。该服务器符合OPC组织制订的OPC DA 2.0规范标准。OPC客户端与服务器之间的通讯符合OPC的自动化接口规范要求,利用Matlab 7.0支持OPC规范的新功能,实现了用户端与服务器端的通讯。动态矩阵控制算法在客户端通过Matlab的M语言实现,充分发挥了矩阵计算语言简洁、高效的优势。

控制原理

本实验测控系统采用的JBS2GK03过程控制实验装置,被控参数变量为液位、流量、温度和压力。该过程为自衡非振荡, 具有相互影响的双容过程,其数学模型可用如下传递函数描述:

采用JBS2GK03装置和OPC服务器实现水箱系统的动态矩阵控制

式中,Kp, Tp,τ分别为过程的增益、时间常数和时滞。由上位机的OPC服务器实时获取FF现场总线采集现场设备数据并动态显示。

OPC服务器MicroCyber .FFServer.1每秒钟刷新一次,实现设备的实时数据和历史数据共享以及报警等功能。OPC客户端与服务器之间的通讯符合OPC的自动化接口规范要求,利用matlab 7.0支持OPC规范的新功能,实现用户端与服务器的通讯。动态矩阵控制算法通过Matlab的M语言在监控端实现,利用其强大的计算与动态显示能力对水箱系统进行动态矩阵控制。并将OPC服务器的历史数据保存在Matlab的数组中,以实现对历史数据曲线的实时绘制。本文采用的受控对象为Device1.Flow,组名为 Device1。通过Matlab编写的客户端与SQl2000服务器的ODBC连接,实时与数据库交互。从OPC服务器读取选项的值,并可以实时将选项的值插入到数据库服务器中保存为历史数据。需要时,可以通过选项随时将历史数据进行回调,进行查询、更新、删除等操作,或者用于算法控制和绘制历史曲线图。从而可以实现OPC服务器和历史数据服务器的分布式管理。本设计中采用的NCS-IF105设备可以接收四个通道0~20mA模拟信号,并转换成FF现场总线信号。而NCS-LD105现场总线网关则可用于各种采用FF H1现场总线设备的控制系统当中,不仅可将FF H1总线设备无缝集成到以太网网络中,还可扩展FF H1应用。

采用JBS2GK03装置和OPC服务器实现水箱系统的动态矩阵控制

程序实现

客户端与OPC服务器通讯

首先,Matlab客户端应先生成 OPC服务器支持的 OPC 对象。OPC 数据访问对象由分层结构构成,即一个 OPC 服务器对象具有一个作为子对象的 OPC组集合对象(OPC Groups)。在这个 OPC组集合对象里可以添加多个OPC组对象。各个OPC组对象都具有一个作为子对象的OPC标签集合对象,在这个标签集合对象里可以添加多个 OPC标签对象。

用Matlab M文件编写OPC客户端程序包含以下步骤:

(1)添加服务器的引用,创建 OPC 服务器对象,并将客户程序与服务器相连;

(2)连接创建的OPC 服务器对象;

(3)通过浏览整个服务器中所有的项,添加组对象;

(4)添加 OPC项,选择需要的项,将其添加到规定的组中,并显示其值和状态;

(5)启动OPC服务器。

程序和注释如下:

hostInfo = opcserverinfo(远程/本地服务器名);%连接远程/本地服务器

allServers = hostInfo.ServerID‘;

da = opcda(服务器名, OPC服务器名);

connect(da);

sawtoothItems = serveritems(da, *受控设备名*);

itmIDs = {控设备名};

grp = addgroup(da, DemGroup);%增加组

itm = additem(grp, itmIDs); %增加项目

start(grp); %启动OPC服务器

客户端与SQL数据库服务器通讯

首先,在SQL数据库中建立一个指定名字的数据库,并建立一个名为history的表。表中的字段包括选项的值(value)、品质(quality)、时间戳(timestamp)、服务器名(servername)以及设备名(device)。设置ODBC数据源,建立一个和前面数据库名字相同的数据源,该数据源指向SQL数据库中的同名数据库。测试连接成功后,即可在Matlab中通过编写M文件实现与数据库的连接,并建立一个工作空间数组存储来自数据库的数据,通过执行命令的方式实现选择、插入数据等操作。关键程序及注释如下所示:

首先,实现建立连接对象,实现与数据库服务器的连接。

conn = database(数据源名、用户名、用户密码);%连接数据库

ping(conn);%检查连接状态

curs = exec(conn, select country from 表名)%打开游标执行SQL语句

setdbprefs(DataReturnFormat, cellarray)%说明检索数据的格式

curs = fetch(curs、10)%将数据导入到Matalb

columnnames(curs)%获取列名

A = curs.Data%显示游标对象里的所有数据元素,data(:,3)为获取某一字段的元素值

insert(conn、 表名、字段名、 数组名);%将数组的值插入到表的某一字段中

close(curs)%关闭游标

close(conn)%关闭连接对象

改进的DMC控制程序仿真

受控系统数学模型如公式(1)所示。将阶跃信号作为控制信号作用于受控系统,通过FF现场总线,实时获取一段时间内系统某一受控对象(流量)的阶跃响应输出,通过Matlab程序读取对应时刻的阶跃响应值,并将时间和对应值存在一个数组中。通过建立受控对象的数学模型,可辨识受控系统的参数,并得到辨识后系统的输出。使用Matlab 7.0 的OPC工具包,实现客户端程序与OPC服务器的通讯,使用get(itm,value)函数来获取服务器中流量的实时值(其中itm=Device1.Flow),然后进行动态矩阵控制。得到控制量后,通过使用write(itm, setvalue)函数将控制量写入OPC服务器,从而控制受控系统。

设置模型的时域长度为N=10,优化时域长度为P=3,误差校正向量为h,其长度为N,控制向量为d,其长度为P,预测向量存储在数组y1中。不同的模型时域长度和优化长度对系统性能的影响是不同的,仿真曲线如图1所示。r过大时,预测向量会明显偏离真实的系统响应,对预测不利。当r=20,P=3时,预测与实际响应值一致。可见,在DMC控制算法中,应该合理选择模型时域长度和优化长度才能达到理想的控制效果。

结语

FF 现场总线技术与传统DCS 相比,系统布线投资明显减少,而网络功能则大大加强。而且该系统可以充分利用各种软件的优势,大大提高软件编程的效率和灵活性,实际运行结果表明,基于Matlab和OPC技术的FF现场总线的测控系统运行稳定,控制效果良好。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82507
  • 自动化
    +关注

    关注

    28

    文章

    5037

    浏览量

    77729
  • 现场总线
    +关注

    关注

    3

    文章

    509

    浏览量

    38367
收藏 人收藏

    评论

    相关推荐

    在uIP协议栈实现基于AJAX和CGI的动态Web服务器

    和应用。为了满足资源有限的嵌入式系统的需要,本文采用微型TCP/IP协议栈uIP,在协议栈之上设计实现了基于CGI的动态Web服务器,并将A
    发表于 05-28 05:00

    为什么VEE没有OPC服务器

    Hal,更好的问题:为什么VEE没有OPC服务器?Ted SearsEastman Kodak
    发表于 11-06 14:02

    OPC服务器实现通信有哪些需求?

    沟通  让我们假设我们有两个编程逻辑控制器-PLC。如果两个plc供应商的通信协议是不同的。为了连接这两个控制器并使用SCADA软件监控数据,需要一个OPC服务器。这减少了将专有协议转
    发表于 09-01 17:53

    OPC服务器开发浅谈 — 服务器模型

    的开发,主要包括两大部分的工作:OPC接口的实现和设备驱动部分的开发。OPC接口的实现,实质上就是按照OPC标准进行COM接口开发,对于大多
    发表于 07-02 08:29

    基于FF现场总线实现水箱系统动态矩阵控制

    基于FF现场总线实现水箱系统动态矩阵控制 Implementing Dynamic Matri
    发表于 03-16 16:32 9次下载

    OPCOPC服务器的设计与实现

    简要介绍了OPC原理,OPC规范以及小型DCS控制系统OPC服务器的设计与实现。关键词:
    发表于 03-18 14:03 50次下载

    OPC服务器开发的几种方法

    简要介绍了OPC DA 规范,描述了OPC DA(数据访问)服务器开发的三种方法:使用MFC 的COM 库函数开发OPC 服务器、通过ATL
    发表于 05-26 15:00 26次下载

    OPC 服务器的研究及其在CAN 总线系统中的实现

    在简要介绍OPC 技术的基础上,描述了OPC 服务器的结构及开发步骤,详细讲述了OPC 技术在CAN 总线系统中的
    发表于 06-10 13:43 10次下载

    基于FF现场总线实现水箱系统动态矩阵控制

    针对FF现场总线中监控软件实现DMC算法的困难,提出利用Matlab7.0 OPC工具包实现OPC服务器间通讯并
    发表于 06-30 17:24 13次下载

    OPC DA服务器的设计与实现

    本文对OPC技术做了详细的分析,在OPC DA标准的基础上,给出了一个OPC数据存取访问服务器框架的设计方案,并介绍了实现的主要步骤。在设计
    发表于 02-21 15:00 11次下载

    OPC DA服务器的设计与实现

    本文对OPC技术做了详细的分析,在OPC DA标准的基础上,给出了一个OPC数据存取访问服务器框架的设计方案,并介绍了实现的主要步骤。在设计
    发表于 07-22 17:27 17次下载

    基于OPC的数据访问服务器开发

    基于OPC的数据访问服务器开发一文以针对一种PCI总线CAN通信卡设计的 OPC 数据访问服务器为编程实例,详细介绍了OPC数据访问
    发表于 07-18 16:39 35次下载
    基于<b class='flag-5'>OPC</b>的数据访问<b class='flag-5'>服务器</b>开发

    信息集成与OPC服务器的开发

    本文探讨了基于OPC中间件的现代控制系统信息集成解决方案,并阐述了OPC技术的核心思想和 服务器 开发模式,结合一种数据采集与控制卡,给出了
    发表于 07-22 16:43 34次下载
    信息集成与<b class='flag-5'>OPC</b><b class='flag-5'>服务器</b>的开发

    工业控制系统OPC服务器

    OPC代表OLE(对象链接和嵌入)过程控制OPC是最流行的数据连接标准,用于在控制器,设备,应用程序和其他基于服务器
    发表于 06-13 17:20 1305次阅读
    工业<b class='flag-5'>控制系统</b>中<b class='flag-5'>OPC</b><b class='flag-5'>服务器</b>

    关于工业控制系统中的OPC服务器

    OPC代表OLE(对象链接和嵌入)过程控制OPC是最流行的数据连接标准,用于在控制器,设备,应用程序和其他基于服务器
    发表于 09-30 17:44 1046次阅读