GiuseppeCOM Inserito: 31 marzo 2006 Segnala Inserito: 31 marzo 2006 Buonasera a tutti,avrei bisogno di qualche dritta da un programmatore AWL. Ho collegato 2 PLC Master tramite un DP/DP coupler. Il bus in questione è ovviamente Profibus DP. Il mio scopo consiste nel fare in modo che venga copiato il contenuto di una DB di uno dei due PLC in una predefinita DB all'interno dell'altro PLC. In parole povere, quando il primo PLC aggiorna la DB in questione contemporaneamente o comunque con un delay accettabile viene aggiornata la sua copia sul secondo PLC. Il secondo PLC dovrebbe funzionare come un PLC concentratore di diversi PLC master (in realtà uno solo). Collegandomi al concentratore potrei monitorare lo stato di quella particolare DB che risiede sul primo PLC. Mi interesserebbe sapere quali sono i comandi AWL che dovrei inserire nel software del PLC concentratore per fare in modo che quest'ultimo vada periodicamente a copiare in una sua DB il contenuto della DB da monitorare.Grazie mille
Matteo Montanari Inserita: 1 aprile 2006 Segnala Inserita: 1 aprile 2006 nelle libreire standard di Step 7, più precisamente nella "Communication Blocks" hai tutti i blocchi standard creati da Siemens per quanto riguarda la comunicazione con altre CPU, o altri sistemi.selezionando la funzione e premendo F1 hai l'. in linea, che comunica un corretto utilizzo della funzione stessa.attenzione che alcuni blocchi funzionano solamente con determinate schede, oppure non funzionano con determinate schede.un altra cosa da tenere presente è la quantità di dati da trasferire, se supera il limite, ti conviene effettuare due trasferimenti.
batta Inserita: 2 aprile 2006 Segnala Inserita: 2 aprile 2006 L'accoppiatore DP/DP non ha bisogno di utilizzare blocchi particolari. Si aggiunge il modulo in configurazione hardware. Nel modulo possono essere inseriti dei moduli (mi pare max 11). Ogni modulo occupa un certo numero di byte di ingressi od uscite di periferia. Per quanto riguarda il numero massimo di byte che possono essere gestiti, guarda la documentazione. Credo cambi a seconda del codice dell'accoppiatore DP/DP usato.I singoli moduli possono essere configurati come dati "consistenti" o meno. Se sono configurati come consistenti, si ha la garanzia che tutto il singolo blocco è aggiornato.Il DP/DP deve essere configurato nell'ardware di entrambe le cpu. Per scrivere dati da cpu1 a cpu2 bisogna configurare i due lati del DP/DP in modo che ci sia corrispondenza tra i moduli con byte di uscita ed i moduli nella posizione corrispondente con byte in ingresso.Poi, si legge e si scrive come normale periferia.Non so se sono riuscito ad essere abbastanza chiaro. Caso mai chiedi, e vedrò di fare un esempio concreto.
GiuseppeCOM Inserita: 5 aprile 2006 Autore Segnala Inserita: 5 aprile 2006 Vi ringrazio per la vostra disponibilità.Vi faccio un esempio di ciò che vorrei realizzare:PLC1 e PLC2 sono due master collegati tra loro con il DP/DP Coupler. Vorrei che alcune word della DB21 del PLC1 siano copiate in una DB22 del PLC2. Inoltre vorrei che la copia delle word in questione nella DB22 venga aggiornata ogni volta che cambia il contenuto delle word di origine sulla DB21 del PLC1.Ipotizzo che per fare ciò, io debba creare una opportuna FC o FB nel progetto della PLC2. In questa FC o FB devo scrivere delle linee di codice opportune. Mi potreste fare un esempio dei comandi che devo usare?KEOSSM accennava che è possibile ricorrere alle librerie standard. L'ho fatto ed ho trovato la SFB/FB 14 "GET". Secondo voi potrebbe essermi utile?Grazie mille
Simone70 Inserita: 5 aprile 2006 Segnala Inserita: 5 aprile 2006 Non ho mai usato il DP/DP coupler ma mi sembra di aver letto che serva a far comunicare due reti profibus distinte, in pratica lo vedi come nodo di tutte e due le reti con una sua area di periferia in cui scrivi e leggi dei valori (PEW e PAW). Penso che sia sufficente andara trasferire i valori delle DB21 del plc 1 sulla periferia di uscita dell'accoppiatore ed andare a leggere i dati dalla periferia del PLC2 e trasferirli sulla DB22.Facendo un collegam,ento MPI tra le CPU che sono sotto lo stesso progetto puoi usare direttamente i dati globali etrasferire direttamente i valori di un'area di dati del PLC 1 su un'area di dati del PLC2 anche se questo tipo di connessione non è chiaro quanto sia sicura.
GiuseppeCOM Inserita: 10 aprile 2006 Autore Segnala Inserita: 10 aprile 2006 Grazie per l'aiuto.Tuttavia non mi è ancora chiaro quali sono le funzioni AWL che devo usare per leggere dal DP/DP Coupler i byte che mi interessano in una rete e quali sono le funzioni che devo usare nell'altra rete per trasferire i byte di interesse nel DP/DP Coupler. C'è qualcuno che mi può aiutare o mi può indicare dove reperire queste informazioni?Grazie mille
murissio Inserita: 10 aprile 2006 Segnala Inserita: 10 aprile 2006 Esempio :Devo scambiarmi in totale 20 bytes con un altro sistema DP X ( devo scrivergli 10 bytes e ne devo leggere 10 bytes di risposta ).Configuro ( in HW config. ) un'area di scambio nel DP coupler nel seguente modo :Lettura ingressi ( segnali inviati da DP X, suoi output ) : da EB 0 a EB 7Scrittura uscita ( segnali che invio a DP X, suoi input ) : da AB 0 a AB 7Ora se voglio inviare delle informazioni contenute in un byte del mio DB 10 :L DB10.DBB xxT AB 0In questo modo invio al DP X tramite il primo byte discambio il contenuto di DB10.DBB xxDevo leggermi un informazione inviata dal DP X ( primo byte ) :L EB 0T DB10.DBB xxOvviamente configuri l'area scambio DP / DP in funzione della quantità dati che ti serve scambiare in contemporanea.
murissio Inserita: 10 aprile 2006 Segnala Inserita: 10 aprile 2006 Scusa per la fretta :l'esempio non è per 10 bytes, ma 8 + 8
batta Inserita: 10 aprile 2006 Segnala Inserita: 10 aprile 2006 Voglio ricordare che se è importante essere sicuri che i dati che si leggono (scrivono) con il DP/DP coupler non vengano "spezzati" in più cicli di lettura (scrittura) si devono usare dati coerenti (a volte definiti consistenti).Attenzione: anche se in configurazione hardware si sono usati solo moduli di input/output coerenti, si ha la garanzia di avere una lettura completa durante lo stesso ciclo esclusivamente del singolo modulo.Quindi non si deve dividere uno stesso dato (esempio una dword) su due moduli differenti di input/output. Questo per evitare di leggere, per esempio, la parte alta della variabile durante un ciclo, e la parte bassa in un ciclo successivo. Il valore del dato potrebbe essere, ovviamente, non corretto.Esempio: sulla cpu A configuro il DP/DP Coupler come segue:Ingresso coerente 16 byte (indirizzo 512..527)Ingresso coerente 16 byte (indirizzo 528..543)Uscita coerente 16 byte (indirizzo 512..527)Sulla cpu B la configurazione sarà:Uscita coerente 16 byte (indirizzo 256..271)Uscita coerente 16 byte (indirizzo 272..287)Ingresso coerente 16 byte (indirizzo 256..271)Gli indirizzi, volutamente diversi per le due cpu, sono ovviamente solo di esempio.Se dalla cpu B alla cpu A si inviassero 7 word e poi una doppia word, la doppia word verrebbe spezzata. Occuperebbe infatti gli indirizzi 270-271 (primo modulo) e 272-273 (secondo modulo.Questa situazione è assolutamente da evitare.
GiuseppeCOM Inserita: 11 aprile 2006 Autore Segnala Inserita: 11 aprile 2006 Grazie mille sia a Murissio che a Batta.Siete stati chiari e semplici.Di nuovo grazie.
walterword Inserita: 19 aprile 2006 Segnala Inserita: 19 aprile 2006 (modificato) dp / dp coupler e' come una periferica decentrata dalla quale leggi e srivi PEWxx e PAWxxse vuoi averi i dati su DBxx non devi fare altro che usare L (load) e T (transfer) per copiare o leggere tali indirizzi su db.La cosa che invece mi incuriosisce sempre , visto che anche n questa M.I.S. ho un dp/dp, sono i vari pacchetti che si possono scegliere in conf. hw relativi al coupler .Di solito se devo copiare o leggere da un db dei bit uso OUTPUT32 o viceversa , se invece di tratta di aree contigue di interi piuttosto che reali o altro uso un buffer i bytes di numero totale come i dati e non ho mai avuto problemi , ma nella cartella dp/dp ci sono diverse scelte che non ho ancora capito cosa significhino ciao Modificato: 19 aprile 2006 da walterword
RAMSON Inserita: 30 aprile 2006 Segnala Inserita: 30 aprile 2006 Il DP coupler non consente di trasferire DB da un PLC all'altro (direttamente) , ma solo un certo numero di words.Più che altro è come collegare tutti gli output di un modulo di uscita di una rete DP a tutti gli inputs di un modulo di ingresso di un'altra rete DP e viceversa (almeno dal punto di vista funzionale).Se vuoi inviare dati (Qualsiasi tipo di dato DB comprese) da un PLC all'altro, devi gestirti un trasferimento word a word (o dword a dword) con relativi strobe e ack come se tu lo facessi tramite gli I/O.Ciao
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