Vai al contenuto
PLC Forum


Conversione Int_bcd


southofsanity

Messaggi consigliati

southofsanity

Faccio fatica ad impostare il tempo di un timer tramite pannello operatore. cpu312 e op73

Praticamente il timer lavora in bcd, ed il pannello in decimale o esadecimale, ma se faccio la conversione

su step 7 int_bcd mi da un esadecimale e il timer non viene impostato come volgio.

c'è qualche altro sistema o sbaglio qualcosa ?

Link al commento
Condividi su altri siti


Forse sbagli nel non pensre che gli ultimi WinCC flex fanno già la conversione automaticamente e tu stai facendo una ulteriore operazione inutile.

Se hai WinCC flex 2008 e relativi SP, non hai problemi. C'erano invece dele versioni precedenti che non facevano tale scalatura. Forse la 2005.

Verifica la versione di WinCC flex e, se il pannello non è integrato in STEP7, controlla solo bene come è dichiarata la variabile.

Link al commento
Condividi su altri siti

hai inserito la base dei tempi?

Ora non ho s7 sotto mano ma se vuoi convertire in S7 devi fare un or con la variabile da monitor trasformata in bcd e la base dei tempi (la vedi cercando il formato S5time sulla guida). praticamente se tu scrivi 5 possono essere 5 decimi, 5 secondi, 5 minuti, 5 ore a seconda di come strutturi il timer.

ecco cosa intendevo. ho trovato una vecchia discussione:

L     DBXX.DBW X       // Dec. [0.1s]
      ITB  
      L     W#16#1000        // Base dei tempi in decimi di secondo
      OW    
      T     DBXX.DBW Y      // Timer T... [Hex]

Modificato: da ken
Link al commento
Condividi su altri siti

Io uso WinCC2007 e con un progetto con OP77 ho avuto lo stesso problema, in pratica la scalatura della base tempi in WinCC non funzionava, ho chiesto lumi alla Hot Line ma non hanno saputo darmi indicazioni valide, a quel punto mi sono creato una fuzione ad hoc per convertire le variabili tempo del pannello nel formato S5Time con le basi tempo necessarie (leggi Ken ) e ho risolto il problema.

Link al commento
Condividi su altri siti

Se la variabile è dichiarata come #S5TIME, nel pannello operatore basta impostare il tempo in ms. Non importa se il valore impostato supera il limite imposto dai 16 bit, perché è il pannello che si occupa della conversione di quanto impostato nel formato corretto. Il limite massimo rimane quello del formato #S5TIME, ovvero 9990 secondi.

Basta poi fare una semplice scalatura per impostare il tempo nell'unità di misura desiderata.

Link al commento
Condividi su altri siti

Io consiglio la scalatura fatta nel plc (con una funzione simile a quella che ho scritto sopra) per chi utilizza diversi pannelli e un software sempre simile o poco differente. Cambiando HMI a volte cambiano le cose, cambiano le scalature. Se sono nel progetto s7 non cambi nulla anche cambiando monitor.

Questa considerazione vale per chi è costretto ad utilizzare monitor, drive etc etc etc sempre diversi. Per chi ha standardizzato le cose ogni strada è uguale

Link al commento
Condividi su altri siti

E' chiaro che il software aggiornato risolve o tenta di risolvere i problemi delle versioni precedenti, comunque la soluzione proposta da Ken la quoto sicuramente, visto che ho dovuto adottarla anch'io e poi perché mi secca enormemente continuare a "cambiare" software per problemi che dovrebbero essere oggetto di semplici aggiornamenti a carico della casa madre.

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