Vai al contenuto

Utilizzo Shape in movimento senza lo stato della shape

Home Forum Terminali operatore (Weintek) Utilizzo Shape in movimento senza lo stato della shape

Stai visualizzando 7 post - dal 1 a 7 (di 7 totali)
  • Autore
    Post
  • #35813
    Anonimo
    Inattivo

    Dispongo di un HMI Weintek MT8050ie e vorrei muovere una immagine sul display lungo la sola asse Y utilizzando il valore presente su di uno specifico registro del PLC collegato via MODBUS. Il problema che sto riscontrando è che, da quanto letto sul manuale, il registro impostato nella configurazione del controllo “Shape in movimento” viene utilizzato non solo per leggere la posizione ma anche per leggere il valore dello stato da utilizzare per la Shape

    Il mio problema è che il registro del PLC che utilizzo contiene solo la posizione da usare per l’asse Y e i registri precedenti o successivi a questo contengono altre informazioni per cui non possono essere assolutamente utilizzati. C’è qualche modo per muovere una immagine lungo un asse Y, X o entrambi a partire da un unico valore contenuto in un registro ?

    #38977
    Sergio Bertana
    Amministratore del forum

    Quindi mi sembra di capire che non puoi allocare registri contigui sul PLC. In questo caso nulla di più semplice, relazioni l’oggetto Shape in movimento a variabili LW del terminale anzichè ai registri diretti del PLC. Poi tramite l’oggetto Trasferimento ciclico trasferisci i registri del PLC sulle variabili LW del terminale.

    #38979
    Anonimo
    Inattivo

    Avevo intuito che la strada potesse essere una soluzione di questo tipo ma non avendo molta esperienza con l’HMI non conoscevo il componente “Trasferimento ciclico”. Vedo di mettere in opera il meccanismo poi posto un aggiornamento. Intanto grazie mille del suggerimento.

    #38994
    Anonimo
    Inattivo

    Ho effettuato qualche prova con la soluzione proposta e il meccanismo funziona, ma sto incontrando un altro problema dovuto al fatto che il dispositivo PLC mi fornisce un valore float (su du registri Word consecutivi) che rappresenta la posizione che dovrei utilizzare per pilotare lo spostamento dell’oggetto Shape ma quest’ultimo accetta la posizione solamente in formato Integer in un registro Word. C’è qualche modo di convertire (ed eventualmente scalare) la posizione float letta dal PLC e inserirla in un registro Word per l’oggetto “Shape in movimento” ?

    #38995
    Massimo
    Moderatore

    Presumo che il problema lo si possa risolvere in 2 modi:
    a) creando una nuova variabile intera sul PLC in cui inserire il valore di posizione float convertito in intero. Da HMI si andrà a leggere la nuova variabile intera.
    b) usando una macro lato HMI che legge il valore float e lo appoggia in una variabile intera del pannello.

    #39000
    Anonimo
    Inattivo

    La soluzione (a) non è attuabile in quanto non si ha nessuna possibilità di accedere alla logica del PLC.
    La soluzione (b) mi sembra quella più logica e adattabile alle situazioni che di solito si trovano in ambito reale, ma non riesco a metterla in pratica: come è possibile scalare (eventualmente utilizzando una macro) il valore di un registro PLC al momento della sua lettura per poi depositare il risultato in un registro interno all’HMI ? Mi sarei aspettato di trovare questa possibilità nel controllo “Trasferimento ciclico” invece non c’è. Come posso procedere allora ?

    #39001
    Massimo
    Moderatore

    In questo progetto EasyBuilderPro, viene fatto muovere un “Moving Shape” sull’asse X partendo da un valore float letto dal PLC SlimLine in Modbus e presente ad indirizzo 40000. Viene utilizzata una macro a tempo che oltre a leggere il valore dal PLC, lo scala e lo memorizza nella LW1 dell’HMI (nella LW0 c’è lo stato del MovingShape che eventualmente si può usare per cambiare la dimensione dell’oggetto). Lo slider presente nella pagina può servire per vedere il comportamento del Moving Shape se si disattiva la macro.

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