 |
|
Propagazione di situazioni di pericolo ambientale.
Il protocollo ADP ver 1.0
|
Comandi
- Comando: "
- " + Chr$(32) Sintassi: -
<Text>
Indica un messaggio Out Of Protocol (OOP) ossia un messaggio che non fa parte del
protocollo ma che deve venire in qualche modo processato in base all'ultimo comando dato
prima di questo detto anche "start oop message" (SOM). La conclusione del
messaggio OOP viene fornita dal'equivalente comando di end della sequenza detto "end
oop message" (EOM). Un esempio di comando di start-end che delimita i messaggi di OOP
è SETRL - ENDSETRL ; un esempio di reply che delimita dei messaggi di OOP è
il comando MOTD ed ENDMOTD
Reply: 3005
- Comando:
1001 HELO Sintassi: 1001 HELO
Reply: 2001 - 2002 [2003 - 2004] | 3001
È il primo comando che deve essere dato. Nessun altro comando può essere dato se non
viene dato questo, pena l'emissione dell'errore 3002 . Usato anche come ping
per testare il keepalive della linea.
- Comando:
1002 WARN Sintassi: 1002 WARN <id>@<ip>
[<level>] [<descr>]
Reply: 2005 | 3004
Invia un msg di attivazione di preallarme scattato a <id> secondi
dal 1/1/1970 presso l'host con ip <ip> . <level>
indica un livello di preallarme e <descr> una descrizione del tipo di
preallarme
- Comando:
1004 ALARM Sintassi: 1004 ALARM <id>@<ip>
[<level>] [<descr>]
Reply: 2005 | 3004
Invia un msg di attivazione di allarme scattato a <id> secondi dal
1/1/1970 presso l'host con ip <ip> . <level> indica
un livello di allarme e <descr> una descrizione del tipo di allarme
- Comando:
1005 UNALARM Sintassi: 1005 UNALARM <id>@<ip>
Reply: 2005 | 3004
Invia un msg di disattivazione del allarme scattato presso l'host con ip <ip> .
Solo l'host che ha generato l'allarme puo annullare l'allarme
- Comando:
1006 SETRL Sintassi: 1006 SETRL
Reply: 2008 | 3003
Indica che sta per partire un messaggio OOP contenente nuove informazioni da caricare
nella RL. Tale comando può essere inviato solo e soltanto dal Primary Routing List
Server. Altri tentativi dovranno essere rifiutati.
OOP Syntax: - [HEAD|BODY]§FIELD1§FIELD2[§FIELD3][§FIELD4]
- Comando:
1007 ENDSETRL Sintassi: 1007 ENDSETRL
Reply: 2005 | 3004 | 3006
Indica la conclusione del messaggio OOP contenente nuove informazioni da caricare nella
RL.
- Comando:
1008 GETRL Sintassi: 1008 GETRL
Reply: 2006 - 2007 | 3003
Indica la richiesta, da parte di un client, di un messaggio OOP per un refresh della
sua RL.
- Comando:
1009 GETMODE Sintassi: 1009 GETMODE
Reply: 2009 | 2010
Richiesta di invio modalità di settaggio del server se MASTER o SLAVE per il sistema
- Comando:
1999 QUIT Sintassi: 1999 QUIT
Reply: 2999
Risposte
- Reply:
2001 CONNECT Sintassi: 2001 CONNECT
Indica al client che è stata accettata la connessione
- Reply:
2002 WELCOME Sintassi: 2002 WELCOME <ip address del
client>
- Reply:
2003 MOTD Sintassi: 2003 MOTD
Inizia il "Mot of the Day" del server
OOP Syntax: - [<TESTO>]
- Reply:
2004 ENDMOTD Sintassi: 2004 ENDMOTD
Fine del "Mot of the Day" del server
- Reply:
2005 MSGOK Sintassi: 2005 MSGOK
Il messaggio è stato accettato per essere processato
- Reply:
2006 STARTRL Sintassi: 2006 STARTRL
Indica l'inizio di un messaggio OOP contenente una RL
- Reply:
2007 ENDRL Sintassi: 2007 ENDRL
Indica la fine di un messaggio OOP contenente una RL
- Reply:
2008 WAITFORDATA Sintassi: 2008 WAITFORDATA
Indica che si sta attendendo il messaggio OOP preannunciato con il comando di start del
messaggio
- Reply:
2009 MASTERMODE Sintassi: 2009 MASTERMODE
Indica che l'host è configurato come MASTER del sistema
- Reply:
2010 SLAVEMODE Sintassi: 2010 SLAVEMODE [master can be found
at xxx.xxx.xxx.xxx]
Indica che l'host è configurato come SLAVE del sistema e che il MASTER si trova
all'indirizzo specificato
Errori
- Error:
3001 AUTHNO Sintassi: 3001 AUTHNO [<motivo>]
È stato negato l'accesso per il motivo <motivo>. Non implementato in quanto non
c'è nessuna autenticazione. All'atto della connessione del client, il server intercetta
il suo indirizzo IP e setta ciò che il client può fare in base alla RL.
- Error:
3002 SAYHELLO Sintassi: 3002 SAYHELLO
Viene risposto all'invio di ogni Carriage Return se il client non ha ancora
inviato il comando 1001 HELO
- Error:
3003 NOTALLOWED Sintassi: 3003 NOTALLOWED [<motivo>]
Indica che per qualche motivo di autenticazione dell'host remoto, opzionalmente, da
specificare, il messaggio non è stato accettato in quanto il client non aveva i privilegi
per emettere questo messaggio
- Error:
3004 MSGREJECT Sintassi: 3004 MSGREJECT [<motivo>]
Indica che per qualche motivo, opzionalmente, da specificare, il messaggio non è stato
accettato (messaggio già presente nella lista dei messaggi letti, messaggio di fine
(pre)allarme senza che sia arrivato un messaggio di (pre)allame oppure il messaggio di
fine (pre)allarme. non proveniva dallo stesso host che ha lanciato il messaggio di
attivazione del (pre)allarme.
- Error:
3005 UNEXPECTOOP Sintassi: 3005 UNEXPECTOOP
Unexpected Out Of Protocol Data: è stato inviato un messaggio OOP senza che sia stato
dato uno start oop message.
- Error:
3006 ENDWITHOUTSTART Sintassi: 3006 ENDWITHOUTSTART
E' stato dato un comando di end oop message senza che sia mai stato dato il
corrispondente comando di start oop message
- Error:
3007 JUSTLOGIN
Sintassi: 3007 JUSTLOGIN
E' stato dato un ulteriore messagio di HELO quando se ne era dato già uno
in precedenza nella stessa sessione di connessione
- Error:
3008 TIMEOUT Sintassi: 3008 TIMEOUT [Max ... msec for
talking]
Si è rimasti troppo tempo connessi ed il server ha inviato un messaggio di
sconnessione per timout. Opzionalmente viene inviato il messaggio che informa per quanti
millisecondi è possibile rimanere collegati.
- Error:
3996 TOOFEWPAR Sintassi: 3996 TOOFEWPAR
Indica che per il comando inviato sono stati impostati troppi pochi parametri
- Error:
3997 SYNTAXERR Sintassi: 3997 SYNTAXERR
Indica che per il comando inviato i parametri impostati sono errati. Per esempio si
aspettava un numero ed è stata inviata una stringa
- Error:
3998 NOCMD Sintassi: 3998 NOCMD
Il comando inviato non esiste tra i comandi riconosciuti dal protocollo
- Error:
3999 INTERR Sintassi: 3999 INTERR [<motivo>]
Indica che si è verificato un errore interno nella libreria del protocollo come meglio
specificato da <motivo>
Esempio di connessione - C = client - S = Server
<S> 2001 CONNECT
<C> 1001 HELO
<S> 2002 WELCOME 127.0.0.1
<S> 2003 MOTD
<S> - Benvenuti nel server ADP (Protocollo di diffusione di allarmi) Ver. 0.1
<S> - Sei connesso alla linea 1 e sei il 1° utente attivo
<S> - Al momento ho 1 linee attive
<S> 2004 ENDMOTD
<C> 1008 GETRL
<S> 2006 STARTRL
<S> - HEAD§NS§127.0.0.1
<S> - HEAD§HOST§195.32.69.6
<S> - HEAD§SERIAL§3333
<S> - HEAD§REFRESH§3600
<S> - BODY§CONSORZIO§SD§PURINA§0
<S> - BODY§CONSORZIO§RV§PURINA§0
<S> - BODY§STS§SD§CONSORZIO§1
<S> - BODY§195.32.69.18§RS§WITCO§0
<S> 2007 ENDRL
<C> 1009 GETMODE
<S> 2009 MASTERMODE
<C> 1999 QUIT
<S> 2999 DISCONNECT
|
 |
|
 |
sono molto interessato a questo tuo articolo e vorrei avere, se è possibile, maggiori informazioni: il PLC è dell'AllenBradley?
E' possibile avere qualche informazione sugli schemi SFC o sulla programmazione del protocollo in ladder?
Grazie
IL PLC era un Siemens, non ricordo che modello però.
La programmazione non l'ho fatta io, mi sono interessato alla parte di comunicazione via seriale quindi non posso esserti d'aiuto non sapendo neanche cosa sia il protocollo in ladder.
Sorry.
intendevo la programmazione del plc in ladder (normalmente aperto, normalmente chiuso.... non so se ho reso l'idea)
sulla chat IRC non ci sei. Se non è un peso, potresti mandarmi maggiori informazioni via email sulla parte di comunicazione seriale su cui hai lavorato, oppure c'è un altro modo per contattarti?
Tutta la parte di comunicazione è qui
Dato che ti intendi di protocolli di comunicazione sapresti dirmi dove posso trovare informazioni rigurdanti le specifiche di del protocollo executive.
Se fossero dettagliate come la ta descrizione sarei molto contento.
Questo articolo è meraviglioso. Consente facilmente l'ingresso nel mondo della comunicazione PLC-PC fornendo un possibile spunto per iniziare a scrivere client proprietari lato pc.
Ma come descrivere connessioni e parametri fra porte logiche, timer, etc, e il loro stato (es: nc/na)?