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.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *