Zum Hauptinhalt springen

Generisches Konsumptionsmodul "fmconsumer"

Beschreibung

Das generische Konsumptionsmodul fmconsumer erlaubt es, Kanaldaten zu konsumieren, in einer definierten Botschaft zu plazieren und diese danach über ein Socketmodul (wie z.B. ein canbus Modul) zu versenden. Da die Spezifikation der Kanäle hierbei optional erfolgt, können auch zeitlich konstante Botschaften (wie z.B. periodische Reizbotschaften) versendet werden. Der Versand erfolgt hierbei entweder

  • einmalig nach dem spezifizierten Sendeintervall
  • periodisch im spezifizierten Sendeintervall
  • ereignisgesteuert

Ein ereignisgesteuerter Versand erfolgt hierbei

  • nach Eintreten eines Ereignisses (und frühestens nach Ablauf eines konfigurierbaren Intervalls)
  • nach Ablauf eines konfigurierbaren Intervalls, falls bis dahin KEIN Ereignis eingetreten ist

Ein Ereignis tritt auf, wenn eine anhand eines Identifikationsschlüssels (messageKey) spezifizierte Botschaft seitens Socketmodul empfangen wurde.

Es können mehrere zu versendende Botschaften konfiguriert werden.

Verwendete Schnittstellen & Protokolle

  • KEINE

JSON-Konfiguration

Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.

Beispielkonfiguration (typische Konfiguration)

    {
"module":"Consumer",
"factory":"fmconsumer",
"config":{
"fmd": "canbus",
"messages":[
{
"messageKey": 42,
"defaultMessage": "0102 03 04ff06",
"sendMode": "OnTimer",
"sendIntervalMs": 1000
}
]
}
}

Globale Modulparameter

ParameternameErforderlichDatentypsinnvoller WertebereichDefault-WertBeschreibung
fmdJASTRINGName der Modulinstanz des verwendeten Socketmoduls
messagesJAJSON Array of JSON Objectsiehe unten
channelsNeinJSON Array of JSON Objectsiehe unten

Konfiguration von Botschaften "messages"

Botschaften werden als JSON Objekte spezifiziert, jedes dieser Objekte kann folgende Parameter enthalten

ParameternameErforderlichDatentypsinnvoller WertebereichDefault-WertBeschreibung
messageKeyJAINTEindeutiger Identifikationsschlüssel der Botschaft
defaultMessageJASTRINGHexadezimal kodierte Bytes der Botschaftsvorlage (Leerzeichen werden ignoriert)
sendModeJASTRING"SingleShot", "OnTimer", "OnTriggerWhenTimeoutElapsed", "OnMissingTriggerWhenTimeoutElapsed"Betriebsart des Botschaftsversands (einmalig, periodisch, ereignisgesteuert)
sendIntervalMsJAINT0 -Verzögerung/Intervall [ms] bzgl. des Botschaftsversands
triggeringMessageKeysNeinJSON Array of INTEMPTY JSON ArrayIdentifikationsschlüssel aller ereignishervorrufenden Botschaften

Konfiguration von Kanälen "channels"

Anmerkung: Kanaldaten werden momentan eins-zu-eins innerhalb der Botschaftsvorlage plaziert, d.h. der letztlich plazierte Datentyp entspricht exakt dem Quelldatentyp des Kanals. Außerdem muss der Anwender zwingend eine hinreichend lange Botschaftsvorlage definieren. Optional ist es möglich, anhand der bitLength eine geringere Anzahl an Bits zu plazieren (in diesem Fall werden die rechten Bits entsprechend verworfen).

Kanäle werden als JSON Objekte spezifiziert, jedes dieser Objekte kann folgende Parameter enthalten

ParameternameErforderlichDatentypsinnvoller WertebereichDefault-WertBeschreibung
nameJASTRINGName des zu konsumierenden Kanals
bitOffsetJAINTinnerhalb der BotschaftsvorlageOffset bzgl. Plazierung des Kanals innerhalb der Botschaftsvorlage
bitLengthJAINTso dass bitOffset + bitLength innerhalb der Botschaftsvorlage liegtLänge bzgl. Plazierung des Kanals innerhalb der Botschaftsvorlage

Modul-Informationen

InformationWert
AutorenoptiMEAS Measurement and Automation Systems GmbH
seit smartCORE0.110
ModultypConsumer
AbhängigkeitenSocketmodul mit Schreibzugriff (wie z.B. canbus)