Curso de STEP 5 Básico
Curso de STEP 5 Básico
Curso de STEP 5 Básico
Introdução à linguagem de
programação STEP 5
- BÁSICO -
Siemens
1. Introdução_____________________________________________________________________1-5
1.1. Comandos programados por fiação e por memória_______________________________________1-5
1.1.1. Comando programado por fiação (convencional):_______________________________________________1-5
1.1.2. Comando programado por memória:_________________________________________________________1-6
1.2. Configuração de um controlador programável___________________________________________1-6
1.3. Sinal binário; nível lógico de sinal_____________________________________________________1-7
1.4. Programação de contatos NA (Fechadores) e NF (Abridores)_______________________________1-8
1.5. Endereçamento de entradas e saídas; bit, byte___________________________________________1-9
1.6. Linguagem de Programação STEP 5; formas de representação____________________________1-10
1.7. Representação_____________________________________________________________________1-10
1.8. Programa de comando; a instrução de comando________________________________________1-11
1.8.1. O QUE deve ser feito?___________________________________________________________________1-12
1.8.2. COM O QUE isto deve ser feito?___________________________________________________________1-12
1.9. Imagem do Processo: PII; PIO_______________________________________________________1-12
1.10. Instruções de comando STEP 5 para S5 95U__________________________________________1-13
1.11. Instruções de Comando STEP-5 para o CP___________________________________________1-14
1.12. Blocos para programa de usuário___________________________________________________1-15
1.12.1. PB’s - Blocos de Programa________________________________________________________________1-15
1.12.2. FB’s - Blocos de Funções_________________________________________________________________1-15
1.12.3. SB’s - Blocos de Passos__________________________________________________________________1-15
1.12.4. OB’s - Blocos de Organização_____________________________________________________________1-16
1.12.5. DB’s - Blocos de Dados__________________________________________________________________1-16
1.13. Estrutura do programa de usuário__________________________________________________1-16
2. O Equipamento de Treinamento___________________________________________________2-17
2.1. Módulo Fonte de Alimentação:_______________________________________________________2-18
2.2. UCP - Unidade Central de Processamento:_____________________________________________2-18
2.2.1. Operação:_____________________________________________________________________________2-18
2.2.2. Reset Geral (Overall reset)________________________________________________________________2-18
2.2.3. Simulador_____________________________________________________________________________2-19
2.3. O Teclado SIEMENS_______________________________________________________________2-19
2.4. PRESETS________________________________________________________________________2-20
2.4.1. SIGNIFICADO DOS TERMOS INDIVIDUAIS_______________________________________________2-20
2.5. Exercícios: Definir Presets___________________________________________________________2-21
2.5.1. Exercício 2.1: ALTERAR PRESETS________________________________________________________2-21
2.5.2. Exercício 2.2: CHAMADA DO MENU DE PRESETS__________________________________________2-22
2.6. Recomendação para o usuário_______________________________________________________2-23
2.6.1. Manuseio de disquete____________________________________________________________________2-23
2.6.2. Proteção de gravação_____________________________________________________________________2-23
2.6.3. Exercício 2.3:Verificação do disquete_______________________________________________________2-23
2.6.4. Exercício 2.4: Ligação do aparelho__________________________________________________________2-23
2.7. Reset Geral_______________________________________________________________________2-24
2.7.1. Diretamente da UCP:____________________________________________________________________2-24
2.7.2. Através da função DELETE do terminal de programação:________________________________________2-24
2.7.3. Exercício 2.5: Reset Geral do CP___________________________________________________________2-24
3. INSTRUÇÕES STEP 5 - PARTE 1: Operações Básicas________________________________3-25
3.1. Associações Lógicas________________________________________________________________3-25
3.1.1. “E” / “OU”____________________________________________________________________________3-25
3.1.2. Resultado da operação lógica (RLO) e seu limite de validade_____________________________________3-26
3.2. Exercício 3.1: Associação; Resultado da Operação Lógica__________________________________3-27
3.2.1. Exercício 3.1:__________________________________________________________________________3-27
3.2.2. Exercício 3.2:__________________________________________________________________________3-27
3.2.3. Exercício 3.3:__________________________________________________________________________3-28
3.3. Verificação de Saídas_______________________________________________________________3-28
3.3.1. Exercício 3.4:__________________________________________________________________________3-28
3.4. Associação E antes de OU___________________________________________________________3-29
3.4.1. Exercício 3.5___________________________________________________________________________3-30
3.5. Associação OU antes de E___________________________________________________________3-30
3.5.1. Exercício 3.6:__________________________________________________________________________3-31
3.6. Verificação do Nível Lógico “0”______________________________________________________3-31
3.6.1. Exercício 3.7:__________________________________________________________________________3-32
3.6.2. Exercício 3.8: Contatos Normalmente fechados e Normalmente abertos_____________________________3-33
4. INSTRUÇÕES STEP-5 - PARTE 2: Entrada e Saída de Dados_________________________4-34
4.1. Alteração de Bloco_________________________________________________________________4-34
INPUT (Entrada de Dados)________________________________________________________________________4-34
4.1.2. OUTPUT (Saída de Dados)_______________________________________________________________4-34
4.1.3. CORRECTION (Correção)________________________________________________________________4-34
4.2. Transferência de Blocos_____________________________________________________________4-35
4.2.1. Entradas:______________________________________________________________________________4-35
4.2.2. Saídas:________________________________________________________________________________4-35
4.2.3. Alteração:_____________________________________________________________________________4-35
4.2.4. Transferência:__________________________________________________________________________4-36
4.3. Exercícios________________________________________________________________________4-36
4.3.1. Exercício 4.1: Gravar Bloco em Disquete (CSF): PB2, Segmento 1________________________________4-36
4.3.2. Exercício 4.2: Leitura do Bloco, procura de segmento___________________________________________4-38
4.3.3. Exercícios 4.3: Alteração e Inserção de Bloco e de Segmento (CSF)_______________________________4-40
4.3.4. Exercício 4.4: Organização do Programa, Teste do Bloco________________________________________4-42
4.3.5. Exercício 4.5: Alteração de Bloco, ON LINE__________________________________________________4-44
4.3.6. Exercício 4.6: Introdução e leitura de blocos (LAD)____________________________________________4-45
4.4. Operações com parênteses___________________________________________________________4-47
4.4.1. Exercício 4.7: Programação e Leitura de Blocos (STL)__________________________________________4-48
5. FUNÇÕES DE MEMORIZAÇÃO_________________________________________________5-49
5.1. Saídas com auto-retenção___________________________________________________________5-49
5.1.1. Exercício 5.1:__________________________________________________________________________5-50
5.1.2. Exercício 5.2:__________________________________________________________________________5-50
5.2. Função memória R-S_______________________________________________________________5-51
5.2.1. Exercício 5.3:__________________________________________________________________________5-52
5.2.2. Exercício 5.4 :__________________________________________________________________________5-52
5.3. Avaliação de flanco_________________________________________________________________5-53
5.4. Conector #:_______________________________________________________________________5-54
5.4.1. Exercício 5.5: Avaliação de flanco__________________________________________________________5-54
5.4.2. Exercício 5.6: Memória R-S (CSF, LAD, STL)________________________________________________5-55
5.5. Flag de reset inicial (RI)_____________________________________________________________5-56
5.5.1. Programa para flag de RI_________________________________________________________________5-56
5.5.2. Flags para verificação de nível lógico “0” e nível lógico “1”______________________________________5-56
5.5.3. Exercício 5.7: Aplicação do flag de RI_______________________________________________________5-57
5.5.4. Exercício 5.8: Chamar PB13 e testa-lo (STATUS)______________________________________________5-58
1. Introdução
Nesse capítulo iniciaremos alguns conceitos de fundamental importância na programação de PLCs
assim como os métodos básicos de funcionamento do Simatic S5 e do software STEP5.
A tensão proveniente dos emissores de sinal é ligada aos terminais dos MÓDULOS DE
ENTRADA (entradas do controlador programável). Na UCP é processado o programa existente na
memória, e é verificado se as entradas individuais do controlador estão sob tensão ou sem tensão.
Dependendo deste estado nas entradas e do programa existente na memória, a UCP instrui o MÓDULO
DE SAÍDA para que aplique tensão ou não aos terminais correspondentes. Dependendo da existência
ou não existência de tensão nos terminais dos módulos de saída do controlador programável, são
energizados ou desenergizados os ELEMENTOS OPERADORES ou LÂMPADAS.
No item anterior foi descrito que a UCP do controlador programável verifica nas entradas os dois
estados “existência de tensão” e “inexistência de tensão”, e que os elementos operadores a ele
conectados são energizados ou desenergizados dependendo do estado de tensão das saídas.
Em ambos os casos trata-se de estados bem distintos entre si, para os quais a técnica de controles
eletrônicos utiliza as seguintes definições:
Estes dois níveis lógicos são os dois valores que podem ser assumidos por um SINAL BINÁRIO
(= sinal com dois valores possíveis). O conceito de sinal binário é utilizado não somente para a
descrição dos níveis lógicos das entradas e saídas, mas também para a descrição da posição dos
elementos que participam no processamento de sinais dentro do controlador programável.
Na literatura de língua inglesa é comum a utilização da palavra “bit” (binary digit) como menor
unidade da técnica de informações, termo esse também utilizado em português.
Nas páginas anteriores foi descrito que é feita uma verificação na entrada quanto ao nível lógico
de sinal - de acordo com o programa a existência ou inexistência de tensão. É irrelevante o fato de o
contato utilizado ser normalmente fechado ou normalmente aberto.
Entretanto, o mais tardar por ocasião da elaboração do programa e da execução da tarefa de acordo
com as particularidades tecnológicas, deve ser conhecido o tipo de contato e sua finalidade técnica.
Por outro lado, se o contato for normalmente fechado, a entrada terá, quando o mesmo for
acionado, o nível lógico “0”.
O controlador programável não tem qualquer possibilidade de verificar se na entrada esta ligado
um contato normalmente aberto ou um contato normalmente fechado; ele somente pode verificar ou
reconhecer um nível lógico “1” ou um nível lógico “0”.
Será verificada, portanto, uma entrada quanto a existência do nível lógico “1”, sendo, a princípio,
desinteressante o fato de este nível lógico ter sido gerado por um contato normalmente aberto acionado
ou um contato normalmente fechado não acionado.
Por outro lado, pode ser verificado se uma entrada tem o nível lógico “0”, sendo aqui também
irrelevante o fato de este nível lógico ter sido gerado por um contato normalmente aberto não acionado
ou um contato normalmente fechado acionado.
Depois de nos ocuparmos dos níveis lógicos e da programação de contatos normalmente fechados
e normalmente abertos, devemos efetuar a conexão dos emissores de sinal com as entradas, e das saídas
do controlador programável com os elementos operadores e lâmpadas.
Estas entradas e saídas não são designadas seqüencialmente, como se faz normalmente em
terminais, mas sim com os símbolos de operandos, por ex. “I” para uma entrada ou “Q” para uma saída
e o parâmetro 0.4, 1.2 ou 4.7, etc. O parâmetro é uma combinação de endereço do byte (0, 1 ou 4) com
o endereço do bit (.4, .2 ou .7). Isto será visto com mais detalhes na página seguinte.
O bit é a unidade para uma posição binária ou um símbolo binário. Ele somente pode assumir os
valores “0” e “1” (DIN 44300). Diversos símbolos binários reunidos em uma unidade maior constituem
um byte ou uma palavra. Neste caso o número de bits é idêntico ao número de posições binárias da
unidade em questão
Para uma unidade com 8 símbolos binários foi introduzido o conceito de byte (pronuncia-se bait).
Pode-se dizer também que um byte tem um comprimento de 8 bits. Em um controlador programável,
por exemplo, os níveis lógicos de 8 entradas ou de 8 saídas são reunidos em um “byte de entrada”, ou
“byte de saída” e freqüentemente processados em conjunto no controlador programável. Cada posição
binária individual de um byte pode assumir o valor “0” ou “1”.
A cada bit de um byte é dado um número, o endereço do bit. O bit da extrema direita tem o
endereço de bit “0” e o da extrema esquerda tem o endereço “7”.
Uma tarefa de comando apresentada através de um esquema elétrico pode ser convertido
facilmente, através da linguagem de programação STEP 5, em um programa na forma de Diagrama de
Contratos (LAD), Diagrama de Blocos Funcionais (CSF) ou Lista de Instruções (STL).
1.11.1. Representação
A figura mostra uma parte do esquema elétrico de um comando convencional, que deve ser
convertido em um programa correspondente. Antes da programação propriamente dita, deve-se fazer
corresponder aos contatos individuais dos emissores, como por exemplo, botões de operação e chaves
limite, as entradas do controlador utilizadas, e as bobinas dos contatores, as saídas do controlador ( nas
figuras, I 33.0 ... I 33.3 e Q 32.0 ...Q 32.2).
A Lista de Instruções - STL - com a qual podem ser programados todas as funções, representa a
tarefa de automação através de abreviações mnemônicas.
Uma Instrução de Controle é constituída de duas partes: Operação e Operando (DIN 19239)
Para que as alterações de sinal que ocorrem durante o ciclo do programa não causem perturbações
durante o processamento do programa, os sinais de entrada são armazenados na memória intermediária
de imagem do processo (PII). Antes do início de um ciclo de processamento, e após o início da
supervisão do tempo do ciclo é carregada a imagem das entradas na PII.
Através de instruções de carregamento e de transferência (veja também cap. 5), pode ser
contornada a armazenagem nas memórias intermediárias PII ou PIO, sendo feita a conexão diretamente
a periferia.
O tempo de ciclo é controlado através de um “supervisor de ciclo”. Caso o tempo de ciclo ajustado
seja ultrapassado, o controlador programável passa para o estado ‘PARA’ devido à ultrapassagem do
tempo do ciclo.
Uma instrução de comando, como já visto, é a menor unidade do programa e representa a instrução
de trabalho para a UCP
Podem ser realizadas as seguintes instruções de comando com nosso equipamento de treinamento:
Função de memorização S Q, F; R Q, F; = Q, F
Operações de temporização SP T, SE T, SI T, SR T, SS T, SF T, R T;
Operação de carregamento L IB, IW, QB, QW, FB, FW, DR, DL,
DW, T, C, PB, PW, KS, KT;
As operações complementares não serão analisadas por não serem objeto deste curso. Para outros
controladores programáveis a gama de operações correspondente pode ser obtida dos respectivos
catálogos.
Os SB’s (step blocks) são usados para a programação de comandos seqüenciais. Eles contém as
condições de liberação e comandos dos passos de comando seqüencial.
DB’s (data blocks) são áreas da memória de usuário, por ele reservadas na ocasião da elaboração
do programa, onde são armazenados dados fixos ou variáveis, como por exemplo um valor numérico.
Ao contrário dos demais tipos de blocos, os DB’s não contém instruções de comando.
Os blocos podem ser chamados não só no OB1, como também em outros PB’s, FB’s e SB’s, de
forma que o processamento se distancia assim, cada vez mais, do OB1, retornando porém a ele após o
processamento do último bloco.
Uma vez processada a instrução BE do OB1, está terminado um ciclo de processamento do programa de
usuário.
FB16 DB12
PB23
- Bateria de “backup”;
- Memória do usuário;
- 16 entradas e 16 saídas digitais;
- Interface RS232/RS485 para interligação ao Terminal de Programação;
- Fonte de alimentação 24Vcc.
- Um Simulador com
- Teclado;
- Monitor de vídeo;
- Driver 3 ½”
- Hard-disk;
- Interface para conexão com periféricos.
2.7.1. Operação:
O S5 95U tem os modos de operação RUN (ciclo) , STOP (pára) e COPY (cópia).
Nas seções a seguir aprenderemos as funções básicas das operações STEP 5 com base em
exemplos de programa, e poderemos verificá-las no simulador.
2.7.3. Simulador
Para a obtenção dos sinais de emissores utilizamos botões e chaves, com os quais podem ser
simuladas as funções “contato NA” e “contato NF”.
A posição da chave é indicada pelo led correspondente: led acesso: nível lógico 1.
PEDIMOS OBSERVAR:
Quando forem testados os exercícios, somente o bloco a ser testado deve ser chamado pelo OB1
para o processamento. Caso isto não seja observado, surgirão dificuldades, Visto que em todos os
exemplos de treinamento, devido a quantidade limitada de lâmpadas, botões e chaves, são utilizadas
sempre as mesmas entradas e saídas.
O teclado do terminal de programação original da SIEMENS, (TP 675) tem um lay-out bastante
diferente dos microcomputadores de hoje em dia, dificultando algumas operações mais complexas.
Vemos ao lado a correspondência das teclas que temos disponíveis no nosso teclado.
2.9. PRESETS
Antes de iniciar a programação, devem ser verificados, e se necessário alterados, os presets para a
operação do terminal de programação e do controlador programável.
COMMENTS: N* Y
TITLE FIELD: N* Y
LANGU. SUBSET: A* B
SYS. OPS.: N* Y
MODE: ON OFF
CHECKSUM: N* Y
A cada segmento pode corresponder um comentário, o qual p. ex. identifica a função tecnológica
(para este fim deve existir um PK, SK, etc.).
Quando da emissão de documentação através de uma impressora pode ser impresso um rodapé em
cada folha, correspondendo aos dados do título de um desenho técnico (situação, revisão, projeto,
preparado por, data, empresa, etc.).
Yes *: Quando da transmissão para o controlador programável, é feita a soma dos dígitos (por
palavra).
Depois de finalizada a seleção dos presets aparece o menu das teclas de funções na borda inferior
da tecla .
Preset “STL” na primeira linha “format” do menu e transfira os presets com a tecla INTERRUPT.
O CP ainda está desligado.
Caso durante a preparação ou processamento do programa seja necessária uma alteração dos
presets, devem ser acionados, em seqüência, as teclas de comando F6, F6. (Atenção! Antes disso, um
bloco deve ser terminado com BE ou deve ser finalizada uma alteração de blocos!)
Qual mensagem aparece na tecla e o que ela significa? (veja também o manual do aparelho).
Para que um programa possa ser armazenado em um disquete virgem, o mesmo deve ser
“formatado”. Entretanto, um disquete deve ser também formatado se o mesmo receber uma nova
denominação, nova descrição ou novo conteúdo. Em geral, na ocasião da formatação pode-se atribuir ao
disquete, para a identificação:
Aperte a tecla RETURN para que o TP assuma os comandos FD, A-1 e EXERCÍCIOS,
respectivamente. Em seguida aperte a tecla ENTER. Aparece então na tela a pergunta: Diskete
changed? (foi trocado o disquete?); dessa forma, procura-se evitar que no FD se encontre um disquete
cujo conteúdo importante seria apagado.
A fim de evitar perdas de dados, recomenda-se preparar, além do assim chamado disquete de
trabalho, um disquete de backup (segurança). Este último deve ser copiado uma vez por ano em um
disquete novo, recém-formatado.
Ao se utilizar disquetes, devem ser observadas obrigatoriamente todas as instruções e regras que se
encontram na figura.
Verificaremos se o nosso disquete de usuário A realmente não tem nenhum programa. Para esse
fim chamamos, através de F7 (INFO) e F2 (DIR), a informação DIR (Diretório) e completamos:
A fim de trabalhar no controlador programável com nosso próprios programas e sem qualquer
influência de outros programas, flags, temporizadores e contadores antigos, apagamos todas as
memórias. Este processo é denominado RESET GERAL (overall reset).
Efetue um reset geral de acordo com as duas possibilidades da pág. anterior e faça a verificação
após cada reset geral, através da função “INFO” (Informação do terminal de programação (teclas F7 e
F2)).
Para este fim chamamos, com as teclas F7, F1, a função “TRANSFER” do terminal de
programação.
Transferir o bloco
Depois de acionada a tecla ENTER, o bloco OB1 é transferido para a memória de usuário do CP.
Na realidade, o bloco é somente copiado, de maneira que mesmo após esta instrução de transferência o
Cada programa é constituído de uma série de associações que são dispostas seqüencialmente na
memória do programa. Uma associação é constituída de uma ou diversas instruções para a “verificação”
do nível lógico de entradas, saídas, temporizadores, contadores e de uma ou mais instruções para o
comando de saídas, flags, temporizadores e contadores. Quando do processamento das verificações
forma-se um resultado da operação lógica (RLO). Caso as verificações estejam satisfeitas, o RLO vale
“1”; caso elas não sejam satisfeitas, o RLO vale “0”.
Com o processamento da última instrução desta associação, o resultado anterior da associação fica
sem efeito, desta maneira, o RLO é limitado. O limite da validade de um RLO é a passagem de uma
operação de terminação de segmento para uma operação de verificação (primeira verificação), isto é, a
passagem, no processamento do programa, de um segmento para outro.
Com a primeira operação de verificação deste novo segmento, a UCP forma um novo RLO. O
resultado de uma primeira verificação é armazenado sem associação na UCP. A associação é feita
somente quando da segunda verificação. Por este motivo, a operação de associação “E” ou “OU” de
uma primeira verificação não tem significado, devendo, entretanto, ser sempre escrita também devido ao
formalismo da programação e das instruções.
Lembre-se:
Resultado da operação lógica RLO “1”: as condições das verificações estão satisfeitas, as
operações são executadas.
Resultado da operação lógica RLO “0”: as condições das verificações não estão satisfeitas, as
operações não são executados.
(Exceto a operação “=“, que com RLO “1” energiza a saída, o flag, etc., e no caso de RLO “0”
desenergiza os mesmo.)
Caso seja ultrapassado um limite entre duas associações forma-se um novo RLO.
Para que sejam acesas as lâmpadas ligadas as saídas Q 32.0 e Q 32.1 são válidas condições
diferentes, de maneira que em casos deste tipo, devem ser previstos circuitos ou símbolos de associação
individuais para cada saída. Visto que o controlador programável pode verificar não somente o nível
lógico de entradas, mas também de saídas, flags, etc... na associação E para a saída Q 32.1 é verificado o
nível lógico da saída Q 32.0. Esta verificação de Q 32.0 inclui também a associação I 33.0 e I 33.1.
Estas funções E antes de OU são programadas em STL sem parênteses; entretanto, os ramos
ligados em paralelo devem ser separados entre si introduzindo-se o símbolo “O” (OU sem operando).
- O “O” individual é sempre necessário se após uma função “E” se seguirem outras funções “E”,
que são associadas pela função “OU”.
Caso, ao fim de uma associação “E antes de OU”, se seguirem somente operandos “OU”
individuais, pode-se programar com O I....
A associação “OU antes de E” é uma ligação em série de diversos contatos ligados em paralelo.
Nesta associação, constituída de circuitos em paralelo e em série, a saída Q 32.0 somente terá o
nível lógico “1” (energizada) se em cada um dos dois ramos paralelo pelo menos um dos contatos e,
além disso, o único contato I 33.2, estiverem fechados ( apresentarem um nível lógico “1”).
Nestas associações “OU antes de E” , de acordo com as regras da álgebra booleana, as funções
OU, que podem também incluir uma função E antes de OU, devem ser indicadas entre parênteses. Desta
maneira determina-se que a função OU deve ser processada antes da função E.
Dentro de uma expressão entre parênteses A(.....) pode encontrar-se uma associação OU ou OU
antes de E” de qualquer tamanho.
Complementar a STL.
Quando se usam controladores programáveis, entretanto, é utilizada somente uma chave com um
único contato normalmente aberto ou normalmente fechado. Aqui existe a possibilidade de verificar no
operando tanto o nível lógico “1” como também o nível lógico “O”.
A ...
Verificação do nível lógico “0”: (a entrada não tem tensão se um contato normalmente aberto
estiver aberto, portanto, não atuado, ou se um contato normalmente fechado estiver aberto, portanto
atuado!).
Atenção!!!
De acordo com a norma DIN 57113 / VDE 0113, item 8.8, a parada de uma máquina sempre que
possível deve ser efetuada através do desligamento de uma tensão. Este tipo de parada é seguro porque
também funciona no caso de curto circuito a terra, ruptura de fio ou falta de tensão no circuito do
emissor. Os contatos normalmente fechados, usuais para esta finalidade em botões de desligamento e
chaves limite, por este motivo sob nenhuma hipótese devem ser substituídos por contatos normalmente
abertos com verificação do nível lógico “0”!
Seja válida, independentemente das diferentes funções das chaves (normalmente fechada,
normalmente aberta) para S1 e S2.
Neste capítulo iremos discutir as associações e assim aprenderemos, também, como operar o TP.
Para esse fim vamos:
Ao fim do capítulo será mostrada a alteração em ON-LINE, isto é, uma alteração com o
controlador programável em funcionamento cíclico, ou seja, sob tensão, e que, por esse motivo, é
imediatamente executada pelo CP após a transferência.
HELP
INPUT BLOCK
OUTPUT BLOCK
CORR
4.7.1. Entradas:
Independentemente da memória-objetivo (CP, EPROM, FD) e da forma de representação presetada
(STL, LAD, CSF), o bloco é escrito com suas instruções individuais na memória do TP e
simultaneamente é indicado na tela. Ao fim do processo de entrada de dados, após a instrução “BE” (fim
de bloco), uma cópia do bloco recém-programado é transferida automaticamente para a memória-
objetivo selecionada.
4.7.2. Saídas:
Quando da saída de um bloco, o bloco chamado é copiado da memória em questão (CP, EPROM,
FD) na memória do TP. Caso não tenha sido dada outra instrução para o TP no campo de comando, será
exibido na tela o primeiro segmento.
O TP possui uma memória auxiliar, em que se encontra uma cópia do segmento indicado em cada
instante, que está à disposição do comando de tela para exibição no monitor.
4.7.3. Alteração:
Blocos podem ser corrigidos diretamente e imediatamente, ainda durante o modo de entrada de
dados, simplesmente sobrescrevendo-se, ou no modo de saída de dados, através de saída, (exibição no
monitor) do bloco a ser alterado e atuação das teclas CORR, INSERT ou DELETE. O que ocorre
então durante a fase de alteração no modo de saída?
Atenção! Da memória e para a memória do TP, pode ser transferido somente um bloco.
4.8. Exercícios
Carregue o bloco PB2, representado na figura, em disquete. Caso o terminal de programação não
esteja em operação, proceda como descrito na página 2.07 e mude o preset para a forma de
representação CSF (página 2.09).
Para isso colocamos o disquete A ( do usuário) no FD, fechamos o mesmo e atuamos a tecla
F1 - INPUT (ENTRADA) E F1 - BLOCK (BLOCO).
Segmento 2
1ª Possibilidade:
Atuar em seqüência as teclas das funções E e OU, em seguida identificar os operandos (entradas e
saídas).
Esta possibilidade será sempre utilizada se desejar primeiramente montar toda a lógica sobre a tela.
2ª Possibilidade:
Atuar a tecla OU, identificar as entradas e então, depois que o cursor tenha saltado para a saída,
volta-lo para a cruz antes da saída, expandir o diagrama na horizontal, apertar a tecla E e continuar e
identificar.
Segmento 3
Importante:
Erros de digitação podem ser eliminados como segue:
Aperte uma vez a tecla INTERRUPT. Desta maneira a tela estará livre e neste segmento a
lógica pode ser montada novamente.
Substituição de caracter alfanumérico errado: Para este fim, posicione o cursor e sobrescreva
a identificação errada, em seguida aperte a tecla RETURN.
Alteração do símbolo: leve o cursor para a 1a. Entrada do símbolo a ser alterado e aperte em
seguida a tecla de função escolhida (E, OU, etc).
Chamamos o menu das teclas de funções através da tecla INTERRUPT e apertamos a tecla F2. Na
tela aparece:
- segmento 1 do bloco de programa PB2, com a associação E de quatro entradas ( das quais duas
são negadas) e uma saída.
Caso deseje ver não o primeiro segmento mas sim um outro, P.ex., imediatamente o segmento 3,
escreva em SEARCH (procura) um 3.
Tente fazê-lo!
Neste exercício “alteração do bloco”, o bloco PB2, apresentado acima e já alterado anteriormente,
será alterado também no disquete.
Aperte a tecla de correção CORR. A Tela nos indica no canto superior direito o modo
CORRECT correção.
Leve o cursor para a entrada I 32.6 a ser alterada e aperte a tecla de função OU; identifique a
segunda entrada (I 32.3); leve o cursor para a cruz antes da saída, expanda o diagrama, aperte a
tecla de função OU identifique então a entrada aberta (I 32.2).
Termine a correção apertando a tecla ENTER e verifique a correção. Na tela será indicado o
segmento 1 alterado.
Visto que queremos inserir um segmento após o segmento 1, devemos chamar o segmento 1. De
acordo com a seqüência do nosso exercício, o segmento 1 já se encontra na tela; caso contrário,
podemos chamar o segmento desejado através da tecla de paginação de tela.
Aperte a tecla INSERT. A tela mostra à esquerda em cima SEGMENT 2, à direita INSERT e,
além disso, uma tela livre.
Termine o segmento 2 com a tecla *** ( terminação de segmento). A tela oferece um segmento
vazio adicional para a inserção, que no nosso caso não é necessário. Por esse motivo...
O segmento a ser apagado deve ser trazido para a tela através da tecla de paginação; para o
nosso exercício isto significa o segmento 3 , anteriormente segmento 2: portanto o segmento
que antes da operação de inserção era o n. 2.
Aperte a tecla DELETE ( apagamento de segmento). Após ter apertado a tecla, o aparelho
pergunta através da tela, se queremos realmente apagar: DELETE? (Apagar).
Aperte a tecla ENTER. A ação de apagamento agora é executada e a tela mostra o segmento 3
( que era o segmento 4 após a operação de inserção).
Posicione o cursor de maneira que a associação a ser apagada, ou somente o operando, fique à
esquerda do cursor.
Com a tecla ENTER terminamos a correção e imediatamente a tela nos apresenta o segmento
3 alterado.
Aperte a tecla ENTER. O FD começa a funcionar, o LED se acende e a tela informa: PB2
ALREADY ON FB, OVERWRITE? (PB2 JÁ EXISTE NO FB, SOBRESCREVER?)
Acione uma segunda vez a tecla ENTER. O led no FD se acende novamente e o bloco é
transferido. Dessa maneira encontra-se agora somente o bloco PB2 alterado no disquete.
Lembre-se: Para que um bloco que se encontra na memória do CP seja processado ciclicamente, o
mesmo deve ser incluído na operação cíclica através do bloco de organização OB1:
Terminada a inserção confirme com a tecla ENTER a pergunta “OB1 ALREADY ON PC,
TRANSFER?”
Porque pode ser executada a função TESTE nas páginas 3.04 e 3.05 sem que tivéssemos
organizado um salto no OB1?
Com o auxílio da indicação de nível lógico dependente do programa (STATUS) desejamos testar o
bloco alterado PB2 com o preset CSF. Para este fim chamamos a função TEST e STATUS do TP
através de F8, F8.
Dependendo do nível lógico dos operandos individuais e do RLO, as entradas e saídas dos
símbolos de funções, bem como as conexões entre os símbolos de funções, são representadas através de
linhas duplas ou linhas pontilhadas:
Preset CSF
Atenção!
Altere na memória do CP, na representação CSF, o bloco PB2, segmento 3 , conforme figura
acima.
Chame a indicação de STATUS (F8, F8), PB2 e registre um 3 em SEARCH: (procura) para o
segmento 3, e aperte a tecla ENTER.
Aperte novamente a tecla ENTER e observe o nível lógico da saída Q 32.2. O processamento
do STATUS é reiniciado com o bloco alterado e passa a ser imediatamente processado, já de
acordo com a lógica alterada.
Atenção!
Altere os presets:
Chame os menus de presets ( aperte duas vezes F6 ), selecione a representação LAD no menu de
presets e, apertando a tecla INTERRUPT, execute a transferência.
Programe o bloco PB3 representado na figura acima, utilizando para tanto as instruções de
operação das páginas 43 e 44 do manual do TP 675.
Leia o PB3 que você programou no disquete sem alterar a seleção de funções.
Altere agora o menu de presets de LAD para CSF, leia o bloco PB3 no modo de representação
CSF e compare o PB3 com o PB2 da página 4-32 desta apostila.
Os controladores programáveis podem processar funções com até seis níveis de parênteses.
Na programação CSF ou LAD, o número máximo de níveis de parênteses nem sempre pode ser
utilizado devido à largura da tela ou do papel da impressora.
ATENÇÃO!
Para o desligamento do contator são possíveis duas variantes, dependendo de a prioridade ser de
ligação ou de desligamento. No caso de prioridade de desligamento (A), o botão “DESLIGA” e
eventuais chaves-limite de desligamento adicionais são instalados em série com o circuito paralelo do
botão “LIGA” e o contato de retenção. No caso de prioridade de ligação (B), os contatos normalmente
fechados utilizados para o desligamento são instalados em série com contato de retenção e em paralelo
com contatos “LIGA”.
Naturalmente a auto-retenção descrita vale não somente para saídas, mas também para os flags.
Verifique com a função STATUS a auto-retenção, depois alterar o 0B1 (: JU PB5), através de
STATUS. Dar antes um RESTART na UCP, levando a chave seletora do modo de operação
para “PARA” e novamente para “CICLO”; desta forma apagamos o conteúdo das memórias de
imagem do processo.
De acordo com a norma DIN 40.700 - parte 14, uma função memória R-S é representada na forma
de um retângulo com as entradas S - “Set” e R - “RESET”. A passagem de sinal de 0 para 1 na entrada S
“seta” a função de memória e a passagem de sinal de 0 para 1 na entrada R “reseta” a função de memória.
Um nível lógico “0” nas entradas S e R não altera o nível lógico da saída obtido anteriormente.
Lembre-se:
setar (ligar) e resetar (desligar) somente com RLO ”1”! Nada ocorre com RLO “0”, isto é, o nível
lógico é mantido.
Atenção
Se ambas as entradas (R,S) tiverem SIMULTANEAMENTE o nível lógico “1”, a prioridade
será para “resetar”(caso A: saída Q tem “0”) ou para “setar” (caso B: saída Q tem “1”) . Este fato
deve ser considerado durante a programação.
As instruções programadas por último também são processadas por último pelo controlador
programável ( processamento cíclico). No caso A será efetuada primeiramente a operação de “setar”- a
saída Q 33.0 será “setada”- e em seguida a operação de “resetar” - a saída Q 33.0 e novamente “resetada”.
Nesse caso, a operação de setar a saída é executada somente na imagem do processo, sem que seja
comutado o módulo periférico correspondente. O mesmo assumirá o nível lógico da imagem do processo
somente no fim do processamento cíclico.
Programe o PB6 em CSF no disquete A, transfira-o para o CP, organize o OB1 e teste ambos os
casos: A e caso B. (Não esqueça o “RESTART” da UCP!).
No programa é verificado, em cada ciclo de processamento, se o nível lógico (p.ex. da entrada I 0.1)
se alterou “0” para “1” em relação ao ciclo de processamento anterior. O nível lógico anterior da entrada,
por este motivo deve ser memorizado em um flag, o flag de flanco F0.2. Quando ocorre um flanco de
sinal, um segundo flag, o flag de impulso F0.1, fornece, durante todo o ciclo de processamento, um
impulso de nível lógico “1”.
Para que, após um reset de todos os flags, todas as “avaliações de flanco” existentes no programa do
usuário não forneçam um impulso, é setado o flag de flanco F0.2, com o nível lógico “0” da entrada I 0.1.
Se o sinal de entrada se alterar de “0” para “1” (flanco positivo), a associação I 0.1 & F0.2 é satisfeita; o
flag de impulso F0.1 tem o nível lógico “1” e reseta, através da entrada R, o “flag” de flanco F0.2. No
ciclo 2 (seguinte) o “flag” de flanco F0.2 tem nível lógico “0”; a associação E não é mais satisfeita, o
“flag” de impulso F0.1 volta ao estado “0”. O “flag” de impulso esteve, portanto, energizado exatamente
durante um ciclo de processamento. Assim sendo, ele pode ser verificado a qualquer momento durante o
processamento do programa.
No segmento 2, a saída Q32.2, programada como memória R-S, e setada através do flag de impulso
F0.1. Enquanto a entrada I0.1 possuir nível lógico 1, a saída Q32.0 pode ser resetada através da entrada
I0.3 e consequentemente ser desligada a lâmpada. No flanco crescente seguinte este fato será novamente
memorizado.
5.9. Conector #:
Programe o PB7 completo (segmentos 1 e 2 da página anterior e segmentos 3 e 4 dessa página) em CSF
no disquete A; transfira o PB7 (não esqueça do OB1 ) e faça um teste do bloco com base nos dois
diagramas.
Chame o menu de presets no TP, preset CSF e escreva no disquete do usuário o bloco PB11 com as
funções R-S representadas na figura.
Lembre-se: em uma função memória R-S a instrução programada por último é predominante. Nos
modos de representação CSF e LAD isto depende do acionamento da tecla F1 ( R) ou F2 (S) ao
programar:
Chame novamente o menu de presets, presete LAD e observe agora o seu bloco programado em CSF.
Altere o preset para STL e pense quais instruções no segmento 1 ou 2 poderiam ser omitidas, sem
alterar a lógica.
Na representação LAD não podem ser programadas ou chamadas funções complexas seguidas de
uma função OU. O TP, neste caso, exibirá a STL com a mensagem de erro 183 (erro de conversão).
O programa de usuário freqüentemente contém flags que, após uma parada do CP e por motivos de
segurança, precisam ser levados incondicionalmente a uma posição inicial não perigosa (setados ou
No nosso exemplo de programa utilizamos o flag F100.2. O programa consiste de duas seqüências
iguais de instruções, programadas respectivamente no OB21 e no OB22. No processamento desses OB’s
após um restart, são setados o flag de F100.2 e o flag auxiliar F100.3. No começo do OB1 precisa constar
a outra seqüência de instruções. Com ela o flag auxiliar F100.3 é resetado no inicio do primeiro ciclo de
processamento após o restart, o flag de RI F100.2 porém permanece setado. No inicio do segundo ciclo
ambos são resetados; o flag de RI, portanto, permaneceu setado somente durante o primeiro ciclo de
processamento.
5.10.2. Flags para verificação de nível lógico “0” e nível lógico “1”
Atenção
Tanto o flag de RI como os flags para a verificação dos níveis lógicos “0” e “1” podem ser
escolhidos livremente pelo usuário. Não devem porém ser usados endereços de byte a partir de FB200,
por serem estes flags usados como “flags de rascunho” nos FB’s (blocos de funções).
Descrição da função
Testar funcionamento do PB12 com STATUS e verificar funcionamento dos dois modos de
operação no modelo da prensa: devera estar ligada somente uma lâmpada de modo de
funcionamento de cada vez se a chave respectiva e a chave I32.5 (LIB) estiverem ligadas.
Observação
O bloco PB12 ainda não contém o segmento 1 da figura (embaixo a direita). Após uma parada do
sistema provocada por uma parada do CP não pode mais ser liberado o modo de funcionamento
anteriormente selecionado (Q33.7 e Q33.6 apagados). Ele deve , por motivos de segurança, ser
selecionado novamente antes de um restart.
Verifique: esta importante observação não foi considerada no PB12. Para que o programa esteja
de acordo com as prescrições da filosofia de funcionamento e necessário completar o PB12 com
o segmento 1 da figura (F100.2 = flag de RI) e com a associação OU antes da entrada R dos
flags F12.0 e F12.1.
Fazer as alterações indicadas na figura. Verificar se após uma parada e restart ou após uma
queda de tensão as saídas Q33.7, Q33.6 e Q33.0 permanecem apagadas.
Mudar preset para STL, chamar OUTPUT DEV.: PC, PB12, posicionar cursor sobre : (dois pontos)
defronte a primeira instrução e acionar a tecla INSERT SEGMENT. Inserir as instruções do segmento 1
(ver figura) antes do símbolo ***. Finalizar inserção e mudar preset novamente para CSF.
Descrição da função
As saídas Q33.1 e Q33.5 dos dois segmentos do PB13 comandam dois contadores. A ligação e o
desligamento são feitos através dos botões I32.1 e I32.5 (fechadores), e botões I32.2 e I32.6 (abridores),
respectivamente. Os contadores só podem ser ligados se existir sinal de liberação (I33.7). A condição
“ligado” das duas saídas é impedida se as chaves I32.3 e I32.7 não estiverem fechadas.
Nos segmentos 2 e 4 e verificado através da função OU-EXCLUSIVO se os níveis lógicos dos flags
F10.1 e F10.2 se diferenciam respectivamente dos sinais I0.0 e I0.4 de retroaviso dos contadores. Estas
situações irregulares são sinalizadas, com um tempo de retardo de 3 segundos (KT030.1) associado a uma
sinalização piscante (F10.0), através das lâmpadas ligadas as saídas Q32.2 e Q32.6, respectivamente. As
lâmpadas permanecem apagadas se os flags e os retroavisos tiverem nível lógico ”0”; elas têm luz
contínua se os flags e os retroavisos tiverem nível lógico “1”.
No segmento 5 é gerada a tensão piscante com o temporizador T1 e o flag F10.0. O flag de tensão
piscante F10.0 e acionando se após transcorrida a temporização e novamente acionando o flag F10.7.
Exercício
Chamar PB13 da memória do CP para a tela (OUTPUT PC; PB13) e inserir segmentos 2,4 e 5
(ver página 5.16).
Levar CP novamente para o modo de operação CICLO e testar função no simulador através da
função STATUS PB13.
Observação
A cada alteração do bloco devida a inserção de segmentos só e armazenada, após se acionar por
diversas vezes a tecla ENTER, se a pergunta “PB13 ALREADY ON PC, OVERWRITE?” for respondida
afirmativamente com o acionamento da tecla ENTER.