Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual de
Programação
Ladder
WINTS
Rev. 29092010
Manual Programação Ladder WinTS
Índice
1. INTRODUÇÃO ...................................................................................................................................................... 4
10 MONITORADOR ................................................................................................................................................. 35
2
Manual Programação Ladder WinTS
3
Manual Programação Ladder WinTS
1. Introdução
Este manual tem por finalidade introduzir ao leitor a linguagem de programação Ladder, utilizando como
suporte o software Windows™ Turbo Solaris (WinTS). Serão apresentados os comandos, funções de bloco e
demais funcionalidades utilizadas para programação. Também será apresentada ao leitor a ferramenta de
geração de telas para IHM (Interface Homem Máquina). A versão atual do software de geração de telas
compreende toda a linha de IHM da Solaris Automation que possuem display de LCD. Neste grupo não se
considerão as IHM’s gráficas das séries DSP9G e superiores (DSP7, DSP84 e demais).
A leitura deste documento possibilita ao usuário a familiarização com a ferramenta de programação Ladder e
geração de telas para IHM de LCD da Solaris Automation.
No primeiro contexto, todos os comandos são executados por linhas de programação, com uma linguagem
que se assemelha ao C ou Basic. O processo como um todo é descrito em máquinas de estados, com
eventos específicos que fazem a comutação entre estados. As declarações, atribuições e loops de controle
são escritos em linhas de comando através de palavras chave. É um dialeto escrito de forma lógica. Neste
modo, não existe árvore de projetos.
No segundo contexto existe uma integração visual de programação. É uma interface de desenvolvimento de
software, e serve para facilitar a programação. Através da árvore de projeto o usuário tem acesso as
declarações e definições do processo. Construindo um projeto, o programador tem a integração total entre a
programação do processo em Ladder, chamadas de subrotinas, construção de telas para IHM e módulos de
programação descritiva podem ser incluídos. Neste este caso, somente um módulo pode controlar as telas de
IHM, ou seja, ou as telas são máquinas em linguagem descritiva ou são montadas pelo gerador de telas.
Maiores detalhes serão vistos em capítulo específico.
4
Manual Programação Ladder WinTS
2. Programação Ladder
A linguagem Ladder, diagrama Ladder ou diagrama de escada é um auxílio gráfico para programação de
Controladores Lógicos Programáveis (CLPs) no qual as funções lógicas são representadas através de
contatos e bobinas, de modo análogo a um esquema elétrico, com os contatos dos sensores e atuadores.
O surgimento da linguagem está ligado com a evolução dos painéis elétricos de contatos para sistemas
eletrônicos programáveis. Um diagrama Ladder se assemelha a um diagrama esquemático elétrico, porém a
programação possibilita o uso de funções e blocos de comandos além de simples contatos e acionamentos.
A linguagem Ladder está entre as cinco linguagens de programação de CLPs definidas pela IEC 61131-3:
• FBD (Function Block Diagram)
• LD (Ladder Diagram)
• ST (Structured Text)
• IL (Instruciton List)
• SFC (Sequential Function Chart)
É importante ressaltar que este manual de programação não tem finalidade ensinar ao leitor conceitos
básicos de programação, ele apenas apresenta a ferramenta, suas funcionalidades e alguns exemplos. Para
maiores detalhes do modo de execução e lógica de programação é necessário um estudo aprofundado na
teoria de programação Ladder. Diversos sites da internet e livros acadêmicos tratam sobre o assunto. Se o
leitor precisar de suporte, poderá entrar em contato com a Solaris Automation a partir do e-mail
sac@solarisautomation.com ou fone (51) 3337.8599.
5
Manual Programação Ladder WinTS
Um novo projeto pode ser criado a partir do botão NEW inserido na barra de ferramentas do programa WinTs.
O atalho CTRL+N também pode ser utilizado para a mesma finalidade.
A partir dessa janela escolha a opção TS APPLICATION e clique em NEXT. A seguir escolha um nome
apropriado para o projeto (Ex: Project 1) e clique em CREATE.
Caso já exista um projeto de mesmo nome naquele diretório surgirá uma mensagem em vermelho, como a da
figura abaixo, dizendo que já existe um diretório com o mesmo nome. Até que seja alterado o nome do
projeto a mensagem continuará aparecendo e o botão CREATE continuará desabilitado.
PASSO 2
PASSO 1
A opção “TS Source File” se refere à criação de um arquivo Turbo Solaris puramente descritivo. Não há,
neste modo, possibilidade de programação Ladder, estrutura de definições ou montagem de telas com o
gerador de telas.
6
Manual Programação Ladder WinTS
A partir da definição de um projeto, uma nova janela de opções é habilitada. Nessa janela está a estrutura de
declarações do projeto. Nessa estão agrupadas todas as declarações que usaremos durante o projeto.
Referem-se às entradas e saídas presentes no CLP, assim como variáveis, constantes utilizadas na
programação. Também é possível definir os elementos visíveis numa rede MODBUS ASCII (constituída entre
2 ou mais CLP’s com a arquitetura Mestre-Escravo) e também, caso exista, as configurações globais da IHM
escolhida.
Item Definição
7
Manual Programação Ladder WinTS
Os elementos de projeto estão descritos na tabela 1 e são acessados através de um duplo clique sobre o
mesmo, na árvore de projetos. A imagem abaixo é a janela de definição de variáveis.
Duplo click
É importante que todos os elementos utilizados no projeto sejam declarados. Preencher o campo
“Description” não altera o funcionamento do programa, porém ajuda a clareza e manutenção futura. Esta
declaração é recomendável e serve como documentação do projeto.
Atenção: procure sempre dar nomes aos elementos que fazem referência ao seu uso. Por exemplo:
sensor1, motor2,..., contador2. Evite nomes como “A”, “var1”, “word2” e etc.
Os nomes das variáveis devem começar por um caracter do alfabeto, não devem constar espaços ou
caracteres diferentes ao alfabeto e algarismos. Duas variáveis não podem possuir o mesmo nome.
Depois de declarada, a variável, ou outro elemento qualquer, estará disponível para utilização no diagrama
Ladder e também no gerador de telas e monitorador. A seguir faremos um exemplo prático da declaração e
uso, a fim de firmar a clareza da explicação.
Os elementos de rede, ou “Protocol Registers”, são entidades públicas da rede MODBUS. São elementos, já
declarados, que o programador deseja tornar visível para o mestre da rede MODBUS.
Um “Protocol Register” é apenas um endereço que indica para a rede onde está o elemento desejado, serve
como um apontador, não é o elemento, é apenas seu local (endereço). Processos dotados de sistema
supervisório irão utilizar os “protocol registers” para ler o estado da máquina e eventualmente atuar sobre ela.
O programador apenas precisa saber quais são os elementos que deseja tornar público. A definição dos
“protocol registers” é, então, feita depois de o programa estar pronto, ou praticamente! É apenas uma questão
de escolher, dentre os elementos utilizados no programa, quais serão importantes para serem visualizados na
rede.
8
Manual Programação Ladder WinTS
Importante: São elementos sempre públicos (não precisam ser definidos como protocol register) os
seguintes: entradas digitais, saídas digitais e entradas de temperatura.
Ou seja, para o caso de uma planta com controle de temperatura, não é necessário declarar como “protocol
register” as entradas de temperatura da placa SAS (todas as entradas analógicas menores do que 64), por
exemplo, para que estas possam ser analisadas por um sistema de supervisão, por exemplo. Ainda, este fato
não exclui os citados da necessidade de declaração na árvore. Por exemplo, uma entrada de temperatura
não precisa estar definida como “protocol register” para ser “vista” por uma rede de supervisórios, porém
necessariamente precisa estar declarada como “Analogic Input” da arvore de projetos para ser corretamente
utilizada pelo programa executivo.
As entradas analógicas seguem a regra de definição dos módulos analógicos da Solaris Automation. A placa
SAS foi desenvolvida especialmente para leitura de temperatura com termopares do tipo J, K, S, T e
termistores do tipo PT-100. São as entradas 1 a 64 (entradas de temperatura). Já a placa SFA foi
desenvolvida para leitura da posição por réguas potenciométricas ou sensores com sinais de 0 a 10 volts ou 4
a 20mA. São as entradas 65 a 128. Cuidado com estas declarações e também com a utilização, é
importante ter sempre em mente a diferença de numeração entre as entradas analógicas.
Os módulos de entrada analógicos e entradas e saídas digitais da Solaris são organizadas em conjunto de 8
ou 16 pontos. Via de regra, módulos analógicos possuem 8 entradas e módulos digitais 16 entradas ou 8 e 16
saídas. O sistema (Kernel) precisa estar configurado pela ordem em que se encontram os módulos, ou seja,
precisa diferenciar entre a entrada 1 (primeira entrada da primeira placa) e entrada 17 (primeira entrada da
segunda placa). Para isto, existe um endereço que é formado por 4 bits. Este endereço é configurado via
hardware, diretamente na placa, por chave tipo dip.
9
Manual Programação Ladder WinTS
10
Manual Programação Ladder WinTS
São disponibilizadas duas barras de ferramentas importantes para a programação Ladder e mais a janela de
declarações vista anteriormente:
Podemos observar a linha, chamada RUNG, onde são postos os contatos e funções formando um diagrama
que representará eletricamente a programação de uma máquina, ou processo. O RUNG é a representação
simbólica de um fio. O lado esquerdo representa o +VCC, e o direito (suprimido no Ladder Solaris) a
referência. Um RUNG sem presença de elementos não faz sentido, pois é a representação de um curto-
circuito.
Figura 8: RUNG Ladder. Esquerda representa o +VCC, o direito representa o GND. Os elementos a serem inseridos formam o
circuito, e seu caminho lógico é a corrente elétrica, por isso, um RUNG vazio não faz sentido.
Ao contrário de outras soluções disponíveis no mercado, tal iniciativa trás as seguintes vantagens ao
programador:
- não existe limite do número de relações lógicas que podem ser inseridas numa linha (RUNG) do programa;
- a execução do programa faz-se de RUNG a RUNG (na horizontal), e não pela varredura de colunas
conforme solução adotada por outros fabricantes;
- não existe o conceito de matriz de programação, onde parte do programa deve estar estruturada em células
limitadas em determinados números de linhas e colunas;
- para as entradas e saídas digitais, adota-se o conceito de memória imagem. Isto é, os estados lógicos das
entradas e saida digitais é lido no inicio de um ciclo de execução e escrito (estado dos coils) no final do ciclo
de execução;
- para as entradas e saidas analógicas, permite-se dois tipos de operação para leitura ou escrita. Ou adota-se
o valor disponível na memória imagem, ou por parametrização do usuário no bloco de função, faz-se a leitura
11
Manual Programação Ladder WinTS
e escrita imediata (tempo real) na execução da lógica. Esta segunda opção é recomendável para acesso de
eventos analógicos rápidos, como a leitura da posição por uma régua linear potenciométrica;
- numa mesma aplicação é possivel optarmos pela utilização da linguagem Ladder ou descritiva. Para isto
basta inserir na árvore de projeto esta definição. Não existe forma de chamada de um programa em Ladder
para uma parte em linguagem descritiva e vice-versa (na forma de subrotinas ou jumpers), porém as duas
compartilham as mesmas variáveis anteriormente declaradas.
Considerando que a aplicação é compilada e não interpretada, o WinTS não possui variáveis Booleanas
(compostas por apenas um bit). Desta forma, o usuário deve utilizar posições de Variáveis de 16 bits para
implementar lógicas Booleanas, a partir das funções STORE_BIT e BIT.
Ferramenta Definição
Insert COIL Function Insere uma função de COIL no fim do RUNG. É uma ação.
Insert Jump Insere um pulo que deve ser feito até um label.
12
Manual Programação Ladder WinTS
Atalho para OUT_UP Insere uma função de coil de detecção de borda de subida.
Esta ferramenta adiciona um Contato ao diagrama. Ela verifica o valor de um elemento booleano e habilita ou
bloqueia o RUNG na qual ele pertence. Análogo a uma chave em um circuito elétrico, tem a funcionalidade de
verificar o estado ON/OFF de um elemento de programação. É interessante notar que podemos colocar como
contato, uma saída digital. De fato, estaríamos nesse caso realizando a leitura de uma saída digital. Seria
verificado se a saída está ligada ou desligada.
13
Manual Programação Ladder WinTS
O comando contato possui, além do argumento de identificação (NAME), o argumento NEGATED. Este indica
o tipo de contato que será usado. Assim como um sensor possui natureza Normalmente Fechado (NF) ou
Normalmente Aberto (NA), NEGATED indica se a lógica de leitura é direta ou inversa. Caso este argumento
esteja configurado para TRUE, o contato é lido com lógica inversa, ou seja, se o elemento estiver com valor
lógico 1 a resposta será o valor lógico 0, e vice-versa. A imagem abaixo mostra um modo de configuração de
argumento.
Contatos em paralelos são definidos pelo seguinte procedimento: selecione a posição onde deseja-se inserir
um contato em paralelo. Selecione em seguida contato tipo (2) da Figura 6. Defina o argumento e a lógica
(NA ou NF).
As funções contato são blocos de função que realizam testes entre argumentos e/ou verificação de
operandos. A saída deste tipo de bloco é booleano. Libera ou bloqueia o RUNG no qual está presente.
Funciona de modo análogo a uma chave em um circuito elétrico, porém ao invés de apenas testar um
contato, pode fazer a análise de mais de um argumento e operar sob um algoritmo.
14
Manual Programação Ladder WinTS
Todas as funções acima são condicionais booleanos. Apresentam saída 0 ou 1 a depender da entrada e a
relação exercida com os argumentos. Abaixo é apresentado um exemplo de visualização das funções
contato.
O exemplo abaixo mostra uma saída digital (dout1) que inicia em nível lógico 1, acionada pelo COIL com o
atributo assing configurado para SET. O bloco START_RUN faz com que o rung 1 seja varrido somente uma
vez (no primeiro ciclo de varredura). O rung 2 faz duas comparações quaisquer, e se ambas forem satisfeitas,
dout1 é desligado pela bobina tipo RESET.
15
Manual Programação Ladder WinTS
Atenção: a boa prática de programação em linguagem Ladder orienta para que uma saída (coil) do tipo
Normal ou Negada de ponto digital, analógico ou varíavel, somente seja declarada uma vez no
programa. Isto porque, em modo de execução, todos os RUNGs são normalmente executados. Desta
forma, se uma saida (coil) para um determinado de ponto for definida mais de uma vez, apenas o estado
do último RUNG será considerado.
A função coil é assim chamada por executar uma ação, e não um teste, como o caso das funções contato.
Em um circuito elétrico, pode ser comparado a um amplificador somador, por exemplo, que tem a função de
executar uma soma entre dois elementos. Pelo mesmo exemplo, tem-se o bloco ADD de Ladder que realiza a
soma entre 2 elementos. A figura abaixo mostra o quadro de escolhas de função. Este quadro aparece como
opção de seleção para o usuário no momento da inserção de uma função coil pelo ícone Insert Funcion Coil
ou pela tecla de atalho 6.
16
Manual Programação Ladder WinTS
17
Manual Programação Ladder WinTS
A quantidade, tipo e opções dos argumentos são variados e dependem de qual o bloco foi escolhido. A
aparência da janela de configurações é como a apresentada nas figuras abaixo.
18
Manual Programação Ladder WinTS
Função Definição
19
Manual Programação Ladder WinTS
20
Manual Programação Ladder WinTS
Função: atribui valor para uma de duas variáveis. Para a primeira se o resultado
do RANG for 1 ou para a segunda se o resultado for 0.
MUX2 SOURCE: Dado de origem.
DEST_OFF: Variável de destino quando RUNG estiver em nivel lógico 0.
DEST_ON: Variável de destino quando RUNG estiver em nível lógico 1.
Função: Faz o complemento de todos os bits de uma variável de 16 bits.
NOT DEST: Variável de destino da operação binária NOT.
SOURCE: Elementos a ser complementado. Todos os bits são invertidos.
Função: Faz a operação lógica OR entre dois dados de 16 bits e atribui o
resultado a uma variável de 16 bits.
OR DEST: Variável de destino da operação binária OR.
OP1: Primeiro operando.
OP2: Segundo operando.
Função: Função sensível a borda de descida. Aciona se o RUNG for para zero.
OUT_DOWN
Q: Elemento que se deseja monitorar a borda de descida.
Função: realiza escrita imediata a uma saida digital.
OUT_I DEST: Relé de saída. Saída digital a ser acionada.
OPERATION: Tipo de saída digital.
Função: Função sensível a borda de subida. Aciona se o RUNG for para 1.
OUT_UP
Q: Elemento que se deseja monitorar a borda de subida.
Função: Realiza escrita indexada a um ponto de saída digital.
OUT_X INDEX: Índice da saída digital.
OPERATION: Tipo de saída digital.
Função: Comandos de controle de PID.
PID
COMMAND: Opções de operação do PID. STOP, RUN e AUTOTUNE
Função: Configura módulo PID.
CHANNEL: Número de canal de PID.
PV: Local de onde é lido o sinal do processo.
PID_PRESET
SP: Variável que contém o SetPoint programado do processo.
CV: Sinal de saída. Variável de controle do processo.
TSZ: Tempo de amostragem.
21
Manual Programação Ladder WinTS
22
Manual Programação Ladder WinTS
Função: Atribui a uma variável o valor dos bits deslocados para a diretia de uma
outra variável.
DEST: Recebe o elemento SOURCE após operação de SHIFT LEFT
SHR
SOURCE: Elemento no qual se deseja realizar operação de SHIFT LEFT
SHIFT: Quantidade de bits a deslocar para esquerda (divide SOURCE por
potência de 2)
Função: Liga ou desliga um determinado bit de uma variável de 16 bits.
STORE_BIT DEST: Variável no qual se deseja realizar operação
BIT_NO: Numero do bit (0 a 15) que se deseja ligar/desligar
Função: Subtrai dois dados de 16 bits e atribui o resultado a uma variável de 16
bits.
SUB DEST: Recebe o valor da operação de subtração
OP1: Primeiro operador da subtração (esquerda do sinal)
OP2: Segundo operador da subtração (direita do sinal)
Função: Acessa uma variável interna do sistema.
SYSTM_VAR_GET DEST: Recebe o valor de uma variável interna do sistema.
SYSTEM_VAR: Relação de variáveis do sistema.
Função: Escreve numa variável interna do sistema.
SYSTM_VAR_PUT SOURCE: Elemento SOURCE do valor da variável do sistema a atualizar
SYSTEM_VAR: Relação de variáveis do sistema.
Função: Calcula a diferença de tempo com timer do sistema.
DEST: Variável que recebe o valor da subtração de tempo.
SYSTM_VAR_SUB SOURCE: último tempo registrado. Primeiro elemento (direita do sinal)
SYSTEM_VAR: Tempo atual. Segundo elemento (esquerda do sinal de
subtração)
Função: Copia conteúdo de dados entre tabelas.
TAB_DEST: Numero identificador da tabela de destino da cópia
T_COPY TAB_SOURCE: Numero identificador da tabela de origem (já declarada)
START_DEST: Em qual posição começa a cópia
START_SOURCE: A partir de qual posição inicia a cópia
Função: Copia para variáveis os valores de dados de uma tabela.
TAB_NO: Numero identificador da tabela de origem (já declarada)
DEST_1: Variável de destino do primeiro valor da tabela
DEST_2: Variável de destino do segundo valor da tabela
DEST_3: Variável de destino do terceiro valor da tabela
DEST_4: Variável de destino do quarto valor da tabela
DEST_5: Variável de destino do quinto valor da tabela
DEST_6: Variável de destino do sexto valor da tabela
DEST_7: Variável de destino do sétimo valor da tabela
T_COPY_W
DEST_8: Variável de destino do oitavo valor da tabela
DEST_9: Variável de destino do nono valor da tabela
DEST_10: Variável de destino do décimo valor da tabela
DEST_11: Variável de destino do décimo primeiro valor da tabela
DEST_12: Variável de destino do décimo segundo valor da tabela
DEST_13: Variável de destino do décimo terceiro valor da tabela
DEST_14: Variável de destino do décimo quarto valor da tabela
DEST_15: Variável de destino do décimo quinto valor da tabela
DEST_16: Variável de destino do décimo sexto valor da tabela
23
Manual Programação Ladder WinTS
24
Manual Programação Ladder WinTS
25
Manual Programação Ladder WinTS
A sub-rotina é um diagrama Ladder chamado eventualmente pela rotina principal, de acordo com a
necessidade do programador. No momento de atendimento da sub-rotina, o diagrama principal (chamado
Main), pára sua execução até que a sub-rotina encontre o comando “return”, e retorna assim ao ponto de
onde havia parado.
É um recurso utilizado pelo programador quando existem procedimentos repetitivos num mesmo ciclo de
varredura. Diminui o tamanho do código principal e facilita à depuração Um exemplo é o caso de um
processo que necessite ler e manipular várias vezes, num mesmo ciclo de máquina (varredura), a pressão de
uma linha hidráulica. O programa principal apenas chama a sub-rotina que lê e manipula a pressão, então se
utiliza dos resultados dos cálculos para prosseguir com a atuação necessária.
Ë recomendável iniciar uma aplicação com o uso de uma sub-rotina controlada por uma função contato,
denominada de “START_RUN” para inicializar variáveis.
Quando uma variável é declarada, ela recebe um valor aleatório atribuído pelo sistema, até que seja
carregado por algum dado do usuário, ou como resultado de calculo e aquisições de sinal. Deste modo
podem ocorrer diversos erros no inicio do programa, pois o programador não sabe quais são os valores
iniciais das variáveis. Então podemos logo imaginar que se um cálculo de multiplicação, por exemplo, esteja
previsto no diagrama, é bem possível que ocorrerá erro de execução por “overflow”. De modo geral estes
erros são difíceis de detectar, visto que a lógica pode estar certa, porém o dado inserido é inválido e cria uma
situação de instabilidade, fazendo inclusive o processo parar.
Visto a importância da inicialização das variáveis, é extremamente recomendável que o programador crie
uma sub-rotina específica para efetuar este procedimento – sugere-se o nome Start_Run. Também é possível
criar uma rotina em linguagem descritiva e adicionar no projeto através da árvore de projeto. Veremos este
procedimento adiante. Porém muito cuidado! Pois os primeiros estados do diagrama Ladder irão executar
primeiro do que os primeiros estados da programação descritiva, então caso as inicializações (quando feitas
em descritiva TS) estiverem em estados após o STATE 0, é possível que o mesmo erro torne a ocorrer!
Então é recomendável, para total segurança e certeza, que as inicializações sejam feitas através de uma sub-
rotina Ladder.
A opção de criação de uma sub-rotina Ladder somente é disponibilizada após a criação de uma rotina
principal, por razões óbvias. O caminho de criação é o mesmo para ambas. Clicamos com o botão direito a
árvore de projetos, aba Project. Aparecerá a opção “NEW LADDER SUBROUTINE FILE”, assim como mostra
a figura a seguir.
26
Manual Programação Ladder WinTS
O que se segue é a inicialização de um novo diagrama Ladder, que inicia somente com um RUNG. É
necessário adicionar um retorno através do comando “Insert Ladder Subroutine Return” ( - Tecla de
atalho 0). Este retorno pode estar condicionado a um teste ou leitura, porém não pode estar em um rung com
mais de um elemento de saída, ou seja, deve ser o único Coil do rung.
Para chamar uma sub-rotina através do diagrama principal, usa-se o comando “Insert Ladder Subroutine Call”
( - Tecla de atalho 9). Novamente, deve ser o único Coil do rung. A imagem abaixo mostra a janela no
qual se encontram as sub-rotinas disponíveis deste projeto. Caso ainda não existam sub-rotinas no projeto,
uma mensagem de erro aparecerá na tela.
27
Manual Programação Ladder WinTS
Quando a primeira tela é adicionada, precisamos escolher qual a IHM será utilizada no projeto. Na janela que
segue, o usuário pode escolher, através de “IHM Model:”, qual o modelo escolhido. Os itens da tabela que
são amostrados em cinza dizem respeito a atributos e características globais da IHM. Já os pretos, são
opções de configuração que o usuário tem pode modificar de acordo com sua necessidade. Mais detalhes
serão vistos a seguir.
28
Manual Programação Ladder WinTS
Duplo click
Configuração Definição
PQ_GO
Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
TEMPERATURE_GO
Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
SETTINGS_GO Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
POSITION_GO Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
ALARM_GO
Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
SELECT_GO Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
CLOCK_GO Tecla de atalho global. Ao pressionar esta tecla, programa realiza salto
incondicional para tela configurada pelo programador.
29
Manual Programação Ladder WinTS
30
Manual Programação Ladder WinTS
F1_GO Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
F2_GO Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
F3_GO Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
F4_GO Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
F5_GO Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
M1_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
M2_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T0_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T1_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T2_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T3_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T4_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T5_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T6_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T7_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
T8_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
31
Manual Programação Ladder WinTS
T9_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
LEFT_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
RIGHT_GO
Tecla de atalho local. A partir desta tela, vai para tela configurada pelo
programador. Só vale para tela em foco.
Campo Definição
String List Cria lista de Strings controlada conforme a alteração de uma variável
Barra de progresso que aumenta ou diminui conforme o valor de uma
Progress Bar variável.
Tabela 9: Descrição dos campos de programação de telas
32
Manual Programação Ladder WinTS
Preenchimento
Campo Atributo obrigatório
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
Write String
($WSRT) SOURCE: Texto a escrever. Sim
FHASHING: Texto piscante ou estático. Sim
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
SOURCE: Variável a modificar. Sim
Read Variable PIC: Modo de amostragem do valor da variável (ver PICTURE
Sim
($RVAR) no glossário)
MIN: Valor mínimo de entrada Não
MAX: Valor máximo de entrada Não
SHORTCUT: Atalho de teclado para acessar o campo. Sim
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
SOURCE: Variável utilizada para guardar senha digitada. Sim
PIC: Modo de amostragem do password (ver PICTURE no
Sim
glossário)
SHORTCUT: Atalho de teclado para acessar o campo. Sim
Não é
Password
necessário
PASS_1 - PASS_10: Senhas de 1 a 10
preencher
todos
Não é
PASS_1_GO – PASS_10_GO: Telas relativas às senhas de 1 necessário
a 10 preencher
todos
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
Write Variable SOURCE: Variável a mostrar Sim
($WVAR)
PIC: Modo de amostragem do valor da variável (ver PICTURE
Sim
no glossário)
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
SOURCE: Variável de controle da lista. Quando a variável tiver
Sim
valor 0, a string de TEXT_0 será mostrado, e assim por diante.
String List
Não é
necessário
TEXT_0 – TEXT_16: Lista de strings.
preencher
todos
LINE: Linha. Posicionamento inicial. Sim
COLUMN: Coluna. Posicionamento inicial. Sim
SOURCE: Variável que controla o progresso da barra Sim
Progress Bar MIN: Limite mínimo da variável Não
MAX: Limite máximo da variável Sim
LENGHT: Tamanho da barra, em colunas do display Sim
STYLE: Tipo da barra. (ponteiro ou barra horizontal) Sim
Tabela 10: Descrição dos atributos de campo
33
Manual Programação Ladder WinTS
Para copiar, basta segurar a tecla CTRL e movimentar o mouse na direção desejada. Neste momento um
novo elemento será criado. Então será necessário configurar os atributos desejados como se estivesse
adicionando um novo elemento, sem copiar.
Para movimentar, basta segurar a tecla SHIFT e movimentar o mouse para a posição desejada. Outro modo
de movimentação pode ser executado segurando a tecla SHIFT e pressionando as setas do teclado no
sentido desejado.
34
Manual Programação Ladder WinTS
10 Monitorador
O Monitorador é uma facilidade para depuração de Projetos. O monitoramento é diferente de uma simulação,
uma vez que os dados amostrados serão os dados reais, e não apenas uma simulação do processo. Isto
porque as variáveis observadas são captadas diretamente do CLP, via comunicação MODBUS. É importante
ressaltar ser necessário que o módulo de CPU possua comunicação RS-232, dado que o processo de
monitoração é executado on-line, com o CLP conectado ao PC, via cabo SC-8 (o mesmo utilizado para
download em flash).
Todos os elementos a serem monitorados devem estar declarados na árvore de projetos! Seguem a
regra de comunicação MODBUS; Entradas analógicas rápidas e variáveis precisam ser previamente
declaradas como Protocol Registers na arvore de projetos.
Para iniciar o monitorador é importante seguir alguns passos de configuração do PC, assim como a adição do
bloco de MODBUS_PRESET e MODBUS no diagrama LADDER ou então através de linguagem descritiva em
um arquivo TS adicionado ao projeto (VER item 4 e 9 para adição de arquivos TS ao projeto). A configuração
do computador deve estar de acordo com a configuração do MODBUS para que possam se comunicar na
mesma taxa de comunicação e porta de acesso.
35
Manual Programação Ladder WinTS
Caso você não tenha o conhecimento de qual a porta COM está ativa em seu computador vá até o aplicativo “Sistema”,
dentro do “Painel de Controle” do Windows™. Dentro deste aplicativo localize o “Gerenciador de Dispositivos” e
procure por “Portas” (é um dos itens da árvore de dispositivos). Em “Portas” clique no +. Entre parêntesis estará a porta de
comunicação COM instalada em seu computador. Em laptops que utilizam conversor USB é muito comum que a porta
COM seja um valor acima de 4. A descrição é algo do tipo: “USB-to-Serial Comm Port (COM5)”.
Porta de comunicação do PC
Número do CLP
Taxa de comunicação
As configurações no CLP devem seguir as do computador, e são configuradas através do diagrama LADDER
ou então por um pequeno trecho de programa TS. Ambos devem estar posicionados no início do programa,
para que tão logo inicie a execução, a comunicação seja configurada.
Abaixo um exemplo de comunicação MODBUS configurada através do diagrama LADDER.
OBS: Note que a configuração do bloco (fig. 24) deve ser idêntica a configuração da aba Monitor. O
parâmetro CHANNEL refere-se ao tipo de canal de comunicação do CLP.
Importante: São elementos sempre públicos (não precisam ser definidos como protocol register) os
seguintes: entradas digitais, saídas digitais e entradas de temperatura.
36
Manual Programação Ladder WinTS
OBS: As saídas analógicas não são elementos de comunicação MODBUS, então elas são monitoradas
através das variáveis que fixam seu valor.
OBS2: Não é possível por em observação mais do que 8 (oito) elementos de temperatura ou mais do que 8
(oito) elementos protocol register. Fique atento, se o botão de OK ficar desabilitado é porque foi excedido o
numero máximo de elementos observáveis, aparecerá uma mensagem em branco no local da preta alertando
qual o elemento excedeu. Desmarcando os excessos o botão de OK torna a ficar habilitado.
Ao pressionar OK, uma nova aba aparece na barra de Projetos. Ela se chama “Monitor” e pode ser observada
na figura abaixo.
Área de visualização
das variáveis
37
Manual Programação Ladder WinTS
Deve-se considerar sempre a necessidade de manter este arquivo atualizado em caso de alteração do
programa. Uma boa prática é registrar o número de revisão do programa, data da revisão e nome do
projetista.
38
Manual Programação Ladder WinTS
Iniciamos abrindo o WinTs e criamos um novo projeto pelo atalho “CTRL+N” ou diretamente pelo ícone
na barra de ferramentas. Selecionamos “TS Application”, depois “Next”, dá-se um nome e apertamos
“Create”. Clicando com o botão direito na janela de projetos, selecionamos “New Ladder Main File” para
iniciarmos um novo diagrama Ladder principal. O próximo passo é declarar as variáveis e a saída digital
escolhida para a atuação do PWM. A imagem abaixo mostras as variáveis declaradas para este exemplo.
Foi declarada também uma saída digital, e chamada de “Saida1”. Após as definições, foram adicionados 2
rungs, cada um contendo um timer e uma leitura de contato. Os contatos são as saídas dos timers, fazem o
controle de parar e iniciar a contagem. Temos uma configuração de “Oscilador Astável”. Os argumentos dos
timers são mostrados nas figuras que seguem.
39
Manual Programação Ladder WinTS
Figura 30: Configuração do timer do rung 1 Figura 31: Configuração do timer do rung 2
A imagem abaixo mostra a montagem completa. Os contatos acima referidos são “Saida1”, que controla o
funcionamento do timer 2 e “OutBaixo”, que controla o funcionamento do timer 1. Enquanto um deles está
contando, ou outro permanece parado, e vice-versa.
O ultimo passo é fazer o download do programa executivo, já compilado, para o CLP. Para isso usamos a
tecla de atalho F8 ou o ícone na barra de ferramentas. As próximas janelas são auto-explicativas através
das mensagens. Em primeiro, haverá a tentativa de abertura de porta do PC. Caso a porta não exista,
aparecerá a mensagem “Unable to connect!! Perhaps COMXX is busy or not valid” (XX é o numero da porta
em questão, em tempo de execução aparecerá a sua porta COM). Se o windows conseguir abrir a porta serial
do PC, a tela da imagem abaixo aparecerá. Neste momento está acontecendo uma tentativa de conexão do
PC com o CLP, e também o programa está procurando a maior velocidade de conexão possível de seu CLP!
É necessário que o CLP esteja conectado ao computador através do cabo “SC8”, e também que você tenha
pressionado a tecla na IHM durante a inicialização (o CLP deve estar “parado”, sem que nenhum
programa esteja executando. A mensagem “WinTs X.YZ ...” deverá estar aparecendo, sendo X, Y e Z
números relativos a versões).
40
Manual Programação Ladder WinTS
A porta serial selecionada pode estar errada, se for esse o caso, clicamos “Cancel” e depois “Settings” para
ajustar para a correta. O programa executivo somente está pronto para download quando a tela abaixo
aparecer.
Ao pressionar “Start” uma seqüencia de estados ocorrerá, desde o apagamento do atual programa da
memória do CLP até o termino completo do download, que acontece quando a mensagem “Download
Finished” é escrita. É fácil acompanhar o estado atual lendo as mensagens apresentadas.
No modo execução, a saída digital 1 estará funcionando em modo intermitente (piscando) conforme o acima
descrito.
41
Manual Programação Ladder WinTS
42
Manual Programação Ladder WinTS
13. Glossário:
Algorítmo: Seqüência de passos finitos executados por um sistema e programados em uma linguagem
específica do sistema utilizado. Descreve um processo em passos lógicos de execução a fim de alcançar
um determinado fim.
Árvore de Projeto (aba Project): Local onde o programador insere as informações e arquivos que
comandam o processo. Localizado na janela à direita ou à esquerda da tela principal do WinTs, quando
em construção de um projeto.
Árvore de Projetos (aba Ladder): Local onde o programador configura os argumentos de um dado
elemento de programação. Localizado na janela à direita ou à esquerda da tela principal do WinTs,
quando em construção de um projeto e um diagrama Ladder visível.
Atuador: Elemento físico que exerce uma ação em um dado sistema de controle. Exemplos de atuadores
são: Válvulas, resistências de aquecimento, ventiladores e motores.
BIT (“BInary digiT”): Menor unidade de informação. É representado pelos números 0 e 1. Eletricamente
querem dizer se há ou não energia na linha, em Ladder se pode fazer a mesma análise. O conjunto de 8
bits é chamado de Byte. As variáveis Turbo Solaris são compostas por conjuntos de 16bits (2 bytes),
formam o valor decimal de 65535. Ou seja, o maior número inteiro que pode ser armazenado em uma
variável é 65535.
Boole (lógica booleana – valor booleano): Lógica matemática (álgebra) que trabalha com valores
binários, onde a resposta é apenas o valor 0 ou o valor 1. Quando se diz que um elemento ou uma
função é booleana, quer-se dizer que a saída (resposta) é binária. Não necessariamente os argumentos
dessa função são binários, apenas sua resposta. Um exemplo é a comparação de igualdade entre 2
valores inteiros.
43
Manual Programação Ladder WinTS
Ciclo de varredura: Loop de execução de um programa. Associado a este ciclo está o tempo de ciclo,
que representa o tempo que o programa leva para executar todos os comandos programados. O ciclo de
varredura é variável, pois um dado conjunto de entradas pode fazer executar partes diferentes de
programa do que outro conjunto de entradas. Ou então, o ciclo manual de uma máquina não é o mesmo
do que o ciclo automático.
CLP: Controlar Lógico Programável. O NEMA (National Electrical Manufactures Association) considera
um CLP um aparelho eletrônico que utiliza uma memória programável para armazenar internamente
instruções e para implementar funções específicas, tais como lógica, seqüênciamento, temporização,
contagem e aritmética, controlando, por meio de módulos de entradas e saídas, vários tipos de máquinas
ou processos.
Coil: Elemento de saída. Realiza uma ação. É a representação da bobina e serve para acionamento
digital. Pode ser configurado para reter o estado independente da excitação de entrada.
Compilação: Processo que transforma o código produzido pelo programador (código fonte) em um
código executável pela máquina (código objeto). Em Turbo Solaris, os arquivos compilados tem a
terminação .bin (para gravação diretamente e EEPROM através de um gravador externo) e também .hex
(para gravação através da porta serial do computador, com cabo SC8. Para CPU Flash).
Contact: Elemento de leitura. Realiza um teste. É a representação de um interruptor e serve para inibir
ou habilitar o rung no qual pertence. Assim com um interruptor controla a transmissão de corrente por um
fio de energia.
Diagrama Ladder: Desenho representativo da lógica de controle de uma máquina. É uma linguagem de
programação para CLP. Muito parecido com um diagrama esquemático elétrico. Serve para programar
um processo de modo visual. As entradas e saídas são facilmente identificadas, torna mais fácil (em
muitos casos) o entendimento do funcionamento de uma máquina ou processo. Uso comum na indústria.
Elemento de programação (Elemento): Qualquer entrada digital, saída digital, entrada analógica, saída
analógica, variável, constante ou função. Ou seja, é todo o elemento disponível para o usuário programar
uma máquina ou processo.
Entrada Analógica: Refere-se aos canais analógicos das Séries S9200 e S9500. De modo geral são
entradas de 0 a 10v ou entradas de temperatura. Ainda, podem ser entradas de 0 a 20mA ou 4 a 20mA
para sensores. Tem uma resolução de 12 bits para o módulo SFA da Série S9200 ou canais analógicos
da Série S9500, o que significa que para ser lido, deve ser interpretado entre os valores decimais 0 a
4095. É Linear esta faixa, significa que 2048 são 5 volts de tensão na entrada analógica, 3072 são 7,5
volts e assim por diante. A SAS tem um funcionamento parecido, porém o valor de temperatura é dado
diretamente, sem necessidade de conversão, ou seja, 300 significam 300 graus Celsius.
Entrada Digital: É uma entrada binária representada por 0 volts ou 24volts. Em Ladder, simplesmente é o
binário 0 e 1, representando ausência ou presença de energia no rung.
Saída Digital: É uma entrada binária representada por 0 volts ou 24volts. Em Ladder, simplesmente é o
binário 0 e 1, representando ausência ou presença de energia no rung.
Function Coil: Mesmo que coil. É um elemento de saída. Realiza uma ação, segue um algoritmo
específico e possui argumentos configuráveis pelo usuário.
44
Manual Programação Ladder WinTS
Function Contact: Mesmo que contact. É um interruptor “programado”. Faz um teste de leitura e segue
um algoritmo específico para cada função implementada e possui argumentos configuráveis pelo
usuário.
Jump: É um pulo de um rung para outro rung, não executando os intermediários. É uma instrução que
deve ser muito bem estudada para ser adicionada. Necessita grande habilidade do programador e não
pode ser executada para trás, ou seja, não pode haver um salto de um rung para outro acima deste
sob pena de reiniciar o CLP. É indicado que se tente utilizar subrotinas.
Label: É o local para onde salta a instrução Jump. Se deve evitar ao máximo o uso de Label, sob risco
de aumentar o tempo de varredura. É um elemento que força uma quebra no diagrama, portanto, quebra
a continuidade do código.
Nível lógico 0: Fisicamente representa o valor lógico do nível de tensão de 0 volts, tanto em uma entrada
quanto em uma saída digital. Para uma função ou teste, representa uma entrada ou resposta falsa. Por
exemplo, se for utilizado uma Contact Functoin para a comparação entre dois valores e a relação for
falsa, diz-se que a saída deste bloco estará em nível lógico 0.
Nível lógico 1: Fisicamente representa o valor lógico do nível de tensão de 24 volts, tanto em uma
entrada quanto em uma saída digital. Para uma função ou teste, representa uma entrada ou resposta
verdadeira. Por exemplo, se for utilizado uma Contact Functoin para a comparação entre dois valores e a
relação for verdadeira, diz-se que a saída deste bloco estará em nível lógico 1.
PICTURE: Formato de amostragem de um valor no display da IHM. Exemplo: “999”. Significa que, em
tempo de execução, todos os números de 0 a 9 serão mostrados. Se o valor da variável for 5, será
mostrado na tela “005”, se for 27, será mostrado “027”, e assim por diante. Uma forma mais inteligente
de mostra é a forma “ZZ9”. A letra Z maiúscula significa que o numeral 0 não será mostrado, ou seja,
para os exemplos anteriores, será visto na tela da IHM “ 5” e “ 27” (observe os espaços em branco no
local do 0. Números entre 0 e 8 não são aceitos, assim como não são aceitos espaços em branco,
“underline”, caracteres de controle ou acentuação. São aceitos somente o numero 9 e todos os
caracteres não acentuados, maiúsculos ou minúsculos, sendo que o Z maiúsculo é a referencia de
controle para não mostrar valor 0, portanto não pode ser usado para escrita. Uma Picture válida é:
“Temp=ZZ9”, ou então “VaR=99”. Não é válida a picture “Temp1=ZZ9” (1 não é numero válido), ou então
“VaR = Z9” (espaço não é caracter válido).
PID: Controle Proporcional, Integral e Derivativo. Implementado de modo independente e com numero
máximo de 64 canais. Projetado especialmente para controle de temperatura de máquinas e processos
industriais. O controle proporcional é responsável pelo valor de trabalho programado (set point), o
integral estabiliza o sistema quando em regime contínuo e o derivativo diminui o tempo de estabilização
e controla o valor máximo de temperatura atingido (overshoot).
Programa Executivo: (Kernel) Trata do programa residente no CLP, responsável pelo gerenciamento de
dispositivos (canais de comunicação por exemplo) e pela execução do programa de aplicação. Nos
45
Manual Programação Ladder WinTS
controladores cujo programa aplicativo é carregado por meio de uma memória EPROM, o programa
executivo é gravado nesta memória pelo programador WIN TS.
Protocol Registers: Elementos públicos da rede MODBUS. São elementos, já declarados, que o
programador deseja tornar visível para o mestre da rede MODBUS. (Ver MODBUS). Um Protocol
Register é apenas um endereço que indica para a rede onde está o elemento desejado, por isso as
variáveis que se deseja tornar públicas devem estar previamente declaradas, pois caso contrário, seria
necessário sempre atualizar o protocol register. Quando utilizamos uma já existente, este procedimento
não precisa ser executado, basta declarar, e automaticamente os valores estarão publicados.
Rung: É a representação de um fio elétrico. Faz a ligação lógica entre os elementos de programação. Se
pode dizer que é o elemento base. Assim como em um circuito elétrico, as trilhas unem os componentes,
o rung une os elementos de programação em um diagrama Ladder.
Saída Analógica: Saída de tensão de 0 a 10 V ou de 4 a 20 mA, pode estar presente nas placas SAS e
SFA. Tem uma precisão de 12 bits, o que significa que para ser escrito, deve ser controlado entre os
valores decimais 0 a 4095. A faixa comporta-se de forma linear, significa que 2048 são 5 Volts de tensão
na saída analógica, 3072 são 7,5 volts e assim por diante.
Subrotina: É um diagrama Ladder chamado eventualmente pela rotina principal, de acordo com a
necessidade do programador. No momento de atendimento da subrotina, o diagrama principal (chamado
Main), pára sua execução até que a subrotina encontre o comando “return”. É um recurso utilizado pelo
programador quando existem procedimentos repetitivos num mesmo ciclo de varredura. Diminui o
tamanho do código principal. Um exemplo é o caso de um processo que necessite ler e manipular, várias
vezes num mesmo ciclo de máquina (varredura), a pressão de uma linha hidráulica. O programa
principal apenas chama a subrotina que lê e manipula a pressão, então utiliza os resultados dos cálculos
desta para prosseguir.
Supervisório: (ou SCADA _ Supervisory Control and Data Aquisition) Sistema de monitoração e controle
de um processo ou máquina. É um programa executado em um computador, interligado com uma rede
de CLP e pode utilizar animações e banco de dados para aprimorar a produção. Consulte a Solaris para
implementar sistemas supervisores em sua planta.
WinTS: Ambiente de desenvolvimento integrado para CLP Solaris Automation. Compatível com Windows
95 ou superior. É o software de programação dos CLP’s da Solaris Automation. É possível programar em
linguagem descritiva, integrada com linguagem Ladder e ainda um gerador de telas para IHM. A
facilidade de aprendizado e otimização do código objeto agilizam o processo de programação e salvam
tempo de projeto.
O conteúdo deste documento tem características informativas, sendo que a Solaris Automation se reserva
no direito de alterar o mesmo sem qualquer aviso prévio.
46