Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Variabili Real


Messaggi consigliati

Inserito:

ragazzi è possibile settare un bit in una variabile di tipo real ?


Inserita: (modificato)

I bits di una variabile di tipo real, secondo la posizione, possono corrispondere al segno, appartenere alla caratteristica o alla mantissa.

Settare un bit di una variabile real è possibile, ma non ha molto senso.

Modificato: da Livio Orsini
Inserita:

ciao Livio grazie di avermi risposto si hai mirrato al punto giusto era proprio l' ultimo bit cioe quello del segno che mi interessava .allora come è la procedura ? non capisco perché mi dici che non ha senso

Inserita:

Non fai prima a moltiplicare la variabile per -1 quando ti serve?

ciao

SDD

Inserita:

non so che diavolo di risposta è questa


la mia domanda era chiara come si fa a settare un bit in una variabile real se si fa prima in un modo o in un altro non era la domanda

Inserita:

parlavi del segno.... per cosa altro uno dovrebbe manipolare il segno se non per cambiarlo o controllarlo?

comunque la prossima volta non mi intrometto visto che sei così arrogante...

addio

SDD

Inserita:

ma se ho una variabile esterna analogica che cambia segno non sono io a decidere quando cambiare segno

Inserita:

ma se ho una variabile esterna analogica che cambia segno non sono io a decidere quando cambiare segno

???

Se proprio vuoi cambiare lo stato di un bit di una variabile REAL, fai semplicemente come con una qualsiasi variabile DINT.

Ma dubito che il risultato sarà quello che ti aspetti.

Invece che lamentarti della qualità delle risposte, perché non dici cosa vorresti fare?

Inserita:

Quello che voglio fare l'ho scritto nella mia prima domanda che è semplicemente sapere come si setta un bit in una variabile real . Per quanto riguarda DINT se intendi <nome_variabile>.x0 dove x sta per indicare il bit e il numero sta ad indicare la posizione del bit questo non funziona con la variabile reale

Inserita:

Sì, con la variabile REAL la sintassi nomevar.%Xnn non funziona.

E forse un motivo c'é: è un'operazione che non ha senso.

Per questo continuiamo a chiederti perché vuoi fare quell'operazione.

Ma tu ti ostini soltanto a dire che vuoi settare un bit di una real, senza dare spiegazioni.

Se proprio lo vuoi fare, usa variabili di un DB non ottimizzato e accedi direttamente all'indirizzo del bit.

Ma sono quasi sicuro che ti porterà solo a fare pasticci.

Inserita:
Ma sono quasi sicuro che ti porterà solo a fare pasticci.

Lo credo anch'io.

Giuseppe Signorella
Inserita: (modificato)

Oltre alla soluzione consigliatoti da Batta, puoi utilizzare i merker,

Ti crei due variabili una real ed una bool

ad esempio "lettura real" %MD100

e "setBIT" %M100.7 (per il più significativo) oppure %M103.0 (per il meno significativo). Questo a secondo del BIT che vuoi modificare.

Modificato: da Giuseppe Signorella
Inserita: (modificato)

e' un po come dire , posso andare a 100 Km/h ora contro un muro ?

Risposte : " Si ma non ha senso , ti fai male e puoi morire e/o fare danni agli altri "

Controrisposta :"Non mi interessa quello che succederà , la mia domanda era se potevo andare contro un muro a 100 Km/h"

:D cose inverosimili .....Mettiti li e prova a settare il bit nella real invece di continuare a parlare per niente e consumare spazio web oltreche il tempo alla gente che deve lavorare ....

Modificato: da walterword
Inserita:

Ciao, io se fossi in te farei così per capire se cambia di segno:

IF VarReal >= 0.0

THEN

bVarPositiva:=TRUE; bVarNegativa:=FALSE;

ELSE

bVarPositiva:=FALSE; bVarNegativa:=TRUE;

END_IF

così giochi con i bit come vuoi... :-)

ciao

Inserita:

scusa un po walterword un conto e dire se si puo fare ed un conto e dire di non aver senso. alla mia prima domanda mi è stato risposto dal sig. Livio Orsini in questo determinato modo e cioè " che si puo fare". io adesso non voglio altro che sapere come e il metodo a prescindere se sbatti su sto ca**o di muro che hai davanti agli occhi , perché se avresti letto tutta la discussione evidentemente no avresti fatto questa affermazione. e se credi che lo spazio web e solo tuo sguazzaci fin quanto vuoi che nessuno ti caga.

Giuseppe Signorella
Inserita:

Ragazzi, vi invito a non polemizzare, non se ne trae alcun beneficio, se non quello di portare alla chiusura della discussione.

Pertanto chiudiamola qui.

Grazie della collaborazione.

Inserita:

ora torniamo a noi io tutto questo nel mio programma l' ho già fatto e riesco ad ottenere il segno - e + quanto voglio . il tutto nasce dal fatto che se andiamo sul manuale siemens s7-1200 e andiamo nella sezione dei tipi di dati nella parte dove vengono spiegate le variabili REAL c'è uno schema dove dice come è composta la variabile REAL e cioè nella prima parte c'è la mantissa di 23 bit poi l' esponente di 8 bit ed infine l'ultimo è il segno. fin qua credo che non ci siano dubbi per nessuno .ora io ho una scheda rs485 MODBUS RTU dove un registro è il mio dato in formato REAL ed in un altro registro ho un bit che mi cambia in base al segno. volevo solo capire se questo bit mi poteva sostituire l'ultimo bit della variabile REAL in modo tale da cambiare segno senza a stare a fare altri piccoli programmi per leggere una variabile che cambia segno .quindi sarebbe bastato un input ed una bobina dove l' input era il bit in formato BOOL e la bobina il settaggio dell' ultimo bit della variabile REAL

Inserita:

il formato real si usa per trasportare informazioni di un certo tipo .peri bit , bool , ingressi , uscite , nel modbus sono previste altre operazioni , altri codici funzione ect

Poi fai un po quello che te pare ;)

Il real come ti ha spiegato Livio e' composto in un certo modo , e' codificato in un certo modo con esponente , mantissa ect ....

Con il martello del carpentiere o del dentista puoi certamente scavare le tracce in un muro , ma il martello del carpentiere e' piu indicato ad infilare chiodi , e quello del dentista a fare altro

Hai capito o no quello che intendo dirti ?

Inserita:

Marmoffa se spiegavi subito quello che hai spiegato nel #17 si risparmiava un sacco di inutili polemiche.

Comunque ancora dopo quanto hai scritto non ne vedo l'utilità, ma questo mi interessa poco.

Inserita:

Allora Livio nessuna ha mai parlato di utilità della cosa . Ma il tutto è nato dal fatto che tu mi hai risposto di si alla prima domanda e cioè che si poteva fare,ora mi chiedo perché alla terza domanda non mi hai risposto più? Se mi hai risposto che si poteva fare non volevo altro che sapere come si faceva. La mia politica è nata dal fatto che non ottenevano la risposta che avevo chiesto tutto qua.

Giuseppe Signorella
Inserita: (modificato)

marmoffa,

l'errore di fondo sta proprio nel fatto che non hai spiegato cosa volevi fare fin dal principio. Meno informazioni si danno, e più difficile diventa dare una risposta appropriata e coerente.

Spesso prima di rispondere, quando una domanda è senza senso, onde evitare di dare risposte inappropriate, si cerca di capire quale sia lo scopo della stessa.

Esattamente come è successo in questo caso.

Di risposte e soluzioni ne hai avute, (Una te l'ho data io ed una Batta, non ricordo se ce ne sono altre). Probabilmente se non ti vanno bene, è perchè non sono appropriate a quello che volevi fare tu. E questo proprio perchè sei stato poco chiaro.

Ciao e buon proseguimento.

Modificato: da Giuseppe Signorella

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