Vai al contenuto
PLC Forum


Plc Vipa E Seriale


samumcr

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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!

Saluti

Sergio

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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: da elsabz
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

da convertire in un data frame ASCII di 16 bytes

Questo 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: da elsabz
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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 ricevuto

Per 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: da elsabz
Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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: da elsabz
Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...