Vai al contenuto
PLC Forum


Profibus E Micromaster Pp0 Pzd


aleb2

Messaggi consigliati

Dovrei gestire l'azionamento di 64 uscite in base ad un riferimento di posizione (word) datomi da un encoder assoluto,in teoria posso avere 360 configurazioni diversa delle uscite ogni giro dell'encoder; fare tutti i confronti >/< sul riferimento di posizione e azionare di conseguenza le uscite è troppo dispendioso dal punto di vista del tempo di ciclo e dovrei girare ad una velocità troppo bassa. Sarei contento di ricevere qualche idea/suggerimento da voi

Link al commento
Condividi su altri siti


l'encoder assoluto lo puoi collegare agli ingressi digitali , solo che pero se per esempio hai un encoder

a 16 bit devi utilizzare 16 ingressi .Ricordati di invertire i due byte nel collegamento dell'encoder

ciao

Link al commento
Condividi su altri siti

ok,ma quando ho collegato l encoder agli ingressi, la procedura per l'attivazione delle uscite (il tempo di ciclo) rimane lo stesso, questo è il problema

Link al commento
Condividi su altri siti

Scusa ma devi fare una applicazione tipo "camme elettroniche" dove in funzione di una posizione viene attivata immediatamente una uscita digitale ?

bigalex :blink:

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

io ho affrontato il medesimo problema e non è stato facile, e siccome il mio target erano 32 camme, sempre da un 360 passi, parallelo, 99 set e 99 reset per ciascuna camma, e una 226 è tirata mooolto al collo per la memoria.

Comuque non è così elementare il discorso ...

Ciao

Link al commento
Condividi su altri siti

imparate ad usare i puntatori

e a creare funzioni specializzate

vedrete che i colli di bottiglia li userete per fare altre cose

...qualcuno ci fuma pure

;)

Link al commento
Condividi su altri siti

Gabriele Corrieri
walterword+16 Jul 2004, 10:54 PM-->
CITAZIONE(walterword @ 16 Jul 2004, 10:54 PM)

Ciao Walter,

usato tutto, ma se fai bene i conti ti rendi conto che ero al limite ... ci vorrebbe la XM ... :D

Ciao

Link al commento
Condividi su altri siti

Credo personalmente che per tutte queste uscite alle quali vanno abbinate delle camme e in più si vuole avere una risposta "veloce" la soluzione PLC , acquisizione posizione non con scheda encoder non è la soluzione giusta .

Tieni presenti che gli ingressi digitali per quanto tu possa abbassare il filtro in ingresso hanno comunque una banda passante non elevata (che ti consiglio di verificare) , inoltre come già hai detto il tempo di scansione diventa una variabile estremamente critica .

Come dice Walter sicuramente cercare la migliore efficienza della sintassi software è importante (vedi puntatori)

, ma in questo caso comunque i confronti per ogni camma devono essere sempre eseguiti e questo a prescindere che si usino puntatori o meno .

Per esempio se devo gestire una camma per ogni uscita e devo gestire sempre le 64 uscite è evidente che comunque vanno sempre fatti i 64 confronti >= quota inizio camma ---- <= quota fine camma sia che si utilizzino i puntatori , sia che si utilizzino blocchi parametrizzati (blocchi funzione) sia che si decida di programmare ogni singolo blocco di confronto .

Se invece il numero delle camme/uscite non deve essere sempre di 64 attivabili , puoi ad esempio impostare il numero di camme di cui necessiti e parametrizzare il programma in modo da elaborare solo le camme realmente utilizzate nel ciclo .

Per Walter mi puoi fare capire come colleghi un encoder assoluto agli ingressi digitali del S7-200 ed eventualmente a quale tipo di encoder assoluto stavio pensando ?

Grazie e ciao.

bigalex :blink:

Link al commento
Condividi su altri siti

se hai un encoder assoluto , che di solito e' in codice Gray , per esempio a 8 bit vuol dire

che il conteggio massimo che l'encoder puo effettuare e' 0-255 .

Superati i 255 riparte da zero .Sostanzialmente e' come leggere un byte da binario a decimale

Tempo fa avevo scritto delle funzioni per S7-300 che avevo utilizzato , queste decodificavano il codice Gray in decimale .Per s7 -200 avevo riscritto il tutto e funzionava , e il tempo di filtraggio degli ingressi era abbastanza buono .

In sostanza quando si sceglie un encoder assoluto bisogna tener conto dei rapporti meccanici e delle grandezze

che sono in gioco .Se per esempio ho un encoder con risoluzione a 8 bit (255 max) e devo "misurare" lo spostamento di un asse dove i rapporti meccanici fanno si che a 255 ci arrivo a meta corsa dell'asse

bisogna utilizzare un altra word o byte di appoggio che conti gli overflow , e praticamente moltiplicando gli overflow x 255 + il valore corrente dell'encoder si hanno i punti totali ; ovviamente il tutto in base al senso di marcia .

L'encoder assoluto e' internamente costruito per avere una combinazione tale da fornire sempre il conteggio

quindi a differenza degli encoder incrementali non ha lo zero asse (contatore veloce) .

Visto e considerato che siemens "usa" invertire i byte inuna word , se hai un encoder a 16 bit dovrai collegare

i fili rispettando i byte ingressi ai quali li colleghi , altrimenti avrai un conteggio farlocco .

Per quanti riguarda le camme elettronica puoi tranuillamente scriverti un fc specializzato dove chiedi in ingresso

il target (quota da raggiungere) , la % maggiore e minore per creare la finestrella , oppure il limite di soglia

e come output restituisci un bit che sara a 1 quando le condizioni che passi sono vere .

Cosi potrai richiamare quante volte vorrai passando valore diversi ed ottenendo uscite che appoggerai

spero su merker diversi . puoi anche fare una chiamata alla funzione passando parametri precedentemente

disposti in array , ed indicizzando il tutto .Per esempio in un ciclo for dove terrai conto del watchdog

puoi richiamare la tua funzione con parametri indicizzati , ed in 3 righe ottenere quello

che ottieni in 80 righe o piu se devi lavorare con 80 camme elettroniche

ciao

walter

Link al commento
Condividi su altri siti

Ciao Walter ,

tieni presente che se anche fai come hai scritto comunque il ciclo FOR --> NEXT per processare 64 camme dovrà comunque iterare 64 volte ed il tempo ciclo PLC comunque risente dell'elaborazione anche se la sintassi del blocco specializzato riduce in senso assoluto le dimensioni del codice all'interno della CPU .

In applicazioni tipo camma elettronica , solitamente (ovvero dove la risposta deve essere il più rapida possibile)

, si utilizzazano schede dedicate (Siemens,Schneider ed altri costruttori ne hanno a catalogo) , dove l'elaborazione del processo dedicato alle camme è scollegata dal processo PLC e dove CPU PLC e scheda camme elettroniche si scambiano solo alcuni parametri inerenti la modalità di funzionamento della scheda, la modalità di funzionamento di ogni singola camma elettronica e i parametri tipici che identificano la camma stessa .

Inoltre sono presenti sulla scheda camme elettroniche delle uscite digitali REFLEX dette piste a cui si abbinano le camme elettroniche programmate .

Inoltre ogni singola camma elettronica è configurabile in alcune tipologie di funzionamento oltre ad avere funzioni tipo ANTICIPO per ovviare al ritardo tipico degli attuatori esterni e quindi per ottimizzare l'intervento del comando della camma .

Credo che il nodo cruciale sia il tipo di risposta che richiede il processo , ovvero quando il tempo di elaborazione della cpu del plc diventa critico (es. >10ms) , è da dire che le informazioni fornite da "aleb2" non sono così dettagliate da poter consentire un esame corretto dell'applicazione specifica .

Resto in ascolto.

bigalex :blink:

Link al commento
Condividi su altri siti

si , io non consideravo i tempi di risposta

Nella tua applicazione c'e' la necessita di essere veloci , e quindi come dici tu ci sono delle schede

dedicate per le camme , come ci sono per i posizionamenti , per le interpolazioni ect .

si poteva dividere il loop in piu cicli , ma ovviamente per completare tutti e 64 ci vorrebbero n° cicli di scansione

e quindi n° ms , che sono fuori dai tuoi 10 ms .

Anche voler lavorare con gli interrupt sarebbe costoso in termini di tempo

per esempio quando raggiungi una posizione scateni un interrupt , solo che poi al suo interno dovresti controllare chi l'ha scatenato appesantendo sempre il ciclo

Link al commento
Condividi su altri siti

grazie per le risposte; per questa applicazione dovrei avere un tempo di ciclo <- circa 3ms ; a Gabriele vorrei chiedere come ha affrontato il problema(mettere una XM non sarebbe eventualmente un problema, passare a un PLC di taglia superiore SI)

grazie

Link al commento
Condividi su altri siti

Ciao aleb2 ,

se il tempo di risposta del PLC deve essere inferiore a 3ms per processare 64 camme , credo che difficilmente riuscirai a risolvere l'applicazione con un S7-200 (con tutto il rispetto per il prodotto) .

Onestamente le informazioni che fornisci non sono esaustive per poter comprendere appieno le esigenze prestazionali e funzionali e quindi se puoi cerca di essere più preciso nel dettagliare l'applicazione .

bigalex :blink:

Link al commento
Condividi su altri siti

si in effetti e' come voler salire sul podio con una Minardi , con tutto rispetto per la scuderia

Credo che le esigenze correlate alla scelta siano troppo "esigenti"

ciao

Link al commento
Condividi su altri siti

Gabriele Corrieri
aleb2+19 Jul 2004, 09:01 AM-->
CITAZIONE(aleb2 @ 19 Jul 2004, 09:01 AM)

Ciao Aleb2,

il mio problema era di avere 32 camme e 99 impostazioni di camma per cada camma (start da angolo x, stop da angolo y) ed era un problema prettamente di memoria "V" dove memorizzare tutte le impostazioni on/off delle singole camme ... ;)

Ciao

Link al commento
Condividi su altri siti

  • 4 years later...

Scusate ma sono alle prime armi con Profibus , CPU 315-2DP.

Mi anno aiutato a capire come spedire le parole alla periferica(INVERTER).

Ma non ho capito quasi niente su PPO1-2-3- PZD Ecc.. so cosa sono ma non la funzione di ogni parola del protocolllo profibas ho letto il manuale del modulo profibus e ho fato una ricerca sul forum ma se qualcuno fosse così gentile da darmi una dekucidazione glie ne sarei grato!

Grazie!!

Link al commento
Condividi su altri siti

Gianmario Pedrani

Be come sai le i tipi di ppo che vai a scegliere, sono la mappatura di aree di memoria del micromanster, nelle aree del plc, di solito se ti serve comandare un micromaster solo passandogli la frequenza di lavoro ed avere la risposta, è sufficente utilizzare il ppo 3 dove avrai una word contenente la parola di comando che viene inviata al micromaster, un altra word dove il micromaster risponde con la sua parola di stato, ed una word dove vai a scrivere la velocita che è un numero pari a 16384 quindi i tuoi 50 Hz = 16384, poi ci sarà un altra word dove leggi la velocita che hai passato all'inverter.. i bit della parola di stato e della word di comando li trovi sul manuale quello che hai letto tu! Tieni presente che i 2 byte sono invertiti.

Se invece la tua esigenza è quella di poter variare vari parametri dell'inverter si utilizza il pp0 che mette a disposizione più word di scambio. La parola di comando e la parola di stato sono le stesse solo che in piu hai anche la possibilita tramite un protocollo che ti dovrai creare, ed è spiegato sempre nel manuale che hai letto, per poter cambiare i vari parametri dell'inverter.

Spero di averti dato un chiarimento

Link al commento
Condividi su altri siti

Si adesso è un po più chiaro ma cosa posso fare con PPO 3 apparte variare la velocità del motore?

Forse sono io confuso ma nel manuale non capico bene se tu lo sai potresto postarmi la lista dei bit ho darmi un link possibilmente in italiano , oppure spiegarmi come parlano di bit e poi mandano le word in hex a me serve qualcosa che possa variare la velocità fare diagnostica degli errori!

io ho letto il manuale ma per cortesia fatemi chiarezza perchè ho capito poco e niente!

Grazie!

Link al commento
Condividi su altri siti

Allora se ho capito io scelgo l'uscita dell'iverter es PQW 300 inverter con indirizzo 300 se ho PPO3 2 parole le word le spedisco a quell'uscita con ppo3 posso solo comandare l'inverter freg jog ecc ! domanda: posso anche ricevere tramite La PIW delle informazioni dall'iverter?

Link al commento
Condividi su altri siti

Allora ditemi si ho no :

PKW :

PRIMA PAROLA

da bit 0 a 10 è il parametro

BIT 11 riservato

dal 12 al 15 sono le istruzioni per il parametro(JOB) es scrivi leggi ecc.

SECONDA PAROLA:

Dal BIT 0 al 7 selezione dei sottoindici

da 8 a 15 il bit 15 cambia da param 0 a 1999 a 0

da 2000 a 3999 a 1

Terza e qurta il valore del parametro!

PZD

Prima parola di controllo dice cosa fare

La seconda da la freguenza

l'azzionamento risponte

con una parola di stato

e la freguenza effettiva!

Se qualcosa non va vi prego postatemi!

GRAZIE!!!

Link al commento
Condividi su altri siti

Si, questo è ciò che dice il manuale

PPO3 --> solo PZD

PPO1 --> oltre a PZD anche PKW (lettura o scrittura di un parametro alla volta)

se hai bisogno della diagnostica devi per forza costruirti il protocollo di gestione PKW (che non è proprio immediato): sicuro di averne bisogno?

ciao

Link al commento
Condividi su altri siti

no ho visto che potrebbe funzionare anche PPO3!

Adeso l'ultima domanda dove trovo PEW PAW della periferica !

ho guardato nella configurazione hardware ma non capisco c'è lindirizzo della disgnostica e l'indirizzo (4) profibus!

Grazie!

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