Vai al contenuto
PLC Forum


Snap!logo Protocollo Nativo Per Logo Oba7


dan64100

Messaggi consigliati

Ciao,

ho cominciato a dare un'occhiata al protocollo nativo di comunicazione del Logo 0BA7 ed ho scritto una piccola applicazione di test che trovate nel repository:

http://www.plcforum.it/f/files/category/44-dispositivi-di-programmazione-comunicazione-e-cavi/

Il protocollo nativo è quello usato da LOGO!Soft Comfort per gestire il PLC, a differenza di S7Protocol, che prevede solo il trasferimento dell'area V, permette il controllo completo della CPU.

La connessione avviene sulla porta 10001 e non è necessario configurare le connessioni ethernet nel PLC, quindi nemmeno i TSAP, basta conoscere l'indirizzo IP del Logo.

Prima di premere i bottoncini leggete attentamente quanto segue, ci sono altre applicazioni con protocollo nativo tipo LOGO!App della Siemens ma non permettono lo stesso livello di controllo, quindi come diceva lo zio dell'uomo ragno: da un grande potere derivano grandi responsabilità, ovvero, non sono affatto sicuro di cosa succede andando a sovrascrivere aree di memoria "recondite". :o

Le idee che mi sono fatto analizzando il protocollo e le classi di gestione di Soft Comfort (e aspetto le vostre) sono:

S7 Protocol è un protocollo nativo per la serie 300/400 ... ma queste CPU hanno un firmware molto sofisticato ed un controllo capillare sul protocollo : non esiste accesso diretto alla memoria, anche la scrittura delle aree di sistema passa attraverso le DB e viene validata. Ogni blocco programma passa dalla memoria di caricamento e viene controllato dal firmware prima di essere linkato.

Il Logo è poco più di un microprocessore con RAM e ROM, Logo Comfort scrive il programma direttamente nella memoria della CPU, il firmware è minimale, e allo stesso modo tutti i settaggi non avvengono chiamando funzioni di sistema ma andando direttamente a modificare la memoria.

Non conosco assolutamente la mappa di memoria del Logo, alcune aree sembrano R/W altre di sola lettura. Esistono due modi per accedere alla memoria (perchè credo che ne esistano due tipi diversi) tramite lettura/scrittura a bocchi e tramite lettura/scrittura di "internal bytes", mettendo gli stessi indirizzi danno risultati diversi.

Se vi divertite ad esplorarla troverete praticamente tutto : i LOG la diagnostica la SD card, il display ecc..

Le letture/scritture a blocchi, le scritture degli internal bytes e tutte le altre operazioni di sistema possono essere fatti solo con la CPU in stop, la lettura degli internal bytes può essere fatta anche con la CPU in run.

La lettura delle risorse "di automazione" (immagine degli ingressi, uscite, analogica, flags, ecc..) viene fatta con un telegramma dedicato (fortunatamente) e lo trovate nella prima pagina dell'APP insieme alla lettura del firmware e dell'hardware ID.

Nella seconda pagina trovate il controllo della CPU run/stop ecc.

Infine nella terza pagina c'è l'accesso completo alla memoria.

Non è dato di sapere il PDU size (max quantità di dati da scambiare in un telegramma) per i trasferimenti a blocchi, sembra che accetti tutto. Io sono stato conservativo ed ho usato quelli di Comfort: 512 bytes in lettura e 48 in scrittura, ovviamente voi potete trasferire quanto volete, lo "spezzettamento" viene fatto internamente dalla libreria ;).

A volte vedrete il sistema bloccarsi per qualche decondo : è normale :(, capita anche con Logo Comfort, il protocollo prevede 3 ritrasmissioni in caso di "disinteresse" da parte della CPU, come struttura è derivato da quello RS232, c'è ancora qualche calcolo di checksum sparso in giro. Comunque stò ancora analizzando il tutto.

Rimane qualche telegramma di sistema da implementare, lo farò col tempo....

Fatemi sapere ;)

Davide

post-875-0-78104000-1400861679_thumb.jpg

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti


Ciao Davide .

Non ho un interesse particolare a questo argomento (al momento) ma sto seguendo con interesse il tuo splendido lavoro (Snap7) e la professionalità e competenza che metti a disposizione di tutti.

Posso solo dirti ..... grazie ! :clap:

bigalex :blink:

Link al commento
Condividi su altri siti

Giuseppe Signorella

Anche io mi complimento con l'eccellente lavoro svolto, (impeccabile come al solito) e per averlo condiviso con noi.

Tempo permettendo in questa settimana farò qualche test.

N.B. Davide, ti ho inviato un M.P. Ma forse hai la casella satura di messaggi.

Ciao

Link al commento
Condividi su altri siti

Ciao Davide,

ho cominciato a seguire con attenzione i tuoi sviluppi al protocollo nativo di comunicazione del Logo 0BA7

e mi accodo agli altri con piacere nel rigraziarti per la tua passione e per la tua disponibiltà alla condivisione

delle tue scoperte.

grazie

saluti

massimo

Link al commento
Condividi su altri siti

  • 1 year later...
  • 11 months later...

Discussione ferma da quasi un anno, inoltre è vietato accodarsi per evitare confusione nelle risposte. Se vuoi apri una nuova discussione.

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...