aleb2 Inserito: 5 gennaio 2004 Segnala Share Inserito: 5 gennaio 2004 La mia domanda è questa:S7-200, Per velocizzare l'attivazione delle uscite, evitando il ciclo di scansione, pensavo di usare il comando di attivazione diretta ma mi chiedevo se funziona anche con le uscite che non sono a bordo della cpu ma su dei moduli di espansione? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 gennaio 2004 Segnala Share Inserita: 5 gennaio 2004 Se non riesci a trovare indicazioni sul manuale hai un modo semplice per verificarlo: scrivi contemporaneamente due uscite una sulla CPU e l'altra sul modulo di espansione, poi fai fare al programma un lungo loop, lancia il programma e verifica il ritardo tra le due uscite con un oscilloscpio.Senza leggere il manuale, ritengo che comunque ci sia un certo ritardo tra uscite sulla CPU e uscite sulle espansioni, perchè le espansioni sono collegate con un bus seriale ad alta velocità. Link al commento Condividi su altri siti More sharing options...
Gabriele Corrieri Inserita: 6 gennaio 2004 Segnala Share Inserita: 6 gennaio 2004 Ciao,non voglio contraddire Livio, dalla sua grande esperienza abbiamo imparato in tanti, però mi sa che stavolta che preso un granchio ...In primo luogo il comando immediato di uscite credo sia davvero quasi immediato, anche nelle uscite dei moduli di espansione .... per come è costruito un plc anche gli I/O a bordo non sono del microcontroller principale ma di un controller degli I/O ...In secondo luogo un lungo loop potrebbe generare un errore di tempo di ciclo troppo lungo ... e quindi addio controllo delle uscite immediate, ordunque la strada secondo me percorribile starebbe in un piccolo stratagemma: un segmento che attivi sia l'uscita a bordo che quella sul modulo di espansione (attenzione sto parlando di uscite statiche, se sono a relè il discorso risulta essere una pia illusione), e due segmenti identici, che acquisiscano in modo immediato due ingressi a bordo della cpu, poi il primo che arriva scatena l'interruzione e disabilita l'altro .... è una cosa fin troppo esagerata ... chi ha moduli di espansione e vuole fare il test, il codice è qui:ORGANIZATION_BLOCK MAIN:OB1 TITLE=Programma di test delle uscite a bordo e sui moduli di espansione // // I 0.0 Ingresso Start del test // I 0.1 Inmgresso Reset del Test // Q 0.0 Uscita Locale connettere con I0.2 // Q 0.1 Uscita su modulo di espansione, connettere con I0.3 // // M0.1 Uscita locale più veloce dell'espansione BEGIN Network 1 // Attivazione degli interrupt // INT_0 Si genera quando c'è un fronte di salita su I0.2 LD SM0.1 ATCH INT_0, 4 ATCH INT_1, 6 ENI Network 2 // Start del test LD I0.0 S M0.0, 1 Network 3 // Attivazione Immediata delle uscite // Q0.0 = Uscita Locale LD M0.0 =I Q0.0 =I Q0.1 Network 4 // Reset dei flags LD I0.1 R M0.0, 3 END_ORGANIZATION_BLOCK INTERRUPT_BLOCK INT_0:INT0 TITLE=Interrupt che si genera quando l'uscita locale è più veloce di quella dell'espansione BEGIN Network 1 // Set del flag LD SM0.0 AN M0.2 S M0.1, 1 END_INTERRUPT_BLOCK INTERRUPT_BLOCK INT_1:INT1 TITLE=Interrupt che si genera quando l'uscita dell'espansione è più veloce di quella locale BEGIN Network 1 // Set del flag LD SM0.0 AN M0.1 S M0.2, 1 END_INTERRUPT_BLOCKCiao Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 9 gennaio 2004 Segnala Share Inserita: 9 gennaio 2004 Gabriele, scusami, ma forse non conosci bene l'HW e non hai capito bene la mia proposta.Prova a contare i piedini del bus di espansione del 200, sono 10. Quindi non puoi scrivere direttamente una periferica, ma, come minimo, devi inviare dati ed indirizzo più i controlli. Per gli I/O diretti, invece, questo non avviene.Secondo, un loop di ritardo, prima di ripetere il ciclo, serve per non avere equivoci di lettura. Se vuoi levarti una soddisfazione provalo.La tua proposta, che usa gli interrupt, non tiene conto che hanche gli ingressi di interrupts hanno un ritardo, dovuto sia al filtro di ingresso (HW) sia alla latenza dell'interrupt, latenza che qualsiasi controllore e qalsiasi OS, anche i più veloci, hanno. Ed i controllori e gli OS della linea S7-200 non appartengono certamente al top di gamma per entrambi. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora