--- manual: IM 36K10E20-01EN title: OPC Interface edition: 4th Edition, Feb. 2026 (R1.05); first summarised from the 2nd Edition, Sep. 2023 (R1.03) version: R1.05 (first written for R1.03) status: from docs. R1.03 (2026-10-01): OPC UA point and certificate forms compared with quick load on the test system (user configured a point in the Engineering Module, exported and diffed). R1.05 (2026-10-08, read-only): method and mapper datasets, installed mapper files, AOG method displays and the ServerConfig.xml location checked; forms not opened, nothing configured --- # OPC Interface (R1.05) Engineering Module procedures for OPC Classic, OPC UA client, the OPC UA Information Model Mapper (new in R1.05) and OPC UA PubSub. Concepts, setup files and the OPC servers: `IM36K10L45-01EN.md`. Client and PubSub objects are 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 4th edition (R1.03 §2.2.6 is now §2.3, PubSub moved from ch. 3 to ch. 4). ## 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; category filter = event category codes of the A&E server, comma separated), 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.1) 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, and since R1.04 only with `OPXC_ENABLE_EXTENDED_FUNC = YES`, see `IM36K10L45-01EN.md` §6). | 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* (0 none, 1 server 1, 2 server 2); *On scan*; *General communication status item* (`STATUS_ITEM`; 4th ed. lists 0 preparing, 1 connected, 2 comm error/reconnecting, 3 connect failed, 4 shutdown received, 5 connection recreated — a Boolean item worked on R1.03, ISS-080); 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*; F5 rebrowses); *Read additional node information* (R1.05; clear it for slow links); read-only *Last value*, *Data type*, *Access level*, *Value rank*; array element; options (own sampling interval, monitoring mode, queue size); conversion (offset, step) | | Method (§2.1.6) | name (≤ 255), namespace, node ID type, node ID (or browse path); *Options*: parent object node ID set by hand; *Arguments*: input/output argument types set by hand (use the server's types). Dataset `OPCUAC_METHOD_CALL2_DF`. No process areas any more (set them on the method object's `MTD_TRG` signal) | Alarm event types (§2.1.4): `GeneralModelChangeEventType` and, only with `OPXC_BASE_MODEL_CHANGE_EVENT` set, `BaseModelChangeEventType`. Upgrade from R1.03 (§2.1.6): methods with String or Boolean input arguments must be refreshed — edit any field and Apply (rebrowse), or copy the method, set the arguments, delete the old one and add the copy. Running a method needs a CI Server object (IM 36K10L45 5th ed. §10.6; skill `data-access`, `opcua-client.md` §7). **Observed on R1.03 (2026-10-01)**: in the point form's browse, picking the item itself (`Objects/
/…/`) stores the item **object** (`{"nsid":""}`), 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":""}`, verified by the user). For quick load type the stable form: `{"0":"Value","itnm":""}` (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, §2.3) *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). New in R1.05 (§2.2): the client warns in the Historical Alarm Overview and the UMH message log when its own or the server's certificate is about to expire (lead time = hidden `OPXC_CERT_EXP_PERIOD_WARN`, 2 months in the installed `epauac_eqp.sup`, verified 2026-10-08). **CI Server OPC UA client ↔ CI Server OPC UA server (§2.3)**: 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 R1.03 test system the loopback worked **without** that option, using `itnm` node IDs (ISS-032). ## 4. OPC UA Information Model Mapper (ch. 3, App. 1; new in R1.05) From docs; installed parts verified on R1.05 (2026-10-08): dataset `UASERVER_MAPPER_DF`, `%TLS_WAP_PATH%\cfg\tools\uamapper\` with libraries `UAMapperLibrary_MDIS`, `_None`, `_Use_model`. - Purpose: publish CI Server data under a standard OPC UA information model (NodeSet file, e.g. MDIS or PA-DIM) instead of, or next to, the native CI Server model (server side: `IM36K10L45-01EN.md` §7). - Rights: `UA_MAPPER_PROJECT_INSERT`, `_MODIFY`, `_DELETE` (already in `SYSTEM_MANAGER`). - Workflow (*Tools › OPC UA Information Model Mapper*): **New Mapping** (folder `%TLS_WAP_PATH%\cfg\tools\uamapper\mapperprojects\`) → **Configure**: NodeSet file (base models in the same folder) and optional library template → **Edit Rules**: per OPC UA object type a selection query on CI Server objects or sections (`CLASSNAME = …`, `SECTIONNAME = …`; SQL keywords in App. 1), then methods → class names, variables → tag names, events → item or external alarm names → **Build** (results can be exported to / imported from CSV; `MappingReport.txt`) → **Load** to an OPC UA server process. Removing a mapping does not unload it from the server (§3.4.6). - Rule-based mapping needs consistent naming or class/object engineering; otherwise map by CSV. In enterprise engineering, map on each CI Core. The manual advises trying a mapping on an extra OPC UA server instance first (§3.4; instance procedure in `IM36K10L45-01EN.md` §7, `_ServerConfig.xml` in `%TLS_SAV_PATH%`). - Dataset `UASERVER_MAPPER_DF`: `NAME`, `DESCRIPTION`, `UA_NAMESPACE`, `UA_MODEL_FILE`, `LIBRARY_NAME`, `MAPPING_FILE`, `TARGET_UA_SERVER`, `PROJECT_STATE` (INIT, CONFIGURED, MAPPED, DEPLOYED). ## 5. OPC UA PubSub (ch. 4) UDP publish/subscribe of Data Access values from the CI Server OPC UA server address space (OPC visible items). Needs `OPXUAS_ENABLE_EXTENDED_FUNC = YES` since R1.04 (`IM36K10L45-01EN.md` §7). Objects: line, published datasets, station, writer groups + dataset writers (publisher), reader groups + dataset readers (subscriber), then *Upload dataset configurations to runtime*. Each extra PubSub line needs its own OPC UA server instance named like the line's server name (own `_ServerConfig.xml`, which R1.05 keeps in `%TLS_SAV_PATH%` — R1.03: `tls\exe`; ISS-081). 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).