A causa dell'ampia varietà di funzionalità che possono essere eseguite in parallelo sui PLC AC500, è consigliabile, o addirittura obbligatorio a seconda della funzionalità desiderata, regolare il comportamento del sistema per meglio adattarlo alle esigenze della singola applicazione.
A causa delle limitazioni e dei vincoli hardware, è necessario dare priorità alle funzionalità, soprattutto se si intende eseguire più funzioni in parallelo. La definizione delle priorità può essere molto difficile a causa della complessità dei componenti software sottostanti. Oltre alle priorità dei compiti, potrebbe essere necessario regolare la configurazione del sistema a basso livello per ottenere le migliori prestazioni possibili per una funzione specifica.
Per ridurre la complessità e quindi il rischio di effetti collaterali negativi, è
stato introdotto il parametro della CPU Communication schema. Questo parametro consente all'utente di definire in modo specifico lo scopo primario
del PLC corrispondente e di concentrarsi su una funzionalità specifica.
|
Schema |
PM50xx |
PM56xx |
Descrizione |
|---|---|---|---|
|
Predefinito |
X |
X |
Priorità bilanciata per la comunicazione tramite moduli di comunicazione (CM) e comunicazione a bordo Ethernet. |
|
Moduli di comunicazione |
- |
X |
Priorità e prestazioni elevate per la comunicazione basata sul modulo di comunicazione (CM) tramite task di sincronizzazione. Priorità inferiore per Ethernet e per il bus I/O. |
|
A bordo Ethernet |
X |
X |
Priorità e prestazioni elevate per la comunicazione basata sul modulo di comunicazione (CM) tramite task di sincronizzazione. Priorità inferiore per Ethernet e per il bus I/O. |
|
A bordo EtherCAT ⮫ «Schema di comunicazione «Onboard EtherCAT» da «SystemFW» 3.4.1» |
X |
X |
Priorità molto alta per la comunicazione a bordo Ethernet (ad esempio EtherCAT, PROFINET, EtherNet/IP). Priorità bassa per la comunicazione tramite moduli di comunicazione (CM). |
La modifica dello schema di comunicazione può avere un impatto significativo sul comportamento dell'applicazione utente e deve quindi essere effettuata solo se,
-
è configurata una funzione che si basa su uno schema specifico (ad esempio, EtherCAT).
-
è necessario ottimizzare il comportamento del sistema in termini di prestazioni (riduzione dei tempi di reazione, aumento del throughput, ecc.)
Si noti che l'aumento della flessibilità e della libertà si accompagna a un aumento della responsabilità, poiché la configurazione dei task IEC e il codice utente IEC potrebbero bloccare per troppo tempo importanti funzionalità del sistema. Le informazioni fornite di seguito dovrebbero aiutare a identificare le impostazioni appropriate per evitare errori di runtime come eccezioni di timeout o problemi di comunicazione.
Classificazioni di priorità e loro scopo
Le funzionalità prioritarie di ogni schema di comunicazione sono raggruppate in 3 diverse classi:
-
Funzionalità in tempo reale ad alta priorità
-
Compiti IEC con priorità in tempo reale
-
Funzionalità non in tempo reale a bassa priorità
Funzionalità in tempo reale ad alta priorità
Le funzionalità con requisiti temporali rigorosi, ad esempio i driver con accesso all'hardware o il monitoraggio del watchdog dell'hardware, potrebbero causare errori di eccezione, perdita di comunicazione con l'hardware e altri problemi non recuperabili che potrebbero causare l'arresto dell'applicazione utente.
La funzionalità di questa classe non può essere influenzata dall'attività dei compiti IEC definiti dall'utente. Di conseguenza, le funzionalità correlate possono interrompere o ritardare le attività IEC e quindi aumentare il jitter delle attività IEC e la durata dei cicli delle attività IEC.
Compiti IEC con priorità in tempo reale
È l'intervallo di priorità dei compiti IEC in tempo reale definiti dall'utente. Le priorità da 0 a 15 sono priorità in tempo reale (la priorità IEC 16 è mappata come priorità non in tempo reale) e possono essere utilizzate per definire la priorità di un task IEC in Automation Builder.
Le attività in questo intervallo possono essere interrotte o ritardate da funzionalità ad alta priorità. Non è possibile che il codice utente IEC sopprima le attività ad alta priorità, aumentando così la sicurezza e riducendo il rischio di effetti collaterali negativi causati da bug nel codice utente IEC o nelle librerie o da una configurazione errata dei task IEC.
Funzionalità non in tempo reale a bassa priorità
L'intervallo a bassa priorità è destinato alle funzionalità non in tempo reale che non hanno requisiti temporali specifici e che devono eseguire la loro attività senza ritardare o interrompere l'applicazione utente e le sue funzionalità correlate.
L'attività assegnata a questo intervallo può essere soppressa da attività IEC ad alta priorità e in tempo reale. Pertanto, a seconda del carico complessivo del sistema, potrebbero verificarsi un elevato jitter, attività sporadiche o tempi di reazione elevati.
Per evitare la soppressione dei compiti di questo gruppo, il sistema riserva una breve fascia oraria per elaborare le funzionalità a bassa priorità se il carico della CPU raggiunge quasi il 100%. In circostanze normali (con un carico medio del sistema inferiore all'80%), questo meccanismo non dovrebbe essere attivato. Sebbene questa fascia oraria possa causare un leggero jitter dei task ad alta priorità (± 100 microsecondi), garantisce che il sistema rimanga reattivo e sia sempre in grado di eseguire i lavori fondamentali che devono essere eseguiti regolarmente. Si noti che le attività a bassa priorità svolgono ancora un ruolo importante e devono essere programmate regolarmente per soddisfare i loro requisiti temporali individuali.
Assicuratevi che il carico medio della CPU non superi l'80% per garantire che il sistema abbia tempo sufficiente per elaborare le funzionalità a bassa priorità.
La funzionalità potrebbe non essere importante per la singola applicazione, ma è comunque necessario mantenere in vita altre funzionalità come il login a Automation Builder o l'accesso ai dati di diagnosi.
Quando il carico della CPU supera l'80%, sarà difficile per il sistema pianificare correttamente le attività.
