当NI OPC服务器正在执行服务任务时,不能够再次被连接。




主要软件:  
主要软件版本:  2010
主要软件修正版本:  N/A
次要软件:  N/A

问题:
近期我通过修改 ServerMain.ini文件,来阻止NI OPC 服务器启动服务任务。但现在当我登陆OPC快捷客户端的时候,我得到Failed to connect to server ‘National Instruments.NIOPCServers’错误提示信息,如下图所示。同时我也不能通过labview连接NI OPC 服务器了。我该怎么解决此问题?



解答:
这是由于您不正确删除注册表信息所导致该问题的,若要解决它,需要以下步骤(Windows 7 and Windows XP):
  1. 关闭NI OPC 服务器,并在任务管理器中确保servermain.exe 没有运行.
  2. 当NI OPC服务器正在执行服务任务时,需要通过服务器控制面板停止它。在windows运行界面对话框里的services.msc点击OK,来访问服务控制面板.
  3. 确保OPC 服务器不再执行服务任务,

         a.在labview安装盘上<National Instruments>\Shared\NI OPC Servers

           的目录下,用记事本打开ServerMain.ini.

         b.找到Start as NT Service这一行.

         c.若Start as NT Service=0,说明OPC服务器目前没有执行任务;若

           Start as NT Service=1,说它正在执行任务,需要改变它的执行状态。

                         注意: 若要变更INI文件可能需要更改文件的权限

        4.  在windows运行对话框,输入regedit进入注册信息框,删除LocalService目录

     下的HKEY_CLASSES_ROOT\AppID\{6E617116-FF2D-11D2-8087-00105AA8F840}.
     注意:编辑注册表信息是危险的举动.推荐您导出备份文件,通过设置File » Export.

        5. 在NI OPC服务器启动菜单栏上重新启动,Start » All Programs » National Instruments » NI

           OPC Servers ,或者在<National Instruments>\Shared\NI OPC Servers目录下启

     动ServerMain.exe。

Note注意: 假如您启动NI OPC 服务器执行服务任务时,但Automatically start as a Windows NT service 的复选框是灰色不可选的,那么就关闭程序,右击以管理员身份( Run as Administrator)重新启动它。

在C#,可以使用OPC库来实现OPC客户端与OPC服务器之间的通信。以下是使用OPC库实现远程访问OPC服务器的步骤: 1. 安装OPC库:可以从NI官网下载并安装NI OPC Servers和NI OPC Client等相关组件。 2. 引用OPC库:在Visual Studio,可以通过NuGet包管理器安装OPC库,并将其添加到项目的引用。 3. 创建OPC客户端对象:可以使用OPC库提供的OpcClient类创建OPC客户端对象。 4. 连接OPC服务器:使用OPC客户端对象的Connect方法连接OPC服务器,需要指定OPC服务器的IP地址和名称。 5. 浏览OPC服务器:使用OPC客户端对象的Browse方法浏览OPC服务器的节点和标签。 6. 读取OPC服务器数据:使用OPC客户端对象的Read方法读取OPC服务器的数据。 7. 写入OPC服务器数据:使用OPC客户端对象的Write方法写入数据到OPC服务器。 下面是一个简单的示例代码: ``` using Opc; using Opc.Da; // 创建OPC客户端对象 OpcClient client = new OpcClient(); // 连接OPC服务器 client.Connect("opc.tcp://localhost:4840", new Opc.ConnectData(new System.Net.NetworkCredential())); // 浏览OPC服务器 BrowseElement[] elements = client.Browse(new ItemIdentifier[] { new ItemIdentifier("Root") }); // 读取OPC服务器数据 ItemValueResult[] results = client.Read(new Item[] { new Item(new ItemIdentifier("Random.Int1"), true, "") }); // 写入OPC服务器数据 client.Write(new Item[] { new Item(new ItemIdentifier("Random.Int1"), 123) }); // 断开OPC服务器连接 client.Disconnect(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值