Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Ottimizzazione Tempi Ciclo Macchina - Ottimizzazione tempi ciclo macchina


Messaggi consigliati

Inserito:

Salve a tutti.., un mio cliente mi ha chiesto di rifare il software 'Sviluppato da un'altro studio' di una macchina automatica.., vorremmo iniziare col ridurre i tempi ciclo del PLC avete qualche consiglio ?


Matteo Montanari
Inserita:
un mio cliente mi ha chiesto di rifare il software 'Sviluppato da un'altro studio' di una macchina automatica

quale è il motivo che ha spinto il cliente a voler cambiare la gestione della macchina?

vorremmo iniziare col ridurre i tempi ciclo del PLC avete qualche consiglio ?

se il problema è quello del tempo di ciclo, si può pensare a sostituire la CPU con un modello più performante.

se nel software di gestione ci sono "tempi morti" si può pensare di ridurre al minimo lo spreco di risorse.

a volte il tempo di ciclo può essere ridotto facendo anche piccole modifiche, ad esempio, se possibile convertire in AWL (o linguaggi più "evoluti") le funzioni più "collaudate" e dove non serve un monitoraggio "a contatti" più comprensibile.

altre piccole modifiche possono risiedere nell'utilizzo dei putatori: implementarlo se assente, gestire i vari puntatori con i loro "offset" (compatiilmente con i dati da elaborare).

creare la struttura con meno richiami (e soprattutto sotto richiami) possibile.

limitare al minimo la parametrizzazione dei blocchi, ogni caricamento delle variabili di ingresso e trasferimento delle varibili di uscita, per il PLC sono operazioni in più che infliscono sul tempo di ciclo:

piuttosto che:

U E0.0

= M0.0

...

U E0.7

= M0.7

è molto più economico (dal punto di vista di risorse

L EB0

T MB0

-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-

non conoscendo il programma e con i dati messi a disposizione, il discorso non può essere più mirato di così

elaborazione, di appoggio,

Inserita:

Risposta correta da parte di keosmm . Dal mio punto di vista bisogna per prima cosa analizzare quali sono le richieste del commitente , di quanto si deve abbasare il tempo ciclo, che tipo di macchina è.La miglioere cosa da fare secondo il mio punto di vista è , controllare sulla cpu quanto è il tempo di scansione del programma , analizzare il Sw , ed eseguire quelle modifiche atte a migliorare il flusso dei dati, per abbasare il tempo ciclo di una macchina bisogna anche controllare come è il suo funzionamento e vedere se ci sono tempi morti , se è possibile sovraporre dei movimenti abbasere i tempi su vari timer ecc. ecc. come vedi di cose se me possono0 fare molte sta al programmatore decidere da dove partire . Buon Lavoro

Indelicato Mikele

Inserita:

Secondo mia esperienza il cliente vuole cambiare software quando :

1) Software pieno di bachi.

2) Oppure vuole modificarlo a suo piacimento per esigenze migliorative e non c'è possibilità di avere sorgente da casa madre (per svariati motivi), percui vuole rifarlo.

3)Oppure plc obsoleto con impossibilità di ricambi.

Difficilmente con software perfettamente funzionante vuole rifare tutto per una questione di tempi di ciclo plc.

Come vedi si aprono tante strade, percui indaga e poi ci farai sapere.

Con indizi certi ti daremo risposte mirate.

Inserita:

Se ti hanno chiesto di rifare il software o è fatto molto male o il PLC è vecchio, io che sono ottimista penso che il PLC è vecchio: magari S5.

In questo caso puoi seguire alcuni punti che non sono troppo dolorosi o quasi:

1) le letture delle analogiche non farle attraverso le FB siemens, ma leggi direttamente dalla periferica.

2) Stessa cosa per le uscite analogiche

3) Verifica bene l'utilizzo di FB di moltiplicazione, divisione o messa in scala (con S5 erano tremende) verifica se puoi eseguirle quando non sei in ciclo automatico. Per la messa in scala (magari per un pannello o un PC di supervisione) verifica se puoi spostare tali calcoli fuori da PLC o con una messa in scala con shift (100% diventa 102,4 %)

Sono d'accordo per quanto riguarda i commenti precedenti a meno che la tua macchina non usi conteggi su FTC o FC del materiale in ingresso (tipo ordinatori, palettizzatori o altro)...

si più preciso e stai attento in fase di preventivo...

Ciao

Bruno

Inserita:

Purtroppo il cliente mi ha chiesto di rifare il software e ha rotto i contatti con l'Azienda che lo ha seguito xchè non riuscivano a far funzionare bene la macchina. Questa macchina deve rifilare dei pannelli plastici, il tempo ciclo è di circa 120/140 ms ma la lama rifilatrice che scorre su un binario si deve muovere molto velocemente, a questo scopo mi chiedevo come poter abbassre il tempo ciclo..., l'utilizzo di FB e relativi DB di istanza, piuttosto che l'utilizzo di variabili locali potrebbero aiutrmi ?? Dovendo controllare tramite encoder la posizione della lama rifilatrice e regolare di conseguenza la velocità dell'inverter volevo provare a farlo senza l'utilizzo degli interrupt...., alla siemens dicono che cambiare la cpu non migliorerebbe in maniera sensibile i tempi ciclo.., mi hanno consigliato di ottimizzare l'utilizzo della ram 'cpu 512 2 DP con memory da 512' occupandone il meno possibile :-/

Teoricamente istanziando il più possibile, dovrei ridurne l'utilizzo..., m sinceramente sono prove che non ho mai fatto....

Cosa ne dite ???

Matteo Montanari
Inserita:
Teoricamente istanziando il più possibile, dovrei ridurne l'utilizzo

non è detto ma puoi sempre provare.

non ho capito il modello della CPU credo che "512 2 DP" non esista ancora, se è "412 2 DP" è una cosa, "312 2 DP" un altra (anche se non credo che la facciano).

se di 412 si tratta un ciclo di 120/140 ms è esagerato, vorrei proprio vedere il programma che riesce a fare tutto questo.

Inserita:

Scusate se intervengo, ma non capisco la necessità di abbassare il tempo di ciclo di un programma per una macchina elettromeccanica i cui tempi si basano essenzialmente sui movimenti macchina e che sono sicuramente superiori al plc.

Un discorso è dire che la macchina è piena di bug e il cliente insodisfatto ha rotto con il fornitore un altro e dire che il programma è lento. Se la lama gira lenta non credo dipenda dal plc lento ma dalla ingegnerizzazione della macchina. Almeno questa è la mia opinione.

Inserita:

La cpu è una 315 2DP, il problema nasce dall'elevata velocità di movimentazione del rifilatore.., scorre su una guida a 12 metri al secondo e un ssensore analogico posto sulla lama retroagisce col sistema in modo da correggere la pressione della stessa sui pannelli.., a questa velocità un ciclo macchina di 100ms mi genera un ritardo di 20mm e questo provoca un cattivo rifilamento del pannello...., stiamo quindi cercando di ridurre il tempo di ciclo macchina in modo da poter essere più reattivi..., abbiamo anche provato a far gestire il motore direttamente dalla regolazione PID interna all'inverter, che coi suoi 8 ms di risposta ci consente per il momento di ottenere dei risulltati soddisfacenti..., ma il cliente vorrebbe ottimizzre la parte meccanica per aumentarne la velocità.., a quel punto avendo un ciclo baso potremmo provare con l'impiego degli interrupt....., ma 'impresa si fà ardua....

Ho spulciato la documentazione di STEP 7 ma non ho trovato comandi per la gestione dell'allocazione della memoria.., sapete se ci sono ? Il massimo sarebbe un comendo che permettesse al PLC di liberare tutta la memoria non utilizzata.....

Qualcuno saprebbe spiegarmi come funziona la gestione della memoria nei PLC siemens ?

Matteo Montanari
Inserita:
ma il cliente vorrebbe ottimizzre la parte meccanica per aumentarne la velocità.., a quel punto avendo un ciclo baso potremmo provare con l'impiego degli interrupt....., ma 'impresa si fà ardua....

piuttosto che cercare di modificare il programma per ridurre il tempo di ciclo, mi concentrei sull'hardware, se il cliente (come dici) ha intenzione di velocizzare ancora ulteriormente la macchina, sono possibili più soluzioni:

- montare una CPU più veloce, esiste la 318 2DP (una 400 con la scatola di un 300)

- montare una seconda CPU che gestisca solamente sensore analogico di posizione e velocità analogica per inverter.

- remotare il tutto su profibus ed utilizzare una CPU serie 400 (e di problemi di velocità non nè hai).

un altra soluzione sarebbe quella di cambiare tipo di CPU, ma dipende dal cliente, se è disposto ad accettare costruttori diversi da Siemens... (link)

modificare il programma, o rifare parti del programma, per limare qualche millisecondo dal ciclo penso che non nè valga la pena, se dopo il problema mi si ripresenta (con nuove richieste di aumento di velocità).

per occupare meno memoria, dovresti mettere il più possibile (solamente come dati (DB) "unlinked" in pratica memorizzate solamente nella memoria di caricamento e non nella memoria di programma. il fatto è che se sono definite "unlinked" non puoi accedere direttamente al blocco...per il PLC non c'è e quindi devi scrivere dell'altro codice per gestirle... altro codice... altra memoria.... e sei da capo...

Inserita:

Tutto quello che ti hanndetto è perfetto.

Voglio solo aggiungere una cosa. Se hai parti delle macchine critiche, falle gestire in una ob a tempo con scansione piu veloce, lasciando fuori tutto il contorno.

Inserita:

Nel caso di automazioni particolarmente veloci mischiate a funzioni non critiche si usa anche installare dei sistemi a microprocessore veloci dedicati espressamente alla sezione veloce della macchina. E' una tecnica che si usa normalmente nelle macchine. E' il caso di verificare attentamente se anche i meccanismi di movimentazione veloce della macchina siano adatti allo scopo. Nelle macchine che necessitano di posizionamenti veloci e precisi, (controlli numerici ad esempio) la meccanica, la motorizzazione e l'elettronica sono ottimizzate allo scopo.

Matteo Montanari
Inserita: (modificato)
Voglio solo aggiungere una cosa. Se hai parti delle macchine critiche, falle gestire in una ob a tempo con scansione piu veloce, lasciando fuori tutto il contorno.

con il ciclo che dovrebbe inserire:

abbiamo anche provato a far gestire il motore direttamente dalla regolazione PID interna all'inverter, che coi suoi 8 ms di risposta ci consente per il momento di ottenere dei risulltati soddisfacenti

otterrebbe l'allarme di richiamo ciclico dell'OB con conseguente riempimento del buffer... (almeno sulle CPU della serie 300)

di conseguenza avrebbe un altro problema.

per questo il suggerimento di utilizzare una CPU dedicata solo a svolgere quel compito...

il suggerimento di installare un sistema a microprocessore, potrebbe essere da un alto più economico come soesa del componente di gestione, dall'altro occorre adattare gli attuatori in campo con le specifiche del microprocessore stesso.

Modificato: da keosmm

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