71 lines
4.7 KiB
Markdown
71 lines
4.7 KiB
Markdown
---
|
|
manual: IM 36K10E20-01EN
|
|
title: OPC Interface
|
|
edition: 2nd Edition, Sep. 2023
|
|
version: R1.03
|
|
status: from docs; OPC UA point and certificate forms compared with quick load on the test system 2026-10-01 (user configured a point in the Engineering Module, exported and diffed)
|
|
---
|
|
|
|
# OPC Interface (R1.03)
|
|
|
|
Engineering Module procedures for OPC Classic, OPC UA client and OPC UA PubSub. Concepts,
|
|
setup files and the OPC servers: `IM36K10L45-01EN.md`. Everything here is under
|
|
*Configuration → I/O processing → Equipment → (OPC DA client | OPC A&E client | OPC UA Client |
|
|
OPC UA PubSub)*. CI Server must be running. Section numbers refer to the manual.
|
|
|
|
## 1. OPC Classic (§1)
|
|
|
|
- DA: line (equipment node, process name — the manual says it must start with `OPC` for DA and
|
|
A&E lines, `OPX` for OPC UA), station (OPC server node and ProgID, status item), group
|
|
(deadband, requested update rate, status item), point (external relation, group, OPC tag,
|
|
browse). Then connect items to points (Tutorial "Define points").
|
|
- A&E: line, station (server, subscription filters), subscribed attributes; to show events in
|
|
the current alarm overview, map event sources to items. External names must be unique per
|
|
station.
|
|
|
|
## 2. OPC UA client (§2)
|
|
|
|
Order: line → station → subscription → points (→ methods) → alarm components / event type
|
|
filters / event nodes / template settings (only when alarms are wanted; no alarms are received
|
|
until event nodes are configured).
|
|
|
|
| Object | Key fields (dataset field) |
|
|
|---|---|
|
|
| Line | name ≤ 31, equipment node (*None* = this node), **process name starts with `OPX`, ≤ 11 characters** (`EQUIPMENT_MAN`) |
|
|
| Station | name ≤ 19; *Host(:port)* + *Discovery* fill session/server name and endpoint, or type the endpoint (`SERVER_01_ENDPOINT`); redundant servers + *Active server item*; *On scan*; *General communication status item* (`STATUS_ITEM`); security policy and mode; anonymous or user/password; requested session time-out; alarm tab (request active alarms, store all alarms as SOE, severity → priority mapping) |
|
|
| Subscription | publishing interval, lifetime and keep-alive counts, max notifications, priority, publish enabled, status item |
|
|
| Point | external relation Input / Output / Input + Output; subscription; *Namespace*, *Node id type*, *Node Id* (or *Browse path*); read-only *Last value*, *Data type*, *Access level*, *Value rank*; array element; options (own sampling interval, monitoring mode, queue size); conversion (offset, step) |
|
|
| Method | namespace, node ID or browse path, process areas |
|
|
|
|
**Observed (2026-10-01)**: in the point form's browse, picking the item itself
|
|
(`Objects/<section>/…/<item>`) stores the item **object** (`{"nsid":"<n>"}`), which has no
|
|
value: *Last value*/*Data type* stay empty and the point is never monitored (revised sampling
|
|
interval 0, item status 13). Expanding the item and picking its `Value` node works
|
|
(`{"0":"Value","nsid":"<n>"}`, verified by the user). For quick load type the stable form:
|
|
`{"0":"Value","itnm":"<item>"}` (namespace `urn:Yokogawa:CI_SERVER_OPC_UA_SERVER`, type
|
|
STRING). The form also fills `OPC_DISPLAY_NAME` and `OPC_TAG_INFO` (browse bookkeeping;
|
|
not needed for quick load). ISS-033.
|
|
|
|
## 3. Certificates (§2.2)
|
|
|
|
*OPC UA Client → Certificates*: **Trusted**, **Rejected** (server certificates arrive here),
|
|
**Own certificate**. Trust = open the rejected certificate, tick *Trusted*, Apply; reject =
|
|
untick. Restart the Engineering Module to refresh the folders. *Modify* the own certificate
|
|
(name, organisation, country, domain or IP, RSA key strength, signature algorithm, validity).
|
|
|
|
**CI Server OPC UA client ↔ CI Server OPC UA server (§2.2.6)**: trust the server certificate
|
|
on the client; copy the client's own certificate
|
|
(`%TLS_ALLUSERS_PATH%\pki\opxuac\pkiclient\own\certs`) to the server's
|
|
`…\pki\opxuas\pkiserver\trusted\certs`; the manual also asks to tick *Use CI Server entity names
|
|
for nodeids* in `opxuas.sup` and restart the server. On the test system the loopback worked
|
|
**without** that option, using `itnm` node IDs (ISS-032).
|
|
|
|
## 4. OPC UA PubSub (§3)
|
|
|
|
UDP publish/subscribe of Data Access values from the CI Server OPC UA server address space
|
|
(OPC visible items). Objects: line (needs its own copy of `ServerConfig.xml` named for the
|
|
instance), published datasets, station, writer groups + dataset writers (publisher), reader
|
|
groups + dataset readers (subscriber), then *Upload dataset configurations to runtime*.
|
|
Limits per line: 4 stations, 8 writer groups, 8 reader groups, 32 dataset writers, 32 dataset
|
|
readers, 32 published datasets. Status mapping as for the server (NORMAL → Good; NOT_INIT,
|
|
UPD_OFF, OFFSCAN, OFFLINE → Uncertain; BAD_VALUE → Bad). Not practiced (needs a PubSub peer).
|