Damit Sie logiccloud Control auf Ihrem WAGO PFC200 Device installieren können, müssen Sie zunächst die CODESYS Runtime deaktivieren und Docker auf Ihrem PFC200 installieren. Die Anleitung dazu finden Sie hier: Docker auf WAGO PFC200 installieren. Eine Videoanleitung von WAGO finden Sie auf YouTube.
WAGO PFC200 Ein-/Ausgänge ansteuern
Damit die Ein-/Ausgänge angesteuert werden können, muss ein MQTT Broker sowie der WAGO PFC KBUS API MQTT Container installiert werden. Zuerst installieren wir den Mosquitto Broker. Unser vorgefertigter Container deployed Mosquitto 2.0.11
mit allow_annonymous
aktiviert.
# MQTT Broker Mosquitto 2.0.11
docker run -it -p 1883:1883 -d logiccloud/mosquitto:2.0.11
Nun können wir den WAGO PFC KBUS API Container installieren. Dazu gehen Sie bitte nach dieser Anleitung vor.
MQTT Verbindung zu den Ein- und Ausgängen
Damit wir auf die Ein- und Ausgänge zugreifen können, müssen die entsprechenden MQTT Topics definieren. Die Werte kommen mit folgendem Beispielpayload in MQTT an:
{
"state": {
"reported": {
"node_id": "PFC200",
"timestamp": 1649356003,
"switch_state": "RUN",
"module_count": 6,
"modules": {
"module1": {
"pn": 36865,
"position": 1,
"type": "DI",
"input_channel_count": 2,
"output_channel_count": 0,
"process_data": {
"inputs": {
"channel1": {
"value": true,
"label": "myFirstLabeledChan"
},
"channel2": {
"value": false,
"label": "m1_input2"
}
}
}
}
}
}
}
}
Wir müssen nun also eine neue MQTT Verbindung anlegen. Der Host ist die DEVICE IP
, PORT: 1883
und der Client ID
beispielsweise PFC200-Runtime
. Benutzernamen und Passwort können wir leer lassen, da der Broker die Anmeldung ohne Benutzerdaten erlaubt.
Wir legen nun einen neuen Payload
an und geben diesem einen beliebigen Namen. Nun muss das Read
und Write
Format definiert werden. Die Syntax folgt hier dem JSON Path Format und wir können den obigen Beispielpayload abbilen:
Eingänge Lesen
$[state][reported][modules][module1][process_data][inputs][channel1][value]
Wir sehen nun schon, dass hier mehrere Channel
angelegt sein können, somit müssten wir für jeden Channel einen eigenen Payload anlegen. Dafür haben wir in logiccloud Platzhalter geschaffen, die über die ##tag##
Variable benutzt werden können. Wir können also den Payload wie folgt definieren:
$[state][reported][modules][module1][process_data][inputs][##tag##][value]
Ausgänge Schreiben
Zum Schreiben der Ausgänge müssen wir den Payload entsprechend dem Objekt definieren, das über MQTT gesendet werden soll. Auch hier können wir Platzhalter mit ##tag##
verwenden.
{
"state": {
"desired": {
"modules": {
"module2": {
"process_data": {
"outputs": {
"##tag##": { //Platzhalter ##tag## wird durch den Variablennamen ersetzt.
"value": ##v## // Platzhalter ##v## wird durch den entsprechenden Prozesswert ersetzt.
}
}
}
}
}
}
}
}
In den Payload Mappings können Sie Ihre Prozessvariablen nun den Topics zuweisen sowie die entsprechenden Datentypen definieren.
logiccloud Control mit dem logiccloud Portal verbinden
Die Installationsoberfläche ist unter der Container-IP, in unserem Beispiel 192.168.1.21
zu finden. Dort können Sie nun Ihr Gerät mit der Cloud verbinden und die Runtime installieren. Die Anleitung dazu finden Sie hier: logiccloud Control installieren.