AnalogItemType
Voraussetzungen Diese Funktionalität steht nur für Data-Access-Geräte basierend auf TwinCAT 3 und dem Import von TMC-Symboldateien zur Verfügung. |
AnalogItemTypes sind ein Bestandteil der OPC-UA-Spezifikation und ermöglichen es, Metainformationen, wie z. B. Einheiten an eine Variable zu heften. In der TwinCAT-3-SPS können Sie diese Metainformationen in Form von SPS-Attributen definieren.
Folgende Einstellungen sind möglich:
- EngineeringUnits: Einheiten, definiert über die OPC-UA-Spezifikation
- EURange: Maximaler Wertebereich der Variablen
- InstrumentRange: Normaler Wertebereich der Variablen
- WriteBehavior: Verhalten, wenn bei einem Schreibvorgang der Wertebereich überschritten wird.
Das nachfolgende Beispiel zeigt, wie die Variable fillLevel als AnalogItemType konfiguriert wird. Folgenden Parameter werden hierbei gesetzt:
- Einheit: 20529 („Prozent“, definiert in der OPC-UA-Spezifikation)
- Max. Wertebereich: 0 bis 100
- Normaler Wertebereich: 10 bis 90
- Schreibverhalten: 1 (Clamping)
{attribute 'OPC.UA.DA' := '1'}
{attribute 'OPC.UA.DA.AnalogItemType' := '1'}
{attribute 'OPC.UA.DA.AnalogItemType.EngineeringUnits' := '20529'}
{attribute 'OPC.UA.DA.AnalogItemType.EURange' := '0:100'}
{attribute 'OPC.UA.DA.AnalogItemType.InstrumentRange' := '10:90'}
{attribute 'OPC.UA.DA.AnalogItemType.WriteBehavior' := '1'}
fillLevel : UINT;
EngineeringUnits können anhand der in OPC UA spezifizierten IDs (Teil 8 der OPC‑UA‑Spezifikation) konfiguriert werden. Die IDs orientieren sich nach den weit verbreiteten und akzeptierten „Codes for Units of Measurement (Recommendation N.20)“, die vom „United Nations Centre for Trade Facilitation and Electronic Business“ veröffentlicht wurden. CommonCode, der die dreistellige, alphanumerische ID angibt, wird von OPC UA laut Spezifikation in einen Int32-Wert konvertiert und referenziert (Auszug aus OPC‑UA‑Spezifikation v1.02, Pseudo-Code):
Int32 unitId = 0;
Int32 c;
for (i=0; i<=3;i++)
{
c = CommonCode[i];
if (c == 0)
break; // end of Common Code
unitId = unitId << 8; // shift left
unitId = unitId | c; // OR operation
}
Schreibverhalten
Beim Schreiben einer AnalogItemType-Variablen können Sie definieren, wie der OPC UA Server mit dem neuen Wert in Bezug auf den Wertebereich umgehen soll. Hierbei gibt es die folgenden Möglichkeiten:
- 0: Alle Werte sind zugelassen und werden bei einem Schreibvorgang übernommen.
- 1: Der zu schreibende Wert wird passend zum Wertebereich abgeschnitten.
- 2: Der zu schreibende Wert wird abgewiesen, falls er den Wertebereich überschreitet.