Linguagem STL

November 23, 2018 | Author: marcos644 | Category: Software, Logic, Areas Of Computer Science, Computer Engineering, Arithmetic
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF