Valori errati su visualizzazione registri SAP Selema
Home › Forum › Terminali operatore (Weintek) › Valori errati su visualizzazione registri SAP Selema
- Questo topic ha 4 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 13 anni, 10 mesi fa da
Sergio Bertana.
-
AutorePost
-
Giugno 9, 2011 alle 8:58 am #35029
Anonimo
OspiteStò utilizzando un terminale Weintek connesso a due dispositivi, uno è un PLC Siemens ed uno è un sistema di posizionamento SAP (Stand-Alone Positioning system) della Selema connesso in modbus RTU.
Ho realizzato pagine in cui visualizzo variabili sia dal PLC Siemens che dal dispositivo Selema. La stranezza è che mentre non ho problemi con le variabili del PLC Siemens, alcuni registri Selema sono visualizzati correttamente mentre altri no. Dove sbaglio, avete qualche idea in merito ?
Giugno 9, 2011 alle 9:18 am #36779Sergio Bertana
Amministratore del forumHo dato una occhiata all’estratto della documentazione Selema che mi hai mandato ed ho notato che utilizza registri a 32 bits, quindi ogni registro occupa lo spazio di indirizzamento di due registri Modbus (Modbus usa registri a 16 bits).
Registro 10 profile_acceleration, Indirizzo: 0x800A, Range: [0,…,0x7FFFFFFF]
Registro 11 profile_deceleration, Indirizzo: 0x800B, Range: [0,…,0x7FFFFFFF]
Registro 12 profile_velocity, Indirizzo: 0x800C, Range: [0,…,0x7FFFFFFF]Il pannello Weintek può gestire registri a 32 bits sia come doppia word sia come variabile float, però quando si utilizza l’indirizzamento a 32 bits vengono letti due registri modbus consecutivi. Ora il problema stà nel fatto che Selema probabilmente per mantenere la compatibilità con il suo formato standard di comunicazione S-Net ha previsto l’indirizzamento dei registri ad indirizzi consecutivi, e non utilizzando solo indirizzi pari (Saltando ciòè un indirizzo per mantenere l’indirizzamento a 16 bits tipico del modbus).
Se inserisci più oggetti di visualizzazione in una pagina del terminale, il software del terminale per ottimizzare la comunicazione raggruppa le interrogazioni eseguendo una sola interogazione di più registri consecutivi. Ma il registro 0x800B (32779) per il terminale usa metà valore del registro 0x800A (32778), e questo ti crea il problema.
La prova più semplice è quella di inserire un solo oggetto di visualizzazione in una pagina e verificare che funzioni correttamente, essendoci un solo oggetto non vengono effettuate ottimizzazioni in lettura quindi se visualizzi il registro 0x800A il terminale richiederà due registri modbus a partire da indirizzo 32778.
Giugno 9, 2011 alle 10:03 am #36780Anonimo
OspiteSi ho fatto la prova inserendo un solo oggetto di visualizzazione in una pagina ed effetivamente provando con diversi indirizzi la visualizzazione e l’inputazione del valore funzionano correttamente.
Giugno 9, 2011 alle 10:06 am #36781Sergio Bertana
Amministratore del forumAllora per risolvere il problema occorre impedire al terminale di ottimizzare la comunicazione, forzandolo ad eseguire interrogazioni modbus singole (Una interrogazione per ogni oggetto grafico). In questo modo per ogni oggetto verrà inviata una richiesta modbus specifica con indicazione dell’indirizzo del registro e del numero di registri modbus da leggere (1 se registro a 16 bits, 2 se registro a 32 bits).
Nel menù Edit -> Parametri di sistema -> Dispositivo, scegliendo il protocollo Modbus RTU (Adjustable), occorre definire intervallo pacchetti “0“, e Max comando lettura e scrittura “2“, vedi screenshot.
Giugno 9, 2011 alle 10:19 am #36782Sergio Bertana
Amministratore del forumAggiungo la segnalazione di un bug software, il programma EasyBuilder 8000 (Versione 4.4.1 multilingua) pur definendo i valori corretti nel protocollo, limitando a 0 pacchetti ed a 2 words i comandi di lettura e scrittura, continua ad ottimizzare le interrogazioni.
Se tu hai installato questa versione di programma, ti consiglio di eseguire un downgrade alla versione di EasyBuilder 8000 (Versione 3.4.5 Italiano), disponibile per il download dal sito.
Il bug verrà risolto dalle versioni succesive del programma.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.