How do instruments fit in?

latest update 2024-05-03  

Introduction

This topic is about instrumentation and controls, and in particular how these are being represented in the RDL.

Description

All Instrumentation & Controls classes are, in the top of their class hierarchies, strictly separated by function. In the table below this is shown for the first level in the hierarchy:

SUPERCLASS(ES) CLASS NAME RDL ID DEFINITION ISO 15926-2 ENTITY TYPE
FunctionalObject INSTRUMENTATION FUNCTION rdl:RDS2225050 An <INSTRUMENTATION FUNCTION> is a <FunctionalObject> that is capable of one or more of the following activities: <ACTUATING>, <COMPUTING>, <CONTROLLING>, <DETECTING>, <INDICATING>, <MEASURING>, <MONITORING>, <PROTECTING>, <RECORDING>, <REGULATING>, <SIGNAL AMPLIFYING>, <SIGNAL CONVERTING>, <SIGNAL CONVEYING>, <SWITCHING>, <TRANSDUCING>, <TRANSMITTING>, and <WARNING> related to physical variables (quantities). dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION BOOLEAN LOGIC FUNCTION rdl:RDS222482 A <BOOLEAN LOGIC FUNCTION> is an <INSTRUMENTATION FUNCTION> that is capable of <EXECUTING> Boolean logic. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION CONTROLLER rdl:RDS289844 A <CONTROLLER> is an <INSTRUMENTATION FUNCTION> that is capable of <CONTROLLING>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION DETECTOR rdl:RDS17604520 A <DETECTOR> is an <INSTRUMENTATION FUNCTION> that has a capability of <DETECTING>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION FINAL CONTROL FUNCTION rdl:RDS2220650 A <FINAL CONTROL FUNCTION> is an <INSTRUMENTATION FUNCTION> that physically changes a process in response to a change in the output from a <CONTROLLER>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION INDICATOR rdl:RDS418499 An <INDICATOR> is an <INSTRUMENTATION FUNCTION> that has a capability of <INDICATING>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION SIGNAL CIRCUIT SYSTEM INSTRUMENT LOOP rdl:RDS222493 An <INSTRUMENT LOOP> is an <INSTRUMENTATION FUNCTION> and a <SIGNAL CIRCUIT> and a <SYSTEM> that has two or more interlinked <INSTRUMENTATION FUNCTION>s. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION SIGNAL CIRCUIT ELEMENT INSTRUMENT LOOP ELEMENT rdl:RDS222220 An <INSTRUMENT LOOP ELEMENT> is a <INSTRUMENTATION FUNCTION> and a <SIGNAL CIRCUIT ELEMENT> capable of operating as a part in an <INSTRUMENT LOOP>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION SYSTEM INSTRUMENTATION SYSTEM rdl:RDS222491 An <INSTRUMENTATION SYSTEM> is a <INSTRUMENTATION FUNCTION> and a <SYSTEM>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION MEASURING INSTRUMENT rdl:RDS913904 A <MEASURING INSTRUMENT> is a <INSTRUMENTATION FUNCTION> that handles the measurement result from an internal or external <MEASURING ELEMENT> dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION MONITOR rdl:RDS13175715 A <MONITOR> is an <INSTRUMENTATION FUNCTION> that is capable of <MONITORING> dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION PROBE rdl:RDS648449 A <PROBE> is an <INSTRUMENTATION FUNCTION> that is capable of obtaining specific information or physical samples for diagnostic or experimental purposes. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION GAUGE PROCESS GAUGE rdl:RDS462644 A <PROCESS GAUGE> is a <INSTRUMENTATION FUNCTION> and a <GAUGE> that is a stand-alone device for measuring or sighting a process variable. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION PROCESS SIGNAL GENERATING FUNCTION rdl:RDS2220983 A <PROCESS SIGNAL GENERATING FUNCTION> is an <INSTRUMENTATION FUNCTION> that generates a non-standard <SIGNAL> that represents the magnitude of a process variable, and usually is made input of a <MEASURING INSTRUMENT> dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION READER rdl:RDS2224301 A <READER> is an <INSTRUMENTATION FUNCTION> that has the capability of <READING> some <CODE>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION RECORDER rdl:RDS282059 A <RECORDER> is an <INSTRUMENTATION FUNCTION> that is capable of <RECORDING>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION VALVE SELF-OPERATING VALVE rdl:RDS7018938 A <SELF-OPERATING VALVE> is an <INSTRUMENTATION FUNCTION> and a <VALVE> that includes a means of operation (e.g. spring / gravity / fluid pressure / counter balance), and is not depending on an external source of energy. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION CONVEYOR SIGNAL CONVEYOR rdl:RDS222448 A <SIGNAL CONVEYOR> is an <INSTRUMENTATION FUNCTION> and a <CONVEYOR> for a <SIGNAL>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION SIGNAL RECEIVER STANDARD SIGNAL RECEIVER rdl:RDS222805 A <STANDARD SIGNAL RECEIVER> is a <INSTRUMENTATION FUNCTION> and a <SIGNAL RECEIVER> that is capable of <RECEIVING> a <STANDARD SIGNAL>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION SIGNAL SENDER STANDARD SIGNAL SENDER rdl:RDS2228051 A <STANDARD SIGNAL SENDER> is a <INSTRUMENTATION FUNCTION> and a <SIGNAL SENDER> that is capable of <SENDING> a <STANDARD SIGNAL>. dm:ClassOfFuntionalObject
INSTRUMENTATION FUNCTION WARNER STATE WARNER rdl:RDS2220118 A <STATE WARNER> is an <INSTRUMENTATION FUNCTION> and a <WARNER> of an unwanted state change. dm:ClassOfFuntionalObject
ARTEFACT INSTRUMENTATION FUNCTION INSTRUMENTATION ITEM rdl:RDS2220012 An <INSTRUMENTATION ITEM> is an <ARTEFACT> and a <INSTRUMENTATION FUNCTION>(s). dm:ClassOfInanimatePhysicalObject

Click here for a report showing all 1270 subclasses of INSTRUMENTATION FUNCTION.

No combinatory explosion

Since most instrumentation items and all controls are combinations of above functions the number of possible combinations is unmanageable. And they are not required either, because these combinations can be made on-the-fly in a kind of "cafetaria mode", similar to composing your food by selecting food from a counter.

An integrated measuring element of a transmitter, process switch, process gauge, or process-connected recorder gets a subtag (see B14-FT-101-E below) and is related to that instrument with an AssemblyOfAnIndividual template.
Combinations of functions are done by typing with the applicable functions (see B14-FRC-101 below, typed with RECORDER and CONTROLLER).

Below three examples are given:

  • Flow Element B14-FE-101
  • Flow Transmitter B14-FT-102 with integral Orifice Plate B14-FT-102-E
  • Flow Recording Controller B14-FRC-103

Declaration of Flow Element B14-FE-101

:a9733d16-0a98-4dde-b91f-86759f6dcec1 rdf:type dm:InanimatePhysicalObject, lci:NonActualIndividual, dm:WholeLifeIndividual, rdl:RDS461834 ; 
    	rdfs:label "B14-FE-101" ;
    	meta:valEffectiveDate "2022-02-08T16:19:00Z"^^xsd:dateTime .

Like all things B14-FE-101 gets a UUID, and is a member of dm:InanimatePhysicalObject and of lci:NonActualIndividual and of dm:WholeLifeIndividual and of rdl:RDS461834.
The label is a way to access the UUID, where more than one label may occur, for example because of tag number change.
The valEffectiveDate tells the dateTime that the information starts to be valid/relevant.
Subsequently the type of Flow Measuring Element shall be put on record, e.g. an orifice plate:

:4cef7d77-aa8e-49b8-a962-e607494fd38f
      rdf:type tpl:ClassificationOfIndividual ;
      tpl:hasClassified :a9733d16-0a98-4dde-b91f-86759f6dcec1 ; # B14-FE-101
      tpl:hasClassifier rdl:RDS418364 ; # VOLUME FLOW MEASURING ELEMENT - ORIFICE PLATE
      meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime .

Declaration of Flow Transmitter B14-FT-102 with internal measuring orifice plate

:f1f949cf-3f43-493c-bdb0-185c35fd9d18 rdf:type lci:InanimatePhysicalObject, lci:NonActualIndividual, dm:WholeLifeIndividual, rdl:RDS880154 ; 
	rdfs:label "B14-FT-102" ;
    	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime .

:5bf88dfb-34bd-4124-ac86-eab7dccb97d4 rdf:type lci:InanimatePhysicalObject, lci:NonActualIndividual, dm:WholeLifeIndividual, rdl:RDS418364 ; 
    	rdfs:label "B14-FT-102-E" ;
    	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime .
Assembly relationship represented with a Template
:426716c9-20ec-489f-8d80-65ef5277784e 
	rdf:type tpl:AssemblyOfAnIndividual ; 
	tpl:hasWhole :f1f949cf-3f43-493c-bdb0-185c35fd9d18 ; # B14-FT-102
	tpl:hasPart :5bf88dfb-34bd-4124-ac86-eab7dccb97d4 ; # B14-FT-102-E
	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime . 

Declaration of Flow Recording Controller B14-FRC-101

:ace83c44-54dd-453e-86fe-a1e7c5e04cd7 rdf:type lci:InanimatePhysicalObject, lci:NonActualIndividual, dm:WholeLifeIndividual, rdl:RDS282059, rdl:RDS289844 ; 
    rdfs:label "B14-FRC-101" ;
    meta:valEffectiveDate "2013-02-08T16:19:00Z"^^xsd:dateTime .

Note - Always declare a (class of) physical object with the most generic, but still meaningful, instance of ClassOfFunctionalObject, so here RECORDER and CONTROLLER and not FLOW RECORDER and FLOW CONTROLLER, because the latters are, according their definition, ....specially and exclusively designed for...recording resp. controlling a flow rate. So something like this:

as opposed to recorder and controller with input of a standard signal.

What if you want a further detailed class?

Say you want a class number for a Paddle Insertion Flow Transmitter, to mention something esoteric, you can declare this in your local RDL extension as:

:R5483483
	rdf:type ClassOfInanimatePhysicalObject ;
	rdfs:label "Paddle insertion flow transmitter" ;
	rdfs:subClassOf  rdl:RDS2229466 , rdl:RDS222541 ;
	skos:definition	"A <Paddle insertion flow transmitter> is a <VOLUME FLOW TRANSMITTER> and a <VOLUME FLOW MEASURING INSTRUMENT - PADDLE INSERTION> 
			that uses the rotation of a paddle wheel to measure flow at a point inside the process."@en ;
	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime .

When you visit here you will see how we did that in the IEC RDL extension.

Another view

Below is a diagram in which the total picture is painted for a flow transmitter.

It appeared that these diagrams have been misunderstood, so a top-to-bottom explanation seems necessary.

The Standards

The following standards are playing a role:

So far all this is readily, and free of charge, available on the internet.

That purple box is an instance of ClassOfInanimatePhysicalObject that usually is here defined by means of an Instrument Specification.
The implementer can chose to use that data sheet as document for the Class definition, or to define the pump Class with Template instances. Important is to know that the boxes shown are placeholders to which these definitions are to be attributed.

The Project Data

The three green boxes are representing subsequent revisions of the Requirements Class for FT-101, subclass of the purple box. Where the values of the Instrument Specification, represented by the purple box, are empty ("fill in the blanks"), these values are entered for the green boxes.

Those three green boxes are representing revisions 0, 1, and 2 of the related Instrument Specification. They are related by means of an instance of ClassOfTemporalPartWhole to the darkgreen "anchor" Requirements Class. The latter has no attributed information, but is a fixed reference point that remains in place forever and is only deprecated when the individual anchor flow transmitter FT-101 is being deprecated.

At the bottom we find the "anchor" Individual flow transmitter FT-101, alias "Tag", alias "Functional Location", that is represented on a functional diagram, such as a P&ID. Again, that anchor has no attributed information. It is declared as member of dm:InanimatePhysicalObject, of dm:WholeLifeIndividual, and of dm:NonActualIndividual. This means, in other words, that it is a physical object that is not a living organism, it cannot be a temporal part of something else, and it exists in the Design & Engineering World (see here).

Our "anchor" flow transmitter FT-101 has a Temporal Part that is the only temporal part of a NonActualIndividual that is explicitly declared, for the reason outlined below. All other temporal parts are made an integral part of template models and don't have to be declared. The reason why this temporal part is required is that it has two informations attributed to it, via integral temporal parts in the template model:

So it tells which revision of the Requirements Class is implemented by the installed actual Asset.

The Actual World

An member of a Manufactured Product Class has been manufactured, and is declared as a member of dm:InanimatePhysicalObject, of dm:WholeLifeIndividual, and of dm:ActualIndividual. This means, in other words, that it is a physical object that is not a living organism, it cannot be a temporal part of something else, and it exists in the actual world around us.

Our manufactured object has a temporal part that is called "Asset" (whether or not you maintain an asset register of it), and this Asset has a temporal part that is installed (and commissioned, where applicable). The installed object has a temporal part that plays its role in a process activity, such as (here) MEASURING and TRANSMITTING. For futher details see here.