Вы находитесь на странице: 1из 40

Mdulo I

Desenvolvimento
Software CLP - Bsico
Lista de exerccios utilizados nas vdeo aulas e manual
de referncia das instrues utilizadas em cada aula.
Setor de capacitao tcnica Branqs Automao
Santos - SP

Mdulo I
Desenvolvimento Software CLP - Bsico

ndice
Introduo............................................................................................4
Aula 01 - Instalao da ferramenta de programao do CLP..........................5
Aula 02 - Campainha residencial...............................................................6
Declaraes e instrues do CLP............................................................7
Declarao: "CAMPO_ENTRADA_DIGITAL"...........................................7
Declarao: "CAMPO_SAIDA_DIGITAL"................................................8
Instruo: "SEL"..............................................................................9
Instruo: "MEMO".........................................................................10
Declarao de campos na IHM.............................................................11
Campo: "bool"...............................................................................11
Aula 03 - Acionamento de lmpada por interruptor de toque.......................12
Declaraes e instrues do CLP..........................................................13
Declarao: "SINAL_DIGITAL"..........................................................13
Instruo: "SUBIDA".......................................................................14
Instruo: "E"................................................................................15
Instruo: "EN"..............................................................................16
Instruo: "OU".............................................................................16
Declarao de campos na IHM.............................................................18
Aula 04 - Acionamento de lmpada com sensor de presena.......................19
Declaraes e instrues do CLP..........................................................20
Declarao: "CAMPO_INT"...............................................................20
Declarao: "TEMPORIZADOR".........................................................21
Instruo: "DESCIDA".....................................................................23
Declarao de campos na IHM.............................................................24
Campo: "int".................................................................................24
Aula 05 - Controle de enchimento de caixa d'gua atravs de bomba...........25
Declaraes e instrues do CLP..........................................................26
Instruo: "SED"............................................................................26
Declarao de campos na IHM.............................................................27
Aula 06 - Acionamento de lmpada em horrios programados.....................28
Declaraes e instrues do CLP..........................................................29
Declarao: "CAMPO_CHAR"............................................................29
Declarao: "AgendamentoSemanal".................................................30
Declarao de campos na IHM.............................................................32
Aula 07 - Alarme residencial...................................................................33
Declaraes e instrues do CLP..........................................................34
Instruo: "if"................................................................................34
Declarao de campos na IHM.............................................................36
Campo: "Senha"............................................................................36
Aula 08 - Controle do tempo de chuveiro ligado........................................37
Declaraes e instrues do CLP..........................................................38
Setor de Capacitao Tcnica - branqs

Pgina 2 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: ENTAO_EXECUTA_BLOCO.................................................38
Declarao de campos na IHM.............................................................39
Controle de Revises.............................................................................40

Setor de Capacitao Tcnica - branqs

Pgina 3 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Introduo

Este documento apresenta os exerccios que sero resolvidos atravs das Vdeo-Aulas
disponveis na rea de treinamento do site http://www.branqs.com.br.
Adicionalmente, este documento tambm apresenta um curto manual de referncia
para as instrues utilizadas na soluo de cada aula.
Esperamos que todos possam aproveitar o contedo.
Ficamos disposio para prestar suporte atravs dos "comentrios" do prprio
YouTube.

Setor de Capacitao Tcnica - branqs

Pgina 4 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 01 - Instalao da ferramenta


de programao do CLP

Esta aula prope simplesmente mostrar como feita a instalao das ferramentas
necessrias para desenvolver o software do CLP branqs. Aps a instalao,
demonstrado como abrir as ferramentas de edio do programa CLP, o editor de
pginas da IHM e o simulador do software.

Setor de Capacitao Tcnica - branqs

Pgina 5 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 02 - Campainha residencial

Enunciado do exerccio
Montar um programa de controle da campainha de uma casa automatizada. A
campainha deve tocar sempre que o interruptor for pressionado. Os estados dos sinais
da campainha e do interruptor devem ser apresentados na IHM.

Interruptor

Campainha

CLP
Entradas Digitais
Interruptor de toque
Sadas Digitais
Campainha

Setor de Capacitao Tcnica - branqs

Pgina 6 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Declarao: "CAMPO_ENTRADA_DIGITAL"
Cria uma varivel que assume o estado de uma entrada digital do CLP.

Sintaxe

CAMPO_ENTRADA_DIGITAL(nomeDaEntradaDigital)
A varivel declarada (nomeDaEntradaDigital) possuir um valor booleano conforme o
estado da entrada digital do CLP.

Comentrio
A relao entre a declarao das entradas digitais e as entradas digitais fsicas
existentes no CLP feita atravs da ordem das declaraes. A primeira varivel
declarada corresponder primeira entrada da primeira placa BC8E. A segunda varivel
corresponder segunda entrada e assim por diante.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(interruptorCampainha)

Quando a primeira entrada digital do CLP for acionada, a varivel


"interruptorCampainha" receber o estado lgico "1" (verdadeiro).

Setor de Capacitao Tcnica - branqs

Pgina 7 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao: "CAMPO_SAIDA_DIGITAL"
Cria uma varivel que atribui seu estado lgico a uma sada digital do CLP

Sintaxe

CAMPO_SAIDA_DIGITAL(nomeDaSaidaDigital)
A varivel declarada poder receber um valor booleano (0 ou 1) conforme o
resultado de uma lgica construda no programa. O estado dessa varivel refletido em
uma sada digital do CLP.

Comentrio
A relao entre a declarao das sadas digitais e as sadas digitais fsicas existentes no
CLP feita atravs da ordem das declaraes. A primeira varivel declarada
corresponder primeira sada da primeira placa BC8S. A segunda varivel
corresponder segunda sada e assim por diante.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaCampainha)
Quando a varivel "saidaCampainha" receber o estado lgico "1" (Verdadeiro), a
primeira sada do CLP ser acionada.

Setor de Capacitao Tcnica - branqs

Pgina 8 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "SEL"
Instruo normalmente utilizada para iniciar uma sentena lgica entre sinais digitais.
A instruo SEL o acrnimo da expresso "Se Ligado".

Sintaxe

SEL (variavelDeEstadoDigital)
Comentrio
Ao ser executada, a instruo SEL copia o estado da varivel indicada para uma outra
varivel interna chamada de "Estado Lgico Corrente" (ELC). O ELC uma varivel
auxiliar interna do CLP usada para realizar a execuo e armazenamento do resultado
intermedirio de uma sentena lgica. Por esse motivo, esta instruo muito utilizada
para iniciarmos uma sentena lgica. equivalente a um contato normalmente aberto
no incio de uma linha na linguagem de programao LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(interruptorCampainha)
//////////////////////////////////////////////////////////////////////////
//Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaCampainha)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
MEMO

(interruptorCampainha)
(saidaCampainha)

Podemos ler a lgica acima do seguinte modo:


Se ligado o interruptorCampainha
Memoriza a saidaCampainha
Ou seja, se a entrada "interruptorCampainha" for acionada, ento a "saidaCampainha"
tambm ser acionada.

Setor de Capacitao Tcnica - branqs

Pgina 9 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "MEMO"
Instruo utilizada para concluir uma operao lgica, armazenando o resultado da
sentena em uma varivel que armazena um estado lgico (0 ou 1; verdadeiro ou
falso). A instruo MEMO o acrnimo da expresso "MEMORIZA".

Sintaxe

MEMO (variavalDeEstadoDigital)
Esta instruo finaliza uma sentena lgica, armazenando o "Estado Lgico Corrente"
(ELC) na variavelDeEstadoDigital.

Comentrio
A instruo MEMO equivale "Bobina de um rel" utilizado na linguagem de
programao LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(interruptorCampainha)
//////////////////////////////////////////////////////////////////////////
//Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaCampainha)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
MEMO

(interruptorCampainha)
(saidaCampainha)

A instruo MEMO ir atribuir varivel "saidaCampainha" o resultado lgico resultante


nas linhas anteriores. Considerando que no exemplo existe somente uma instruo SEL
antes da instruo MEMO, ento o valor da varivel "interruptorCampainha" ser
transferido para a varivel "saidaCampainha". Posteriormente sero mostrados
exemplos onde a instruo MEMO atribui valores resultantes de sentenas lgicas mais
complexas.

Setor de Capacitao Tcnica - branqs

Pgina 10 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Campo: "bool"
Os campos do tipo "bool" permitem a visualizao e edio do contedo de variveis do
CLP do tipo "CAMPO_ENTRADA_DIGITAL", "CAMPO_SAIDA_DIGITAL" e "CAMPO_CHAR"

Sintaxe

Onde:
bool:
tagCLP:
ed:
niv:
simbF:
simbV:

Tipo do campo
Nome da varivel declarada no CLP
Valor 0 (zero) ou 1 (um). 0 - No permite edio, 1 - Permite edio
Nvel de senha exigida para edio (Valor entre 0 e 3)
Smbolo de um nico digito que ser apresentado no campo quando
a varivel possuir o estado lgico "Falso"
Smbolo de um nico digito que ser apresentado no campo quando
a varivel possuir o estado lgico "Verdadeiro"

Comentrio
Os smbolos "0 e 1" ou "N e S" so frequentemente utilizados.

Exemplo

O campo acima apresentar o contedo da varivel "saidaRecuaCilindro". Esse campo


no ser editvel; ter o nvel de proteo 0; mostrar o simbolo 0 (zero) quando a
varivel possuir o estado lgico "Falso" e o smbolo 1 (um) quando a varivel possuir
o estado lgico "Verdadeiro".

Setor de Capacitao Tcnica - branqs

Pgina 11 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 03 - Acionamento de
lmpada por interruptor de toque

Enunciado do exerccio
Montar o programa de controle de uma lmpada controlada por um interruptor de
toque em uma casa automatizada. Ao tocar no interruptor, deve inverter o estado da
lmpada. Os estados das entradas e sadas digitais devem ser apresentados na IHM.

Lmpada

Interruptor
de toque

CLP

Entradas Digitais
Interruptor de toque
Sadas Digitais
Lmpada

Setor de Capacitao Tcnica - branqs

Pgina 12 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Declarao: "SINAL_DIGITAL"
Cria uma varivel capaz de armazenar um estado lgico digital, ou seja, pode assumir
os estados "Falso" ou "Verdadeiro", tambm representados por "0" (zero) ou "1" (um).

Sintaxe

SINAL_DIGITAL(nomeDaVariavel)
Comentrio
Variveis do tipo "SINAL_DIGITAL" so largamente utilizadas como variveis auxiliares
na construo da lgica do CLP. Estas variveis no so manipuladas pela a IHM. Ao
ligarmos o CLP, o estado lgico de uma varivel deste tipo iniciado sempre com
"zero".

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao das entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(entradaDigitalCilindroRecuado)
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
SINAL_DIGITAL(cilindroRecuado)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
MEMO

(entradaDigitalCilindroRecuado)
(cilindroRecuado)

Quando o sinal "entradaDigitalCilindroRecuado" possuir o estado lgico "verdadeiro", a


varivel "cilindroRecuado" tambm receber o estado lgico "verdadeiro".

Setor de Capacitao Tcnica - branqs

Pgina 13 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "SUBIDA"
Permite verificar se ocorreu a transio de subida (0 para 1) no estado lgico de uma
varivel ou no resultado de uma sentena lgica.

Sintaxe

SUBIDA
Comentrio
A instruo SUBIDA extremamente til para detectar o exato momento de
acionamento de um sinal. Essa instruo avalia o resultado da sentena lgica inserida
anteriormente a ela, e resulta em estado lgico "verdadeiro" somente durante um ciclo
de execuo do CLP, exatamente no momento de transio do estado lgico "falso" para
"verdadeiro". (assistir explicao mostrada na vdeo aula).

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(botao)
//////////////////////////////////////////////////////////////////////////
// Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(sirene)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
SUBIDA
MEMO

(botao)
(sirene)

Quando o boto for pressionado, a sirene realizar um breve toque (durante milsimos
de segundos) como se emitisse um "beep". Perceba que a sirene no continuar
tocando enquanto o boto estiver pressionado. Para que ela realize o breve toque
novamente, ser necessrio soltar o boto e pression-lo novamente. Somente dessa
forma a instruo SUBIDA ir detectar a transio do sinal (de 0 para 1) e ento
acionar a sirene novamente durante um nico ciclo de CLP.

Setor de Capacitao Tcnica - branqs

Pgina 14 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "E"
Realiza uma operao lgica E (AND) entre o "Estado Lgico Corrente" (ELC) e a
varivel passada como parmetro.

Sintaxe

(sinalDigital)

Comentrio
O resultado da operao "AND" entre a varivel passada e o "Estado Lgico Corrente"
(ELC) armazenado no prprio ELC. Esse resultado pode ser utilizado em novas
operaes ou ser finalmente armazenado em uma varivel destino atravs da operao
MEMO. Esta instruo equivale utilizao de uma ligao "em srie" de um "contato
aberto" atravs da linguagem LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao das entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(sensorPortaFrontalFechada)
CAMPO_ENTRADA_DIGITAL(sensorPortaTraseiraFechada)
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
SINAL_DIGITAL(todasPortasFechadas)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
E
MEMO

(sensorPortaFrontalFechada)
(sensorPortaTraseiraFechada)
(todasPortasFechadas)

O sinal "todasPortasFechadas" s ser "verdadeiro" caso o sinal


"sensorPortaFrontalFechada" e o sinal "sensorPortaTraseiraFechada" tambm sejam.

Setor de Capacitao Tcnica - branqs

Pgina 15 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "EN"
Realiza uma operao lgica E NO (AND NOT) entre o "Estado Lgico Corrente"
(ELC) e a varivel passada como parmetro.

Sintaxe

EN

(sinalDigital)

Comentrio
O resultado da operao "AND NOT" entre a varivel passada e o "Estado Lgico
Corrente" (ELC) armazenado no prprio ELC. Esse resultado pode ser utilizado em
novas operaes ou ser finalmente armazenado em uma varivel destino atravs da
operao MEMO. Esta instruo equivale utilizao de uma ligao "em srie" com
um "contato fechado" atravs da linguagem LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao das entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(botaoRecuaCilindro)
CAMPO_ENTRADA_DIGITAL(protetorAberto)
//////////////////////////////////////////////////////////////////////////
// Declaracao das saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaRecuaCilindro)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
EN
MEMO

(botaoRecuaCilindro)
(protetorAberto)
(saidaRecuaCilindro)

No exemplo acima, a "saidaRecuaCilindro" s ser acionada caso seja pressionado o


boto e o protetor no esteja aberto.

Setor de Capacitao Tcnica - branqs

Pgina 16 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "OU"
Realiza uma operao lgica OU (OR) entre o "Estado Lgico Corrente" (ELC) e a
varivel passada como parmetro. O resultado armazenado no prprio ELC.

Sintaxe

OU

(sinalDigital)

Comentrio
O resultado da operao "OR" entre a varivel passada e o "Estado Lgico Corrente"
(ELC) armazenado no prprio ELC. Esse resultado pode ser utilizado em novas
operaes ou ser finalmente armazenado em uma varivel destino atravs da operao
MEMO. Esta instruo equivale utilizao de uma ligao "em paralelo" com um
"contato" atravs da linguagem LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao das entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(botaoLigaEsteira)
CAMPO_ENTRADA_DIGITAL(botaoRecuaCilindro)
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
SINAL_DIGITAL(pressionouBotao)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
OU
MEMO

(botaoRecuaCilindro)
(botaoLigaEsteira)
(pressionouBotao)

Se o "botaoRecuaCilindro" ou o "botaoLigaEsteira" forem pressionados, o sinal


"pressionouBotao" ser verdadeiro.

Setor de Capacitao Tcnica - branqs

Pgina 17 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Esta aula no apresenta novos tipos de campos.

Setor de Capacitao Tcnica - branqs

Pgina 18 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 04 - Acionamento de
lmpada com sensor de presena

Enunciado do exerccio
Ligar automaticamente a iluminao de um cmodo ao detectar a presena de uma
pessoa. Garantir que a lmpada fique ligada por aproximadamente 5 segundos aps
cada deteco de movimento realizada pelo sensor. O sistema deve permitir alterar o
tempo de acionamento da lmpada atravs de um campo na IHM. Os estados das
entradas e sadas digitais devem ser apresentados na IHM.

Lmpada
Sensor de
presena

CLP
Entradas Digitais
Sensor de presena
Sadas Digitais
Lmpada

Setor de Capacitao Tcnica - branqs

Pgina 19 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Declarao: "CAMPO_INT"
Cria uma varivel para armazenamento de valores numricos inteiros, que podem ser
apresentados ou modificados atravs do painel de operao (IHM).

Sintaxe

CAMPO_INT (nomeDaVariavel)
Comentrio
Variveis do tipo CAMPO_INT podem ser utilizadas em inmeras ocasies. Durante as
vdeo aulas da certificao M1-DSCLPB, elas sero intensamente utilizadas para
armazenar o set-point de temporizadores. Sero usadas tambm para armazenar
contadores e at mesmo nmeros de senhas. Estas variveis podem ser facilmente
comparadas atravs de operadores lgicos e manipuladas por operadores aritmticos e
de atribuio da linguagem "C". Este tipo de varivel sempre inicializada com o valor
zero ao iniciar a execuo do programa.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
CAMPO_INT(temporizadorRecuoDoCilindro)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
temporizadorRecuoDoCilindro = 100;
O valor 100 armazenado na varivel "temporizadorRecuoDoCilindro".

Setor de Capacitao Tcnica - branqs

Pgina 20 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao: "TEMPORIZADOR"
Declara um temporizador para contagem de tempo pelo CLP.

Sintaxe

TEMPORIZADOR(nomeDoTemporizador,variavelSetPoint)
Onde:
nomeDoTemporizador: nome definido para o temporizador
variavelSetPoint:

Varivel do tipo INT que armazena o valor do


tempo em centsimos de segundo a ser
contado pelo temporizador (ex: 100 = 1 segundo)

Comentrio
Ao declararmos um TEMPORIZADOR, so criados automaticamente dois sinais digitais
associados:

dsp_nomeDoTemporizador
fim_nomeDoTemporizador
Estes sinais sero utilizados para controlar e monitorar o uso do temporizador. O sinal
com o prefixo "dsp_" (disparo) serve para disparar a contagem. Ao receber o estado
lgico "1" ("Um" ou "Verdadeiro"), o temporizador comea a fazer a contagem do
tempo. Quando for decorrido o tempo programado na varivel "variavelSetPoint", o
sinal com o prefixo "fim_" (Fim) passar automaticamente para o estado lgico "1".
Dessa forma, a varivel "dsp_" dever ser alterada por uma sentena lgica existente
no programa do CLP, enquanto a varivel "fim_" ser alterada automaticamente pelo
prprio temporizador e ser consultada para verificar se a contagem do tempo chegou
ao fim. Segue abaixo uma pequena carta de tempos que demonstra o funcionamento
dos sinais de "disparo" e reconhecimento de "fim" da contagem:

Adicionalmente um temporizador permite tambm obtermos o valor corrente de sua

Setor de Capacitao Tcnica - branqs

Pgina 21 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

contagem. Para isso, devemos utilizar o mtodo tempoDecorrido( ) conforme


demonstrado no exemplo a seguir.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao das entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(sensorPoteEmBaixoDoCilindro)
//////////////////////////////////////////////////////////////////////////
// Declaracao das saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(avancaCilindro)
//////////////////////////////////////////////////////////////////////////
// Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
CAMPO_INT(duracaoDeAvancoDoCilindro)
TEMPORIZADOR(tmpDuracaoDeAvancoDoCilindro,duracaoDeAvancoDoCilindro)
CAMPO_INT(contagemDoTempo)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
duracaoDeAvancoDoCilindro = 200;
SEL
MEMO

(sensorPoteEmBaixoDoCilindro)
(dsp_tmpDuracaoDeAvancoDoCilindro)

SEL
EN
MEMO

(dsp_tmpDuracaoDeAvancoDoCilindro)
(fim_tmpDuracaoDeAvancoDoCilindro)
(avancaCilindro)

contagemDoTempo=tmpDuracaoDeAvancoDoCilindro.tempoDecorrido();

No exemplo acima, a sada "avancaCilindro" ser acionada durante 2 segundos sempre


que a entrada "sensorPoteEmbaixoDoCilindro" for acionada. Se a varivel
"contagemDoTempo" for inserida em um campo da IHM, ser possvel visualizar a
contagem do tempo em andamento.

Setor de Capacitao Tcnica - branqs

Pgina 22 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Instruo: "DESCIDA"
Permite verificar se ocorreu a transio de descida (1 para 0) no estado lgico de uma
varivel ou no resultado de uma operao lgica.

Sintaxe

DESCIDA
Comentrio
Funciona de modo similar instruo "SUBIDA", porm detectando a transio do
estado de 1 para 0.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(botao)
//////////////////////////////////////////////////////////////////////////
// Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(sirene)
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
SINAL_DIGITAL(pressionouBotao)
SINAL_DIGITAL(soltouBotao)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
SUBIDA
MEMO

(botao)

SEL
DESCIDA
MEMO

(botao)

SEL
OU
MEMO

(pressionouBotao)
(soltouBotao)
(sirene)

(pressionouBotao)

(soltouBotao)

No exemplo acima, a sirene realizar um beep quando o boto for pressionado e


tambm quando for liberado.

Setor de Capacitao Tcnica - branqs

Pgina 23 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Campo: "int"
Os campos do tipo "int" permitem a visualizao e edio do contedo de variveis do
tipo inteiro.

Sintaxe

Onde:
int:
tagCLP:
vMin:
vMax:
ed:
tam:
pto:
niv:

Tipo do campo
Nome da varivel declarada no CLP
Valor mnimo permitido durante edio
Valor mximo permitido durante edio
Valor 0 (zero) ou 1 (um). 0 - No permite edio, 1 - Permite edio
Tamanho do campo em nmero de dgitos
Posio do ponto decimal
Nvel de senha exigida para edio (Valor entre 0 e 3)

Comentrio
Este campo permite visualizar e alterar o valor de variveis declaradas como
CAMPO_INT no CLP.

Exemplo

O exemplo acima apresenta o contedo da varivel "contagemTempoReal". Essa


varivel pode receber valores entre 0 e 9999. O campo ser "editvel" e ocupar 5
posies na tela. O ponto decimal ser apresentado na segunda posio. Por ltimo,
este campo no est protegido por senha, j que o ltimo parmetro especifica nvel de
proteo "0" (zero).

Setor de Capacitao Tcnica - branqs

Pgina 24 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 05 - Controle de enchimento


de caixa d'gua atravs de bomba

Enunciado do exerccio
Controlar o enchimento automtico de uma caixa d'gua acionando uma bomba d'gua
sempre que o nvel mnimo for atingido. A bomba dever permanecer ligada at que o
nvel mximo seja completado. Cada sensor acionado quando o nvel da gua atinge a
altura do mesmo.

Bomba D'gua
Sensor nvel mximo

Sensor nvel mnimo

CLP
Entradas Digitais
Sensor de nvel mximo de gua
Sensor de nvel mnimo de gua
Sadas Digitais
Bomba d'gua

Setor de Capacitao Tcnica - branqs

Pgina 25 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Instruo: "SED"
Instruo normalmente utilizada para iniciar uma sentena lgica entre sinais digitais.
A instruo SED o acrnimo da expresso "Se Desigado".

Sintaxe

SED (variavelDeEstadoDigital)
Comentrio
Ao ser executada, a instruo SED copia o estado "invertido" da varivel indicada para
a varivel do "Estado Lgico Corrente" (ELC). equivalente a um contato fechado no
incio de uma linha na linguagem de programao LADDER.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao Entradas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_ENTRADA_DIGITAL(sensorPortaFechada)
//////////////////////////////////////////////////////////////////////////
//Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaCampainha)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SED
MEMO

(sensorPortaFechada)
(saidaCampainha)

Podemos ler a lgica acima do seguinte modo:


Se desligado o sensorPortaFechada
Memoriza a saidaCampainha
Ou seja, se a porta estiver aberta ento aciona a Campainha.

Setor de Capacitao Tcnica - branqs

Pgina 26 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Esta aula no apresenta novos tipos de campos.

Setor de Capacitao Tcnica - branqs

Pgina 27 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 06 - Acionamento de
lmpada em horrios
programados

Enunciado do exerccio
Permitir a definio de um horrio para ligar e desligar automaticamente uma lmpada
a cada dia da semana. Manter a funo de acionamento manual desenvolvido na aula
03. A definio dos horrios deve ser feito atravs de uma pgina na IHM.

Lmpada

Interruptor
de toque

CLP
Entradas Digitais
Interruptor de toque
Sadas Digitais
Lmpada

Setor de Capacitao Tcnica - branqs

Pgina 28 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Declarao: "CAMPO_CHAR"
Similar declarao "SINAL_DIGITAL", esta declarao cria uma varivel capaz de
armazenar um estado lgico digital, ou seja, esta varivel pode assumir os estados
"Falso" ou "Verdadeiro", tambm representados por "0" (zero) ou "1" (um). A diferena
na utilizao de "CAMPO_CHAR" e "SINAL_DIGITAL" que a varivel "CAMPO_CHAR"
poder ser editada e visualizada na tela da IHM.

Sintaxe

CAMPO_CHAR (nomeDaVariavel)
Comentrio
Idem a "CAMPO_SINAL_DIGITAL", porm permite sua edio e visualizao
diretamente na IHM.

Exemplo
Idem a "SINAL_DIGITAL"

Setor de Capacitao Tcnica - branqs

Pgina 29 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao: "AgendamentoSemanal"
A declarao "AgendamentoSemanal" cria um objeto de agendamento de eventos
semanal, capaz de identificar quando o relgio do CLP atinge um determinado horrio
(hora e minuto) em cada dia da semana.

Sintaxe

AgendamentoSemanal nomeDoAgendador;
Aps declarar o objeto "agendador", devemos programar os horrios de cada evento
por dia da semana. Essa programao do objeto realizada atravs do mtodo
"programaAgenda()" utilizando-se os seguintes parmetros:
nomeDoAgendador.programaAgenda(
variavelHabilitaEventoDomingo,variavelHoraDomingo,variavelMinutoDomingo,
variavelHabilitaEventoSegunda,variavelHoraSegunda,variavelMinutoSegunda,
variavelHabilitaEventoTerca,variavelHoraTerca,variavelMinutoTerca,
variavelHabilitaEventoQuarta,variavelHoraQuarta,variavelMinutoQuarta,
variavelHabilitaEventoQuinta,variavelHoraQuinta,variavelMinutoQuinta,
variavelHabilitaEventoSexta,variavelHoraSexta,variavelMinutoSexta,
variavelHabilitaEventoSabado,variavelHoraSabado,variavelMinutoSabado);
Onde:
variavelHabilitaDiaSemana:

Varivel de estado lgico que habilita o evento


naquele dia da semana.

variavelHoraDiaSemana:

Varivel do tipo INT que armazena a hora


de ocorrncia do evento naquele dia da semana.

variavelMinutoDiaSemana:

Varivel do tipo INT que armazena o minuto


de ocorrncia do evento naquele dia da semana.

Por fim utilizamos o mtodo "verificaAtivacao()" para identificar quando o relgio do


CLP atingiu o horrio programado em cada evento habilitado. Ex:

variavelEstadoDigital=nomeDoAgendador.verificaAtivacao();
No exemplo acima, a "variavelEstadoDigital" receber o estado "1" sempre que um
determinado horrio habilitado em um dia da semana for atingido.

Comentrio
Um bom exemplo da utilizao deste recurso seria considerar o acionamento de uma
sirene no horrio de fim de expediente de uma empresa que funciona de Segunda a
Sexta-Feira. O cdigo a seguir demonstra exatamente este exemplo:

Setor de Capacitao Tcnica - branqs

Pgina 30 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao Saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaSirene)
//////////////////////////////////////////////////////////////////////////
// Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
AgendamentoSemanal agendamentoHorarioFimDeExpediente;
CAMPO_CHAR(habAgendamentoDom)
CAMPO_CHAR(habAgendamentoSeg)
CAMPO_CHAR(habAgendamentoTer)
CAMPO_CHAR(habAgendamentoQua)
CAMPO_CHAR(habAgendamentoQui)
CAMPO_CHAR(habAgendamentoSex)
CAMPO_CHAR(habAgendamentoSab)
CAMPO_INT(horaFimExpedienteDom)
CAMPO_INT(horaFimExpedienteSeg)
CAMPO_INT(horaFimExpedienteTer)
CAMPO_INT(horaFimExpedienteQua)
CAMPO_INT(horaFimExpedienteQui)
CAMPO_INT(horaFimExpedienteSex)
CAMPO_INT(horaFimExpedienteSab)
CAMPO_INT(minutoFimExpedienteDom)
CAMPO_INT(minutoFimExpedienteSeg)
CAMPO_INT(minutoFimExpedienteTer)
CAMPO_INT(minutoFimExpedienteQua)
CAMPO_INT(minutoFimExpedienteQui)
CAMPO_INT(minutoFimExpedienteSex)
CAMPO_INT(minutoFimExpedienteSab)

Setor de Capacitao Tcnica - branqs

Pgina 31 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
// Comando
//////////////////////////////////////////////////////////////////////////
habAgendamentoDom=0;
habAgendamentoSeg=1;
habAgendamentoTer=1;
habAgendamentoQua=1;
habAgendamentoQui=1;
habAgendamentoSex=1;
habAgendamentoSab=0;
horaFimExpedienteSeg=17;
horaFimExpedienteTer=17;
horaFimExpedienteQua=17;
horaFimExpedienteQui=17;
horaFimExpedienteSex=16;
minutoFimExpedienteSeg=15;
minutoFimExpedienteTer=15;
minutoFimExpedienteQua=15;
minutoFimExpedienteQui=15;
minutoFimExpedienteSex=30;
agendamentoLigaLampadaDoCorredor.programaAgenda(
habAgendamentoDom,horaFimExpedienteDom,minutoFimExpedienteDom,
habAgendamentoSeg,horaFimExpedienteSeg,minutoFimExpedienteSeg,
habAgendamentoTer,horaFimExpedienteTer,minutoFimExpedienteTer,
habAgendamentoQua,horaFimExpedienteQua,minutoFimExpedienteQua,
habAgendamentoQui,horaFimExpedienteQui,minutoFimExpedienteQui,
habAgendamentoSex,horaFimExpedienteSex,minutoFimExpedienteSex,
habAgendamentoSab,horaFimExpedienteSab,minutoFimExpedienteSab);
saidaSirene=agendamentoHorarioFimDeExpediente.verificaAtivacao();

O agendador acima foi programado para acionar a sirene de segunda a quinta-feira s


17 horas e 15 minutos, enquanto na Sexta-Feira, a mesma ser acionada s 16 horas e
30 minutos. Perceba que a sirene no ser acionada aos sbados e domingos.

Declarao de campos na IHM


Esta aula no apresenta novos tipos de campos.

Setor de Capacitao Tcnica - branqs

Pgina 32 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 07 - Alarme residencial

Implementar um alarme residencial composto de uma sirene e trs sensores de


presena. A ativao e desativao do alarme deve ser feito atravs da digitao de
uma senha na IHM. Considere que a IHM est instalada na sala de estar.

IHM
Sirene

Sensor sala de estar

Sensor
cozinha

Sensor
dormitrio

CLP

Entradas Digitais
Sensor sala de estar
Sensor cozinha
Sensor dormitrio
Sadas Digitais
Sirene

Setor de Capacitao Tcnica - branqs

Pgina 33 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Instruo: "if"
Nesta aula mostramos que o Framework CLP branqs permite a utilizao de instrues
escritas na linguagem C. Este tipo de recurso estende significativamente a capacidade
de processamento, podendo aproveitar os vrios recursos que esta linguagem oferece.

Sintaxe

if (expressaoLogica)
{
.
. bloco 1
.
}
else
{
.
. bloco 2
.
}
Caso a "expressaoLogica" for verdadeira, as instrues existentes entre as primeiras
chaves (bloco 1) sero executadas, caso contrrio, as instrues existentes entre as
segundas chaves (bloco 2) sero executadas. A instruo "else" opcional. Dentro dos
blocos delimitados pelas chaves, podem ser usadas quaisquer instrues disponveis no
framework ou na prpria linguagem C.

Comentrio
Caso tenha interesse em conhecer formas adicionais de trabalhar com instrues "if",
basta seguir as definies existentes em qualquer tutorial para a linguagem ANSI-C.

Setor de Capacitao Tcnica - branqs

Pgina 34 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
// Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
CAMPO_INT(contadorDePotesProduzidos)
CAMPO_INT(numeroDePotesDesejados)
CAMPO_CHAR(producaoDePotesAtingida)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
// Comando
//////////////////////////////////////////////////////////////////////////
if ( contadorDePotesProduzidos >= numeroDePotesDesejados)
producaoDePotesAtingida=1;
else
producaoDePotesAtingida=0;
Se o valor do "contadorDePotesProduzidos" for maior ou igual ao valor do
"numeroDePotesDesejados" ento o sinal " producaoDePotesAtingida" receber o
estado lgico "Verdadeiro", caso contrrio, receber o estado lgico "Falso".

Setor de Capacitao Tcnica - branqs

Pgina 35 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Campo: "Senha"
Os campos do tipo "senha" permitem a edio do contedo de variveis do tipo inteiro,
porm diferentemente do tipo "CAMPO_INT", um campo do tipo "Senha" apresenta
asteriscos (*) no lugar dos nmeros originalmente inseridos.

Sintaxe

Onde:
senha:
tagCLP:
ed:
tam:
niv:

Tipo do campo
Nome da varivel declarada no CLP
Valor 0 (zero) ou 1 (um). 0 - No permite edio, 1 - Permite edio
Tamanho do campo em nmero de dgitos
Nvel de senha exigida para edio (Valor entre 0 e 3)

Comentrio
Os campos do tipo senha utilizam variveis declaradas como "CAMPO_INT" no CLP.

Exemplo

A declarao acima apresenta um campo que permitir a edio da varivel


"senhaProtecaoNivel2" definida no CLP. Esse campo ser editvel, ter o tamanho de 6
caracteres e necessitar do nvel de proteo 3 para poder ser editado. importante
lembrar que sero apresentados asteriscos (*) no lugar dos nmeros digitados.

Setor de Capacitao Tcnica - branqs

Pgina 36 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Aula 08 - Controle do tempo de


chuveiro ligado

Enunciado do exerccio
Implementar o software de um sistema que controla o tempo mximo de chuveiro
ligado durante o banho de uma pessoa. O CLP monitora o tempo de chuveiro ligado
atravs de um sensor de corrente eltrica. Caso a durao de chuveiro ligado
ultrapasse o tempo limite programado na IHM, o CLP desliga a alimentao eltrica do
chuveiro atravs de um contator. Para ligar o chuveiro novamente, necessrio
pressionar o boto de RESET que fica localizado fora do banheiro.

Contator de alimentao do chuveiro


Sensor de corrente

Boto de RESET

CLP

Entradas Digitais
Sensor de corrente
Boto de reset
Sadas Digitais
Contator de alimentao do chuveiro

Setor de Capacitao Tcnica - branqs

Pgina 37 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declaraes e instrues do CLP


Instruo: "ENTAO_EXECUTA_BLOCO"
Permite executar um bloco de instrues caso o Estado Lgico Corrente (ELC) seja
verdadeiro.

Sintaxe

ENTAO_EXECUTA_BLOCO
{
.
. bloco de instrues
.
}
Comentrio
Esta instruo funciona de forma muito parecida com a instruo "if", porm executa o
bloco dependendo do estado do ELC.

Exemplo
DECLARA.CLP
//////////////////////////////////////////////////////////////////////////
//Declaracao das saidas digitais
//////////////////////////////////////////////////////////////////////////
CAMPO_SAIDA_DIGITAL(saidaAvancaCilindro)
//////////////////////////////////////////////////////////////////////////
//Declaracao Campos e variaveis organizados por funcao
//////////////////////////////////////////////////////////////////////////
CAMPO_INT(contadorDeAvancos)

LOGICA.CLP
//////////////////////////////////////////////////////////////////////////
//Comando
//////////////////////////////////////////////////////////////////////////
SEL
(saidaAvancaCilindro)
SUBIDA
ENTAO_EXECUTA_BLOCO
{
contadorDeAvancos = contadorDeAvancos + 1;
}
Toda vez que for identificada a borda de subida no sinal "saidaAvancaCilindro", o
"contadorDeAvancos" ser incrementado em uma unidade.

Setor de Capacitao Tcnica - branqs

Pgina 38 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Declarao de campos na IHM


Esta aula no apresenta novos tipos de campos.

Setor de Capacitao Tcnica - branqs

Pgina 39 de 40

Mdulo I
Desenvolvimento Software CLP - Bsico

Controle de Revises

Reviso: 01
Data: 29/06/2014
Descrio:
Inserido o manual de referncia das instrues utilizadas nas video-aulas.
Reviso: 00
Data: 05/09/2013
Descrio:
Documento original criado para as vdeo aulas de introduo
programao de CLP.

Setor de Capacitao Tcnica - branqs

Pgina 40 de 40

Вам также может понравиться