Você está na página 1de 60

TIA PORTAL – SCL

LINGUAGEM SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 1
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 2
TIA PORTAL – SCL

Sumário
INTRODUÇÃO A LINGUAGEM SCL (Structured Control Language) ................................................... 5
Elementos da linguagem ............................................................................................................ 5
Controle de programa ................................................................................................................ 5
Aplicação ................................................................................................................................... 5
Funcionalidades do editor S7-SCL ............................................................................................... 6
Regras........................................................................................................................................ 6
INSERINDO UMA FUNÇÃO EM SCL ................................................................................................. 7
Visão geral da janela de programação ........................................................................................ 8
Configurando a fonte, tamanho e cor ......................................................................................... 9
Configurando o espaçamento das abas .................................................................................... 10
Mostrar números de linha ........................................................................................................ 10
Mostrar ou ocultar os operandos absolutos ............................................................................. 10
USANDO BOOKMARKS (MARCADORES) ....................................................................................... 11
Definir marcadores .................................................................................................................. 12
Navegando entre marcadores .................................................................................................. 13
Apagando marcadores ............................................................................................................. 14
Excluindo marcadores individuais ............................................................................................ 14
Excluindo todos os marcadores do bloco .................................................................................. 14
INICIANDO INSTRUÇÕES SCL ........................................................................................................ 15
Regras para instruções SCL ....................................................................................................... 15
Iniciando instruções SCL - Manualmente .................................................................................. 16
Inserindo instruções SCL usando a barra de tarefa "Instructions" ............................................. 17
INSERINDO COMENTÁRIOS .......................................................................................................... 18
Comentários em linhas de código do programa ........................................................................ 18
TRABALHANDO COM REGIÕES (REGION) ..................................................................................... 19
Usando regiões ........................................................................................................................ 19
Sintaxe ..................................................................................................................................... 21
Navegando nas regiões ............................................................................................................ 22
EXPRESSÕES................................................................................................................................. 23
Descrição ................................................................................................................................. 23
Ordem de avaliação ................................................................................................................. 23
Tipos de expressões ................................................................................................................. 23
Como as expressões são usadas ............................................................................................... 23
EXPRESSÕES ARITMÉTICAS........................................................................................................... 24
Descrição ................................................................................................................................. 24

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 3
TIA PORTAL – SCL

EXPRESSÕES RELACIONAIS (COMPARADORES) ............................................................................. 26


Descrição ................................................................................................................................. 26
Comparação de números de ponto flutuante ........................................................................... 26
Comparação de caracteres String ............................................................................................. 27
Comparação de temporizadores, data e hora ........................................................................... 28
Comparando tags do tipo de dados WORD com as tags do tipo de dados S5TIME .................... 28
Exemplos ................................................................................................................................. 28
EXPRESSÕES LÓGICAS .................................................................................................................. 29
Descrição ................................................................................................................................. 29
Exemplos ................................................................................................................................. 29
ATRIBUIÇÃO DE VALORES ............................................................................................................ 30
Definição ................................................................................................................................. 30
EXEMPLOS DE SINTAXE ................................................................................................................ 34
Atribuição de valores a variáveis (TAGs) ................................................................................... 34
Operações matemáticas........................................................................................................... 34
Operações condicionais (IF)...................................................................................................... 34
Operações condicionais (CASE) ................................................................................................ 35
Operações condicionais (FOR) .................................................................................................. 35
COMPILANDO O PROGRAMA ....................................................................................................... 36
VERIFICANDO STATUS DO PROGRAMA – EM SCL ......................................................................... 38
ENDEREÇAMENTO INDIRETO ....................................................................................................... 39
Endereços indiretos com ARRAY............................................................................................... 39
Endereços indiretos com acesso utilizando instruções PEEK e POKE ......................................... 41
PEEK .................................................................................................................................... 42
POKE .................................................................................................................................... 43
POKE BLK ............................................................................................................................. 44
INSTRUÇÕES SCL .......................................................................................................................... 45
IF... (Executar condicionalmente) ............................................................................................. 45
CASE... (Comparação múltipla) ................................................................................................. 48
FOR... (Laço de Repetição)........................................................................................................ 49
WHILE... (Executar se a condição for atendida) ......................................................................... 50
INSTRUÇÕES STEP 7 EM SCL ......................................................................................................... 51
Operações Binárias .................................................................................................................. 51
Temporizadores ....................................................................................................................... 53
Contadores .............................................................................................................................. 56

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 4
TIA PORTAL – SCL

INTRODUÇÃO A LINGUAGEM SCL (Structured Control Language)

O Controle de linguagem estruturada (SCL) corresponde à linguagem de alto nível textual ST


(texto estruturado), baseada em PASCAL, definido na norma DIN IEC 61131-3 (internacional IEC
1131-3) e cumpre nível de base e requisitos de nível de reutilização de acordo com Open PLC.

SCL é particularmente adequado para a programação de alta velocidade de algoritmos


complexos, funções de cálculo e para funções de processamento de dados. O código de SCL é
mais simples, mais curto e mais claro para escrever e manusear. A eficiência de programação é
reforçada através do alto desempenho dos novos compiladores SCL.

Elementos da linguagem

O SCL também contém linguagens de programação mais altas, além dos elementos típicos do
PLC, como entradas, saídas, temporizadores ou bits de memória.
● Expressões
● Atribuições de valor
● Operadores

Controle de programa

O SCL fornece instruções práticas para controlar o programa permitindo, por exemplo, criar
ramos, loops ou saltos de programas.

Aplicação

O SCL é, portanto, particularmente adequado para as seguintes áreas de aplicação:


● Gerenciamento de dados
● Otimização de processo
● Gerenciamento de receitas
● Tarefas matemáticas / estatísticas

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 5
TIA PORTAL – SCL

Funcionalidades do editor S7-SCL

• Áreas completas de código de programa pode ser ativado / desativado com apenas um
clique
• Loops e comentários de várias linhas podem ser expandidos e recolhidos
• Favoritos
• Exportação do código SCL
• Acesso rápido a tag (bit, byte, palavra ...) com o "fatiamento"
• Os valores de todas as tags são mostrados claramente em linha
• Blocos SCL podem ser utilizados em outras linguagens do Step 7
• Ideal para blocos de funções definidos pelo usuário para bibliotecas
• Blocos SCL formam a base para o código de programa de compartilhamento entre S7-1200,
S7-300, S7-400 e WinAC
• Economia de tempo considerável em comparação com a programação em LAD / FBD / STL

Regras

Você precisa observar as seguintes regras ao inserir instruções SCL:


• As instruções podem abranger várias linhas.
• Cada instrução termina com um ponto e vírgula (;).
• Não há distinção entre maiúsculas e minúsculas.
• Comentários servem apenas para a documentação do programa. Eles não afetam a
execução do programa.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 6
TIA PORTAL – SCL

INSERINDO UMA FUNÇÃO EM SCL

A linguagem SCL está disponível para os blocos do tipo Função (FC) ou para os Blocos de Funções
(FB). Ao criar o novo bloco, é necessário que se faça a seleção da linguagem para SCL. Após a
criação do bloco, não é possível que a linguagem seja alterada.

4
3

1
2

1. Insira um novo bloco de programa


2. Selecione Função (FC)
3. Selecione a linguagem – SCL
4. Dê um nome ao novo bloco
5. Finalize com o comando OK

Após o bloco ser criado e aberto para edição, será mostrado na área de trabalho, o editor de
SCL.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 7
TIA PORTAL – SCL

Visão geral da janela de programação

A janela de programação é a área de trabalho, onde você entra no programa SCL.


A figura a seguir mostra a janela de programação do SCL e suas características:

6
5
2
4

1. Barra com as regiões utilizadas no bloco (REGION)


2. Você pode definir marcadores e pontos de interrupção na barra lateral.
3. Os números das linhas são exibidos à esquerda do código do programa.
4. A exibição de estrutura de tópicos destaca as seções de código relacionadas.
5. Você edita o programa SCL na área do código.
6. Esta tabela mostra a atribuição de operandos simbólicos para endereços absolutos.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 8
TIA PORTAL – SCL

Você pode personalizar a aparência da janela de programação e o código do programa da


seguinte maneira:

● configurando a fonte, tamanho e cor


● configurando o espaçamento das abas
● ao exibir os números de linha
● ao mostrar ou ocultar os operandos absolutos

Configurando a fonte, tamanho e cor

Para definir a fonte, tamanho e cor, siga estas etapas:

1. Selecione o comando "Options" no menu "Settings". A janela "Options" é exibida na área


de trabalho.
2. Selecione o grupo "Geral > Script / text editors".
3. Selecione a fonte e o tamanho da fonte desejada ou escolha uma cor de fonte para os
elementos de idioma individuais.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 9
TIA PORTAL – SCL

Configurando o espaçamento das abas

Para fornecer uma melhor visão geral do programa, as linhas são recuadas de acordo com a
sintaxe. Defina a profundidade do recuo com o espaçamento das abas.

Para definir o espaçamento entre separadores, siga estes passos:

1. Selecione o comando "Options" no menu "Settings". A janela "Options" é exibida na área


de trabalho.
2. Selecione o grupo "Geral > Script / text editors".
3. Defina o espaçamento das abas.

Mostrar números de linha

Para exibir os números de linha, siga estas etapas:

1. Selecione o comando "Options" no menu "Settings". A janela "Options" é exibida na área


de trabalho.
2. Selecione o grupo "Geral > Script / text editors".
3. Selecione a opção "Mostrar números de linha".

Mostrar ou ocultar os operandos absolutos

Você pode mostrar a atribuição de operandos simbólicos e absolutos em uma tabela ao lado do
código do programa, se necessário.

Para ocultar ou mostrar a exibição dos operandos absolutos, siga estas etapas:

1. Clique no ícone " Absolute/symbolic operands" na barra de ferramentas. Aparece a exibição


dos operandos absolutos.
2. Ao clicar é alterado o modo de visualização.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 10
TIA PORTAL – SCL

USANDO BOOKMARKS (MARCADORES)

Você pode usar marcadores para marcar locais de programas em programas extensivos para
que você possa encontrá-los rapidamente mais tarde, se eles precisam ser revisados. Os
marcadores são exibidos na barra lateral da janela de programação. Você pode navegar entre
vários marcadores dentro de um bloco usando os comandos do menu.
Os marcadores são salvos com o projeto e, portanto, estão disponíveis para qualquer pessoa
que queira editar o bloco. No entanto, eles não são carregados em um dispositivo.
Os marcadores não são avaliados quando os blocos são comparados.

- Inserir marcador
- Próximo marcador
- Marcador anterior

Linhas marcadas

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 11
TIA PORTAL – SCL

Definir marcadores

Requerimento:
O bloco SCL deve estar aberto.

Procedimento:
Para definir um marcador, siga uma das etapas abaixo:

1. Clique com o botão direito do mouse na linha desejada na barra lateral.


2. Selecione o comando " Bookmarks > Set" no menu de atalho.
Ou
1. Clique na linha na qual deseja colocar o marcador.
2. Clique no botão "Set/delete bookmark" na barra de ferramentas.
Ou
1. Mantenha pressionada a tecla <Ctrl>.
2. Clique na linha na barra lateral na qual deseja colocar o marcador.

Resultado:
Um marcador é colocado no código do programa.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 12
TIA PORTAL – SCL

Navegando entre marcadores

Requerimento:
Vários marcadores configurados em um bloco.

Procedimento:
Para navegar entre marcadores, siga os passos a seguir:

1. Defina o cursor de inserção no código do programa.


2. No menu "Edit", selecione o comando "Go to > Next bookmark" ou "Go to >
Previous bookmark".
Ou
1. Defina o cursor de inserção no código do programa.
2. Na barra de ferramentas do editor de programação, clique no botão "Go to > Next
bookmark", "Go to > Previous bookmark".
Ou
1. Clique na barra lateral.
2. Selecione o comando "Bookmarks > Next" ou "Bookmarks > Previous" no menu de
atalho.

Resultado:
A linha com o marcador é destacada.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 13
TIA PORTAL – SCL

Apagando marcadores

Você pode excluir marcadores individuais ou todos os favoritos do bloco ou da CPU.

Excluindo marcadores individuais

Para excluir um marcador individual, siga estas etapas:

1. Clique com o botão direito do mouse na barra lateral na linha na qual você deseja
excluir o marcador.
2. Selecione o comando "Bookmarks > Remove" no menu de atalho.
Ou
1. Clique na linha na qual você deseja excluir o marcador.
2. No menu "Edit", selecione o comando "Bookmarks > Remove".
Ou:
1. Clique na linha na qual você deseja excluir o marcador.
2. Clique no botão "Set/delete bookmark"" na barra de ferramentas.

Excluindo todos os marcadores do bloco

Para excluir todos os marcadores do bloco, siga estas etapas:


1. Clique com o botão direito do mouse na barra lateral.
2. Selecione o comando "Bookmarks > Delete all from block" no menu de atalho.
Ou
1. No menu "Edit", selecione o comando "Bookmarks > Delete all from block".

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 14
TIA PORTAL – SCL

INICIANDO INSTRUÇÕES SCL

Regras para instruções SCL

Instruções em SCL

A SCL reconhece os seguintes tipos de instruções:

● atribuições de valor
As atribuições de valor são usadas para atribuir um tag a um valor constante, o resultado de
uma expressão ou o valor de outro tag.
● instruções para o controle do programa
As instruções para o controle do programa são usadas para implementar ramificações, loops ou
saltos do programa.
● instruções adicionais na barra de instruções "Instructions"
A barra de tarefa "Instruções" oferece uma ampla seleção de instruções padrão que você pode
usar em seu programa SCL.
● bloquear chamadas
As chamadas em bloco são usadas para chamar sub-rotinas que foram colocadas em outros
blocos e para processar seus resultados.

Você deve observar as seguintes regras ao entrar nas instruções SCL:

● as instruções podem abranger várias linhas.


● cada instrução termina com um ponto e vírgula (;).
● não é feita distinção entre maiúsculas e minúsculas.
● os comentários servem apenas para documentação do programa. Eles não afetam a execução
do programa.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 15
TIA PORTAL – SCL

Iniciando instruções SCL - Manualmente

Requerimento:
O bloco SCL deve estar aberto.

Procedimento:
Para entrar nas instruções SCL, siga estas etapas:

1. Digite a sintaxe das instruções usando o teclado.


A função de preenchimento automático é executada assim que um texto for
digitado. Ela oferece todas as instruções e operandos que são permitidos na
localização atual.
2. Selecione a instrução necessária ou o operando desejado a partir da função de
preenchimento automático.
Se você selecionar uma instrução que requer especificação de operandos, os
espaços reservados para os operandos são inseridos no programa. Os espaços
reservados para os operandos são destacados em amarelo. O primeiro espaço
reservado é selecionado.
3. Substitua este espaço reservado por um operando.
4. Use a tecla <TAB> para navegar para todos os outros espaços reservados e
substituí-los por operandos.

Nota
Você também pode arrastar e soltar um operando definido da tabela de tags do PLC ou da
interface do bloco para o programa. Posicionando o mouse sobre o tag ou operando, será
mostrado ume em amarelo uma descrição do tag como seu endereço e também uma breve
descrição do que o operando faz.

Outra opção para inserir manualmente um tag ou operando, utilize as teclas, simultaneamente,
<Ctrl> + <Space> e será listado todos os itens possíveis a serem utilizados.

Resultado:
A instrução está inserida.
O editor de programação executa uma verificação de sintaxe. As entradas incorretas
são exibidas em vermelho e em itálico. Além disso, você também recebe uma
mensagem de erro detalhada na janela do inspetor.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 16
TIA PORTAL – SCL

Inserindo instruções SCL usando a barra de tarefa "Instructions"

A barra de tarefa "Instructions" oferece uma ampla seleção de instruções que você pode usar
no seu programa SCL. As instruções específicas do SCL para o controle do programa estão
disponíveis na barra de tarefas "Instructions".

Requerimento:
O bloco SCL deve estar aberto.

Procedimento:
Para inserir instruções SCL em um programa usando a barra de
tarefas "Instructions", siga estas etapas:
1. Abra a barra de tarefas "Instructions".
2. Para inserir as instruções, selecione uma das seguintes
etapas:
- Navegue até a instrução SCL que deseja inserir e arraste e solte
na linha desejada no código do programa. O local de inserção é
realçado por um retângulo verde.
- Selecione a localização no código do programa onde deseja
inserir as instruções e em seguida, clique duas vezes nas
instruções que deseja inserir.

A instrução é inserida no programa. Os espaços reservados para os operandos são destacados


em amarelo. Um amarelo claro indica os parâmetros opcionais que você não precisa
necessariamente se conectar. Um amarelo mais escuro indica os parâmetros obrigatórios que
você deve se conectar. O primeiro espaço reservado é selecionado.

3. Substitua este espaço reservado por um operando. Você também pode arrastar uma etiqueta
da interface ou da tabela de tags do PLC com arrastar e soltar para o espaço reservado.
4. Use a tecla <TAB> para navegar para todos os outros espaços reservados e substituí-los por
operandos.

Resultado:
A instrução está inserida.
O editor de programação executa uma verificação de sintaxe. As entradas incorretas
são exibidas em vermelho e em itálico. Além disso, você também recebe uma
mensagem de erro detalhada na janela do inspetor.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 17
TIA PORTAL – SCL

INSERINDO COMENTÁRIOS

Comentários em linhas de código do programa

Você tem duas opções para comentar programas SCL:

● Seção de comentários
Uma seção de comentários é iniciada com "(*” e finalizado por “*) ".
Ele pode abranger várias linhas.

● Comentário de linha
Um comentário de linha começa com "//" e se estende até o final da linha.

Seção de comentários

Comentário da linha

Nota
Todos os comentários inseridos no programa são transferidos e armazenados na CPU.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 18
TIA PORTAL – SCL

TRABALHANDO COM REGIÕES (REGION)

Usando regiões

No SCL, você pode estruturar seu código de programa em regiões. Isso melhora a clareza do seu
programa porque você combina partes relacionadas do programa e pode expandir e esconder
as regiões conforme necessário. Uma visão geral da região está disponível para navegação
rápida nas regiões. A visão geral da região aparece ao lado da janela do programa e pode ser
exibida ou escondida conforme necessário.
A figura a seguir mostra a visão geral da região e a janela de programação:

A visão geral da região também mostra as regiões nas quais existem erros de sintaxe. Isso
permite que você navegue rapidamente para posições de código defeituosas e corrija erros.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 19
TIA PORTAL – SCL

Para resumir uma parte do programa em uma região, coloque-a com as palavras-chave
"REGION" e "END_REGION". Dependendo das suas configurações no destaque da palavra-
chave, a notação das palavras-chave também pode ser "region" e "end_region" ou "Region" e
"End_Region". As palavras-chave são convertidas automaticamente para a notação que
corresponde à configuração atual. Para encontrar palavras-chave "REGION" e "END_REGION"
que pertençam juntas, clique em "REGION" ou "END_REGION". Ambas as palavras-chave são
destacadas em cores como resultado.

Você pode dar a cada região um nome. Isto tem as seguintes vantagens:

● o nome também está visível quando uma região é escondida. Isso permite que você mantenha
uma visão geral do código do seu programa.

● você pode identificar as regiões na visão geral da região mais facilmente e navegar até
Regiões.

Nota
Especificar um nome é opcional.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 20
TIA PORTAL – SCL

Sintaxe

Use a seguinte sintaxe para combinar as partes do programa em regiões:

Utilize a barra de instruções para inserir as regiões automaticamente:

Observe as seguintes informações ao usar regiões:

● as palavras-chave "REGION" e "END_REGION" devem estar no início de uma linha. Apenas


espaços são permitidos antes das palavras-chave.
● todos os caracteres após a palavra-chave "END_REGION" são considerados comentários e,
portanto, não têm efeito na execução do programa.
● todas as instruções devem ser preenchidas dentro de uma região.
● nas instruções CASE, as instruções podem ser incluídas por regiões. As constantes que são
usadas para comparação da declaração CASE devem estar fora das regiões, no entanto.

O exemplo a seguir mostra o uso permitido de regiões dentro de uma instrução CASE:

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 21
TIA PORTAL – SCL

Navegando nas regiões

Você pode usar a visão geral da região para navegar rapidamente nas regiões. A visão geral da
região exibe todas as regiões que existem no código do seu programa. Além disso, oferece as
seguintes funções:

1. Sincronizando a exibição das regiões na visão geral da região e na janela de programação:


Você pode especificar se as regiões em expansão e em colapso afetam apenas a visão geral da
região ou a janela de programação, ou ambas.

2. Expansão e colapso de uma região individual:


Você pode expandir e colapsar regiões individuais na visão geral da região ou na janela de
programação. Se você ativou a sincronização, a região é expandida ou colapsada em ambas as
janelas.

3. Expansão ou colapso de todas as regiões:


Você pode expandir ou colapsar todas as regiões simultaneamente na visão geral da região ou
na janela de programação. Se você ativou a sincronização, as regiões são expandidas ou
colapsadas em ambas as janelas.

1
2

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 22
TIA PORTAL – SCL

EXPRESSÕES

Descrição

As expressões são calculadas durante o tempo de execução do programa e retornam um valor.


Uma expressão consiste em operandos (como constantes, tags ou chamadas de função) e,
opcionalmente, fora de operadores (como *, /, + ou -). As expressões podem ser unidas ou
aninhadas entre si pelas operadoras.

Ordem de avaliação

A avaliação da expressão ocorre em uma ordem específica que é definida pelos seguintes
fatores:
● Prioridade dos operadores envolvidos
● Ordem de esquerda para a direita
● Brackets (conchetes)

Tipos de expressões

Os seguintes tipos de expressões estão disponíveis dependendo do operador:

● Expressões aritméticas
As expressões aritméticas consistem em um valor numérico ou combinam dois valores
ou expressões com operadores aritméticos.

● Expressões relacionais
As expressões relacionais comparam os valores de dois operandos e produzem um
valor booleano. O resultado é TRUE se a comparação for verdadeira e FALSE se não for
atendida.

● Expressões lógicas
As expressões lógicas combinam dois operandos com operadores lógicos (AND, OR,
XOR) ou negando operandos (NOT).

Como as expressões são usadas

Você pode usar o resultado de uma expressão de maneiras diferentes:


● Como atribuição de valor para uma tag
● Como condição para uma instrução de controle
● Como parâmetro para chamar um bloco ou instrução

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 23
TIA PORTAL – SCL

EXPRESSÕES ARITMÉTICAS

Descrição

As expressões aritméticas consistem em um valor numérico ou combinam dois valores ou


expressões com operadores aritméticos.
Os operadores aritméticos podem processar os tipos de dados permitidos na CPU em uso. Se
dois operandos estiverem envolvidos na operação, o tipo de dados do resultado é determinado
com base nos seguintes critérios:

● se ambos os operandos são inteiros com sinal e têm comprimentos diferentes, o resultado
recebe o tipo de dados do inteiro mais longo (por exemplo, INT + DINT = DINT).

● se ambos os operandos são inteiros sem sinal e têm comprimentos diferentes, o resultado
recebe o tipo de dados do inteiro mais longo (por exemplo, USINT + UDINT = UDINT).

● se um operando é um número inteiro com sinal e o outro inteiro é um operando sem sinal, o
resultado recebe o próximo tipo de dados maior com sinal que cobre o inteiro sem sinal (por
exemplo, SINT + USINT = INT).

● se um operando é um número inteiro e o outro operando é um número de ponto flutuante,


o resultado recebe o tipo de dados do número de ponto flutuante (por exemplo, INT + REAL =
REAL).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 24
TIA PORTAL – SCL

● se ambos os operandos são números de ponto flutuante e têm comprimentos diferentes, o


resultado recebe o tipo de dados do número de ponto flutuante mais longo (por exemplo, REAL
+ LREAL = LREAL).

Você só pode executar uma operação com tais operandos se a verificação IEC não estiver
configurada.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 25
TIA PORTAL – SCL

EXPRESSÕES RELACIONAIS (COMPARADORES)

Descrição

As expressões relacionais comparam os valores ou os tipos de dados de dois operandos e


produzem um valor booleano. O resultado é TRUE se a comparação for verdadeira e
FALSE se não for atendida.

Os operadores relacionais podem processar os tipos de dados permitidos na CPU em uso.


O tipo de dados do resultado sempre é BOOL.

Observe as seguintes regras ao formar expressões relacionais:

● todas os tags são comparáveis nos seguintes grupos de tipos de dados:


- Inteiros / números de ponto flutuante
- Números binários
- String

● com os seguintes tipos de dados / grupos de dados, apenas os tags do mesmo tipo
podem ser comparados:
- TIME, LTIME
- Data e hora
- Tipos de dados do PLC
- ARRAY
- STRUCT
- Tag ao qual ANY está sendo utilizado
- Tag para o qual VARIANT está sendo utilizado

● a comparação de STRINGs ocorre de acordo com a codificação de caracteres no


conjunto de caracteres configurado no Windows. A comparação de WSTRINGs ocorre de
acordo com a codificação de caracteres em UTF-16. O comprimento das tags e o valor
numérico de cada caractere são usados para a comparação.

● os tags S5TIME não são permitidas como operandos de comparação. É necessária uma
conversão explícita de S5TIME para TIME ou LTIME.

Comparação de números de ponto flutuante

Quando os números de ponto flutuante são comparados, os operandos a serem comparados


devem ter o mesmo tipo de dados, independentemente da configuração da verificação IEC.
Os padrões de bits especiais dos números inválidos de ponto flutuante (NaN) que são o
resultado de resultados indefinidos (por exemplo, raiz de -1) não são comparáveis. Isso significa
que se um dos operandos tiver o valor NaN, a expressão de comparação "==: Igual", bem como
"<>: Diferente" tem o resultado FALSO.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 26
TIA PORTAL – SCL

Comparação de caracteres String

Os caracteres individuais são comparados por meio de seu código (por exemplo, 'a' é maior do
que 'A') durante a comparação das strings. A comparação é realizada da esquerda para a direita.

O primeiro caractere a ser diferente decide o resultado da comparação.

A tabela a seguir mostra exemplos de comparações "==" de strings:


<Operando 1> <Operando 2> RLO da instrução
‘AA’ ‘AA’ 1
‘AA’ ‘aa’ 0
“Hello World” “HelloWorld” 0
‘aa’ ‘aaa’ 0

A tabela a seguir mostra exemplos de comparações "<>" de strings:


<Operando 1> <Operando 2> RLO da instrução
‘AA’ ‘AA’ 0
‘AA’ ‘aa’ 1
“Hello World” “HelloWorld” 1
‘aa’ ‘aaa’ 1

Você também pode comparar caracteres individuais de uma string. O número do caractere a
ser comparado é especificado entre colchetes ao lado do nome do operando. "MyString [2]",
por exemplo, compara o segundo caractere da string "MyString".

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 27
TIA PORTAL – SCL

Comparação de temporizadores, data e hora

Padrões de bits de temporizadores inválidos, data e horários, ex. DT # 2015-13-33-25: 62:


99.999_999_999, não podem ser comparados. Isso significa que se um dos operandos tiver um
valor inválido, a instrução "==: Igual", bem como "<>: Diferente” tem o resultado FALSO.

Nem todos os tempos podem ser comparados diretamente entre si, como S5TIME. Nesse caso,
eles são implicitamente convertidos em outro tempo para que possam ser comparados, por
exemplo, para TIME.

Se você quiser comparar datas e horários de diferentes tipos de dados, o valor do tipo de dados
de data ou hora menor é convertido implicitamente no tipo de dados de data ou hora maiores.
Isso significa que os dois tipos de dados de data e hora DATE e DTL, por exemplo, são
comparados com base em DTL.

Quando as conversões implícitas falhar, o resultado da comparação é FALSO.

Comparando tags do tipo de dados WORD com as tags do tipo de dados S5TIME

Ambas as tags são convertidas para o tipo de dados TIME ao comparar uma tag do tipo de dados
WORD com uma tag do tipo de dados S5TIME.

A tag WORD é interpretado como um valor S5TIME. Se uma das duas tags não pode ser
convertida, a comparação não é realizada e o resultado é FALSO. Se a conversão for bem-
sucedida, a comparação é realizada com base nas instruções de comparação selecionadas.

Exemplos

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 28
TIA PORTAL – SCL

EXPRESSÕES LÓGICAS

Descrição

Expressões lógicas combinam dois operandos com operadores lógicos AND OR XOR ou negando
operandos NOT.
Os operadores lógicos podem processar os tipos de dados permitidos na CPU em uso. O
resultado de uma expressão lógica é do tipo de dados BOOL, se ambos os operandos são de tipo
de dados BOOL. Se pelo menos um dos dois operandos for uma sequência de bits, o resultado
também é uma sequência de bits e é determinado pelo tipo de operando mais alto. Por
exemplo, quando você liga um operando de tipo BYTE a um operando de tipo WORD, o
resultado é digitar WORD.
Para vincular um operando de tipo BOOL com uma sequência de bits, você deve primeiro
explicitamente convertê-lo em uma sequência de bits.

Exemplos

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 29
TIA PORTAL – SCL

ATRIBUIÇÃO DE VALORES

Definição

Você pode usar uma atribuição de valor para mover o valor de uma expressão a um tag.
No lado esquerdo da linha SCL está o tag que recebe o valor da expressão à direita.
A expressão poderá conter variáveis e/ou constantes.

Expressão que ira fornecer o


valor para o tag

Tag que receberá um valor

O nome de uma função também pode ser especificado como uma expressão. A função é
chamada pela atribuição do valor e retorna seu valor de função para o tag à esquerda.

Tag que receberá um Função parametrizada


valor resultante da
função que foi atribuída

O tipo de dados de atribuição de valor é definido pelo tipo de dados do tag à esquerda. O tipo
de dados da expressão à direita deve corresponder a este tipo.

Valor atribuído ao tag em


formato REAL

Tag com Data Type REAL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 30
TIA PORTAL – SCL

Você tem as seguintes opções para programação de atribuições de valor:

1. Atribuições de valor único


No caso de atribuições de valor único, uma expressão ou tag é atribuído apenas a um único
tag:

2. Atribuições de valor múltiplo

No caso de atribuições de múltiplos valores, várias atribuições podem ser executadas com
uma instrução.

Isso corresponde à seguinte notação:

3. Atribuições de valores combinados

No caso de atribuições de valores combinados, você pode combinar os operadores "+", "-",
"*" e "/" com o operador de atribuição:

Isso corresponde à seguinte notação:

Você também pode utilizar atribuições de valor combinado várias vezes:

Isso corresponde à seguinte notação:

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 31
TIA PORTAL – SCL

Atribuições de valor para o tipo de dados STRUCT ou os tipos de dados do PLC (PLC Data Type)

Toda estrutura pode ser atribuída a outra se as estruturas estiverem organizadas de forma
idêntica e os tipos de dados, bem como os nomes dos componentes estruturais, coincidem.

Você pode atribuir um tag, uma expressão ou outro elemento estrutural a um elemento
estrutural individual.

Atribuições de valor para o tipo de dados ARRAY

Um ARRAY inteiro pode ser atribuído a outro ARRAY se ambos os tipos de dados dos elementos
ARRAY, bem como os limites ARRAY correspondem.

Você pode atribuir uma tag, uma expressão ou outro elemento ARRAY a um elemento ARRAY
individual.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 32
TIA PORTAL – SCL

Atribuições de valor para o tipo de dados STRING

Um STRING inteiro pode ser atribuído a outro STRING.

Você pode atribuir outro elemento STRING a um elemento STRING individual.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 33
TIA PORTAL – SCL

EXEMPLOS DE SINTAXE

Atribuição de valores a variáveis (TAGs)

Todas as variáveis podem receber valores, sejam booleanos, inteiros, real, etc.
A sintaxe para atribuição de valores é “:=”, e sempre a linha é finalizada com ponto e vírgula (;)

Operações matemáticas

Todas as operações matemáticas estão disponíveis (+ - * /)

Operações condicionais (IF)

O resultado de uma condição é checado e se for verdadeiro executa as instruções contidas


abaixo. O ELSE é opcional e é executado quando a condição não for verdadeira.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 34
TIA PORTAL – SCL

Operações condicionais (CASE)

A variável é lida e comparada aos valores abaixo da instrução. Caso o valor seja correspondido
a linha correspondente é executada.

Operações condicionais (FOR)

A operação FOR executa um looping em função da condição estabelecida. No exemplo abaixo,


será executa a operação de 1 até 31 vezes. Com isso é possível executar tarefas com
endereçamentos indiretos.
Todos os dias do mês de janeiro serão zerados através da operação FOR.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 35
TIA PORTAL – SCL

COMPILANDO O PROGRAMA

Após o desenvolvimento do programa o bloco deve ser transferido para a CPU e essa operação
apenas é possível se não houver erros de programa. Antes de descarregar o bloco o sistema faz
uma compilação onde verifica se erros de sintaxe existem. Caso apresente algum erro ele é
apresentado na janela inspetor.
A compilação também pode ser realizada a qualquer momento através do comando manual
Compile.

Abaixo um exemplo de uma compilação sem erros.

Resultado da compilação –
sem erros

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 36
TIA PORTAL – SCL

Abaixo um exemplo de uma compilação com erros.

O resultado da compilação informa quantos erros foram encontrados, a linha onde o erro se
encontra e o tipo de erro.
Ao clicar sobre a linha do resultado com erro, automaticamente, será aberto o bloco e
selecionado a linha onde está o erro. No exemplo acima, está faltando o ponto e vírgula ao final
da instrução.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 37
TIA PORTAL – SCL

VERIFICANDO STATUS DO PROGRAMA – EM SCL

Ao habilitar o status do bloco, o conteúdo das variáveis é mostrado na tela em laranja. Em


variáveis booleanas quando verdadeiras será mostrado na cor verde.

Habilita/Desabilita o
status do programa

Conteúdo das variáveis

Resultado da condição

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 38
TIA PORTAL – SCL

ENDEREÇAMENTO INDIRETO

Uma das vantagens em se trabalhar com a linguagem SCL é poder manipular os endereços
indiretamente, de uma forma simples e ágil. Com isso, é possível ler e escrever em diversas
variáveis com uma grande economia de linhas de instruções, facilitando o desenvolvimento e
economizando uma grande quantidade de memória.

Existem duas formas de endereçamentos indiretos utilizando a linguagem SCL:


1. Endereços indiretos com ARRAY.
2. Endereços indiretos com acesso utilizando instruções PEEK e POKE.

Endereços indiretos com ARRAY

Áreas de memórias que foram declaradas com tipo de dados ARRAY, podem ser manipuladas
através do índice do ARRAY, que é inserido dentro dos colchetes “[“ e “]”. Normalmente o valor
inserido é uma constante, mas em muitos casos pode ser substituído por uma variável e esta
variável ser controlada/alterada pelo programa em tempo real.

Array[1..31]

Array[1..12]

No exemplo acima, o dia 25 do mês 5 recebera o valor da entrada analógica. Desta forma, caso
seja necessário alterar o dia ou mesmo o mês, o programa deverá ser alterado e transferido
novamente para o CLP.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 39
TIA PORTAL – SCL

Utilizando a forma de endereçamento indireto, é possível manipular o número equivalente ao


dia e mês utilizados pelo ARRAY. Para isso, substitua as constantes por variáveis.
No mesmo exemplo agora será guardado o valor analógico no dia e mês atual retirados do
relógio do CLP. Observe que para isto, o programa permaneceu utilizando apenas uma linha de
programa, além da leitura do relógio.

Leitura do relógio

Número retirado do
dia atual do relógio

Número retirado do
mês atual do relógio

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 40
TIA PORTAL – SCL

Endereços indiretos com acesso utilizando instruções PEEK e POKE

Através das instruções PEEK e POKE é possível ler e escrever em variáveis do CLP. Estas variáveis
podem ser do tipo:
• Input
• Output
• Bit memory
• DB
• Output periferia (somente S7-1500)

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 41
TIA PORTAL – SCL

PEEK

A instrução PEEK tem como função ler informações de uma variável de forma indireta, seja
booleana ou não. A instrução permite que seja selecionado o tipo de elemento a ser lido
(Input,Output,Bit memory, DB, Input periferia).

A instrução PEEK é usada para ler um endereço de memória de uma área de memória padrão
sem especificar um tipo de dados. Utilizando a instrução PEEK_* (e o tipo de variável) é possível
realizar a leitura de um tipo especifico de formato numérico.

Observe que não existe a instrução PEEK_REAL. Para a leitura de valor em formato REAL é
necessário que seja feita a conversão de DWORD para REAL.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 42
TIA PORTAL – SCL

POKE

A instrução POKE tem como função escrever informações em uma variável de forma indireta,
seja booleana ou não. A instrução permite que seja selecionado o tipo de elemento a ser escrito
(Input,Output,Bit memory, DB, Output periferia).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 43
TIA PORTAL – SCL

POKE BLK

A instrução POKE_BLK tem como função copiar uma área de dados para outra do mesmo tipo
(Input,Output,Bit memory, DB) de forma indireta.
No exemplo abaixo, é copiado valores de memórias a partir do byte 500 para o byte 600 em um
total de 100 bytes.

Watch Table Function Block

Nota
Em todas as instruções mostradas acima, PEEK e POKE, as constantes podem ser alteradas por
variáveis, fazendo com que fique tudo de forma indireta.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 44
TIA PORTAL – SCL

INSTRUÇÕES SCL

As principais instruções utilizadas na linguagem SCL já estão em destaque para uso na barra de
ferramentas, na parte superior do editor. Neste capitulo, iremos aprender e exercitar o uso das
mais utilizadas.

IF... (Executar condicionalmente)

A instrução "IF" ramifica o fluxo do programa dependendo de uma condição. A condição é uma
expressão com valor Booleano (VERDADEIRO ou FALSO). Expressões lógicas ou expressões
comparativas podem ser declaradas como condições.

Quando a instrução é executada, as expressões indicadas são avaliadas. Se o valor de uma


expressão for VERDADEIRO, a condição é cumprida; Se o valor é FALSO, não é cumprido.

• IF
Se a condição for satisfeita, as instruções programadas após o THEN são executadas. Se a
condição não for satisfeita, a execução do programa continua com a próxima instrução após o
END_IF.

IF <condição> THEN <instruções>


END_IF;

Exemplos

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 45
TIA PORTAL – SCL

• IF e ELSE
Se a condição for satisfeita, as instruções programadas após o THEN são executadas. Se a
condição não estiver satisfeita, as instruções programadas após o ELSE são executadas. Em
seguida, a execução do programa continua com a próxima instrução após o END_IF.

IF <condição> THEN <instruções1>


ELSE <instruções0>
END_IF;

Exemplos

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 46
TIA PORTAL – SCL

• IF, ELSIF e ELSE

Se a primeira condição (<Condição1>) estiver satisfeita, as instruções (<Instruções1>) após o


THEN são executadas. Após a execução das instruções, a execução do programa continua após
o END_IF.

Se a primeira condição não for satisfeita, a segunda condição (<Condição2>) é checada. Se a


segunda condição (<Condição2>) for cumprida, as instruções (<Instruções2>) após o THEN são
executadas. Após a execução das instruções, a execução do programa continua após o END_IF.

Se nenhuma das condições estiverem preenchidas, as instruções (<Instruções0>) após ELSE são
executadas, seguido da execução do programa após END_IF.

Você pode utilizar quantas combinações de ELSIF e THEN quiser na instrução IF. A programação
do uso do ELSE é opcional.

IF <Condição1> THEN <Instruções1>


ELSIF <Condição2> THEN <Instruções2>
ELSE <Instruções0>
END_IF;

Exemplo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 47
TIA PORTAL – SCL

CASE... (Comparação múltipla)

Enquanto o operador IF é utilizado para verificar apenas uma condição com poucos elementos,
o operador CASE é utilizado para condições que possuam muitos elementos.

A instrução CASE executa uma das várias sequências de instruções dependendo do valor de uma
expressão numérica.

O valor da expressão deve ser um número inteiro. Quando a instrução é executada, o valor da
expressão é comparado com os valores de várias constantes. Se o valor da expressão concordar
com o valor de uma constante, as instruções programadas diretamente após essa constante são
executadas. As constantes podem assumir os seguintes valores:

• Um número inteiro (por exemplo, 5)


• Um intervalo de inteiros (por exemplo, 15 ... 20)
• Uma enumeração consistindo em números inteiros e intervalos (por exemplo, 10, 11, 15 ...
20)

CASE <Tag> OF
<Constante1>: <Instruções1>;
< Constante2>: < Instruções2>;
< Constantex>: < InstruçõesX>; // X >= 3
ELSE < Instruções0>;
END_CASE;

Exemplo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 48
TIA PORTAL – SCL

FOR... (Laço de Repetição)

Repete um grupo de instruções em um número de vezes especificado.

A instrução "FOR" faz com que a execução repetida de um ciclo de programa atinja uma variável
de loop dentro de um intervalo de valores especificado.

Os loops de programas também podem ser agrupados. Dentro de um loop de programa, você
pode programar loops de programas adicionais com outras variáveis de loop.

A execução contínua atual de um loop de programa pode ser encerrada pela instrução "Concluir
condição de loop" (CONTINUE). A instrução "Sair do loop imediatamente" (EXIT) termina a
execução do loop inteiro.

Nota: Informações sobre o número de execuções e a tag de execução


O número de execuções não pode ser alterado enquanto o programa está sendo executado.
Por motivos de desempenho, a tag de execução deve ser declarada na interface de bloco na
seção "Temp". Além disso, a tag de execução não deve ser alterada enquanto o programa
está em execução. Caso contrário, a instrução pode retornar um resultado indefinido
dependendo da implementação.

Limites para instruções FOR:


Para programar instruções FOR de modo "seguro", observe as seguintes regras e limites:

FOR <TAG_contador> := <Valor_incial> TO <Valor_final> BY <Incremento> DO <Instruções>;


END_FOR;

Exemplo: As 31 linhas contidas no DataBlock serão zeradas:

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 49
TIA PORTAL – SCL

WHILE... (Executar se a condição for atendida)

A instrução "WHILE" faz com que um ciclo de programa seja repetidamente executado até que
a condição de implementação seja satisfeita. A condição é uma expressão com valor Booleano
(VERDADEIRO ou FALSO). Expressões lógicas ou expressões comparativas podem ser declaradas
como condições.

Quando a instrução é executada, as expressões indicadas são avaliadas. Se o valor de uma


expressão for VERDADEIRO, a condição é cumprida; Se o valor é FALSO, não é cumprido.
Os loops de programas também podem ser agrupados. Dentro de um loop de programa, você
pode programar loops de programas adicionais com outras variáveis de loop.
A execução contínua atual de um loop de programa pode ser encerrada pela instrução "Concluir
condição de loop" (CONTINUE). A instrução "Sair do loop imediatamente" (EXIT) termina a
execução do loop inteiro.

Você pode declarar as instruções da seguinte forma:

WHILE <Condição> DO <Instruções>;


END_WHILE;

Exemplo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 50
TIA PORTAL – SCL

INSTRUÇÕES STEP 7 EM SCL

Neste capitulo iremos utilizar instruções Step 7 em SCL, como detecção de bordas,
temporizadores, contadores, etc. A maioria das instruções necessita de memórias locais (DB
Instance).

Operações Binárias

Com as instruções R_TRIG e F_TRIG é possível realizar a detecção da borda de sinal digital,
positivo ou negativo, respectivamente.

R_TRIG

Com a instrução "R_TRIG", você pode detectar uma mudança de estado de "0" para "1" na
entrada CLK. A instrução compara o valor atual na entrada CLK com o estado da consulta
anterior (bit de memória de borda) que é salvo na instância especificada. Se a instrução detecta
uma mudança de estado na entrada CLK de "0" para "1", uma borda de sinal positivo é gerada
na saída Q, isto é, a saída tem o valor TRUE ou "1" para exatamente um ciclo.
Em todos os outros casos, o estado do sinal na saída da instrução é "0".

Exemplo: Ao acionar a Entrada_0 (I10.0) será detectado a mudança de estado da entrada e


executado a soma no tag VALOR1 apenas uma vez.

É criado um DB Instance para o


R_TRIGGER. Se o bloco for
parametrizado será fixo para todas
as chamadas.

As variáveis necessárias para o


funcionamento do R_TRIGGER
serão criadas como STATIC dentro
do DB instanciado pelo FB. Melhor
forma de uso para blocos
parametrizados.

Um parâmetro INOUT do FB com o


tipo de dados R_TRIG é criado. O
R_TRIG deverá ser passado
juntamente com a chamada do FB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 51
TIA PORTAL – SCL

F_TRIG

A instrução F_TRIG muda em relação a R_TRIG apenas que a saída Q é acionada quando o CLK
detecta a mudança de estado de 1 para 0.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 52
TIA PORTAL – SCL

Temporizadores

Os mesmos temporizadores IEC utilizados nas linguagens LAD e FBD também podem ser
acessados através da linguagem SCL.

Chamando um temporizador

Ao chamar um temporizador IEC (TP, TON, TOF ou TONR) sempre será questionado a forma que
o editor irá estanciar as variáveis necessárias para o funcionamento dos temporizadores. Três
opções de criação das variáveis estarão disponíveis.

É criado um DB Instance para o


temporizador. Se o bloco for
parametrizado este temporizador
será fixo para todas as chamadas.

As variáveis necessárias para o


funcionamento do temporizador
serão criadas como STATIC dentro
do DB instanciado pelo FB. Melhor
forma de uso para blocos
parametrizados.

Um parâmetro INOUT do FB com o


tipo de dados IEC_TIMER é criado.
O temporizador deverá ser
passado juntamente com a
chamada do FB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 53
TIA PORTAL – SCL

IN: sinal/condição para início de contagem do tempo


PT: Preset, tempo que será contado
Q: Após o termino da contagem (TON), a saída será acionada
ET: Tempo atual da contagem

Nota:
As instruções dos temporizadores podem ser utilizadas em conjunto com as demais instruções
SCL, como por exemplo dentro de um elemento IF.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 54
TIA PORTAL – SCL

PRESET_TIMER

Com a instrução PRESET_TIMER você pode alterar o valor de PRESET dos temporizadores IEC.

O exemplo abaixo, mostra a alteração do PRESET em função de um valor de memória


comparado através do elemento CASE.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 55
TIA PORTAL – SCL

Contadores

Os mesmos contadores IEC utilizados nas linguagens LAD e FBD também podem ser acessados
através da linguagem SCL.

Chamando um contador

Ao chamar um contador IEC (CTU, CTD, ou CTUD) sempre será questionado a forma que o editor
irá estanciar as variáveis necessárias para o funcionamento dos contadores. Três opções de
criação das variáveis estarão disponíveis.

É criado um DB Instance para o


contador. Se o bloco for
parametrizado este contador será
fixo para todas as chamadas.

As variáveis necessárias para o


funcionamento do contador serão
criadas como STATIC dentro do DB
instanciado pelo FB. Melhor forma
de uso para blocos
parametrizados.

Um parâmetro INOUT do FB com o


tipo de dados IEC_COUNTER é
criado. O contador deverá ser
passado juntamente com a
chamada do FB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 56
TIA PORTAL – SCL

CU: sinal/condição para início de contagem


R: sinal/condição para reset do contador (0)
PV: Preset, valor que quando atingido ira acionar a saída Q
Q: Após o termino da contagem (PV), a saída será acionada
CV: Valor atual da contagem

Nota:
As instruções dos contadores podem ser utilizadas em conjunto com as demais instruções SCL,
como por exemplo dentro de um elemento IF.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 57
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 58
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 59
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – LINGUAGEM SCL / 60

Você também pode gostar