Vai al contenuto

Operazioni con numeri in virgola mobile

Home Forum Terminali operatore (Weintek) Operazioni con numeri in virgola mobile

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35890
    Stefano
    Partecipante

    Dovrei operare dei calcoli utilizzando numeri in virgola mobile (float) all’interno di una macro. Come posso passare le variabili dal pannello alla macro per i valori di set e dalla macro al pannello per la visualizzazione dei risultati. Avete degli esempi ?

    #39236
    Sergio Bertana
    Amministratore del forum

    Sugli oggetti di Visualizzazione/Inputazione numerica è possibile definire come formato dati il tipo 32-bit Float, in questo modo il valore che definisci verrà trattato come un numero a virgola mobile. Come vedi in questo screenshot ho definito un oggetto di inputazione numerica per impostare il valore di Set appogiando il valore sulla LW 0.

    Ho inserito un analogo oggetto per la visualizzazione del risultato indicando come indirizzo letto la LW 2. Nota: ho saltato la LW 1 perchè le variabili float sono a 32 bits e quindi utilizzano due LW (LW 0 e 1 per il Set, LW 2 e LW 3 per il risultato). Nella macro che esegue l’operazione eseguita ciclicamente ogni secondo ho scritto:

    macro_command main()
    float Var
    GetData(Var, “Local HMI”, LW, 0, 1)
    Var=Var/10.5
    SetData(Var, “Local HMI”, LW, 2, 1)
    end macro_command

    Come vedi il valore delle LW 0/1 viene copiato nella variabile locale Var, viene poi eseguita la divisione per 10.5 ed il risultato è appoggiato nelle LW 2/3. Ecco lo screenshot del programma eseguito sul simulatore. Come vedi il numero 255.80 viene diviso per 10.5 dalla macro e viene visualizzato il risultato 24.36 (Download programma).

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