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_END

    • Zb.

    • 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/
trend%lld/status

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