Diversamente dagli impianti di piccole dimensioni in quelli più grossi vanno presi alcuni accorgimenti, affinché tutto vada per il meglio.
Supponiamo di avere un impianto relativamente grande costituito da parecchie unità di attuatori.
Ovviamente essi devono poter essere richiamati simultaneamente senza aumentare eccessivamente il tempo di ciclo e senza creare intoppi o rallentamenti di vario tipo.
Questo perché ad ogni richiamo il PLC dedicherà un lasso di tempo in nano secondi per ciascun attuatore, per tanto se dovessero essere parecchi le tempistiche potrebbero aumentare generando ritardi all’esecuzione.
Rallentando il tempo di ciclo totale dell’esecuzione dell’OB1 Main.
Questo aspetto si può risolvere con una strategia mirata a contenere la pesantezza logica che si genera durante il richiamo di quantità consistenti di attuatori.
Come abbiamo già visto nei tutorials precedenti, va creata una funzione per ciascun motore.
Solitamente se il funzionamento è il medesino, basta creare una FB contenente tutta la logica di funzionamento e replicarla “n” volte fino al raggiungimento del numero totale dei motori, in questo caso 100.
Questi 100 FB a verranno contenuti all’interno di un FC, che a sua volta sarà richiamato nell’OB1.
Fin qui niente di nuovo.
A questo punto possiamo cominciare a mettere appunto la nostra strategia.
Essa consiste nel richiamare un numero definito di motori per ciascun ciclo.
Ad esempio, dal motore 1 al motore 10 in ciclo.
Dal 11 al 20 al ciclo successivo e così via.
Naturalmente tutto ciò si può fare con tutti i linguaggi di programmazione affrontati finora.
Tuttavia nella fattispecie è quello più congeniale e sbrigativo.
Vediamo come:
All’interno dell’ FC definiamo una variabile di tipo “Intero” denominata “Motor Index”.
Successivamente con un blocchetto “Addizione” facciamo una piccola funzione per incrementarla ad ogni ciclo.
Con un blocchetto “Comparazione e con un Move” facciamo in modo di resettare Motor Index ogni volta che arriva a 100.
Riguardo il segmento in SCL usiamo la funzione “Case” assegnandogli Motor index ed a ciascun numero dell’indice i vari DB dei motori.
Quindi quando esso varrà 1, richiamerà motore 1; 2 motore 2 e così via fino a 100.
In questo modo non influenzeremo minimamente il tempo di ciclo della Cpu, facendo in modo che tutto proceda in maniera ottimale.
Al prossimo tutorial.
Da oltre 15 anni, siamo leader nella trasformazione di professionisti senza esperienza in esperti di Programmazione PLC Siemens e nella Ricerca Guasti. Grazie al nostro esclusivo Percorso Formativo, disponibile solo in tutto il Mondo, abbiamo formato migliaia di talenti nel settore. Unisciti alla nostra comunità di successo e scopri come anche tu puoi diventare un Professionista ricercato nel campo dei PLC, iniziando da zero e acquisendo competenze preziose in breve tempo. Non lasciarti sfuggire questa opportunità di crescita professionale e personale – è il momento di investire nel tuo futuro!
—
Strongoli Alessandro
CEO IO PROGRAMMO srl
+39 351 809 4185