Vai al contenuto
PLC Forum


Info Prodave


Messaggi consigliati

Inserito:

Salve a tutti!!

Ho la necessita di passare l'ora del plc ad una applicazione vb con prodave..

Premetto che su PLC s7-300 l'ora del sistema è in una doppiaword: es. MD100

Domanda:

. E possibile, mediante prodave, passare dal plc a vb l' MD100?

Quindi mediante il comandi res= d_field_read(blockno, no, amount, value_byte(0))

Fin'ora il comando d_field_read l'ho provato solo con i byte e funziona.

Grazie a tutti..

Spero sia stato chiaro..


Inserita:

ciao,

non vedo il problema

Quindi mediante il comandi res= d_field_read(blockno, no, amount, value_byte(0))

Per esempio, carica l'ora dal sistema su i primi 3 byte del DB10

blockno = 10  // DB10
no = 0        // offset from byte 0
amount = 3    //  3 bytes

value_byte(0) //  byte ora
value_byte(1) //  byte minuti 
value_byte(2) //  byte secondi

Saluti

Inserita:

Il formato dell'ora del plc è espresso in Millisecondi dalla mezzanotte.

Quindi non è detto che nel byte0 ci sia l'ora, nel byte 1 ci siano i min e nel byte2 i secondi..

E visto che a me servono principalmente i millisecondi, non penso che questi vadano in un byte..

Perchè il byte arriva al massimo a 256..e i millisecondi a 999..

comunque.. ho risolto facendo queste operazioni...

prendo i valori dei byte, es. dal "db10"

e ho il valore dei millisecondi dalla mezzanotte suddiviso in byte..

( che non è byte0=ora, byte1= min ecc..)

controllo se il valore dei byte e' negativo, se lo è, aggiungo 256..

e ricompongo la mia dword nel vb ..

quindi: byte0 + byte1*2^8 + byte2*2^16 + byte3*2^24 = msec dalla mezzanotte..

e poi da qui una serie di operazioni per trovare l'ora, i min, i sec e i millisec...

ciao a tutti..

Inserita: (modificato)
Ho la necessita di passare l'ora del plc ...
Il formato dell'ora del plc è espresso in Millisecondi dalla mezzanotte.

No.

C'e' anche la possibilita di ricavarla direttamente a byte senza fare nessun calcolo.

Se dopo ti serve trasferire la word oppure Dword per i milisecondi, allora ne prendi 2 byte oppure 4.

Ripetto, non vedo il problema.

Modifica:

Leggi questa discussione.

C'e' ne sono diverse vie per ricavare l'ora in formato byte.

Poi, se ti servono i msec. sono su 2 byte. ;)

Modificato: da Savino
Inserita:

Ho capito.. !!!

io prendevo la variabile in formato "TOD" TimeOfDay..

Invece devo prendere la variabile in formato "DT" Date_And_Time..

Ti ringrazio Savino..

A presto..

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