Vai al contenuto
PLC Forum


Nb E Modbus


Messaggi consigliati

Inserito:

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.


Inserita:

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.

Inserita:

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.

Inserita:

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

Inserita:

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.

  • 3 months later...
Inserita:

Salve a tutti volevo chedere se qualcuno puù spiegarmi la funzione delle tre aree di memoria del terminale NT 31.

Control Area PT

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