Sei sulla pagina 1di 28

CMZ software

Protocollo PROFIBUS-DP
Doc. MS040006
Ed.01 - Italiano - 3 febbraio 2000
Protocollo PRUFIBUS-DP

IMPORTANTE

La CMZ Sistemi Elettronici si riserva il diritto di apportare modifiche ai prodotti descritti in questo
manuale in qualsiasi momento e senza preavviso.

Il presente manuale è stato preparato da CMZ Sistemi Elettronici esclusivamente per l'uso da parte
dei propri clienti garantendo che esso costituisce, alla data di edizione, la documentazione più
aggiornata relativa ai prodotti.

È inteso che l'uso del manuale avviene da parte dell'utente sotto la propria responsabilità e che
l'utilizzo di certe funzioni descritte in questo manuale, deve essere fatto con la dovuta cautela in
modo da evitare pericolo per il personale e danneggiamenti alle macchine.

Nessuna ulteriore garanzia viene pertanto prestata da CMZ Sistemi Elettronici, in particolare per
eventuali imperfezioni, incompletezze e/o difficoltà operative.

2 Doc. MS040006 - Ed.01 - 3 febbraio 2000


SOMMARIO

SOMMARIO

SOMMARIO................................................................................................................................. 3

SCOPO DEL MANUALE ............................................................................................................ 4

INTRODUZIONE......................................................................................................................... 5

CAPITOLO 1. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN FORTH...................... 6


1.1 COMANDI FORTH.................................................................................................................. 6
1.2 ESEMPIO DI GESTIONE IN FORTH ....................................................................................10
CAPITOLO 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL .........................13
2.1 CONFIGURAZIONE DEL PROFIBUS-DP.............................................................................13
2.2 FUNZIONI AWL.....................................................................................................................16
2.3 BLOCCO FUNZIONALE #PROFIBUS ..................................................................................20
2.4 DATA SYSTEM......................................................................................................................21
2.5 ESEMPIO DI GESTIONE IN AWL ........................................................................................22
CAPITOLO 3. TEST DEL PROTOCOLLO PROFIBUS-DP ...................................................24

CAPITOLO 4. COMPILAZIONE DEL PROTOCOLLO PROFIBUS-DP ..............................26


4.1 INSTALLAZIONE CON MAKEPRJ.......................................................................................26
4.2 INSTALLAZIONE SENZA MAKEPRJ...................................................................................27
4.3 INFORMAZIONI SUL MODULO PROFIBUS-DP: FILE GSD..............................................27
BIBLIOGRAFIA .........................................................................................................................28

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 3


Protocollo PRUFIBUS-DP

SCOPO DEL MANUALE

In questo manuale viene descritto l’utilizzo del pacchetto software di comunicazione Profibus-DP
che permette lo scambio dati tra uno o più sistemi CMZ CTN330 e altri dispositivi che prevedono
questo protocollo.

Il software per la gestione del Profibus-DP non è residente nel sistema operativo del sistema CMZ e
viene consegnato sul dischetto allegato a questo manuale.
Il software deve essere installato su PC e quindi compilato nel sistema con le procedure descritte in
[1] e riportate nel capitolo 4.

ATTENZIONE
Questo manuale descrive il software per la gestione del protocollo PROFIBUS-DP ver. 1.00. Per
conoscere la revisione del PROFIBUS-DP consultare il file LEGGIMI.TXT presente nel disco di
distribuzione PROFIBUS-DP PROTOCOL.
Successive revisioni del software saranno aggiornate, se necessario, con un documento integrativo o
con una nuova edizione del manuale. Le informazioni riportate in questo manuale possono essere
parzialmente corrette per versioni precedenti del software.

IMPORTANTE: Deve sempre essere consultato il file LEGGIMI.TXT per verificare, oltre alla
versione del pacchetto software, anche la compatibilità del software con i vari sistemi. In ogni caso
l’ufficio software CMZ è a disposizione per chiarimenti.

4 Doc. MS040006 - Ed.01 - 3 febbraio 2000


INTRODUZIONE

INTRODUZIONE

Profibus-DP è un bus di campo normalmente usato nell'automazione industriale per il trasferimento


veloce di dati tra sistemi di controllo assi, dispositivi per l’interfaccia operatore, unità ingressi e
uscite ed altri dispositivi industriali.

Il mezzo di comunicazione per questo tipo di rete è un cavo schermato con una coppia di conduttori
twistati. La velocità di comunicazione per il bus va da 9.6 Kbaud fino a un massimo 12 Mbaud.
La rete Profibus-DP può collegare fino a 126 nodi e consente di scambiare 244 bytes di output e 244
bytes di input con ogni modulo.

La soluzione Profibus-DP, adottata dalla CMZ nel sistema CTN330, si basa su un modulo di
commercio che implementa tale funzionamento. Il CTN330 è un nodo slave della rete Profibus-DP
ed è gestito dal master di rete come un dispositivo di I/O digitali (massimo 244 + 244 bytes). Per
quanto riguarda il riconoscimento del modulo da parte del master, l’utente dovrà far riferimento al
file GSD che contiene le informazioni necessarie secondo lo standard Profibus-DP. Tale file è
distribuito da CMZ con questa libreria.

La CPU del CTN330 gestisce il modulo di comunicazione tramite un memoria di tipo DPRAM su
cui è mappata l’immagine degli I/O del master. L’accesso a questa memoria avviene per mezzo di
una sequenza di handshake. È stato quindi implementato un funzionamento ad interrupt e l’utente
può accedere all'area immagine utilizzando delle particolari routine. La procedura di accesso alla
DPRAM può essere avviata su comando dell’utente oppure dal servizio di RTC ad intervalli di
tempo programmabile.
Nel software di gestione l’utente può avviare, fermare e configurare la gestione del modulo e
sorvegliare l’attività della rete. Per comodità è stata implementata una procedura di trasferimento
delle aree del modulo (DPRAM) in aree dell’utente e viceversa. Le aree utente devono essere
definite dal programma applicativo.
La libreria SW che ci apprestiamo a documentare tratterà tutti i comandi necessari per implementare
e gestire la rete.

Lo scambio di informazioni tra i sistemi CTN330 ed il master (un qualsiasi dispositivo che segue lo
standard Profibus-DP) avviene tramite l’immagine degli I/O digitali. Se le informazioni da scambiare
con il master non sono rappresentabili con lo stato di questi segnali digitali, ma sono ad esempio dei
pacchetti di byte, l’utente deve prevedere una trasmissione dei dati in modo consistente (opzione
prevista nella configurazione del dispositivo master) cioè in modo che la trasmissione/ricezione del
pacchetto dati tra master e slave avvenga in modo continuato e non suddiviso in più trasmissioni di
pacchetti di dimensioni inferiori a quelle del pacchetto consistente.
La lunghezza massima del pacchetto consistente è limitata (ad esempio 32 bytes); se la trasmissione
prevede pacchetti di dimensioni maggiori, l'utente deve implementare un handshake con il master.

ATTENZIONE
Da ora in poi quando faremo riferimento ad I/O digitali intenderemo sempre gli I/O del master di
rete.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 5


Protocollo PRUFIBUS-DP

capitolo 1. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN FORTH

1.1 COMANDI FORTH

In questo capitolo verranno elencate e spiegate le parole Forth che servono alla gestione del
protocollo Profibus-DP.
Per la comprensione di questo capitolo è necessaria la conoscenza del linguaggio Forth (vedi [2]).

SET_PBUS

Permette di configurare il software di gestione.

Sintassi: InpTime OutTime Mode IrqLev InpBytes OutBytes NodeAddr HWType --- Error
Argomenti: Vedi sotto
Vedi anche:

• InpTime: è il tempo di scansione in millisecondi dell’area ingressi quando la gestione


dell’aggiornamento avviene su RTC (mode=1). Se il valore è 0 la scansione dell’area ingressi non
avviene.

• OutTime: è il tempo di scansione in millisecondi dell’area uscite quando la gestione


dell’aggiornamento avviene su RTC (mode=1). Se il valore è 0 la scansione dell’area uscite non
avviene.

• Mode: modalità di gestione della scansione delle aree I/O:


0=Riservato
1=Su RTC
2=Su comando dell’utente.

• IrqLev: indica il livello di priorità dell’interrupt generato dal modulo Profibus-DP, consente di
assegnare priorità diverse alla gestione dell’accesso alle aree. Valori consentiti sono: 1 2 3 5.

• InpBytes: numero di bytes di ingresso al master. Il numero deve coincidere con quanto dichiarato
nel master altrimenti la procedura di configurazione fallisce. I valori ammessi sono da 0 a 244.

• OutBytes: numero di bytes di uscita dal master. Il numero deve coincidere con quanto dichiarato
nel master altrimenti la procedura di configurazione fallisce. I valori ammessi sono da 0 a 244.

• NodeAddr: è l’indirizzo del sistema nella rete. Se impostato a 0 l’indirizzo viene letto dagli
switch rotativi del modulo (vedi [5]), altrimenti se impostato diverso da 0 viene considerato come
indirizzo del modulo (in quest'ultimo caso gli switch rotativi del modulo devono essere impostati
al valore 0). Gli indirizzo possibili sono da 1 a 126.

6 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 1. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN FORTH

• HWType: è il tipo di modulo da gestire, attualmente è ammesso solo il tipo 2 che indica il
modulo HMS ANYBUS-S PDP.

• Error: è l’eventuale codice d’errore della procedura di configurazione, la lista dei codici d’errore
è la seguente:

Codice Significato
0 Nessun errore.
1 Tipo di modulo PROFIBUS-DP non disponibile.
2 Indirizzo del nodo non ammesso.
3 Numero di bytes di input non ammesso.
4 Numero di bytes di output non ammesso.
5 Livello di interrupt non ammesso.
6 Modalità di gestione non ammessa.
7 Tempo di aggiornamento area uscite non ammesso.
8 Tempo di aggiornamento area ingressi non ammesso.

IMPORTANTE
Il comando SET_PBUS deve essere dato prima di avviare il protocollo con il comando GO_PBUS.

GO_PBUS

Inizializza il modulo di gestione della rete e avvia la gestione su CTN330.

Sintassi: --- Error


Argomenti: Vedi sotto
Vedi anche: STP_PBUS

• Error: è l’eventuale codice d’errore della procedura di configurazione, la lista dei codici d’errore
è la seguente:

Codice Significato
0 Nessun errore.
1 Time out nella procedura di invio delle mailbox.
2 Errore di configurazione.
3 Modulo di gestione della rete assente.
4 Interrupt iniziale non intercettato.
5 Errore sul test hardware del modulo.
6 Errore sul test bytes della DPRAM del modulo.
7 Errore sul test move della DPRAM del modulo.

ERR_PBUS

Lettura delle informazioni messa a disposizione dal modulo in caso di errore di configurazione.

Sintassi: --- MesInf ExtInf


Argomenti: Vedi sotto
Vedi anche:

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 7


Protocollo PRUFIBUS-DP

• MesInf: è il contenuto del registro “Message Information” del modulo. Per l’interpretazione del
contenuto di questo registro contattare la CMZ.

• ExtInf: è il contenuto del registro “Extended Fault Information” del modulo. Per l’interpretazione
del contenuto di questo registro contattare la CMZ.

STP_PBUS

Permette di fermare la gestione dell’accesso alle aree di memoria con l’immagine degli ingressi e
uscite del master.

Sintassi: ---
Argomenti:
Vedi anche: GO_MBUS

LINK_PBUS

Permette di agganciare le routine utente per la lettura/scrittura delle aree di memoria con lo stato
degli ingressi e delle uscite.

Sintassi: Addr Nvet ---


Argomenti: Vedi sotto
Vedi anche:

• Addr: è l’indirizzo della routine utente che deve essere scritta in assembler e non deve alterare
alcun registro della CPU.

• Nvet: è l’identificatore del vettore da caricare:

0=Vettore per l’accesso all’area degli ingressi


1=Vettore per l’accesso all’area delle uscite

NOTA
Gli indirizzi di memoria sono indicati dalle seguenti costanti:
AddrInpPBUS = Indirizzo di memoria dell’area ingressi.
AddrOutPBUS = Indirizzo di memoria dell’area uscite.

BUFFER_PBUS

Permette di definire le aree utente su cui trasferire l’immagine degli ingressi e delle uscite del modulo
di comunicazione.

Sintassi: Addr Lenght Area --- Error


Argomenti: Vedi sotto
Vedi anche:

8 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 1. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN FORTH

• Addr: è l’indirizzo dell’area di memoria utente.

• Lenght: è la dimensione in bytes dell’area utente, non deve superare la lunghezza del blocco dati
trasmessi/ricevuti dal modulo sulle rete. Se impostato a 0 il trasferimento automatico dell’area
viene disabilitato.

• Area: identifica l’area del modulo a cui si riferiscono le precedenti informazioni:


0 = Area degli ingressi.
1 = Area delle uscite.

• Error: è l’eventuale codice d’errore, la lista dei codici d’errore è la seguente:

Codice Significato
0 Nessun errore.
1 Numero di blocco errato.
2 Lunghezza non ammessa.

?FBON_PBUS

Permette di controllare se la rete è attiva.

Sintassi: --- Flag


Argomenti: Vedi sotto
Vedi anche:

• Flag=1 rete attiva


Flag=0 rete non attiva

FBDG_PBUS

Restituisce lo stato del segnale di diagnostica della rete (led lampeggiante del modulo).

Sintassi: --- Error


Argomenti: Vedi sotto
Vedi anche:

• Error: è l’eventuale codice d’errore nella rete, la lista dei codici d’errore è la seguente:

Codice Significato
0 Nessun errore.
1 Led lampeggiante con frequenza 1 Hz.
Errore nella fase di configurazione.
2 Led lampeggiante con frequenza 2 Hz.
Errore nei parametri utente.
4 Led lampeggiante con frequenza 4 Hz.
Errore nella fase di inizializzazione.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 9


Protocollo PRUFIBUS-DP

?ACCREQ_PBUS

Testa se è consentito l’invio di un comando di richiesta accesso alle aree. Questo comando è
utilizzabile quando la modalità di gestione selezionata è quella utente (Mode=2).

Sintassi: --- Flag


Argomenti: Vedi sotto
Vedi anche:

• Flag: flag che indica se il comando di richiesta d’accesso alle aree è inviabile.
0=Accesso non consentito
1=Accesso consentito.

ACCREQ_PBUS

Comando che avvia la sequenza di handshake per l’accesso alle aree di memoria con l’immagine
degli ingressi e uscite. Questo comando è utilizzabile quando la modalità di gestione selezionata è
quella utente (Mode=2).

Sintassi: MskAcc --- Flag


Argomenti: Vedi sotto
Vedi anche:

• MskAcc indica la modalità e a quali aree si intende accedere, secondo la seguente


corrispondenza:

Bit Significato
0 Richiede l’accesso alla area di rete e ai control register
1 Richiede l’accesso all’area delle uscite dal master
2 Richiede l’accesso all’area degli ingressi del master.
3 Indica la modalità di accesso “locked” ovvero che i dati vengono letti/scritti nella
DPRAM garantendone la consistenza

• Flag=1 richiesta di accesso inviata.


Flag=0 richiesta di accesso non inviata, ripetere il comando dopo nuovo consenso dal comando
?ACCREQ_PBUS.

NOTA
La richiesta di accesso alle aree di input e output possono essere simultanee.

1.2 ESEMPIO DI GESTIONE IN FORTH

Supponiamo di voler connettere in sistema CTN330 in una rete Profibus-DP con indirizzo impostato
negli switch rotativi del modulo e di voler scambiare 32 bytes di ingressi e uscite con il dispositivo
master della rete. La gestione deve prevedere un aggiornamento delle aree ogni 10 millisecondi
gestita dal servizio di RTC con l’aggiornamento delle aree utente automatico.

10 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 1. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN FORTH

Innanzitutto si dovranno definire l’area di memoria utente in cui depositare lo stato delle uscite lette
dalla DPRAM del modulo e l’area di memoria utente da cui leggere lo stato degli ingressi per il
master da trasferire nella DPRAM del modulo:

File: Esempio.pdp

32 RAM AreaInp ( Area dati utente da inviare al master


32 RAM AreaOut ( Area dati utente da ricevere dal master

Si dovrà quindi, al reset totale, configurare il software di gestione:

File: Esempio.pdp
: RESETT
RESETT
( Configurazione della gestione
10 10 1 1 32 32 0 0 SET_PBUS
IF
.” ERROR IN PROFIBUS-DP” ABORT ( Errore di configurazione
THEN

( Definizione delle aree utente per aggiornamento automatico


AreaInp 32 0 BUFFER_PBUS
IF
.” DEFINITIONS ERROR IN PROFIBUS-DP” ABORT
THEN

AreaOut 32 1 BUFFER_PBUS
IF
.” DEFINITIONS ERROR IN PROFIBUS-DP” ABORT
THEN
;

Nel task delle emergenze si dovrà gestire il segnale di fielbus ON/OFF in modo da segnalare
l’impossibilità di scambiare dati con il master:

File: Esempio.pdp

( Gestione delle emergenze


: EMERGENZE

...

?FBON_PBUS 0=
IF
( Allarme )
ELSE
( Rete attiva e scambio dati possibile )
THEN

...
;

Infine il task di avvio, oltre alla gestione dei reset come spiegato in [2] e dell’avvio di altre
applicazioni, dovrà prevedere l’avvio della gestione Profibus-DP.
Doc. MS040006 - Ed. 01 - 3 febbraio 2000 11
Protocollo PRUFIBUS-DP

File: xxxxxx.xxx

: TASK
...
...

GO_PBUS IF .” ERROR IN PROFIBUS-DP” ABORT THEN


;

Nel caso in cui l’utente ha l’esigenza di definire delle routine per l’accesso alla DPRAM del modulo
deve seguire il seguente esempio:

File: Esempio.pdp

( Routine di lettura delle uscite del master


CALL RdMstOut
MOVEM .L a0 \ a1 \ d0 –(a7) ; ( Salva registri usati
LEA .L & AreaOut a0 ; ( Area da scrivere
LEA .L & AddrOutPBUS a1 ; ( Area da leggere
MOVE .W # 32 1- d0 ; ( Numero di byte – 1
0 MARK:
MOVE .B (a1)+ (a0)+ ; ( Copia un byte
DBF .W d0 0 MARK ; ( Loop per il numero di bytes
MOVEM .L (a7)+ a0 \ a1 \ d0 ; ( Ripristina i registri usati
RTS ;
END-CODE

( Routine di scrittura degli ingressi del master


CALL RdMstInp
MOVEM .L a0 \ a1 \ d0 –(a7) ; ( Salva registri usati
LEA .L & AreaInp a0 ; ( Area da leggere
LEA .L & AddrInpPBUS a1 ; ( Area da scrivere
MOVE .W # 32 1- d0 ; ( Numero di byte – 1
0 MARK:
MOVE .B (a0)+ (a1)+ ; ( Copia un byte
DBF .W d0 0 MARK ; ( Loop per il numero di bytes
MOVEM .L (a7)+ a0 \ a1 \ d0 ; ( Ripristina i registri usati
RTS ;
END-CODE

A questo punto il task di avvio sarà del tipo:

File: xxxxxx.xxx

: TASK
...
...

RdMstInp 0 LINK_PBUS ( Avvio routine scrittura ingressi


RdMstOut 1 LINK_PBUS ( Avvio routine lettura uscite

GO_PBUS IF .” ERROR IN PROFIBUS-DP” ABORT THEN


;
12 Doc. MS040006 - Ed.01 - 3 febbraio 2000
capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

In questo capitolo verranno elencate e spiegate le funzioni AWL che servono alla gestione del
modulo di comunicazione Profibus-DP.
Per la comprensione di questo capitolo è necessaria la conoscenza del linguaggio AWL (vedi [3]).

IMPORTANTE
Per l’uso di alcune funzioni AWL è consigliata l’installazione del pacchetto AWLUTI (vedi [4]).

2.1 CONFIGURAZIONE DEL PROFIBUS-DP

La configurazione del Profibus-DP in AWL avviene all’interno del blocco #DEFPLC utilizzando
alcuni parametri di configurazione descritti di seguito. Questi parametri vanno ad aggiungersi a quelli
già riconosciuti (DATA; MERKER; ecc.).

PROFIBUS

Apre la definizione del protocollo di comunicazione. Altre parametrizzazioni del protocollo di


comunicazione dovranno essere inserite tra questo comando ed ENDPBUS. La definizione del
protocollo Profibus-DP deve essere fatta dopo la configurazione base del PLC (INPUT, OUTPUT,
MERKER, DATA ecc.).

HWTYPE HWType

Definisce il tipo di interfaccia hardware utilizzata per la comunicazione. Per il momento si riconosce
solamente un tipo di hardware.

Parametri HWType

• HWType: È una stringa che identifica il tipo di interfaccia hardware utilizzata, unico modello
riconosciuto è il seguente: HMS ANYBUS-S PDP

INPUT InpBytes

Indica il numero di bytes di ingresso al master. Sono ammessi tutti i numeri da 0 a 244, questa
dichiarazione deve coincidere con quella fatta nel dispositivo master.

Parametri InpBytes

• InpBytes: Numero di bytes in ingresso al master.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 13


Protocollo PRUFIBUS-DP

OUTPUT OutBytes

Indica il numero di bytes di uscita dal master. Sono ammessi tutti i numeri da 0 a 244, questa
dichiarazione deve coincidere con quella fatta nel dispositivo master.

Parametri OutBytes

• OutBytes: Numero di bytes di uscita dal master.

MODE Mode [ InpTime OutTime ]

Parametrizza la modalità di gestione dell’accesso alla DPRAM del modulo di comunicazione. I


parametri InpTime e OutTime sono opzionali, se non vengono specificati assumono i valori di
default.

Parametri Mode InpTime OutTime

• Mode: indica la modalità di gestione dell’accesso alla DPRAM:


0=Riservata
1=Su RTC
2=Su comando dell’utente.

• InpTime: è il tempo di aggiornamento dell’area ingressi del master. È un parametro opzionale; il


valore di default è 10 msec.

• OutTime: è il tempo di aggiornamento dell’area uscite del master. È un parametro opzionale; il


valore di default è 10 msec.

ADDRPBUS NodeAddr

Assegna l’indirizzo del nodo nella rete. Questo comando può essere omesso, ma se presente e con
indirizzo diverso da 0 è necessario che gli switch rotativi del modulo siano impostati a 0.

Parametri NodeAddr

• NodeAddr: Indirizzo del nodo nella rete. I valori ammessi vanno da 1 a 126.

IRQLEV IrqLev

Permette di fissare il livello di priorità con cui viene gestito l’interrupt generato dal modulo di
comunicazione e di conseguenza stabilire la priorità con cui viene eseguito il blocco AWL
#PROFIBUS e la procedura di aggiornamento automatico delle aree di memoria. Questo comando
può essere omesso e di conseguenza viene considerato il valore di default.

Parametri IrqLev

14 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

• IrqLev: indica il livello di priorità dell’interrupt i valori ammessi sono: 1 2 3 5. Il valore di default
è 1.

BUFFERPBUS Area Address [ Lenght ]

Definisce le aree utente per il trasferimento automatico delle memorie di ingressi/uscite del modulo.
Questo comando è opzionale, se omesso il trasferimento delle aree di memoria automatico è
disabilitato.

Parametri Area Address Lenght

• Area: indica l’area a cui si riferiscono le successive informazioni, i valori possibili sono i seguenti:
0 – Area ingressi.
1 – Area uscite.

• Address: Indica l’indirizza sorgente/destinazione dell’area di memoria utente, i modi per indicare
l’indirizzo sono i seguenti:

Dbn Identifica un’area di data byte del PLC, n è l’indice della prima locazione dell’area.
Mbn Identifica un’area di merker byte del PLC, n è l’indice della prima locazione dell’area..
Ebn Identifica un’area con l’immagine degli ingressi del PLC, n è l’indice della prima locazione
dell’area.
Abn Identifica un’area con l’immagine delle uscite del PLC, n è l’indice della prima locazione
dell’area.
Kzn Esprime l’indirizzo di memoria con un numero (n) decimale
KHn Esprime l’indirizzo di memoria con un numero (n) esadecimale
“Variabile_Forth” Tra apici si racchiude una stringa ASCII che in linguaggio Forth rappresenta un indirizzo di
memoria

• Lenght: Indica la lunghezza dell’area di memoria utente, il parametro è opzionale, se omesso la


lunghezza viene calcolata automaticamente come la minima tra quella disponibile (se aree del
PLC) e quella dichiarata con i comandi INPUT/OUTPUT. Le modalità di sintassi sono le
seguenti:

Kzn Esprime l’indirizzo di memoria con un numero (n) decimale


KHn Esprime l’indirizzo di memoria con un numero (n) esadecimale
“Variabile_Forth” Tra apici si racchiude una stringa ASCII che in linguaggio Forth rappresenta un indirizzo di
memoria

ENDPBUS

Chiude il blocco di configurazione del Profibus-DP.

Parametri

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 15


Protocollo PRUFIBUS-DP

GOPBUS

Avvia la gestione del modulo di comunicazione Profibus-DP. È consigliato mettere questo comando
verso la fine del blocco #DEFPLC quando tutte le configurazioni (anche di altri pacchetti) sono state
eseguite.

Parametri

STPPBUS

Non avvia la gestione del modulo di comunicazione Profibus-DP, in questo caso viene solo
configurato. È consigliato mettere questo parametro verso la fine del blocco #DEFPLC quando tutte
le configurazioni (anche di altri pacchetti) sono state eseguite.

Parametri

2.2 FUNZIONI AWL

go_pbus

Configura il modulo di comunicazione attivando la sua presenza nella rete e avvia la gestione
dell’accesso alla DPRAM per la lettura/scrittura delle aree output/input. Le funzioni go_pbus e
stp_pbus vanno usate se esiste la necessità di fermare e riavviare la comunicazione run time,
altrimenti possono essere omesse ed usare il solo GOPBUS all’interno del #DEFPLC, in questo caso
la comunicazione viene avviata all’accensione e non viene più fermata.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Codice di errore
ACC2: Contenuto precedente di ACC1
Vedi anche: stp_pbus err_pbus set_pbus

Il codice di errore può assumere i seguenti valori:

Codice Significato
0 Nessun errore.
1 Time out nella procedura di invio delle mailbox.
2 Errore di configurazione.
3 Modulo di gestione della rete assente.
4 Interrupt iniziale non intercettato.
5 Errore sul test hardware del modulo.
6 Errore sul test bytes della DPRAM del modulo.
7 Errore sul test move della DPRAM del modulo.

16 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

stp_pbus

Ferma la gestione dell’accesso alle aree della DPRAM del modulo mantenendo attiva la
comunicazione del modulo con il master. Le funzioni go_pbus e stp_pbus vanno usate se esiste la
necessità di fermare e riavviare la comunicazione run time, altrimenti possono essere omesse ed usare
il solo GOPBUS all’interno del #DEFPLC, in questo caso la comunicazione viene avviata
all’accensione e non viene più fermata.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Inalterato
ACC2: Inalterato
Vedi anche: go_pbus err_pbus set_pbus

err_pbus

Lettura delle informazioni messa a disposizione dal modulo in caso di errore di configurazione.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Contenuto del registro “Extended Fault Information” del modulo. Per
l’interpretazione del contenuto di questo registro contattare la
CMZ.
ACC2: Contenuto del registro “Message Information” del modulo. Per
l’interpretazione del contenuto di questo registro contattare la CMZ.
Vedi anche: go_pbus stp_pbus set_pbus

set_pbus

Permette di configurare il software di gestione. In ACC1 deve essere caricato l’indirizzo della tabella
dei parametri così organizzata:

Offset Dimensione Significato


0 4 byte HWType: è il tipo di modulo da gestire, per il momento è ammesso solo il tipo 2 che
indica il modulo HMS ANYBUS-S PDP.
4 4 byte NodeAddr: è l’indirizzo del modulo nella rete. Se impostato a 0 l’indirizzo viene letto
dagli switch rotativi del modulo, altrimento se impostato diverso da 0 viene considerato
come indirizzo del modulo ma negli switch rotativi del modulo deve essere impostato il
valore 0. Gli indirizzo possibili sono da 1 a 126.
8 4 byte OutBytes: numero di bytes di uscita dal master. Il numero deve coincidere con quanto
dichiarato nel master altrimenti la procedura di configurazione fallisce. I valori ammessi
sono da 0 a 244.
12 4 byte InpBytes: numero di bytes di ingresso al master. Il numero deve coincidere con quanto
dichiarato nel master altrimenti la procedura di configurazione fallisce. I valori ammessi
sono da 0 a 244.
16 4 byte IrqLev: indica il livello di priorità dell’interrupt generato dal modulo Profibus-DP,

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 17


Protocollo PRUFIBUS-DP

consente di assegnare priorità diverse alla gestione dell’accesso alle aree. Valori
consentiti sono: 1 2 3 5.
20 4 byte Mode: modalità di gestione della scansione delle aree ingressi/uscite: 0=Riservato 1=Su
RTC 2=Su comando dell’utente.
24 4 byte OutTime: è il tempo di scansione in millisecondi dell’area uscite se la gestione
dell’aggiornamento avviene su RTC. Se il valore è 0 la scansione dell’area uscite non
avviene.
28 4 byte InpTime: è il tempo di scansione in millisecondi dell’area ingressi se la gestione
dell’aggiornamento avviene su RTC. Se il valore è 0 la scansione dell’area ingressi non
avviene.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: indirizzo tabella parametri
ACC2: Ininfluente
Parametri restituiti ACC1: Codice di errore
ACC2: Contenuto precedente e di ACC1
Vedi anche: go_pbus stp_pbus errt_pbus

Il codice di errore può assumere i seguenti significati:

Codice Significato
0 Nessun errore.
1 Tipo di modulo Profibus-DP non supportato.
2 Indirizzo del nodo non ammesso.
3 Numero di bytes di input non ammesso.
4 Numero di bytes di output non ammesso.
5 Livello di interrupt non ammesso.
6 Modalità di gestione non ammessa.
7 Tempo di aggiornamento area uscite non ammesso.
8 Tempo di aggiornamento area ingressi non ammesso.

IMPORTANTE
Il comando set_pbus deve essere dato prima di avviare il protocollo con il comando go_pbus.

fbdg_pbus

Restituisce in ACC1 lo stato del segnale di diagnostica della rete (led lampeggiante del modulo ).

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Codice di errore.
ACC2: Contenuto precedente di ACC1
Vedi anche: ?fbon_pbus

Il codice di errore della rete può assumere i seguenti valori con relativi significati:

18 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

Codice Significato
0 Nessun errore.
1 Led lampeggiante con frequenza 1 Hz.
Errore nella fase di configurazione.
2 Led lampeggiante con frequenza 2 Hz.
Errore nei parametri utente.
4 Led lampeggiante con frequenza 4 Hz.
Errore nella fase di inizializzazione.

?fbon_pbus

Permette di controllare se la rete è attiva.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modalità di chiamata: U UN O ON
Modifica RLC: SI
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Inalterato
ACC2: Inalterato
Vedi anche: fbdg_pbus

?accreq_pbus

Permette di controllare se è possibile inoltrare una richiesta di accesso alla memoria del modulo.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modalità di chiamata: U UN O ON
Modifica RLC: SI
Parametri richiesti ACC1: Ininfluente
ACC2: Ininfluente
Parametri restituiti ACC1: Inalterato
ACC2: Inalterato
Vedi anche: accreq_pbus

accreq_pbus

Invia una richiesta di accesso alla memoria del modulo, in seguito alla richiesta verrà eseguito
l’aggiornamento delle aree utente, se definite, o verrà eseguita la routine utente se prevista.

Classe di appartenenza: Libreria protocollo PROFIBUS-DP


Modifica RLC: NO
Parametri richiesti ACC1: Modalità di accesso
ACC2: Ininfluente
Parametri restituiti ACC1: Inalterato
ACC2: Inalterato
Vedi anche: ?accreq_pbus

La modalità di accesso viene indicata con una maschera di bits con il seguente significato:

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 19


Protocollo PRUFIBUS-DP

Bit Significato
0 Richiesta di accesso all'area di rete e control register. Al momento non è consentito all’utente l’accesso
a questa area.
1 Richiesta di accesso all’area di output.
2 Richiesta di accesso all’area di input.
3 Richiesta di accesso con modalità “LOCKED”. Consente l’aggiornamento dei dati al modulo e dal
modulo in modalità consistente.

NOTA
Le richieste di accesso alle aree di input e output possono essere simultanee.

2.3 BLOCCO FUNZIONALE #PROFIBUS

La libreria AWL mette a disposizione il blocco funzionale #PROFIBUS che consente di definire una
sequenza AWL eseguita quando il modulo di gestione del Profibus-DP consente l’accesso alle aree di
input/output.

#PROFIBUS

Identifica l’inizio del sottoprogramma AWL che consente di definire una sequenza eseguita quando il
modulo consente l’accesso alle aree di input/output. È possibile definire un solo blocco
#PROFIBUS.

Esempio:
L’utente desidera programmare il blocco per l’interpretazione dei dati da trasferire. Vengono
trasferiti in aree diverse a seconda del valore del primo byte di output.
#PROFIBUS

L DSPBUS0 * Lettura della causa di esecuzione = INPUT


L KZ1
=F
IF
LA DB100 * Area utente per input del master
L DSPBUS20 * Area input della DPRAM del modulo
MVT KZ32 * Move di 32 bytes
ENDIF

L DSPBUS0 * Lettura della causa di esecuzione = OUTPUT


L KZ2
=F
IF
L DSPBUS21 * Area output della DPRAM del modulo
LAB * Carica contenuto del primo byte (AWLUTI)
CASE
OF 0
L DSPBUS21 * Area output della DPRAM del modulo
L KZ1
+F
LA DB200
MVT KZ31
ENDOF
OF 1
L DSPBUS21 * Area output della DPRAM del modulo
20 Doc. MS040006 - Ed.01 - 3 febbraio 2000
capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

L KZ1
+F
LA DB300
MVT KZ31
ENDOF
ENDCASE
ENDIF

BE

NOTA
L’istruzione LAB è disponibile solo se è stata compilata la libreria AWLUTI.

2.4 DATA SYSTEM

La libreria per la gestione del Profibus-DP da AWL introduce un nuovo tipo di DATA SYSTEM
(DSPBUS) mediante la quale è possibile accedere alle variabili di configurazione del protocollo.

... DSPBUS x

Identifica alcuni parametri della gestione Profinbus-DP, il numero (x) è un indice il cui significato
viene riportato nella tabella seguente.

Indice Accesso Descrizione


0 R/W Causa di esecuzione del blocco #PROFIBUS:
1 = Accesso area INPUT.
2 = Accesso area OUTPUT.
1÷9 R/W Non utilizzate.
10 R/W Numero di byte in input.
11 R/W Numero di byte in output.
12 R/W Indirizzo del nodo.
13 R/W Livello dell’interupt.
14 R/W Modalità di gestione dell’aggiornamento.
15 R/W Tempo di aggiornamento area input.
16 R/W Tempo di aggiornamento area output.
17÷19 Non utilizzate.
20 R/W Address DPRAM modulo area input.
21 R/W Address DPRAM modulo area output.
22÷24 Non utilizzate.
25 R/W Vettore utente per routine di accesso area input.
26 R/W Vettore utente per routine di accesso area output.
27÷29 Non utilizzate.
30 R/W Dimensione area input utente.
31 R/W Dimensione area output utente.
32÷34 Non utilizzate.
35 R/W Indirizzo area input utente.
36 R/W Indirizzo area output utente.
37÷39 Non utilizzate.
40 R/W Codice di fault in fase di configurazione.
41 R/W Memoria dello step di configurazione.
42 R/W Tabella informazioni sul modulo.
43 R/W Flag di richiesta di stop aggiornamento aree.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 21


Protocollo PRUFIBUS-DP

44 R/W Diagnostica di rete.


45 R/W Monitor del tempo reale di aggiornamento area input.
46 R/W Monitor del tempo reale di aggiornamento area output.

Istruzioni ammesse: L T
Test operando: Non Ammesso

Esempio:
Si vuole cambiare il tempo di aggiornamento area input da 10 a 20 msec.

L KZ20
T DSPBUS15

IMPORTANTE
Quasi tutte le data system riguardano la configurazione della gestione del Profibus-DP. È quindi
consigliabile non modificare run-time il valore di queste data-system. Nel caso si renda necessaria
una riconfigurazione è necessario fermare la gestione (stp_pbus), eseguire il cambio dei parametri
attraverso le data system e riavviare il la gestione (go_pbus).

2.5 ESEMPIO DI GESTIONE IN AWL

Supponiamo di voler connettere il sistema CMZ in una rete Profibus-DP e scambiare dati con un
dispositivo master per mezzo di 32 byte di input e 64 byte di output, con modalità di gestione
dell’accesso alla aree su RTC ogni 5 msec, configurando la gestione automatica del trasferimento
delle aree utente (DB100= area input e DB200=area output):

Inanzitutto si dovrà configurare il protocollo e programmarne l’avvio.

File: profibus.awl
#DEFPLC
( Configurazioni base del PLC
DATA 1000
. . .
( Configurazione della gestione Profibus-DP
PROFIBUS
HWTYPE HMS ANYBUS-S PDP * Definizione del tipo di hardware
INPUT 32 * Dimensione dell’area di input
OUTPUT 64 * Dimensione dell’area di output
MODE 1 5 5 * Modalità di gestione su RTC e tempi 5 msec
BUFFERPBUS 0 DB100 32 * Definizione area input per trasferimento
* automatico
BUFFERPBUS 1 DB200 64 * Definizione area output per trasferimento
* automatico
ENDPBUS
. . .
( Programmazione dell’avvio della gestione Profibus-DP
GOPBUS
BE

Ora nel sistema va gestito il segnale di rete attivo in modo da rilevare se il dispositivo è in grado di
comunicare:

22 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 2. GESTIONE DEL PROTOCOLLO PROFIBUS-DP IN AWL

File: profibus.awl
#USER 10 * Gestione allarmi
. . .

UN ?fbon_pbus
S M100.0

. . .
BE

Quindi si dovrà dal blocco #MAIN chiamare la #USER 10 per la gestione degli allarmi.

File: profibus.awl

#MAIN
...
JSR 10
...
BE

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 23


Protocollo PRUFIBUS-DP

capitolo 3. TEST DEL PROTOCOLLO PROFIBUS-DP

Il pacchetto SW del Profibus-DP mette a disposizione un programma per testare il modulo di


comunicazione e l’attività della rete.
L’avvio del test viene fatto con la parola TST_PBUS da interprete Forth.

TST_PBUS

Avvia il test della rete

Sintassi: ---
Argomenti:
Vedi anche:

ATTENZIONE
L’avvio del programma di test deve essere fatto con tutti i task fermi (<Ctrl>+<Shift>+<Esc> e
<Esc>).

Il programma di test è composto da una sola pagina suddivisa in tre sezioni.


La prima sezione è dedicata alla visualizzazione e modifica da parte dell’utente dei dati di
configurazione della gestione, posizionando il cursore con l’ausilio dei tasti UP e DOWN e con i tasti
PAGEUP e PAGEDOWN è possibile modificare i parametri. Dopo l’attivazione della gestione (tasto
funzione F1 che avvia e ferma la gestione) è possibile vedere i dati caratteristici del modulo come:

• Module bootloader version


• Module serial number
• Vendor ID
• Fieldbus type
• Module software version

Durante la fase di avvio della gestione è possibile rilevare eventuali errori nella configurazione del
modulo ed in seguito vedere lo stato della rete (ON/OFF) con relativi codici di errore.
Nell’ultimo campo in basso sono visibili delle informazioni sull’efficienza della gestione, ovvero i
tempi di aggiornamento delle aree del modulo misurati e l’efficienza di una procedura di handshake
di dati con il master, questo però implica che nel master sia implementata una gestione strutturata
come segue:

1. Lo slave fa l’eco del primo e ultimo byte delle aree scambiate quindi il master può misurare il
tempo necessario allo slave per interpretare e rispondere ad un comando.
2. Il master deve fare l’eco del secondo e penultimo byte delle aree scambiate in modo che lo slave
possa misurare l’efficienza del master nell’interpretare e rispondere ad un comando.

24 Doc. MS040006 - Ed.01 - 3 febbraio 2000


capitolo 3. TEST DEL PROTOCOLLO PROFIBUS-DP

3. Lo slave trasmette nella locazione con offset 2 e dimensione double (4 byte) un valore
incrementato ogni millisecondo in modo che il master possa avere una informazione sulla
frequenza delle comunicazioni.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 25


Protocollo PRUFIBUS-DP

capitolo 4. COMPILAZIONE DEL PROTOCOLLO PROFIBUS-DP

4.1 INSTALLAZIONE CON MAKEPRJ

Per usare la libreria del protocollo Profibus-DP si deve innanzitutto installarla nella directory delle
librerie. Per fare questo inserire il disco ‘PROFIBUS-DP PROTOCOLL’ nel drive, lanciare il
programma INSTALL da questo drive e seguire le indicazioni.
Dopo questa operazione nella directory delle librerie ci sarà una nuova sottodirectory:

C:\CMZ ( Programmi base )


(
(( LIB ( Directory delle librerie )
( (
( (( PROTOCOL.COM ( Libreria protocolli di comunicazione )
( ( (
( ( (( PROFIBUS ( Protocollo PROFIBUS )
( ( (( ... ( Altre librerie protocolli di comunicazione )
( (( ... ( Altre librerie ad esempio PLC, ASSI )
... ( Altro software CMZ )

Ora quando si userà il programma MAKEPRJ per iniziare un nuovo lavoro ci sarà una nuova sezione
‘PROTOCOLLO DI COMUNICAZIONE PROFIBUS-DP’ con due possibili selezioni.
PROTOCOLLO DI COMUNICAZIONE PROFIBUS-DP
[ ] Protocollo PROFIBUS-DP: nucleo base
[ ] Protocollo PROFIBUS-DP: programma di test
[ ] Protocollo PROFIBUS-DP: gestione AWL

Protocollo PROFIBUS-DP: nucleo base È il nucleo principale.


Protocollo PROFIBUS-DP: programma di test È un programma che permette di testare la configurazione
del modulo di comunicazione e la rete Profibus-DP.
Protocollo PROFIBUS-DP: gestione AWL Selezionare se il programma è in AWL altrimenti il
programma dovrà essere scritto in Forth.

NOTA
Per la gestione del protocollo PROFIBUS-DP da AWL è consigliata l’installazione del pacchetto AWLUTI.

Ad esempio selezionando il nucleo base, il programma di test e la gestione AWL, la directory del
lavoro sarà:

C:\PROJECT ( Directory del lavoro )


(
(( LIB ( Librerie )
( (
( (( PROTOCOL.COM ( Librerie protocolli di comunicazione )
( ( (
( ( pbus_u.drv ( Protocollo PROFIBUS-DP: nucleo base )
( ( pbus_t.drv ( Protocollo PROFIBUS-DP: programma di test )
( ( hms1003.gsd ( File GSD fornito dal costruttore del modulo )
( ( hms1003R.gsd ( File GSD fornito da CMZ con consistenza dati )
(
( (( PLC ( Librerie PLC )
26 Doc. MS040006 - Ed.01 - 3 febbraio 2000
capitolo 4. COMPILAZIONE DEL PROTOCOLLO PROFIBUS-DP

( ( (
( ( awlpbus.plc ( Protocollo PROFIBUS-DP: gestione AWL)
( (( ... ( Altre librerie )
... ( File propri del lavoro )

4.2 INSTALLAZIONE SENZA MAKEPRJ

Se si desidera compilare il protocollo PROFIBUS-DP senza utilizzare il programma makeprj.exe è


necessario inserire nella lista di compilazione del proprio programma applicativo i file
PBUS_U.DRV, PBUS_T.DRV e AWLPBUS.PLC.

... ( Altri file


... ( Altri file
PBUS_U.DRV ( Protocollo di comunicazione PROFIBUS-DP: Nucleo base
PBUS_T.DRV ( Protocollo di comunicazione PROFIBUS-DP: Programma di test
AWLPBUS.PLC ( Protocollo di comunicazione PROFIBUS-DP: Gestione AWL
... ( Altri file
... ( Altri file

NOTA
Si ricorda che per la gestione AWL del protocollo è consigliata l’installazione del pacchetto AWLUTI.

NOTA
Il file PBUS_T.DRV può essere omesso se non si desidera utilizzare il programma di test.

4.3 INFORMAZIONI SUL MODULO PROFIBUS-DP: FILE GSD

Ad ogni dispositivo che si connette ad una rete Profibus-DP è associato un file GSD che contiene
tutte le informazioni per la gestione da parte del master dello stesso. Questo file è utilizzato dal
programma di configurazione della rete durante la fase di inizializzazione.
Il file dovrà essere riconosciuto dell’ambiente utilizzato per lo sviluppo del progetto sul master (si
rimanda alla documentazione del dispositivo master).
La CMZ comunque distribuisce il file GSD e viene memorizzato come file di libreria anche se di fatto
non viene utilizzato, ma ciò consente di archiviare il file assieme al progetto dello slave in modo da
renderlo comunque reperibile anche in caso di revisioni del file stesso.
Il file viene distribuito in due versioni, la prima “hms1003.gsd” è la versione originale distribuita dal
costruttore del modulo e certificata dagli organi competenti, mentre la seconda versione
“hms1003r.gsd” include una modifica od opera CMZ per consentire la gestione della consistenza dei
dati nel master.

Doc. MS040006 - Ed. 01 - 3 febbraio 2000 27


Protocollo PRUFIBUS-DP

BIBLIOGRAFIA

[1] CMZ SOFTWARE - Nozioni Base


[2] CMZ SOFTWARE - Forth base
[3] CMZ SOFTWARE - Manuale PLC ver. 3.11
[4] CMZ SOFTWARE - Manuale AWLUTI
[5] CMZ HARDWARE - CTN330 - Espansioni

28 Doc. MS040006 - Ed.01 - 3 febbraio 2000