Vai al contenuto
PLC Forum


Problema Di Scansione


ezio

Messaggi consigliati

Salve a tutti,avrei bisogno ancora una volta di un vostro consiglio.Mi spiego:il plc è un logix 5000 e gestisce un impianto di saldatura con un programma composto da una decina di routines.Avendo realizzato un sistema di superviosione ho compilato altre 8 routines che gestiscono una serie di dati legati appunto alla supervisione.Il problema adesso è che sembra essere rallentato il tempo di scansione in quanto non a volte si e a volte no, mi mancano dei segnali provenienti da alcuni sensori che leggono per una frazione di secondo,cosa che prima non succedeva mai.

Sapreste indicarmi se esiste un metodo per gestire tutte le routines senza incidere sulla scansione?

Grazie

Link al commento
Condividi su altri siti


Pur non ritenedomi un'esperto di Rockwell Automations, rispondo perchè il problema al ciclo di scansione è come il raffreddore, nella vita prima o poi capita a tutti.

Il ciclo di scansione è in funzione di cinque variabili, flusso di corrente, tipo delle istruzioni , indirizzamento diretto/indiretto , uso di dati o aree speciali ad esempio la periferia decentrata , quantità delle istruzioni, lnghezza programma.

In nessun PLC che io abbia usato esite un'itruzione tipo LOWSCAN , per ridurre magicamente il ciclo di scansione.

Credo che ti sia presentino 3 opportunità.

1-Ottimizzare il programma, riducendo se ti è consentito la quantità i struzioni o la lunghezza, ad esempio , con salti condizionati , elabori i blocchi di comunicazione e supervisione solo in condizioni specifiche, io lo faccio nei miei programmi di dosaggio di alta precisione, lo chiamo "loopCorto" , quando sono nella soglia prestabilita alla fine dosaggio, setto un flag che attiva i salti condizionati, che escludono l'elaborazione di almento il 70% del programma, escludendo le parti meno importanti per il processo che sto svolgendo.

Atttenzione che il salto condizionato , ha il difetto di mantenere inalterate le condizioni dei blocchi che si sono salvati rispetto all'ultima scansione!

2-Usare quegli ingressi "veloci" con elabrazione ad interrupt, molto più semplice.

3-La meno professionale senza dubbio anche perchè da poche granzie di successo.

Associare a quegli ingressi veloci , un timer con ritardo alla diseccitazione, od un timer ad impulso, da usare nel listato al posto dell'inidirzzo del 'ingresso ,prolungandone artificiosamente lo stato ON, in modo che possa essere disponibile per più di un ciclo di scansione.

Ciao

Ivan

Link al commento
Condividi su altri siti

Ti ringrazio sei stato molto chiaro.Credo che proverò ad usare dei salti condizionati che mi sembra la cosa più logica e sicura.

A presto

Ciao

Link al commento
Condividi su altri siti

Ma forse il problema potrebbe essere, non nell' acquisizione dei dati del CLX, nelle nuove routine che tu hai fatto, ma nel invio di queste informazioni verso la supervisione.

Prova ad aumentare la Percentuale delle risorse dedicate alla Comunicazione (Vedi Proprietà del Controller)

Poi Potresti fare delle Flags con un istruzione di tipo latch dei tuoi sensori, in questo caso mantieni informazione anche dopo che

evento è accaduto.

Probabilmente se rappresenti dei dati che sono velocissimi, non è detto che i dati possono essere inviati con la stessa velocità

alla tua SuperVisione.

Perciò esegui il Latch dei tuoi eventi su delle Flags, poi verranno sicuramente inviati alla tua Supervisione, e poi dopo un intervallo

di tempo (ad esempio 0.5s ) esegui un UnLatch su questi Flags.

Così facendo i Flags saranno successivamente pronti ad essere settati o meno, dalle informazioni dei tuoi sensori in tempo reale.

Se invece hai degli eventi estremamente veloci <0.5 ms puoi usare delle Task su Interrupt.

Chiaramente devi avere dei moduli di Inputs Veloci.

Tutte le cose che ha detto Kamikaze sono cose giuste, ma volevo precisare

un punto, che magari non tutti sono a conoscenza.

# Kamikaze #

In nessun PLC che io abbia usato esite un'itruzione tipo LOWSCAN, per ridurre magicamente il ciclo di scansione.

# #

C'è la possibilità di Aumentare o Ridurre l'intervallo di elaborazione di una Task Periodica, puoi in pratica cambiare a tuo piacimento

l'elaborazione di una Task Periodica, ad esempio da 10ms a 3ms oppure aumentarla a 20 o 123ms.

Devi usare SSV per cambiare al volo interrupt time della tua Task.

Modificando Attributo della tua Task in questione.

Link al commento
Condividi su altri siti

Ciao Ezio.

Non ho capito se i sensori che non riesci a leggere non vengono intercettati nel programma PLC oppure non vengono visualizzati sul sistema di supervisione.

Aggiuggendo delle Routine in una task ciclica ovviamente il tempo di scansione aumenta.

Se il tuo problema è che il PLC non intercetta questi input veloci perchè è aumentato il tempo di scansione potresti dividere nel logix 5000 le sequnze logiche e la gestione dei dati per la supervisione in due task diverse.

In pratica in una task a interrupt di Tempo (es. 5ms) esegui le logiche di controllo e attuazione dell'impianto.

In una task ciclica vai a metterci tutte le routine che gestiscono le informazioni per la supervisione (Ordinamento di array, ricerche di valori in array, ecc.ecc)

In questo modo le routine della task a interrupt avranno sempre la precedenza sulle routine della task ciclica.

In pratica la task ciclica verrà interrotta ogni 5ms per eseguire la task a interrupt di tempo, in questo modo avrai la certezza che le tue logiche di automazione vengano eseguite ogni 5ms.

Link al commento
Condividi su altri siti

Esatto MAMIC è proprio come dici tu,il problema non è sulla supervisione ma che il plc non riesce ad intercettare il sensore a ON che è gestito già con l'ingresso del sensore appoggiato ad un latch (la supervisione raccoglie solo dei dati ) perchè probabilmente non sempre la scansione lenta permette al plc di trovarsi sulla riga di programma di quel sensore quando questo per un attimo va sù.

E' evidente che tutto ciò e successo dopo aver compilato delle nuove routine.Il plc è cosi strutturato:TASK-PRORGAM-ROTINES.

Proverò a fare il discorso che hai spiegato tu.

Grazie

A presto

Link al commento
Condividi su altri siti

C'è la possibilità di Aumentare o Ridurre l'intervallo di elaborazione di una Task Periodica, puoi in pratica cambiare a tuo piacimento

l'elaborazione di una Task Periodica, ad esempio da 10ms a 3ms oppure aumentarla a 20 o 123ms.

Devi usare SSV per cambiare al volo interrupt time della tua Task.

Modificando Attributo della tua Task in questione.

E' vero, nel caso di Siemens ad esempio , esiste un blocco OB35, con elaborazione ciclica ad interrupt, ma questo , non modifica affatto il TimeScan totale, cioè tra un'aggiornamento IPI e l'altro , anzi può addirittura aumentarlo enormente.

Ciao

Ivan

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