Beyond Purdue

Beyond Purdue  /  L3 Data nodes

L3 Data nodes and the data plane

L3 Data nodes are many small, independent nodes in the data plane: one tag, one node, with its own name, IPv6 address, history, description and meaning. They hold and serve; they grant no access and take no action.

Data does not live in one big database. Everything that follows is a result of this. The levels are not stacked like Purdue; each stands on its own around the data plane. The technology is technology people already know: DNS, IPv6, multicast and OPC UA [11].

Drawing D: the data plane as a name space
Drawing D. The data plane as a name space.

Names and aliases

Naming and asset management is always the big issue. Every node has a DNS-style name, because people already read names like these. A name is updated automatically when a node is born, by a person, or by a shout. DNS aliases let one node be found by all its names: KKS code, vendor tag, HMI name, asset number and OPC UA name [12][23].

hp-steam.u1.plant.example          the node
10LBA10CT001.kks.plant.example     alias: KKS code
te114.vendor.plant.example         alias: vendor tag
hp-steam-temp.hmi.plant.example    alias: HMI name
asset-20417.cmms.plant.example     alias: asset number

Names identify, they never authorize. A DNS name or an address tells who and where. Only the level of authority tells what is allowed to be done.

At least two copies

Every node lives in at least two copies, on different hardware, power and rooms, to be really redundant. Both copies listen to the same shouts, so they hold the same data without ever syncing. Losing one copy loses nothing.

The record

Data nodes record every command, permit, lock and bypass [21]. Every command leaves two marks: as given by the operator and as executed by the controller. The record grants nothing; it remembers.

Assets are nodes. Every asset, from a transmitter to a controller or a server, has a name and a network address, so asset management lives in L3. Each asset node holds its own type, firmware, location, maintenance and obsolescence status. The register is not a separate database: asking the names lists what exists.

Who is allowed to act, not who is allowed to see. Data are just data. Everyone is allowed to read them; very few are allowed to command. Everything stays on site. An external database is one more reader on an out channel.

The full concept is in the Data Plane Concept V1.0 (PDF).

Sources

  1. OPC Foundation, OPC UA specifications. https://reference.opcfoundation.org/
  2. RFC 4033, DNS Security Introduction and Requirements. https://www.rfc-editor.org/rfc/inline-errata/rfc4033.html
  3. OASIS, MQTT Version 5.0. https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
  4. IEC 61511 ed.2, clause 16.2, bypass authorization and bypass log (ABB summary). https://library.e.abb.com/public/52dc61cd2284462c8f66bdcafb1fefcb/11%20C%20Bratt%20ABB%20changes%20in%20IEC61511.pdf
  5. RFC 1034, Domain names, concepts and facilities (CNAME aliases). https://www.rfc-editor.org/rfc/rfc1034