abbmarco Inserito: 11 ottobre 2010 Segnala Share Inserito: 11 ottobre 2010 salve a tuttisono un programmatore juniorsto realizzando un impianto con 3 cpu siemens 319-3 PN/DP che comunicheranno tra di loro via ethernet!!!il motivo per cui scrivo è per sapere informazioni su come configurare, implementare e gestire la comunicazione tra le cpu! Link al commento Condividi su altri siti More sharing options...
Gianmario Pedrani Inserita: 11 ottobre 2010 Segnala Share Inserita: 11 ottobre 2010 Non sono sciruro, ma credo che con step7 5.4 tu debba mettere in mezzo alle 3 cpu in pn/pn couple perche non penso che si possano collegare 3 cpu pn tra di loro cosi senza niente.So che qualcosa però è cambiato con la nuova versione di step7 5.5 Link al commento Condividi su altri siti More sharing options...
turbineboost Inserita: 11 ottobre 2010 Segnala Share Inserita: 11 ottobre 2010 Beh, le porte integrate non saranno come le CP, ma non sono poi così sguarnite...direi che hai qualche alternativa:1 - PN/PN coupler: se il tempo di reazione è tutto. In pratica è un oggetto visto come device su entrambi i lati, molto simile al DP/DP coupler. Il vantaggio sta nella comunicazione deterministica. Lo svantaggio nel fatto che hai bisogno di un oggetto in più (per ogni coppia di CPU, per cui ne servono 3).2 - PROFINET CBA: se parametrizzare è meglio che programmare. E' un metodo per mettere in comunicazione diversi oggetti di cui si definiscono dei DB di interfaccia. La comunicazione è solo parametrizzata, non programmata, è gestita in toto dal sistema operativo. L'unico difetto è che serve una licenza di iMAP.3 - S7 protocol: è sicuramente l'opzione più semplice. Si progetta un collegamento con NetPro e ci si parla sopra con i blocchi GET e PUT (FB14 e 15): GET preleva dati da una CPU remota, PUT scrive dati in una CPU remota.Ovviamente servirà un collegamento per ogni coppia di CPU.C'è una FAQ: http://support.automation.siemens.com/WW/view/it/18610307E anche questa: http://support.automation.siemens.com/WW/view/it/189248424 - Open IE: per i feticisti dell'ethernet. In questo caso si parla in TCP o ISO-on-TCP puro. E' l'opzione più complessa da programmare perchè oltre a gestire SEND e RECEIVE va gestita anche la connessione e disconnessione dalla CPU remota. Ma se il partner di comunicazione è un partner generico, non SIMATIC, è la strada obbligatoria. Nulla di impossibile, per carità, ma l'S7 è più facile.Anche per questo esistono FAQ.TCP: http://support.automation.siemens.com/WW/view/it/29737950ISO-on-TCP: http://support.automation.siemens.com/WW/view/it/29737976Comunque ti torna comodo il wizard per generare i dati di sistema:http://support.automation.siemens.com/WW/view/it/25209116sicuro di averti confuso le idee, ti auguro buon lavoro!p.s.: focalizzati sull'S7 e tieni il resto come "cultura generale" Link al commento Condividi su altri siti More sharing options...
turbineboost Inserita: 11 ottobre 2010 Segnala Share Inserita: 11 ottobre 2010 dimenticavo ancora due cose1) tutto quello che ho detto nel post di prima prescinde dalla versione di STEP 7, che sia 5.4 o 5.5, le opzioni sono valide lo stesso.2) con le 319 nuove (8EL01) e lo STEP 7 5.5 (obbligatorio), c'è anche l'opzione iDevice, in pratica puoi battezzare una CPU controller, e le altre device in modo da farle parlare come in master-slave in profibus. Con la differenza che l'iDevice può essere contemporaneamente Controller di una rete locale, un po' come la IM308C.Attenzione: il controller deve prevedere espressamente il funzionamento in abbinata all'iDevice.ciao! Link al commento Condividi su altri siti More sharing options...
avafab Inserita: 5 aprile 2011 Segnala Share Inserita: 5 aprile 2011 Ciao turbineboost, scusa se mi intrometto, ma sto avendo anche io qualche rogna con la comunicazione tra stazioni. Ho predisposto tutti i collegamenti ma le CPU non vogliono parlarsi, ho un paio di domande, spero mi risponderai:(considera cjhe nel mio caso devo usare la funzione PUT solo per scrivere nell'altra CPU, non ho bisogno di leggere, ma solo di compiere operazioni di scrittura.)1- in netpro bisogna per forza inserire la presenza dell'altra CPU e collegarle in ethernet (col la linea verde per intenderci?) ? mi ha detto un mio amico che non c'è bisogno di esplicitare graficamente che esiste un altra CPU, ma indicando solo il collegamento dovrebbe funzionare.2- Mi puoi spiegare meglio l'indirizzamento, ovvero i vari puntatori? io dovrei semplicemente copiare una intera DB in un altra, dello stesso identico formato. (DB405 nella DB 407 della macchina precedente.)3- per quanto riguarda l'ID, devo ovviamente mettere nel PUT quello della macchina in cui voglio scrivere giusto?arrivo a chiamare la PUT ma mi da error=1 e status=1, le cpu sono collegate fisicamente in ethernet e hanno diversi indirizzi.ciao ti rignrazion in anticipo. Link al commento Condividi su altri siti More sharing options...
turbineboost Inserita: 7 aprile 2011 Segnala Share Inserita: 7 aprile 2011 Ciao,in realtà non c'è effettiva necessità di avere entrambe le CPU nello stesso progetto.Con le funzioni GET e PUT non c'è nemmeno necessità di caricare dati di connessione nella CPU partner.In altre parole: nella CPU "attiva" configuri la connessione definendo ovviamente l'indirizzo IP del partner, mentre nella partner non ci va nulla. Queste si chiamano connessioni S7 unilaterali. In pratica è come usare delle X_GET e X_PUT su ethernet! Sono comodissime se devi accedere a dati di una CPU che non hai programmato tu!Per fare questo devi inserire un collegamento S7 in NETPRO verso un partner non specificato.Nella maschera che segue specifica l'indirizzo IP e clicca su Dettagli indirizziSe la CPU partner è un 300 seleziona:Rack=0Slot=2Risorse collegamento = 03Nella tua CPU programmi poi i blocchi GET e PUT.L'ID è ovviamente quello della connessione cui fa capo la CPU in cui vuoi leggere/scrivere.Per i puntatori:ADDR_1: è l'area della CPU partner. Se vuoi puntare alla DB405 scriverai: P#DB405.DBX0.0 BYTE 40, dove 40 è la lunghezza in byte della DBRD_1: è l'area in cui accogliere i dati della CPU partner. Se vuoi scrivere nella DB406 scriverai: P#DB406.DBX0.0 WORD 20, dove 20 è la lunghezza in word della DBSD_1: è l'area dove stanno i dati da scrivere nella CPU partner. Se vuoi pescare dalla DB407 scriverai: P#DB407.DBX0.0 DWORD 10, dove 10 è la lunghezza in doppie word della DBciao!davide Link al commento Condividi su altri siti More sharing options...
avafab Inserita: 8 aprile 2011 Segnala Share Inserita: 8 aprile 2011 grazie davide! non ci poteva essere spiegazione migliore di questa, grazie davvero.fabrizio Link al commento Condividi su altri siti More sharing options...
avafab Inserita: 10 aprile 2011 Segnala Share Inserita: 10 aprile 2011 Ciao davide, scusami c'è un modo per dargli l'indirizzo di una intera DB, senza per forza dover specificare il numero di BYTE? in pratica devo usare la funzione PUT per scrivere una intera DB dentro un'altra nel partner, le DB hanno esattamente la stessa dimensione.grazie Link al commento Condividi su altri siti More sharing options...
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