Vai al contenuto
PLC Forum


Ob Facoltativi Oltre Ob1


robyelara

Messaggi consigliati

Buonasera, eccomi qua ad esplorare un sezione per me affascinante quanto ostica, sono neodiplomato nonostante l`eta` con una tesina che decrive uno scarico cisterne fatto da un plcS7-300 e un pannello tp177 collegato in MPI.

Il mio programma prevedeva un ob1 e le subroutine costituite da FC che ho suddiviso per compiti.

L`FC dell`acquisizione dati, L`FC degli allarmi, L`FC delle partenze pompe e cosi` via.

Mi date una conferma che a livello `pro ` si fa` cosi`?

La mia domanda e` questa so dell`esistenza di alcuni OB tipo OB100 e altri ma il manuale non soddisfa i miei ragionamenti oppure basterebbe un esempio, esistono degli OB che uno deve mettere per forza in un programma?

Tipo l`avviamento a freddo e a caldo , queli sono le differenze? Ne esistono di altri tipo o piu` utili?

Grazie.

Link al commento
Condividi su altri siti


La tua e' una domanda che secondo me sta al limite del filosofico...

Dividiamo la questione in due parti:

Gli OB

le CPU SIMATIC supportano un gran numero di OB, ognuno dei quali viene scatenato in corrispondenza di un determinato evento di sistema. Ad esempio, l'OB82 scatta nel momento in cui hai un allarme di diagnostica su un dispositivo collegato al PLC, per esempio la rottura conduttore di un canale analogico.

Di fatto l'OB82 e' un blocco di programma come gli altri, per cui ci puoi scrivere dentro quello che vuoi che venga eseguito quando viene lanciato l'OB82. Per esempio setti un bit di allarme, accendi una spia, incrementi un contatore... Quello che vuoi.

Ora la domanda potrebbe essere: e se non voglio fare niente? Potresti anche evitare di inserire l'OB82, ma ricorda che se la CPU va di lanciarlo e non lo trova va in stop. Per cui spesso gli OB di errore (OB7X, OB8X, OB12X) vengono inseriti vuoti proprio per "mascherare" errori. O magari perché la diagnosi degli errori viene fatta in altro modo.

Esistono anche OB che, se non presenti, semplicemente non vengono eseguiti. È il caso dell'OB100 che hai citato: se non c'è la CPU non lo esegue e tira dritto. Per la cronaca l'OB100 e' l'OB di avviamento a caldo, per cui contiene tutte quelle istruzioni che vuoi che vengano eseguite in avviamento della CPU: per esempio dei reset o delle inizializzazioni.

Visto che parliamo di avviamenti c'è' anche l'OB102, che però è attualmente supportato solo da S7-400, che viene lanciato con l'avviamento a freddo: con questo avviamento vengono reset tante tutte le memorie (DB ritentive, merker ritentivi, timer e contatori), mentre con l'avviamento a caldo le memorie mantengono il loro contenuto.

Altri OB vengono usati se l'applicazione lo richiede: ad esempio se vanno fatte delle regolazioni, e' utile (se non obbligatorio) usare degli OB che vengano lanciati a intervalli di tempo regolari (100ms, 500ms, ...) per garantire il corretto funzionamento degli algoritmi PID. Si tratta degli OB di schedulazione orologio (OB3X).

Altri ancora si usano solo su determinati sistemi, per esempio gli OB7X sui sistemi 400H che segnalano gli errori di ridondanza.

Quindi, purtroppo, per una spiegazione completa ti devo rimandare al manuale "S7-300 e 400 funzioni di sistema" o all'. on line.

Per esperienza di chi non ha imparato tanto tempo fa: con l'esperienza si impara a identificare gli OB che servono e come sfruttarli al meglio.

Link al commento
Condividi su altri siti

Per quanto riguarda la programmazione

Non porrei la domanda in termini di "e' pro" o "non è pro".

Ci sono tanti modi di programmare un plc, al di la' del bene o male.

Ci sono modi più semplici e modi più complessi che magari privilegiano la riutilizzabilita' del programma.

Ad esempio, non vedo citati gli FB nella tua tesina, ma spesso gli FB consentono di ottenere programmi fortemente riutilizzabili, cioè dove uno stesso blocco può essere usato in diverse applicazioni senza modifiche.

Più spesso invece, gli FC si appoggiano ad aree dati assolute (merker) e quindi devono essere adattate di volta in volta.

Va anche detto che il modo di programmare spesso dipende dall'applicazione.

Applicazione molto semplice che deve essere gestita anche da utenti inesperti? Sicuramente l'utilizzo di FC che si appoggiano a dati assoluti e' la migliore. È l'importante e' fare in modo che il programma sia chiaro e ordinato.

Applicazione molto complessa, con parti di programma che si ripetono molto spesso? Allora forse vale la pena di spendere un po' di tempo a strutturare meglio il software, perché alla lunga si risparmia del tempo.

So che la risposta non è molto esaustiva. Forse qui servirebbe un buon corso che ti dia un'idea delle potenzialità del sistema, e allora saprai anche come usare.

Ma, anche qui, l'esperienza insegna molto.

E poi ognuno ha un po' la sua firma, anche nella programmazione.

Link al commento
Condividi su altri siti

Supponiamo che un PLC stia funzionando e nelle sue merker e nei suoi data block ci sono memorizzati dei valori, per esempio delle soglie o dei conteggi.

A questo punto mettiamo il PLC in stop e poi di nuovo in run. Distinguiamo due casi:

- nel primo caso i data block e i merker mantengono gli stessi valori che avevano prima dello stop: parliamo di avviamento a caldo

- nel secondo caso i data block tornano ai valori iniziali e i merker vengono resettati a 0: questo e' un avviamento a freddo

I valori iniziali dei data block vengono definiti in fase di dichiarazione. Oppure possono essere modificati attraverso apposite SFC.

È anche possibile definire i data block come "non retain": in questo modo i data block vengono sempre riportati ai valori iniziali senza inizializzazioni manuali (per esempio in Ob100).

Per quanto riguarda i merker, in verità e' possibile definire il range dei merker ritentivi in configurazione hardware. Gli altro vengono azzerati ad ogni avvio.

Lo stesso discorso vale per contatori e temporizzatori.

Ciao!

Inviato dall'app. Mobile di PLC Forum da iPad3,3

Link al commento
Condividi su altri siti

Ok, quindi in avviamento a caldo decido io se resettare i DB tramite lOB100, poi credevo che i merker fossero non ritentivi a meno che non li dichiaravo io ritentivi.

Quindi avviamento a caldo la cpu elabora se inserito OB100, di conseguenza anche se ci sarà una mancata alimentazione(blackout) consideriamo un avviamento a caldo.

Quando avviene un avviamento a freddo?

Perdonami ma sto leggendo i manuali siemens , ma sono poco " masticabili"

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