OPC DCOM 问 题 处 理 Troubleshooting DCOM 文 档 类 型 (User Guide) Edition (2008 年 12 月 ) https://support.industry.siemens.com/cs/cn/zh/view/109481341
摘 要 本 文 档 介 绍 如 何 解 决 OPC 通 讯 中 的 DCOM 的 问 题 关 键 词 OPC DCOM Key Words OPC DCOM IA&DT Service & Support Page 2-12
目 录 1. 不 能 浏 览 远 程 计 算 机 的 OPC Server 2. 不 能 连 接 到 远 程 计 算 机 的 OPC Server 3. 所 有 的 Item 显 示 为 Bad 4. OPC Client 不 能 接 收 更 新 的 数 据 5. OPC Sever 所 在 的 计 算 机 有 高 的 CPU 利 用 率 IA&DT Service & Support Page 3-12
OPC 技 术 提 供 一 种 互 联 的, 可 靠 的 和 安 全 的 通 讯 平 台 然 而, OPC 是 非 常 依 赖 于 DCOM 架 构. 这 包 括 了 Windows 的 安 全 和 防 火 墙 的 设 置, 访 问 控 制 列 表, server 认 证, 等 等. 因 此,OPC 不 能 向 期 望 的 那 样 正 常 工 作, 而 且 最 终 解 决 这 些 问 题 是 很 困 难, 原 因 是 一 个 问 题 会 导 致 多 个 症 状. 本 文 讨 论 最 常 发 生 的 5 问 题, 导 致 问 题 的 原 因, 和 如 何 解 决 一 个 结 构 化 的 方 法 快 速 的 解 决 这 5 问 题 : 1. 不 能 浏 览 远 程 计 算 机 的 OPC Server 2. 不 能 连 接 到 远 程 计 算 机 的 OPC Server 3. 所 有 的 Item 显 示 为 Bad 4. OPC Client 不 能 接 收 更 新 的 数 据 5. OPC Server 所 在 的 计 算 机 有 高 的 CPU 利 用 率 当 出 现 了 上 面 所 描 述 的 问 题 后, 下 面 将 介 绍 出 现 问 题 原 因 及 解 决 的 办 法 1. 不 能 浏 览 远 程 计 算 机 的 OPC Server 首 先 遇 到 的 问 题 是 不 能 浏 览 远 程 计 算 机 的 OPC Servers. 浏 览 的 功 能 是 OPC Client 应 用 程 序 能 够 查 看 安 装 在 远 程 计 算 机 的 OPC Servers. 当 OPC Client 执 行 了 一 次 浏 览 实 际 上 是 它 连 接 到 驻 留 在 远 程 计 算 机 上 的 OpcEnum 的 映 像, 并 检 索 出 可 访 问 OPC Server 的 列 表. 这 包 括 了 每 个 OPC Server 的 ProgID ( 友 好 的 用 户 接 口 名 字 ) 和 GUID ( 数 字 形 式 的 识 别 号 ). 从 这 一 点 看 出, OPC Client 并 不 是 真 正 直 接 连 接 到 OPC Server. 因 此, 检 索 出 的 列 表 是 与 OPC Server 的 状 态 是 无 关 的 或 者 说 是 与 OPC Server 的 可 操 作 与 否 是 无 关. 浏 览 OPC Servers 失 败 导 致 的 直 接 结 果 是 不 能 获 得 远 程 计 算 机 OpcEnum 中 通 讯 所 需 参 数. 造 成 这 个 问 题 可 能 有 几 个 原 因, 如 下 所 述. 1.1 OpcEnum 没 有 安 装 OPC 基 金 会 负 责 创 建 和 维 护 OpcEnum. OPC 基 金 会 的 成 员 能 够 从 OPC 基 金 会 直 接 免 费 获 得 OpcEnum OpcEnum 一 般 会 在 安 装 OPC Client 或 者 OPC Server 时 安 装 ; 然 而, 并 非 都 如 此. 因 IA&DT Service & Support Page 4-12
此, 可 能 出 现 没 有 安 装 OpcEnum 的 情 况. OpcEnum 仅 能 浏 览 运 行 它 所 在 计 算 机 上 的 OPC Servers, 因 此, OpcEnum 不 能 浏 览 远 程 的 计 算 机. 即 使 是 安 装 了 OpcEnum 在 你 的 计 算 机 上, 也 不 能 浏 览 远 程 的 计 算 机. 用 Windows Explorer 去 查 找 一 下 OpcEnum 是 否 安 装 在 你 期 望 浏 览 的 计 算 机 上. 文 件 名 为 OpcEnum.exe. 如 果 OpcEnum 没 有 安 装, 需 要 安 装. 1.2 OpcEnum 被 禁 止 即 使 是 OpcEnum 被 安 装 在 了 远 程 的 计 算 机 上, 它 也 必 须 能 够 被 执 行, 否 则, 通 讯 将 会 失 败. 如 果 在 Startup Type OpcEnum 被 设 置 成 为 Disabled 那 么 Windows 将 不 能 运 行 OpcEnum. 因 此, 必 须 使 能 able OpcEnum. 检 查 OpcEnum 启 动 的 类 型, 按 下 列 步 骤 : 单 击 开 始, 再 单 击 控 制 面 板. 在 单 击 性 能 和 维 护, 单 击 管 理 工 具, 然 后 双 击 计 算 机 管 理. 在 计 算 机 管 理 窗 口 里 的 控 制 树 的 根 目 录 下 显 示 "Computer Management (Local)" 在 面 板 树 里, 展 开 服 务 和 应 用 并 单 击 服 务 在 右 面 的 window 面 板 里. 如 果 启 动 类 型 被 设 置 为 Disabled, 那 么 OpcEnum 实 际 是 关 闭 的 需 要 选 择 使 能 ( 下 面 ). 如 果 在 列 表 里 没 有 OpcEnum, 那 么 可 能 是 像 步 骤 1.1 OpcEnum 没 有 被 安 装 启 动 类 型 已 被 设 置 为 手 动 或 者 自 动, 那 么 需 要 跳 到 步 骤 1.3 匿 名 登 陆 权 限 没 有 设 置 为 了 使 能 OpcEnum, 右 击 OpcEnum, 选 择 属 性 选 项 在 启 动 类 型 的 组 合 框 里 选 择 手 动. 当 然 也 可 以 选 择 自 动 设 置, 这 里 建 议 选 择 手 动, 这 样 当 OpcEnum 只 有 当 需 要 执 行 时 才 执 行. IA&DT Service & Support Page 5-12
现 在 已 经 正 常 设 置 了 OpcEnum 的 启 动 类 型, 再 一 次 试 着 去 浏 览 远 程 计 算 机. 如 果 仍 然 不 能 正 常 工 作, 可 参 考 下 面 的 步 骤. 1.3 匿 名 访 问 的 权 限 没 有 被 设 置 OpcEnum 需 要 匿 名 访 问 的 的 权 限 才 能 正 常 的 工 作. 如 果 不 提 供 这 个 访 问 权 限, 没 有 一 个 可 以 连 接 到 OpcEnum 并 且 浏 览 计 算 机. 这 一 点 往 往 是 容 易 被 忽 视 的 因 此 也 需 要 在 Windows COM 缺 省 安 全 中 添 加 匿 名 访 问 的 权 限 2. 不 能 连 接 到 远 程 计 算 机 的 OPC Server 能 够 浏 览 远 程 计 算 机 的 OPC Server 和 连 接 到 远 程 计 算 机 的 OPC Server 是 无 关 的. 例 如, 即 使 是 远 程 计 算 机 没 有 安 装 OPCEnum, 也 是 可 以 连 接 到 远 程 计 算 机 的 OPC Server. 在 这 种 情 况 下, 只 要 知 道 远 程 计 算 机 的 识 别 号 ( 可 以 通 过 浏 览 或 者 只 是 简 单 knowing 正 确 的 GUID), 但 如 果 还 是 不 能 建 立 OPC 的 连 接, 可 能 有 其 它 的 原 因 造 成 失 败 2.1 OPC Server 被 禁 止 如 果 OPC Server 被 设 置 以 Windows 服 务 的 方 式 运 行, 是 不 能 够 禁 止 的. 所 以 需 要 检 查 一 下, 检 查 的 方 法 和 前 面 1.2 OpcEnum 被 禁 止 里 提 到 的 方 法 一 样. 设 置 OPC Server 启 动 类 型 按 OPC Server 供 应 商 建 议 的 方 式 设 置. IA&DT Service & Support Page 6-12
2.2 用 户 身 份 认 证 的 问 题 可 能 的 原 因 是 在 远 程 的 计 算 机 身 份 认 证 没 有 通 过. 认 证 是 验 证 用 户 身 份 的 流 程. Windows 系 统 会 比 较 用 户 名 和 密 码, 如 果 是 操 作 系 统 不 能 识 别 的 用 户, 就 会 立 即 拒 绝 访 问 更 不 用 提 是 与 OPC Server 建 立 连 接, 这 可 能 发 生 了 下 面 的 两 种 情 况 a) 用 户 的 账 户 在 远 程 的 计 算 机 上 并 不 存 在 : 如 果 试 图 从 的 一 个 域 访 问 另 一 个 域 时, 需 要 建 立 域 间 的 信 任 关 系, 或 者 添 加 用 户 到 所 有 的 域. 如 果 使 用 的 是 工 作 组, 就 需 要 添 加 用 户 到 远 程 的 计 算 机. 如 果 使 用 单 域 系 统 就 不 存 在 这 个 问 题. b) 关 闭 Simple File Sharing is turned on: Simple File Sharing 可 以 去 掉 远 程 访 问 计 算 机 的 用 户 名 和 密 码, 这 样 用 户 就 不 能 正 确 的 被 认 证. 2.3 访 问 控 制 列 表 问 题 当 认 证 了 一 个 来 访 问 的 用 户 账 户 后, 存 在 系 统 检 查 是 否 用 户 账 户 有 启 动 或 者 访 问 OPC Server 的 权 限. 这 是 利 用 访 问 控 制 列 表 来 完 成 的 (ACL). 对 于 每 个 应 用 程 序 的 ACL 包 括 了 用 户 账 户 的 信 息, 哪 些 用 户 被 被 允 许 或 者 拒 绝 对 具 有 特 定 操 作 权 限. 因 此, 可 能 在 ACL 中 由 于 账 户 没 有 有 相 应 的 操 作 权 限 而 被 操 作 系 统 拒 绝 访 问. 2.4 OPC Server 身 份 验 证 的 问 题 IA&DT Service & Support Page 7-12
访 问 OPC Servers 是 由 ACL 管 理. 然 而, 必 须 把 OPC 的 认 证 方 式 与 实 际 的 情 况 结 合. 关 于 OPC Server 认 证 的 问 题 可 参 考 OPC 和 DCOM: 需 要 知 道 的 5 个 步 骤. 中 的 4. 配 置 DCOM 特 殊 设 置. 3. 所 有 的 项 显 示 为 Bad 当 与 一 个 OPC Server 建 立 连 接 时, 必 须 能 够 识 别 远 程 计 算 机 的 账 户 并 且 给 予 它 适 当 的 访 问 OPCServer 的 权 限. 这 就 需 要 与 OPCServer 建 立 同 步 的 通 讯 连 接 而 且 能 够 轮 询 到 OPC Server 的 数 据. 如 果 所 有 的 OPC Server 项 数 据 指 示 为 bad quality, 这 可 能 是 由 于 下 面 的 两 个 原 因 引 起. a) 在 OPC Server 里 的 数 据 实 际 就 是 bad. 换 言 之, OPC Server 从 数 据 源 中 获 得 的 数 据 就 是 失 败 的. 这 可 能 是 由 于 各 种 原 因 造 成 的, 但 总 的 来 说, 可 能 是 由 于 OPC Server 没 有 和 PLC 建 立 连 接. 位 上 了 找 到 是 否 是 这 种 情 况, 简 单 的 用 同 步 读 设 备. 这 类 读 的 方 法 直 接 使 OPC Server 从 数 据 源 中 检 索 最 近 的 数 据. 如 果 在 OPC Server 仍 然 返 回 的 是 bad 值, 那 么 必 须 检 查 一 下 OPC Server 和 数 据 之 间 的 通 讯. b)opc Client 采 用 订 阅 的 方 式 来 更 新, 可 能 是 由 于 回 调 失 败. 如 果 是 这 种 情 况, 可 按 4. OPCClient 不 接 收 更 新 的 数 据. 4. OPC Client 不 接 收 更 新 的 数 据 由 于 安 全 配 置 的 问 题 会 导 致 OPC Client 应 用 不 能 接 收 更 新 的 数 据. 在 得 出 这 个 结 论 前, 参 考 3. 所 有 的 项 显 示 Bad Quality 保 证 OPC Server 实 际 上 可 以 接 收 正 确 的 接 收 数 据. 一 旦 确 认 OPC Server 实 际 上 是 能 够 接 收 数 据 的, 这 样 就 不 用 怀 疑 是 OPC Server 通 讯 失 败 造 成 的.OPC 支 持 基 于 时 间 汇 报 机 制, 因 此 当 数 据 发 生 了 变 化 OPC Server 就 会 发 送 更 新 的 数 据 到 OPC Client. OPC 术 语 中 指 的 subscription. 机 制. OPC Servers 通 过 异 步 回 调 把 订 阅 的 数 据 更 新. 换 言 之, 当 OPC Server 侦 察 到 一 个 数 据 的 改 变, 它 就 会 立 即 calls client 带 着 更 新 的 数 据. 这 也 是 一 个 异 步 机 制 因 为 OPC Client 不 知 到 OPC Server 将 会 在 什 么 时 候 发 送 数 据. 然 而 如 果 不 能 正 确 设 为 设 置 安 全 的 设 置, 数 据 的 更 新 就 会 失 败. 在 OPC Client 应 用 程 序 指 示 为 Bad. 若 发 现 从 OPC Server 中 取 得 的 数 据 不 更 新, 就 可 以 尝 试 用 同 步 的 方 式 从 OPC Server 读 数 据. 若 此 时 数 据 读 到 了, 那 么 肯 定 是 异 步 回 调 失 败, 这 可 能 是 由 下 面 的 原 因 造 成. 4.1 防 火 墙 如 果 OPC Client 计 算 机 在 防 火 墙 ( 硬 件 的 或 者 软 件 的 ) 之 后, 到 达 目 的 地 时 回 调 可 能 失 败. 当 然 OPC Client 能 够 发 出 OPC 请 求, 但 当 从 OPC Server 发 出 的 回 调 被 防 火 墙 阻 塞. 关 于 如 何 关 IA&DT Service & Support Page 8-12
闭 Windows 的 防 火 墙 可 参 考 OPC 和 DCOM: 需 要 知 道 的 5 步. 特 别 是 要 参 考 1 移 除 Windows 安 全 的 部 分. 4.2 身 份 认 证 失 败 一 旦 回 调 到 达 OPC Client 的 计 算 机, 操 作 系 统 试 图 认 证 这 个 用 户 的 账 号 和 密 码, 与 存 在 的 列 表 进 行 比 较. 如 果 组 合 与 列 表 不 一 样 Windows 会 拒 绝 访 问, 如 下 面 的 原 因. 4.2.1 用 户 名 和 密 码 的 组 合 用 户 名 和 密 码 必 须 在 OPC Client 和 Server 的 计 算 机 上 都 能 被 认 证. 在 回 调 的 情 况, 可 能 出 现 两 台 计 算 机 上 的 用 户 和 密 码 不 匹 配. 必 须 保 证 在 两 台 计 算 机 的 组 合 是 一 致 的. 4.2.2 Guest 在 Windows XP 或 者 后 期 的 版 本, 当 使 用 工 作 组, 缺 省 的 情 况 下 会 把 远 程 的 用 户 账 号 强 制 为 本 地 的 Guest 用 户. 这 就 是 由 Simple File Sharing 完 成 的. 这 种 缺 省 的 设 置 使 得 的 认 证 不 能 正 常 工 作. 因 此, 需 要 关 闭 这 个 项. 4.2.3 OPC Server 身 份 识 别 的 问 题 回 调 也 是 要 对 OPC Server 作 身 份 认 证. 这 个 身 份 认 证 是 由 OPC Server 的 身 份 认 证 的 设 置 管 理. 关 于 这 个 内 容 的 更 多 信 息 可 参 考 OPC 和 DCOM: 需 要 知 道 的 5 步. 特 别 是 4. 配 置 Server 的 特 殊 DCOM 设 置. IA&DT Service & Support Page 9-12
The interactive user:opc Server 以 交 互 的 用 户 认 证, 这 个 账 户 是 当 前 登 陆 此 计 算 机 且 驻 留 在 OPC Server 的 计 算 机 上, 也 就 是 必 须 有 账 户 登 陆, 否 则 不 能 启 动 OPC Server, 当 此 用 户 注 销 时,OPC Server 就 会 关 闭, 即 使 是 计 算 机 的 重 新 启 动, 也 会 造 成 OPC Server 的 短 暂 的 关 闭 The launching user: OPC Server 以 访 问 的 用 户 认 证, 操 作 系 统 会 为 每 个 访 问 的 用 户 创 建 一 个 实 例, 这 样 会 有 三 个 问 题 出 现, 若 OPC Server 只 允 许 一 个 用 户 访 问 时, 当 系 统 中 已 经 有 了 一 个 实 例, 再 有 其 它 用 户 就 无 法 访 问 若 是 OPC Server 允 许 多 个 用 户 访 问 时, 那 么 带 来 的 问 题 是 随 着 不 同 用 户 的 访 问, 就 会 打 开 多 个 实 例, 这 样 就 会 占 用 更 多 的 计 算 机 的 资 源 另 外 的 一 个 问 题 是 硬 件 的 抢 占, 如 串 口, 当 一 个 使 用 了, 其 它 的 用 户 就 无 法 再 使 用 IA&DT Service & Support Page 10-12
This user:opc Server 以 指 定 的 用 户 账 户 认 证, 这 种 情 况 需 要 在 OPC Server 的 计 算 机 上 存 在 着 要 指 定 的 账 户, 而 且 对 于 OPC Client 必 须 知 道 此 用 户 否 则 无 法 访 问 The system account (services only):opc Server 以 操 作 系 统 账 户 认 证, 对 于 工 作 组 还 是 域, 系 统 账 户 都 能 被 识 别, 也 不 需 要 有 用 户 登 陆 但 OPC server 必 须 以 服 务 的 方 式 启 动 4.3 访 问 控 制 列 表 的 问 题 IA&DT Service & Support Page 11-12
当 Windows 认 证 用 户 账 号 初 始 化 了 回 调, 接 下 来 就 会 检 查 OPC Client 的 账 户 的 访 问 控 制 列 表 里 的 访 问 权 限. 关 于 此 内 容 参 考 OPC 和 DCOM: 需 要 知 道 的 5 步. 特 别 是 3. 配 置 系 统 的 宽 泛 DCOM 设 置. 5. OPC Server 计 算 机 的 CPU 使 用 率 很 高 有 时 候 会 注 意 到 OPC Server 计 算 机 的 CPU 的 使 用 率 非 常 高. 没 有 明 确 使 用 率 的 所 在 百 份 比 是 多 少 是 合 适 的. 换 言 之, 仅 你 自 己 决 定 CPU 的 负 载 是 否 高 或 者 低. 然 而, 如 果 认 为 负 载 高, 那 么 需 要 查 看 一 下. OPC Client 使 用 同 步 读 的 问 题 : 在 这 种 情 况 下, OPC Client 没 有 使 用 优 化 的 读 取 方 式, 这 使 的 OPC Server 花 费 更 多 的 计 算 机 CPU 周 期 处 理. 可 以 考 虑 用 异 步 或 订 阅 的 方 式. 这 将 明 显 的 减 少 OPC Server 计 算 机 的 负 载 由 于 采 用 优 化 的 操 作, 注 意 系 统 集 成 商 通 常 会 选 择 同 步 的 方 式 因 为 用 异 步 或 订 阅 的 方 式 由 于 安 全 设 置 的 问 题 可 能 不 能 正 常 通 讯. OPC Client 使 用 读 设 备 的 问 题 : 在 这 种 情 况 下, OPC Client 不 断 地 向 通 过 OPC Server 建 立 与 PLC 的 直 接 数 据 交 换. 这 会 明 显 的 减 慢 OPC Server. 如 果 是 这 种 情 况, 把 所 有 的 读 设 备 改 成 读 Cache. OPC Client 使 用 异 步 读 的 问 题 : 在 这 种 情 况 下, 要 怀 疑 的 是 OPC Server 本 身 没 有 优 化 使 的 对 OPC 通 讯 的 响 应 很 慢. IA&DT Service & Support Page 12-12