14 KiB
| manual | title | edition | version | status |
|---|---|---|---|---|
| IM 36K10L45-01EN | Data Access Engineering | 3rd Edition, Sep. 2023 | R1.03 | from docs; installed setup files (odbsrv.sup, opxsys.sup, opxuas.sup, ServerConfig.xml), access_start.cmd, PKI folders, processes and ports checked 2026-10-01; OPC UA client → own OPC UA server loopback verified with CI-Eng-Sample (station CIENG_UA); ODBC not working on the test system (ISS-008); OPC DA/A&E from docs |
Data Access Engineering (R1.03)
ACCESS Service connects CI Server data to other software: ODBC (SQL on datasets), OPC
Classic (DA and A&E, client and server, DCOM) and OPC UA (client and server). Section
numbers refer to the manual. Engineering Module forms: IM36K10E20-01EN.md. Hands-on:
skill data-access.
1. ODBC (§1–§3)
- Multi-tier: ODBC application + driver manager + SimbaClient driver on the client;
SimbaServer + ACCESS Service ODBC engine (
odbsrv) on the CI Server. Read and write of existing dataset records with SQL (API level Core, SQL level minimum); datasets cannot be created or deleted over ODBC. Needs an ODBC licence. odbsrv.sup:PORT(1583),USESSL(default on; certificate%TLS_ROOT_PATH%\tls\pki\odbsrv\SampleServerCertificate.pem, keySampleServerKey.pem),REMOVE_PADDING_SPACES, trace (TRACE,VERBOSE,TRACE_FILE), hidden data (TABLE_SUPPRESSION,FIELD_SUPPRESSION,FIELD_CONCEAL, all on).- Client: install the VC++ 2019 redistributable and
SimbaClientDriverxx.zipfrom the medium (install.batas administrator); define a DSN with driverCiSimbaClientDriver(64-bit) orCiSimbaClientDriver32, server IP and port 1583. Before R1.03, uninstall the old Simba parts. - SQL wildcards
%/_vs. MS Office*/?: escape_and%in names with\. - Common errors (§2.3): IM003 driver missing; IM002 DSN unknown; 08S01 SimbaServer not running / port mismatch / BUS Service not reachable.
Installed (test system): odbsrv.sup PORT 1583, USESSL YES, but the folder
%TLS_ROOT_PATH%\tls\pki\odbsrv does not exist and no sample certificate is shipped, so
odbsrv stops at every start (CppServerAPI::Run() failed: InitializeSslCtx(): SSL_CTX_use_certificate_chain_file() failed, then DUR-W-REM_PROC, Process ODBSRV exited unexpectedly); port 1583 does not listen. Fix: put a certificate and key there, or set
USESSL = NO (admin; not applied, ISS-008). access_start.cmd writes the ODBC registry
defaults once (when %TLS_DAT_PATH%\access.new exists).
2. OPC Classic basics (§4)
DCOM-based, Windows only. CI Server has DA client (opxdac), DA server (opxdas12, DA 1.0A
and 2.0, custom + automation interfaces), A&E client (opxaec), A&E server (opxaes).
- Quality: OPC DA quality goes to the lower 16 bits of the CI Server quality word, OPC A&E quality to the upper 16 bits. Item to OPC: CI Server quality low byte → OPC high byte; OPC low byte = offline → LAST_KNOWN, blocked → LOCAL_OVERRIDE, not initialised → NOT_CONNECTED, else GOOD.
- Types:
VT_UI1/UI2/INT/I1/I2/I4→ Integer,VT_UI4/UINT/R4/R8→ Real,VT_BSTR→ String,VT_BOOL→ Boolean. - Items, sections and objects appear to OPC servers (DA, A&E and UA) only with OPC visible (and every parent section visible).
3. OPC DA client (§5)
- One client process per DA line (name given in the line), started/stopped with CI Server;
stop one with
durstp -msk -t10 -p <client>. Uses a save file in%TLS_SAV_PATH%named after the process; delete it (client stopped) if it gets inconsistent. - Server check every
OPXDAC_SRV_ALIVEms (default 30000); station status item: 1 running, 2 failed, 3 no config, 4 suspended, 5 test. Not connected → mapped items OFFLINE. Group status item: 1 active / 0 not active (items offline). - Setup (
<client>.sup, elseopxsys.sup):OPXDAC_SAFE_CON(allow connecting to a CI Server DA server — never to the own node or a DURM-connected node: deadlock),OPXDAC_PING(ICMP check before DCOM, fast failure),…_PING_TIMEOUT(3 s),…_DUR_QSZ,…_HBEAT(100 ms),…_ITMBUF,…_FLUSH_GRPQUE(500 ms),…_BROWSE_CACHE,…_DISABLE_BROWSING,…_CHECK_MAPPING,…_ASYNC_WRITE,…_USE_CANONICAL_DATA_TYPE(default asks VT_R8),…_IGNORE_BAD_QC_UPDATES,…_CLEAR_SAV_FILE,…_DISABLE_STATUS_UPDATE. - Advice: one OPC server per client process (a DCOM time-out blocks the whole process).
Quick-load templates: export
LINE_DF,STATION_DF,OPC_GROUP_DF,ITEM_DF,POINT_DFof one station made in the Engineering Module. - DCOM tunnelling: run the client on a PC in the OPC server's domain (CI Server with BUS,
DATABASE, EQUIPMENT, ACCESS licence) connected to the host by MDUR (
durm_<n>_udp.sup, port ≥ 20000,dur.suphost node = CI Core), use DCOM tunnelling to host on the client's setup file; on the host add the line with Equipment node = tunneller node. Useintmonnode monitoring with Set slave items offline when node unavailable.
4. OPC DA server (§6)
- COM server
opxdas12.exe, ProgIDYokogawa.CIOpcDas.<version>, DUR nameOPXDAS; started by COM on the first client connect; stop withdurstp -p opxdas(clients get a shutdown). - Namespace = sections/items/sub-items (hierarchical or flat), filters (type, access, VB LIKE pattern). Cache read is fast and correct; device read blocks — use only after queue overflow. Timestamp = time written into the server cache.
opxsys.supData Access Server tab:OPXDAS_DUR_QSZ(100 kB),…_HBEAT,…_ITMBUF,OPXDAS_USER(log on as a CI Server user to apply its authorisation; empty = full access, fastest),OPXDAS_DCOM_TUN,OPXDAS_IGNORE_FTQ. Installed also:OPXDAS_SET_LOG_LEVEL(not described).- Remote access needs DCOM configuration (
dcomcnfg: authentication Connect, impersonation Identify, access/launch permissions for an OPC account; identity of the server = that account),secpol(Create permanent shared objects, Network access: Classic), firewall rules foropxdas12.exe,opxdac.exe,opcenum.exe,mmc.exeand DCOM — not needed where the IT Security Tool is applied. Same account/password on both sides in a workgroup. - Troubleshooting:
OCSRegistryCheck.exe(GUI; installed),opxdas12 /RegServer,opccommonsetup/opcenum /RegServer/opcenum /Service(set the service to automatic),regsvr32 opcproxy.dllandopccomn_ps.dllin%WINDIR%\SysWOW64. Test locally first.
5. OPC A&E client and server (§7, §8)
- Client
opxaec(default nameOPXAEC,-nfor more), setup<name>.suporopxsys.sup(OPXAEC_SAFE_CON— same deadlock rule,…_DUR_QSZ,…_SRV_ALIVE,…_PING_TIMEOUT,…_TRACE); maps condition events to items; one server per client advised. - Server
opxaes, ProgIDYokogawa.CIOpcAes.<version>, DUR nameOPXAES; publishes items with alarm monitoring as conditions;OPXAES_ACK_ALLOWED(acknowledge from clients),…_ALM_REC_DELAY(30 s),…_BROWSE_PREP_INI, andOPXAES_EC_ATTR_*switches for the CI Server-specific event attributes (old/new value, quality, status, alarm state, item description, units, node, group, number, sub-number). Installed: all on.
6. OPC UA client (§9)
- OPC UA TCP only; security by X.509 certificates (application authentication), user anonymous or name/password; modes None/Sign/SignAndEncrypt; policies Basic256Sha256, Aes128-Sha256-RsaOaep, Aes256-Sha256-RsaPss recommended (None, Basic128Rsa15, Basic256 not).
- Data types supported: Boolean, (S)Byte, (U)Int16/32, Float, Double, String and others as in Table 9.4.2-2; 1-D and 2-D arrays by element. OPC UA status → CI Server quality: 0 good, 1 bad, 2 uncertain.
- A&C: external alarms from ConditionType and derived types (ALARM/NORMAL events), other
events INFORMATIONAL; filters by event type, component, event node; severity → priority
table (901–1000 → 1 … 1–100 → 15), per station; don't manage
NonExclusiveLimitAlarmType. Only
NodeDeletedmodel changes are handled. - Redundancy: no client redundancy (use HAC); servers: transparent, or non-transparent cold backup with two endpoints (Active server item 0/1/2).
- Engineering objects: line (starts a client process; name must start with
OPX, max 11 characters), station (= session), subscription, point (= monitored item), alarm component / event type filter / event node / template settings, method. - Certificates: the client process creates
<host>_<PROCESS>.derin%TLS_ALLUSERS_PATH%\pki\opxuac\pkiclient\own\certs(also listed in datasetOPCUAC_PKI_CERTIFICATES_DF); server certificates arrive in…\pkiclient\rejectedand must be trusted (Engineering Module, or move to…\pkiclient\trusted\certs); foldersdeleted,rejectedadded by CI Server. The server must trust the client's certificate too. - Setup (
<process>.sup, elseopxuac.sup):OPXC_DUR_QUEUE_SIZE(10000 kB), heartbeats, buffers,OPXC_COM_STAT_CHK_INTERVAL(10 s),OPXC_STATION_CON_TRY_INTERVAL(30 s; observed retries every ~35 s),OPXC_TIMESTAMP_OPTION(SERVER/SOURCE),OPXC_LOG_LEVEL, service and session time-outs,OPXC_SERVICE_COMPLIANCE. Log file%TLS_LOG_PATH%\<PROCESS>.log. - Quick load (§9.10–9.11):
OPCUAC_LINE_DF,…_STATION_DF,…_SUBSCRIPTION_DF,…_POINT_DF(+ alarm and method datasets). DatasetOPCUAC_TAG_DFbrowses a connected server (filter onOPC_STATION_NAMEandOPC_TAG_PATH). - Installed:
opxuac_mon(a monitor instance) is started byaccess_start.cmd.
7. OPC UA server (§10)
- Process
OPXUAS(opxuas -n opxuas, started byaccess_start.cmd; stopdurstp -m -p opxuas), Unified Automation C++ SDK, port 34493. Log%TLS_ALLUSERS_PATH%\log\OPXUAS.logandOpxUas_Sdk*.log. - Visible data: sections, objects, items with OPC visible; items also need Read (read
values, browse into the item) and Write (write values, alarm methods). Parent sections must
be visible. Without Read the item is listed but browsing into it fails
(
UncertainNotAllNodesAvailable). - Users: anonymous = like
OPC_UA_SERVER_READ; authorisation actionsOPC_UA_SERVER_READ(browse, read, history) andOPC_UA_SERVER_MODIFY(+ write, methods). - Address space:
Objects→ sections (folders) → objects → items (CIItemNumericType,…BooleanType,…StringType,…NumericSubType) with child nodes such asValue,Status,Blocked,Offline,HMIInfo, and alarm condition nodes. Types are inhttp://www.yokogawa.com/CI_Server/(ns 3 in the manual). CI Server entities (sections, items) are in namespaceurn:Yokogawa:CI_SERVER_OPC_UA_SERVER(verified by browsing; the manual does not name it, ISS-032). - NodeIds are JSON strings:
{"nsid":"<namespace id>"}for the entity,{"0":"Value","nsid":"<n>"}for its value; or by name:{"0":"Value","itnm":"<item>"}(case sensitive; verified). Thensidchanges when the item is recreated — preferitnm.OPXUAS_USE_NAME_NODEIDSmakes the server use names in its own IDs. - Status mapping: NORMAL → Good; NOT_INIT, UPD_OFF, OFFSCAN, OFFLINE, UNREACH → BadNoCommunication; BAD_VALUE → Bad. Types: Boolean, Int32, Double, String. Priority → severity: 1 → 1000, 2 → 900 … 15 → 50, 0 → 1 (changed in R1.03).
- History: items in a history group show HistoryRead; max 5000 values per node per call.
- Alarm methods: Acknowledge, Confirm (= acknowledge), Disable/Enable (force to normal);
external alarms Acknowledge/Confirm passed to the source;
CIManualResetfor CENTUM. opxuas.sup: General (FTFW_*queue, heartbeat, log), OPC UA Server tab (OPXUAS_OPTIONAL_NODES,…_MODEL_CHANGE_EVENTS,…_USE_NAME_NODEIDS,…_USE_DYNAMIC_SCANRATE,…_SOURCE_TIME_STAMPS,…_USE_RAW_STATUS,…_VARIABLE_CACHE_SIZE100000,…_NUM_VALUES_PER_NODE5000), Alarm settings (EVENTS= ALARM, ACKN, DEACT, INFO), Logging. Installed keyword names:OPXUAS_DYNAMIC_SCANRATE(manual…_USE_DYNAMIC_SCANRATE) and extraOPXUAS_SET_HIGH_PRIO_15(ISS-034).%TLS_ROOT_PATH%\tls\exe\ServerConfig.xml: endpointopc.tcp://[NodeName]:34493; trust list…\pki\opxuas\pkiserver\trusted\certs, rejected…\pkiserver\rejected(created at the first rejection), own certificateciserveruaserver.der. Installed: only Basic256Sha256, Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss with Sign / SignAndEncrypt (no None endpoint); anonymous, user/password and certificate user tokens enabled (manual: certificate off, ISS-034);AutomaticallyTrustAllClientCertificatesfalse.- First connection of any client: trust the server certificate on the client, then move the
client certificate from the server's
rejectedtotrusted\certs. UaExpert is the suggested test client. - Discovery: LDS on 4840 only when several servers are on a host; GDS for central certificate management (concepts only).
8. RDBMS data exposure (not in this manual)
IM 36K10L45 does not describe RDBMS data exposure; it is in the Tutorial (IM 36K10G10 ch. 10)
and the item form (IM 36K10C10 §3.3). Summary here because it is an ACCESS-type interface;
tested in R1.05 only (user system, 2026-10-02; R1.03 files checked read-only and identical).
Procedure: skill data-access, task rdbms-exposure.md.
- Processes
DBCSND(sender, subscribes to DSS data) andDBCDEM(receiver, writes to MS SQL Server via ODBC); setup filedbc.sup(sender and receiver tabs; connection stringDEM_CONNECTION, defaultDriver={SQL Server};Server=localhost\SQLEXPRESS;…). - Exposures are records in
DATA_EXPOSURE_DF(source dataset, remote table, filterRECORDS, up to 32 field → column pairs or all fields). The target table is created by CI Server. ITEM_VALUESexposure is driven by the per-item aggregation intervalITEM_DF.AGG_INTERVAL(60 s–7 days, 0 = off): value, min, max, average, count and a local-timeTIMESTAMP(seconds since 1970) per interval.- Filter field names must not be quoted (
NAME LIKE "<Section>*"); the manual's quoted example fails and stops all exposures (ISS-057).ITEM_HISTORYexposure: manual vs installed change log disagree (ISS-058). - The CI Service account
.\CIX_PROCESSis local, so a remote SQL Server needs a SQL login and mixed mode (ISS-059).