Linguagem STL
Short Description
Download Linguagem STL...
Description
Treinamento de Programação de Controladores Festo
Objetivo: Utilização FST 4.10 como ferramenta de desenvolvimento desenvolvimento e manutenção de software Entender a estrutura de Programação Programação em Statement Statement List
Estrutura
do Statement List
± Um programa programa de controle controle é constituíd constituído o de um um certo número número de sentenças. sentenças. STEP
IF THEN OTHRW
AND SET SET
Switch1 I1.1 O1.0 Horn
± Cada linha linha representa representa uma sentença sentença para para o controla controlador. dor. Uma sentenç sentença a é composta composta por: por: 1. Instruções Instruções STL (IF, (IF, AND, THEN, THEN, SET, OTHRW) OTHRW) 2. Operandos do controlador controlador (inputs, outputs, outputs, registradores, contadores, contadores, temporizadores ou flags.) ±
Os pro progr gram amas as pode podem m ser ser escri escritos tos como como:: 1. Programa Programa de de Passos Passos (Step Program) Program) 2. Programa Programa de de Lógica Lógica Paralel Paralela a 3. Progra Programa ma Exec Executiv utivo o
Estrutura
do Statement List
± Um programa programa de controle controle é constituíd constituído o de um um certo número número de sentenças. sentenças. STEP
IF THEN OTHRW
AND SET SET
Switch1 I1.1 O1.0 Horn
± Cada linha linha representa representa uma sentença sentença para para o controla controlador. dor. Uma sentenç sentença a é composta composta por: por: 1. Instruções Instruções STL (IF, (IF, AND, THEN, THEN, SET, OTHRW) OTHRW) 2. Operandos do controlador controlador (inputs, outputs, outputs, registradores, contadores, contadores, temporizadores ou flags.) ±
Os pro progr gram amas as pode podem m ser ser escri escritos tos como como:: 1. Programa Programa de de Passos Passos (Step Program) Program) 2. Programa Programa de de Lógica Lógica Paralel Paralela a 3. Progra Programa ma Exec Executiv utivo o
Programa de Passos (Step Program) ± Cada program programa a pode pode ter até 255 255 steps, que que podem recebe receberr ou não um rótulo rótulo simbólic simbólico(mark) o(mark) ± Um programa programa de passos passos pode pode ter pulos pulos para outras outras partes partes do program programa a (JMP TO step mark) mark) ± Um step step pode pode conter conter uma ou mais mais senten sentenças ças ± Um sentença sentença comple completa ta contem IF condiçã condição o ,THEN cláusul cláusula a e possivelmente possivelmente OTHRW OTHRW cláusula cláusula ± O primeiro primeiro step step pode pode ser uma sentença sentença incompl incompleta, eta, iniciando-s iniciando-se e pelo pelo THEN. THEN. Neste caso caso é somente uma parte executiva onde a cláusula THEN será sempre executada sem que seja necessário uma condição de entrada. ± O progra programa ma é executa executado do pass passo o a passo passo ou step step by by step step ± O control controle e somente somente passa para o próximo próximo step step depois depois que uma das das cláusul cláusulas as THEN ou OTHRW da última sentença do step corrente corr ente tiver sido executada. Enquanto esta condição não ocorrer, ocorrer, as instruções do step corrente são executadas executadas ciclicamente.
Exemplo
de programa de ST EP simples STEP IF THEN OTHRW
Mark1 SET RESET
I1.0 F1.5 F1.5
STEP THEN
Mark2 RESET
F0.0
SET SET SET JMP TO
F1.5 O0.7 F0.0 O0.0 Mark1
IF THEN OTHRW STEP IF THEN STEP Mark4 ...
Mark3 AND SET
F0.0 I0.0 O0.4
Programa de Lógica Paralela
± Um programa de lógica paralela é composto somente por sentenças, ou seja, não há marcadores de passos (STEP). Um programa de lógica paralela é identico a um step de um programa de passos ± A primeira sentença pode ser incompleta. Todas as seguintes devem ser completas. ± Um programa de lógica paralela é um processo ciclico até que seja resetado, (assim com um programa em Ladder) ± Se for necessário rodar o programa somente uma vez, na última sentença este deverá ser resetado (veja exemplo a seguir). ± O marcador de step STEP não poderá ser utilizado. Caso seja utilizado, ou será sinalizado erro, ou o programa deixará de ser ciclico, se a última cláusula THEN ou OTHRW for executada o programa será desligado. ± Não é possível instrução JMP
Exemplo
de programa de Lógica Paralela
THEN
RESET
F0.0
IF THEN
N SET
I1.0 O0.7
IF THEN SET OTHRWSET RESET ... ... IF AND THEN SET RESET OTHRWRESET
I1.7 O1.7 F0.0 O1.7
F0.0 I1.0 O1.0 P1 P1
Programa Executivo
± Um programa executivo é estruturado da mesma maneira que um programa de lógica paralela. ± Não há instrução com cláusula THEN. ± Todas as sentenças são executadas sem condição de entrada. ± Não é possível instrução JMP. ± Se for incluído um IF em uma programa executivo, erros serão informados Exemplo
de um programa
SET RESET LOAD TO SET CMP2 ...
F0.0 O1.0 V50 TW7 T7
Executivo:
Comentários
± Há duas formas de adicionar comentários em um programa STL: 1. Pequenos comentários com até 36 caracteres podem ser inseridos em linhas de programação, se iniciados pelo simbolo aspas ( ³ ) Exemplo:
IF
N
I1.7
´Sensor não acionado
2. Comentários com mais de 36 caracteres podem ser inseridos no inicio da linha se introduzidos através do símbolo aspas duplo (³ ³ ) ³´ Este é um comentário que poder ocupar até uma linha inteira
Instruções do Statement List
STEP
± Sentença muito importante para determinar a estrutura de um programa ou, se pulos(JMP TO) são utilizados, determina a seqüência de processamento ± STEP pode ser seguido de um´rótulo simbólico (label). Este rótulo somente é necessário se for utilizada a instrução JMP TO Exemplo: STEP Setup ... ... THEN JMP TO Setup ± Durante a compilação do programa, os steps são renumerados internamente, a partir de 1 até o número de steps do programa
IF
± IF sempre introduz uma condição. Todos os operandos podem ser testados ou fazerem parte de uma associação lógica em uma sentença. O resultado representa a condição para o processamento futuro. Exemplo: IF AND N
I1.0 I1.1
... THEN
± THEN introduz a parte executiva se a condição for verdadeira ± A sentença pode conter comando para modificar saídas, flags, temporizadores, chamada a outros programas e módulos, etc Exemplo: THEN LOAD TO
V100 TP7
OTHRW
± OTHRW introduz a parte executiva se a condição for falsa. Exemplo THEN
SET
O1.0
OTHRW
RESET
O1.0
STL conditional part
AND
Exemplo: IF AND SET SET
I1.0 I1.1 O1.0 O1.7
OR OR THEN SET OTHRWSET
I1.0 I1.1 I1.7 O1.0 O1.7
THEN OTHRW OR
Exemplo : IF
EXOR
Exemplo IF EXOR SET SET
I1.0 I1.1 O1.0 O1.7
IF THEN
SET
NOP F1.0
IF THEN
N JMP TO
O1.0 Setup
THEN OTHRW NOP
Exemplo
N
(NEGAÇÃO) Exemplo
STL comandos executivos
SET
± SET ativa um bit. Pode ser usado para ativar operandos de um bit(timers, flags, inputs, outputs etc.)
RESET
± RESET desativa um bit. Pode ser usado para desativar operandos de um bit(timers, flags, inputs, outputs etc.) LOAD
Exemplo: THEN
LOAD TO
V500 TP31
JMP
TO
± JMP TO desvia o programa para um step especificado Exemplo: STEP IF THEN ... ... STEP ...
Mark SET JMP TO
Start
I1.0 O1.0 Start
Funções especiais -
Extended
STL
SWAP
± Troca o byte mais significativo com o menos significativo do operando especificado Exemplo: THEN
LOAD V$55AA TO OW0 SWAP TO OW1 ± $55AA é carregado em OW0, mas $AA55 é carregado em to OW1.
SHIFT
± Esta instrução executa um troca entre o acumulador de bit (SBA) e o bit do operando ± Esta instrução pode ser usada para construir Shift Register com tamanho variável maior ou manor que 16 bits, com performance semelhante as instr uções SHL e SHR Exemplo: STEP 10 IF THEN
I1.0 LOAD TO SHIFT SHIFT SHIFT SHIFT
" entrada ativa I1.1 F0.0 " um flag é utilizado para registrar ³ o valor do bit a ser transferido O1.1 " SWAP F0.0 O1.1 O1.2 " SWAP O1.1 O1.2 O1.3 " SWAP O1.2 O1.3 O1.4 " SWAP O1.3 O1.4
SHL
± SHL transfere os bits do operando uma posição para a esquerda e o bit mais a direita é carregado com zero. Seu efeito é uma multiplicação por 2. Exemplo: THEN
LOAD SHL TO
V16 R7
± O valor final em R7 é 32.
± SHR transfere os bits do operando uma posição para a direita e o bit mais a esquerda é carregado com zero. Seu efeito é uma divisão por 2. Exemplo: THEN
± O valor final em R7 é 8.
LOAD SHR TO
V16 R7
ROL
± Oefeito desta instrução é o mesmo que da instrução SHL exceto pelo fato de que o bit mais significativo é transferido através do bit de acumulador para o bit menos sgnificativo . ROR
± Oefeito desta instrução é o mesmo que da instrução SHR exceto pelo fato de que o bit menos significativo é transferido através do bit de acumulador para o bit mais sgnificativo . BID
± A instrução BID converte o valor do acumulador de 16 bits de binário para BCD. Exemplo: THEN
LOAD BID TO
IW0 OW7
DEB
± A instrução DEB converte o valor do acumulador de 16 bits de BCD para binário.
INV
± Complementa o valor do acumulador de 16 bits usando método complemento de um Exemplo: THEN
LOAD OW1 INV AND IW1 TO OW1
CPL
± Complementa o valor do acumulador de 16 bits usando método complemento de dois. Seu efeito é o mesmo que multiplicar o valor por -1. Exemplo: IF THEN
( < LOAD CPL TO
R32 V0 R32 R22
)
Arithmetic functions INC
± Soma 1 ao valor do operando de 16 bits. Exemplo: IF THEN
I1.3 INC
R9
DEC
± Subtrai 1 do valor do operando de 16 bits. Exemplo: IF
THEN
I2.2 AND N
I3.6
DEC
R9
± Em complemento as sentenças apresentadas, segue abaixos as operações aritméticas disponíveis: (, ), +, -, *, /, ,
± Estas funções permitem operações aritméticas e comparações Exemplo: IF
( = ) AND ( ) THEN LOAD + TO
FW0 V1234
R1 V0 ( R5 V10 ) R4
Module
calls - Chamadas de módulos
CFM e CMP
± Instruções utilizadas para solicitar a execução de uma rotina de programa.. ± Modulos e Funções podem ser escritos em STL ou C ± Módulos e Funções podem utilizar Function Units (FU) para passar informações de ou para outros programas ± Ambos são utilizados para executar uma rotina externa ao programa. ± Se necessário fornecer parâmetros, então utiliza-se CMP ou CFM com WITH ± A diferença entre uma Função e um módulo é que função não pode conter steps e módulo é um programa que pode conter steps. Exemplo IF THEN
I1.2 CFM 0 WITH
V10
PLC operands ± ABREVIAÇÕES b - Bit w - Word (16 bits) ± Faixa de valores para operandos multibis ou word 0 to 65535 -32768 to +32767 $0000 to $FFFF
(Unsigned decimal) (Signed decimal) (Hexadecimal)
Inputs
± 256 input words (0 to 255) de 16 bits (0 to 15), podem ser acessados como bit ou como word Input (bit): Syntax: Iw.b Input word: Syntax:
IWw
Outputs
± 256 outputs words (0 to 255) de 16 bits (0 to 15), podem ser acessados como bit ou como word Output (bit): Syntax: Ow.b Input word: Syntax:
OWw
Flags
± 10,000 flag words (0 to 9999) de 16 bits (0 to 15), podem ser acessados como bit ou como word . Flag (bit): Syntax: Fw.b Flag word: Syntax:
FWw
Registers
± 256 registers (0 to 255), somente podem ser acessados as words. Syntax: Rw
Timers
± 256 timers (0 to 255), podem ser programados como pulse (T), switch-on delay (TON) or switch-off delay (TOFF) timers em LDR; em STL somente são programados como puilse. Timer status (bit): Syntax: Tnn, TONnn, TOFFnn Timer value: TWnn Timer preset: TPnn
Counters
± 256 contadores (0 to 255), C0 to C255 CW0 to CW255 CP0 to CP255
Counter status, bit Counter word, multibit Counter preset, multibit
Constants
Vnnnn
Multibit
Function units
± 256 function units, 7 delas (32 to 38) são usadas para passar parâmetros para módulos e funções, as demias são destinadas para uso geral FU0 to FU255 Multibit
Programs
- 64 bits utilizados para set reset e testes de ativação dos 64 possíveis programas P0 to P63
One-bit
Program statuses
PS0 to PS63 One-bit ± A associação do Program + Program Statues fornece informações sobre o estado dos programas P 0 0 1 1
PS 0 1 0 1
Status Inativo No meaning Ativo mas suspenso Ativo e em processamento
Errors
E EW Initial
One-bit Multibit
flags
± Quando um programa é executado pela primeira vez este flag é colocado em 1 e posteriormente resetado automaticamante FI bit, para cada programa Retentive operands
± FEC´s FW0 to 255 R0 to 127 TP0 to 127 C0 to 127 CP0 to 127 Password
View more...
Comments