Escolar Documentos
Profissional Documentos
Cultura Documentos
// Comentário
<comando>; /*Comentário*/
<comando>; (* Comentário *)
/*Comentário
…
Fim do Comentário*/
VAR
BOTAO: BOOL := TRUE;
TEMPERATURA_MOTOR : REAL := 46.7;
SENTIDO: STRING(7) := ‘Horário’;
SENSOR_VELOCIDADE : INT : = 10;
END_VAR
D#1989-05-22
DATE Calendar date
DATE#1989-05-22
TOD#14:32:07
TIME_OF_DAY Time of day
TIME_OF_DAY#14:32:07.77
DT#1989-06-15-13:56:14.77
DATE_AND_TIME Date and time of day DATE_AND_TIME#1989-06-15-
13:56:14.77
Os vetores só podem ser atribuídos com a estrutura “:= [<A1> , <A2> …. ,<An>];”(como no
exemplo acima) somente na primeira vez , nas outras ele deve ser atribuído elemento a
elemento com a estrutura: “ <nome do vetor>[<posição>]:=<variável ou valor>;” acessado com a
estrutura
“<variável>:=<nome do vetor>[<posição>];”
TYPE <Nome>
STRUCT
<variavel 1>
<variavel 2>
…
<variável N>
END_STRUCT
END_TYPE
Negação -
Complemento booleano NOT
Exponenciação **
Multiplicação *
Divisão /
Módulo MOD
Soma +
Subtração -
Igualdade =
Desigualdade <>
OU booleano OR Baixa
Caso não seja declarado o valor do incremento, será considerado igual a um.
WHILE...DO[editar | editar código-fonte]
O laço WHILE realiza algumas instruções enquanto certa condição, que corresponde a uma
expressão booleana, é verdadeira. O laço começa com a checagem da condição, caso ela seja
verdadeira o laço é iniciado. Caso seja falsa o programa nem chega a executar as instruções
contidas no laço e da continuação ao resto do código. Uma vez dentro do laço, cada vez que a
execução dos comandos for concluída a condição de parada é checada novamente. Caso ainda
seja verdadeira os comandos serão repetidos. Caso seja falsa o laço é encerrado e se
prossegue com a execução do código.
REPEAT
<comandos>; /*Executa caso seja a primeira iteração, ou caso a expressão
booleana for verdadeira*/
UNTIL <expressão booleana>
END_REPEAT;
PROGRAM EXEMPLO_INVERSOR
VAR
TEXTO: STRING(17) := 'ODARUTURTSE_OTXET'; (* Texto que será invertido
*)
TEXTO_INVERTIDO: STRING(17) := ''; (* Variável que receberá o texto
invertido*)
CONTADOR: INT; (* Variável que contará as iteraçãoes realizadas*)
END_VAR;
No próximo exemplo temos um bloco de função para um programa qualquer. Neste bloco temos
um condicional que verifica o estado de um sensor e determina a ligação de um alarme, caso o
alarme seja acionado ele não permite que o resultado seja verdadeiro, mesmo que a variável
ligar seja verdadeira. Se o alarme estiver desligado, ou seja, falso, ele permite que o resultado
seja verdadeiro.
Diagrama em Ladder do exemplo ao lado
FUNCTION_BLOCK EXEMPLO_BLOCO
VAR_INPUT
LIGAR : BOOL;
SENSOR_PRESSAO : INT;
END_VAR;
VAR_OUTPUT
RESULTADO : BOOL;
ALARME : BOOL;
END_VAR;
IF SENSOR_PRESSAO < 50 THEN
ALARME := FALSE; (*Executa caso o valor da variável SENSOR_PRESSAO for
menor que 50*)
ELSE
ALARME := TRUE; (*Executa caso a afirmação acima for falsa*)
END_IF;
IF LIGAR AND NOT ALARME THEN
RESULTADO := TRUE; (*Executa caso o valor da variável LIGAR for
verdadeiro e o valor da variável ALARME for falso*)
ELSE
RESULTADO := FALSE;(*Executa caso a afirmação acima for falsa*)
END_IF;
END_FUNCTION_BLOCK;
Aqui temos o mesmo programa em linguagem Ladder, perceba que uma simples comparação
feita em texto estruturado com um IF..THEN, em Ladder precisamos usar um bloco de função.
https://pt.wikipedia.org/wiki/Texto_estruturado