jackmax5 Inserito: 18 aprile 2011 Segnala Share Inserito: 18 aprile 2011 Buongiorno a tutto il forum. Ho un problema:Attraverso un PLC TSX3722 ed una porta seriale (TSXSCP114) controllo degli alimentatori elettronici con protocollo Modbus. Il numero degli alimentatori può essere superiore anche alle 50 unità.Ho quindi la necessità di indicizzare l'indirizzo degli slave al fine di evitare di scrivere n istruzioni di Write_var (e di conseguenza Read_var) per ogni alimentatore.Come posso fare?Grazie a tutti! Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 18 aprile 2011 Segnala Share Inserita: 18 aprile 2011 ti direi a caldo di scrivere le 50 stringhe di comunicazione ed indicizzarne la chiamata attraverso un registro del quale gestirai il valore (da 1 a n)IF NOT %MW100:X0 AND %MW0 = 1 THEN READ_VAR{1.1}.........;%MW0:= 2;END_IF;IF NOT %MW100:X0 AND %MW0 = 2 THEN READ_VAR{1.2}.........;%MW0:= n;END_IF;IF NOT %MW100:X0 AND %MW0 = n THEN READ_VAR{1.n}.........;%MW0:= 1;END_IF; Link al commento Condividi su altri siti More sharing options...
jackmax5 Inserita: 18 aprile 2011 Autore Segnala Share Inserita: 18 aprile 2011 Grazie Diego... ma così diventa davvero lunghissimo... anche perchè devo scrivere 4 registri per ogni alimentatore ed andarne a leggere almeno altri 2 (sempre per alimentatore!)...Ho visto che c'è il modo di indicizzare l'indirizzo... Al posto di ADR#0.1.1 ad esempio inserire %MW10:6il fatto è che mi richiede quindi di settare 6 word... ma non capisco che valore devo assegnare. Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 18 aprile 2011 Segnala Share Inserita: 18 aprile 2011 Ipotizzando rack 1, modulo 3, canale 0, indirizzo 4%mw0 = 16#0600 (valore di sistema)%mw1 = 16#FE00 (valore di sistema)%mw2 = 16#0301 (slot, rack)%mw3 = 16#0400 (slave, canale)%mw4 = 16#0000 %mw5 = 16#0000 Fai sempre una verifica prima di prendere quello che dico per oro colato...scrivere 4 registri per ogni alimentatore ed andarne a leggere almeno altri 2quindi le letture scritture sono tutte uguali... ok. Non ne beneficia la lettura ma è anche vero che se l'applicazione sarà quella per sempre... Link al commento Condividi su altri siti More sharing options...
jackmax5 Inserita: 18 aprile 2011 Autore Segnala Share Inserita: 18 aprile 2011 Grazie Diego! Funziona perfettamente!Per ora non ho altri dubbi... speriamo non me ne sorgano durante la stesura del sw.Grazie ancora, Saluti. Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 18 aprile 2011 Segnala Share Inserita: 18 aprile 2011 Credo che se devi cambiare rete x-way nel mio esempio la word è la %mw1%mw1 = 16#FE00 (sarebbe SYS)%mw1 = 16#0201 (sarebbe rete.network {1.2}) Link al commento Condividi su altri siti More sharing options...
jackmax5 Inserita: 18 aprile 2011 Autore Segnala Share Inserita: 18 aprile 2011 Non ho quella necessità... ma grazie comunque delle preziose info! Link al commento Condividi su altri siti More sharing options...
jackmax5 Inserita: 21 aprile 2011 Autore Segnala Share Inserita: 21 aprile 2011 Rinnovo la discussione perchè ho un'altra domanda.Nel rapporto di comunicazione (le 4 word di rapporto dell'istruzione) quale bit mi va ad 1 se riscontra un errore? Ad esempio impossibilità di comunicare con l'apparecchio (cavo spezzato o alimentatore guasto)?So che il bit X0 della 1° word mi indica se la porta è attiva o inattiva.So che sulla 3° word posso impostare il tempo di time-out.Mi mancano le altre.Non trovo da nessuna parte e su nessun manuale una sorta di tabella che mi indichi il significato di queste 4 word!!!Grazie e tutti, Saluti. Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 21 aprile 2011 Segnala Share Inserita: 21 aprile 2011 nessun manualel'h elp dice tuttohai 4 word di report = w0-1-2-3W0 = bit 0 attività (1 comunicazione in corso)W1 = codice di erroreW2 = valore time-out (x100ms)W3 = lunghezza della richiesta (in bytes)I codici di errore (in esadecimale) sono diversi ed hanno ovviamente di versi significati (cerca sull'H elp). In generale se W1 = 0 è tutto ok. Se W1 <> 0 (diversa da zero) qualcosa non è andato. Link al commento Condividi su altri siti More sharing options...
jackmax5 Inserita: 21 aprile 2011 Autore Segnala Share Inserita: 21 aprile 2011 grazie ancora Diego! Sempre molto gentile.Effettivamente non so se sull'. ci sia scritto... semplicemente perchè con Windows7 l'. del PL7 non viene visualizzato...Saluti 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