Vai al contenuto
PLC Forum


Modbus E Offset.


mf2hd

Messaggi consigliati

Mi e' stato chiesto di realizzare un piccolo sinottico dove visualizzare a video poche misure e un paio di stati/allarmi .

Sto utilizzando winlog lite che mi sembra piuttosto buono, visto anche il prezzo della licenza.

Il protocollo e' modbus RTU su RS485.

La documentazione, decisamente "essenziale", che mi hanno fornito e' impostata in questo modo:

BLOCK 0

Offset

0x0000 ....

0x0001 ....

ecc.

uno dei dati che mi interessa si trova all' offset 0x0024

Per motivi logistici non ho la possibilita' di collegarmi ai dispositivi per fare delle prove e sto impostando "offline" il tutto in modo da ridurre al minimo i tempi di messa in funzione.

Qualcuno puo' gentilmente dirmi se la porta da leggere va definita con i valori citati (es. 3h:24h) o c'e' qualche strano "conto" da fare ?

E' quella voce "offset" che mi crea un po' di disagio e visto che le porte in winlog vanno definite a mano una per una, non vorrei ritrovarmi a fare tentativi in loco sino a trovare la combinazione giusta. :(

Grazie in anticipo per eventuali risposte.

Link al commento
Condividi su altri siti


offset s'intende che a partire dal primo indirizzo (non specificato quindi è al 90% l'indirizzo 40001) devi sommare il valore indicato quindi 0x0024 sarà indirizzo 40025.

Come mai non puoi provare?? E' lontano da te?

Qualcuno puo' gentilmente dirmi se la porta da leggere va definita con i valori citati (es. 3h:24h) o c'e' qualche strano "conto" da fare ?

questa domanda scusami ma non riesco a capirla ho cercato di interpretarla, ma niente.... L'esempio tra parentesi non mi dice niente e poi h sta per esadecimale o per cosa? dici di aver citato i valori ma 24h lo associo a 0x0024 ok, ma 3h dove l'hai citato? i due punti cosa significano?

Tante domande anch'io ma forse è perchè non conosco winlog.

Ad ogni modo l'indirizzamento modbus parte da 40001 fino a 49999 (per le parole di uscita). Solitamente l'unico conto che devi fare è sommare 1 perchè per molti strumenti la prima parola parte da 0.

Il codice o funzione modbus è 03 = lettura holding register perchè presuppongo si parli di questo ma anche se fosse input register all'indirizzo 30001 il discorso non cambia solo che la funzione modbus è 04

Link al commento
Condividi su altri siti

Grazie per il chiarimento.

questa domanda scusami ma non riesco a capirla ho cercato di interpretarla, ma niente.... L'esempio tra parentesi non mi dice niente e poi h sta per esadecimale o per cosa? dici di aver citato i valori ma 24h lo associo a 0x0024 ok, ma 3h dove l'hai citato? i due punti cosa significano?

Tante domande anch'io ma forse è perchè non conosco winlog.

La notazione "0xNNNN" indica un numero hex "NNNN" e ho pensato di definire le varie porte senza convertire in decimale.

Il "3h" e la funzione mobus (in hex) che hai giustamente indicato (lettura/scrittura), ho messo quella ma poteva essere anche la "4h" (sola lettura).

La documentazione di winlog riporta questo riguardo l' inserimento delle porte:

--------------

Quando si utilizza uno di questi protocolli (modbus n.d.r.), nell' indirizzo di ogni porta deve essere specificata la funzione di lettura: se la porta dovrà essere scritta , il software provvederà in automatico a sostituire alla funzione di lettura la relativa funzione di scrittura.

E' possibile specificare l'indirizzo in uno dei seguenti modi:

30001 (Funzione 3 ed indirizzo 0001) : formato obsoleto.

3:1 (Funzione 3 ed indirizzo 1) : nuovo formato decimale.

3h:1h (Funzione 3 ed indirizzo 1) : nuovo formato esadecimale.

Nel formato esadecimale il carattere “h” deve essere minuscolo.

--------------------

La funzione di scrittura si abilita spuntando una casella durante la definizione della porta, quindi e' indiffente usare la "3" o la "4" , molto comodo nei copia/incolla durante la creazione di varie porte "simili" nel formato, limiti , unita' di misura, ecc.

Ad ogni modo l'indirizzamento modbus parte da 40001 fino a 49999 (per le parole di uscita). Solitamente l'unico conto che devi fare è sommare 1 perchè per molti strumenti la prima parola parte da 0.

Questa e' la notazione con cui ho gia' avuto a che fare con dispositivi terzi e che winlog definisce obsoleta, solo che questo "offset" mi ha messo qualche dubbio.

Infatti, in un' altra pagina della documentazione fornita viene citato un "blocco 15" dove al posto della voce "offset" c'e' "address".

In questa colonna le varie voci sono in forma:

0x0ff0

0x0ff2

ecc.

Forse con il byte piu' significativo si riferiscono al blocco (15 = 0F) mentre il byte meno significativo (F0,F2,...) rappresenta al funzione.

Come mai non puoi provare?? E' lontano da te?

No, e' che il bus tra i 3 dispositivi lo devono ancora stendere e quindi dovrei operare direttamente sulla scheda del pannello, ma il locale in cui si trovano e' "particolare": si puo' entrare per poco e quando c'e' un buco di tempo, in piu' c'e' una procedura di vestizione all' ingresso.

In pratica devo remotare il monitoraggio di alcune temperature, uno stato di start/stop e uno/due allarmi.

Niente di sofisticato o pericoloso, il tutto solo per evitare all' operatore di cambiarsi continuamente nel fare la spola tra un locale e l'altro.

offset s'intende che a partire dal primo indirizzo (non specificato quindi è al 90% l'indirizzo 40001) devi sommare il valore indicato quindi 0x0024 sarà indirizzo 40025.

Quindi nella peggiore delle ipotesi dovrei solo cambiare, aggiungendo 1, ai vari indirizzi delle porte che mi servono?... se e' cosi' non e' una cosa pesante poiche' saranno 15/18 punti.

Grazie ancora, se ci sono altre informazioni benvengano. ;)

Link al commento
Condividi su altri siti

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