本文源自ioufev先生的博客《OPC和DCOM配置》(https://www.cnblogs.com/ioufev/p/9365919.html)及「geekc」先生的《OPC工作记录整理——第二篇(OPC客户端运行环境配置》(https://blog.csdn.net/u014801367/article/details/43058483),在此表示感谢!!

操作系统:win10专业版, 语言:java  环境:STS

采用的OPC服务器(仿真器):KepServerEx 6

由于采用java,所以必须配置(据说C#和VC不需要配置)

一、服务器端

1.OPC运行库

KEPServer集成了OPC运行库,所以不需要单独安装。如果单独安装,需要的文件包括9个文件:

安装过程:

对于OpenEnum.exe需要用“OpenEnum.exe /service”命令,其它的采用regsvr32来注册

2.创建用户并赋予访问权限 :计算机管理

创建用户:

OPCUser(任意合法名字)

123456 (密码)

添加到DCOM组, 方法:

2.1创建用户

3.2添加到DCOM组

3.防火墙关于 DCOM 和 OPC 的规则 :高级安全 Windows Defender 防火墙

(1)开放 DCOM 访问 :DCOM(wmi)启用135端口(只有一个计算机不需要设置)

(2)创建 OPC 程序规则 :允许程序 OPCEnum

  位置:"C:\Windows\SysWOW64\OpcEnum.exe"

(3)添加 OPC 服务器程序的规则:允许程序 KEPServer的server_runtime

  位置:"C:\Program Files (x 86) \Kepware\KEPServerEX 6\server_runtime.exe"

3.1配置防火墙规则:开放 DCOM 访问

打开防火墙

找到(DCOM-In)

右键属性--已启用

3.2创建 OPC 程序规则 :允许程序 OPCEnum

新建入站规则--程序--找到OpcEnum.exe

3.3添加 OPC 服务器程序的规则:允许程序 KEPServer的server_runtime

新建入站规则--程序--找到server_runtime.exe

4.组件服务:配置 COM 的安全设置

4.1 启用DCOM

打开组件服务

4.2组件服务:OpcEnum的安全选项

详细信息

4.3组件服务:KEPServer的安全选项

5.配置本地安全策略 :

本地安全策略 本地策略--网络访问--匿名 :启用

二、客户端配置(这个博客比较粗,我认为上面就已经完成了配置,但还是根据这个进行了设置,但没有关闭防火墙)

1、首先是OPC客户端的用户名和密码需要和OPC服务器端的用户名和密码相同,而且需要赋予管理员权限,笔者也不是特别清楚这么做的原因是什么,但是如果没有这么配置的话,根本获取不到OPC的服务器列表。索性这样配置比不配置要好。

2、DCOM安全设置,在开始->运行中输入dcomcnfg,弹出DCOM安全设置窗口。

在属性->默认属性中进行如下配置:

在属性->默认协议中把DCOM协议改为面向连接的TCP/IP协议,如果没有的话,在下面的“添加”里面进行添加:

在属性->COM安全中,进行配置:

如上图所示,分别有四项,访问权限的编辑限制和编辑默认值,和启动和激活权限的编辑,这里参见一。

在我的电脑->Distributed Transaction Coordinator->本地DTC的属性中进行设置:

 
    在安全选项卡下配置结果如下:

如此,则完成了第二步的配置。

3、本地安全策略设置

在我的电脑->控制面板->系统和安全->管理工具->本地安全策略中,打开本地策略->安全选项,在网络访问:本地帐户的共享和安全模型,更改为经典-对本地用户进行身份验证,不改变其本来身份,这项基本上是默认设置,但是非常重要。

到此,OPC客户端运行环境配置完毕。如果是OPC服务器的话,还需要在DCOM安全设置中针对具体的OPC服务器进行权限设置,因为网络上资料很多,笔者在此不做详细叙述。

OPC 数据交互环境配置的更多相关文章

  1. Sublimetext3运行Python及python交互环境配置(便捷大法)

    1.首先安装Sublimetext3 安装路径保持默认,点击下一步直到安装完成. 2.安装Python 安装步骤参考百度:https://baijiahao.baidu.com/s?id=160657 ...

  2. macOS 使用Miniconda配置本地数据运算环境

    目前,做数据分析工作,基本人手Numpy,pandas,scikit-learn.而这些计算程序包都是基于python平台的,所以搞数据的都得先装个python环境...(当然,你用R或Julia请忽 ...

  3. 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

     数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置 2013-05-15 15:08:14 分类: Python/Ruby     数据抓取是一门艺术,和其他软件不同,世界上 ...

  4. 分布式环境中,模块数据交互协议分析 (百度brpc)

    1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...

  5. canal数据同步的环境配置

    canal数据同步的环境配置:(适用于mysql) 前提:在linux和windows系统的mysql数据库中创建相同结构的数据库和表,我的linux中mysql是用docker实现的(5.7版本), ...

  6. 大数据学习之路—环境配置——IP设置(虚拟机修改Ip的内在原因及实现)

    一.IP原理 关于IP我的理解, (1)主要去理解IP地址的作用,IP地址包括网络相关部分和主机的相关部分.即:用一段特殊的数据,来标识网络特征和主机的特征. 至于具体的技术实现,日后可以慢慢体会和了 ...

  7. springboot配置(yami配置文件,JSR303数据校验,多环境配置)

    yami配置文件 YAML是 "YAML Ain't a Markup Language" (YAML不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:&q ...

  8. JavaScript模板引擎实现数据交互

    经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现 ...

  9. 初识cocos2d-x-从环境配置到整体框架

    前言 ACM生涯在带着些许遗憾中结束了.春招的时候找了一份游戏开发的工作,现在学习cocos2dx中. 从ACM竞赛到实际项目开发的学习,第一感觉就是不适应,虽然感觉实际项目的确要比ACM简单的多.最 ...

随机推荐

  1. MySQL之profiling性能分析(在5.6.14版本被丢弃)

    官方建议使用information_schema.profiling. 原因是show profile 输出了查询执行的每个步骤及其花费的时间,但是结果很难快速确定哪个步骤花费的时间最多,因为输出是按 ...

  2. Java中String为什么是不可变

    什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不 ...

  3. 一个简单易上手的短信服务Spring Boot Starter

    前言 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式让用户进行操作,从而提高用户的实用性. Spring Boot Starter 由于 S ...

  4. paramiko获取主机信息

    import re import paramiko host="192.168.4.88" user = "root" password = " cl ...

  5. 001_FreeRTOS中断配置

    (一)优先级看:022_STM32中断优先级分组解析 (二)FreeRTOS的中断配置中没有处理亚优先级(响应优先级)的情况,所以只能配置成组4,16个都为抢占优先级 (三)此宏用来设置 MCU 使用 ...

  6. 51nod 1503

    动态规划 $f[a][b][c][d]$ 表示从 $(1, 1)$ 走到 $(a, b)$ 和从 $(n, m)$ 走到 $(c, d)$ 的方案数 $f[a][b][c][d]$ $= f[a][b ...

  7. 从 s 点到 t 点的最短路(简单模板)(迪杰斯特拉)

    迪杰斯特拉简单版 #include <bits/stdc++.h> using namespace std; int m,n; const int inf = 0x3f3f3f3f; in ...

  8. 删除git中无用的大文件

    推荐阅读:为什么你的 Git 仓库变得如此臃肿 有时候我们不小心提交了一些大文件上去,后来删除了,但是已经于事无补了,整个git的提及已经蹭蹭上去了. 这个时候怎么办呢? 1. 查看有哪些大文件(to ...

  9. vue 路由跳转记住当前页面位置

    从列表页面跳去详情页面, 在列表页面的生命周期:deactivated  中把当前的scrollTop位置存下来,可以存在localstorage中,也可以存在vuex中, 从详情页面返回列表页面:a ...

  10. DLL:操作数据库和表

    1. 操作数据库 C(Create 创建) R(Retrieve 查询) U(Update 更新) D(Delete 删除) (1) 查询数据库 1) 查询所有数据库名称 SHOW DATABASES ...