samumcr Inserito: 20 luglio 2005 Segnala Inserito: 20 luglio 2005 buongiorno,vorrei realizzare una comunicazione seriale 485 tra un PLC VIPA system 100 (CPU 115 SER) e un motore passo passo Icla IFS, motore con elettronica integrata. Solitamente usavo una comunicazione profibus, ma per l'applicazione in questione non sono accettabili i costi per questo tipo di comunicazione.Qualcuno ha già usato il PLC in questione per un'applicazione del genere? Mi è chiaro il protcollo, ma come faccio a creare il pacchetto da inviare? grazie
elsabz Inserita: 20 luglio 2005 Segnala Inserita: 20 luglio 2005 Con la CPU in questione é possibile inviare dati con i seguenti protocolli, mediante le SFC di sistema SFC216,217,218. La SFC216 serve per inizializzare la porta di comunicazione e per stabilire il protocollo:- ASCII (protocollo libero)- STX/ETX- 3964®Non specifichi che protocollo ha il motore, in ogni modo sia che il protocollo é standard o nel caso che sia propietario documentato, non resta altro che usare il protocollo libero ASCII, con l´ausilio delle SFC217,218 per mandare e ricevere dati.Per ulteriori informazioni sulle SFC guarda quí , altrimenti su ftp.vipa.de trovi tutto!SalutiSergio
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 grazie. Quindi devo crearmi il mio pacchetto per igni comando, copiarlo all'occorrenza nel buffer di spedizione e inviarlo, di conseguenza per la ricezione. Ma come faccio a trattare i dati numerici?
elsabz Inserita: 21 luglio 2005 Segnala Inserita: 21 luglio 2005 (modificato) come faccio a trattare i dati numerici?Dipende dal formato che hanno!Se hanno un formato diverso da S7, li dovrai convertire e quindi smistare in altre DB eventualmente, ma tutto dipende dal protocollo!Che protocollo ha il motore? Modificato: 21 luglio 2005 da elsabz
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 sul manuale si dice: il compact drive(motore) trasmette i dati in 485 con formato ASCII. i frame sono di 8 bytes, cosi formati : byte 1 requestdata(tipo di comando , se in lettura o scrittura etcc..) byte 2 subindex, byte3,4 index (riferito al parametro da scrivere o interrogare, bytes 5..8 valore del parametro. si parla di un data frame di 8 bytes in formato esadecimale, da convertire in un data frame ASCII di 16 bytes. quindi capisco che le conversioni sono fatte dal master(PLC) e dallo slave, io mi devo preoccupare di passare il frame in esadecimale.
elsabz Inserita: 21 luglio 2005 Segnala Inserita: 21 luglio 2005 (modificato) da convertire in un data frame ASCII di 16 bytesQuesto non lo capisco!?!Se il pacchetto dati è composto d 8 byte sono sempre 8 byte e non 16!Protocollo in ASCII non significa necessariamente che i caratteri numerici sono da interpretare come valori ASCII (per intenderci 30hex=0, 31hex=1...39hex=9), se così fosse allora il tuo SW del PLC deve fare un lavoro in più.Io non credo che sia così, non è che i bytes 5..8 reativi al valore del parametro, non sono altro che un numero DINT perfettamente normale e utilizzabile in S7 senza alcuna conversione? Modificato: 21 luglio 2005 da elsabz
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 Anche a me non torna. questo viene detto quando il manuale parla di codifica e decodifica dei dati. viene chiaramente detto: 8 bytes del data frame vengono convertiti in un data frame di 16 byte ASCII e spediti. Ma successivamente, parlando del data frame di trasmissione e ricezione si parla esclusivamente degli 8 bytes che ti ho descritto.
elsabz Inserita: 21 luglio 2005 Segnala Inserita: 21 luglio 2005 Posta il manuale del motore o metti il link!Ciao!
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 http://www.schneider-motion.com/public/dok...86?OpenDocument
elsabz Inserita: 21 luglio 2005 Segnala Inserita: 21 luglio 2005 (modificato) Il data frame effettivo sulla linea RS485 è di 16 byte + 1 (<CR>=0Dh). Come ti ho già accennato questo protocollo è in ASCII, quindi il byte 84h corrisponde, con una scomposizione in due gruppi da 4 bit e quindi con successiva conversione BCD dei due numeri, a due byte sulla rete 485, rispettivamente 38h + 34h.All'interno del tuo software dovrai implementare due funzioni:- una per codificare un telegramma da inviare- e una per decodificare un telegramma ricevutoPer mandare un telegramma prima lo prepari a 8 byte poi lo invi alla funzione di codifica e quindi lo spari fuori sulla rete 485, tenendo conto che devi ricevere un ACK dal motore. Per ricevere un telegramma, una volta ricevuti i dati (17byte), devi inviarli alla funzione di decodifica e quindi potrai valutarli e smistarli come ti serve.Prima di fare questo ti consiglierei di provare il polling!Hai provato ad inviare il polling? Modificato: 21 luglio 2005 da elsabz
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 Grazie, mi hai chiarito le idee.Non ho il materiale, stavo valutando la possibilità di realizzare l'applicazione, e cercavo di capire a cosa vado in contro. mi sembra un po laborioso come sistema. tu cosa ne pensi?
elsabz Inserita: 21 luglio 2005 Segnala Inserita: 21 luglio 2005 (modificato) tu cosa ne pensi?senz'altro il primo che fai ti fa impazzire, ma se ne devi fare in serie è un buon modo per risparmiare sui costi del materiale, si tratta di mettere sulla bilancia le cose! Per quanto mi riguarda, mi sembra abbastanza semplice da fare, l'unica osservazione è che ci vuole il materiale prima, per poter valutare bene il corretto funzionamento e testare il tutto.Che tipo di IFx ti serve e quanto ti costa un attuatore del genere?Ciao! Modificato: 21 luglio 2005 da elsabz
samumcr Inserita: 21 luglio 2005 Autore Segnala Inserita: 21 luglio 2005 Hai perfettamente ragione, ma non sempre si può valutare con il materiale in casa, anche se sarebbe la soluzione migliore. Solitamente uso IFA da 0.4 Nm con rete profibus e plc siemens S7-300. I Vipa non li ho mai usati, ma una serie 100 con seriale ha delle buone caratteristiche e ti permette di risparmiare, rispetto alla solita configurazione. Per questa applicazione vorrei usare un IFS, stepper, con 485. Ottimizzo le risorse senza toccare le prestazioni con un bel risparmio (circa 500 euro).
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora