Vai al contenuto
PLC Forum


Fpwin-pro - POU o sotto programmi


flavio-san

Messaggi consigliati

Ciao, chi è in grado di spiegarmi in poche righe (o meglio ancora dirmi dove trovare informazioni) su come realizzare dei sotto programmi richiamabili dal main utilizzando fpwin-pro?

Ho cercato e ricercato, sarò duro di comprendonio, ma non riesco proprio a capire come fare, oramai l'acronimo POU mi fa venire il mal di pancia :blink:

Flavio

Link al commento
Condividi su altri siti


del_user_56966

Apri FP-WIN PRO, e crea un nuovo progetto, quando sei qui

ai già creato il primo programma che puoi nominare alla crazione!

Per creare altri task, fai cosi,

1) Seleziona la voce POU (in questa fase e similari..)

2) Dal Menu < modifica > premi \Nuovo\POU

3) Da qui imposti il nome del nuovo task per esempio "GestioneCaldaie"

4) selezioni il tipo di linguaggio che vuoi utilizzare

5) Assegni il Task ai normali programmi, oppure a quelli su Interrupt, oppure lo metti in Standby...

Modificato: da alen
Link al commento
Condividi su altri siti

del_user_56966

Nel FP-WIN PRO i task sono dei veri e propri programmi, ovvero

potresti creare "Gestioneluci", "GestioneQuadroCabina" ecc.. per separare i compiti di un Impianto in più task,

quello che vuoi fare tu è creare delle librerie sia locali che per usi ripetitivi,

in questo caso non devi creare dei Task "Programma", ma dei Task "Funzione", oppure Task "Blocco Funzione"..

Dopo che lo ai creato lo puoi selezionare dalla lista dei blocchi Funzione come per ogni altra libreria...

Questi sono oggetti con Istanza in gergo "copia e incolla", poi cambi solo il nome dell'istanza (ogni oggetto deve avere il suo univoco pippo1, pippo2 ecc.)

quando ai codice ripetitivo o funzioni particolari passi da settimane di sviluppo a un Click del mause....decine e decine di ore risparmiate!

io lo utilizzo da anni è semplicemente Fantastico!! ;)

Modificato: da alen
Link al commento
Condividi su altri siti

  • 1 month later...

Alen ho seguito la discussione e purtoppo mi trovo alle stesse condizioni di flavio-san.

Dovrei creare dei blocchi funzione dove successivamente andro a richiamare nel mio Task,una volta creato un nuovo POU denominato "Programma" mi sono andato a creare un nuovo POU denominato "Funzione" dove ho selezionato "Tipo:Funzione(FB)" nel suo interno ho creato un programmino dove ho inserito un paio di contatti Booleani in serie ad un uscita,tanto per fare un esmpio.

Successivamente sono tornato nel Task principale "Programma" e sono andato a richiamermi nel menu delle istruzioni "OP/FUN/FB" il blocco Funzione che mi ero andato a creare prima,una volta ritrovato lo selezionato solo che quando lo vado a inserire nel Task ho notato che mancano alcuni ingressi nel blocco.

Nel blocco che ho creato dovrei avere un contatto di ingrsso EN e i due contatti che avevo messo in serie prima dell'uscita e un contatto di uscita denominato ENO.

Nel blocco che ho inserito mi ritrovo un contatto di ingresso EN e un contatto di uscita ENO.

Sapresti indicarmi dove sbaglio o la procedura esatta per creare un Blocco funzione secondo le mie esigenze,

Spero di essere stato chiaro e di aver fatto comprendere in maniera esatta il mio concetto

Grazie anticipatamente

Link al commento
Condividi su altri siti

Scusa il ritardo ma sono giorni bollenti .... :lol:

Quando crei delle librerie nella dichiarazione delle variabili locali della stessa

devi usare degli ingressi speciali ovvero VAR_INPUT, VAR_, VAR_IN_OUT

gli ingressi EN e EO sono aggiunti in automatico e non sono quelli che ai inserito tu!

fai cosi vedrai che tutto torna e vedrai il tuo bel blocco funzione con tutti gli I/O dichiarati.

Link al commento
Condividi su altri siti

Alen visto che sicuramente tu avrai molta più esperienza di me su FPWinPro volevo chiederti alcune informazioni in merito al mio problema descritto ieri.

Qualè la differenza tra Funzione e Blocco Funzione,è perche se creo una Funzione devo impostare il tipo di risultato cosa significa tipo di risultato.

In fine,una volta realizzato una funzione o un blocco funzione se lo vorrei inserire nella libreria in modo tale da ritrovarmelo per i prgrammi successivio come si fà

Grazie mille

Link al commento
Condividi su altri siti

Scusate ma come vi dicevo in questi giorni sono molto preso da varie attività impegnative (vedi l'ora... :lol: )

Comunque la differenza sostanziale tra Funzione e blocco funzione sta nel fatto che:

La funzione è a se stante ovvero è un programma a tutti gli effetti fine a se stesso, mentre

il blocco funzione è un oggetto ovvero noterete che inserendo una funzione non vi verrà chiesto di dare il nome all'istanza perchè non si crea alcuna copia

di codice ma ad ogni inserimento si raddoppia quello esistente, mentre tecnicamente il blocco funzione vi chiederà l'inserimento di un nome del blocco "Istanza" perchè

il codice utilizzato per il blocco è sempre lo stesso ma ogni volta che si utilizza il codice cambiano solo le variabili di lavoro dell'istanza, se provi a creare un

programma gemello sia per le funzioni che per i blocchi funzioni vedrai che usando molte funzioni occuperai più passi di programma dei blocchi funzioni

perchè in pratica non facendo istanze del codice non fai altro che raddoppiare il programma ogni volta che lo inserisci nuovamente!

Inoltre quando vai in debug nel caso di blocchi funzione il programma ti chiederà a quale delle istanze deve accedere (nome che gli ai dato nella dichiarazione),

perchè in pratica il codice è sempre il solito!

FPWIN PRO è un programma che oltre ad essere mutitask e assimilabile ai programmi per la programmazione ad oggetti, i blocchi funzione ne sono l'espressione tipica!

Comunque un blocco funzione una volta che lo si comincia ad aprezzare a delle potenzialità notevoli come far risparmiare ore e ore di lavoro riutilizzando appunto blocchi di programmi

ripetitivi, ovvero funzioni che si usano spesso e che vengono chiuse in librerie per un uso tipo "Copia e Incolla", diciamo che di questo particolare ne faccio largo uso... :lol:

Tradotto vuol dire...... faccio un blocco funzione e poi ognio volta che lo incollo mi faccio pagare come se lo scrivessi sempre da codice,

ho dei blocchi funzione che ho scritto in una settimana e ora li programmo "Copia e Incolla" in 5 minuti, è evidente che li sta il guadagno! ;)

Link al commento
Condividi su altri siti

Alen scusami ma vorrei chiederti due ultime cose:

se creo una Funzione devo impostare il tipo di risultato cosa significa tipo di risultato.

In fine,una volta realizzato una funzione o un blocco funzione se lo vorrei inserire nella libreria in modo tale da ritrovarmelo per i prgrammi successivio come si fà

Grazie

Link al commento
Condividi su altri siti

Ciao

La prima domanda non riesco a decodificarla correttamente, potresti spiegarmi meglio a che parametro alludi ?

Per la seconda esiste una procedura, devi salvare il blocco funzione e poi caricarlo tra le librerie di sistema,

una volta che questo blocco è tra le librerie di sistema lo inserisci dalla lista delle librerie come qualsiasi altro blocco funzione.

Se non riesci a trasferire il blocco tra quelli di sistema fammi saper perchè è una procedura un pò lunga da descrivere,.... almeno a quest'ora... :lol:

Link al commento
Condividi su altri siti

Alen cercherò di spiegarmi meglio.

Quando creo un nuovo Pou, mi appare la finestra di configurazione del nuovo Pou con le tre scelte Programma,Funzione e Blocco Funzione.

Se vado a selezionare Tipo:Funzione (FUN) sotto mi chiede il tipo di linguaggio è in fondo mi chiede "Tipo di risultato:",la mia domanda e in merito a Tipo di risultato,sapresti indicarmi a cosa serve e qual è la sua funzione.

Immagine

Per quanto riguarda il salvataggio nella libreria non ci sono riuscito,mi potresti indicare le fasi in maniera un po' Più dettagliata.

Alen ti ringrazio del tuo aiuto,Visto L'ora ;)

Grazie

Link al commento
Condividi su altri siti

Solo le funzioni richiedono alla creazione il tipo di risultato, si riferisce al tipo di risultato che

a funzione ritorna dopo essere stata eseguita.

Un po come le funzioni classiche degli ambienti RAD la tua funzione dovrebbe eseguire un sotto programma e tornare un risultato in risposta

quando questa viene richiamata, per esempio potresti vedere la F282 che è una funzione per la linearizzazione a 16 Bit

per l'interpolazione dove l'uscita Y è appunto la risultante della funzione chiamata.

Per salvare delle funzioni/blocchi funzione richiamabili da altri programmi devi prima creare una libreria, ti posizioni su librerie di sistema

e poi dal tasto destro selezioni Installa/Crea, poi puoi scegliere di creare la tua funzione in loco, oppure tagliare e incollare (quanto mi piace questo gergo... :) )

la funzione anche dal task dove si trova ora.

La salvi nel percorso specificato e dal prossimo programma in cui ti serve la installi sempre posizionandoti su < Librerie > e caricandola dal percorso in cui è stata salvata.

Una volta caricata la funzione è disponibile tra le altre funzioni e subito utilizzabile.

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