Kommunikationsmethoden
- LISTENER
Kommunikationsmethoden welche bei Socketverbindungen ausgeführt werden.
- PREPROCESS (READ)
Kommunikationsmethoden welche bei im Intervall ausgeführt werden.
- ONCHANGE (WRITE)
Kommunikationsmethoden welche bei Änderung/Force ausgeführt werden. Ohne Polling intervall.
Der Aufbau ist für alle identisch je nach Protokoll. Spaltennamen unterscheiden sich teilweise.
Protokoll Sercom
- ALIAS: Eindeutiger ALIAS für Zugriff auf die Variablen
- SEND: Sendetelegramm
- SEND_DELIMITER_START: Startkennung als Text oder Hex-Code ( /000203)
- SEND_DELIMITER_END: Endkennung als Text oder Hex-Code ( /000203)
- RECEIVE_LEN: Länge Empfangs-/oder Antworttelegramm
- DELIMITER_START: Startkennung als Text oder Hex-Code ( /000203)
- DELIMITER_END: Endkennung als Text oder Hex-Code ( /000203)
- POLLING: Abfragezyklus in ms
Protokoll Modbus
- ALIAS: Eindeutiger ALIAS für Zugriff auf die Variablen
- FUNCTION: FC3,FC4,… FC1..16 (Modbusfunktionen)
- SLAVE: Slaveadresse (Zahl oder Variable) (optional)
- ADDRESS: Startadresse COUNT Anzahl Register
- POLLING: Abfragezyklus in ms
Protokoll Rest
- ALIAS: Eindeutiger ALIAS für Zugriff auf die Variablen
- METHOD: GET/POST/PATCH/LISTEN/PUT/DELETE
- SSE: GET/POST/DELETE/PUT/SSE
Öffnet einen SSE-Stream und empfängt die Events. Aufruf-Parameter idem GET. - URL: Url
Zusammengesetzte Url für Abfrage= Url + DOMAIN - DATATYPE: JSON/XML
- FORMULA: Code, der nach dem Aufruf der Methode ausgeführt wird.
- POLLING: Abfragezyklus in ms
FUNCTION Bereich bei MODBUS
*FUNCTION | ALIAS | FORMULA |
READ1 | „“ |
ALIAS und Formel.
Aktuell nur für MODBUS aktive. Damit können in Formula Funktionen definiert werden ähnlich wie bei den normalen Methoden.
Unterschied ist, dass die FUNCTUON mittels Befehl aufgerufen werden und dabei Daten aus dem generellen Block kopiert, bzw. in diesen kopiert werden.
FUNCTION(1,’READ1’,GET,'READALL',4,10);
FUNCTION(SLAVE,ZIEL,GET/SET,QUELLE,ADRESSE,ANZAHL);
Dieser Aufruf kopiert aus der Modbusblock in READALL ab Register 4 10 Register in den Slave 1 und die Zielfunktion READ1 auf Adresse 0..10.
Damit kann ich einen READ Modbus machen und dann einzelne Blöcke passend abarbeiten.
Oder im SLAVE 1 lese ich alle Register und in den einzelnen Slaves arbeite ich die verschiedenen Blöcke ab, je nach Typ.
SUNSPEC, WAGO,…. Bei SET umgekehrt.
MODBUS Variablen
Man kann mit xxx.ADDRESS und xxx.COUNT die Startregsister und Anzahl setzen und lesen.
Zusatzargumente für REST/SERCOM
- *ARGS: Kennzeichner (ARG)
- METHOD: ALIAS der zuzuweisenden Funktion , *ALL für Alle
- ALIAS: ALIAS des Argumentes: Ist der Alias leer wird der Namen verwendet.
- TYPE: data, Nur bei REST zusätzlich ( url,arg)
- NAME:
- Bei SER: Formatierung zb. %02lldTR1
- Bei REST: Name des Eintrages.
- FORMAT: Formatierung (STRING,DEZIMAL, DOUBLE, T_YYYYMMDDHHMM)
- DAY: Zeitangabe als Tag. 2025-01-30
- ISO8601: Zeitangabe auf Basis einer time_t Values
- T_YYYYMMDDHHMM: Zeitangabe auf Basis einer YYYYMMDDHHMMSS DINT WERTES.
- STRING: in NAME %s
- DEZIMAL: in NAME %lld
- DOUBLE: in Name %d
- ENUM: val1=CODE1,val2=CODE2,valx=CODEx
- Wandelt Int in Text. Zb. ENUM:0=STANDARD,2=AT,3=ENGLAND,4=ANYWHERE
Freie Eingabe: mit „%lld“ oder „%s“ oder „%g“. zb. „S_%lldkW”
Nur bei REST: Gliederung der Daten bei XML und JSON:
BLOCK_START / ARRAY_START
BLOCK_END / ARRAY_ENDZb.
ARGS
FULL
INHABER
data
INHABER
BLOCK_START
ARGS
FULL
NAME
data
NAME
TEST2
STRING
ARGS
FULL
WERT
data
WERT
12
DEZIMAL
ARGS
FULL
INHABER
data
INHABER
BLOCK_END
Beispiel in JSON:
"INHABER": { "NAME": "TEST2", "WERT": 12 }Beispiel in XML:
<INHABER> <NAME>TEST2</NAME> <WERT>12</WERT> </INHABER>
- VALUE: Default-Wert
- ITEM: zugewiesenes Item ohne Formel ($..= Zugriff auf GENERALParameter)
Zb. $SLAVE
Die Reihenfolge der Args bestimmt den Telegrammaufbau (bei SERCOM und REST)
zB.
*PREPROCESS | ALIAS | METHOD | URL | DATATYPE | POLLING | |||
FULL | GET | http:// | JSON | 1000 | ||||
*ARGS | METHOD | ALIAS | TYPE | NAME | VALUE | ITEM | FORMAT | |
ARGS | FULL | URL | url | /api/v1/trend/meteo/ | 0 | DEZIMAL | ||
ARGS | FULL | TSTART | arg | tstart=%s | 2017-02-19 T15:00:00+01:00 | X.10 | T_YYYYMM DDHHMM | |
ARGS | FULL | TEND | arg | tend=%s | 2017-03-19 T15:00:00+01:00 | X.11 | T_YYYYMM DDHHMM | |
ARGS | FULL | DATACOUNT | arg | datacount=%lld | 96 | X.12 | DEZIMAL |
