SlimLine Raspberry utilizzare CODESYS

CODESYS è un ambiente di sviluppo IEC 61131-3 utilizzato da molte aziende di automazione industriale che permette di programmare utilizzando i 5 linguaggi previsti dalla norma. Per installare su PC l’IDE di sviluppo CODESYS scaricarlo gratuitamente dallo store del produttore, cerca la voce “CODESYS Development System V3“.

Terminata l’installazione dell’IDE occorre aggiungere il target Raspberry scaricare il package di installazione gratuitamente dallo store del produttore. La versione scaricata permette di eseguire il programma in modalità dimostrativa per 2 ore, per usarlo senza limiti occorre acquistare la licenza. Dal menù Tools-Programma di installazione CODESYS eseguire installazione del package, viene installato nella cartella “C:Users/Username/CODESYS Control for Raspberry PI“.

Screenshot installazione CODESYS control for Raspberry

Installazione Run-Time

Per installare il run time CODESYS sul dispositivo Raspberry accedere al menù Tools-Update Raspberry Pi da cui è possibile eseguirne l’installazione o l’upgrade. Occorre definire le credenziali di accesso di default (Username: pi Password: raspberry)  e l’indirizzo IP del sistema da aggiornare oltre alla cartella in cui si trova il run time “C:Users/Username/CODESYS Control for Raspberry PI“.

Rimando a questo articolo per l’utilizzo della libreria eCDSS8CoreMng che permette l’accesso ai moduli di estensione. In questo articolo è illustrato l’utilizzo di WebVisu per la creazione di pagine web.

Screenshot CODESYS Update Raspberry

Configurazione dispositivi

Terminata l’installazione del run time occorre configurare i dispositivi hardware del modulo.

Configurazione porte seriali

Porta seriale RS485

Se il dispositivo SlimLine dispone di porta seriale RS485, la porta è conessa alla porta ttyAMA del modulo CPU Raspberry, per poterla utilizzare dall’ambiente CODESYS identificandola come COM1, occorre nel file /etc/CODESYSControl_User.cfg modificare la voce [SysCom] come indicato di seguito. Si specifica device ttyAMA anche se il device è ttyAMA0.

[SysCom]
;Linux.Devicefile=/dev/ttyS
Linux.Devicefile=/dev/ttyAMA

Aggiungere porta seriale su USB

Utilizzando moduli USB/Seriale è possibile connettere alla porta USB del modulo porte seriali aggiuntive, nel caso di una porta da utilizzare in alternativa alla ttyAMA identificandola come COM1, occorre modificare la voce [SysCom] come indicato di seguito. Si specifica device ttyUSB anche se il device è ttyUSB0.

[SysCom]
;Linux.Devicefile=/dev/ttyS
Linux.Devicefile=/dev/ttyUSB
Configurazione CAN bus

Se il dispositivo SlimLine dispone di porta CAN bus, per poterla utilizzare dall’ambiente CODESYS occorre nel file /etc/CODESYSControl_User.cfg aggiungere la voce [CmpSocketCanDrv] come indicato:

[CmpSocketCanDrv]
ScriptPath=/opt/codesys/scripts/
ScriptName=rts_set_baud.sh 

Inserire nella cartella /opt/codesys/scripts/ il file rts_set_baud.sh con il seguente contenuto:

#!/bin/sh BITRATE=`expr $2 \* 1000`
ip link set $1 down
ip link set $1 type can bitrate $BITRATE
ip link set $1 up

Esecuzione  run time CODESYS

Installato il run time è possibile eseguirne o fermarne l’esecuzione con il programma codesyscontrol dalla cartella /etc/init.d.

  • Per eseguire il run time usare comando sudo /etc/init.d/codesyscontrol start
  • Per fermare il run time usare comando sudo /etc/init.d/codesyscontrol stop
  • Per settare esecuzione automatica sudo update-rc.dcodesyscontroldefaults seguito da sudo reboot
  • Per eliminare esecuzione automatica sudo update-rc.d -f codesyscontrol remove seguito da sudo reboot

Creazione nuovo progetto

Per creare un nuovo progetto da eseguire su SlimLine scegliere Nuovo progetto, selezionare Progetto standard, e impostare come dispositivo CODESYS Control for Raspberry Pi.

Screenshot nuovo progetto CODESYS

Di default viene creato un progetto che ha un solo programma POU (Program organization unit) che si chiama “PLC_PRG” scritto in linguaggio ST. Il programma è inserito nella MainTask ed eseguito ciclicamente ogni 4 mS. Per impostare i parametri di esecuzione della task eseguire un doppio clic sul nome.

Ora scriviamo le istruzioni per eseguire l’incremento di una variabile contatore. Anche se non è quì il luogo dove spiegare la programmazione vediamo brevemente cosa viene fatto. Viene dichiarata la variabile Cnt di tipo UINT (intero a 16 bits) e nel corpo del programma la variabile viene incrementata ad ogni loop di esecuzione.

Screenshot creazione nuovo POU CODESYS

Esecuzione programma

Per eseguire il programma sullo SlimLine occorre collegarsi al sistema e trasferirlo, la connessione avviene via Ethernet, occorre assicurarsi che il dispositivo si trovi nella stessa rete del PC. Con un doppio click del mouse sull’icona del dispositivo si apre la finestra di impostazione, eseguendo il comando Scan verranno visualizzati tutti i dispositivi trovati sulla rete e sarà possibile connettersi a quello desiderato.

Screenshot scan network CODESYS

Agendo sul tasto Login il programma verrà compilato e trasferito sul sistema, agendo sul tasto Run è possibile mandarlo in esecuzione. L’IDE CODESYS è un ambiente molto evoluto, posizionandosi con il cursore su una riga di programma ed agendo con il tasto destro del mouse è possibile inserire dei brakpoints in cui l’esecuzione si arresta permettendo di eseguire il programma step-by-step. Posizionandosi con il mouse sulla definizione della variabile è possibile forzarne il valore.

Eseguendo il Logout si può modificare il programma che al prossimo login verrà trasferito sul sistema a caldo cioè senza arrestarne l’esecuzione. La possibilità di modificare il programma con il caricamento a caldo è molto importante in automazione perchè permette di effettuare modifiche in programmi che gestiscono sequenze complesse senza arrestare e/o perdere lo stato in cui si trova l’impianto

Screenshot esecuzione programma CODESYS
Was this article helpful?