mbronzetti Inserito: 2 febbraio 2006 Segnala Inserito: 2 febbraio 2006 Qualcuno sa dirmi che significato hanno queste variabili interne dell'fb standard 243 div:16 ins5?z1z2ovfehz3=0z4=0z3z4Grazie
floppydisco Inserita: 2 febbraio 2006 Segnala Inserita: 2 febbraio 2006 z1 = dividendo (word KF)z2 = divisore (word KF)ov = bit che indica un overflow nella divisione (es divisione per zero) (bool)feh = non ricordo (ma non l'ho mai usato) (bool)z3=0 = risultato della divisione è zero (bool)z4=0 = resto è zero (bool)z3 = risultato della divisione (word KF)z4 = resto della divisione (word KF)
mbronzetti Inserita: 2 febbraio 2006 Autore Segnala Inserita: 2 febbraio 2006 Grazie x la risposta tempestiva,ma se io non volessi utilizzare i campiovfehz3z4potrei non assegnarli e se si come?
mbronzetti Inserita: 2 febbraio 2006 Autore Segnala Inserita: 2 febbraio 2006 E xche' non riesco ad ottenere un risultato all'operazione 350 diviso 600
Savino Inserita: 2 febbraio 2006 Segnala Inserita: 2 febbraio 2006 E xche' non riesco ad ottenere un risultato all'operazione 350 diviso 600Perche' il blocco solo elabora dei numeri enteri.( fixed point binary numbers )350/600=0.583z3=0z4=350600/350 = 1,7z3=1z4=250 ( 600-350)Dovresti prima moltiplicare x 10 e poi dividere.Poi, nella visualizzazione BCD, aggiungi uno zero nel tetrade piu' a sinistra.Ciao.
cagliostro Inserita: 2 febbraio 2006 Segnala Inserita: 2 febbraio 2006 350/600=0,58 essendo la FB243 una divisione tra due numeri interi (formato singola word), l'istruzione non è in grado di gestire il punto decimale, a meno che tu non ricorra ad operazioni preliminari tipo moltiplicazioni per 10 100 etc. etc. in modo da riuscire a trattare il dato in FB243. In ogni caso devi fare attenzione a non "sforare" dalle capacita massime consentite dal calcolo. La seconda via sarebbe quella di utilizzare le funzioni IN VIRGOLA MOBILE, una volta vendute separatamente (codice Siemens 6ES5 845-1GP11) dal pacchetto di programmazione S5.In questo modo utilizzando la FB15 (conversione da intero a virgola mobile) e successivamente la FB20 (divisione tra due numeri in virgola mobile) otteresti quello che vuoi.Saluti
mbronzetti Inserita: 2 febbraio 2006 Autore Segnala Inserita: 2 febbraio 2006 Tutto molto piu' chiaro ,Grazie
floppydisco Inserita: 2 febbraio 2006 Segnala Inserita: 2 febbraio 2006 ma se io non volessi utilizzare i campiovfehz3z4io ho riservato un bit "functionless bit" (es M255.7) da utilizzare in questi casi (oppure per chiudere un ramo non utilizzato che non vuoi cancellare)
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