La prima Transazione SAP MII

In questo articolo vi spiegherò come creare la nostra prima Transazione in SAP MII 15.1 utilizzando il Workbench.

Il primo passo da fare e scaricare il Workbench accedendo al menu amministrativo di SAP MII ci loggeremo quindi sul portale
http://SERVER_MII_HOST_NAME:50000/XMII/

Andremo quindi nel menu Content Development e selezioneremo Workbench per scaricare il file eseguibile per accedere appunto al Workbench di SAP MII, normalmente sarà necessario cambiarne l’estenzione in*.jnlp

Possiamo quindi eseguire il Workbench e loggarci.

Una volta aperto possiamo andare nel Tab Catalog e successivamente creare una nuova transazione dal menu File => New =>Transaction

Apparirà un nuovo tab con il nome “Untitled” con al suo interno un Sequence Box.

Selezioniamo il Sequence Box e andiamo nel tab Actions in basso a sinistra, scegliamo ad esempio Logging => Tracer e facciamo doppio click, la action scelta sarà inserita nel Sequence Box selezionato.

Clickando con il tasto destro del mouse sulla action entreremo nel suo menu, e possiamo selezionare Properties. Da qui sarà possibile dare un nome e una descrizione alla singola action.

Ora possiamo andare dentro Configure Object, per il Tracer potremo quindi definire il messaggio da visualizzare.

Click su OK per confermare, nel caso dovessimo configurare qualche proprietà più specifica possiamo andare dentro Configure Links

Per un Tracer abbiamo le proprietà Message e Level come in Configure Object, ma la differenza è che nei Link possiamo utilizzare espressioni, funzioni e altri dati disponibili per valorizzare le nostre proprietà.

A questo punto abbiamo la nostra prima Transazione pronta per essere testata, ovviamente la Transazione attuale logga solo un messaggio nella console, quindi è necessario inserire nuovi Sequence box con nuove Actions per avere una Transazione completa e funzionante.

In ogni caso la Transazione è pronta all’uso quindi possiamo testarla eseguendola tramite il menu Transaction => Execute.

Ed ecco che a fine esecuzione SAP MII ci mostra il log dell’esecuzione stessa con al suo interno il nostro messaggio di prova loggato dal Tracer che abbiamo creato.

Ora non ti resta che esplorare tutte le possibili Actions da usare per creare le tue Transazioni in SAP MII!

Ah ricordati di Salvare!

Segnali ModBus con SAP PCo verso SAP MII

Il Modbus è un protocollo di comunicazione seriale creato nel 1979 usato per mettere in comunicazione i PLC (Programmable Logic Controller). Standard nella comunicazione di tipo industriale, è uno dei protocolli di connessione più diffusi al mondo fra i dispositivi elettronici industriali.

Durante lo sviluppo di un sistema MES Custom ho avuto necessità apprendere come mettere in comunicazione lo shop floor con i sistemi informatici a livello più alto, dovendo quindi interfacciare sistemi di campo, quali dispositivi ModBus, verso il sistema di integrazione ad alto livello SAP MII (SAP Manufacturing Integration and Intelligence).

Tali dispositivi sono stati utilizzati per ricevere determinati segnali dal campo some sensori di vario tipo o al contrario per comandare azioni o allarmi in generale.

Per mettere in comunicazione un dispositivo ModBus con SAP MII è stato usato come standart SAP PCo (Plant Connectivity). Questo modulo permette infatti di collegare alcuni sistemi Sorgente ( ad esempio ModBus) ad alcuni sistemi Destinazione (ad esempio SA MII) esponendo di fatto un windows service che ne gestisce la connessione e la comunicazione tra i due.

La prima cosa da fare è quindi configurare i due sistemi!

La Sorgente ModBus avrà bisogno di alcune informazioni base per la connessione e per configurare i tag da gestire.

Sarà quindi necessario configurare nel tab “ModBus Agent” l’indirizzo IP del dispositivo (host) e la porta sulla quale connettersi (default 502) per una connessione via TCP, il Response timeout (200ms di default) ed il Minimum Update Rate (20ms di default). Nel tab “Tag Definition” saranno configurati i tag, per ognuno di questi andrà definito un nome univoco, il tipo (es boolean per i segnali), l’indirizzo ModBus e l’update rate che di default è 1000 ms.
L’update rate del singolo tag sarà valido se maggiore del Minimum Update Rate definito nel tab “ModBus Agent”.

A questo punto possiamo configurare il Sistema Destinazione.
Solitamente ne utilizzo almeno due:
– Simulation Destination System: per testare la connessione in caso di notifica
– MII Destination System: come sistema reale di destinazione.

Simulation Destination System
La configurazione è decisamente semplice, basta infatti inserire il path dove vogliamo che i file di test XML siano salvati.

MII Destination System
Per configurare questa destinazione abbiamo bisogno di conoscere il server MII (IPAddress o hostName), la porta del XMII (50000 di default), la versione di MII e avere un’utenza valida. Da qui sarà possibile tramite apposito bottone, testare la connessione appena configurata.

Una volta configurati sorgente e destinazione, possiamo creare il nostro primo agente Modbus.
Per crearlo bisognerà selezionarne la sorgente creata in precedenza ed assegnargli un nome.

A questo punto il nostro agente è già creato e pronto ad essere utilizzato, saremo infatti in grado di vedere questo agente nella lista dei windows services.

Per andare a leggere i nostri tag e soprattutto per catturare eventi di variazioni sui nostri tag, dovremo andare nel tab “Subscription Item” ed appunto sottoscrivere il nostro tag da monitorare, spuntando la casella “only changes”. In questo modo PCo pur leggendo a cadenza regolare il singolo tag, effettuerà l’azione richiesta solo quando determina una variazione del valore del tag stesso.

Quindi per poter comunicare questa variazione al nostro sistema di destinazione, creeremo una notifica all’interno del nostro agente e nel tab “Output” creeremo il messaggio che vogliamo ricevere, ovviamente può essere importante o fondamentale aggiungere in tale messaggio il valore del tag sottoscritto.

Andando nel tab “Destinations” aggiungeremo la nostra destinazione dove vogliamo che il messaggio sia inviato, qui possiamo scegliare più destinazioni contemporaneamente a seconda delle esigenze.
Nel caso di “Simulation Destination System” quando la notifica viene triggerata, un file XML sarà generato, nel caso invece di “MII Destination System” dovremo navigare all’interno del nostro Catalog e selezionare quale transazione vogliamo che venga eseguita, tale transazione sarà quindi eseguita da PCo passando in input il messaggio configurato, sempre sotto forma di XML.

Questo un esempio di messaggio generato:

<?xml version="1.0" encoding="UTF-8"?>
<NotificationMessage>
   <Header>
      <Name>Test</Name>
      <Description><![CDATA[Test]]></Description>
      <Destination>test</Destination>
      <CreatedDate>2019-04-07T14:45:13</CreatedDate>
      <ID>2a24f595-b18d-4164-9abe-0bb19b47a254</ID>
      <Status>Delivered</Status>
   </Header>
   <Body>
      <Values>
         <value type="xsd:string" quality="Good" timeStamp="2019-04-07T14:45:13.7119393Z"><![CDATA[Value-1]]></value>
      </Values>
   </Body>
   <Faults />
</NotificationMessage>

Abbiamo visto come è possibile configurare in pochi passi una comunicazione tra un device ModBus presente sul campo e un sistema destinazione come SAP MII semplicemente configurando un servizio esposto e gestito da SAP PCo.
Ovviamente SAP PCo può gestire altri tipi di sistemi Sorgente e Destinazione da scegliere a seconda dei casi di utilizzo.

Angular e le variabili environments

Lavori ad un progetto Angular e vorresti usare ambienti diversi senza dover cambiare sempre tutto?

In questo articolo vedremo a cosa servono e come usare le variabili di ambiente.

Quando crei un progetto Angular, vengono generati almeno due file nella folder src/environments:

  1. environment.ts
  2. environment.prod.ts.

export const environment = {
production: false
}

Questi due file sono generati perché si ipotizza di lavorare sempre “almeno” su due ambienti: sviluppo e produzione.

Alle volte, invece, dovrai lavorare su più ambienti quindi ti basterà creare nuovi files nella stessa folder come environment.xxx.ts dove xxx sarà il nuovo ambiente.

Questi file essenzialmente espongono un oggetto json dove potrai mappare tutto ciò che vuoi abbia valori diversi per ambienti diversi, come ad esempio degli url per chiamate a servizi o altro.

Ma come usiamo queste variabili nei nostri components Angular?

Ipotizziao di aver mappato un url da bindare un anchor tag.

Utilizzando app.component.ts prima di tutto importeremo l’oggetto environment dal file src/environments/environment.ts

import { environment } from ‘../environments/environment’;

Ora environment sarà visibile nel nostro app.component e potremo usarne il contenuto come segue

export class AppComponent {
public envVar= environment.production;
countructor (){
}
}

Il file senza l’ambiente nel nome è naturalmente quello di default. Questo verrà usato dalla nostra applicazione quando la eseguiremo con il comando npm start o con ng serve –open.

Quando invece andremo a buildare il nostro progetto con il comando ng build, potremo specificare quale ambiente stiamo compilando.

ng build –prod

Automaticamente il file giusto sarà preso in considerazione, minificato e, incluso nel progetto pronto per il deploy.

Angular Component

Sei agli inizi con Angular e non è ancora chiaro cosa sia un Component?

Perfetto, sei sull’articolo giusto per capire cosa è un Component, come crearlo e a cosa serve in una applicazione Angular!

Prima di iniziare a scrivere codice, capiamo cosa è un Component Angular:

Un Component Angular è sostanzialmente costituito da 3 parti:

  • Template che corrisponde alla view in HTML5
  • Class scritta in typescript con i suoi dati e metodi
  • Metadata informazioni che fanno capire ad Angular che si parla di un component e non una banale classe, per fare ciò si usa il Decorator
    @Component
    sopra la classe.

Partiamo dal progetto base, per crearlo puoi seguire questo articolo.

Andiamo a vedere come è formato il Component principale cioè app.component.ts:

Possiamo subito vedere la class AppComponent composta da una unica proprietà che è title con valore iniziale my-app.

A questa classe abbiamo alcuni Metadata all’interno del Decorator @Component questo fa capire ad Angular che non parliamo di una normale class ma bensì di un Component.

All’interno del Decorator abbiamo alcuni metadata:

  • selector: selettore dove il template sarà renderizzato (nell’index.html file troveremo <app-root></app-root>)
  • templateUrl: path del file html dove recuperare il template
  • styleUrls: array di path dove recuperare i fogli di stile

Ma vediamo come creare un nuovo component con la Angular CLI, semplicemente aprendo il terminale e spostandoci nella cartella dove vogliamo generarlo possiamo utilizzare il comando:

ng g c test

dove g sta per generate, c per component e test è semplicemente il nome che vogliamo dare al nostro nuovo Component.

La cartella test verrà creata dalla Angular CLI, con al suo interno quattro files:

  • test.component.html: il template (di default <p>test works!</p>)
  • test.component.scss: il foglio di stile
  • test.component.ts: il typescript con al suo interno la classe
  • test.component.spec.ts: lo spec che al momento non ci interessa e possiamo anche cancellarlo

Automaticamente anche il file app.module.ts è stato aggiornato includendo questo nuovo component nell’array Declaration.

Andremo quindi a modificare il template di app.component e cioè: app.component.html in modo da aggiungere il selettore del nostro test.component che sarà app-test

A questo punto spostandoci dal terminale nella root e lanciando l’applicazione con il comando:

ng serve –open

potremo verificare che il nuovo component è funzionante e correttamente visualizzato all’interno dell’applicazione!

Il primo progetto Angular

Vuoi iniziare a sviluppare in Angular e non sai da dove iniziare?

Sei nel posto giusto !

In questo articolo ti spiegherò come impostare il tuo primo progetto Angular!

Angular 2+ o semplicemente Angular è un Framework Javascript open source, sviluppato da Google, attualmente alla versione 7.

I requisiti per sviluppare in Angular sono installare node.js  versione 8.x o 10.x. e avere npm package manager.

Il primo passo per iniziare è installare globalmente la Angular CLI sul nostro pc, semplicemente eseguendo questo comando su terminale:

npm install -g @angular/cli

A questo punto siamo pronti per generare il nostro primo progetto, sempre da terminale spostiamoci sulla folder dove vogliamo creare il nostro workspace e poi eseguiamo il comando di creazione:

C:\>cd workspace
C:\workspace> ng new my-app

Verrà creato il progetto dentro workspace\my-app, la cui struttura è quella base. Durante la creazione due informazioni saranno richieste:

1. Se vogliamo usare il routing

2. Che tipo di CSS vogliamo usare (io solitamente uso Sass)

A questo punto possiamo spostarci nella folder my-app ed eseguire il comando serve per avviare il server fornito da Angular CLI per eseguire in locale la nostra applicazione:

C:\workspace> cd my-app
C:\workspace\my-app> ng serve –open

Ci si presenta quindi la nostra prima applicazione Angular!

A questo punto siamo pronti a personalizzare la nostra applicazione e nei prossimi articoli vi spiegherò come fare!