Vai al contenuto
PLC Forum


Istruzione


mazzinga

Messaggi consigliati

Buongiorno.

Volevo sapere se in FPWinPro esiste un istruzione dove al suo interno richiamo un POU e metto a zero tutti i Byte alti (che si trovano a 1).

Questo perchè,in alcune condizioni devo portare a zero tutti i Byte presenti a 1 in alcuni diversi POU,ho dato uno sguardo al manule ma non ho trovato nulla.

Grazie mille anticipatamente

Link al commento
Condividi su altri siti


Roberto Gioachin

La domanda che fai non è molto chiara, o meglio può essere chiara per tè che sai come sei abbituato a programmare, ma non per chi programma in modo diverso dal tuo.

Una prima cosa per esempio riguarda Byte che dici sono a 1. non è che ti sbagli con "Bit".

Altra cosa, se i bit sono disposti in modo consecutivo, hai sicuramente la possibiltà di portarli a zero, ma.....

FPWin-pro utilizza tutte le istrizioni IEC1131 più le istruzioni proprietarie, ne ha talmente tante che c'è l'imbarazzo della scelta.

Forse il problema stà nel trovare una soluzione, non un'istruzione.

Ciao

Roberto

Link al commento
Condividi su altri siti

Roberto ai perfettamente ragione,ti ringrazio che mi hai fatto notare l'errore,comunque volevo dire Bit

FPWin-pro utilizza tutte le istrizioni IEC1131 più le istruzioni proprietarie, ne ha talmente tante che c'è l'imbarazzo della scelta.

Sapresti indicarmi quale istruzione potrei utilizzare,o se esiste un'altro modo per mettre a zero i Bit nei POU da me voluti senza richiamare ogni singolo Bit settato a 1

Forse il problema stà nel trovare una soluzione, non un'istruzione

Scusami,se è presente un istruzione che faccia questo il problema non è risolto

Spero di essere stato chiaro

Grazie mille

Link al commento
Condividi su altri siti

Purtroppo sono diversi giorni che sto girando attorno al problema,senza avere risultati positivi.

Qualcuno saprebbe indicarmi come se effettivamente esiste un istruzione o un modo per mettere a zero dei Bit "parliamo naturalmente di variabili Booleane e se e posiibile di variabili Intere" in un intero tasck richiamabile da programma.

In pratica dovrei rimettere a zero le variabili booleano in interi tasck dafiniti in fase di programazione a secondo di determinate condizioni,quello che vorrei evitare e di prendere una per una e riportarla a zero.sono piu di 150 Variabili :o

Grazie

Link al commento
Condividi su altri siti

Roberto Gioachin

Per mettere a zero una serie di bit, questi devono essere consecutivi, vale a dire che questi devono fare parte tutti di una word o di una serie consecutive di word.

Se non utilizzi l'indirizzamento diretto, devi definire una stringa (array), in modo che il compilatore li possa indirizzare in una serie consecutiva di bit.

A questo punto puoi impostare a zero tutta la tua stringa con una istruzione "Copy".

Se non fai in questo modo, ho paura che ti tocca per forza resettare un bit per volta.

Una domanda, anche se i singoli bit da resettare fossero 150, perchè resettarli singolarmente ti crea problemi?

Non pensare di buttare proprio tanta memoria per fare questo!

Un suggerimento:

Io ti consiglio di provare a pensare se sia possibile far funzionare il tuo programma, senza utilizzare o ridurre al minimo le istruzioni di set e reset.

Oltre a non avere il problema che ora ti assilla, ottieni il vantaggio di poter controllare meglio il programma o le sequenze o quello che stai facendo.

Naturalmente capisco che questo dipende dal modo e dall'abitudine che si ha nel realizzare programmi, ma non ci si deve mai dimenticare di semplificare.

Un buon programma deve essere anche facile da capire.

Ciao

Roberto

Link al commento
Condividi su altri siti

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