Dopo aver installato la Oracle Virtual Box e Debian 11 come descritto nell'articolo precedente di questa serie, procediamo ad installare OpenPLC Editor su questa installazione virtuale di Debian 11.
Putroppo le istruzione ufficiali presenti nel sito https://www.openplcproject.com/plcopen-editor falliscono perché questa versione di Debian ha installato Python 3 anziché Python 2.7 ed inoltre un pacchetto necessario per il funzionamento di OpenPLC Editor non è direttamente installabile in Debian 11 [mentre lo sarebbe in versioni precedenti di Debian].
Proviamo comunque da Terminale i passi descritti nel sito ufficiale
$sudo apt-get install git
$git clone https://github.com/thiagoralves/OpenPLC_Editor
$cd OpenPLC_Editor
$./install.sh
Se è la prima volta che su una nuova installazione di Debian usate sudo conviene
fausto@debian:~$ su
Password:
root@debian:/home/fausto# cd /etc
root@debian:/etc# pluma sudoers
Dovete aggiungere il vostro utente nel file di testo sudoers, modificabile solo da root.

Chiaramente a posto di "fausto" dovete mettere il vostro utente di lavoro su Debian 11.
Spieghiamo ora cosa dovrebbero fare i passi di installazione di OpenPLC Editor.
I primi tre passi funzionano bene. Il primo installa Git, il secondo scarica la cartella di Installazione OpenPLC_Editor, il terzo ci permette di entrare in quella cartella, ma lo script di installazione "fallisce" per mancanza di pacchetti che andavano installati prima.
L'errore più grave è la mancanza del pacchetto python-wxgtk3.0
fausto@debian:~/OpenPLC_Editor$ ./install.sh
Installing OpenPLC Editor
Please be patient. This may take a couple minutes...
[INSTALLING DEPENDENCIES]
E: Impossibile trovare il pacchetto python-wxgtk3.0
E: Impossibile trovare alcun pacchetto tramite il glob "python-wxgtk3.0"
E: Impossibile trovare alcun pacchetto tramite l'espressione regolare "python-wxgtk3.0"
ciò impedisce poi allo script di fare il make e generare l'eseguibile.
Questo pacchetto non viene trovato né viene installato dallo script.
Occorre aprire una pagina web con il browser Firefox ESR presente su Debian 11 e navigare in due pagine web dove questi due file possono essere scaricati da Ubuntu
https://packages.ubuntu.com/bionic/all/python-wxversion/download
e
https://packages.ubuntu.com/bionic/python-wxgtk3.0
Si aprono queste due pagine e si scaricano i due pacchetti compatibili con la propria CPU fisica.
Si apre un terminale e li installo
fausto@debian:~$ cd Scaricati/
fausto@debian:~/Scaricati$ ls -l
totale 4972
-rw-r--r-- 1 fausto fausto 5071860 16 nov 17.27 python-wxgtk3.0_3.0.2.0+dfsg-7_amd64.deb
-rw-r--r-- 1 fausto fausto 12428 16 nov 17.27 python-wxversion_3.0.2.0+dfsg-7_all.deb
fausto@debian:~/Scaricati$ sudo apt install ./python-wxgtk3.0_3.0.2.0+dfsg-7_amd64.deb ./python-wxversion_3.0.2.0+dfsg-7_all.deb
Si verifica la corretta installazione di wx
fausto@debian:~/Scaricati$ python
Python 2.7.18 (default, Jul 14 2021, 08:11:37)
[GCC 10.2.1 20210110] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> print(wx.version())
3.0.2.0 gtk3 (classic)
Come vedere ora il modulo wx è visibile in Python 2.7
Si ritorna a fare
$cd /home/fausto/OpenPLC_Editor
$./install.sh
Dovrete mettere il vostro nome utente al posto di fausto.
L'installazione ora procede correttamente, impiega circa 5 minuti e genera una serie di warning
Making all in stage4
Making all in generate_c
In file included from generate_c.cc:525:
generate_c_il.cc: In member function ‘virtual void* generate_c_il_c::visit(il_function_call_c*)’:
generate_c_il.cc:957:11: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
957 | if (nb_param > 0)
| ^~
generate_c_il.cc:959:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
959 | if (param_value == NULL) {
| ^~
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in generate_iec
ar: `u' modifier ignored since `D' is the default (see `U')
config.status: creating config/config.h
config.status: config/config.h is unchanged
[FINALIZING]
./install.sh: riga 39: cd: /home/fausto/.local/share/applications: File o directory non esistente
fausto@debian:~/OpenPLC_Editor$
L'ultimo messaggio [FINALIZING]
./install.sh: riga 39: cd: /home/fausto/.local/share/applications: File o directory non esistente
non è preoccupante. Non riesce a creare automaticamente il collegamento. Lo possiamo fare manualmente.

Ora OpenPLC è funzionante nella nostra installazione virtuale di Debian11.Non ci resta che provarla nei vari linguaggi e simulare il nostro codice!
