Installazione server “Harlequin”

Cos'è "Harlequin"

Harlequin è il nome che abbiamo dato ad un servizio fornito come server sviluppato in Node.js un progetto di sviluppo Open source distribuito gestito dalla Node.js Foundation. NodeJs è un runtime JavaScript Open source multipiattaforma orientato agli eventi che consente di utilizzare JavaScript anche per scrivere codice da eseguire lato server. La sua architettura orientata agli eventi rende possibile l’I/O asincrono permettendo di ottimizzare il throughput e la scalabilità nelle applicazioni con molte operazioni di I/O.

Harlequin è installabile come servizio su qualsiasi piattaforma Windows/Linux/Mac ed è accessibile tramite connessione TCP/IP, per poterlo utilizzare da programmi scritti in LogicLab abbiamo realizzato appositi blocchi funzione che gestiscono tutto il traffico asincrono tra il programma PLC ed il server. Installando il server su di un sistema SlimLine Raspberry è possibile avere in un unico sistema sia la programmabilità LogicLab che il server Harlequin, in questo caso la comunicazione tra i due processi avviene con connessione TCP/IP in localhost.

Ma è anche possibile utilizzare i blocchi funzione su altri sistemi SlimLine in questo caso si dovrà installare il server Harlequin su di un PC Windows/Linux/Mac esempio un modulo Raspberry, definendone l'indirizzo IP nei FB di gestione.

Installazione Node.js

Harlequin si basa su Node.js nei nostri sistemi SlimLine Raspberry è già preinstallato, ma se si desidera utilizzarlo su altri sistemi occorre provvedere ad installarlo. Accedere alla shell Unix (Bash), direttamente o tramite una connessione SSH con Putty, ed installarlo con i comandi.

sudo apt-get update
sudo apt-get dist-upgrade
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

Terminata l'installazione è possibile verificare la versione installata.

node -v
npm -v

Dopo avere installato Node.js occorre installare i moduli utilizzati da Harlequin, consiglio di eseguire l'installazione in modo globale (-g), in questo modo i moduli sono copiati nella cartella /usr/lib/node_modules.

sudo npm install -g forever --save
sudo npm install -g http-server --save
sudo npm install -g socket.io --save
sudo npm install -g nodemailer --save
sudo npm install -g mysql --save

Installazione Harlequin

Il programma và installato nella cartella /opt/elsist/harlequin, eseguire il download del programma dal nostro sito, ed installarlo sul sistema seguendo i seguenti passi.

  • Trasferire la cartella Harlequin del file download nella cartella /tmp
  • Trasferire la cartella harlequin in /opt/elsist/ comando sudo cp /tmp/Harlequin/harlequin /opt/elsist/ -R
  • Trasferire il file Harlequin.sh in /etc/init.d comando sudo cp /tmp/Harlequin/Harlequin.sh /etc/init.d
  • Dare permessi di esecuzione al file, usare comando sudo chmod 755 /etc/init.d/Harlequin.sh

Esecuzione server

Il server Harlequin di default non è in esecuzione, per eseguirlo in modalità interattiva, da accesso SSH eseguirlo con il comando sudo node /opt/elsist/harlequin/Harlequin.js, inserendo al termine del comando l'opzione --trace vengono visualizzati i messaggi di trace durante l'esecuzione utili per individuare eventuali problemi.

Per eseguire il run time come servizio, da accesso SSH usare comando sudo /etc/init.d/Harlequin.sh start, per arrestarne l'esecuzione usare comando sudo /etc/init.d/Harlequin.sh stop.

Nell'utilizzo pratico si consiglia di settare l'esecuzione automatica del run time in modo da permettere alla accensione del sistema l'avvio automatico del server Harlequin.

Per settare esecuzione automatica sudo update-rc.d Harlequin.sh defaults seguito da sudo reboot.
Per eliminare esecuzione automatica sudo update-rc.d Harlequin.sh remove seguito da sudo reboot.

Accesso al server

Il server Harlequin di default attiva un server HTTP sulla porta 8100, accedendo con un browser è possibile visualizzarne lo stato ed eseguire l'impostazione dei parametri di funzionamento. Come si vede nello screenshot a lato il server TCP è in ascolto sulla porta 8101, quindi tutti i FB di gestione devono connettersi alla porta definita.

Was this article helpful?