-> Hier kostenlos registrieren
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Wie kann ich die Topics dann auswerten?Du kannst das Ganze noch verbessern, indem du das empfangene Topic auswertest und dann der Variable via CASE zuordnest. Das brauchst du, wenn du Wildcards benutzt.
sMessageDimmValue:='';
IF ...xReceived THEN
sMessageLicht1DimValue:='';
SysMem.SysMemCpy(...);
END_IF
IF ...xReceived THEN
tmpString:='';
SysMem.SysMemCpy(ADR(tmpString),...);
rMessageLicht1DimValue:=TO_REAL(tmpString);
END_IF
ptSource: POINTER TO BYTE; // Quellpointer
ptDestination: POINTER TO BYTE; // Zielpointer
i: DWORD; // Laufvariable
IF Subscribe_LichtDimValue1.xDataReceived THEN
ptSource:=ADR(aDatenMQTT_LichtDim1);
ptDestination:=ADR(sMessageLicht1DimValue);
FOR i:=1 TO MIN(subscriber.dwRxNBytes,SIZEOF(aDatenMQTT_LichtDim1)) DO
ptDestination^:=ptSource^;
ptSource:=ptSource+1;
ptDestination:=ptDestination+1;
END_FOR
ptDestination^:=0;
rMessageLicht1DimValue:=TO_REAL(sMessageLicht1DimValue);
END_IF
Code:IF Subscribe_LichtDimValue1.xDataReceived THEN ptSource:=ADR(aDatenMQTT_LichtDim1); ptDestination:=ADR(sMessageLicht1DimValue); FOR i:=1 TO MIN(subscriber.dwRxNBytes,SIZEOF(aDatenMQTT_LichtDim1)) DO ptDestination^:=ptSource^; ptSource:=ptSource+1; ptDestination:=ptDestination+1; END_FOR ptDestination^:=0; rMessageLicht1DimValue:=TO_REAL(sMessageLicht1DimValue); END_IF
Code:IF Subscribe_LichtDimValue1.xDataReceived THEN sMessageLicht1DimValue:='0'; WagoSysPlainMem.SysMem.SysMemCpy(ADR(sMessageLicht1DimValue),ADR(aLicht1DimValue),MIN(Subscribe_LichtDimValue1.dwRxNBytes,SIZEOF(sMessageLicht1DimValue))); rMessageLicht1DimValue:=TO_REAL(sMessageLicht1DimValue); END_IF
Das hier:Vielen vielen Dank. es hat beides funktioniert:
IF Subscribe_LichtDimValue1.xDataReceived THEN
ptSource:=ADR(aDatenMQTT_LichtDim1);
ptDestination:=ADR(sMessageLicht1DimValue);
FOR i:=1 TO MIN(subscriber.dwRxNBytes,SIZEOF(aDatenMQTT_LichtDim1)) DO
ptDestination^:=ptSource^;
ptSource:=ptSource+1;
ptDestination:=ptDestination+1;
END_FOR
ptDestination^:=0;
rMessageLicht1DimValue:=TO_REAL(sMessageLicht1DimValue);
END_IF
@WAGO Soluteer Kannst du mir das mal am Beispiel zeigen, wie ich die empfangenen Topics mit Case auswerte?Du kannst das Ganze noch verbessern, indem du das empfangene Topic auswertest und dann der Variable via CASE zuordnest. Das brauchst du, wenn du Wildcards benutzt.
Subscribe_TopicZimmer(
xSubscribe:= TRUE,
sTopic :=in_sTopicSubscribe,
eQoS:=eQualityOfService.QoS0,
aPayloadData:= aDaten,
sReceivedTopic=> sTopciSubscribeRevceived);
CASE sTopciSubscribeRevceived OF
'+/Licht1/command' : rdimValue1:= TO_REAL (sMessage);
END_CASE;
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen