Simo.PLC Inserito: 20 giugno 2022 Segnala Share Inserito: 20 giugno 2022 Ciao ragazzi, Ho un problema in una FB di GX Works 3, sto cercando di fare una sottrazione di due variabili che hanno come tipo delle Double Words Signed. Queste due variabili si incrementano, la seconda variabile è più bassa della prima, ma il risultato è sempre alto e questo è strano. Quindi c'è un errore che non ho capito, chi può aiutarmi? Link al commento Condividi su altri siti More sharing options...
Lucky67 Inserita: 20 giugno 2022 Segnala Share Inserita: 20 giugno 2022 2 ore fa, Simo.PLC ha scritto: risultato è sempre alto Cosa vuol dire avere un "risultato alto" in una sottrazione? Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 20 giugno 2022 Segnala Share Inserita: 20 giugno 2022 Magari è solo sbagliata l'interpretazione del tuo risultato o della tua interpretazione del risultato finale, quando compili l'istruzione relativa se ci fosse uno dei due operandi non conformi all'istruzione non ti farebbe compilare il tutto e pure il risultato deve essere conforme, perciò mi sa che è la tua interpretazione non corretta. Dove metti il risultato in una Label o in un Device? In quest ultimo caso potrei capire che possa esservi un'interpretazione sbagliata del risultato, nel caso di una label no. Che bello quando tutto era interpretabile liberamente dai Device e era il programmatore a capire come interpretare il risultato di un'operazione, come sul buon vecchio Developer.... Link al commento Condividi su altri siti More sharing options...
lelos Inserita: 20 giugno 2022 Segnala Share Inserita: 20 giugno 2022 ciao puoi far vedere il codice ? Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 21 giugno 2022 Segnala Share Inserita: 21 giugno 2022 11 ore fa, leleviola ha scritto: Che bello quando tutto era interpretabile liberamente dai Device e era il programmatore a capire come interpretare il risultato di un'operazione, come sul buon vecchio Developer. No, Lele, proprio i linguaggi strettamente tipizzati sono un modo di evitare errori. Prima buttavi tutto in una word e poi una volta lo vedevi come INT, oppure come UINT, o peggio come WORD (array di bit) o un BCD. Ben vengano i warning di tipo non corretto, che ti fanno vedere che stai probabilmente facendo una cavolata... Permettevano dei trucchi niente male (già dai tempi degli assembler...) ma la possibilità di errore era piuttosto grande e di difficile individuazione. Quello che purtroppo manca nei linguaggi IEC (e il GX3 non lo è molto...) è il casting automatico ed esplicito. W il C. Link al commento Condividi su altri siti More sharing options...
Simo.PLC Inserita: 21 giugno 2022 Autore Segnala Share Inserita: 21 giugno 2022 Cerco di spiegarmi meglio, sto usando una funzione che si chiama "D-" in una FB, il primo valore della sottrazione dovrebbe essere più grande di 500 rispetto al secondo, perché questi numeri sono i risultati di due operazioni presenti in un Program e aumentano sempre a seconda delle volte volte in cui entrano in determinati if. Le variabili che sto usando sono delle label, in particolare il primo numero è una variabile di input, il secondo numero è un variabile di IN/OUT e il risultato è una variabile interna. Avreste dei suggerimenti per avvicinarmi alla risoluzione del problema? Magari facendo qualche prova. Grazie mille Link al commento Condividi su altri siti More sharing options...
leleviola Inserita: 21 giugno 2022 Segnala Share Inserita: 21 giugno 2022 5 ore fa, Ctec ha scritto: .. Permettevano dei trucchi niente male (già dai tempi degli assembler...) ma la possibilità di errore era piuttosto grande e di difficile individuazione. Si Andrea è vero, la mia era una divagazione "nostalgica" sul tema Link al commento Condividi su altri siti More sharing options...
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