Signal
Signale dienen zur Erfassung von Prozesswerten, Zuständen oder Zählständen einer Anwendung oder eines Prozesses. Ein Signal kann zum Beispiel ein Temperatur-, ein Digital- oder ein Text- bzw. Zähler-Wert darstellen.
Es können auch virtuelle Signale erstellt werden. Diese internen Werte haben den gleichen Funktionsumfang wie normale Signale, die eine Datenquelle als Basis hat. Um ein virtuelles Signal anzulegen, muss lediglich ein Signal ohne Datenquelle, Datenverbindung und Adresse angelegt werden. Sie können als Hilfswerte für Formeln, Berichte, Skripte oder Animationen Verwendung finden.
Über das Plus neues Signal anlegen. Sollten Sie ein Signal bearbeiten wollen, klicken Sie auf die Schaltfläche (Der Bereich um das Plus herum) um eine Liste aller bestehenden Signale angezeigt zu bekommen. Dort können Sie das Signal auswählen, welches bearbeitet werden soll.
In jedem Signal wird die zugehörige Datenquelle und deren Status angezeigt. Durch ein Hovern über die Datenquelle, kann schnell und einfach die Konfiguration zum Gerät gesendet werden, ohne in den Konfigurationspunkt “Datenquelle” navigieren zu müssen.
Basiskonfiguration
Name des Signals in der Basiskonfiguration vergeben. Das Feld Beschreibung ist optional nutzbar. Das Feld “Gruppe” zeigt, in welcher Gruppe dieses Signal angelegt wurde. Der Pfad wird systemseitig automatisch generiert.
Hier wird je Signaltyp die Datenquelle und eine zugehörige Datenverbindung gewählt. Anschließend kann über die Eingabe der Adresse das gewünschte Signal abgeholt werden.
Bei der Auswahl “Signaltyp” öffnet sich ein weiteres Drop-Down-Menü.
Digitaler Eingang | Erfasst Daten in digitaler binärer Form (Ein/Aus oder 1/0) als Eingang | IoT-Plattform erhält IoT Gerätedaten. |
---|---|---|
Digitaler Ausgang: | Gibt erfasste Daten in digitaler Form (Ein/Aus oder 1/0) aus | IoT-Plattform sendet Daten ans IoT Gerät. |
Analoger Eingang | Erfasst Daten in analoger Form als Eingang | IoT-Plattform erhält IoT Gerätedaten. |
Analoger Ausgang | Gibt die erfassten Daten in analoger Form wieder aus | IoT-Plattform sendet Daten ans IoT Gerät. |
Zähler | Erfasst Daten als Zählwert (1, 2 ,3 ,4 , …). Ein Rücksetzten auf 0 ist möglich. | IoT-Plattform erhält IoT Gerätedaten und sendet Daten auch ans IoT Gerät. |
Universeller Eingang | Erfasst allgemeine Daten aus Ihrer Anlage wie z.B. Textwerte | IoT-Plattform erhält IoT Gerätedaten. |
Universeller Ausgang | Gibt erfasste allgemeine Daten z.B. Textwerte aus | IoT-Plattform sendet Daten ans IoT Gerät. |
Durch Klicken auf das Feld “Datenquelle” öffnet sich ein weiteres Fenster. Dort kann eine zuvor angelegte Datenquelle ausgewählt werden.
Durch Klicken auf das Feld “Datenverbindung” öffnet sich ein weiteres Fenster. Dort kann ein zuvor angelegte Datenverbindung ausgewählt werden.
Anschließend muss die Adresse je nach Datenverbindung eingetragen werden. Nachfolgend werden die Beschreibungen für OPC UA, Modbus TCP, PROFINET (S7 TCP) und BACnet aufgeführt. Weitere Adressbeschreibungen anderer Datenverbindungen sind auf Anfrage erhältlich.
OpcUa:
Bei OpcUa kann mit der "Browse" Funktion über das “Globus”-Symbol auf die Adressen innerhalb der Steuerung bzw. des OPC UA Servers (z.B. dem des JUMO variTRON) zugegriffen werden.
Anschließend kann über folgenden Pfad die OPC UA Variable im JUMO variTRON ausgewählt werden. Je nach Projektierung kann der Wert auch unter “DeviceSet” gefunden werden.
Modbus:
Im Modbus setzt sich die “Adresse” aus 40.000 oder 30.000, inklusive der ab der 0 indizierten Stelle zusammen. Das heißt, wenn das vorgegebene Original nicht bei 0 beginnt wird dieses entsprechend angepasst. Bei einem Startindex von 0 kann das Offset somit direkt zu 40.000 vom Modbus hinzugerechnet werden. Bei einem Startindex von 1, wie hier in der Tabelle zum Beispiel, muss dem Offset +1 hinzugerechnet werden. Daraus folgt, dass wir mit 40.001:WSREAL beginnen müssen. Einfacher und ebenso funktionsfähig ist diese Schreibweise: 4xDezimalwert+1:Typ oder im Beispiel: 4x34.817:WSREAL. Die 3x-Adressen sind zum lesen, die 4x-Adressen zum lesen und schreiben von Variablen. In der unteren Tabelle ist der Datentyp (z.B. WSREAL) mit Erklärung zu finden. Dieser wird als Abschluss mit Doppelpunkt angehängt.
3x-Adressen= R/O (Read only) - Variable
4x = R/W (Read/Write) - Variable (siehe Tabelle)
Hier eine Unterstützung bei der Umrechnung: https://bin-dez-hex-umrechner.de/
Adresse: “3x Dezimalwert+1 : Datentyp” bzw. “4x Dezimalwert+1 : Datentyp”
Beispiele | Hex | Dez | “Adresse“ der Cloud und SCADA Anwendung |
---|---|---|---|
Analog-Variable 1 (Modbus-Frame) | 0x8800 | 34.816 | 4x34817:WSREAL |
Analog-Variable 3 („direkt“) | 0x1075 | 4.213 | 4x4214:WSREAL |
Digital-Variable 2 (Modbus-Frame) | 0x8805 | 34.821 | 4x34822:INT |
Digital-Variable 3 („direkt“) | 0x1373 | 4.979 | 4x4980:INT |
Digital-Variable 4 („direkt“) | 0x1374 | 4.980 | 4x4981:INT |
Integer-Variable 1 („direkt“) | 0x11F2 | 4.594 | 4x4595:INT |
Externer Text 1 ("direkt", z.B. LS 700)* | 0x1540 | 5.440 | 4x5441:CHAR,244 |
* Der Datentyp bei Text Signalen entspricht: “ Char[244] ”
Folgende Datentypen stehen beim Modbus-Treiber aktuell zur Verfügung:
Beispiel: Analog-Eingangsmodul 4-fach mit Slave-Adresse = 3 und Modbus-Adresse (Dezimal) = 84
Adresse: 4x85:WSREALSLAVE3
Datentyp | Erklärung |
---|
Datentyp | Erklärung |
---|---|
WSREAL | Ein 32-Bit Gleitkommazahl-Datentyp mit umgekehrter Byte-Reihenfolge (Big-Endian), |
WSDOUBLE | Ein 64-Bit Gleitkommazahl-Datentyp mit umgekehrter Byte-Reihenfolge (Big-Endian), |
WSDWORD | Ein 32-Bit Integer-Datentyp ohne Vorzeichen mit umgekehrter Byte-Reihenfolge (Big-Endian), 2 Register/Word Ganzzahl unsigned |
WSDINT | Ein 32-Bit Integer-Datentyp mit Vorzeichen mit umgekehrter Byte-Reihenfolge (Big-Endian), 2 Register/Word Ganzzahl signed |
WSQWORD | Ein 64-Bit Integer-Datentyp ohne Vorzeichen mit umgekehrter Byte-Reihenfolge (Big-Endian), 4 Register/Word Ganzzahl unsigned |
WSQINT | Ein 64-Bit Integer-Datentyp mit Vorzeichen mit umgekehrter Byte-Reihenfolge (Big-Endian), 4 Register/Word Ganzzahl signed |
INT | Ein 16-Bit Integer-Datentyp mit Vorzeichen, 1 Register/Word Ganzzahl signed |
WORD | Ein 16-Bit Integer-Datentyp ohne Vorzeichen, 1 Register/Word Ganzzahl signed |
X | Ein Bit-Datentyp zur Darstellung eines digitalen Signals |
B | Ein Bit-Datentyp zur Darstellung eines digitalen Signals |
BYTE | Ein 8-Bit Integer-Datentyp ohne Vorzeichen, unsigned |
C | Ein 8-Bit Integer-Datentyp mit Vorzeichen |
CHAR | Ein 8-Bit Integer-Datentyp mit Vorzeichen |
TIMER | Ein Timer-Datentyp zur Verwendung in Zeitschaltungen |
COUNTER | Ein Counter-Datentyp zur Verwendung in Zählungen |
4x1000SLAVE20 => SLAVE ID nicht 255 (default)
PROFINET (S7 TCP):
die Adressierung des Signals erfolgt nach dem Format:<data block number,> <data type><byte offset><.array length>
Anbei ein Beispiel:
Beispiel mit Erklärung:
DB31, | REAL | 2 |
---|---|---|
data block number: Datenbank auf die zugegriffen wird | data type: Datentyp auf den zugegriffen wird | byte offset: Datenstelle auf die zugegriffen werden soll |
S7 PLC | Node-Red |
---|---|
MR30 | MD30 als REAL |
DB10,LR32 | LREAL bei Byte-Offset 32 in DB10, nur für S7-1200/1500 |
DB10,INT6 | DB10.DBW6 als INT |
DB10,I6 | DB10.DBW6 als INT |
DB10,INT6.2 | DB10.DBW6 und DB10.DBW8 in ein Array mit der Länge 2 |
PIW30 | PIW30 als INT |
DB10,S20.30 | String bei Offset 20 mit einer Länge von 30 (tatsächliche Array-Länge 32 aufgrund des Formats des String-Typs, Längenbyte wird gelesen/geschrieben) |
DB10,S20.30.3 | Array mit 3 Strings bei Offset 20, jeder mit einer Länge von 30 (tatsächliche Array-Länge 32 aufgrund des Formats vom Typ String, Längenbyte wird gelesen/geschrieben) |
DB10,C22.30 | Zeichenarray bei Offset 22 mit der Länge 30 (am besten nicht bei Zeichenketten verwenden, da das Längenbyte ignoriert wird) |
DB38,S0.256
data block number: DB38 ist die Datenbank-Nummer;
data type mit byte offset: S0 ist für die Angabe einer Zeichenkette mit dem Offset 0 in der Datenbank;
array length: 256 zur Angabe der Zeichenkette ist 256 Byte lang.
Weitere Beispiele:
DB10,DT0 - Date and time
DB10,DTZ0 - Date and time in UTC
DB10,DTL0 - DTL in newer PLCs
DB10,DTLZ0 - DTL in newer PLCs in UTC
BACnet:
Diese folgenden Codezeilen repräsentieren ein einfaches JSON-Format, das zur Kommunikation mit einem BACnet-Gerät verwendet wird. BACnet steht für "Building Automation and Control Networks" und ist ein Kommunikationsprotokoll, das speziell für die Kommunikation zwischen Geräten in Gebäudeautomationssystemen entwickelt wurde.
"deviceAddress": Dies ist die IP-Adresse des BACnet-Geräts. In diesem Fall ist es "10.190.57.86".
"deviceInstance": Dies ist die Instanznummer des BACnet-Geräts. In BACnet entspricht dies einer eindeutigen Kennung für ein Gerät innerhalb eines BACnet-Netzwerks. Hier ist die Instanznummer "1".
"objectType": Dies ist der Typ des BACnet-Objekts. Die Nummer "2" entspricht in BACnet einem Analogeingangsobjekt. https://www.winccoa.com/documentation/WinCCOA/3.18/de_AT/BACnet/Bacnet_Applikation-06.html
"objectInstance": Dies ist die Instanznummer des BACnet-Objekts. In BACnet entspricht dies einer eindeutigen Kennung für ein Objekt innerhalb eines Geräts. Hier ist die Instanznummer "1".
"property": Dies ist die Eigenschaft des BACnet-Objekts, auf die zugegriffen oder die geändert werden soll. Die Nummer "85" entspricht in BACnet der "Present Value"-Eigenschaft, die den aktuellen Wert des Objekts repräsentiert.
Signaleinstellungen
Die Signaleinstellungen sind vom Signaltyp abhängig. Beim Typ Universaleingang, Universalausgang ist dieser Punkt nicht vorhanden.
Digitaler Eingang / Ausgang
Digital-Aus-Beschriftung wird angezeigt, wenn das Signal ausgeschaltet ist. Sie kann wie auch die Farbe individuell eingestellt werden.
Digital-Ein-Beschriftung wird angezeigt, wenn das Signal eingeschaltet ist. Sie kann wie auch die Farbe individuell eingestellt werden.
Durch Aktivieren des Schalters “Invertieren” wird das Signal negiert bzw. invertiert.
Durch Aktivieren des Schalters “Einzelbit selektieren” kann ein einzelner Bit analysiert werden. Der Vorteil besteht darin, dass aus nur einem Signal mehrere Informationen wie z.B. mehrere Alarmwerte ausgelesen werden können. Im unteren Feld kann ausgewählt werden, in welchen Datentyp das Signal konvertiert wird. Mit einem “Integer” z.B. lassen sich mit 16 Bit somit alle Zahlen zwischen 0 und 65.535 darstellen. Wird die Zahl 161 übertragen heißt das, dass Bit 0, Bit 5 und Bit 7 gleich “TRUE” sind, der Rest “FALSE”. Mit dem “Bit selektieren” fragt man sozusagen einen Integer an nur einer bestimmte Bitposition ab, um somit mehrere Zustände oder Alarme aus einem Signal zu identifizieren.
Analoger Eingang / Ausgang
Einen minimalen/maximalen Wert vergeben, welcher von dem analogen Signal Eingang erfasst bzw. analogen Signal Ausgang ausgegeben werden kann. Werte, die darüber und darunter liegen werden ebenfalls aufgezeichnet. Jedoch soll verhindert werden, dass beim Setzen eines Wertes gewisse Werte überschritten werden.
Standardwert festlegen, wenn noch kein Wert erfasst/ausgegeben wurde.
Durch das Hinzufügen von Nachkommastellen kann eingestellt werden, mit welcher Präzision das Signal die Werte Ihrer Anlage ausgeben soll, da diese nur für die Darstellung im System verwendet werden.
Der Faktor wird mit dem ursprünglichen Wert des Signales multipliziert. Beispiele für Umrechnungen:
Faktor 3600 um m³/s in m³/h umzurechnen
Faktor 60000 um m³/s in l/min umzurechnen
Der Versatz gibt an, um welchen festen Wert der ursprüngliche Wert in positive oder negative Richtung verschoben wird (z.B.: Wertverschiebung +1)
Die Einheit ist der gemessene Wert, welcher angezeigt werden soll. (z.B.: V oder m³/h)
Zähler
Ausgangseinstellungen
Diese Einstellungsmöglichkeit ist nur für Analoge und Digitale Ausgangssignale verfügbar!
In den Ausgangseinstellungen kann ein Wert festgelegt werden, auf den das Signal mit der Funktion “Automatisch zurücksetzen” gesetzt wird, nachdem es an das IoT Gerät geschickt wurde.
Außerdem kann eine Verzögerung (in Sekunden) für die automatische Zurücksetzung des Ausgangssignals eingestellt werden.
Aufzeichnungseinstellungen
Spezieller Verarbeitungstyp wählen:
Kein
Live-Durchflussmesser: Zeigt den aktuellen Durchfluss an.
Watchdog: Dient zur Ausfallerkennung des digitalen Systems.
Aufzeichnungstyp wählen:
Mittelwert (ermittelt aus allen empfangen Werten im “Intervall” einen Durchschnitt)
Letztgemessener Wert (er wird nur der letzte Wert erfasst, i.d.R. sinnvoll bei Füllständen)
Intervall wählen, in welcher die Abfrage des zuletzt gemessenen- oder Mittelwertes erfolgen soll. Das Intervall wird in Sekunden angegeben.
Unter “Intervall” wird angegeben in welchem Sekunden-Abstand das IoT Gerät (z.B. JUMO variTRON) die Signaldaten an die IoT Plattform übermittelt
Kompressionseinstellungen
Unter Zeitzonen kann eingestellt werden, in welcher Zeitzone die erhobenen Daten im System gespeichert werden. Sollten Zeit-Formate nicht passen, kann hier manuell eine feste Zeitzone gewählt werden.
Folgende Intervalltypen können gewählt werden:
Unter Prozessintervall wird die normale Übertragungsrate, die im Bereich Aufzeichnungseinstellungen gewählt wurde, verstanden.
Intervalltyp | Beschreibung |
---|---|
Nebenintervall | Entspricht 15 Minuten und ist damit das kleinste Intervall. |
Stundenintervall | Entspricht einer Stunde und damit dem 4-fachen Nebenintervall. |
Zweistundenintervall | Entspricht 2 Stunden und damit dem 2-fachen Stundenintervall. |
Tagesintervall | Entspricht 24 Stunden und damit dem 12-fachen Zweistundenintervall. |
Wochenintervall | Entspricht 7 Tage (168 Stunden) und damit dem 7-fachen Tagesintervall. |
Monatsintervall | Entspricht 30 Tage (720 Stunden) / 28 Tage (672 Stunden) / 29 Tage (696 Stunden) / 31 Tage (744 Stunden) und damit ca. das 4-fache Wochenintervall. |
Quartalintervall | Entspricht 90 Tage (2160 Stunden) / 91 Tage (2184 Stunden) / 92 Tage (2208 Stunden) und damit ca. das 3-fache Monatsintervall. |
Jahresintervall | Entspricht 365 Tage (8760 Stunden) / 366 Tage (8784 Stunden) und damit das 4-fache Quartalintervall. |
Bei der Befüllung der folgenden Felder, öffnet sich jeweils ein Drop-down-Menü:
Einstellung | Beschreibung |
---|---|
Kein | Es erfolgt keine Aufzeichnung des Wertes. |
Gewichtetes Mittel | Der Mittelwert wird unter Berücksichtigung der Dauer der Füll- oder Zustände beurteilt. |
Arithmetisches Mittel | Der Mittelwert wird durch alle Messwerte geteilt durch Anzahl der Werte berechnet. |
Differenz | Die Differenz zwischen 2 gewählten Variablen wird gebildet. |
Summe | Summiert alle unterliegende Aufzeichnungen auf. |
Zeit | Eine Zeit-Aufzeichnung erfolgt. |
Text | - |
Bedingungen
Eine Bedingung ist ein optional einstellbarer Grenzwert, der bei Eingangsbedingung aktiv wird und bei Ausgangsbedingung abfällt. Er kann für nachfolgende Alarmierungen verwendet werden.
Vor der Bearbeitung der Bedingungen muss die Basiskonfiguration gespeichert werden!
Name der Bedingung vergeben.
Optionalen Beschreibungstext vergeben.
Ist der Haken im Feld “Aktiviert” gesetzt, aktivieren Sie die Bedingungen.
Eingangsoperator vergeben. Dieser dient als Vergleichsoperator und bestimmt, ab wann die Bedingung erfüllt ist.
Vergleichswert 1 vergeben.
Die Eingangsverzögerung gibt die Zeit in Sekunden an, in der die Bedingung mindestens erfüllt sein muss.
Ausgangsoperator vergeben. Dieser dient als Vergleichsoperator und bestimmt, ab wann die Bedingung nicht mehr erfüllt ist.
Vergleichswert 2 vergeben.
Die Ausgangsverzögerung gibt die Zeit in Sekunden an, in der die Bedingung nicht mehr erfüllt sein muss.
Zählerbedingungen
Eine Zählerbedingung ist ein optional einstellbarer Grenzwert, der zyklisch ausgelöst wird z.B. alle 500 Betriebsstunden. Der Wert gibt ab, wie lange der Zähler zählen soll bis wieder ein Ereignis ausgelöst wird. In unserem Beispiel Wert=500. Der Startwert entspricht einem Offset. Durch die Eingabe eines Startwertes kann bei einem erneuten Durchlauf die Zählerbedingung verzögert ausgelöst werden. Z.B.: Startwert=100, bedeutet, dass beim nächsten Durchlauf die Zählerbedingung erst bei 600 Stunden ausgelöst wird. Das Startdatum bestimmt ab wann der Zähler zählen soll.
Die Zählerbedingung taucht nur bei Signaltyp “Zähler” auf.
Vor der Bearbeitung der Bedingungen muss die Basiskonfiguration gespeichert werden!
Verweise
Alle Referenzen des Signals werden angezeigt.
AuditLog
Das Audit-Log ein Änderungsprotokoll, das transparent aufzeigt wie das Objekt geändert wurde. Bei einigen Objekten wird auch angezeigt, welche Sollwerte von einer bestimmten Person gesetzt wurden. Power User können über den Button auf der rechte Seite eine Detailansicht erhalten, um nachzuvollziehen, was genau in der Konfiguration geändert wurde.
Mit dem Audit-Log kann schnell nachvollzogen werden, was mit dem Objekt zuletzt passiert ist. Es entspricht einem Auszug des Leitvorgangsarchivs.