Академический Документы
Профессиональный Документы
Культура Документы
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
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.
Pgina 4 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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.
Pgina 5 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
Pgina 6 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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)
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.
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)
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)
Pgina 10 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
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
Pgina 12 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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)
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.
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)
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)
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)
Pgina 17 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
Pgina 19 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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".
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:
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:
Pgina 21 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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();
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)
Pgina 23 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
Pgina 24 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
CLP
Entradas Digitais
Sensor de nvel mximo de gua
Sensor de nvel mnimo de gua
Sadas Digitais
Bomba d'gua
Pgina 25 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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)
Pgina 26 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
Pgina 28 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
Sintaxe
CAMPO_CHAR (nomeDaVariavel)
Comentrio
Idem a "CAMPO_SINAL_DIGITAL", porm permite sua edio e visualizao
diretamente na IHM.
Exemplo
Idem a "SINAL_DIGITAL"
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:
variavelHoraDiaSemana:
variavelMinutoDiaSemana:
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:
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)
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();
Pgina 32 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
IHM
Sirene
Sensor
cozinha
Sensor
dormitrio
CLP
Entradas Digitais
Sensor sala de estar
Sensor cozinha
Sensor dormitrio
Sadas Digitais
Sirene
Pgina 33 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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.
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".
Pgina 35 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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
Pgina 36 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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.
Boto de RESET
CLP
Entradas Digitais
Sensor de corrente
Boto de reset
Sadas Digitais
Contator de alimentao do chuveiro
Pgina 37 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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.
Pgina 38 de 40
Mdulo I
Desenvolvimento Software CLP - Bsico
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.
Pgina 40 de 40