Schneider Electric Libreria Twido Emulation Support Guida utente
Oglas
Oglas
Libreria Twido Emulation Support
EIO0000001695 11/2016
Libreria Twido Emulation
Support
Guida della libreria
11/2016 www.schneider-electric.com
2
Questa documentazione contiene la descrizione generale e/o le caratteristiche tecniche dei prodotti qui contenuti. Questa documentazione non è destinata e non deve essere utilizzata per determinare l'adeguatezza o l'affidabilità di questi prodotti relativamente alle specifiche applicazioni dell'utente. Ogni utente o specialista di integrazione deve condurre le proprie analisi complete e appropriate del rischio, effettuare la valutazione e il test dei prodotti in relazione all'uso o all'applicazione specifica. Né Schneider Electric né qualunque associata o filiale deve essere tenuta responsabile o perseguibile per il cattivo uso delle informazioni ivi contenute. Gli utenti possono inviarci commenti e suggerimenti per migliorare o correggere questa pubblicazione.
È vietata la riproduzione totale o parziale del presente documento in qualunque forma o con qualunque mezzo, elettronico o meccanico, inclusa la fotocopiatura, senza esplicito consenso scritto di Schneider Electric.
Durante l'installazione e l'uso di questo prodotto è necessario rispettare tutte le normative locali, nazionali o internazionali in materia di sicurezza. Per motivi di sicurezza e per assicurare la conformità ai dati di sistema documentati, la riparazione dei componenti deve essere effettuata solo dal costruttore.
Quando i dispositivi sono utilizzati per applicazioni con requisiti tecnici di sicurezza, occorre seguire le istruzioni più rilevanti.
Un utilizzo non corretto del software Schneider Electric (o di altro software approvato) con prodotti hardware Schneider Electric può costituire un rischio per l’incolumità del personale o provocare danni alle apparecchiature.
La mancata osservanza di queste indicazioni può costituire un rischio per l'incolumità del personale o provocare danni alle apparecchiature.
© 2016 Schneider Electric. Tutti i diritti riservati.
EIO0000001695 11/2016
Indice
Informazioni di sicurezza . . . . . . . . . . . . . . . . . . . . . . . .
Informazioni su... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Capitolo 1 Informazioni generali sulla libreria
TwidoEmulationSupport . . . . . . . . . . . . . . . . . . . . . . . . .
Informazioni generali sulla libreria TwidoEmulationSupport . . . . . . . .
Capitolo 2 Blocchi funzione standard. . . . . . . . . . . . . . . . . . . . . . . .
FB_Timer
: Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FB_Counter
: Contatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FB_FiFo
e
FB_LiFo
: blocco funzione di registro. . . . . . . . . . . . . . . .
FB_ShiftBitRegister
: registro bit spostamento . . . . . . . . . . . . .
Capitolo 3 Blocchi funzione avanzati . . . . . . . . . . . . . . . . . . . . . . . .
FB_ScheduleBlock
: blocco di programmazione . . . . . . . . . . . . . . .
FB_Drum
: controller drum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FB_StepCounter
: contatore passi . . . . . . . . . . . . . . . . . . . . . . . . . .
FB_PID
: blocco funzione PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Capitolo 4 Blocchi funzione di comunicazione. . . . . . . . . . . . . . . . .
FB_EXCH
: blocco funzione di scambio . . . . . . . . . . . . . . . . . . . . . . . .
FB_ReadVar
: blocco funzione lettura dati . . . . . . . . . . . . . . . . . . . . .
FB_WriteVar
: blocco funzione scrittura dati . . . . . . . . . . . . . . . . . . .
FB_WriteReadVar
: blocco funzione lettura e scrittura . . . . . . . . . . .
FB_SendRecvMsg
: blocco funzione invio e ricezione messaggio . . .
Capitolo 5 Funzioni Twido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funzioni Twido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
40
43
46
26
29
33
34
19
21
23
25
13
13
15
16
48
50
53
53
69
71
5
9
EIO0000001695 11/2016
3
4
EIO0000001695 11/2016
Informazioni di sicurezza
Informazioni importanti
AVVISO
Leggere attentamente queste istruzioni e osservare l’apparecchiatura per familiarizzare con i suoi componenti prima di procedere ad attività di installazione, uso, assistenza o manutenzione. I seguenti messaggi speciali possono comparire in diverse parti della documentazione oppure sull'apparecchiatura per segnalare rischi o per richiamare l'attenzione su informazioni che chiariscono o semplificano una procedura.
EIO0000001695 11/2016
5
6
NOTA
Manutenzione, riparazione, installazione e uso delle apparecchiature elettriche si devono affidare solo a personale qualificato. Schneider Electric non si assume alcuna responsabilità per qualsiasi conseguenza derivante dall’uso di questo materiale.
Il personale qualificato è in possesso di capacità e conoscenze specifiche sulla costruzione, il funzionamento e l'installazione di apparecchiature elettriche ed è addestrato sui criteri di sicurezza da rispettare per poter riconoscere ed evitare le condizioni a rischio.
PRIMA DI INIZIARE
Non utilizzare questo prodotto su macchinari privi di sorveglianza attiva del punto di funzionamento. La mancanza di un sistema di sorveglianza attivo sul punto di funzionamento può presentare gravi rischi per l'incolumità dell'operatore macchina.
AVVERTIMENTO
APPARECCHIATURA NON PROTETTA
Non utilizzare questo software e la relativa apparecchiatura di automazione su macchinari privi di protezione per le zone pericolose.
Non avvicinarsi ai macchinari durante il funzionamento.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Questa apparecchiatura di automazione con il relativo software permette di controllare processi industriali di vario tipo. Il tipo o il modello di apparecchiatura di automazione adatto per ogni applicazione varia in funzione di una serie di fattori, quali la funzione di controllo richiesta, il grado di protezione necessario, i metodi di produzione, eventuali condizioni particolari, la regolamen tazione in vigore, ecc. Per alcune applicazioni può essere necessario utilizzare più di un processore, ad esempio nel caso in cui occorra garantire la ridondanza dell'esecuzione del programma.
Solo l'utente, il costruttore della macchina o l'integratore del sistema sono a conoscenza delle condizioni e dei fattori che entrano in gioco durante l'installazione, la configurazione, il funzionamento e la manutenzione della macchina e possono quindi determinare l'apparecchiatura di automazione e i relativi interblocchi e sistemi di sicurezza appropriati. La scelta dell'apparecchiatura di controllo e di automazione e del relativo software per un'applicazione particolare deve essere effettuata dall'utente nel rispetto degli standard locali e nazionali e della regolamentazione vigente. Per informazioni in merito, vedere anche la guida National Safety
Council's Accident Prevention Manual (che indica gli standard di riferimento per gli Stati Uniti d'America).
EIO0000001695 11/2016
Per alcune applicazioni, ad esempio per le macchine confezionatrici, è necessario prevedere misure di protezione aggiuntive, come un sistema di sorveglianza attivo sul punto di funzionamento. Questa precauzione è necessaria quando le mani e altre parti del corpo dell'operatore possono raggiungere aree con ingranaggi in movimento o altre zone pericolose, con conseguente pericolo di infortuni gravi. I prodotti software da soli non possono proteggere l'operatore dagli infortuni. Per questo motivo, il software non può in alcun modo costituire un'alternativa al sistema di sorveglianza sul punto di funzionamento.
Accertarsi che siano stati installati i sistemi di sicurezza e gli asservimenti elettrici/meccanici opportuni per la protezione delle zone pericolose e verificare il loro corretto funzionamento prima di mettere in funzione l'apparecchiatura. Tutti i dispositivi di blocco e di sicurezza relativi alla sorveglianza del punto di funzionamento devono essere coordinati con l'apparecchiatura di automazione e la programmazione software.
NOTA: Il coordinamento dei dispositivi di sicurezza e degli asservimenti meccanici/elettrici per la protezione delle zone pericolose non rientra nelle funzioni della libreria dei blocchi funzione, del manuale utente o di altre implementazioni indicate in questa documentazione.
AVVIAMENTO E VERIFICA
Prima di utilizzare regolarmente l'apparecchiatura elettrica di controllo e automazione dopo l'installazione, l'impianto deve essere sottoposto ad un test di avviamento da parte di personale qualificato per verificare il corretto funzionamento dell'apparecchiatura. È importante programmare e organizzare questo tipo di controllo, dedicando ad esso il tempo necessario per eseguire un test completo e soddisfacente.
AVVERTIMENTO
RISCHI RELATIVI AL FUNZIONAMENTO DELL'APPARECCHIATURA
Verificare che tutte le procedure di installazione e di configurazione siano state completate.
Prima di effettuare test sul funzionamento, rimuovere tutti i blocchi o altri mezzi di fissaggio dei dispositivi utilizzati per il trasporto.
Rimuovere gli attrezzi, i misuratori e i depositi dall'apparecchiatura.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Eseguire tutti i test di avviamento raccomandati sulla documentazione dell'apparecchiatura.
Conservare con cura la documentazione dell'apparecchiatura per riferimenti futuri.
Il software deve essere testato sia in ambiente simulato che in ambiente di funzionamento reale.
Verificare che il sistema completamente montato e configurato sia esente da cortocircuiti e punti a massa, ad eccezione dei punti di messa a terra previsti dalle normative locali (ad esempio, in conformità al National Electrical Code per gli USA). Nel caso in cui sia necessario effettuare un test sull'alta tensione, seguire le raccomandazioni contenute nella documentazione dell'apparecchiatura al fine di evitare danni accidentali all'apparecchiatura stessa.
EIO0000001695 11/2016
7
Prima di mettere sotto tensione l'apparecchiatura:
Rimuovere gli attrezzi, i misuratori e i depositi dall'apparecchiatura.
Chiudere lo sportello del cabinet dell'apparecchiatura.
Rimuovere tutte le messa a terra temporanee dalle linee di alimentazione in arrivo.
Eseguire tutti i test di avviamento raccomandati dal costruttore.
FUNZIONAMENTO E REGOLAZIONI
Le seguenti note relative alle precauzioni da adottare fanno riferimento alle norme NEMA
Standards Publication ICS 7.1-1995 (fa testo la versione inglese):
Indipendentemente dalla qualità e della precisione del progetto nonché della costruzione dell'apparecchiatura o del tipo e della qualità dei componenti scelti, possono sussistere dei
rischi se l'apparecchiatura non viene utilizzata correttamente.
Eventuali regolazioni involontarie possono provocare il funzionamento non soddisfacente o non sicuro dell'apparecchiatura. Per effettuare le regolazioni funzionali, attenersi sempre alle istruzioni contenute nel manuale fornito dal costruttore. Il personale incaricato di queste regolazioni deve avere esperienza con le istruzioni fornite dal costruttore delle apparecchiature e con i macchinari utilizzati con l'apparecchiatura elettrica.
L'operatore deve avere accesso solo alle regolazioni relative al funzionamento delle apparecchiature. L'accesso agli altri organi di controllo deve essere riservato, al fine di impedire modifiche non autorizzate ai valori che definiscono le caratteristiche di funzionamento delle apparecchiature.
8
EIO0000001695 11/2016
Informazioni su...
In breve
Scopo del documento
Questo documento descrive la libreria TwidoEmulationSupport che fornisce le funzioni e i blocchi funzione per convertire progetti da SoMachine Basic / TwidoSoft / TwidoSuite in un'implemen tazione compatibile in SoMachine. Per ulteriori informazioni su Twido, fare riferimento a
Conversione progetti SoMachine Basic e Twido agli elenchi programmazione) .
(vedi SoMachine, Guida alla programmazione)
Funzione controller impostata per la migrazione (vedi SoMachine, Guida alla
e
Nota di validità
Questo documento è stato aggiornato per la versione di SoMachine Basic V1.5.
Questo documento è stato aggiornato per la versione di SoMachine V4.2.
Documenti correlati
Titolo della documentazione
SoMachine - Guida alla programmazione
SoMachine Basic - Funzioni generiche - Guida della libreria
SoMachine Basic - Guida operativa
Numero di riferimento
EIO0000000067 (ENG);
EIO0000000069 (FRE);
EIO0000000068 (GER);
EIO0000000071 (SPA);
EIO0000000070 (ITA);
EIO0000000072 (CHS)
EIO0000001474 (ENG);
EIO0000001475 (FRE);
EIO0000001476 (GER);
EIO0000001477 (SPA);
EIO0000001478 (ITA);
EIO0000001479 (CHS)
EIO0000001354 (ENG);
EIO0000001356 (FRE);
EIO0000001410 (GER);
EIO0000001357 (SPA);
EIO0000001358 (ITA);
EIO0000001359 (CHS)
EIO0000001695 11/2016
9
Titolo della documentazione
SoMachine - Funzioni Modbus e di Lettura/scrittura ASCII - Guida della libreria comunicazioni PLC
Numero di riferimento
EIO0000000361 (ENG);
EIO0000000742 (FRE);
EIO0000000743 (GER);
EIO0000000744 (SPA);
EIO0000000745 (ITA);
EIO0000000746 (CHS)
E' possibile scaricare queste pubblicazioni e tutte le altre informazioni tecniche dal sito http://download.schneider-electric.com
Informazioni relative al prodotto
AVVERTIMENTO
PERDITA DI CONTROLLO
Il progettista degli schemi di controllo deve prendere in considerazione le potenziali modalità di errore dei vari percorsi di controllo e, per alcune funzioni di controllo particolarmente critiche, deve fornire i mezzi per raggiungere uno stato di sicurezza durante e dopo un errore di percorso. Esempi di funzioni di controllo critiche sono ad esempio l'arresto di emergenza e l'arresto di finecorsa, l'interruzione dell'alimentazione e il riavvio.
Per le funzioni di controllo critiche occorre prevedere sequenze di controllo separate o ridondanti.
Le sequenze di controllo del sistema possono includere link di comunicazione. È necessario tenere presente le possibili implicazioni di ritardi di trasmissione imprevisti o di errori del collegamento.
Osservare tutte le norme per la prevenzione degli incidenti e le normative di sicurezza locali.
1
Prima della messa in servizio dell'apparecchiatura, controllare singolarmente e integralmente il funzionamento di ciascun controller.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
1 Per ulteriori informazioni, fare riferimento a NEMA ICS 1.1 (ultima edizione), "Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control" e a NEMA ICS 7.1 (ultima edizione), "Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems" o alla pubblicazione equivalente valida nel proprio paese.
10
EIO0000001695 11/2016
AVVERTIMENTO
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA
Con questa apparecchiatura utilizzare esclusivamente il software approvato da Schneider
Electric.
Aggiornare il programma applicativo ogni volta che si cambia la configurazione dell'hardware fisico.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Terminologia derivata dagli standard
I termini tecnici, la terminologia, i simboli e le descrizioni corrispondenti in questo manuale o che compaiono nei o sui prodotti stessi, derivano in genere dai termini o dalle definizioni degli standard internazionali.
Nell'ambito dei sistemi di sicurezza funzionale, degli azionamenti e dell'automazione generale, questi includono anche espressioni come sicurezza , funzione di sicurezza , stato sicuro , anomalia reset anomalie , malfunzionamento , guasto , errore , messaggio di errore , pericoloso , ecc.
,
Tra gli altri, questi standard includono:
Standard
EN 61131-2:2007
ISO 13849-1:2008
EN 61496-1:2013
ISO 12100:2010
EN 60204-1:2006
EN 1088:2008
ISO 14119:2013
ISO 13850:2006
EN/IEC 62061:2005
IEC 61508-1:2010
IEC 61508-2:2010
Descrizione
Controller programmabili, parte 2: Requisiti e test delle apparecchiature.
Sicurezza dei macchinari: Componenti relativi alla sicurezza dei sistemi di controllo.
Principi generali per la progettazione.
Sicurezza dei macchinari: Apparecchiature elettrosensibili di protezione.
Parte 1: Requisiti generali e test.
Sicurezza dei macchinari - Principi generali di progettazione - Valutazione e riduzione dei rischi
Sicurezza dei macchinari - Apparecchiature elettriche dei macchinari - Parte 1:
Requisiti generali
Sicurezza dei macchinari - Dispositivi di interblocco associati alle protezioni -
Principi di progettazione e selezione
Sicurezza dei macchinari - Arresto di emergenza - Principi di progettazione
Sicurezza dei macchinari - Sicurezza funzionale dei sistemi di controllo elettrici, elettronici ed elettronici programmabili correlati alla sicurezza
Sicurezza funzionale dei sistemi elettrici, elettronici ed elettronici programmabili correlati alla sicurezza: Requisiti generali.
Sicurezza funzionale dei sistemi elettrici, elettronici ed elettronici programmabili correlati alla sicurezza: Requisiti per i sistemi elettrici, elettronici ed elettronici programmabili correlati alla sicurezza.
EIO0000001695 11/2016
11
12
Standard
IEC 61508-3:2010
IEC 61784-3:2008
2006/42/EC
2014/30/EU
2014/35/EU
Descrizione
Sicurezza funzionale dei sistemi elettrici, elettronici ed elettronici programmabili correlati alla sicurezza: Requisiti del software
Comunicazione dei dati digitali per la misura e il controllo: Bus di campo per la sicurezza funzionale
Direttiva macchine
Direttiva compatibilità elettromagnetica
Direttiva bassa tensione
I termini utilizzati nel presente documento possono inoltre essere utilizzati indirettamente, in quanto provenienti da altri standard, quali:
Standard
Serie IEC 60034
Serie IEC 61800
Serie IEC 61158
Descrizione
Macchine elettriche rotative
Sistemi di azionamento ad alimentazione elettrica e velocità regolabile
Comunicazioni di dati digitali per misure e controllo – Bus di campo destinati all'impiego nei sistemi di controllo industriali
Infine, l'espressione area di funzionamento può essere utilizzata nel contesto di specifiche condizioni di pericolo e in questo caso ha lo stesso significato dei termini area pericolosa di pericolo espressi nella Direttiva macchine ( 2006/42/EC ) e ISO 12100:2010 .
o zona
NOTA: Gli standard indicati in precedenza possono o meno applicarsi ai prodotti specifici citati nella presente documentazione. Per ulteriori informazioni relative ai singoli standard applicabili ai prodotti qui descritti, vedere le tabelle delle caratteristiche per tali codici di prodotti.
EIO0000001695 11/2016
Libreria Twido Emulation Support
Informazioni generali sulla libreria TwidoEmulationSupport
EIO0000001695 11/2016
Informazioni generali sulla libreria TwidoEmulationSupport
Capitolo 1
Informazioni generali sulla libreria TwidoEmulationSupport
Informazioni generali sulla libreria TwidoEmulationSupport
Conversione dei blocchi funzione
Per la conversione dei blocchi funzione sono disponibili le seguenti opzioni:
Il blocco funzione è convertito in un tipo che esiste già in SoMachine, ad esempio il blocco funzione esiste nella libreria standard.
Per maggiori informazioni sulle librerie standard, fare riferimento alla Guida in linea SoMachine
/ Librerie CoDeSys / Libreria standard .
Un nuovo blocco funzione interamente compatibile con SoMachine Basic viene implementato e diventa parte della libreria TwidoEmulationSupport.
Per funzioni e blocchi funzione che non sono previsti per l'uso in un progetto SoMachine, il convertitore può generare un tipo con nessuna implementazione.
Per maggiori informazioni sulla conversione dei blocchi funzione, fare riferimento a Conversione di progetti SoMachine Basic e Twido (vedi SoMachine, Guida alla programmazione) .
EIO0000001695 11/2016
13
Informazioni generali sulla libreria TwidoEmulationSupport
14
EIO0000001695 11/2016
Libreria Twido Emulation Support
Blocchi funzione standard
EIO0000001695 11/2016
Blocchi funzione standard
Capitolo 2
Blocchi funzione standard
Contenuto di questo capitolo
Questo capitolo contiene le seguenti sottosezioni:
Argomento
FB_Timer
: Timer
FB_Counter
: Contatore
FB_FiFo
e
FB_LiFo
: blocco funzione di registro
FB_ShiftBitRegister
: registro bit spostamento
Pagina
EIO0000001695 11/2016
15
Blocchi funzione standard
FB_Timer
: Timer
Panoramica
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_Timer
:
Il blocco funzione
%TM
in SoMachine Basic può configurare 3 tipi di timer:
TON (Timer On-Delay): questo tipo di timer permette di controllare le azioni che rientrano nel ritardo prestabilito.
TOF (Timer Off-Delay): questo tipo di timer permette di controllare le azioni che non rientrano nel ritardo prestabilito.
TP (Timer-Pulse): questo tipo di timer permette di creare un impulso di una durata precisa.
Per ulteriori informazioni vedere la guida in linea CoDeSys in SoMachine: Librerie
CoDesSys/Libreria standard/Timer .
NOTA: Quando si cambia il tipo di timer online mentre i_xEnable
è TRUE, il tipo di timer selezionato in precedenza viene resettato e si avvia il nuovo tipo di timer. Le uscite FB si comportano in base all'ultimo timer selezionato.
Descrizione delle variabili di I/O
La libreria TwidoEmulationSupport fornisce una funzione
FB_Timer
, che richiama il tipo di timer
TON, TOF o TP a seconda dell'ingresso i_etTimerType
. Il
TimeBase
permette di calcolare il tempo preimpostato.
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xEnable i_iPreset i_etTimerType i_etTimeBase
Tipo di dati
BOOL
INT
ET_TimerType
ET_TimerTimeBases
Descrizione
Il fronte di salita inizia il conteggio avanti q_iCurrentValue
.
Valore iniziale del valore preimpostato
(0..32767)
Indica il tipo di timer: TON, TOF o TP
Base tempo di 1 ms, 10 ms, 100 ms, 1 s,
1 min
Valore predefinito: 1 min
16
EIO0000001695 11/2016
Blocchi funzione standard
Ingresso i_etMaxVal i_xRetentive
Tipo di dati
ET_TimerCounterMaxVal
BOOL
Descrizione
Valore massimo
Comportamento del timer:
TRUE: il timer mantiene il valore
dell'uscita q_iCurrentValue
quando disattivato e continua a contare dal valore precedente quando riattivato
FALSE: il timer azzera l'scita q_iCurrentValue
dopo la disattivazione
Il tipo di dati per la variabile di ingresso i_etTimerType
è:
TYPE ET_TimeType:
(
TON
TOF
:= 1,
:= 2,
//
//
TP
) INT;
:= 3,
END_TYPE
//
On-delay Timer
Off-delay Timer
Pulse Timer
NOTA: Se viene fornito un valore non valido a i_etTimerType
, q_xOutput
rimane FALSE e q_iCurrentValue
a 0.
Il tipo di dati per la variabile di ingresso i_etTimeBase
è:
TYPE ET_TimerTimeBases:
( tb1MS := 1, // 1 millisecond time base tb10MS := 2, tb100MS := 3, tb1S tb1M
:= 4,
:= 5,
) INT;
ET_TYPE
//
//
//
//
10 millisecond time base
100 millisecond time base
10 second time base
1 minute time base
Il tipo di dati per la variabile di ingresso i_etMaxVal
è:
TYPE ET_TimerCounterMaxVal:
(
Val9999 := 0, //
Val32767 := 1 //
Value
Value
9999
3267
) INT
END_TYPE
EIO0000001695 11/2016
17
Blocchi funzione standard
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xOutput q_iCurrentValue
Tipo di dati
BOOL
INT
Descrizione
Uscita timer
Tempo trascorso
18
EIO0000001695 11/2016
Blocchi funzione standard
FB_Counter
: Contatore
Panoramica
Il blocco funzione
FB_Counter
fornisce il conteggio avanti e indietro degli eventi.
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_Counter
:
Descrizione delle variabili di I/O
La libreria TwidoEmulationSupport fornisce un blocco funzione
FB_Counter
che richiama il blocco funzione
CTUD
. Il comportamento standard di
CTUD
è esteso con una gestione del valore preimpostato e con un comportamento di overflow compatibile con Twido.
Per maggiori informazioni sui contatori vedere la guida in linea CoDeSys in SoMachine standard / Contatore .
Libreria
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xLoad i_xReset i_xCountUp i_xCountDown i_iPreset i_etMaxVal
Tipo di dati
BOOL
BOOL
BOOL
BOOL
INT
ET_TimerCounterMaxVal
Descrizione
Imposta il valore corrente al valore preimpostato.
Resetta l'ingresso.
Esegue il conteggio avanti dell'ingresso.
Esegue il conteggio indietro dell'ingresso.
Valore preimpostato
Valore predefinito: 32767
Valore massimo del contatore e preimpostato
EIO0000001695 11/2016
19
Blocchi funzione standard
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xUnderflow q_xDone q_iCounterValue q_xOverflow
Tipo di dati
BOOL
BOOL
INT
BOOL
Descrizione
Underflow conteggio indietro / vuoto q_iCounterValue
= i_iPreset
/ preimpostazione raggiunta / fine
Valore corrente (0 - 32767)
Overflow conteggio avanti pieno
20
EIO0000001695 11/2016
Blocchi funzione standard
FB_FiFo
e
FB_LiFo
: blocco funzione di registro
Panoramica
Il blocco funzione di registro in SoMachine Basic può essere di 2 tipi:
Coda (FIFO)
Stack (LIFO)
I grafici seguenti mostrano gli schemi dei pin dei blocchi funzione
FB_FiFo
e
FB_LiFo
:
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso/uscita del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso/Uscita iq_iInput iq_iOutput
Tipo di dati
INT
INT
Descrizione
Parola di ingresso (variabile di lettura e scrittura)
Parola di uscita (variabile di lettura e scrittura)
EIO0000001695 11/2016
21
Blocchi funzione standard
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xReset i_xStorage i_xRetrieve
Tipo di dati
BOOL
BOOL
BOOL
Descrizione
L'ingresso di reset inizializza il registro allo stato
= 1
L'ingresso di salvataggio memorizza il contenuto nel registro su un fronte di salita.
L'ingresso di recupero carica una parola dati del registro su un fronte di salita.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xEmpty q_xFull
Tipo di dati
BOOL
BOOL
Descrizione
Questa uscita indica che il registro è vuoto.
Questa uscita indica che il registro è pieno.
22
EIO0000001695 11/2016
Blocchi funzione standard
FB_ShiftBitRegister
: registro bit spostamento
Panoramica
Il blocco funzione
FB_ShiftBitRegister
fornisce uno spostamento a sinistra o a destra di bit di dati binari. Non si tratta di uno spostamento rotatorio di bit. I bit di overflow vanno perduti.
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_ShiftBitRegister
:
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso/uscita del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso/Uscita iq_iRegister
(16 Bit)
Tipo di dati
INT
Descrizione
Bit registro
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xReset i_xShiftLeft i_xShiftRight
Tipo di dati
BOOL
BOOL
BOOL
Descrizione
L'ingresso reset reimposta tutti i bit a 0.
Su un fronte di salita, sposta un bit del registro verso sinistra.
Su un fronte di salita, sposta un bit del registro verso destra.
EIO0000001695 11/2016
23
Blocchi funzione standard
24
EIO0000001695 11/2016
Libreria Twido Emulation Support
Blocchi funzione avanzati
EIO0000001695 11/2016
Blocchi funzione avanzati
Capitolo 3
Blocchi funzione avanzati
Contenuto di questo capitolo
Questo capitolo contiene le seguenti sottosezioni:
Argomento
FB_ScheduleBlock
: blocco di programmazione
FB_Drum
: controller drum
FB_StepCounter
: contatore passi
FB_PID
: blocco funzione PID
Pagina
EIO0000001695 11/2016
25
Blocchi funzione avanzati
FB_ScheduleBlock
: blocco di programmazione
Panoramica
Il blocco funzione
FB_ScheduleBlock
permette di controllare azioni in un mese, un giorno e un'ora definiti.
Il grafico seguente mostra lo schema pin del blocco funzione
FB_ScheduleBlock
:
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xEnable i_etStartMonth i_etEndMonth i_uiStartDay i_uiEndDay i_uiStartHour i_uiEndHour
Tipo di dati
BOOL
ET_Month
ET_Month
UINT
UINT
UINT
UINT
Descrizione
Attivare il blocco funzione
FB_ScheduleBlock
.
Il mese per impostare l'uscita (da gennaio a dicembre).
Il mese per reimpostare l'uscita (da gennaio a dicembre).
[1..31] Giorno di inizio attivazione
[1..31] Giorno di fine attivazione
[0..23] Ora di inizio attivazione
[0..23] Ora di fine attivazione
26
EIO0000001695 11/2016
Ingresso i_uiStartMinute i_uiEndMinute i_xMonday i_xTuesday i_xWednesday i_xThursday i_xFriday i_xSaturday i_xSunday
Tipo di dati
UINT
UINT
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
Blocchi funzione avanzati
Descrizione
[0..59] Minuto di inizio attivazione
[0..59] Minuto di fine attivazione
Esecuzione attività il lunedì
Esecuzione attività il martedì
Esecuzione attività il mercoledì
Esecuzione attività il giovedì
Esecuzione attività il venerdì
Esecuzione attività il sabato
Esecuzione attività la domenica
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xOutput
Tipo di dati
BOOL
Descrizione
Questa uscita è impostata a 1 se la data e l'ora correnti si trovano tra l'impostazione dell'inizio del periodo attivo e l'impostazione della fine del periodo attivo.
q_etScheduleBlockDiag
ET_ScheduleBlockDiag Codice di diagnostica
ET_ScheduleBlockDiag.
q_sMsg
String Messaggio diagnostico
EIO0000001695 11/2016
27
Blocchi funzione avanzati
28
La struttura dati DTU.ERROR (ENUM) descrive gli errori che si verificano quando si usano le funzioni della libreria CAA_DtUtility. L'intervallo dei codici di errore 5750-5799 è riservato a questa libreria nella registrazione dei prefissi delle librerie. Per maggiori informazioni fare riferimento a
Librerie CAA/CAA_DTUtil.library/Tipi di dati/Enumerazioni/DTU.ERROR (ENUM) .
EIO0000001695 11/2016
Blocchi funzione avanzati
FB_Drum
: controller drum
Panoramica
Il controller drum funziona in modo simile a un controller drum elettromeccanico. Il drum può fornire fino a 8 stati che vengono attivati ciclicamente. Quando un fronte di salita sull'ingresso i_xNextStep
fa girare ulteriormente il drum, il numero attuale di passo può anche essere impostato dal software.
Ogni stato drum attiva un modello di max. 16 bit di controllo, per cui il controller drum rappresenta un tipo di macchina di stato.
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_Drum
:
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso/uscita del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso/Uscita iq_iStepNumberAct
Tipo di dati
INT
Descrizione
Numero di passo attuale che può essere letto e scritto. Quando viene scritto, il nuovo valore è effettivo alla successiva esecuzione del blocco funzione.
EIO0000001695 11/2016
29
Blocchi funzione avanzati
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xReset i_xNextStep
Tipo di dati
BOOL
BOOL i_iNumberOfSteps
INT i_abyAssignOutputsToSteps
ARRAY OF BYTE
Descrizione
L'ingresso di reset imposta il controller drum al passo 0.
Un fronte di salita su questo ingresso fa avanzare di un passo il controller drum e aggiorna i bit di controllo.
1-8 (numero di passi)
Assegnazione degli ingressi 0 - 15 ai passi 0 - 7
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xFull q_x00 - q_x15
Tipo di dati
BOOL
BOOL
Descrizione
L'uscita completa indica che il passo corrente è uguale all'ultimo passo definito.
Le uscite o i bit interni associati al passo (16 bit di controllo) e definiti nell'Editor di configurazione
SoMachine Basic.
30
EIO0000001695 11/2016
Blocchi funzione avanzati
La configurazione di
FB_Drum
non è una configurazione, ma un array di ingresso del blocco funzione. Il grafico seguente mostra l'Assistente Drum in SoMachine Basic:
1 Numero di passi disponibili nel controller drum (max. 8).
2 Una maschera di bit 8x16 per assegnare gli stati a tutte le uscite bit (ARRAY [0..15] OF BYTE rappresenta questo maschera di bit).
3 16 uscite bit
EIO0000001695 11/2016
31
Blocchi funzione avanzati
Nuovo blocco funzione nella libreria TwidoEmulationSupport:
32
EIO0000001695 11/2016
Blocchi funzione avanzati
FB_StepCounter
: contatore passi
Panoramica
Il blocco funzione
FB_StepCounter
fornisce una serie di passi ai quali è possibile assegnare le azioni. Il passaggio da un passo a un altro dipende da eventi interni o esterni.
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_StepCounter
:
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso/uscita del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso/Uscita iq_axCurrentStep
Tipo di dati Descrizione
ARRAY [] OF BOOL Bit del contatore passi da 0 a 255.
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xReset i_xUp i_xDown
Tipo di dati
BOOL
BOOL
BOOL
Descrizione
Reimposta il contatore passi.
Lo spostamento all'ingresso di sinistra aumenta di un passo il contatore passi sul fronte di salita.
Lo spostamento all'ingresso di destra aumenta di un passo il contatore passi sul fronte di salita.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_byCurrentStepNumber
Tipo di dati
BYTE
Descrizione
Bit del contatore passi da 0 a 255.
Ogni volta che un passo è attivo, il bit associato è impostato a 1. Il contatore passi può controllare i bit di uscita (bit di memoria). Può essere attivo solo un passo di un contatore passi alla volta. Se un bit in iq_axCurrentStep
è impostato esternamente, tutti gli altri bit sono reimpostati e q_byCurrentStepNumber
è impostato di conseguenza.
EIO0000001695 11/2016
33
Blocchi funzione avanzati
FB_PID
: blocco funzione PID
Panoramica
Il blocco funzione
FB_PID
fornisce un controller PID
Il grafico seguente mostra uno schema dei pin del blocco funzione
FB_PID
:
L'algoritmo principale è rappresentato dal seguente diagramma di flusso:
34
L'algoritmo principale viene calcolato nel seguente modo:
EIO0000001695 11/2016
Blocchi funzione avanzati
Mentre una costante di tempo di
Td
=0 disattiva la derivazione derivativa del controller PID, viene inibito il guadagno proporzionale
Kp
di 0. Di conseguenza si ha un guadagno del 100%.
L'impostazione della costante di tempo integrale
Ti
=0 provoca il passaggio a una regola di calcolo alternativa:
In questo modo viene centrato il segnale di uscita analogico che si trova nell'intervallo [0..10000].
Il valore misurato può essere convertito in un intervallo parametrizzato. Questo nuovo intervallo viene quindi applicato sia al setpoint sia ai livelli di allarme di misura.
In ogni caso l'uscita si trova nell'intervallo [0..10000] ma può essere limitata.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_iMeasure i_iSetpoint i_etOpMode i_xMeasConversion i_iConversionMin i_iConversionMax i_xMeasAlarm i_iAlarmHigh i_iAlarmLow i_iKp i_iTi i_iTd i_xDirectOutput
Tipo di dati
INT
INT
ET_PidOpMode
BOOL
INT
INT
BOOL
INT
INT
INT
INT
INT
BOOL
Descrizione
Variabile di controllo [1 - 10000]
Setpoint del controller [1 - 10000] o [min - max configurato]
PID / PI - nel caso di PID può essere sovrascritto da etCorrectorType
per scopi di compatibilità.
Attiva la conversione di valori misurati ai limiti impostati da [0 - 10000] a [ i_iConversionMin
- i_iConversionMax
].
Conversione del valore minimo.
Conversione del valore massimo.
Attiva gli allarmi dell'intervallo di valori misurati.
Valore di soglia di allarme High per q_iAnalogOutput
.
Valore di soglia di allarme Low per q_iAnalogOutput
.
Fattore di guadagno proporzionale
Costante di tempo integrale
Costante di tempo derivativa (ignorata in caso di
PI)
TRUE: azione diretta
FALSE: azione inversa
EIO0000001695 11/2016
35
Blocchi funzione avanzati
Ingresso i_xLimitOutput i_iLimitMin i_iLimitMax i_iPWMPeriod
Tipo di dati
BOOL
INT
INT
INT
Descrizione
Attiva la limitazione di uscita.
Limite inferiore di uscita
Limite superiore di uscita
Segnale PWM
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_iAnalogOutput q_rDutyCycleOutput q_xPWM q_xMeasureValueLowAlarm q_etPidDiag q_sMsg
Tipo di dati
INT
REAL
BOOL
BOOL q_xMeasureValueHighAlarm
BOOL
ET_PidDiag
STRING
Descrizione
Uscita del controller da convertire da digitale a analogica [1 - 10000]
Ridotto a un valore [0 - 1] che può essere assegnato manualmente a un modulo PWM.
Uscita PWM generata da software
Monitoraggio della variabile di controllo.
Viene impostato a 1 se il valore scende sotto il livello di allarme Low.
Monitoraggio della variabile di controllo.
Viene impostato a 1 se il valore supera il livello di allarme High.
Codice diagnostico dal controller PID
Messaggio diagnostico
La configurazione del blocco PID in SoMachine Basic fornisce il periodo di campionamento di parametri aggiuntivi (nella scheda PID di Assistente PID ). Il periodo di campionamento è il tempo di ciclo del task che esegue il blocco PID. Per garantire che il segnale su q_xPWM
sia generato correttamente, il valore di i_iPWMPeriod
configurato deve essere un multiplo del tempo di campionamento. Un periodo PWM di 0 disattiva la generazione del segnale.
L'ingresso i_etOpMode
è del tipo:
36
EIO0000001695 11/2016
L'uscita i_etPidDiag
è del tipo:
Blocchi funzione avanzati
EIO0000001695 11/2016
37
Blocchi funzione avanzati
38
EIO0000001695 11/2016
Libreria Twido Emulation Support
Blocchi funzione di comunicazione
EIO0000001695 11/2016
Blocchi funzione di comunicazione
Capitolo 4
Blocchi funzione di comunicazione
Contenuto di questo capitolo
Questo capitolo contiene le seguenti sottosezioni:
FB_EXCH
: blocco funzione di scambio
FB_ReadVar
: blocco funzione lettura dati
Argomento
FB_WriteVar
: blocco funzione scrittura dati
FB_WriteReadVar
: blocco funzione lettura e scrittura
FB_SendRecvMsg
: blocco funzione invio e ricezione messaggio
Pagina
EIO0000001695 11/2016
39
Blocchi funzione di comunicazione
FB_EXCH
: blocco funzione di scambio
Panoramica
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_EXCH
:
Il controller M221 può comunicare con un dispositivo slave Modbus o inviare/ricevere messaggi in modalità carattere (ASCII).
Twido e SoMachine Basic forniscono le seguenti funzioni per la comunicazione:
Istruzione
EXCH
per la trasmissione/ricezione di messaggi
Blocco funzione di controllo di scambio (
MSG
) per controllare gli scambi di dati
La libreria TwidoEmulationSupport gestisce la comunicazione con il blocco funzione
FB_EXCH
.
Questo blocco funzione usa il blocco funzione
SEN.SEND_RECV_MSG
della libreria PLCCommuni cation. Questo blocco ha la funzionalità di inviare e ricevere messaggi definiti dall'utente e attende una risposta.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xExecute i_xReset i_byPort
Tipo di dati
BOOL
BOOL
BYTE
Descrizione
La funzionalità inizia sul fronte di salita.
La trasmissione del messaggio corrente si arresta sul fronte di salita e la comunicazione si reinizializza.
Porta di comunicazione [1 - 3]
1 = porta seriale 1
2 = porta seriale 2
3 = Ethernet
40
EIO0000001695 11/2016
Blocchi funzione di comunicazione
Ingresso i_pbyBuffer i_uiLengthInByte i_xAsciiMode
Tipo di dati
POINTER TO BYTE
UINT
BOOL
Descrizione
Puntatore al buffer di invio e/o ricezione. Le prime
2 parole sono parole di controllo.
Prime 2 parole: 4 byte di controllo:
1. Lunghezza del byte di controllo: il byte di lunghezza contiene la lunghezza della tabella di trasmissione in byte (250 max), che viene sovrascritta dal numero di caratteri ricevuti alla fine della ricezione (se questa è richiesta).
2. Comando byte di controllo: [0 - 2]
0 = solo trasmissione
1 = trasmissione/ricezione
2 = solo ricezione
3. Byte di controllo
SndBytePosDiscard
: la posizione del byte non è inviata.
4. Byte di controllo
RcvBytePosDiscard
: la posizione del byte ricevuto è annullata.
Lunghezza del buffer di invio/ricezione + 2 parole di controllo
TRUE = modalità ASCII configurata.
FALSE = Modbus TCP configurato.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xBusy q_xDone q_xError q_etExchDiag q_sMsg
Tipo di dati
BOOL
BOOL
BOOL
ET_ExchDiag
STRING [80]
Descrizione q_xBusy mentre la funzione è in corso, è impostato a TRUE.
Quando la funzione viene completata correttamente, q_xDone
è impostato a TRUE.
Quando la funzione si interrompe per il rilevamento di un errore, q_xError
è impostato a TRUE.
Codice di diagnostica.
Messaggio diagnostico.
EIO0000001695 11/2016
41
Blocchi funzione di comunicazione
Il blocco funzione
FB_EXCH
ha i seguenti codici di errore:
42
EIO0000001695 11/2016
Blocchi funzione di comunicazione
FB_ReadVar
: blocco funzione lettura dati
Panoramica
Il grafico seguente mostra lo shema dei pin del blocco funzione
FB_ReadVar
:
Il blocco funzione
FB_ReadVar
legge i dati da un dispositivo esterno tramite il protocollo Modbus
SL o Modbus TCP.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xExecute i_xAbort i_iLink i_iId i_iTimeout
Tipo di dati
BOOL
BOOL
INT
INT
INT
Descrizione
La funzione è eseguita sul fronte di salita di questo ingresso.
NOTA: Quando ixExecute
è impostato a
TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato.
Interrompe l'operazione in corso sul fronte di salita.
Indica la porta utilizzata per comunicare.
1 = porta seriale 1
2 = porta seriale 2
3 = Ethernet / Modbus TCP
Identificatore dispositivo del dispositivo esterno di destinazione:
Indirizzo slave linea seriale: 1...247 o
Indice Ethernet: 1...16
(A seconda della configurazione).
Imposta il tempo massimo di attesa per la ricezione di una risposta dal modem. Specificato in ms. Un valore di 0 indica nessun timeout.
EIO0000001695 11/2016
43
Blocchi funzione di comunicazione
Ingresso i_etObjType i_diFirstObj i_iQuantity i_pbyBuffer i_astRemoteDevices
Tipo di dati
SEN.ObjectType
DINT
INT
POINTER TO BYTE
ARRAY
[1..Gc_uiRemoteAddr
essTableLen] OF
ST_RemoteDevice
Descrizione
Il valore del tipo dati enumerato
(
SEN.ObjectType
(vedi SoMachine,
Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
) contiene i tipi di oggetto disponibili per la scrittura:
MW
: lettura registro di holding (16 bit)
I
: lettura ingresso digitale (1 bit)
Q
: lettura bobine (1 bit)
IW
: lettura registro di ingresso (16 bits)
Indirizzo del primo oggetto da cui vengono letti i valori.
Numero di oggetti da leggere.
Indirizzo del buffer in qui vengono memorizzati i valori dell'oggetto letto.
Contiene l'elenco degli indirizzi dispositivo remoto per la comunnicazione Modbus TCP.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xDone q_xBusy q_xAborted q_xError q_etCommError
Tipo di dati
BOOL
BOOL
BOOL
BOOL
SEN.CommunicationEr
rorCodes
Descrizione
Quando la funzione viene completata correttamente, q_xDone
è impostato a TRUE.
q_xBusy mentre la funzione è in corso, è impostato a TRUE.
Quando la funzione viene arrestata con l'immissione del comando i_xAbort
, q_xAborted
è impostato a TRUE.
Quando la funzione si interrompe per il rilevamento di un errore, q_xError
è impostato a TRUE. q_etCommError
contiene il valore dei codici di errore di comunicazione
SEN.CommunicationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
44
EIO0000001695 11/2016
Uscita q_etOperError
Blocchi funzione di comunicazione
Tipo di dati
SEN.OperationErrorC
odes
Descrizione q_etOperError
contiene il valore dei codici di errore operazione
SEN.OperationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
EIO0000001695 11/2016
45
Blocchi funzione di comunicazione
FB_WriteVar
: blocco funzione scrittura dati
Panoramica
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_WriteVar
:
Il blocco funzione
FB_WriteVar
scrive i dati su un dispositivo esterno tramite il protocollo Modbus
SL o Modbus TCP.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xExecute i_xAbort i_iLink i_iId i_iTimeout
Tipo di dati
BOOL
BOOL
INT
INT
INT
Descrizione
La funzione è eseguita sul fronte di salita di questo ingresso.
NOTA: Quando xExecute
è impostato a TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato.
Interrompe l'operazione in corso sul fronte di salita.
Indica la porta utilizzata per comunicare.
1 = porta seriale 1
2 = porta seriale 2
3 = Ethernet / Modbus TCP
Identificatore dispositivo del dispositivo esterno di destinazione:
Indirizzo slave linea seriale: 1...247 o
Indice Ethernet: 1...16
(A seconda della configurazione).
NOTA: Il valore 0 è un valore non valido e non rappresenta un messaggio broadcast.
Imposta il tempo massimo di attesa per la ricezione di una risposta. Specificato in ms. Un valore di 0 indica nessun timeout.
46
EIO0000001695 11/2016
Blocchi funzione di comunicazione
Ingresso i_etObjType i_diFirstObj i_iQuantity i_pbyBuffer
Tipo di dati
SEN.ObjectType
DINT
INT
POINTER TO BYTE i_astRemoteDevices ARRAY
[1..Gc_uiRemoteAd
dressTableLen] OF
ST_RemoteDevice
Descrizione
Il valore del tipo dati enumerato (
SEN.ObjectType
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
) contiene i tipi di oggetto disponibili per la scrittura:
MW
: scrittura registri multipli (16 bit)
Q
: scrittura bobine multiple (1 bit)
Indirizzo del primo oggetto da cui vengono scritti i valori.
Numero di oggetti da scrivere.
Indirizzo del buffer nel quale sono memorizzati i valori degli oggetti da scrivere.
Contiene l'elenco degli indirizzi dispositivo remoto per la comunnicazione Modbus TCP.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xDone q_xBusy q_xAborted q_xError q_etCommError q_etOperError
Tipo di dati
BOOL
BOOL
BOOL
BOOL
SEN.Communication
ErrorCodes
SEN.OperationErro
rCodes
Descrizione
Quando la funzione viene completata correttamente, q_xDone
è impostato a TRUE.
q_xBusy mentre la funzione è in corso, è impostato a
TRUE.
Quando la funzione viene arrestata con l'immissione del comando i_xAbort
, q_xAborted
è impostato a
TRUE.
Quando la funzione si interrompe per il rilevamento di un errore, q_xError
è impostato a TRUE. q_etCommError
contiene il valore dei codici di errore di comunicazione
SEN.CommunicationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
q_etOperError
contiene il valore dei codici di errore operazione
SEN.OperationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
EIO0000001695 11/2016
47
Blocchi funzione di comunicazione
FB_WriteReadVar
: blocco funzione lettura e scrittura
Panoramica
Il blocco funzione
FB_WriteReadVar
può essere utilizzato per:
scrivere registri interni consecutivi e leggerne i valori nello stesso ciclo di esecuzione del blocco
funzione (transazione singola), scrivere registri interni consecutivi e leggere registri diversi.
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_WriteReadVar
:
Il blocco funzione
FB_WriteReadVar
legge e scrive i registri interni (solo di tipo MW) in un dispositivo esterno nel protocollo Modbus. Le operazioni di lettura e scrittura sono contenute in un'unica transazione. Tenere presente che viene eseguita per prima l'operazione di scrittura.
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xExecute i_xAbort i_iLink i_iId
Tipo di dati
BOOL
BOOL
INT
INT
Descrizione
La funzione è eseguita sul fronte di salita di questo ingresso.
NOTA: Quando i_xExecute
è impostato a TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato.
Interrompe l'operazione in corso sul fronte di salita.
Indica la porta utilizzata per comunicare.
1 = porta seriale 1
2 = porta seriale 2
3 = Ethernet / Modbus TCP
Identificatore dispositivo del dispositivo esterno di destinazione:
Indirizzo slave linea seriale: 1...247 o
Indice Ethernet: 1...16
(A seconda della configurazione).
48
EIO0000001695 11/2016
Blocchi funzione di comunicazione
Ingresso i_iTimeout i_diFirstReadObj i_iReadQuantity i_pbyReadBuffer i_diFirstWriteObj i_iWriteQuantity i_pbyWriteBuffer
Tipo di dati
INT
DINT
INT
POINTER TO BYTE
DINT
INT
POINTER TO BYTE i_astRemoteDevices ARRAY
[1..Gc_uiRemoteAd
dressTableLen] OF
ST_RemoteDevice
Descrizione
Imposta il tempo massimo di attesa per la ricezione di una risposta dal modem. Specificato in ms. Un valore di 0 indica nessun timeout.
Indirizzo del primo oggetto da cui vengono letti i valori.
Numero di oggetti da leggere.
Indirizzo del buffer in qui vengono memorizzati i valori dell'oggetto letto.
Indirizzo del primo oggetto da cui vengono scritti i valori.
Numero di oggetti da scrivere.
Indirizzo del buffer nel quale sono memorizzati i valori degli oggetti da scrivere.
Contiene l'elenco degli indirizzi dispositivo remoto per la comunnicazione Modbus TCP.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xDone q_xBusy q_xAborted q_xError q_etCommError q_etOperError
Tipo di dati
BOOL
BOOL
BOOL
BOOL
SEN.Communication
ErrorCodes
SEN.OperationErro
rCodes
Descrizione
Quando la funzione viene completata correttamente, q_xDone
è impostato a TRUE.
q_xBusy mentre la funzione è in corso, è impostato a
TRUE.
Quando la funzione viene arrestata con l'immissione del comando i_xAbort
, q_xAborted
è impostato a TRUE.
Quando la funzione si interrompe per il rilevamento di un errore, q_xError
è impostato a TRUE. q_etCommError
contiene il valore dei codici di errore di comunicazione
SEN.CommunicationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
q_etOperError
contiene il valore dei codici di errore operazione
SEN.OperationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
EIO0000001695 11/2016
49
Blocchi funzione di comunicazione
FB_SendRecvMsg
: blocco funzione invio e ricezione messaggio
Panoramica
Il grafico seguente mostra lo schema dei pin del blocco funzione
FB_SendRecvMsg
:
Il blocco funzione
FB_SendRecvMsg
invia e riceve messaggi definiti dall'utente. Invia un messaggio su una linea seriale, quindi attende una risposta. È anche possibile inviare un messaggio senza attendere una risposta o ricevere un messaggio senza inviarne. Questa funzione deve essere utilizzata con un gestore ASCII,
Descrizione delle variabili di I/O
La tabella descrive le variabili di ingresso del blocco funzione nella libreria
TwidoEmulationSupport:
Ingresso i_xExecute i_xAbort i_iLink i_iTimeout
Tipo di dati
BOOL
BOOL
INT
INT i_iQuantityToSend INT i_pbyBufferToSend POINTER TO BYTE i_iSizeRecvBuffer INT
Descrizione
La funzione è eseguita sul fronte di salita di questo ingresso.
NOTA: Quando i_xExecute
è impostato a TRUE al primo ciclo del task in RUN dopo un reset a caldo o a freddo, il fronte di salita non viene rilevato.
Interrompe l'operazione in corso sul fronte di salita.
Indica la porta utilizzata per comunicare:
1 = porta seriale 1
2 = porta seriale 2
Imposta il tempo massimo di attesa per la ricezione di una risposta Specificato in ms. Un valore di 0 indica nessun timeout.
Numero di oggetti da inviare.
Indirizzo del buffer nel quale sono memorizzati i valori degli oggetti da inviare. Le prime 2 parole sono parole di controllo.
Numero di oggetti da ricevere.
50
EIO0000001695 11/2016
Blocchi funzione di comunicazione
Ingresso Tipo di dati i_pbyBufferToRecv POINTER TO BYTE
Descrizione
Indirizzo del buffer in cui vengono memorizzati i valori dell'oggetto ricevuto.
La tabella descrive le variabili di uscita del blocco funzione nella libreria TwidoEmulationSupport:
Uscita q_xDone q_xBusy q_Aborted q_xError q_etCommError q_etOperError q_iQuantiyRecv
Tipo di dati
BOOL
BOOL
BOOL
BOOL
SEN.Communication
ErrorCodes
SEN.OperationErro
rCodes
INT
Descrizione
Quando la funzione viene completata correttamente, q_xDone
è impostato a TRUE.
q_xBusy mentre la funzione è in corso, è impostato a
TRUE.
Quando la funzione viene arrestata con l'immissione del comando i_xAbort
, q_Aborted
è impostato a TRUE.
Quando la funzione si interrompe per il rilevamento di un errore, q_xError
è impostato a TRUE. q_etCommError
contiene il valore dei codici di errore di comunicazione
SEN.CommunicationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
q_etOperError
contiene il valore dei codici di errore operazione
SEN.OperationErrorCodes
(vedi SoMachine, Modbus e funzioni di
Lettura/Scrittura ASCII, Guida della libreria PLCCommunication)
.
Numero di oggetti ricevuti
EIO0000001695 11/2016
51
Blocchi funzione di comunicazione
52
EIO0000001695 11/2016
Libreria Twido Emulation Support
Funzioni Twido
EIO0000001695 11/2016
Funzioni Twido
Capitolo 5
Funzioni Twido
Funzioni Twido
Panoramica
L'elenco seguente fornisce una panoramica delle funzioni Twido:
FC_AsciiCharToInt
FC_CopyBitString
FC_EqualArrDint
FC_EqualArrReal
FC_Lkup
FC_OccurArrDint
EIO0000001695 11/2016
53
Funzioni Twido
FC_OccurArrReal
FC_Round
FC_AsciiCharToInt
Questa funzione restituisce i 2 caratteri come un valore intero.
Valori di ingresso
Valori restituiti i_sChar
: STRING con 2 caratteri.
Restituisce i caratteri come valore intero.
Se la stringa non è valida, la variabile globale
G_xSystemBitS18
viene impostata a TRUE.
FC_AsciiToInt
La funzione di conversione da ASCII a numero intero esegue la conversione di un valore di stringa
ASCII nel valore intero equivalente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ASCII_TO_INT i_psStartAddr
: POINTER TO STRING;
ASCII_TO_INT
: INT
Le regole di conversione da ASCII a intero sono riportate di seguito:
Il valore ASCII deve essere compreso tra -32768 e 32767.
La funzione legge sempre per primo il byte più significativo.
Qualunque carattere ASCII non compreso nell'intervallo [0...9] (
30 hex
-
39 hex]
) è
considerato carattere di fine, ad eccezione del segno meno '-' (
2D hex
) utilizzato come primo carattere.
In caso di overflow (>32767 o <-32768), la variabile globale
G_xSystemBitS18
(overflow aritmetico o errore rilevato) è impostata a 1 e viene restituito il valore 32767 o -32768.
Se il primo carattere dell'operando è un carattere di fine, viene restituito 0 e la variabile globale
G_xSystemBitS18
è impostata a TRUE.
54
EIO0000001695 11/2016
Funzioni Twido
FC_AsciiToReal
La funzione da ASCII a REAL esegue la conversione del valore di stringa ASCII al valore REAL equivalente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ASCII_TO_FLOAT i_psStartAddr
: POINTER TO STRING
FC_AsciiToReal
: REAL
Le regole di conversione da ASCII a REAL sono le seguenti:
La funzione legge sempre per primo il byte più significativo.
Qualunque carattere ASCII non compreso nell'intervallo [0...9] ([
30 hex
-
39 hex
]) è considerato carattere di "fine", ad eccezione di:
punto decimale '.' (
2E hex
)
meno '-' (
2D hex
) più '+' (
2B hex
) esponente 'e' o 'E' (
65 hex
o
45 hex
)
Il formato stringa ASCII può essere in notazione esponenziale (ossia "
-2.34567e+13
") o decimale (ossia 9826,3457).
In caso di overflow (il risultato del calcolo è >
3.402824E+38 o <
-3.402824E+38
):
La variabile globale
G_xSystemBitS18
(overflow aritmetico o errore rilevato) è impostata a
TRUE.
Viene restituito il valore
+/- 1.#INF
(+ o - valore infinito).
Il risultato del calcolo, se è compreso tra
-1.175494E-38
e
1.175494E-38
, viene arrotondato a 0.0.
Se l'operando non è un numero, viene restituito il valore
1.#QNAN
e la variabile globale
G_xSystemBitS18
è impostata a TRUE.
FC_ConcatOfInt
Questa funzione concatena due valori interi in un valore intero doppio.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
CONCATW i_iLowVal
: INT i_iHighVal
: INT
FC_ConcatOfInt
: DINT
EIO0000001695 11/2016
55
Funzioni Twido
FC_CopyArrDint
La funzione copia un array di valori DINT in un altro indirizzo di memoria dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
COPY_ARR_DINT i_pdiSource
: POINTER TO DINT i_pdiDestination
: POINTER TO DINT i_bySize
: BYTE
FC_CopyArrDint
: BOOL
FC_CopyArrInt
La funzione copia un array di valori INT in un altro indirizzo di memoria dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
COPY_ARR_INT i_piSource
: POINTER TO INT i_piDestination
: POINTER TO INT i_bySize
: BYTE
FC_CopyArrInt
: BOOL
FC_CopyArrReal
La funzione copia un array di valori REAL in un altro indirizzo di memoria dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
COPY_ARR_REAL i_prSource
: POINTER TO REAL i_prDestination
: POINTER TO REAL i_bySize
: BYTE
FC_CopyArrReal
: BOOL
FC_CopyBitString
La funzione copia un array di valori BOOL in un altro indirizzo di memoria dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
COPY_ARR_BOOL i_pxSource
: POINTER TO BOOL i_pxDestination
: POINTER TO BOOL i_bySize
: BYTE
FC_CopyBitString
: BOOL
56
EIO0000001695 11/2016
Funzioni Twido
FC_CopyPackedBitString
La funzione copia una BitString pacchettizzata della lunghezza di bit i_bySize
in un'altra posizione di memoria.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FC_CopyPackedBitString i_pbySource
: POINTER TO BYTE i_pbyDestination
: POINTER TO BYTE i_bySize
: BYTE - limited to SIZE OF (DINT)
FC_CopyPackedBitString
: DINT
FC_DegToRad
La funzione
FC_DegToRad
esegue la conversione in radianti di un angolo espresso in gradi.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
Formula
DEG_TO_RAD i_rDeg
: REAL;
FC_DegToRad
: REAL
Radian = Degrees * (Pi / 180)
Where
,
Pi = 3.1415926535
Regole d'uso:
L'angolo da convertire deve essere compreso tra -737280.0 e +737280.0.
Per i valori al di fuori di questi intervalli, il risultato visualizzato sarà
+ 1.#QNAN
e la variabile globale
G_xSystemBitS18
è impostata a TRUE.
FC_EqualArrDint
La funzione
FC_EqualArrDint
confronta 2 tabelle di dimensioni definite, elemento per elemento.
Se viene rilevata una differenza, la posizione del primo elemento dissimile viene restituita sotto forma di valore intero. Se non vi è alcuna differenza, viene restituito il valore "-1".
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
EQUAL_ARR i_pdiFirstArrStartValue
: POINTER TO DINT i_pdiSecondArrStartValue
: POINTER TO DINT i_bySize
: BYTE
FC_EqualArrDint
: INT
Gli indirizzi iniziali dei 2 array da confrontare sono forniti ai 2 ingressi del puntatore.
Il numero di elementi da confrontare deve essere definito all'ingresso i_bySize
.
EIO0000001695 11/2016
57
Funzioni Twido
FC_EqualArrReal
La funzione
FC_EqualArrReal
confronta 2 tabelle di dimensioni definite, elemento per elemento.
Se viene rilevata una differenza, la posizione del primo elemento dissimile viene restituita sotto forma di valore intero. Se non vi è alcuna differenza, viene restituito il valore -1.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
EQUAL_ARR i_pdiFirstArrStartValue
: POINTER TO REAL i_pdiSecondArrStartValue
: POINTER TO REAL i_bySize
: BYTE
FC_EqualArrReal
: INT
Gli indirizzi iniziali dei 2 array da confrontare sono forniti ai 2 ingressi del puntatore.
Il numero di elementi da confrontare deve essere definito all'ingresso i_bySize
.
FC_FindEqDint
La funzione
FC_FindEqDint
ricerca, in un insieme di valori dati DINT, la posizione del primo elemento di array che è uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_EQR i_diValue
: DINT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_FindEqDint
: INT
Se il valore dato non è contenuto nell'array, viene restituito -1.
FC_FindEqReal
La funzione
FC_FindEqReal
ricerca, in un insieme di valori dati REAL, la posizione del primo elemento di array che è uguale a un valore dato definito dall'utente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_EQR i_rValue
: REAL i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_FindEqReal
: INT
Se il valore dato non è contenuto nell'array, viene restituito -1.
58
EIO0000001695 11/2016
Funzioni Twido
FC_FindGtDint
La funzione
FC_FindGtDint
ricerca, in un insieme di valori dati DINT, la posizione del primo elemento di array che è maggiore di un valore dato definito dall'utente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_GTR i_diValue
: DINT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_FindGtDint
: INT
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
FC_FindGtReal
La funzione
FC_FindGtReal
ricerca, in un insieme di valori dati REAL, la posizione del primo elemento di array che è maggiore di un valore dato definito dall'utente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_GTR i_rValue
: REAL i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_FindGtReal
: INT
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
FC_FindLtDint
La funzione
FC_FindLtDint
ricerca, in un insieme di valori dati DINT, la posizione del primo elemento di array che è minore di un valore dato definito dall'utente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_LTR i_diValue
: DINT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_FindLtDint
: INT
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
EIO0000001695 11/2016
59
Funzioni Twido
FC_FindLtReal
La funzione
FC_FindLtReal
ricerca, in un insieme di valori dati REAL, la posizione del primo elemento di array che è minore di un valore dato definito dall'utente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FIND_LTR i_rValue
: REAL i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_FindLtReal
: INT
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
FC_HiOfDint
Questa funzione estrae i bit più significativi (MSB) di un valore intero doppio in un valore intero.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
HW i_diVal
: DINT
FC_LoOfDint
: INT
FC_IntToAscii
Il numero intero per la funzione ASCII esegue la conversione di un valore intero al valore di stringa
ASCII equivalente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
INT_TO_ASCII i_iVal
: INT
INT_TO_ASCII
: ARRAY [1..4] OF INT
Le regole di conversione da intero ad ASCII sono riportate di seguito:
Il valore intero deve essere compreso tra -32768 e 32767.
La funzione scrive sempre per primo il byte più significativo.
Il carattere di fine è "Ritorno a capo" (ASCII 13).
La funzione determina automaticamente quanti
%MW
devono essere riempiti automaticamente con valori ASCII (da 1 a 4)
60
EIO0000001695 11/2016
Funzioni Twido
FC_Lkup
La funzione
FC_Lkup
permette di interpolare un insieme di dati a virgola mobile X e Y per un dato valore X.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
LKUP i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_Lkup
: INT
Per il valore di ingresso i_prSartAddr
si applicano le condizioni seguenti:
numero pari di valori
minimo di 6 valori primo elemento da trovare: valore x secondo elemento impostato dalla funzione: risultato dell'interpolazione tutti gli elementi seguenti sono punti che supportano l'interpolazione per coppie di X e Y
Regole di interpolazione:
La funzione
LKUP
utilizza la regola di interpolazione definita nella seguente equazione:
Per X i
≤ X ≤ X i
+ 1, dove i = 1 … (m-1)
Nell'ipotesi che i valori X i
siano classificati in ordine crescente: X
1
≤ X
2
≤ ...X...≤ X m-1
≤ X m
Se 2 valori X i
consecutivi sono uguali (X i
=X i+1
=X), l'equazione 1 produce un'eccezione non valida.
Per gestire questa eccezione, si usa il seguente algoritmo anziché l'equazione 1:
Per X i
= X i
+1 = X, dove i = 1…(m-1).
Valore del risultato:
Il valore del risultato mostra se l'interpolazione è stata eseguita correttamente o meno.
0: Interpolazione corretta
1: Errore di interpolazione: array errato, Xm < Xm-1
2: Errore di interpolazione: i_rXValue
fuori intervallo, X < X1
4: Errore di interpolazione: i_rXValue
fuori intervallo, X > Xm
8: Dimensioni non valide di array di dati: i_prYValue
è impostato come numero dispari oppure i_prYValue
< 6
EIO0000001695 11/2016
61
Funzioni Twido
Il valore del risultato non contiene il valore di interpolazione calcolato (Y). Per un dato valore (X), il risultato dell'interpolazione (Y) è contenuto in i_prYValue
.
i_rXValue
è la variabile a virgola mobile che contiene il valore (X) definito dall'utente per calcolare il valore (Y) interpolato.
L'intervallo valido per i_rXValue
è:
X
1
≤ i_rXValue
≤ X m
FC_LoOfDint
Questa funzione estrae i bit meno significativi (LSB) di un valore intero doppio in un valore intero.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
LW i_diVal
: DINT
FC_LoOfDint
: INT
FC_MaxArrDint
Questa funzione ricerca il valore massimo in un insieme di valori dati DINT. La ricerca viene eseguita solo sulla lunghezza definita della tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MAX_ARR i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_MaxArrDint
: DINT
FC_MaxArrReal
Questa funzione ricerca il valore massimo in un insieme di valori dati REAL. La ricerca viene eseguita solo sulla lunghezza definita della tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MAX_ARR i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_MaxArrReal
: REAL
62
EIO0000001695 11/2016
Funzioni Twido
FC_MeanArrReal
In un insieme di valori dati REAL, questa funzione permette di calcolare la media della lunghezza richiesta della tabella di valori REAL.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MEAN i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_MeanArrReal
: REAL
FC_MinArrDint
Questa funzione ricerca il valore minimo in un insieme di valori dati DINT. La ricerca viene eseguita solo sulla lunghezza definita della tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MIN_ARR i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_MinArrDint
: DINT
FC_MinArrReal
Questa funzione ricerca il valore minimo in un insieme di valori dati REAL. La ricerca viene eseguita solo sulla lunghezza definita della tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MAX_ARR i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_MinArrReal
: REAL
FC_MoveArrDint
La funzione sposta il valore di ingresso nella tabella di valori DINT per un numero di elementi uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MOVE_ARR_DINT i_diValue
: DINT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_MoveArrDint
: BOOL
EIO0000001695 11/2016
63
Funzioni Twido
FC_MoveArrInt
La funzione sposta il valore di ingresso nella tabella di valori INT per un numero di elementi uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MOVE_ARR_INT i_iValue
: INT i_piStartAddr
: POINTER TO INT i_bySize
: BYTE
FC_MoveArrInt
: BOOL
FC_MoveArrReal
La funzione sposta il valore di ingresso nella tabella di valori REAL per un numero di elementi uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
MOVE_ARR_REAL i_rValue
: REAL i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_MoveArrReal
: BOOL
FC_OccurArrDint
In un insieme di valori dati DINT, questa funzione ricerca il numero di elementi uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
OCCUR_ARR i_diValue
: DINT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_OccurArrDint
: INT
FC_OccurArrReal
In un insieme di valori dati REAL, questa funzione ricerca il numero di elementi uguale a un valore dato.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
OCCUR_ARR i_rValue
: REAL i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_OccurArrReal
: INT
64
EIO0000001695 11/2016
Funzioni Twido
FC_RadToDeg
Questa funzione
FC_RadToDeg
esegue la conversione in gradi di in angolo espresso in radianti.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
Formula
RAD_TO_DEG i_rRad
: REAL;
FC_RadToDeg
: REAL
Degree = Radian * (180 / Pi)
Where
,
Pi = 3.1415926535
Regole d'uso:
L'angolo da convertire deve essere compreso tra
-4096Pi
e
4096Pi
.
Per i valori al di fuori di questi intervalli, il risultato visualizzato sarà
+ 1.#QNAN e
G_xSystem -
BitS18
è impostato a TRUE.
FC_RealToAscii
La funzione da REAL a ASCII esegue la conversione del valore REAL al valore di stringa ASCII equivalente.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
FLOAT_TO_ASCII i_rVal
: REAL
FC_RealToAscii
: ARRAY [1..7] OF INT
Le regole di conversione da REAL ad ASCII sono le seguenti:
La funzione scrive sempre per primo il byte più significativo (MSB).
La rappresentazione viene eseguita utilizzando il formato esponenziale convenzionale.
I risultati di tipo "Infinito" o "diversi da numero" restituiscono la stringa "NAN".
Il carattere di fine è "Ritorno a capo" (ASCII 13).
La precisione di conversione è di 6 cifre.
FC_RolArrDint
In a determinato array DINT, questa funzione sposta ogni elemento di n posizioni verso l'indirizzo iniziale della lista. I primi n elementi sono spostati alla fine della lista.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ROL_ARR i_iShiftPosNumber
: INT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_RolArrDint
: BOOL
EIO0000001695 11/2016
65
Funzioni Twido
Se il valore di i_iShiftPosNumber
è negativo o 0, non viene effettuato alcuno spostamento.
FC_RolArrReal
In un insieme di valori dati REAL, questa funzione esegue uno spostamento rotatorio di n posizioni dall'inizio alla fine degli elementi.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ROL_ARR i_iShiftPosNumber
: INT i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_RolArrReal
: BOOL
Se il valore di i_iShiftPosNumber
è negativo o 0, non viene effettuato alcuno spostamento.
FC_RorArrDint
In un determinato array DINT, questa funzione sposta ogni elemento di n posizioni verso l'indirizzo finale della lista. Gli ultimi n elementi sono spostati all'inizio della lista.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ROR_ARR i_iShiftPosNumber
: INT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_RorArrDint
: BOOL
Se il valore di i_iShiftPosNumber
è negativo o 0, non viene effettuato alcuno spostamento.
FC_RorArrReal
In un insieme di valori dati REAL, questa funzione esegue uno spostamento rotatorio di n posizioni dalla fine all'inizio degli elementi.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ROL_ARR i_iShiftPosNumber
: INT i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_RorArrReal
: BOOL
Se il valore di i_iShiftPosNumber
è negativo o 0, non viene effettuato alcuno spostamento.
66
EIO0000001695 11/2016
Funzioni Twido
FC_Round
La funzione
FC_Round
arrotonda la rappresentazione a virgola mobile memorizzata in una stringa
ASCII.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
ROUND i_psStartAddr
: POINTER TO STRING; i_byRoundNumber
: BYTE;
FC_Round
: ARRAY[1..7] of INT
Le regole dell'istruzione ROUND sono:
L'operando viene sempre arrotondato per difetto.
Il carattere finale della stringa dell'operando è utilizzato come carattere finale per la stringa del risultato.
Il carattere di fine può essere qualsiasi carattere ASCII compreso nell'intervallo [0...9] ([
30 hex
-
39 hex
]), ad eccezione di:
punto '.' (
2E hex
),
meno '-' (
2D hex
), più '+' (
2B hex
),
Exp 'e' o 'E' (
65 hex
o
45 hex
).
Il risultato e l'operando non devono superare i 13 byte: le dimensioni max. di una stringa ASCII sono 13 byte.
FC_SortArrDint
La funzione ordina gli elementi di una tabella di valori DINT in ordine crescente o decrescente e memorizza il risultato nella stessa tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
SORT_ARR i_iSortDirection
: INT i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_SortArrDint
: BOOL
Il parametro di direzione i_iSortDirection
indica la sequenza di ordinamento:
Direzione > 0: ordinamento in sequenza crescente.
Direzione < 0: ordinamento in sequenza decrescente.
Direzione = 0: non viene eseguito alcun ordinamento.
EIO0000001695 11/2016
67
Funzioni Twido
FC_SortArrReal
La funzione ordina gli elementi di una tabella di valori DINT in ordine crescente o decrescente e memorizza il risultato nella stessa tabella.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
SORT_ARR i_iSortDirection
: INT i_prStartAddr
: POINTER TO REAL i_bySize
: BYTE
FC_SortArrReal
: BOOL
Il parametro di direzione i_iSortDirection
indica la direzione dell'ordinamento:
Direzione > 0: ordinamento in sequenza crescente.
Direzione < 0: ordinamento in sequenza decrescente.
Direzione = 0: non viene eseguito alcun ordinamento.
FC_SumArrDint
La funzione
FC_SumArrDint
permette di eseguire la somma di un numero definito di elementi di array il cui indirizzo è definito sull'ingresso i_pdiStartAddr
. Ciò significa che la funzione somma tutti gli elementi di una tabella oggetti.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
SUM_ARR i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_SumArrDint
: DINT
La variabile globale
G_xSystemBitS18
è impostata a TRUE quando il risultato non è nei limiti del formato parola doppia secondo l'operando di tabella.
FC_SumArrReal
La funzione
FC_SumArrReal
permette di eseguire la somma di un numero definito di elementi di array il cui indirizzo è definito sull'ingresso i_pdiStartAddr
. Ciò significa che la funzione somma tutti gli elementi di una tabella oggetti.
Nome in SoMachine Basic / Twido
Valori di ingresso
Valori restituiti
SUM_ARR i_pdiStartAddr
: POINTER TO DINT i_bySize
: BYTE
FC_SumArrReal
: REAL
68
La variabile globale
G_xSystemBitS18
è impostata a TRUE quando il risultato non è nei limiti del formato parola doppia secondo l'operando di tabella.
EIO0000001695 11/2016
Libreria Twido Emulation Support
Glossario
EIO0000001695 11/2016
Glossario
!
%MW
In base allo standard IEC, %MW rappresenta un registro di parole di memoria (ad esempio un oggetto di linguaggio di tipo parola di memoria).
A applicazione
Un programma che include dati di configurazione, simboli e documentazione.
B blocco funzione
Un'unità di programmazione con 1 o più uscite, che restituisce 1 o più uscite. Gli FBs vengono richiamati tramite un'istanza (copia del blocco funzione con nome e variabili dedicati) e ogni istanza ha uno stato permanente (uscite e variabili interne) da 1 chiamata all'altra.
Esempi: timer, contatori bus di espansione
Un bus di comunicazione elettronica tra i moduli di espansione degli I/O e un controller.
C configurazione
La disposizione e l'interconnessione dei componenti hardware di un sistema e i parametri hardware e software che determinano le caratteristiche operative del sistema.
controller
Realizza l'automazione dei processi industriali (noto anche come programmable logic controller o controller programmabile).
F funzione
Un'unità di programmazione con 1 ingresso, che restituisce 1 risultato immediato. Tuttavia, a differenza degli FBs, viene richiamata direttamente con il proprio nome (anziché tramite un'istanza), non ha uno stato permanente da una chiamata all'altra e può essere utilizzata come operando in altre espressioni di programmazione.
EIO0000001695 11/2016
69
Glossario
Esempi: operatori booleani (AND), calcoli, conversioni (BYTE_TO_INT)
I
I/O
( ingresso/uscita )
L
LSB
( Bit/byte meno significativo ) La parte di un numero, un indirizzo o un campo scritto nella posizione più a destra in notazione esadecimale o binaria convenzionale.
M
MSB
( Bit/byte più significativo ) La parte di un numero, un indirizzo o un campo scritto nella posizione più a sinistra in notazione esadecimale o binaria convenzionale.
P
PID
( Proportional, Integral, Derivative ) Un meccanismo di feedback del loop di controllo generico
(controller) ampiamente utilizzato nei sistemi di controllo industriali.
programma
La componente di un'applicazione che consiste in un codice sorgente compilato che può essere installato nella memoria di un logic controller.
PWM
( Pulse Width Modulation ) L'uscita a modulazione d'impulsi è un'uscita veloce che oscilla tra Off e
On in un ciclo di funzionamento regolabile, producendo un'onda di forma rettangolare (sebbene la si possa modificare affinché produca un'onda quadra). L'uscita PTO è in grado di simulare un'uscita analogica o di replicarne il funzionamento, nel senso che regola la tensione dell'uscita durante il proprio periodo; questo la rende particolarmente adatta, ad esempio, all'impiego nelle applicazioni per l'attenuazione della luce o per il controllo della velocità.
70
EIO0000001695 11/2016
Libreria Twido Emulation Support
Indice analitico
EIO0000001695 11/2016
Indice analitico
A
ASCII_TO_FLOAT,
C
CONCATW,
COPY_ARR_INT,
D
DEG_TO_RAD,
E
EQUAL_ARR,
F
FB_Counter,
FB_Drum,
FB_FiFo,
FB_SendRecvMsg,
FB_ShiftBitRegister,
FC_AsciiCharToInt,
FC_AsciiToInt,
FC_AsciiToReal,
FC_ConcatOfInt,
EIO0000001695 11/2016
FC_CopyArrDint,
FC_CopyArrInt,
FC_CopyArrReal,
FC_CopyBitString,
FC_FindLtDint,
FC_FindLtReal,
FC_IntToAscii,
,
,
FC_CopyPackedBitString,
FC_DegToRad,
FC_EqualArrDint,
FC_EqualArrReal,
FC_FindEqReal,
FC_FindGtDint,
FC_FindGtReal,
FC_Lkup,
FC_LoOfDint,
FC_MaxArrDint,
FC_MaxArrReal,
FC_RorArrReal,
FC_SortArrReal,
FC_SumArrReal,
FC_MeanArrReal,
FC_MinArrReal,
FC_RadToDeg,
FC_RolArrDint,
71
Indice analitico
FIND_LTR,
FLOAT_TO_ASCII,
H
I
L
Libreria TwidoEmulationSupport
FB_Counter,
FB_EXCH,
FB_PID,
FB_SendRecvMsg,
FB_ShiftBitRegister,
FB_StepCounter,
FB_Timer,
FB_WriteReadVar,
M
MEAN,
MIN_ARR,
,
MOVE_ARR_REAL,
O
,
72
R
RAD_TO_DEG,
,
S
SORT_ARR,
,
EIO0000001695 11/2016
Prenesi
Oglas