L'elenco seguente fornisce una panoramica delle funzioni Twido:
Questa funzione restituisce i 2 caratteri come un valore intero.
Valori di ingresso |
i_sChar: STRING con 2 caratteri. |
Valori restituiti |
Restituisce i caratteri come valore intero. |
Se la stringa non è valida, la variabile globale G_xSystemBitS18 viene impostata a TRUE.
La funzione di conversione da ASCII a numero intero esegue la conversione di un valore di stringa ASCII nel valore intero equivalente.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_psStartAddr: POINTER TO STRING; |
Valori restituiti |
ASCII_TO_INT: INT |
Le regole di conversione da ASCII a intero sono riportate di seguito:
oIl valore ASCII deve essere compreso tra -32768 e 32767.
oLa funzione legge sempre per primo il byte più significativo.
oQualunque 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.
oIn 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.
oSe il primo carattere dell'operando è un carattere di fine, viene restituito 0 e la variabile globale G_xSystemBitS18 è impostata a TRUE.
La funzione da ASCII a REAL esegue la conversione del valore di stringa ASCII al valore REAL equivalente.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_psStartAddr: POINTER TO STRING |
Valori restituiti |
FC_AsciiToReal : REAL |
Le regole di conversione da ASCII a REAL sono le seguenti:
oLa funzione legge sempre per primo il byte più significativo.
oQualunque carattere ASCII non compreso nell'intervallo [0...9] ([30 hex - 39 hex]) è considerato carattere di "fine", ad eccezione di:
opunto decimale '.' (2E hex)
omeno '-' (2D hex)
opiù '+' (2B hex)
oesponente 'e' o 'E' (65 hex o 45 hex)
oIl formato stringa ASCII può essere in notazione esponenziale (ossia "-2.34567e+13") o decimale (ossia 9826,3457).
oIn caso di overflow (il risultato del calcolo è > 3.402824E+38 o < -3.402824E+38):
oLa variabile globale G_xSystemBitS18 (overflow aritmetico o errore rilevato) è impostata a TRUE.
oViene restituito il valore +/- 1.#INF (+ o - valore infinito).
oIl risultato del calcolo, se è compreso tra -1.175494E-38 e 1.175494E-38, viene arrotondato a 0.0.
oSe l'operando non è un numero, viene restituito il valore 1.#QNAN e la variabile globale G_xSystemBitS18 è impostata a TRUE.
Questa funzione concatena due valori interi in un valore intero doppio.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iLowVal: INT i_iHighVal: INT |
Valori restituiti |
FC_ConcatOfInt : DINT |
La funzione copia un array di valori DINT in un altro indirizzo di memoria dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiSource : POINTER TO DINT i_pdiDestination : POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_CopyArrDint : BOOL |
La funzione copia un array di valori INT in un altro indirizzo di memoria dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_piSource : POINTER TO INT i_piDestination: POINTER TO INT i_bySize : BYTE |
Valori restituiti |
FC_CopyArrInt : BOOL |
La funzione copia un array di valori REAL in un altro indirizzo di memoria dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_prSource : POINTER TO REAL i_prDestination : POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_CopyArrReal : BOOL |
La funzione copia un array di valori BOOL in un altro indirizzo di memoria dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pxSource : POINTER TO BOOL i_pxDestination : POINTER TO BOOL i_bySize : BYTE |
Valori restituiti |
FC_CopyBitString : BOOL |
La funzione copia una BitString pacchettizzata della lunghezza di bit i_bySize in un'altra posizione di memoria.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pbySource : POINTER TO BYTE i_pbyDestination: POINTER TO BYTE i_bySize : BYTE - limited to SIZE OF (DINT) |
Valori restituiti |
FC_CopyPackedBitString : DINT |
La funzione FC_DegToRad esegue la conversione in radianti di un angolo espresso in gradi.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rDeg : REAL; |
Valori restituiti |
FC_DegToRad: REAL |
Formula |
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.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiFirstArrStartValue: POINTER TO DINT i_pdiSecondArrStartValue: POINTER TO DINT i_bySize: BYTE |
Valori restituiti |
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.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiFirstArrStartValue: POINTER TO REAL i_pdiSecondArrStartValue: POINTER TO REAL i_bySize: BYTE |
Valori restituiti |
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.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diValue: DINT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_FindEqDint : INT |
Se il valore dato non è contenuto nell'array, viene restituito -1.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rValue: REAL i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_FindEqReal : INT |
Se il valore dato non è contenuto nell'array, viene restituito -1.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diValue: DINT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_FindGtDint : INT |
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rValue: REAL i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_FindGtReal : INT |
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diValue: DINT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_FindLtDint : INT |
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rValue: REAL i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_FindLtReal : INT |
Se nessun elemento dell'array è maggiore del valore dato, viene restituito -1.
Questa funzione estrae i bit più significativi (MSB) di un valore intero doppio in un valore intero.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diVal: DINT |
Valori restituiti |
FC_LoOfDint : INT |
Il numero intero per la funzione ASCII esegue la conversione di un valore intero al valore di stringa ASCII equivalente.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iVal: INT |
Valori restituiti |
INT_TO_ASCII : ARRAY [1..4] OF INT |
Le regole di conversione da intero ad ASCII sono riportate di seguito:
oIl valore intero deve essere compreso tra -32768 e 32767.
oLa funzione scrive sempre per primo il byte più significativo.
oIl carattere di fine è "Ritorno a capo" (ASCII 13).
oLa funzione determina automaticamente quanti %MW devono essere riempiti automaticamente con valori ASCII (da 1 a 4)
La funzione FC_Lkup permette di interpolare un insieme di dati a virgola mobile X e Y per un dato valore X.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_prStartAddr : POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_Lkup : INT |
Per il valore di ingresso i_prSartAddr si applicano le condizioni seguenti:
onumero pari di valori
ominimo di 6 valori
oprimo elemento da trovare: valore x
osecondo elemento impostato dalla funzione: risultato dell'interpolazione
otutti 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 Xi ≤ X ≤ Xi + 1, dove i = 1 … (m-1)
Nell'ipotesi che i valori Xi siano classificati in ordine crescente: X1 ≤ X2 ≤ ...X...≤ Xm-1 ≤ Xm
Se 2 valori Xi consecutivi sono uguali (Xi=Xi+1=X), l'equazione 1 produce un'eccezione non valida. Per gestire questa eccezione, si usa il seguente algoritmo anziché l'equazione 1:
Per Xi = Xi+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
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 è:
X1 ≤ i_rXValue ≤ Xm
Questa funzione estrae i bit meno significativi (LSB) di un valore intero doppio in un valore intero.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diVal: DINT |
Valori restituiti |
FC_LoOfDint : INT |
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_MaxArrDint : DINT |
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_MaxArrReal : REAL |
In un insieme di valori dati REAL, questa funzione permette di calcolare la media della lunghezza richiesta della tabella di valori REAL.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_MeanArrReal : REAL |
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_MinArrDint : DINT |
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_MinArrReal : REAL |
La funzione sposta il valore di ingresso nella tabella di valori DINT per un numero di elementi uguale a un valore dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diValue : DINT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_MoveArrDint : BOOL |
La funzione sposta il valore di ingresso nella tabella di valori INT per un numero di elementi uguale a un valore dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iValue : INT i_piStartAddr: POINTER TO INT i_bySize : BYTE |
Valori restituiti |
FC_MoveArrInt : BOOL |
La funzione sposta il valore di ingresso nella tabella di valori REAL per un numero di elementi uguale a un valore dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rValue : REAL i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_MoveArrReal : BOOL |
In un insieme di valori dati DINT, questa funzione ricerca il numero di elementi uguale a un valore dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_diValue: DINT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_OccurArrDint : INT |
In un insieme di valori dati REAL, questa funzione ricerca il numero di elementi uguale a un valore dato.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rValue: REAL i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_OccurArrReal : INT |
Questa funzione FC_RadToDeg esegue la conversione in gradi di in angolo espresso in radianti.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rRad : REAL; |
Valori restituiti |
FC_RadToDeg: REAL |
Formula |
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.#QNANe G_xSystemBitS18 è impostato a TRUE.
La funzione da REAL a ASCII esegue la conversione del valore REAL al valore di stringa ASCII equivalente.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_rVal: REAL |
Valori restituiti |
FC_RealToAscii : ARRAY [1..7] OF INT |
Le regole di conversione da REAL ad ASCII sono le seguenti:
oLa funzione scrive sempre per primo il byte più significativo (MSB).
oLa rappresentazione viene eseguita utilizzando il formato esponenziale convenzionale.
oI risultati di tipo "Infinito" o "diversi da numero" restituiscono la stringa "NAN".
oIl carattere di fine è "Ritorno a capo" (ASCII 13).
oLa precisione di conversione è di 6 cifre.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iShiftPosNumber: INT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_RolArrDint : BOOL |
Se il valore di i_iShiftPosNumber è negativo o 0, non viene effettuato alcuno spostamento.
In un insieme di valori dati REAL, questa funzione esegue uno spostamento rotatorio di n posizioni dall'inizio alla fine degli elementi.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iShiftPosNumber: INT i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_RolArrReal : BOOL |
Se il valore di i_iShiftPosNumber è negativo o 0, non viene effettuato alcuno spostamento.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iShiftPosNumber: INT i_pdiStartAddr: POINTER TO DINT i_bySize : BYTE |
Valori restituiti |
FC_RorArrDint : BOOL |
Se il valore di i_iShiftPosNumber è negativo o 0, non viene effettuato alcuno spostamento.
In un insieme di valori dati REAL, questa funzione esegue uno spostamento rotatorio di n posizioni dalla fine all'inizio degli elementi.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iShiftPosNumber: INT i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_RorArrReal : BOOL |
Se il valore di i_iShiftPosNumber è negativo o 0, non viene effettuato alcuno spostamento.
La funzione FC_Round arrotonda la rappresentazione a virgola mobile memorizzata in una stringa ASCII.
Nome in EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_psStartAddr: POINTER TO STRING; i_byRoundNumber: BYTE; |
Valori restituiti |
FC_Round: ARRAY[1..7] of INT |
Le regole dell'istruzione ROUND sono:
oL'operando viene sempre arrotondato per difetto.
oIl carattere finale della stringa dell'operando è utilizzato come carattere finale per la stringa del risultato.
oIl carattere di fine può essere qualsiasi carattere ASCII compreso nell'intervallo [0...9] ([30 hex - 39 hex]), ad eccezione di:
opunto '.' (2E hex),
omeno '-' (2D hex),
opiù '+' (2B hex),
oExp 'e' o 'E' (65 hex o 45 hex).
oIl risultato e l'operando non devono superare i 13 byte: le dimensioni max. di una stringa ASCII sono 13 byte.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iSortDirection: INT i_pdiStartAddr: POINTER TO DINT i_bySize: BYTE |
Valori restituiti |
FC_SortArrDint: BOOL |
Il parametro di direzione i_iSortDirection indica la sequenza di ordinamento:
oDirezione > 0: ordinamento in sequenza crescente.
oDirezione < 0: ordinamento in sequenza decrescente.
oDirezione = 0: non viene eseguito alcun ordinamento.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_iSortDirection: INT i_prStartAddr: POINTER TO REAL i_bySize : BYTE |
Valori restituiti |
FC_SortArrReal : BOOL |
Il parametro di direzione i_iSortDirection indica la direzione dell'ordinamento:
oDirezione > 0: ordinamento in sequenza crescente.
oDirezione < 0: ordinamento in sequenza decrescente.
oDirezione = 0: non viene eseguito alcun ordinamento.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiStartAddr: POINTER TO DINT i_bySize: BYTE |
Valori restituiti |
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.
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 EcoStruxure Machine Expert - Basic / Twido |
|
Valori di ingresso |
i_pdiStartAddr: POINTER TO DINT i_bySize: BYTE |
Valori restituiti |
FC_SumArrReal : REAL |
La variabile globale G_xSystemBitS18 è impostata a TRUE quando il risultato non è nei limiti del formato parola doppia secondo l'operando di tabella.