⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opc技术在工业自动化软件中的应用--《plc&fa》网络版.htm

📁 OPC document,collecting~
💻 HTM
📖 第 1 页 / 共 3 页
字号:
                        Interface)。客户化接口是一个OPC服务器所必须实现的接口,它描述了OPC组件对象的接口和其中的方法,适合C++和PASCAL语言设计,并可实现最佳运行性能的客户应用程序,客户化接口没有项的对象,它对项的操作都是通过包容此项的组对象进行的。自动化接口是可选接口,它提供的是一个自动配置和存取过程控制数据的接口,它方便了Visual 
                        Basic、Excel及其它可以使用OLE自动化的服务器应用程序接口的高级商业软件使用。自动化接口实际上是在客户化接口上的自动化封装,为此,OPC基金会提供了一套标准的自动化包装器(wrapperDLL),这个包装器可用来包装任何客户化服务器,图3给出了客户化接口与自动化接口的关系。 
                        </P>
                        <P><STRONG><FONT color=#000084>3&nbsp; 
                        OPC技术在自动化软件中的应用实现<BR></FONT></STRONG>&nbsp;&nbsp;&nbsp; 
                        某化工企业的管理一体化方案实施中,要将现场的实时数据采集到上位监控计算机中,存入本地数据库,并将数据传送到管理网络的数据库中,共企业进行管理、调度及工艺优化。除了考虑数据安全性和实时性等因素外,我们主要从提高整个系统的灵活性和开放性方面入手,决定采用OPC这一标准接口实现数据的采集和上传。<BR></P>
                        <P>系统的软件结构参见图3:</P>
                        <P align=center><IMG 
                        src="OPC技术在工业自动化软件中的应用--《PLC&amp;FA》网络版.files/200510814401269316.gif"></P>
                        <P align=center>图3&nbsp;&nbsp;&nbsp;&nbsp; 
                        系统软件结构图<BR></P>
                        <P><BR>&nbsp;&nbsp;&nbsp; 
                        监控计算机是一台工控计算机,内安装有数据采集卡(通用多串口卡,网卡),软件安装有OPC Server和OPC 
                        Client。OPC 
                        Server连接现场数控制设备,负责数据采集,数据存储,故障报警等功能。集成在客户应用程序(OPC 
                        Client)分别调用各自的服务器接口函数,读取OPC 
                        Server采集过来的实时数据传递给用户界面,完成对现场各个设备检测、监控、调节、诊断等功能。<BR>&nbsp;&nbsp;&nbsp; 
                        OPC软件的设计在系统所需的OPC接口软件中,包括OPC服务器软件和OPC客户软件,均为独立开发,本论题只讨论OPC客户软件的开发<BR>该软件的设计目的,是把OPC服务器的数据写入管理网络的SQL 
                        Server数据库保存起来。考虑到系统对数据的实时性要求较高,开发工具才应用VC++6.0,与OPC服务器的通讯采用OPC定制接口,对SQL 
                        Server数据库的操作采用ADO 
                        API。<BR>该软件包括两个模块:OPC数据采集和数据保存。模块之间采用Win32的多线程技术进行通讯,OPC数据采集作为工作线程在后台运行,数据保存即写系统主线程。工作线程的线程函数循环读取OPC服务器中的数据,数据的变化不断出发主线程的写库事件。此外为了保证数据的安全性,使用了信号灯同步对象,以协调两个线程对共享资源的访问。<BR></P>
                        <P><STRONG><FONT color=#000084>3.1&nbsp; 
                        OPC数据采集模块的设计</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp; 
                        该模块按照以下步骤写完与OPC服务器的连接,以及对服务器缓冲区数据的读取。该程序在delphi6上编译通过。<BR>Var<BR>Hr:HResult;<BR>Begin<BR>try<BR>// 
                        we will use the custom OPC interfaces, and<BR>// 
                        OPCProxy.dll will handle<BR>// marshaling for us 
                        automatically (if registered)<BR>ServerIf := 
                        CreateComObject(ProgIDToClassID(ServerProgID)) as 
                        IOPCServer;<BR>except<BR>ServerIf := nil;<BR>end;<BR>if 
                        ServerIf &lt;&gt; nil 
                        then<BR>begin<BR>Writeln('已经连接到OPC服务器Connected to OPC 
                        server');<BR>end<BR>else 
                        begin<BR>Writeln('不能连接OPC服务器Unable to connect to OPC 
                        server');<BR>Exit;<BR>end;<BR>// now add a 
                        group//向OPC服务器中加入组<BR>// Group_My<BR>HR := 
                        ServerAddGroup(ServerIf, 'Group_My', True, 500, 0, 
                        GroupIf, GroupHandle);<BR>if Succeeded(HR) 
                        then<BR>begin<BR>Writeln('添加组成功!');<BR>end<BR>else 
                        begin<BR>Writeln('添加组失败!');<BR>Exit;<BR>end;<BR>//向组中添加变量Item_0<BR>HR 
                        := GroupAddItem(GroupIf, Item_0, 0, VT_EMPTY, 
                        Item0Handle,<BR>ItemType);<BR>if Succeeded(HR) 
                        then<BR>begin<BR>Writeln('添加数据项0成功!');<BR>end<BR>else 
                        begin<BR>Writeln('添加数据项0失败!');<BR>ServerIf.RemoveGroup(GroupHandle, 
                        False);<BR>Exit;<BR>end;<BR>// now add a second item to 
                        the group<BR>HR := GroupAddItem(GroupIf, Item_1, 1, 
                        VT_EMPTY, Item1Handle,<BR>ItemType);<BR>if Succeeded(HR) 
                        then<BR>begin<BR>Writeln('添加数据项1成功!');<BR>end<BR>else 
                        begin<BR>Writeln('添加数据项1失败!');<BR>ServerIf.RemoveGroup(GroupHandle, 
                        False);<BR>Exit;<BR>end;<BR>// 同步读取数据项<BR>HR := 
                        ReadOPCGroupItemValue(GroupIf, Item0Handle, ItemValue_0, 
                        ItemQuality);<BR>if Succeeded(HR) then<BR>begin<BR>if 
                        (ItemQuality and OPC_QUALITY_MASK) = OPC_QUALITY_GOOD 
                        then<BR>begin<BR>Writeln('Item 0 value read 
                        synchronously as ', ItemValue);<BR>end<BR>else 
                        begin<BR>Writeln('Item 0 value was read synchronously, 
                        but quality was not good');<BR>end;<BR>end<BR>else 
                        begin<BR>Writeln('Failed to read item 0 value 
                        synchronously');<BR>end;<BR>// 
                        将数据ItemValue_1写入数据项item_1<BR>HR := 
                        WriteOPCGroupItemValue(GroupIf, Item1Handle, 
                        ItemValue_1);<BR>if Succeeded(HR) 
                        then<BR>begin<BR>Writeln('Item 1 value written 
                        synchronously');<BR>end<BR>else begin<BR>Writeln('Failed 
                        to write item 1 value synchronously');<BR>end;<BR>// 
                        移除组<BR>HR := ServerIf.RemoveGroup(GroupHandle, 
                        False);<BR>if Succeeded(HR) 
                        then<BR>begin<BR>Writeln('Removed 
                        group');<BR>end<BR>else begin<BR>Writeln('Unable to 
                        remove group');<BR>end;<BR></P><STRONG><FONT 
                        color=#000084></FONT></STRONG>
                        <P><STRONG><FONT color=#000084>3.2&nbsp; 
                        数据保存模块的设计.&nbsp;<BR></FONT></STRONG>&nbsp;&nbsp;&nbsp; 
                        该模块以独立线程运行,以只读的方式通过ODBC共享OPC数据采集模块创建的数据存储区。对SQL 
                        Server数据库操作采用了基于OLE 
                        DB的模板技术,这种中间件技术也是微软提出的一种开放式的数据库编程技术,它对数据源的格式没有严格的限制,所以可以提供对数据库稳定而灵活的操作。</P>
                        <P><STRONG><FONT color=#000084>4&nbsp; 
                        结束语<BR></FONT></STRONG>&nbsp;&nbsp;&nbsp; 
                        系统使用该软件后,可以从OPC服务器中按要求实时读取DCS的数据,并保存到管理网络的SQL 
                        Server数据库,供网上的用户进行浏览与查询,目前已完成该企业控制系统与管理网络的信息集成,为企业管控一体化的实施奠定了基础。<BR>OPC技术的成功应用,使得该系统具有良好的灵活性和开放性。由于DCS的数据已引入了OPC服务器,所以用户可以开发自己所需要的OPC客户软件,或者使用任何内置OPC接口的控制、管理软件与服务器连接通讯。此外,我们已在管理网络SQL 
                        Server数据库的基础上,进一步开发了过程管理、设备管理、生产工艺优化和数据挖掘等应用软件,大大提高了企业的综合自动化水平。</P>
                        <P><BR>&nbsp;</P></TD></TR>
                    <TR>
                      <TD colSpan=2>&nbsp;</TD></TR>
                    <TR>
                      <TD align=right colSpan=2 height=25><FONT 
                        color=#993333>本文摘自《PLC&amp;FA》</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=middle height=40>
            <TABLE cellSpacing=0 cellPadding=4 width="99%" bgColor=#e6f4fb 
            border=0>
              <TBODY>
              <TR>
                <TD background=OPC技术在工业自动化软件中的应用--《PLC&amp;FA》网络版.files/16.jpg 
                height=20>共有网友评论3条【<A 
                  href="http://www.plc-fa.hk/comment.asp?topictype=2&amp;topicid=3555" 
                  target=_blank>查看所有评论</A>】【推荐给好友】【<A 
                  href="javascript:window.print()">打印</A>】</TD></TR>
              <TR>
                <TD>
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD height=25>·不错,今天第一次接触这个东西。OPC好啊! (2006-7-7 
                      16:35:05)</TD></TR></TBODY></TABLE>
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD height=25>·good (2006-7-1 
                  23:35:57)</TD></TR></TBODY></TABLE>
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD height=25>·只是泛泛而谈,如果能再细一点就好了 (2006-5-17 
                    2:43:22)</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=1 cellPadding=5 width="99%" bgColor=#e7f7ff 
            border=0>
              <TBODY>
              <TR>
                <TD align=middle><STRONG>发表对此文评论</STRONG></TD></TR>
              <TR>
                <TD align=middle>
                  <FORM action=postcomment.asp method=post>
                  <TABLE cellSpacing=0 cellPadding=3 width=300 border=0>
                    <TBODY>
                    <TR>
                      <TD height=91><TEXTAREA style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: 1px solid; WIDTH: 250px; BORDER-BOTTOM: 1px solid; HEIGHT: 100px; BACKGROUND-COLOR: #ffffff" name=content rows=6 cols=55></TEXTAREA> 
                      </TD></TR>
                    <TR>
                      <TD align=middle><INPUT style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: 1px solid; WIDTH: 60px; BORDER-BOTTOM: 1px solid; FONT-FAMILY: 宋体; HEIGHT: 20px" type=submit value=提交 name=Submit> 
                        <INPUT type=hidden value=3555 name=topicid> <INPUT 
                        type=hidden value=OPC技术在工业自动化软件中的应用 name=topicname> 
                    </TD></TR></TBODY></TABLE><INPUT type=hidden value=2 
                  name=topictype><BR></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=2 width=770 border=0>
  <TBODY>
  <TR>
    <TD class=666666 vAlign=bottom align=middle width=171 bgColor=#ebebeb 
    height=20>&nbsp; </TD>
    <TD class=666666 vAlign=bottom align=middle width=397 bgColor=#ebebeb><A 
      class=666666 href="http://www.plc-fa.hk/about.asp">杂志简介</A> | <A 
      href="http://www.plc-fa.hk/about1.asp">发行分析</A> | <A class=666666 
      href="http://www.plc-fa.hk/ad.asp">广告预订</A> | <A class=666666 
      href="http://www.plc-fa.hk/doonline.asp">在线投稿</A> | <A class=666666 
      href="http://www.ca800.com/book/showmaga.asp?id=66" target=_blank>在线订阅</A> 
    </TD>
    <TD class=666666 vAlign=bottom align=middle width=190 bgColor=#ebebeb><A 
      href="http://www.servo.hk/" target=_blank><FONT 
      color=#ff0000>伺服控制</FONT></A> &nbsp;&nbsp;&nbsp;&nbsp;<A 
      href="http://www.inverterworld.hk/" target=_blank><FONT 
      color=#ff0000>变频器世界</FONT></A></TD></TR>
  <TR>
    <TD bgColor=#666666 colSpan=3 height=1></TD></TR>
  <TR>
    <TD class=666666 align=middle colSpan=3>&copy;2005 东方国际科技传媒有限公司版权所有 
  未经许可不得转载</TD></TR>
  <TR>
    <TD colSpan=3>&nbsp;</TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript> 
    var __cc_style = 0;
    var __cc_uid="ca800"; 
</SCRIPT>

<SCRIPT language=JavaScript src=""> 
</SCRIPT>
</CENTER>
<SCRIPT>document.write(unescape("%3Cscript%3Edocument.oncontextmenu%3Dnew%20Function%28%22event.returnValue%3Dfalse%22%29%0D%0Adocument.onselectstart%3Dnew%20Function%28%22event.returnValue%3Dfalse%22%29%3C/script%3E"))</SCRIPT>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -