FAST.TRACK-01 (IT)

Page 1

FAST.TRACK-01 edizione italiana

The POWER-KI Magazine L’anima delle cose il Software

il Software è Design

Design Italiano nel Software

SPA

Sofware Plastic Architecture l’originale paradigma implementato da POWER-KI

Native Cloud

Applicazioni con interfacce Utente distribuite

HABS

Heuristic Automatic Bars Store

Installazione

Dove trovare le distribuzioni e quale installare

Per cominciare

Calcolatrice V3: gli esercizi della libreria PWK-01-BASIC

ASSEMBLY e Package Le APP di POWER-KI.

Ciao (01,02)

Due esempi passo passo

Gestione Magazzino

Un Magazzino multi utente.

PLC Connector

Client e Server PLC S7 Siemens

Galleria

Immagini di applicativi

OTTOBRE 2021


FAST.TRACK è una pubblicazione di XPLAB s.a.s. che ne detiene tutti i diritti ed è protetta da copyright ©2021 XPLAB s.a.s. Tutti i diritti sono riservati. Possono essere riprodotti solo articoli integrali, senza immagini, alla condizione che riportino la seguente dicitura: ©2021 XPLAB s.a.s. per gentile concessione. Altrimenti nessuna altra parte di questo documento può essere fotocopiata, riprodotta, tradotta in un altra lingua, memorizzata su alcun supporto, trasmessa, senza il consenso scritto di XPLAB. POWER KI ® è un marchio registrato XPLAB s.a.s. Il linguaggio di programmazione POWER-KI ® © è una creazione originale di C.A.Perani NOTA: alcuni testi, in particolare quelli associati alle immagini, sono in inglese per semplificare la redazione delle versioni internazionali, ci scusiamo per l’inconveniente.


Nel 2010 è stato realizzato il primo applicativo commerciale con POWER-KI (PWK), era un componente di un software destinato ad una centrale nucleare, ma il lavoro di sviluppo era cominciato cinque anni prima ed è proseguito senza interruzioni generando versioni successive sempre più affidabili e performanti. Con la versione 10 denominata “Glue” si è giunti ad una svolta molto attesa, ovvero la possibilità per gli sviluppatori, utilizzando la tecnologia WRAP, di estendere PWK con librerie sviluppate autonomamente. L’attuale versione 11 denominata “Veloce” migliora ulteriormente sia l’ambiente di sviluppo che le prestazioni. La validità del progetto è ampiamente dimostrata dalle applicazioni realizzate, la maggior parte delle quali nell’ambito dell’automazione industriale, gestione di impianti macchine o stabilimenti, tutte di elevata complessità. Ma le possibilità di utilizzo sono molto più vaste e vanno dall’IOT (internet delle cose), alla gestione dei processi decisionali e gestionali, all’eCommerce e Web, alla finanza. Devo però ammettere che presi dalle attività di sviluppo abbiamo trascurato quelle di comunicazione e documentazione. Abbiamo erroneamente creduto che le applicazioni e gli innovativi concetti implementati avrebbero parlato per noi. Si da infatti il caso che se una cosa funziona bene, per di più al chiuso di uno stabilimento, nessuno ne parli. Anche dal punto di vista della documentazione siamo un po’ carenti; il libro “POWER-KI: a programming language - Preludio” data 2012 e pur mantenendo una sua validità, quanto meno come riferimento al linguaggio, è più utile a chi PWK lo conosce già, piuttosto che a chi gli si avvicina per la prima volta. Il mio auspicio è che i grandi vantaggi che l’utilizzo di PWK comporta vengano conosciuti dal maggior numero di sviluppatori ed imprese. Per cercare di renderlo possibile tra le altre iniziative questa pubblicazione “FAST.TRACK”. Quindi non un manuale ma una rivista in cui trovare riferimenti tecnici puntuali, casi d’uso, esempi, riflessioni.

Come si dice da queste parti “Hic Rhodus, hic saltus” .. ci proviamo.

CAP

xplab - research in automation - brescia - italy

FAST.TRACK-01

3


Era il 1987 e non solo il termine Software non era molto conosciuto ma anche il suo significato per i più era incomprensibile. Dovendo scrivere un documento in cui illustravo il progetto di un software coniai la definizione di:

“anima delle cose” a distanza di così tanto tempo penso di poter affermare che ci avevo azzeccato. Il software col suo compare l’hardware, è ovunque, nei telefoni, nelle autovetture, negli aspirapolvere, nei frigoriferi ... la sua pervasività è destinata ad aumentare così come la sua influenza sulle nostre vite. Per capirne la rilevanza economica basta esaminare la classifica mondiale delle principali aziende che vede nelle posizioni di testa, società di software o comunque legate ad esso. Il software determina come le cose dovranno comportarsi, ma non nasce con esse, deve essere prima pensato, per il momento principalmente da umani, e poi trasformato attraverso un linguaggio detto di Programmazione (LDP) in istruzioni, codice che l’hardware, l’elemento fisico, sarà in grado di eseguire. L’ elemento mediatore, il linguaggio di programmazione, vincola le possibilità, ma anche condiziona le capacità espressive e creative dell’umano. In altre parole i LDP non sono tutti uguali, ma non solo per le possibilità tecniche a cui danno accesso, ma anche per come formano la capacità del Programmatore di immaginare ed implementare una soluzione applicativa. 4

FAST.TRACK-01

La qualità, l’innovazione, l’impatto economico delle applicazioni software è dipendente dal LDP utilizzato, che pertanto dobbiamo riconoscere come elemento infrastrutturale strategico. Da queste considerazioni nasce POWER-KI (PWK) per innumerevoli aspetti unico ed originale. Grazie a PWK ed al suo ecosistema il Programmatore ha a disposizione una serie di strumenti per lo sviluppo di Intelligent Applications (IA), che sfruttando tutte le informazioni disponibili, desunte anche autonomamente, offrono servizi efficaci in modo semplice. www.power-ki.com


I vantaggi per le aziende informatiche derivanti dall’utilizzo di PWK sono molteplici, in particolare: • rilevante riduzione dei tempi di sviluppo e manutenzione; • riduzione dei tempi di formazione; • possibilità di coprire segmenti di mercato più ampi. Gli ambiti applicativi di POWER-KI vanno: • dall’IOT (Internet delle Cose); • alla supervisione e Controllo di macchine ed impianti industriali; • alla gestione dei processi produttivi e decisionali; • al settore finanziario ed assicurativo; • al Web ed eCommerce.

Ogni qualvolta viene realizzata una nuova applicazione PWK si ha un effetto di novità e cambiamento dovuto non solo alle possibilità tecniche che il linguaggio mette a disposizione, ma anche al diverso modo di approcciare i problemi da parte di analisti e programmatori. L’aspetto più gratificante rimane comunque la soddisfazione degli utenti finali, sempre sorpresi dalla completezza e dalla facilità d’uso delle applicazioni. (CAP)

xplab - research in automation - brescia - italy

FAST.TRACK-01

5


Il Software è Design “il Software è Design” è uno dei concetti che hanno ispirato e guidato lo sviluppo di POWER KI (PWK). Un applicativo software è il risultato di una serie di passaggi equivalenti a quelli necessari per realizzare un prodotto tangibile: • deve esserne definito lo scopo e la funzione, frutto di richiesta da parte di un committente o d’invenzione; • definite le funzionalità, se necessario l’aspetto, le interazioni con altri elementi dell’ambiente e/o del sistema operativo; • scelte le tecnologie e le tecniche da utilizzare; • pianificata la realizzazione; • determinate le attività di test e validazione; • pianificata la distribuzione e la manutenzione. Lo sviluppo, con la metodica “Agile”, è un rimbalzo tra i vari passaggi che 6

FAST.TRACK-01

portano per approssimazioni successive al risultato finale. Creare software rimane un’attività artigianale che richiede oltre alle competenze tecniche, creatività e visione ed in cui l’estetica gioca un ruolo: evidente nelle interfacce utente, presente sempre e comunque, nell’architettura del sistema. Questo in sintesi, da cui emerge che la “codifica” pur essendo la fase che porta alla produzione è solo una parte di un lavoro, che può essere estremamente complesso. Storicamente i programmi per elaboratore sono stati creati per fare cose senza troppo curarsi del come. Design riferito al software, significa occuparsi anche del come, delle modalità di interazione e delle funzionalità fornite; fare finestre con i bordi a spigolo o rotondi, con sfondi piatti o sfumati è grafica. Dewww.power-ki.com


sign è fare programmi che forniscano in modo semplice, efficace ed immediato i loro servizi. Ottenere la semplicità richiede visione critica, ovvero mettere in discussione le cose che si sono sempre fatte così, molto lavoro, cura del dettaglio e gli strumenti adatti. Esempi di Non Design sono numerosi a partire dai Sistemi Operativi: pannelli di opzioni ognuna delle quali richiede un’indagine sui motori di ricerca per capirne il funzionamento, comandi con lista di opzioni chilometriche e così via. Un altro esempio di NON Design è contro intuitivamente quello delle Icone; ci sono programmi che ne hanno centinaia, spesso non dissimili l’una dall’altra, geroglifici che costringono ad un lavoro di decifrazione. Il vantaggio delle icone è tutto del produttore del software che in questo modo riduce l’onere di internazio-

nalizzazione del suo prodotto. Le icone vanno bene quando sono dirette nella rappresentazione o appartengono ad un sistema di comunicazione noto; associarle ad un testo immediatamente leggibile, è buona cosa ma che spesso viene dimenticata. Studi recenti (Nature 8-April-21) hanno rilevato come la maggior parte delle persone tenda a risolvere i problemi con una modalità additiva ovvero aggiungendo elementi anche quando una eliminazione selettiva poteva portare ad una soluzione più semplice e conveniente. Nella programmazione la modalità additiva è prevalente e porta alla stratificazione del software. Dal punto di vista cognitivo sembra meno impegnativa, ma spesso trasferisce agli utenti un sistema più complesso.

xplab - research in automation - brescia - italy

FAST.TRACK-01

7


Nei linguaggi per elaboratori la programmazione ad oggetti è l’emblema della stratificazione. Il concetto degli oggetti in sé è utile ma spesso porta alla definizione di meta-linguaggi applicativi difficili da gestire e che richiedono una ulteriore formazione dei programmatori.

utilizzo come Python e Swift e Go. Il paradigma degli oggetti trova il suo principale rappresentante in Java, la cui rigidità in questo senso è proverbiale, ormai da anni il più usato linguaggio di programmazione per applicazioni non web. A questo proposito è d’obbligo menzio-

Un esempio per tutti la tecnologia sviluppata da “Talligent” azienda costituita nel 1992 da Apple, Hewlett-Packard ed IBM; si trattava di un FrameWork ad oggetti estremamente ambizioso che è crollato per la sua complessità. Assorbita Talligent da IBM, parte della tecnologia venne utilizzata in VisualAge C++ e chi l’ha usato ha vissuto per anni temendo di ricevere richieste di modifiche da parte degli utenti. I linguaggi di programmazione sono l’aspetto tecnico che non solo condiziona ma anche orienta lo sviluppo ed il Design degli applicativi. Negli ultimi anni abbiamo visto situazioni contraddittorie: da un lato linguaggi che si sono evoluti aggiungendo elementi di complicazione (C++, C#) e dall’altro il diffondersi di linguaggi di più semplice ed immediato

nare Javascript che con HTML5 ed in secondo piano PHP costituisce l’indiscusso protagonista delle pagine online.

8

FAST.TRACK-01

Pur non essendoci studi a riguardo, l’influenza del linguaggio di programmazione sul modo di pensare del programmatore risulta a nostro avviso abbastanza evidente. Se il linguaggio implementa un paradigma forte, oggetti, funzioni, liste questa sarà la lente attraverso cui il programmatore guarderà il problema da risolvere e che quindi a secondo dei casi risulterà adeguata o limitante. Anche se per quasi tutti i linguaggi è possibile scrivere il codice con comuni Editor di testo, normalmente vengono usati gli ambienti di sviluppo IDE (Integrated Developing Environment). Sono strumenti che supportano più di un linwww.power-ki.com


guaggio e che oltre all’editing coprono anche tutti i restanti passaggi necessari per arrivare all’applicativo eseguibile. Molti di questi IDE sono esempi di NON Design e come conseguenza richiedono una non breve formazione degli utilizzatori.

le LIB oppure di crearne di proprietarie, POWER-KI può essere esteso con la tecnologia WRAP, che permette di incorporare DLL esterne in modalità quasi nativa, aprendo la possibilità di usare PWK come una sorta di tessuto connettivo tra tecnologie differenti (il nome in codice della versione 10, che per prima incorporava questa tecnologie era GLUE - colla). Anche le tecnologie WEB sono state rivisitate. Il WorkBench permette di realizzare WUI (Web User Interfacce) basate su HTML5, CSS e javascript. In una singola WUI è possibile incorporare un intero sito web. Inoltre questi strumenti consentono la realizzazione di soluzioni ibride con grande semplicità. Esiste poi un ecosistema di applicazioni PWK di cui parleremo nei prossimi numeri di questa rivista; in particolare PWK-ES Enterprise Server per la gestione di applicazioni Cloud ed PWK-ISP per il debug e la modifica a “caldo” delle applicazioni. In POWER-KI si è cercato di rendere tutto più semplice, dall’installazione che richiede pochi minuti, alla creazione, validazione e distribuzione degli applicativi. A quanto ci risulta POWER-KI è il primo linguaggio di programmazione (commerciale) realizzato in Italia, scritto in inglese ma pensato in italiano, esempio di Design Italiano nel Software.

Con POWER-KI abbiamo cercato di seguire la strada del Design, con una rivisitazione profonda degli elementi in gioco, partendo dal concetto di Linguaggio di Programmazione per arrivare al WorkBench (ambiente di sviluppo), al Debug ed alla distribuzione con l’obiettivo di fornire al Programmatore, che da qui in poi chiameremo Designer, lo strumento ideale per realizzare Intelligent Applications (IA). POWER-KI implementa la Software Plastic Architecture (SPA) un paradigma del tutto nuovo che, unitamente al Native Cloud per le GUI (Graphic User Interface), permette di realizzare soluzioni innovative ed in molti casi sorprendenti. Una sintassi semplice ed efficace, un ambiente di sviluppo completo di editor assistito, strumenti di test e debug ed in più strumenti di automazione per generazione del codice come Wiz e Tools. Il tutto con una curva di apprendimento che permette la rapida produzione di applicazioni di qualità. Il Designer ha pochi vincoli, può guardare il tema da sviluppare con i suoi occhi e decidere punto per punto il tipo d’implementazione: per oggetti, liste, funzioni. Le LIBrerie incorporate offrono servizi di immediato uso: gestione dei data base, KnowLedge base per dati non strutturati, protocolli di comunicazione industriali, acquisizione di immagini (OpenCv) e tanto altro. Se poi sorge l’esigenza di integrare tecnologie esistenti non comprese nelxplab - research in automation - brescia - italy

FAST.TRACK-01

9


Testo ©

La Software Plastic Architecture (SPA) è la tecnologia che permette la creazione di software ad evoluzione autonoma. Implementata da POWER-KI è del tutto originale e non trova corrispondenze in altri LDP. Il programma PWK è contenuto in una struttura di alberi ramificati che diventa una Base di Conoscenza (KB - KnowLedge Base) accessibile dal programma stesso durante la sua esecuzione, mediante le funzioni di libreria. PWK supera quindi il tradizionale dualismo dei linguaggi di programmazione, ovvero codice-dati, infatti tutti gli elementi codice, dati, elementi di flusso sono raggiungibili (Reflexivity), modificabili ed anche se ne possono aggiungere di nuovi (Self-Modifying). Il tipo dei dati, che in PWK vengono chiamati ATTRIBUTI, viene definito di volta in volta dal loro contenuto (Type10

FAST.TRACK-01

less), questo semplifica il lavoro del programmatore. Per le comunicazioni con altri sistemi. applicazioni o dispositivi hardware, si utilizzano oggetti come i BUFFER che si fanno carico delle conversioni. Il Multi-Threading, ovvero l’esecuzione in contemporanea di più flussi di codice (THREAD), è presente nelle fondamenta di PWK. Tutti gli elementi e le librerie sono pensati per prevenire operazioni sovrapposte che potrebbero dare luogo ad inconsistenze. Per i casi più articolati esistono funzioni di sincronizzazione esplicita come i semafori (SMF) e le porte (DOOR). Nei comuni linguaggi di programmazione il codice di solito non è modificabile ed è condiviso da tutti i flussi che lo eseguono. In PWK invece, come abbiamo detto, è modificabile ed ha di norma una caratteristica che chiamiamo www.power-ki.com


SOFTWARE PLASTIC ARCHITECTURE (SPA)

Persistenza ovvero: nel momento in cui gli elementi eseguibili (EXO, MTHD) vengono invocati, ne viene creata una coppia ed è questa che viene eseguita. Per fare un esempio, se due THREAD richiedono l’esecuzione di uno stesso metodo (MTHD) ad ognuno ne verrà assegnata una copia che avrà vita indipendente sino alla sua distruzione (automatica) alla fine dell’esecuzione; l’eventuale modifica di una copia durante la sua esecuzione non si rifletterà sull’altra. Con PWK grazie alla SPA è stato possibile realizzare applicazioni come PWK-ISP che consente il debug e la modifica di applicazioni in produzione, elementi di codice come la KB3 che permette la condivisione di knowledge base sul network, e tutta una serie di Tools e Wiz per l’automazione della generazione di applicazioni. xplab - research in automation - brescia - italy

FAST.TRACK-01

11


Native Cloud Le interfacce utente GUI di POWER-KI hanno una caratteristica poco comune sono infatti separate dall’applicativo che le ha generate e le gestisce; è quello che chiamiamo Native Cloud (NC). Questo si traduce nella possibilità di separare anche fisicamente il sistema di visualizzazione, interazione utente, da quello di esecuzione. Dal punto di vista applicativo si possono realizzare programmi installati su Server, raggiungibili via rete locale o internet, con interfacce Client distribuite sui PC degli utenti che hanno lo stesso aspetto e reattività di quelle locali. Un altro ambito è quello dei sistemi embedded, ovvero “incorporati”, che privi di dispositivi di interfaccia in questo modo possono esserne dotati.

gi, infatti l’implementazione è più rapida ed il risultato, non dovendo tener conto delle particolarità dei vari browser, è sempre consistente. Inoltre, poiché la connessione tra Client e Server è persistente e bidirezionale, la reattività è superiore ed essendo le comunicazioni criptate, anche la sicurezza risulta maggiore. Dal punto di vista della progettazione, la tecnologia NC non limita in alcun modo la creatività del Designer anzi offre nuove opportunità e spunti.

I vantaggi dell’architettura Client Server (sotto cui ricade il NC) sono noti: modifichi l’applicazione Server senza doverti preoccupare dei Client, coerenza ed integrità dei dati, backup e ripristino. Negli ambienti industriali la vita dei PC non è facile: polvere, sbalzi di ten Rispetto alle tecnologie web, il NC sione ed altri fattori ne accorciano la vita, di POWER-KI presenta numerosi vantag- e quando questo accade, spesso anche 12

FAST.TRACK-01

www.power-ki.com


la produzione si arresta. Per questi motivi c’è una forte spinta verso soluzioni che siano gestibili dai Data Center aziendali. Per contro lo sviluppo risulta più complesso.

Con NC di POWER-KI e con le soluzioni del suo ecosistema come PWKES Enterprise Server, tutto invece ritorna semplice e sui Client è sufficiente installare la distribuzione PWK_GUI.

xplab - research in automation - brescia - italy

FAST.TRACK-01

13


HABS Heuristic Automatic Bars Store HABS è un esempio molto illuminante di cosa e come sia una IA realizzata con POWER-KI. Si tratta di un software per il Controllo e la Supervisione di un magazzino di billette di ottone destinate alla estrusione di profili che vengono utilizzati come semi lavorato principalmente nella raccorderia e rubinetteria. Il magazzino ha la funzione di stivare in pile verticali le billette (cilindri di ot-

quelle che devono essere tagliate ed inviate all’estrusione. Cinque carri ponte si occupano della movimentazione. L`Hardware è costituto da una serie di PLC Siemens collegati in profinet. Oltre alle problematiche relative al funzionamento in automatico dell’impianto si è dovuto tener conto del fatto che gli Operatori possono effettuare movimentazioni manuali. Ogni billetta ha delle caratteristiche specifiche come lega ed analisi che non sono riconoscibili visivamente, è quindi fondamentale che il sistema sia in grado di tenere traccia di ogni spostamento, indipendentemente dall’agente. Da questa esigenza è nata un’originale architettura software duale ovvero Schema dell’Impianto da un lato un Esecutore euristico individua ed esegue le movimentazioni, dall’altone di 10m di lunghezza e circa 300mm tro un Osservatore indipendente tradudi diametro) provenienti dalla colata, e ce i segnali provenienti dalla sensoristica poi prelevare in base alla richiesta (per in azioni identificate che visualizza nelle lega, per analisi, per dimensione ecc.) interfacce utente e se tali azioni hanno 14

FAST.TRACK-01

www.power-ki.com


Casi Reali comportato lo spostamento di materiale, aggiorna la base dei dati in modo che sia sempre coerente con lo stato dell’impianto. Gli Utenti che utilizzano HABS sono diversi per ubicazione e mansione: • Operatori alla colata: assegnare le caratteristiche delle billette ed avere l’opzione di scegliere manualmente la destinazione di stoccaggio; • Operatori alla stazione di segatura: indicare numero e tipo di billette da prelevare; • il Responsabile d reparto: visionare le giacenze, definire le strategie per le operazioni automatiche; • il Responsabile di laboratorio: effettuare modifiche sui dati; • addetti alla manutenzione: verificare lo stato dell’impianto; • altri Utenti: visionare ed ottenere informazioni e report. Nell’applicazione sono state quin-

di inserite pagine d’interfaccia nelle quali viene data una rappresentazione in tempo reale in 3D dell’impianto che gli utenti possono esplorare e che differiscono per funzionalità a secondo del tipo di utenza/ ubicazione a cui sono destinate. L’Implementazione con la tecnologia Native Cloud ha consentito di installare l’applicazione su un server aziendale ed, in modo diretto o attraverso il PWKES Enterprise Server dell’ecosistema di POWER-KI, distribuire tali interfacce ai vari Utenti. Una delle caratteristiche peculiari di questa applicazione è il ruolo del PLC, infatti di solito ad esso vengono delegati i compiti di controllo e movimentazione dell’impianto ed al PC quelli di semplice interfaccia Uomo/Macchina. Nel caso di HABS le cose sono molto diverse, infatti il PLC esegue in sicurezza operazioni atomiche che vengono schedulate e comandate dal software di Controllo e supervi-

xplab - research in automation - brescia - italy

FAST.TRACK-01

15


sione ovvero HABS. La schedulazione viene fatta sulla base di una simulazione euristica delle varie possibilità che sulla base delle richieste, dello stato dell’impianto e degli impegni delle utenze (carri, stive, vie a rulli) determina la soluzione ottimale. L’Osservatore è stato implementato facendo uso di una particolare struttura dati denominata StackEventi e dalla sua analisi è in grado di comprendere cosa sta avvenendo. HABS è integrato nella struttura informatica dell’azienda, dati e tabelle dell’applicazione aggiornano un Data Base aziendale, viceversa ogni modifica apportata allo stesso (con altri sistemi), viene rilevata ed immediatamente riflessa sulla rappresentazione che ne da HABS.

16

FAST.TRACK-01

www.power-ki.com


Architettura Native Cloud

NOTA. Questo applicativo ha sostituito il precedente realizzato sempre da XPLAB nel 2007 con XPOLYPLUS® (tecnologia XPLAB per SCADA real time). Le ragioni di tale sostituzione sono state la necessità di avere un sistema integrabile in logica 4.0 nell’infrastruttura IT dell’Azienda e quella di fornire l’accesso all’applicativo anche a figure diverse dagli operatori di gestione dell’impianto. La tecnologia XPOLYPLUS pur fornendo

caratteristiche di affidabilità e prestazione che gli anni hanno ampiamente confermato, era però limitata nelle capacità di interconnessione. Con POWER-KI è stato possibile realizzare un’applicazione che ha conservato e magnificato le funzioni già presenti nella versione precedente, ne aggiunge di nuove, estende significativamente le possibilità di connessione ed è aperta a future espansioni del sistema.

xplab - research in automation - brescia - italy

FAST.TRACK-01

17


Installare POWER-KI

Le distribuzioni di POWER-KI sono tre:

na sulla piattaforma GitHub che contiene i link alle più recenti distribuzioni. Una volDEVELOPER edition (DEV) ta scaricata la distribuzione scelta si potrà tutto il necessario per l’esecuzione, lo svi- effettuare l’installazione confermando le luppo, il test ed il debug di applicazioni; varie schermate; EXECUTOR (EXC) per l’esecuzione di applicazioni locali e/o la seconda è dallo Store Microsoft di Windows 11 (cercate “POWER KI”); in questo il collegamento ad applicazioni NC; caso una volta confermata l’installazione GUI Client la app dello store si occuperà del downloClent per il collegamento ad applicazioni ad e dell’installazione. Queste versioni NC. potrebbero non essere le ultime a causa dei tempi richiesti dalle procedure di cerScaricare ed installare POWER-KI è un’o- tificazione. perazione che richiede pochi minuti. Le In entrami i casi il Sistema Operaopzioni a disposizione sono due: tivo richiederà la conferma manuale da la prima consiste nell’accedere al sito parte dell’utente. Tutte le distribuzioni www.POWER-KI.com e da questo, pre- sono firmate digitalmente da “XPLAB sas di C.A.Perani”. mendo il link DOWNLOAD aprire la pagi18

FAST.TRACK-01

www.power-ki.com


Istruzioni

A secondo della distribuzione sul desk-top verranno creati i seguenti link:

xplab - research in automation - brescia - italy

FAST.TRACK-01

19


• Il link al Workbench apre l’ambiente di sviluppo, la prima volta verrà chiesto di ricercare un file licenza. Il file 0000-00-00-00-00.lic per un uso non commerciale è compreso nella distribuzione; • I link “Core Manual” e “Gui Manual” sono relativi a due manuali in formato “.odt” (Open Document Text) che contengono la documentazione relativa alle funzioni delle LIB di sistema ed agli elementi delle GUI; • Il link “ES Local” avvia la ricerca sulla rete locale di connessioni con server PWK-ES Enterprise Server, se ne esiste più di uno all’utente viene data possibilità di scelta, altrimenti, oppure dopo la scelta, viene aperta la pagina di log-in; • Il link “PWK Cloud” permette di connettersi al server cloud di POWER-KI dal quale è possibile accedere ad un serie di servizi (accetta come ID e PSW “guest”); • Il link “Calcolatrice V3” apre il relativo programma. Tutte le installazioni creano sul disco “C:” quattro directory: C:\PWK-PRG per i programmi POWER-KI; nella sotto directory “C:\PWK-PRG\XAPP” le distribuzioni DEV ed EXC copiano applicazioni dimostrative (come la Calcolatrice); C:\PWK-TMP per file temporanei; C:\PWK-EXG per lo scambio di dati (p.e. scaricati dalla GUI), C:\Program Files (x86)\XPLAB\POWER-KI è la directory dove vengono installati gli eseguibili POWER-KI. 20

FAST.TRACK-01

www.power-ki.com


xplab - research in automation - brescia - italy

FAST.TRACK-01

21


1. zona inserimento calcolo; 2. risultato, se lo spazio non è sufficiente viene spostato a lato; 3. storico calcoli e risultati; 4. parametri definiti; 5. salvataggio della formula nella libreria corrente; 6. tasto per pagina selezione librerie; 7. formule della libreria;

Per cominciare : Calcolatrice v3 Calcolatrice V3 (CV3) è una APP POWER-KI compresa nelle distribuzioni DEVELOPER ed EXECUTOR. CV3 ovviamente permette di eseguire calcoli matematici, basta fare click digitare il calcolo e preme invio. Però rispetto alle normali calcolatrici che il sistema operativo vi fornisce, ha una serie di funzionalità che ne estendono di molto le possibilità d’impiego. Nei calcoli potete usare le parentesi; per ogni esecuzione nello storico viene conservata la formula ed il risultato, in modo ritentivo, ovvero alla prossima riapertura del programma, se non li avete espressamente cancellati li ritroverete. Potete creare delle formule parametriche, basta digitare il simbolo § se22

FAST.TRACK-01

APP

guito dal nome del parametro; potete salvare le formule in librerie facilmente trasferibili ad altri utilizzatori. Ma forse la caratteristica più importante è il fatto che CV3 supporta funzioni e librerie di POWER-KI, in pratica questo consente di scrivere dei micro programmi non limitati all’ambito numerico. Nell’esempio che diamo nella pagina accanto, la formula ricerca tutti i files che soddisfano il criterio definito dalla variabile §files(in questo caso tutti quelli della directory corrente che hanno estensione .pwk) ne salva i nomi nel file definito dalla variabile dalla variabile §OutFile (list.txt) e li visualizza nell’output di CV3. www.power-ki.com


Due sono le Lib già comprese: DEFAULT con esempi vari e PWK-01-BASIC che permette, passo dopo passo di avvicinarsi alla programmazione dei CODE POWER-KI. Consigliamo quindi a chi è interessato ad imparare POWER-KI di cominciare

con questi esempi ed utilizzare CV3 come una palestra di programmazione. Inoltre il programma stesso può essere aperto con il WorkBench e studiato in ogni suo aspetto. NOTA. Nell’app è incluso il manuale...

Schematizzati qui sotto i passaggi necessari per caricare le formule da una libreria.

xplab - research in automation - brescia - italy

FAST.TRACK-01

23


ASSEMBLY e Package Le applicazioni POWER-KI posso- • no essere di due tipi: • • • singoli ASSEMBLY (.pka); • • PACKAGE (.pwk). • L’ASSEMBLY è un’unità di codice eseguibile. Se l’applicazione che si vuole realizzare non necessita di un’interfaccia grafica e non sono richieste altre risorse per la sua esecuzione (p.e. utilità di sistema, librerie condivise PWK), allora il singolo ASSEMBLY può essere sufficiente. I PACKAGE sono la soluzione migliore per applicazioni più articolate, infatti possono incorporare la maggior parte o tutte le risorse necessarie al loro funzionamento: 24

FAST.TRACK-01

uno o più ASSEMBLY; gli elementi di interfaccia (GUI, WUI); le risorse (p.e. elementi grafici); eventuali DLL di WRAP; ed ogni altra cosa il programmatore decida. Nei Package viene dichiarato l`ASSEMBLY Main ovvero quello da eseguire al lancio dell`applicazione. Il Package è descritto da un Manifesto che è gestibile da apposite funzioni. Sia gli ASSEMBLY che i PACKAGE possono essere eseguiti da riga di comando ed accettare eventuali parametri d’esecuzione. L’ASSEMBLY, le GUI e le WUI sono delle KnowLedge Base di ITEM (elementi) aventi tipo ed attributi, organizzati come www.power-ki.com


POWER-KI una foresta ognuno dei quali si ramifica in Il WorkBench è l’ambiente di svisotto-ITEM a loro volta con tipo ed attri- luppo che fornisce tutto il necessario per buti. creare e testare ASSEMBLY e Package. L’ASSEMBLY contiene gli ITEM del linguaggio, le GUI e le WUI quelli specifici delle interfacce.

xplab - research in automation - brescia - italy

FAST.TRACK-01

25


Ciao - 01 (ASSEMBLY)

Ciao-01 è un’App costituita da un singolo ASSEMBLY che può essere creata con pochi semplici passaggi: 1. doppio Click sull’icona; 2. accettare i termini della licenza; 3. dal menù premere [EDITOR]; 4. inserire il nome dell’App o se è già stata creata selezionarlo; 5. dalla pagina dell’EDITOR aprire la VAR pwk; 6. dalla pagina della VAR pwk aprire la VAR Executor; 7. assegnare all’attributo CONS_OS “yes” per indicare che deve essere aperta o utilizzata una console del sistema operativo, e ad CONS_OS_PARENT “suspend” per fare in modo che nel caso in cui il programma venga richiamato da riga di comando il controllo della console 26

FAST.TRACK-01

TUTORIAL

venga passato per il tempo della sua esecuzione all’App; 8. aprire l’EXO Main (che viene creato di default) inserire l’attributo nome;inserire il codice indicato in figura; 9. salvare e da una finestra del sistema operativo eseguire l’App. www.power-ki.com


Nel CODE al punto 8 vengono utilizzate due funzioni di sistema stdout per scrivere sulla console e stdinp per attendere un testo inserito dall’utente, che viene parcheggiato nell’attributo nome e poi inserito nella frase di risposta. Il codice restante, se avete fatto gli esercizi con la Calcolatrice dovrebbe esservi chiaro. L’app è disponibile su: https://github.com/POWER-KI/POWER-KI/tree/master/TUTORIAL xplab - research in automation - brescia - italy

FAST.TRACK-01

27


Ciao - 02 (Package)

TUTORIAL

In questo secondo esempio illustriamo Ciao-02 una App in forma di Package. Dal punto di vista operativo non è molto diversa da Ciao-01, infatti come quella, attende che l’utente digiti un testo e lo ritorna inserito in una frase. La differenza è che l’interazione con l’utente in questo caso, avviene mediante una interfaccia grafica.

Partendo dal Menù di PWK (1) con il tasto [Package] (PKG) abbiamo aperto la finestra del sistema operativo (2) ed inserito il nome della App ciao-02.pwk (se già esistente si seleziona ). Inizialmente l’albero del PKG contiene le sezioni: ASSEMBLY, UserInterface, Resources. Abbiamo aggiunto le risorse per la GUI: un click col tasto destro sulla sezione si apre il menù da cui con ADD si acceNOTA. Trattandosi di un esempio dere alla directory PWK-PRG\RES (fornigià confezionato molti dei passaggi de- ta con la distribuzione), da cui sono stati scritti di seguito sono stati riportati per selezionati lo sfondo per la pagina e per il illustrare come si è operato nel realizzare bottone; ad entrambi è stato dato il nome l’applicazione. simbolico da usare negli ITEM IMAGE. 28

FAST.TRACK-01

www.power-ki.com


Su UserInterface, con un click destro, dal menù si è scelta l’opzione NewGui; nel pannello aperto in fondo alla pagina, è stato inserito il nome del file (GMAIN.pki) e quello simbolico (GMAIN); e con la conferma si è passati al GUI editor (4), dove per prima cosa la nuova GUI è stata creata e salvata. All’inizio l’unico elemento presente nell’albero a sinistra era l’ITEM pag di tipo FORM a cui sono stati aggiunte le etichette (LABEL), l’elemento di testo (TEXTBOX), ed il bottone (BUTTON), scelti tra quelli presenti nella colonna centrale. Passando con il tasto [LIVE] alla visualizzazione della pagina (5) i vari ele-

menti sono stati dimensionati, posizionati e sono stati aggiunti i testi al bottone (INVIA) e ad una etichetta (Chi Sei?). Al bottone è stato aggiunto l’ITEM SIGNAL che associa il testo “click” al click del mouse su di esso e che verrà utilizzato nell’ASSEMBLY. NOTA In LIVE non è possibile aggiungere o eliminare ITEM.

xplab - research in automation - brescia - italy

FAST.TRACK-01

29


Nell’ASSEMBLY sono stati inseriti due ITEM: GMAIN di tipo GUI e l’EXO MAIN. Nel momento in cui l’ITEM GUI è stato trascinato dalla colonna centrale nell’albero a sinistra è comparsa una pagina che ha consentito di associarlo alla GUI del package. Nell’ITEM (5) al metodo (MTHD) trig , che viene creato di default, nello SWTCH _SIGNAL_ è stato aggiunto il CASE C_click che intercetta il segnale della GUI e: • assegna alla variabile °n quanto inserito dall’utente nel TEXTBOX name • lo visualizza nella LABEL out preceduto da “CIAO”.

GUI_SND(_PTR_@\GMAIN,£SHOW), dopo di che, cicla ogni 200 millisecondi aspettando che runflg valga 0, quando questo accade e perché accada l’utente deve chiudere la pagina (riga 42), il pro Nel main (6) è stato inseri- gramma termina. to un ITEM WHILE, che nella sezione PRE (eseguita solo all’inizio) assegna In (7) si vede il programma in eseil valore 1 all’attributo runflg ed invia cuzione. alla GUI il comando di visualizzazione 30

FAST.TRACK-01

www.power-ki.com


L’app è disponibile su: https://github.com/POWER-KI/POWER-KI/tree/master/TUTORIAL xplab - research in automation - brescia - italy

FAST.TRACK-01

31


Gestione Magazzino Questa App è un gestore generico di contenitori ed oggetti utilizzabile p.e. per gestire un piccolo magazzino, una libreria, una dispensa ecc.. Realizzata con la tecnologia NC è possibile l’uso locale (1) o da server con interfacce distribuite sulla rete. Dal Menù (2) si accede alle pagine dell’applicativo.

Gestione Contenitori (4) Permette di definire i contenitori e associare ad essi il contenuto, che può essere un oggetto o un altro contenitore.

Definizione Oggetti (3) Ogni Oggetto può essere caratterizzato da 5 Tipi (liberamente definibili). La pagina dispone di filtri per agevolare la ricerca di quanto già inserito.

Documentazione (6) Si possono stampare le etichette da apporre sui contenitori e la lista dei contenuti.

32

FAST.TRACK-01

Ricerca (5) La ricerca degli Oggetti è facilitata dai filtri. Per gli oggetti trovati è possibile incrementare o decrementare le quantità.

www.power-ki.com


DEMO

L’App è liberamente scaricabile da https://github.com/POWER-KI/POWER-KI/ tree/master/DEMO. Con il WorkBench può essere visionata e modificata. Dal punto di vista tecnico è un software interessante non solo perché implementa il NC ma anche perché le informazioni sono memorizzata in un knowledge base KB1. xplab - research in automation - brescia - italy

Scarica il manuale

FAST.TRACK-01

33


Plc Connector I PLC (Programmable Logic Controller) sono dispositivi elettronici che da anni hanno sostituito interruttori e relè nell’impiantistica. Il PLC ha permesso il passaggio da logiche cablate a logiche programmabili e nell’ottica dell’industria 4.0 è sempre più necessaria la loro integrazione con sistemi di livello superiore quali Supervisori (SCADA) e sistemi MES (Manufactory Execution System), per questo motivo sono oramai tutti dotati di connettività di rete.

34

FAST.TRACK-01

SNAP7CONN-01.pwk incluso nelle distribuzioni DEV ed EXC è un software di supporto che permette di connettersi come client ai PLC Siemens S7 ed anche di creare un PLC (server) virtuale. Nella modalità Client si possono creare mappature ritentive di dati da leggere e scrivere. Le aree del PLC accessibili sono: • Data Block (DB non ottimizzati), • ingressi, • uscite, • merker, • contatori, • timer. www.power-ki.com


DEMO

I dati possono essere definiti con i tipi Siemens e quelli numerici visualizzati in decimale, esadecimale o binario. In modalità Server si possono definire i DB che altri Client o PLC potranno leggere. Il contenuto dei DB può essere esaminato come blocco di valori esadecimali o ASCII, singoli valori possono essere rappresentati in base al tipo.

xplab - research in automation - brescia - italy

Scarica il manuale

FAST.TRACK-01

35


Pressa Estrusione Ottone

Magazzino Billette

Pressa Estrusione

Galleria 36

FAST.TRACK-01

www.power-ki.com


Forno Riscaldo

HABS

xplab - research in automation - brescia - italy

FAST.TRACK-01

37


XPLAB è aperta a collaborazioni con Aziende, Software House, Produttori di macchine ed impianti ma anche con Enti di Ricerca, Università, Istituti Tecnici, Licei ed anche con docenti, ricercatori e studenti. Se vorrete proporre un’idea, un progetto, una collaborazione o volete fare uno stage o preparare una tesi di laurea con la collaborazione/ tutoraggio di XPLAB scrivete a:

fast.track@xplab.net altre informazioni:

http://www.xplab.net/UNIVERSITY_IT/UNIVERSITY.html

...

Nel prossimo numero

POWER-KI Elementi di base

La struttura del linguaggio ed i suoi elementi

WorkBench

L’ambiente di sviluppo: editing, test, debug, deploy

Le LIB

Panoramica delle librerie di base

WRAP

La tecnologia che permette di estendere e customizzare POWER-KI

Il mio amico Arduino

Leggere i segnali analogici da un dispositivo Arduino

...

38

FAST.TRACK-01

www.power-ki.com


POWER-KI

Linguaggio di programmazione

Intelligent Applications

Applicazioni studiate per essere efficaci e di facile utilizzo

SPA

Software Plastic Architecture

Architettura implementata da PWK

NC

Native Cloud

Interfacce utente distribuite

PWK IA

Programmatore di applicazioni PWK

Designer GUI

Graphic User Interface

Interfacce Utente grafiche

WUI

Web User Interface

Interfacce create con tecnologie web

HABS

Heuristic Automatic Bars Store

Supervisore euristico (applicazione PWK)

PLC

Programmable Logic Controller

Controllore logico programmabile

Supervisory Control A Data Acquisition

Software di supervisione, controllo ed acquisizione dati

Manufactory Execution System

Software di gestione della Produzione

DB

Data Base

Software di gestione di dati in tabelle

KB

KnowLedge Base

Software di gestione di dati in strutture

LDP

Linguaggio Di Programmazione

POWER-KI, Java, python, basic ecc.

WIZ

Letteralmente “Mago”

APP che automatizzano la generazione del codice

DEV

Developer

Edizione POWER-KI per lo sviluppo/esecuzione delle applicazioni

EXC

Executor

Edizione POWER-KI necessaria per l’esecuzione delle applicazioni.

APP

Applicazione

Software applicativo

SCADA MES

La fotografia di copertina “POWER-KI Jedi” è stata realizzata da CUBEPHOTOPRODUCTION per XPLAB


the programming language for Intelligent Applications

www.power-ki.com

www.xplab.net

2021 © xplab - research in automation - brescia - italy


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.