Configurazione di CODESYS
Questa sezione descrive come configurare CODESYS per comunicare con le risorse Azure create.
Preparare un progetto
Queste istruzioni si basano sull'esempio Utilizzo della libreria MQTT Client SL.
Installa l'esempio Utilizzo della libreria MQTT Client SL.
Imposta l'esempio come eseguibile.
Per ulteriori informazioni, vedere quanto segue: Fabbricazione CODESYS Eseguibile di progetti di esempio
Assicurati che il CODESYS Security Agent il componente aggiuntivo è presente nel tuo CODESYS installazione.
Leggere un'impronta digitale
In Azure, per inserire un'impronta personale per l'identità di un cliente, l'impronta digitale deve essere letta dal certificato di un controller.
Per fare ciò, apri il Agente di sicurezza e vai al Dispositivi scheda.
Seleziona Certificati propri.
Fai doppio clic sul certificato del tuo dispositivo.
Il certificato è generalmente denominato Comunicazione crittografata ed è caratterizzato dal fatto che Rilasciato per e Emesso da le proprietà corrispondono entrambe al nome del dispositivo (→ certificato autofirmato).
Viene visualizzata una finestra delle proprietà del certificato di Windows.
Naviga fino alla Dettagli scheda della finestra delle proprietà.
Trova il Impronta digitale proprietà (di solito l'ultima voce della tabella) e selezionala.
Ora dal campo di testo inferiore della finestra, puoi copiare l'impronta digitale del certificato per un uso successivo.
Configurazione del contesto TLS
Nella sezione delle dichiarazioni del programma principale PRG, troverai una dichiarazione commentata per un contesto TLS destinato all'uso di certificati client. Togliete il commento a questa dichiarazione e adattate
Apri il programma principale
PRG.Cerca una dichiarazione commentata per un contesto TLS destinato all'uso di certificati client. Decommentate questa dichiarazione e adattate
Parametro
Valore di esempio
Descrizione
_sCommonNameNome del dispositivo del controller
Il «Nome comune» (CN) del certificato. Per il certificato del dispositivo autofirmato del PLC, corrisponde al nome del dispositivo
_sTLSVersion1.3
Azure Event Grid supporta le versioni TLS 1.2 e 1.3.
Per ulteriori informazioni, vedere quanto segue: Pagina di aiuto di Microsoft Azure.
sHostname<MQTT Hostname>
Il nome host MQTT del broker all'interno dello spazio dei nomi Event Grid.
Puoi leggere il tuo nome host come descritto nella sezione «Nome host MQTT» e inserirlo qui.
udiVerificationMode1
1 := No peer verificationPer ulteriori informazioni, consulta la TLSContext blocco funzionale.
Nel contesto TLS preconfigurato e semplificato, cerca la riga
itfTlsContext : NBS.ITLSContext := tlsContext;Sposta questa riga sotto il TLSContext appena dichiarato e adatta l'assegnazione a
:= _tlsContext.Ora il
MQTTClientil blocco di funzioni utilizza il contesto TLS configurato anziché il contesto TLS preconfigurato nel progetto di esempio.
Impostazione del timeout per MQTTClient
Apri il programma principale
PRG.Nella sezione dichiarazione, aggiungi una nuova variabile di timeout.
Collega la variabile di timeout nell'editor CFC al
udiTimeOutinput diMQTTClientblocco funzionale per impostare un timeout quando si stabilisce una connessione. In alternativa, è anche possibile collegare un valore letterale numerico (ad esempio, 3000000) direttamente all'input.Se non si imposta il timeout, il client non entrerà mai in uno stato di errore se non è possibile stabilire la connessione.
Suggerimento
Un periodo di timeout per il MQTTClient blocco funzione è specificato in microsecondi. Se si verifica un errore TCP_INIT_ERROR successivamente, durante il test, controlla prima il valore di timeout configurato e impostalo su un valore più alto, se necessario.
Esempio di dichiarazione:
udiTimeout : UDINT := 3000000; // µs -> 3s
Ora il CODESYS il client è pronto per la parametrizzazione specifica della connessione.