⑴ 如何通过代码连接远程OPC服务器
第62行的代码,DCOM既然是远程服务器,那它就应该是可以运行在另外一台机器上,然后被其他机器的客户端所使用。所以C++的客户端代码里,你可以通过编程的方式指定服务器的名称,但是对于C#来说,因为连接到DCOM服务器并激活COM对象的操作是由CLR完成的,没有办法在代码里指定。不过不用着急,指定DCOM服务器还有另外一个方式,就是修改注册表的键值,告诉本机的COM运行库,服务器在另外一台机器上,请把下面的键值添加到客户端机器的注册表里:
HKEY_CLASSES_ROOT\APPID\{5e9ddec7-5767-11cf-beab-00aa006c3606}\RemoteServerName=<机器名>
下面的是我的代码
public void ListAll(Guid catid, out OpcServers[] serverslist)
{
serverslist = null;
Dispose();
Guid guid = new Guid("13486D51-4821-11D2-A494-3CB306C10000");
Type typeoflist = Type.GetTypeFromCLSID(guid);
OPCListObj = Activator.CreateInstance(typeoflist);
ifList = (IOPCServerList)OPCListObj;
if (ifList == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);
ifList.EnumClassesOfCategories(1, ref catid, 0, ref catid, out EnumObj);
if (EnumObj == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);
ifEnum = (IEnumGUID)EnumObj;
if (ifEnum == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);
int maxcount = 300;
IntPtr ptrGuid = Marshal.AllocCoTaskMem(maxcount * 16);
int count = 0;
ifEnum.Next(maxcount, ptrGuid, out count);
if (count < 1)
{ Marshal.FreeCoTaskMem(ptrGuid); return; }
serverslist = new OpcServers[count];
byte[] guidbin = new byte[16];
int runGuid = (int)ptrGuid;
for (int i = 0; i < count; i++)
{
serverslist[i] = new OpcServers();
Marshal.Copy((IntPtr)runGuid, guidbin, 0, 16);
serverslist[i].ClsID = new Guid(guidbin);
ifList.GetClassDetails(ref serverslist[i].ClsID,
out serverslist[i].ProgID, out serverslist[i].ServerName);
runGuid += 16;
}
Marshal.FreeCoTaskMem(ptrGuid);
Dispose();
}
用此代码连接本地OPC服务器是没有问题的,但是通过上面对注册表的编辑,将服务器换成远程服务器,就不能访问,代码运行起来还是连接的是本地OPC服务器。请教各位我该如何设置才能连接远程OPC服务器
⑵ 你好,关于OPC客户端如何判断OPC连接的问题,请问你是怎么做的
服务器的话要看,如果是client-server结构的DCS,服务器位于上位和控制器之间,他将你的指令和现场数据通过服务器来经过交换,服务器一般是冗余配置,如果是并行结构来说没有所谓服务器的概念,只有个工程师站,程序的下装通过工程师站,但是数据的获取和指令的下达通过操作员站就行,这个好处就是当工程师站坏了的话操作员站可以正常工作
OPC服务器的作用是通过OPC协议将DCS的数据取出,并开放,一般一个OPC服务器下面连接一个或多个客户端,客户端通过安装相应的软件(也支持OPC协议),来取得DCS的协
⑶ opc服务器和客户端如何连接,通讯
服务器的话要看,如果是client-server结构的DCS,服务器位于上位和控制器之间,他将你的指令和现场数据通过服务器来经过交换,服务器一般是冗余配置,如果是并行结构来说没有所谓服务器的概念,只有个工程师站,程序的下装通过工程师站,但是数据的获取和指令的下达通过操作员站就行,这个好处就是当工程师站坏了的话操作员站可以正常工作
OPC服务器的作用是通过OPC协议将DCS的数据取出,并开放,一般一个OPC服务器下面连接一个或多个客户端,客户端通过安装相应的软件(也支持OPC协议),来取得DCS的协议
乐拾芗逸盆然朵邢浏晔链特磊枫待谨璀楷塘丞彰
⑷ vc开发的opc客户端怎么链接opc服务器
很简单,wincc里面添加一个opc通道,就象添加一个s7协议(与300-400plc通讯)一样
⑸ 如何连phoenix opc server
概览
NI LabVIEW软件可以通过多种方式与可编程逻辑控制器(PLC)通信。用于过程控制的OLE(OPC)定义了在控制设备和人机界面(HMI)间实时对象数据通信的标准。OPC服务器适用于几乎所有PLC和可编程自动化控制器(PAC)。在本教程中,您将学习如何在LabVIEW中使用OPC与联网的PLC通信。
目录
本教程使用LabVIEW数据记录与监控(DSC)模块。该模块包含了诸多工具,包拪将数据记录到联网历史数据库、实时与历史趋势、警报与事件管理、将LabVIEW实时目标与OPC设备连在在一个完整的系统中、为用户界面提高安全性等等。由于拥有这些特性,LabVIEW成为了用于工业控制应用的强大HMI/SCADA工具。
要求
• Windows XP/2000
• LabVIEW FDS与LabVIEW DSC
• NI OPC服务器
使用NI OPC服务器查看现有的PLC标签
1. 选择开始》程序》National Instruments》NI OPCServers》NI OPCServers,启动NI OPC服务器。使用NI OPC服务器,您可以创建、配置、查看与PLC关联的标签。
2. NI OPC服务器需要与已经载入的PLC仿真工程一起启动。这个工程仿真在NI OPC服务器中已经建立配置的PLC。
说明:如果没有载入仿真工程,在NI OPC服务器中选择文件》打开,浏览C:\Program Files\National Instruments\Shared\NI OPC Servers\Projects\simdemo.opf。工程如图1所示。
图1:显示仿真PLC的NI OPC服务器
展开Channel_0_User_Defined,选择Sine,查看正弦标签。标签在最右边的窗口中显示。这些标签被绑定到PLC的寄存器上,由LabVIEW读取。
通过PLC OPC标签查看数据。
1. 在NI OPC服务器中,选择Tools»Launch OPC Quick Client。这样可以启动OPC快速客户端,您可以用来查看OPC标签数据。
2. 展开National Instruments.NIOPCServers文件夹,选择Channel_0_User_Defined.Sine。这样可以选定需要监视的设备。
3. 请注意所有的正弦标签都列出在右边的窗口中,且如图2所示正在更新显示仿真正弦数据。
图2:NI OPC快速客户端显示仿真正弦OPC标签
说明:要获取NI OPC支持的设备/驱动程序列表,请访问ni.com/opc。
通过创建I/O服务器将LabVIEW连接到OPC标签
在本小节中,将创建OPC标签的LabVIEW接口,称为I/O服务器。I/O服务器以您指定的速率,用当前标签数值更新LabVIEW。
1. 在LabVIEW的使用入门窗口中,点击文件》新建项目。这将打开新建LabVIEW项目。
2. 如果即时帮助窗口不可见,按Ctrl+H键显示窗口。保持窗口打开,可以得到鼠标指针所指向对象的帮助信息。
3. 在LabVIEW项目浏览器窗口中,右键点击我的电脑,选择新建》I/O服务器,如图3所示。
图3:通过LabVIEW项目新建I/O服务器
4. 在新建I/O服务器窗口中选择OPC客户端,点击继续。
5. 仍已注册OPC服务器框中选择National Instruments.NIOPCServers,设置更新速率(ms)为100。这将创建LabVIEW与OPC标签的连接,每隔100 ms更新。
CropperCapture[3]
Figure 4. Configuring the OPC Client I/O Server
6. 选择确定。在您的项目浏览器窗口中自动创建了库,用于管理I/O服务器。
7. 仍项目浏览器窗口中选择文件》保存所有,将项目保存为OPCDemoProject,将库保存为OPCDemoLibrary。
创建通过I/O服务器连接到OPC标签的共享变量
在本小节中,将创建绑定到OPC标签上的共享变量,仍而可以在LabVIEW中本地访问PLC数据。使用共享变量,您可以在一台计算机或是网络中,在多个LabVIEW应用程序间共享数据。
创建绑定到PLC OPC标签上的新共享变量。
在LabVIEW项目窗口中,右击我的电脑,选择新建》库。这样可以为共享变量建立一个新库,用于连接到PLC的OPC标签。
右击新建的库,选择创建绑定变量……
在创建绑定变量窗口中,选择OPC标签,通过浏览来自OPC服务器的仿真正弦数据,选择共享变量所需绑定的OPC标签,如图5所示。
http:/zone.ni.com/cms/images/devzone/tut/create%20bound%20variables.png
图5:选择需要绑定到共享变量的OPC标签
4. 选择所有正弦项目,点击添加确定。这样就创建了绑定到PLC OPC标签上的共享变量,将它们载入到多变量编辑器中。
5. 在多变量编辑器中,选择完成。这将把新的共享变量添加到前所建立的库中。
说明:LabVIEW DSC模块通过为数据库直接添加记录数据、报警和事件的功能,在无需编写LabVIEW应用程序的情冴下,增强了共享变量。
通过右击库,选择另存为,将新库以OPCItem.lvlib为文件名保存在项目浏览器窗口中。
通过右击OPCItems库,选择部署,对共享变量部署。这样就可以収布共享变量,使它们可以在网络上通过其他计算机、OPC客户端和LabVIEW实时自动化控制器(PAC)使用。
您现在可以通过共享变量在LabVIEW中本地访问PLC数据。
使用分布式系统管理器查看共享变量
在项目浏览器窗口中,选择工具》分布式系统管理器。这样可以打开您可以用来以多种方式管理共享变量的窗口(查看、部署、移除等等)。
在变量管理器的树形面板中,展开位于我的系统分类下的localhost项目。右击OPCItems库,选择监视列表,显示被绑定到PLC OPC标签上的共享变量。
共享变量将与仿真正弦数据同时更新。
说明:分布式系统管理器是LabVIEW 8.6的新增功能。在LabVIEW的过去版本中,您可以在工具》共享变量》变量管理器中,将共享变量拖曳到监视变量窗口中。
使用LabVIEW中的OPC标签数据
在项目浏览器中,右击我的电脑,选择新建》VI。这样将创建新的虚拟仪器或VI。VI用于创建用户界面和可执行图形化代码。
在默认情冴下,您可以看到前面板,这是VI的用户界面。LabVIEW有许多内建的UI组件,例如图形、图表、拨盘等等,您可以用来建立强大、直观的UI。选择视图》控件选板,或右击前面板的地方,打开控件选板。用鼠标查看在LabVIEW中提供的不同类别的UI组件。
选择Express》图形》波形图表,仍控件选板中选择波形图表,将它放置在前面板上,如图6所示。
waveform chart from palette.png
图6:仍控件选板选择波形图表
blank chart.png
图7:放置在前面板上的波形图表
在VI中,选择窗口》显示程序框图,或按Ctrl + E显示程序框图。程序框图用于极建程序行为。注意在程序框图上的图标,它们代表前面板上的图表。通过将数据传送到这个终端上,您可以将数据显示在前面板的图表中。
在项目浏览器中,展开OPCItems库,选择Sine1共享变量。
将Sine1共享变量仍项目浏览器拖曳到VI的程序框图中。共享变量作为程序框图中其他终端的数据源。
选择视图》工具选板,或是按Shift + 右键显示工具选板,它包含了用于极建程序框图的多种工具。在默认情形下,您可以使用自动工具选择工具,它可以根据当前光标的位置选择合适的工具。
选择如图8所示的连线工具。这个工具用于将程序框图上的终端用连线连接在一起。
⑹ opc通讯协议怎么传数据
opc通讯协议传数据步骤:1、从数据库读取数据,放入程序内存。(通常技术)2、建立OPC Client连接OPC server,将数据写入OPC server。 本人靠这个吃饭。步骤告诉你了。如果想要现成的程序,那是要付费的哦。
(6)OPC服务器如何连接OPC设备扩展阅读
OPC是世界上最受欢迎的基于标准的数据通信方法。它旨在解决自动化行业中的最大的挑战:如何摆脱传统的基于特制驱动器的通信方式,在不同设备、控制器、和/或应用程序之间实现通讯。
OPC之所以能够成功地创造真正独立于供应商的通讯是因为,OPC从双方提取了数据发送设备(例如PLC)和数据接收端(例如HMI)的执行细节,因此可以在它们之间进行数据交换而不需要了解彼此的本地通信协议和内部数据组织形式。
这与特制驱动器的要求满足只针对于通信方两端的编写方法形成了鲜明的对比。OPC可以代表为一个位于数据发送端和数据接收端之间的“提取”界面,这个界面允许在数据发送端和数据接收端之间交换数据而不需要对对方有任何了解。
OPC的“设备细节提取”是通过运用两个称为OPC客户端和OPC服务器的OPC构件得以实现的。其中每一个构件将在以下章节予以描述。需要注意的是,数据发送端和数据接收端能够彼此通过OPC进行通讯并不意味着它们各自的本地协议就不需要了,或者是被OPC取代了。
相反,这些本地协议和/或接口仍然存在,但只是与两个OPC构件的其中某一个通讯。然后,OPC构件之间进行数据交换,从而结束数据传递。数据也可以从应用程序端被传输至设备,而不需要彼此直接联系。
⑺ wincc如何通过opc与外部设备连接
通过 OPC scout实现。
是从opc server中获得相关plc数据,用于监控指定的数据 ,是专门针对西门子PLC的OPC服务器。
当然也可以用其他的OPC服务器,在OPC服务器上加载相关的驱动,连接即可。
然后在wincc的变量连接里,添加OPC连接,就可以看到你OPC服务器上发布的变量了。
需要注意的是:OPC服务器连接相关的设备是需要这些设备的OPC驱动的。
⑻ 如何远程连接OPC服务器
小鸟云服务器niaoyun实例创建好之后,您可以使用以下任意一种方式登录服务器:
远程桌面连接(,MSTSC):采用这种方式登录,请确保实例能访问公网。如果在创建实例时没有购买带宽,则不能使用远程桌面连接。
管理终端VNC:无论您在创建实例时是否购买了带宽,只要您本地有网页浏览器,都可以通过管理控制台的管理终端登录实例。
使用远程桌面连接(MSTSC)登录实例
打开开始菜单>远程桌面连接,或在开始菜单>搜索中输入mstsc。也可以使用快捷键Win+R来启动运行窗口,输入mstsc后回车启动远程桌面连接。
在远程桌面连接对话框中,输入实例的公网IP地址。单击显示选项。
输入用户名,如小鸟云默认为niaoyun。单击允许我保存凭据,然后单击连接。这样以后登录就不需要手动输入密码了。