Applicazione CODESYS – Comunicazione catman <–>PMX Applicazione CODESYS – Comunicazione catman <–>PMX | HBM

Applicazione CODESYS – Comunicazione catman <–>PMX

Queste istruzioni descrivono come creare un'applicazione CODESYS per il PMX. Si presume un'esperienza di base sul CODESYS: gli utenti più esperti sono liberi di adottare un approccio differente. Ulteriori aiuti si trovano negli esempi installati di serie nel calcolatore quando viene installato il pacchetto PMX e dall'aiuto in linea del pacchetto stesso.

I file necessari si trovano nel CD "PMX CODESYS" compreso nella fornitura di ogni PMX contenete il CODESYS o possono essere scaricati nella pagina di supporto del sito hbm.com.

In questo particolare esempio, il PMX viene usato come un server TCP/IP, stabilendo la comunicazione con il catman AP della HBM. 

Il catman AP consente di impostare i canali CPU usando comandi personalizzati, ad esempio per cambiare i valori nominali (setpoint) del PID o similari. Si possono così implementare semplici sistemi automatici di controllo utilizzando il PMX della HBM.

Le funzionalità basilari del server TCP/IP sul PMX sono spiegati nei relativi Consigli per l'uso della HBM. In questo esempio, la manipolazione delle stringhe è stata effettuata utilizzando le librerie OSCAT in dotazione (www.oscat.de).

Dal lato del PMX, l'esempio tratta principalmente il server TCP/IP e l'interfaccia CPU. Le funzioni di comunicazione sul PC sono realizzate con gli script del catman Easy.

Estrazione del pacchetto CODESYS

Aprire l'ambiente di sviluppo
Lanciare il software CODESYS come Amministratore. 

Estrarre il pacchetto. 

Connessione del PMX

Aggiungere il gateway

Doppio clic su “Device (CODESYS Control HBM PMX V3)“ e poi premere “Add gateway…“ sul margine destro. Lasciare inalterate le impostazioni presunte e confermare con “OK”.

Integrare il PMX

La funzione “Scan network” dovrebbe rilevare automaticamente il PMX. Attivare lo strumento con doppio clic su di esso. 

Interpretazione nel PMX dei comandi provenienti da CODESYS

Il server TCP/IP viene usato come una scatola nera. Dopo che il catman AP ha stabilito con successo una connessione con esso, il server trasferisce le stringhe ricevute all'interfaccia CPU che interpreta i comandi e li esegue conseguentemente.

Quale introduzione all'esempio, vengono mostrate per prime le interfacce del server. Segue uno sguardo da vicino all'interpretazione dei comandi e viene spiegata la connessione ai canali della CPU che devono essere usati per l'ulteriore elaborazione. In questo esempio vengono in tal modo impostati due canali.

Interfacce del server

  • Ingressi:
    • sSend (String: Stringa da trasmettere)
    • port (Word: Porta a cui può essere indirizzato il PMX)
    • sIpAddress (String: Indirizzo IP che deve essere aggiustato all'indirizzo IP mostrato nel web browser)
    • bStart (Boolean: Avvia il server)
    • bShutDownServer (Boolean: Arresta il server)
  • Uscite:
    • sReceived (String: Stringa ricevuta)
    • bClientOnline (Boolean: Identificazione segnale di un client)

Funzionalità dell'interfaccia CPU

L'interfaccia CPU fornita supporta tre comandi per ogni canale: set (imposta), get (rileva), reset (ripristina). I comandi sono combinati nella struttura “instructionSet" (serie di istruzioni) per fornire all'utente una rapida panoramica delle istruzioni. Notare che qui i comandi “set…” (imposta) terminano con uno spazio; ciò rende facile distinguerli dai comandi correnti e dalla serie di parametri da definire. 

Quando il server TCP rileva la connessione ad un client, cioè catman AP, l'interfaccia CPU inizia a verificare i messaggi in arrivo in sReceived restando in attesa dei comandi, che verranno eseguiti non appena ricevuti. 

L'azione che viene attivata dal comando deve essere determinata dall'interfaccia CPU.

I valori che vengono restituiti al catman AP devono terminare con la stringa “$R$N”. A tale scopo, il valore restituito è concatenato con “$R$N” in un'unica stringa che utilizza quella del comando  “Concat()” (concatena).

Assegnare i canali CPU

L'assegnazione delle variabili ai canali CPU è implementata nell'ambiente di sviluppo CODESYS come segue: 

  • Doppio clic su “Device” nell'albero della directory di sinistra dell'ambiente di sviluppo per aprire la corrispondente finestra di configurazione.
  • Cliccare sulla linguetta (tab) “Internal I/O Mapping“. (2)
  • Scorrere „Codesys Output x“ e doppio clic sul campo vuoto nella colonna “Variable”. (3)
  • Scegliere una variabile a piacere nella finestra che si apre (la variabile deve essere del tipo  REAL!)
  • Infine verificare il riquadro “Always update variables“ nell'angolo in basso a destra. (4)

catman AP

In catman AP si deve effettuare un catman Easy script in grado di creare un client TCP/IP mediante la libreria oggetti “EA_Comm” e di gestire i comandi definiti in CODESYS. Naturalmente ogni client TCP/IP può anche stabilire una connessione al PMX e comunicare tramite i comandi.

L'esempio fornisce la vista di numerosi bottoni che abilitano la connessione passo dopo passo. I bottoni devono essere premuti in questa sequenza: collegarsi al PMX, impostare od ottenere i valori come richiesto, scollegarsi dal PMX. Se dovessero esserci dei problemi, scollegarsi e ricollegarsi al PMX è solitamente d'aiuto.

Un valore diverso da zero nel campo (5) segnala all'utente che c'è un problema. 

Usare il bottone “Connect to PMX” (1) per avviare lo stabilimento di una connessione. Se il PMX è stato connesso con successo, appare “Ready” nel campo (3). Da ora, i canali 1 e 2 della CPU connessa possono essere impostati (2) ed ottenuti (4) nel campo (3). L'utente deve assicurarsi che i valori impostati risiedano nella gamma di valori del PMX. In caso contrario, i canali CPU verranno impostati, tuttavia lo hardware connesso non potrà elaborare i valori non validi. Inoltre, ci deve essere un valore nel campo (3), altrimenti esso verrà impostato automaticamente a zero.

I valori restituiti vengono mostrati anche nel campo (3). Il campo (5) non rileva soltanto gli errori all'interno dello script; non appena mostra un valore non eguale a zero, scollegarsi e ricollegarsi. Dopo aver effettuato la parametrizzazione dei canali, la connessione deve essere sempre disconnessa (6).

Il codice script consente di capire come viene utilizzata la libreria “EA_Comm” per l'installazione del client TCP/IP. Le corrispondenti routine, o meglio, subroutine vengono attivate dai bottoni nella vista. Il seguente estratto tratta soltanto l'impostazione del canale 1 della CPU. Lo stesso sotto-metodo può essere impiegato per il canale 2 della CPU.

La variabile “Timeout” (oltretempo) definisce il periodo di attesa per la risposta dal server, che deve essere sempre più lungo rispetto ai cicli del PLC. “Id“ fornisce una maniglia o descrittore per gestire le prese sottostanti. “Terminator“ definisce il carattere ASCII fino al quale vengono letti i messaggi nel buffer – il carattere 10 è il “Linefeed” (interlinea), il quale equivale allo “$R$N” in CODESYS. La dimensione del buffer è definita da “MaxBytes” e dovrebbe concordare con la dimensione del buffer size nel PMX. Naturalmente, vale lo stesso per il numero della porta e l'indirizzo IP. 

Notare che il buffer ricevente non viene svuotato automaticamente dalla libreria, cioè dopo aver effettuato con successo una lettura, alla nuova lettura di un messaggio vengono letti tutti i byte restanti del messaggio precedente che non includano informazioni rilevanti. Il problema viene risolto leggendo il buffer byte per byte fino al suo svuotamento. La parte corrispondente è evidenziata nella sub “getCPU1”.

Suggerimento

Ulteriori informazioni per creare i programmi Codesys si trovano nell'Aiuto in Linea di Codesys, in Internet su https://www.codesys.com/ o nella Codesys chat room https://forum.codesys.com/

Sfruttate le conoscenze ed informazioni disponibili nel Codesys Store. 
In https://store.codesys.com/ troverete numerosi esempi di programmazione e soluzioni che coprono un'ampia gamma di compiti.

Avviso Legale

Questo esempio serve ad illustrare l'integrazione del PMX nel LabView mediante la serie di comandi del PMX. Esso non implica alcun diritto di garanzia o di responsabilità.