Vai al contenuto
PLC Forum


Fb (function Block) Omron Manuali Italiano


gianff

Messaggi consigliati

da dove cominciare per crearsi o utilizzare FB omron

manuali oppure siti magari in italiano

queste aiutano il tempo di ciclo ?

da quello che ho potuto capire

in base a dati word in ingresso

gestiti da quello che e' dentro alla FB

si ottengono risultati su word in uscita

-----

quante word si possono mettere in ingresso e uscita

come vanno chiamati i dati dentro la FB

come si definisce un FB per renderla funzionante

--------

io dovrei gestire una sezzine gia funzionante ingresso word0 uscita word 10

le word saranno da word0--word 9 / word 10 -- word 19

Modificato: da gianff
Link al commento
Condividi su altri siti


OK sono riuscito tutto funzina

perplessita'

non la vedo tanto facile

a differenza della normale programmazione il leeder

le cose si complicano

molte duplicazioni e corrispondenze

si lavora dentro e fuori alle FB se modifichi dentro ti da errori fuori e viceversa

gli errori si fa fatica a capire dove sono , dentro alle FB non ai riferimento al rung ?

non sono riusito a modificarle online internamente ?

sembra che si debba programmare a commenti ?

troppe cose con la presenza delle BOOL INT DINT LINT UNIT LREAL TIMER ecc...

da abbinare tra ingresso e uscita

praticamente sembra di lavorare con due sistemi diciamo diversi

come succede con HMI di marca diversa da omron

questo sconvolge un po' il facile e comodo cx-programmer totalmente compatibile con HMI NS

aumentano le possibilita di sbagliare e difficoltoso cercare la causa

--------

cosa piu' preoccupane

con 2 FB vedo il tempo di ciclo aumentare di 1,5ms

mentre la stessa cosa eseguita normalmente non crea cambiamenti

questo e dovuto solo all'inizzio a causa dell'utilizzo di memoria per tutte le eventuali FB ?

oppure piu se ne inseriscono e piu tende ad aumentare ?

--------

direi che debbano essere utilizzate solo in caso di prorammi molto ripetitivi ?

forse molto utili per utilizzo delle FB gia pronte da omron

questa la mia prima inpressione

magari poi diventa indispensabile

ho provato a guardare anche il testo strutturato

ma direi che lascio proprio perdere

i miei plc dovranno ancora digerire parecchi passi di programma !!!

Modificato: da gianff
Link al commento
Condividi su altri siti

ciao gianff,

scusami ma non riesco a capire la tua difficolta nel creare dei blocchi Fb,sono la cosa piu facile al mondo,se poi le fai in ST ancora piu semplice,perche si riduce la programmazione,

Comunque non o capito cosa devi fare,prova a spiergarti meglio magari possiamo aiutarti in modo chiaro..

ciao

buon lavoro arnaldo

Link al commento
Condividi su altri siti

per le fb

adesso riesco ad usarle

non e' difficile ma nemmeno facile

non vedo tutto quel risparmio di programmazione

e velocita di cilclo

si genera un interfacciamento dentro e fuori dalla fb che non facilita le cose

un fb occupa troppa area di memoria (si puo' gestire)

online dentro la fb e' un po' difficoltoso fortuna che uso cj2

tutto a causa della mia inesperienza sicuramente

---------

problema

se creo una fb con dentro esempio un conteggio e calcoli

questa va bene solo per eseguire 1 e solo 1 misura alla volta

se io con quella fb debbo fare varie misure anche in contemporanea

debbo creare altre fb e metterci dentro il programma come leeder

questo aumenta la programmazione

mentre capisco che se eseguo una misura singola poi un altra uso sempre la stessa fb con altri parametri in ingresso

--------

per ST

ho visto quelle pagine di codice strano tipo assembler c++

da dove si parte ????

Link al commento
Condividi su altri siti

Le FB si usano normalmente per costruire delle "funzioni di libreria", un po' come si fa in C.

L'occupazione di memoria dipende dal PLC. Sul CP1 e CJ1 l'area di memoria del normale programma e quello delle FB è condiviso, per cui risparmio pari a zero (o meno, perchè le chiamate alle FB occupano dei passi).

Sul CJ2 invece le aree sono separate, per cui nel normale programma hai la sola occupazione della chiamata (passaggio valori). Ciò a volte consente di "ficcare" programmi grossi anche in una CPU con poca memoria programma.

Come incremento di tempo di esecuzione, non mi torna e non mi risulta.

Io ci faccio delle routine standard (sia in ladder che in ST) che poi riutilizzo in svariati programmi (p.e. gestione assi, routine di comunicazione ModBus, ecc.).

Altro pregio è che le si possono bloccare con password, pertanto si può proteggere parte del proprio lavoro, senza venir meno a dare il software al Cliente.

Lo ST è più simile a un Pascal che a un C. E' fantastico per gestire dati, fare calcoli e cose simili, un po' meno per le gestioni ordinarie, dove preferisco il ladder.

Nelle FB, come per i linguaggi ad alto livello, si lavora a simboli, non a indirizzi (cosa che sarebbe buona norma fare sempre, anche nei normali programmi ladder), per garantire la portabilità. Il compilatore si occupa lui di assegnare indirizzi fisici alle variabili dichiarate. Per questo è importante definirne il tipo (Bool, Int, Real, ecc.).

Per tale motivo, nelle FB è meglio sempre evitare accuratamente l'uso di indirizzi assoluti (utilizzando la AT). Si rischia di fare dei casini inenarrabili.

Se della stessa FB hai bisogno in due posti diversi e hai bisogno che le variabili di una siano "invisibili" all'altra, devi dichiarare due (o più istanze) della FB. Devi cioè darle un nome diverso quando la inserisci nel programma chiamante. Altrimenti verrà usata sempre la stessa routine e i valori interni saranno comuni.

Link al commento
Condividi su altri siti

sono a buon punto

create fb sia con stessi parametri interni uguali e dati in ingresso diversi

queste aiutano molto ma da eseguire una alla volta (o mi sbaglio)

se ne eseguo due mescolo tutto ??

e create fb uguali ma con dati interni e sterni diverse

queste aiutano nella scrittura ma non capisco il guadagno per il plc

e si possono lascire anche sempre attive ( o mi sbaglio )

errori miei all'infinito certi introvabili

mi sembra troppo automatica la gestine se sbagli qualcosa si pianta

alcune le ho cancellate totalmente e riscritte ( non le potevo piu' modificare ??? )

adesso in un fb ho dentro una BCMP inpostata ok ma mi da sempre memoria insufficente per la tale ??

questo errore e' incomprensibile e non dice null'altro

una %rset dentro la fb la vedo %%rset rossa ???

si puo' gestire l'area utilizzata da una fb ???

per il tempo di gestione provavo su cp1l e aumentava subito

su cj2 non cambia

ma con gia 10fb e cancellato 500 passi leader non cala

pero i 500 passi sono dentro le fb in pratica ??

simboli e indirizzi direi che ho capito

praticamente creavo fb a indirizzi !!!! rifatte tutte

per (Bool, Int, Real, ecc.). le definisce in automatico

a cambiarle si creano casini ??

-------------

(utilizzando la AT). Si rischia di fare dei casini inenarrabili

------------

spiega meglio AT ?

per ST

come si comincia

un piccolo esempio di due calcoli semplici

con qualche aiuto a crearla e inserirla

ho visto pagine di righe incomprensibili

questo lo vedo su linux che gia e' drammatico se ti dimentichi un punto

e una cosa simile a pyton per caso

comunque si lavora mentallmente in modo diverso dal prezzioso leeder

Modificato: da gianff
Link al commento
Condividi su altri siti

  • 4 weeks later...

In Un Altro Topic Ho Visto Che Hai Utilizzato Una Cpu35 Del CJ2...

Se Hai Scelto Questa CPU Per I 20KStep Di Memoria In Paragone A Una Cj1M-CPU13Etn Ti Spiego Perchè Utilizzare I Blocchi Funzione.

Nella Serie Cj2 E' Stata Implementata Una Memoria In Più Solo Per I Blocchi Funzione Infatti Oltre Ai 20KStep Di Memoria Programma La Cpu Contiene Un'Altro GByte Per La Memoria FB.

Da Ciò Si Evince Che Un CJ2-CPU15 Rispetto A Un CJ1-CPU13 Se Usi I Blocchi Funzione, Risulta Avere Molto Più Spazio Di Memoria (Prova A Fare I Conti Del Risparmio Economico!!!).

Ciao

Link al commento
Condividi su altri siti

si ho gia constatato che il programma si riduce considerevolmente

ma non ho visto guadagni nel tempo di ciclo

ho provato con 40 fb identiche internemente

e 40 identiche ma con word interne diverse

si guadagna se le si abilitano solo all'occorenza

a mio avviso non semplifica la programmazione

se poi qualcosa non funziona casualmente

diventa dura

forse l'0mron e' troppo facile in leader

Link al commento
Condividi su altri siti

Gli FB sono molto comodi nel caso in cui ti serva scrivere una parte di codice da usare più volte nel programma.

Ad sempio un FB che effettua una scalatura di un segnale od che ti comando dei motori. In entrambi casi usi le variabili interne con indirizzamento automatico ed usi come variabili interne solo quelle IN, OUT e IN_OUT.

Se indirizzi direttamente le variabili interne perdi un po' del senso di usare gli FB, a meno che non usi degli array con indici passati come variabili IN o cose del genere.

Secondo me non ha molto senso crearsi tante FB uguali solo per potergli dare indirizzi interni diversi, a quel punto meglio usare il classico copia/incolla.

Questo è solo il mio parere.

Modificato: da 0.0
Link al commento
Condividi su altri siti

Ragazzi Lo Spazio Costa, E Costa Molto Caro.

Per Me Conviene Utilizzare Lo Spazio Giusto, La Scelta Di 1 Cpu Piuttosto Di Un Alta Incide Sul Costo Finale E Poi Non Parliamo Nel Caso Di Macchine In Serie...

Ciao

Link al commento
Condividi su altri siti

daccordo nella scelta della cpu piu' piccola

ma se con le FB recuperi solo nelle cpu grosse

CJ2 (credo di aver capito )

alla fine sempre li arrivi (costi elevati + acessori )

questo per quanto riguarda l'area di programmazione

poi saranno comode per cose ripetitive o similari (libreria gi pronta)

per quello che sto facendo io ho usato cj2m-35 (questo ho disponibile attualmente)

mi servono piu' di 20kstep

con cj1m-23 non riuscirei tramite fb

nemmeno con cp1h-x

qui vedo il limite delle fb poi aggiungi il complicarsi della programmazione e tempi di ciclo

questa la mia prima esperienza probabilmente sbagliata

certo che se con le fb si riuscisse a mettere un programma da 50kstep (cj2m-35)

in un cj1m-23 (20kstep)

non avrebbe un gran senso il CJ2

Modificato: da gianff
Link al commento
Condividi su altri siti

Gli FB non servono a diminiure la domensione del programma. Se così fosse non avrebbere inserito una memoria specifica solo per gli FB nel CJ2. Mai programmato Siemens? Tra creare FB ed istanziare i DB di istanza non risparmi spazio, anzi.

Quindi lo spazio costa e se pensi di diminuirlo con gli FB, forse hai sbagliato strada.

Gli FB sono molto comodi, io li uso spesso, ma vanno usati nel modo giusto e solo in caso di necessità.

Link al commento
Condividi su altri siti

Gianff se vuoi vedere degli esempi di come si programmano gli FB puoi caricare dentro un programma gli forniti con CX-One. Poi entri nelle proprietà dell'FB con il pulsante destro sopra l'incona del blocco->togli la spunta da solo lettura. A questo punto li puoi aprire in sola lettura.

Link al commento
Condividi su altri siti

si so gia fare tutto questo

ma come dicevo

nei plc piccoli ci si complica la vita

nel cj2 ok ma i costi salgono troppo

alla fine non si trae vantaggio

se non per quelle gia pronte (che poi bisogna prenderle per quello che sono)

un altra cosa che non capisco

anche i plc piccoli cp1e-l -h cj1m anno molta memoria ausiliaria

ma come programma sono molto limitati

quando cominci ad essere sui 5-6 mila passi si fa dura come um

in poche parle sono fantastici molto completi

ma se ai dei programmi ripetitivi a copia e incolla si fa presto a riempirli

il mio scopo principale era di eliminare su macchine di serie

un kernel DMX20 molto problematico e inaffidabile ( ma in un qualche modo funziona)

e' fatto in sorgente tipo c++ o basic/assembler (credo ) da un elettronico perverso

che alla fine costa pochissimo ( DMX20 -300,00e )

ma per fare la stessa cosa mi tocca di mettere cj2

alla fine costa come una ferrari

e' qui che non mi tornano i conti ma di molto

io ero partito con cp1l poi cp1h cj1m

ma con 5/20kstep ci si fanno i giochini

e comunque anche cj2 quando comincia ad avere 15 mila passi di programma

si fa piuttosto inpegnato

se poi usi delle FB vedi il tempo di ciclo aumentere tranquillamente

e come dicevo i banchi E0 E1 E2 E3 quandi li usi se ai un limite nella programmazione ???

forse non riesco io ad usarli adeguatamente

Modificato: da gianff
Link al commento
Condividi su altri siti

20000 Step di programma non sono pochi. Ho un programma fatto con un CJ1M CPU 12 con comuninazione Modbus tramite SCU41, alcuni PID, vari ingressi uscite analogiche ed il programma usa 6026 passi di programma. Non è un giochino, anzi..

La CPU della Kernel che sostituisci mi sembra essere al di sotto di queste potenzialità. Quindi è strano che sei arrivato ad usare un CJ2.

L'area EM può essere usata come se fosse l'area DM, in alcuni programmi io la uso per gestire il ricettario e comunicazione Modbus.

Modificato: da 0.0
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...