DDF-Handbuch / Teil A – Protokoll-DDF

Spalten & Keywords

*GENERAL – Parameter

Format: ;KEY;VALUE[;Hinweis/Optionen]. Alle Werte landen im Parameterverzeichnis des Geräts (params) und sind in Formeln als $.PARAM.<KEY> lesbar. Eine dritte Spalte (z. B. ;TIMEOUT;5000;ms oder ;PARITY;EVEN;NONE,ODD,EVEN) dient als Einheit bzw. Optionsliste für Editor und Anzeige.

Metadaten

Key Pflicht Beschreibung
DEVICE ja Gerätename/Modell
MANUFACTURER ja Hersteller. ⚠ Der Export liest MANUFATURER (Tippfehler im Code). Manche Beispiele schreiben ebenfalls MANUFATURER. Zu klären, welcher Key verbindlich ist. Sicher ist es, MANUFACTURER zu verwenden.
TYPE ja Kategorie (z. B. Wallbox, Weather station, Graphical user interface)
PROTOCOL ja Protokoll. Ausgewertet wird das Präfix (siehe Architektur).
VERSION_NR ja Versionsnummer (Integer, 6.00 → 6)
MODEL_NR ja Modellnummer
ID ja Hex-ID, siehe Dateiname & ID
MIN_CONTROL_VERSION empfohlen Mindest-OS-Version im Format Vxxxxx-yy, z. B. V10384-11
REVISION optional Revision der DDF
TIMESTAMP optional Zeitstempel. Wirkung im Code nicht belegt (zu klären).
VERSION_INFO, VERSION_USER, AUTOR/AUTHOR, COMMENT optional Metadaten ohne belegte Wirkung
DEFAULT_ALARMING, DEV_DEBUG, DEBUGPORT, DEFDOMAIN optional in Beispielen vorhanden, Wirkung zu klären

Verbindung

Key Protokolle Beschreibung / Default
CONNECTION alle SERIALPORT (1), SERIALPORT+ (2), IPADDRESS (3), DOMAIN (4)
IPADDRESS MODBUS TCP, Gateways IP-Adresse (vom Benutzer im System gesetzt)
PORT MODBUS TCP TCP-Port, Default 502
DOMAIN REST, MQTT Basis-URL bzw. Broker-URL. Bei Slaves kommagetrennte Liste, Bereiche a.b.c.10-20 werden expandiert.
SERIALPORT, SERIALPORT_NODE, IPADDRESS_NODE RTU, SERCOM, DMX serielle Schnittstelle bzw. IO-Node. Porttypen: COMPORT, RIO, IP, NODE
BAUDRATE seriell Default 9600
DATABITS seriell Default 8
STOPBITS seriell Default 1
PARITY seriell NONE, ODD, EVEN (SERCOM wertet nur das erste Zeichen aus)
FLOWCONTROL seriell NO, SW, HW
SLAVE alle Slave-Adresse bzw. Slaveliste (siehe unten)
SLAVESMAX alle max. Anzahl Instanzen (≤ 250). Ab 1 entsteht ein Multi-Device.
TIMEOUT alle ms. MODBUS-Default 10000, SERCOM 5000.
WAIT_AFTER_CONNECT MODBUS s, Default 2
MIN_PAUSE MODBUS, DMX ms zwischen Telegrammen. MODBUS 50, DMX 10.
WAIT_AFTER_SEND SERCOM ms
ACTION_AFTER_RECEIVE SERCOM NONE, CLEARIN (Default), CLEAROUT, CLEARINOUT
WORDORDER MODBUS BIG_ENDIAN (=1) / LITTLE_ENDIAN (=0)
BYTEORDER MODBUS BIG_ENDIAN (=0) / LITTLE_ENDIAN (=1)
ERROR_HANDLING MODBUS, seriell FLUSH_OR_RECONNECT_ON_ERROR, NOP_ON_ERROR, FLUSH_OR_CLOSE_ON_ERROR
AUTHENTIFICATION REST, MQTT, OCPP NONE (0), PASSWORD (1), TOKEN (2), OAUTH_DEVICE_FLOW (3), OAUTH_GRANT_FLOW (4), BASIC_AUTH (5)
USER, PASSWORD REST, MQTT Zugangsdaten. Niemals echte Werte in eine DDF schreiben, das setzt der Benutzer.
CLIENTID MQTT Default ioDeviceDBDevice_Mqtt_<station>_<device>
LISTENER_PORT REST, OCPP Port des Listeners/Servers
HEARTBEAT_INTERVAL OCPP s
SOAPACTION, SOAPNS REST (SOAP) SOAP-Action und Namespace
JPEGFILE REST Ablage für JPEG-Antworten (Kamera)
FAILUREITEM alle Item für Fehlerzustand (Auswertung zu klären)
DMXTYPE DMX 0 = STANDARD, 1 = INTERN
CONFIGFILE alle ENABLED aktiviert die Konfigurationsdatei devicedbconf_<station>.ddf

DATATYPE und der Tippfehler ASCCI

Das Enum für DATATYPE (SERCOM) heißt im Code ASCCI (=0) und BYTE (=1). Wer ASCII schreibt, landet über den Default ebenfalls bei 0. Funktional ist das gleichwertig, nur BYTE muss exakt geschrieben werden.

Slaves und Domains

*ITEM – Datenpunkte

Spalte Beschreibung
GROUP Gruppen-ID(s), kommagetrennt (0,1). Mit Gruppen wird ein Item als ITEM.<grp>.<ALIAS> adressiert.
ALIAS eindeutiger Name (Großbuchstaben, _)
NAME Anzeigename
VISIBILITY leer = sichtbar, HIDDEN = nicht exportiert/angezeigt
ID numerische ID (eindeutig im Gerät). Ansprechbar als X.<id>.
UNIT Einheit
TYPE real, int, bool, string, datetime, ARRAY, STRING … (bei ARRAY/STRING wird keine RFORMULA zyklisch ausgeführt)
DIR IN / OUT (Hinweis für Editor). Exportiert wird als Output, wenn eine WFORMULA vorhanden ist.
DEFAULT Startwert
WFORMULA wird ausgeführt, wenn das System einen neuen Wert schreibt. x enthält den neuen Wert.
RFORMULA wird zyklisch mit POLLING des Items ausgeführt
POLLING ms für RFORMULA
MASK Bitmaske, zusammen mit $.ITEMMASK

Beispiel (aus DEMO_DDF.csv):

*ITEM;GROUP;ALIAS;NAME;VISIBILITY;ID;UNIT;TYPE;DIR;DEFAULT;WFORMULA;RFORMULA;POLLING
;0;WIND_DIRECTION;Wind direction;;0;°;real;IN
;0;TEMPERATURE;Temperature;;2;°C;real;IN
;1;POSITION_ALTITUDE;Position altitude;;7;m;real;IN
;0,1;QUALITY;Quality;;200;;int;IN
;0,1;INFO;Info;;210;;string;IN;SenTec SEM9000 weather station

*GROUP

Spalte Beschreibung
ID Gruppennummer
ALIAS Gruppenalias
NAME Anzeigename
SUFFIX Namenssuffix (Wirkung zu klären)
MASK Maske für $.ITEMMASK

*IO

Spalte Beschreibung
GROUP Gruppe
ID Index
ALIAS Name
DIR DI (1), DO (2), AI (3), AO (4). Intern gibt es auch String-In (5) und String-Out (6).

In Formeln: IO.<grp>.<idx>.

*CONFIG

Spalte Beschreibung
ALIAS Name
VALUE Wert
TYPE Typ

In Formeln: $.CONFIG.<idx>. Neu laden mit LOAD_CONFIG(); bzw. $.SYS.LOAD_CONFIG.

*COMMAND

Spalte Beschreibung
ID Nummer
ALIAS Kommandoname
FORMULA Formel, die beim Aufruf (InvokeCommand) ausgeführt wird