Frank681 Inserito: 6 ore fa Segnala Inserito: 6 ore fa Salve ho un problema leggendo dei valori da analizzatori di rete tramite un webserver GAVAZZI. Sto leggendo a step 21 strumenti , alcuni campi resituiti in real non sono corretti, con un CASModbusScanner i valori vengono letti correttamente, per cui il problema è nell mia lettura, in rete ho trovato un esempio su come leggere e fare swap dell word, il mio problema e poi andare a scivere il valore in un db in cui i device sono indicizzati. Come posso fare? stralcio di programma IF "MB_TCP_STATUS".DONE THEN // FOR #i := 0 TO 79 DO // // Unisce due WORD in una DWORD e la converte in REAL mantenendo il pattern di bit // #tempDWord.%W1 := "MOD_TCP_PARK_W".DataRaw[#i * 2]; // Word alta // #tempDWord.%W0 := "MOD_TCP_PARK_W".DataRaw[#i * 2+1]; // Word bassa // // Converte la DWORD in REAL tramite interpretazione dei bit // #tempreal[#i]:= DWORD_TO_REAL (#tempDWord); // END_FOR; "MOD_TCP_RDATA".Device["MB_TCP_STATUS".STEP_TCP] := "MOD_TCP_PARK".PRK; "MB_TCP_STATUS".STEP_TCP := "MB_TCP_STATUS".STEP_TCP + 1; "MB_TCP_STATUS".REQ := FALSE; END_IF; Grazie
drn5 Inserita: 1 ora fa Segnala Inserita: 1 ora fa L'unico errore che vedo è che il ciclo FOR deve procedere a INCREMENT di 2.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora