Vai al contenuto
PLC Forum


Verifica Calcolo Illuminotecnico


Claudio Fornasiero

Messaggi consigliati

Claudio Fornasiero

Ciao a tutti!!!

a qualcuno e' mai capitato di di avere un asincronismo temporale utilizzando l'interrupt a tempo

OB35 (tempo 5ms) con una cpu313C?

Mi spiego meglio, all' interno dell' interrupt elaboro una camma ,la quale viene poi appogiata ad una uscita statica del plc (A124.0).Premetto che all' inizio dell' OB35 leggo i valori dall' AB124 e li trasferisco in periferia PAB124.

Eppure collegandomi con l'oscilloscopio osservo che l'onda quadra (camma) si sposta nel tempo, e questo e' accetabile, ma a volte arriva anche a 12/15 ms, mentre al massimo dovrebbe stare all'interno del tempo ciclico dell' OB35 cioe' 5ms.Questo mi comporta dei grossi problemi nell'applicazione che sto seguendo.

Qualcuno ha un idea del perche'.....

Grazie!! e ciao :(

Link al commento
Condividi su altri siti


Ciao

Che io sappia, gli interrupt della Siemens sono molto precisi, se si 'spostano' di oltre 2 volte il loro tempo,c'è qualcosa che non va.

Prova a generare uno strobe in OB35 (UN Mx.y = Mx.y) e collegalo ad un'uscita, poi scrivi tutto il byte delle uscite con PAB.... (dopo aver fatto le dovute operazioni OW e UW). Se tutto va bene, dovresti avere ques'uscita che oscilla con frequenza doppia al tempo di interrupt.

Sono d'accordo con DAGO, probabilmente tu leggi EW, che viene aggiornata con la scansione, mentre invece devi leggere PEW che è diretta.

Facci sapere

Ciao.

Link al commento
Condividi su altri siti

Claudio Fornasiero

Sto lavorando sull' uscita A124.0, quindi carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124;no mi serve caricare il merker d'ingresso PEW perche' non lo uso (con l'oscilloscopio analizzo il segnale d'uscita.)

Per Gramma, si ho realizzato un clock(con tempo 100 ms) all'interno di OB35 e l'uscita del clock trasferita sull'uscita statica, ma cio' non ha cambiato il risultato, si aveva comunque l'oscillazione del segnale del tutto casuale, il fronte di discesa del segnale differiva dal precedente anche di 15ms.

Ho telefonato alla Siemens e non mi ha negato il fatto ,suggerendomi di allegerire l' OB1, ma questo non ha portato a risultati utili.

Ciao!!!!

Link al commento
Condividi su altri siti

carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124

:blink: (non capisco). Non sara' che il codice contenuto nell'OB35 impiega piu' di 5ms ad essere eseguito ?

Link al commento
Condividi su altri siti

Prima di tutto una notizia di servizio. Ti ho spostato il post nel forum corretto. Usandando il forum appropriato ci sono più probabilità di ottenere risposte corrette.

Veniamo al problema specifico. Due cose. Non sono sicuro al 100% ma sei al limite con il tempo di interruzzione. Secondo, ed è il più importante, c'è un tempo di ritardo HW sulle uscite. Ritardo che non è costante, ma dipende dal carico, temperatura, e altri parametri. Se ricerchi in questo forum c'è stata una discussione recente sui tempi di ritardo della periferia HW. Io quando voglio essere sicuro della misura di un tempo di ciclo uso scrivere direttamente un valore alto e poi uno basso in un'uscita analogica. Oltre a essere più veloce è siscuramente costante. Prova a generare una marca in qquesto modo, con questa potrai verificare se le variazioni sono dovute al timer o alla periferia.

Link al commento
Condividi su altri siti

emanuele.croci

sparo: hai provato a togliere eventuali controlla-comanda variabili, blocchi visualizzati online o a spegnere il supervisore? (eventuale problema di comunicazione).

2a prova: se metti il tempo a 10ms cosa fa?

ciao, Emanuele

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

l'assegnazione dell'uscita falla con PAB 124 e poi dimmi se non resta a tempo di interrupt.

Passando dall' immagine di processo delle uscite è normale il fenomeno da te indicato.

Ciao

Link al commento
Condividi su altri siti

Per Gramma, si ho realizzato un clock(con tempo 100 ms) all'interno di OB35 e l'uscita del clock trasferita sull'uscita statica, ma cio' non ha cambiato il risultato, si aveva comunque l'oscillazione del segnale del tutto casuale, il fronte di discesa del segnale differiva dal precedente anche di 15ms.

Gramma ti ha detto di realizzare uno strobe ciclico, con 2 istruzioni, non di usare un timer, secondo me l'imprecisione di 15ms è dovuta alla somma dell'errore del timer + o - i 5ms di OB35 (Se il timer scatta quando ob35 è all'inizio allora farà in tempo a emettere l'uscita, altrimenti lo farà alla successiva elaborazione di OB35).

Prova a fare come ti dice Gramma:

UN Mxxx.y

= Mxxx.y

L MB xxx

T PAB 124

E poi collega l'oscilloscopio all'uscita 124.y, l'uscita deve cambiare di stato ogni 5ms.

Nota: La frequenza non è "doppia al tempo di interrupt" ma la metà di 1/tempo_interrupt

Dovresti usare le uscite veloci (la 313C ne ha 4) che commutano in 0.4ms su carico ohmico (le uscite normali hanno una fMax di soli 100Hz !)

carico la merker word AB124 con un load e la trasferisco in periferia sulla PAB124

Questo cosa significa ? Che magari prepari i valori delle uscite in OB1 e successivi blocchi (=A124.x) ,elaborati magari ogni 10ms, e pensi di accelerare il trasferimento (L PAB124 / T PAB124) in OB35 elaborato ogni 5ms ?

Se è così (spero di no) il ragionamento è sbagliato, in quanto al tempo di ob35 devi sommare anche una porzione variabile del tempo di ciclo di Ob1 e derivati.

Modificato: da JumpMan
Link al commento
Condividi su altri siti

Non mi è chiaro il funzionamento, forse mi è sfuggito qualche particolare.

La camma che elabori attivando l'uscita, è un ingresso del PLC, perchè in tal caso devi aggiornare l'immagine di tale input all'interno dell'OB35. Comunque qualsiasi cosa sia a darti il trigger per l'uscita la devi elaborare all'interno dell'OB35 aggiornando all'inizio qualsiasi PEW ti serva. Inoltre non usare (come già suggerito) timer, perchè introdurrebbero un errore che potrebbe essere pari al tempo di interrupt di OB35.

Perchè aggiorni l'immagine dell'uscita all'inizio del OB35. Se elabori l'uscita all'interno dell'OB35 (e DEVI assolutamente farlo qui come suggerito da JumpMan), questo aggiornamento dovresti (DEVI) farlo alla fine.

Link al commento
Condividi su altri siti

Ciao.

Come hanno scritto JumpMan e Livio, devi usare le uscite veloci della CPU313C perchè le altre hanno un ritardo (hardware) variabile. Per essere sicuro che il problema non derivi (come abbiamo supposto tutti) da un'arrata lettura del banco (byte) di uscite (lettura che sicuramente ti serve per non influenzare le altre uscite del byte AB124 quando modifichi la A124.0), , prova a non usare (solo per il momento, per prova) tutte le uscite AB124, usa solo A124.0 ed azzera tutto il byte in OB35 (se ben ricordo, da 124.0 a 124.3 sono veloci)

Comunque, per la 313C, un interrupt a 5ms è davvero al limite!

Se il tuo blocco in OB35 dovesse impegare più di 5ms per l'esecuzione, la CPU andrebbe in Stop. Modificare OB1 o il programma (come ha detto l'assistenza siemens) non ha alcun senso perchè gli interrupt servono proprio a non essere influenzati dal tempo di cilo. quando un interrupt viene chiamato, l'esecuzione del programma viene interrotta, qualunque sia il suo stato (amenochè non sia in esecuzione un interrupt di livello maggiore, che però tu non puoi gestire).

Però mi sorge un dubbio: Dici che stai elaborando una camma, e l'uscita che usi è il risultato di un'aleborazione di un ingresso. Perchè non metti in interrupt quell'ingresso (da configurazione hardware -> DI26/DO16 spuntando la casella 'interrupt di processo con -freonte di salita/fronte di discesa), ed elabori il tuo programma in OB40 anzichè in OB35 che ti introduce un ritardo minimo di 5ms? Ma forse non ho capito bene il problema.

Se vuoi essere sicuro al 100%, segui il consiglio di Livio: scrivi alternativamente (inOB35) due valori uno basso e uno alto su un'uscita analogica (quelle hanno un ritardo pressochè costante), poi misura con l'oscilloscopio.

Ciao.

Link al commento
Condividi su altri siti

Modificare OB1 o il programma (come ha detto l'assistenza siemens) non ha alcun senso

e se il programma in OB1 ha un ciclo di 15 ms x esempio!?! non influenza comunque OB temporale?

se cosi fosse il programma ( in OB1 ) si rallenta ulteriormente perchè viene interrotto 3 volte da OB35, giusto?

Link al commento
Condividi su altri siti

Esatto.

Il prgramma in OB viene rallentato (o meglio, la sua esecuzione richiederà più tempo) perchè viene eseguita una o più volte la routine in OB35.

L'esecuzione degli interrupt (si chiamano interrupt proprio per questo) è assolutamente indipendente dal programma, essi vengono eseguiti ogni xxx ms, non quando c'è tempo!

Ciao.

Link al commento
Condividi su altri siti

  • 3 years later...

Oggi durante la stesura di un progetto illuminotecnico ho notato un distacco notevole tra la mia progettazione e quella dell'installatore, vorrei gentilmente una vs verifica ai miei risultati :

ambiente : 22x14m pareti e soffitto chiaro

altezza controsoffitto :3,5m

destinazione d'uso : uffici - ambiente unico

Livello illuminamento medio richiesto : 500lx

altezza installativa : in controsoffitto

utilizzando corpi illuminanti 4x18w con ottiche per videoterminali e tubi da 18w con flussi da c.ca 1000-1300lm ( totale 5400lm a corpo illuminante ) a me risultava un totale di c.ca 50 corpi illuminanti per ottenere 490lx medi di illuminamento.

L'installatore - MI DICONO - ha raggiunto l'illuminamento richiesto con 28 corpi illuminanti ( 4 file x 7 colonne ) sempre 4x18w

Ho spulciato i cataloghi delle sorgenti luminose ma oltre i 1350 lumen ( t5 ) a tubo non ho trovato nulla, esiste qualcosa di + performante?

a me sembra strana la differenza di lampade......

potreste verificare i miei risultati

ANTICIPATAMENTE RINGRAZIO

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