Vai al contenuto

Valori errati su visualizzazione registri SAP Selema

Home Forum Terminali operatore (Weintek) Valori errati su visualizzazione registri SAP Selema

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Autore
    Post
  • #35029
    Anonimo
    Ospite

    Stò 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 ?

    #36779
    Sergio Bertana
    Amministratore del forum

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

    #36780
    Anonimo
    Ospite

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

    #36781
    Sergio Bertana
    Amministratore del forum

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

    #36782
    Sergio Bertana
    Amministratore del forum

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

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Devi essere connesso per rispondere a questo topic.