Vai al contenuto

Trasferire valori tra variabili in linguaggio IL

Home Forum Programmazione IEC 61131 (LogicLab) Trasferire valori tra variabili in linguaggio IL

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #35421
    Alessandro
    Partecipante

    Ho questo problema, vorrei trasferire in una task IL il valore di una variabile in un’altra variabile, quando una certa condizione è verificata. Credo che potrei cavarmela con un JUMP, ma non sono sicuro della sintassi Jump/Etichetta.

    Il mio problema è calcolare la velocità di una macchina (In colpi al minuto), in pratica campiono per 60 secondi i colpi effettuati, scaduti i 60 secondi trasferisco il valore di Counter.CV nella variabile VelocitaMacchina. Come si scrive correttamente in linguaggio IL questa sequenza.

    #37799
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice programma che esegue quello di cui tu hai bisogno (Stampa, Download sorgente). Come vedi l’ingresso DI00 del modulo CPU (%IX255.0) gestisce il conteggio dei colpi macchina con il counter SCounter.

    Ogni 60 secondi il timer TBase termina la temporizzazione e viene eseguito il trasferimento del valore del contapezzi nella variabile velocità macchina MSpeed. Nello stesso istante viene eseguito il reset del counter di conteggio colpi macchina.

    #37831
    Alessandro
    Partecipante

    Provato e funziona, non ho ben capito la sintassi del Jump. Nella soluzione che mi hai proposto, il temporizzatore dei 60 secondi parte al Run del PLC e cicla in continuo. Se dovessi mettere la condizione che il temporizzatore di 60 secondi parta con lo stato di “Macchina in funzione” cosa devo fare ?

    #37832
    Sergio Bertana
    Amministratore del forum

    Per sincronizzare il temporizzatore con lo stato di macchina in funzione (Nel mio esempio è l’ingresso %IX255.1) occorre modificare il ramo:

    LDN TBase.Q
    ST TBase.IN
    JMPC Label (* Salto se tempo non trascorso *)

    Nel modo:

    LD %IX255.1
    ANDN TBase.Q
    ST TBase.IN

    LDN TBase.Q
    JMPC Label (* Salto se tempo non trascorso *)

    In pratica il timer si attiva solo se ingresso di macchina in funzione è attivo e l’uscita timer è disattiva, mentre il salto alla etichetta si deve sempre effettuare salvo quando il timer ha terminato il conteggio (Questa situazione dura un loop di programma).

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