导航:首页 > 配服务器 > os如何访问es的opc服务器

os如何访问es的opc服务器

发布时间:2022-05-01 19:46:42

① opc客户端如何远程访问opc服务器的c#代码

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服务器

第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服务器和客户端如何连接,通讯

服务器的话要看,如果是client-server结构的DCS,服务器位于上位和控制器之间,他将你的指令和现场数据通过服务器来经过交换,服务器一般是冗余配置,如果是并行结构来说没有所谓服务器的概念,只有个工程师站,程序的下装通过工程师站,但是数据的获取和指令的下达通过操作员站就行,这个好处就是当工程师站坏了的话操作员站可以正常工作
OPC服务器的作用是通过OPC协议将DCS的数据取出,并开放,一般一个OPC服务器下面连接一个或多个客户端,客户端通过安装相应的软件(也支持OPC协议),来取得DCS的协议

乐拾芗逸盆然朵邢浏晔链特磊枫待谨璀楷塘丞彰

④ OPC客户端如何与服务端远程通讯,在同一局域网内,没开防火墙

首先声明变量,这样才能触发事件(DataChange)来获取实时数据。连接不同的OPC服务器只要改变其服务器名称和OPC服务器所在的计算机名称即可。

⑤ opc服务器是什么是硬件还是软件啊!!麻烦知道的内行帮忙解释解释~~

opc既不是硬件也不是软件。OPC是一种通讯规范,OPC基金会组织规定的一套规范,按照这个规范去把程序写出来,包括一个OPC服务器程序和一个OPC客户端程序,只要是按规范写的,不管是谁写的,就能保证OPC服务器能被OPC客户端访问。

opc服务器向下可以读取设备的数据,比如PLC、DCS等等,但这部分OPC规范是不管的,只要厂家用任意接口任意方法把设备数据读到就OK,然后OPC服务器程序把这些读到的数据按规范要求开放在网络上,其他任意OPC客户端程序,可以远程浏览这些数据,并选择读取这些数据中需要的。

(5)os如何访问es的opc服务器扩展阅读

OPC的工作原理

OPC以OLE/COM机制作为应用程序的通信标准,而OLE/COM是一种客户端/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。

OPC服务器中的代码确定了服务器所存取的设备和数据、数据项的命名规则和服务器存取数据的细节,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。

客户应用程序仅须使用标准接口和服务器通信,而并不需要知道底层的实现细节。通过OPC服务器,OPC客户既可以直接读写物理VO设备的数据,也可操作SCADA,DCS等系统的端口变量(只要该系统提供OPC服务)。

⑥ opc服务器设置(关键词 wincc opc DCOM)win7 64位旗舰版,对DCOM进行设置

摘要 亲,解决方法是使用 64 位版本的 DCOMCNFG。 运行 64 位版本的 mmc.exe,并运行以下命令行加载 64 位版本的组件服务管理单元。

⑦ 工业触摸屏怎么访问OPC服务器

触摸屏访问PC上的OPC服务器或者组态软件可以走Modbus RTU或者Modbus TCP协议,可以使用上海迅饶自动化科技有公司的OPCBridge软件。这个软件已经把OPC服务器转成Modbus服务器了。
一般的触摸屏,不管哪个品牌都支持Modbus协议的。没有网口就走Modbus RTU,有网口则走Modbus TCP协议比较快。

⑧ 手机怎么访问OPC服务器

是可以的,只要在PC上安装上海迅饶自动化科技有限公司的OPCBridge.exe软件。要是有什么不清楚的地方,可以Q我:(1302198481)

OPCBridge.exe软件主要用来解决远程访问OPC服务器遇到的DCOM配置问题(远程OPC缺点:通讯不稳定,DCOM配置麻烦,不利于维护)。在OPC服务器运行的电脑上安装OPCBridge.exe软件后,通过此软件读取OPC服务器并转换成Modbus Server,这样其它电脑仅仅通过访问Modbus Server,就可以实现监视和控制(读写OPC Server)。另外此软件内嵌一个WEB服务器,可以用浏览器(IE,Chrome,火狐、Opera和苹果等等)去浏览Item,并且控制。

阅读全文

与os如何访问es的opc服务器相关的资料

热点内容
查看进程的命令 浏览:609
程序员联合开发网账号 浏览:645
mis服务器云平台 浏览:275
为什么感觉苹果网速比安卓慢 浏览:950
编译工具路径是啥 浏览:511
云服务器如何安装网站程序 浏览:875
单片机艺术 浏览:312
云服务器宝塔教程 浏览:560
用命令怎么上传文件到云服务器 浏览:765
映射网络盘命令 浏览:671
贷款车期满怎么解压 浏览:923
流量仪表算法 浏览:765
储能模块是什么服务器 浏览:268
安娜pdf 浏览:563
安卓手机如何将电脑软件导入 浏览:236
hadoop压缩配置 浏览:591
Java关闭jar 浏览:521
加密过的文件打不开也复制不了 浏览:830
程序员E4 浏览:365
java编程思想看完 浏览:844