How do instruments fit in?

latest update 2022-10-20  

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).

Using templates allows for a different choice of for a further specialization at a later time. Just deprecate the old template and create a new one, whilst maintaining the old template for an audit trail.

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. This can be done in either of the two follwing ways:

With a template
: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 .

In templates the temporal part is implied and not in the template signature.

With the alternative method
:48510865-1b37-4a12-82d6-31da0ca1899b
	pred:temporalPartOf :a9733d16-0a98-4dde-b91f-86759f6dcec1 ; # B14-FE-101
	rdf:type rdl:RDS418364 ; # VOLUME FLOW MEASURING ELEMENT - ORIFICE PLATE
      meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime .

In this simple example that alternative method doesn't make much difference, for most other information it does.

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 . 
or, alternatively, represented with a relation between two tempoal parts
:876bad97-d380-4fcf-a5e0-c2383d97b64b
	pred:temporalPartOf :f1f949cf-3f43-493c-bdb0-185c35fd9d18 ;
	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime . 

:f0ee5196-ecac-4449-8f6c-b30e38e05dcf
	pred:temporalPartOf :5bf88dfb-34bd-4124-ac86-eab7dccb97d4 ;
	meta:valEffectiveDate "2022-03-23T14:15:00Z"^^xsd:dateTime . 

:f0ee5196-ecac-4449-8f6c-b30e38e05dcf  pred:assemblyPartOf  :876bad97-d380-4fcf-a5e0-c2383d97b64b .

Declaration of Flow Recording Controller B14-FRC-101

:ace83c44-54dd-453e-86fe-a1e7c5e04cd7 rdf:type lci:InanimatePhysicalObject, lci:NonActualIndividual, dm:WholeLifeIndividual, rdl:RDS289844, rdl:RDS879884  ; 
    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.