Home › Forum › Programmazione IEC 61131 (LogicLab) › Problemi con il blocco funzione MQTT CLient
Taggato: #mqtt #mqttclient
- Questo topic ha 3 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 3 mesi fa da Sergio Bertana.
-
AutorePost
-
Marzo 10, 2022 alle 8:32 am #64334johnnyba71Partecipante
Stò facendo qualche test con il FB MQTTClient sul PLC della serie SlimLine. Ancora prima di dare il comando di Enable il valore Fault alterna valori di TRUE e FALSE. Analizzando con Toolly vedo questo errore:
01:02:55.046133| MQTTClient:Er|Error:10067010, On Case:0, Back to:0
E con la finestra di DEBUG:
User program error:9941100
User program error:10067010Ho fatto diversi tentativi ma non riesco a capire da cosa dipende.
Marzo 10, 2022 alle 8:35 am #64357Sergio BertanaAmministratore del forumPer gli errori di esecuzione occorre fare riferimento a questa pagina. E’ anche possibile accedere con un browser alle pagine web dello SlimLine e nella pagina Logs troverai l’indicazione dell’errore con il link diretto alla pagina di spiegazione.
Errore 9941100 Blocco funzione eseguito in task diversa da Back SysTCPClient
Errore 10067010 FB eseguita in una task diversa dalla task di background MQTTClientIn pratica hai eseguito il programma in una task diversa della back.
Per testare l’MQTT ti consiglio di usare il programma ST_MQTTClient che trovi in questo articolo.
Gennaio 17, 2023 alle 10:43 am #69323ChiaraPartecipanteCome si può sostiuire il valore del ClientID con l’hostname del PLC impostato da interfaccia web in SYSTEM SETTINGS ?
MQTT.ClientID:=ADR('Elsist'); //Client identifier
Gennaio 17, 2023 alle 10:54 am #69326Sergio BertanaAmministratore del forumLe impostazioni da pagina web System settings, sono accessibili da programma utilizzando la funzione SysOSIDValue. Nel tuo caso per acquisire il valore impostato nel campo Device name devi riferirti al SYS_ID#OSID_DEVICE_NAME. Ecco un esempio di codice.
PROGRAM MyProgram VAR i : BOOL; (* Auxiliary variable *) HostName : STRING[ 20 ]; (* Hostname *) END_VAR i:=SysOSIDValue(FALSE, SYS_ID#OSID_DEVICE_NAME, ADR(HostName));
Nel tuo programma di gestione MQTT ti dovrai poi rifereire alla variabile HostName.
MQTT.ClientID:=ADR(HostName); //Client identifier
-
AutorePost
- Devi essere connesso per rispondere a questo topic.