Sei in Home page » Prodotti » Commerciali » Alarm Diffusion protocol » Help on line

Soluzione integrata di telefonia su internet a banda larga.
Cerca su questo sito:  

Vuoi essere aggiornato in tempo reale su tutto quello che mi succede giorno per giorno?
Visita il mio nuovo blog
icon.gif (1222 byte)    

Propagazione di situazioni di pericolo ambientale.

Il Protocollo di comunicazione PC <-> PLC ver 1.0

La seguente specifica riguarda le modalità di protocollo di comunicazione tra il PC Host e il PLC designato alla ricezione delle pressioni sui pulsanti di allarme e alla accenzione delle sirene di allarme.

La comunicazione avviene attraverso la porta seriale delle due apparecchiature con le seguenti specifiche:

Velocità di comunicazione 9600
Numero di bit 8
Controllo Parità N
Bit di Stop 1

La comunicazione tramite tale canale avviene per pacchetti da 7 byte con le seguenti specifiche generali:

Byte n° Descrizione Tipo di carattere
(se generale)
1 Bit di Start del pacchetto @ - chr$(???)
2 Tipo di messaggio [A - B - C - E - F]
3 1° informazione di stato  
4 2° informazione di stato  
5 CHK1 (vedi sotto) [0...F]H
6 CHK2 (vedi sotto) [0...F]H
7 Bit di End del pacchetto * chr$(???)

Analizziamo più in dettaglio i byte del messaggio:

  • Byte 1

    Identifica l'inizio del pacchetto ed è sempre costituito dal carattere "@"

  • Byte 2

    Identifica il tipo di messaggio con la seguente codifica:

    • A

      Messaggio dal PC -> PLC per richiesta di attivazione di segnalazione acustica

    • B

      Messaggio dal PLC -> PC per conferma ricezione messaggio di tipo A

    • C

      Messaggio dal PLC -> PC per segnalazione pressione tasto

    • D

      Messaggio dal PC -> PLC per conferma ricezione messaggio di tipo C

    • E

      Messaggio da PC -> PLC per test della linea e del PLC

    • F

      Messaggio da PLC -> PC per conferma ricezione messaggio di tipo E

  • Byte 3

    Indica la prima informazione di stato contenuta nel pacchetto (vedi sotto)

  • Byte 4

    Indica la seconda informazione di stato contenuta nel pacchetto (vedi sotto)

  • Byte 5,6

    Sono caratteri di CheckSum per verificare che l'informazione contenuta nel pacchetto sia ricevuta corettamente. Vengono cosi calcolati:

    • Viene fatto lo XOR tra il byte 2,3 e 4
    • Il risultato in esadecimale viene convertito in stringa e il risultato viene messo in questi due byte.

    Ricordando che la tabella di verità della funzione logica XOR è la seguente

    A B A XOR B
    0 0 0
    0 1 1
    1 0 1
    1 1 0

    Prendiamo il seguente pacchetto:

    1 2 3 4 5 6 7
    @ A 1 B ? ? *

e vediamo come si calcolano i due caratteri di checksum. Facciamo lo XOR dei caratteri corrispondenti al secondo, terzo e quarto byte

STR Ascii Binario
A 65 0 1 0 0 0 0 0 1
1 49 0 0 1 1 0 0 0 1
A XOR 1 0 1 1 1 0 0 0 0
B 66 0 1 0 0 0 0 1 0
A XOR 1 XOR B 0 0 1 1 0 0 1 0
HEX(A XOR 1 XOR B) 3 2

    Dunque il risultato in esadecimale dello XOR è 32H e dunque pongo il byte n° 5 come "3" (tre stringa) e il n° 6 com "2" (due stringa) e dunque, il pacchetto da inviare risulta essere

 

1 2 3 4 5 6 7
@ A 1 B 3 2 *
  • Byte 7

    Indica la fine del pacchetto ed è sempre costituito dalla stringa "*"

Vediamo ora in dettaglio le possibili comunicazione tra gli apparati.

Richiesta di segnalazione acustica

Messaggio PC -> PLC  (tipo messaggio "A")

Questo messaggio viene inviato dal PC al PLC quando, allo scatenarsi di un evento di preallarme, allarme o fine allarme il PLC deve attivare la segnalazione acustica adeguata. Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ A INFO1 INFO2 CHK1 CHK2 *

con INFO1 che indica il tipo di segnalazione che il PLC deve attivare con la seguente codifica

1 -> PREALLARME
2 -> ALLARME
3 -> CESSATO ALLARME

e con INFO2 che indica la chimica che ha generato l'allarme con la seguente codifica

A -> FLEXSYS
B -> WITCO
C -> STS

Messaggio PLC -> PC  (tipo messaggio "B")

Questo messaggio viene inviato dal PLC al PC per confermare la corretta ricezione di un messaggio di tipo "A" Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ B INT INT CHK1 CHK2 *

con INT  (uguale per ambedue i byte)  con la seguente codifica

0 -> Messaggio correttamente ricevuto
1 -> Errore nella ricezione

Invio segnalazione avvenuta pressione pulsante

Messaggio PLC -> PC  (tipo messaggio "C")

Questo messaggio viene inviato dal PLC al PC quando uno dei pulsanti collegati al PLC viene premuto. Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ C TASTO 0 CHK1 CHK2 *

con TASTO che indica quale dei tasti è stato premuto con la seguente codifica

1 -> TASTO PREALLARME
2 -> TASTO ALLARME
4 -> TASTO CESSATO ALLARME

e con il byte n° 4 disponibile ad usi futuri e impostato per ora sempre a "0"

Messaggio PC -> PLC  (tipo messaggio "D")

Questo messaggio viene inviato dal PC al PLC per confermare la corretta ricezione di un messaggio di tipo "C" Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ D INT INT CHK1 CHK2 *

con INT  (uguale per ambedue i byte)  con la seguente codifica

0 -> Messaggio correttamente ricevuto
1 -> Errore nella ricezione

Test connessione PC < - > PLC attiva

Messaggio PC -> PLC  (tipo messaggio "E")

Questo messaggio viene inviato dal PC al PLC per controllare la presenza della comunicazione tra i due apparati. Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ E 0 0 CHK1 CHK2 *

Messaggio PLC -> PC  (tipo messaggio "F")

Questo messaggio viene inviato dal PC al PLC per confermare la corretta ricezione di un messaggio di tipo "E" Il pacchetto ha la seguente struttura

1 2 3 4 5 6 7
@ F INT INT CHK1 CHK2 *

con INT  (uguale per ambedue i byte)  con la seguente codifica

0 -> Messaggio correttamente ricevuto
1 -> Errore nella ricezione
JavaScript Menu Courtesy of Milonic.com



Commenti
Lascia un commento

Nome e Email sono obbligatori (l'email non verrà mostrato). L'URL è opzionale. I commenti non appariranno subito in quanto sono sottoposti a moderazione.

Sono accettati questi TAG: <A>, <STRONG>, <B>, <EM>

ome
1.giovanni il 2007-07-11 17:16:50 ha scritto:

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

2.Emiliano Bruni il 2007-07-11 23:01:23 ha scritto:

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.

3.giovanni il 2007-07-12 10:21:32 ha scritto:

intendevo la programmazione del plc in ladder (normalmente aperto, normalmente chiuso.... non so se ho reso l'idea)

4.giovanni il 2007-07-12 10:37:06 ha scritto:

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?

5.Emiliano Bruni il 2007-07-12 22:34:40 ha scritto:

Tutta la parte di comunicazione è qui

6.Gian Luca il 2009-11-18 18:28:01 ha scritto:

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.

7.Francesco il 2012-11-10 13:58:09 ha scritto:

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)?

 Copyright© 1997-2006 Emiliano Bruni Online dal 16/08/1998 con visitatori Scrivimi all'indirizzo: