Gervinho Inserito: 27 maggio 2013 Segnala Inserito: 27 maggio 2013 Ciao a tutti Avrei bisogno del vostro prezioso aiuto... Mi trovo a dover collegare un pannello NB in Modbus con un inverter MX2 (ma credo che il problema sia uguale per ogni modello) e, essendo i canali modbus in doppia lunghezza sul' inverter swappati (invertiti) rispetto a quelli che invio dal pannello operatore mi chiedevo come risolvere il mio problema. Ricordo che su pannelli differenti (NQ) era presente una opzione per invertire i canali in modo automatica ma qui non riesco a trovarla... pensavo di risolvere con una macro, ma è una strada su cui non ho grande esperienza e preferirei evitare... Qualcuno mi può dare qualche consiglio?? Grazie G.
claubo Inserita: 30 maggio 2013 Segnala Inserita: 30 maggio 2013 Ciao Gervinho, effettivamente anche io qualche tempo fa mi ero imbattuto in un problema simile. Effettivamente ricordo anche io che su Nq- designer esisteva un'impostazione per effettuare lo swap delle word, ma su NB Designer attualmente questa possibilità è pregiudicata. Io me la sono cavata con una macro effettuando uno scambio di posizione delle word (facendo quindi uno swap); è una strada più scomoda ma al momento non avrei altri suggerimenti da proporti. Ciao C.
Gervinho Inserita: 31 maggio 2013 Autore Segnala Inserita: 31 maggio 2013 Ciao Claubo non è che riesci a darmi un idea della macro, ero abituato agli altri pannelli e con NB Designer faccio ancora un po fatica con le Macro. Saluti Ge.
claubo Inserita: 4 giugno 2013 Segnala Inserita: 4 giugno 2013 Ciao Gervinho, prima di tutto ho dichiarato le 3 variabili che sono state utilizzate e cioè Foutlow, Fouthigh_sw e Foutlow_sw all'interno della sezione dedicata alle macro di NB-Designer; Foutlow è stata dichiarata come variabile unsigned integer lunga 2 word (32bit) con indirizzo 4x e 4097 ( e occupa sia 4097 che 4098); Foutlow_sw è stata dichiarata come variabile unsigned short lunga 1 word con indirizzo LW 100; Fouthigh_sw è stata dichiarata come variabile unsigned short lunga 1 word con indirizzo LW 101; Il codice che ho scritto nella macro è il seguente: int Temp; Temp=Foutlow*65536; Fouthigh_sw=Temp/65536; Foutlow_sw=Foutlow/65536; Dove temp è una varibile temporanea di appoggio dichiarata come tipo intero (int). Inizialmente mi sono servito di una variabile di appoggio (temp) in cui è stato fatto il prodotto di Foutlow con 65536, in questo modo si shifta verso sinistra di una word il dato; se infatti Foutlow=22223333 (2word)---->temp=33330000 (2word) Poi scrivendo Fouthigh_sw=Temp/65536 ho shiftato a destra di una word. Quindi temp=33330000 (2word)----> Fouthigh_sw=3333 (1word) che si trova in LW101 Poi scrivendo Foutlow_sw=Foutlow/65536 significa shiftare a destra di una word. Quindi Foutlow=22223333 (2word)----> Foutlow_sw=2222 (2word) che si trova in LW100 A questo punto usando un'oggetto di visualizzazione e attribuendo il l'indirizzo Lw100 e usando doppia word come lunghezza del dato, dovresti vedere il dato 'swappato' Spero di essere stato chiaro e che ti possa essere di aiuto. buon lavoro! ciao claubo
Gervinho Inserita: 5 giugno 2013 Autore Segnala Inserita: 5 giugno 2013 Ciao Claubo grazie mile, in pratica hai risolto tutto a livello "matematico", ingegnoso ma abbastanza chiaro. Cercherò di repliacare con i miei canali e nel caso disturbo ancora un po' G.
Ali22 Inserita: 4 ottobre 2013 Segnala Inserita: 4 ottobre 2013 Salve a tutti volevo chedere se qualcuno puù spiegarmi la funzione delle tre aree di memoria del terminale NT 31. Control Area PT
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