BSL (spostamento del bit a sinistra)

L'istruzione BSL sposta un bit in un elemento array verso sinistra.
Lingue supportate: Diagramma a blocchi funzione, Diagramma Ladder, Testo strutturato.
Questa istruzione vale per i controllori L20E, L50E e L70E.
Dettagli operazione:
L'istruzione BSL è un processo immediato nella transizione del ramo da false a true e negli aggiornamenti in uscita in modo sincrono. Quando Execute è TRUE, il bit più a sinistra (Src + SrcOffset e Length) viene copiato nel bit Unload e tutti i bit nel vettore o meno vengono spostati a sinistra di un bit. Length e limite di 16 bit vengono considerati tranne che per i tipi di dati BOOL. Il bit esterno viene quindi spostato sul bit 0 (Src + SrcOffset) del primo elemento.
Per le operazioni di testo intorno, impostare la posizione di BitAddr sull'ultima posizione del bit o sul bit Unload. Un possibile utilizzo dell'istruzione BSL consiste nel tracciare bottiglie in una linea di imbottigliamento dove ogni bit rappresenta una bottiglia.
BSL
BSL
Parametri BSL
Parametro
Tipo di parametro
Tipo di dati
Descrizione
Execute
Ingresso
BOOL
Abilitazione istruzioni.
  • TRUE: fronte di salita rilevato, sposta il bit di una posizione a sinistra.
    • Innanzitutto vengono verificate le condizioni di errore.
    • Se Length = 0, il bit esterno viene spostato nel bit Unload. Nessun spostamento di bit su Scr. Viene eseguito il reset dei bit Error ed ErrorID. Viene impostato il bit Done.
    • Se Length > 0 e Length <= 2048, viene eseguito il reset dei bit Error ed ErrorID. Una volta completato lo spostamento dei bit, il bit Done viene impostato.
    • Se Length > 0 e Length <= 2048, il bit più a sinistra (indirizzato da Src + SrcOffset e Length) viene copiato nel bit Scarica e tutti i bit che fanno parte dell'array o non-array vengono spostati a sinistra di un bit (fino al bit Length e al limite di 16 bit, ad eccezione di BOOL). Il bit esterno viene spostato sul bit 0 (Src + SrcOffset) del primo elemento.
  • FALSE: fronte di salita non rilevato, non attivare l'operazione BSL.
Scr
Ingresso
ANY_ELEMENTARY
L'indirizzo del (bit) Src da spostare. Tipi di dati supportati: BOOL, DWORD, INT, UINT, WORD, DINT e UDINT.
  • Vettori: Impostare Scr su un indirizzo a base variabile come: Source1, Source1[0] o Source1[1].
  • Non vettori: Impostare Scr su un indirizzo variabile come Source1.
SrcOffset
Ingresso
UINT
Se SrcOffset è 0, iniziare dal primo elemento.
  • Vettori: Impostare SrcOffset su 0. Se impostato su Source1[0] o Source1[1], si verifica l'errore "L'offset di origine supera le dimensioni del vettore".
  • Non vettori: Impostare SrcOffset su 0. In caso contrario, si verifica l'errore "L'offset di origine supera le dimensioni del vettore".
BitAddr
Ingresso
BOOL
Posizione del bit spostato in Src.
Length
Ingresso
UINT
Lunghezza contiene il numero di bit presenti in Src da spostare. Supporta lo spostamento tra elementi dell'array.
  • Per il tipo di dati BOOL, il numero di Booleani presenti nel vettore da spostare.
  • Per i tipi di dati a 16 bit e 32 bit, i bit vengono spostati in multipli di 16, ad esempio 16, 32 e 64.  Se Length non è un multiplo esatto di 16, il numero di bit spostati viene inviato al successivo limite di 16 bit.
  • Length si basa sulla dimensione del tipo di dati. Se la Length supera l'intervallo, viene generato l'errore "L'offset di origine supera le dimensioni dell'array". I valori di Length sono:
    • BOOL: 1
    • Parola da 16 bit: 1-16
    • Parola da 32 bit: 1-32
    • Parola da 64 bit: 1-64
Unload
Uscita
BOOL
Bit spostato fuori dall'indirizzo Src.
Error
Uscita
BOOL
Se si verifica un errore, Error viene impostato su true.
ErrorID
Uscita
USINT
Se si verifica un errore, ErrorID contiene il codice dell'errore.
Done
Uscita
BOOL
Se TRUE, l'operazione è stata completata. Se FALSE, l'operazione ha rilevato una condizione di errore.
Codici di errore BSL
Codice di errore
Descrizione errore
01
Dimensione non supportata.
02
Tipo di dati non supportato.
03
La lunghezza dei bit supera 2048.
04
L'offset di origine supera la dimensione dell'array.
05
La lunghezza dei bit supera la dimensione dell'array.
07
Parametro non valido.

Esempi di BSL

Esempio di diagramma a blocchi funzionali BSL
Esempio di Diagramma a blocchi funzione BSL
Esempio di diagramma ladder BSL
Esempio di Diagramma ladder BSL
Esempio di testo strutturato BSL
Esempio di Testo strutturato BSL
Risultati
Risultati
Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.
Normal