No programa de controle abaixo, esboça-se o controle automático de um elevador em prédio de três pavimentos.
clpElevador_3_Pavimentos// Esboço de controle automático de um elevador em prédio com 2 andares e térreo. (Atenção: controles que envolvem diretamente a vida humana, como em elevadores, caldeiras, oleodutos, veículos, etc., podendo colocá-la em risco no caso de mau funcionamento, devem ser implementados no mundo real com especial rigor, além de ter que atender legislação específica, testes rigorosíssimos, aprovação por órgãos certificadores, etc. Normalmente são adquiridos em pacotes de software embutidos nos equipamentos controlados. O presente controle aqui esboçado tem caráter meramente de exemplificação e introdução ao estudo do interessante e complexo campo dos controles de elevadores e afins.)
rede 0 // Inicia o controle na seq. esperaTér (O sistema deve ser sempre iniciado com a cabine no térreo e com a sua porta aberta, por meio de acionamentos manuais dos motores após queda de energia elétrica ou manutenção).
se (imedbotãoEmergência) {
acionaimedalarmeEmergência;
}
se (nãoimedFotocélulaouimedExcessoPesoouimedobstáculoPortaouimedbotãoEmergência)
{ acionaproblemaFechaCabine; // Indica algo errado que impede o fechamento da cabine
}
enquanto (imedExcessoPeso)
{
se (nãoimedalarmePeso) // Aciona imediatamente o alarme enquanto perdurar o excesso de peso
{
acionaimedalarmePeso;
}
}
se (nãoVarAux)
{
acionaInício; // Gera um punho na variável Início quando do início da operação (1º ciclo) ou (VarAux)
{
acionaVarAux;
}
}
se (Início)
{
ligaesperandoTérreo; // Ativa a seqüência inicial quando do início da operação
}
//**************** Início seqüência esperandoTérreo ****************
rede 2 // Destrava porta do térreo para permitir entrada dos usuários.
se (nãoimeddestravaPortaTérreo) {
ligaimeddestravaPortaTérreo;
resettempoMínAbertoTérreo;
}
quando (destravaPortaTérreo) temporizatempoMínAbertoTérreo 3 s;
se (imedportaAbertaTérreoounãoimedFotocélulaouimedobstáculoPorta) { // A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta e, se entrou alguém, após a entrada do último usuário, ou, se obstruída, após ser desobstruída. resettempoMínAbertoTérreo;
}
fim_circuito_seqüência
rede 3 // Quando alguém entra e aciona botão para subir, ou algum usuário chama a cabine em andar superior, o PLC trava a porta do térreo e transfere para seq. fechandoTér, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário. se (imedbotãoCab1ºAndarouimedbotãoCab2ºAndarouimedchamaSobe1ºAndarouimedchamaDesce1ºAndarouimedchama2ºAndar)
{
ligaimedcabineEstáSubindo;
ligaimedVentilaIlumina;
}
se (cabineEstáSubindoenãoimedportaAbertaTérreoetempoMínAbertoTérreoenãoproblemaFechaCabine)
{
desligaimeddestravaPortaTérreo; // Trava a porta de acesso à cabine transfere_seqüênciafechandoTérreo;
}
rede 4 // Fim da Seqüência esperandoTérreo
fim_seqüência;
//**************** Fim seqüência esperandoTérreo *******************
//**************** Início seqüência esperando1ºAndar ****************
rede 6 // Destrava porta do 1º andar para permitir entrada dos usuários.
se (nãoimeddestravaPorta1ºAndar) {
ligaimeddestravaPorta1ºAndar;
resettempoMínAberto1ºAndar;
}
quando (destravaPorta1ºAndar) temporizatempoMínAberto1ºAndar 3 s;
se (imedportaAberta1ºAndarounãoimedFotocélulaouimedobstáculoPorta) {
resettempoMínAberto1ºAndar;
}
fim_circuito_seqüência
rede 7 // Quando alguém entra e aciona botão para subir, ou algum usuário chama a cabine em andar superior, o PLC trava a porta do 1ºAndar e transfere para seq. fechando1ºAndar, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário.
se (nãoimedcabineEstáDescendoe (imedbotãoCab2ºAndarouimedchama2ºAndar))
{
ligaimedcabineEstáSubindo;
ligaimedVentilaIlumina;
}
se (nãoimedcabineEstáSubindoe (imedbotãoCabTérreoouimedchamaTérreo))
{
ligaimedcabineEstáDescendo;
ligaimedVentilaIlumina;
}
se (nãoimedbotãoCab2ºAndarenão imedchama2ºAndarenãoimedbotãoCabTérreoenãoimedchamaTérreo)
{
desligaimedcabineEstáSubindo;
desligaimedcabineEstáDescendo;
desligaimedVentilaIlumina;
}
se ((cabineEstáSubindooucabineEstáDescendo) enãoimedportaAberta1ºAndaretempoMínAberto1ºAndarenãoproblemaFechaCabine)
{
desligaimeddestravaPorta1ºAndar;
transfere_seqüênciafechando1ºAndar;
}
rede 8 // Fim da Seqüência esperando1ºAndar
fim_seqüência;
//**************** Fim seqüência esperando1ºAndar ****************
//**************** Início seqüência esperando2ºAndar ****************
rede 10 // Destrava porta do 2º andar para permitir entrada dos usuários.
se (nãoimeddestravaPorta2ºAndar) {
ligaimeddestravaPorta2ºAndar;
resettempoMínAberto2ºAndar;
}
quando (destravaPorta2ºAndar) temporizatempoMínAberto2ºAndar 3 s;
se (imedportaAberta2ºAndarounãoimedFotocélulaouimedobstáculoPorta)
{
resettempoMínAberto2ºAndar;
}
fim_circuito_seqüência
rede 11 // Quando alguém entra e aciona botão para descer, ou algum usuário chama a cabine em andar inferior, o PLC trava a porta do 2ºAndar e transfere para seq. fechando2ºAndar, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário. se (imedbotãoCabTérreoouimedbotãoCab1ºAndarouimedchamaSobe1ºAndarouimedchamaDesce1ºAndarouimedchamaTérreo)
{
ligaimedcabineEstáDescendo;
ligaimedVentilaIlumina;
}
se (cabineEstáDescendoenãoimedportaAberta2ºAndaretempoMínAberto2ºAndarenãoproblemaFechaCabine)
{
desligaimeddestravaPorta2ºAndar;
transfere_seqüênciafechando2ºAndar;
}
rede 12 // Fim da Seqüência esperando2ºAndar
fim_seqüência;
//**************** Fim seqüência esperando2ºAndar ****************
//**************** Início seqüência fechandoTérreo ****************
rede 13 // Seq. fechandoTérreo: cabine parada no térreo e fechando sua porta
seqüênciafechandoTérreo
rede 14 // Fecha porta da cabine.
se (nãoimedmotorFechaCabine) {
ligaimedmotorFechaCabine;
}
fim_circuito_seqüência
rede 15 // No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo térreo".
se (imedportaAbertaTérreoounãoimedFotocélulaouimedbotãoEmergênciaouimedobstáculoPorta)
{
desligaimedmotorFechaCabine;
transfere_seqüênciaabrindoTérreo;
}
senão
{
se (imedcabineFechada)
{
desligaimedmotorFechaCabine;
transfere_seqüênciasubindoTérreo;
}
}
rede 16 // Fim da Seqüência fechandoTérreo
fim_seqüência;
//**************** Fim seqüência fechandoTérreo ****************
//**************** Início seqüência fechando1ºAndar ****************
rede 17 // Seq. fechando1ºAndar: cabine parada no 1ºAndar e fechando sua porta
seqüênciafechando1ºAndar
rede 18 // Fecha porta da cabine.
se (nãoimedmotorFechaCabine) {
ligaimedmotorFechaCabine;
}
fim_circuito_seqüência
rede 19 // No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo andar tal".
se (imedportaAberta1ºAndarounãoimedFotocélulaouimedobstáculoPortaouimedbotãoEmergência)
{
desligaimedmotorFechaCabine;
transfere_seqüênciaabrindo1ºAndar;
}
senão
{
se (imedcabineFechada)
{
desligaimedmotorFechaCabine;
se (cabineEstáSubindo)
{
transfere_seqüênciasubindo1ºAndar;
}
se (cabineEstáDescendo)
{
transfere_seqüênciadescendo1ºAndar;
}
}
}
rede 20 // Fim da Seqüência fechando1ºAndar
fim_seqüência;
//**************** Fim seqüência fechando1ºAndar ****************
//**************** Início seqüência fechando2ºAndar ****************
rede 21 // Seq. fechando2ºAndar: cabine parada no 2ºAndar e fechando sua porta
seqüênciafechando2ºAndar
rede 22 // Fecha porta da cabine.
se (nãoimedmotorFechaCabine) {
ligaimedmotorFechaCabine;
}
fim_circuito_seqüência
rede 23 // No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo andar tal".
se (imedportaAberta2ºAndarounãoimedFotocélulaouimedobstáculoPortaouimedbotãoEmergência)
{
desligaimedmotorFechaCabine;
transfere_seqüênciaabrindo2ºAndar;
}
senão
{
se (imedcabineFechada)
{
desligaimedmotorFechaCabine;
transfere_seqüênciadescendo2ºAndar;
}
}
rede 24 // Fim da Seqüência fechando2ºAndar
fim_seqüência;
//**************** Fim seqüência fechando2ºAndar ****************
//**************** Início seqüência abrindoTérreo****************
rede 25 // Seq. abrindoTérreo: cabine parada no térreo e abrindo sua porta
seqüênciaabrindoTérreo
rede 26 // Aciona abertura da porta da cabine.
se (nãoimedmotorAbreCabine) {
ligaimedmotorAbreCabine;
}
fim_circuito_seqüência
rede 27 // Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
se (imedcabineAberta) {
desligaimedmotorAbreCabine;
desligaimedcabineEstáDescendo;
desligaimedVentilaIlumina; transfere_seqüênciaesperandoTérreo;
}
rede 28 // Fim da Seqüência abrindoTérreo
fim_seqüência;
//**************** Fim seqüência abrindoTérreo****************
//**************** Início seqüência abrindo1ºAndar ****************
rede 29 // Seq. abrindo1ºAndar: cabine parada no 1ºAndar e abrindo sua porta
seqüênciaabrindo1ºAndar
rede 30 // Aciona abertura da porta da cabine.
se (nãoimedmotorAbreCabine) {
ligaimedmotorAbreCabine;
}
fim_circuito_seqüência
rede 31 // Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
se (imedcabineAberta)
{
desligaimedmotorAbreCabine;
transfere_seqüênciaesperando1ºAndar;
}
rede 32 // Fim da Seqüência abrindo1ºAndar
fim_seqüência;
//**************** Fim seqüência abrindo1ºAndar **************** //**************** Início seqüência abrindo2ºAndar ****************
rede 33 // Seq. abrindo2ºAndar: cabine parada no 2ºAndar e abrindo sua porta
seqüênciaabrindo2ºAndar
rede 34 // Aciona abertura da porta da cabine.
se (nãoimedmotorAbreCabine)
{
ligaimedmotorAbreCabine;
}
fim_circuito_seqüência
rede 35 // Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
se (imedcabineAberta)
{
desligaimedmotorAbreCabine;
desligaimedcabineEstáSubindo;
desligaimedVentilaIlumina; transfere_seqüênciaesperando2ºAndar;
}
rede 36 // Fim da Seqüência abrindo2ºAndar
fim_seqüência;
//**************** Fim seqüência abrindo2ºAndar ****************
//**************** Início seqüência subindoTérreo****************
rede 37 // Seq. subindoTérreo: cabine subindo do térreo para o 1º andar.
seqüênciasubindoTérreo
rede 38 // Liga motor para subida da cabine.
se (nãoimedmotorSobeCabine) {
ligaimedmotorSobeCabine;
}
fim_circuito_seqüência
rede 39 // Quando a cabine chega ao 1º andar, verifica se deve parar ou continuar. se (imedcabineEstá1ºAndarenãoimedbotãoCab2ºAndarenãoimedchama2ºAndar)
{
desligaimedcabineEstáSubindo;
desligaimedVentilaIlumina;
}
se (imedcabineEstá1ºAndare (imedbotãoCab1ºAndarouimedchamaSobe1ºAndar ou (imedchamaDesce1ºAndarenãoimedcabineEstáSubindo) )
ouimedbotãoEmergência)
{
desligaimedmotorSobeCabine;
transfere_seqüênciaabrindo1ºAndar;
}
senão
{
se (imedcabineEstá1ºAndar)
{
transfere_seqüênciasubindo1ºAndar;
}
}
rede 40 // Fim da Seqüência subindoTérreo
fim_seqüência;
//**************** Fim seqüência subindoTérreo ****************
//**************** Início seqüência subindo1ºAndar ****************
rede 41 // Seq. subindo1ºAndar: cabine subindo do 1º para o 2º andar.
seqüênciasubindo1ºAndar
rede 42 // Liga motor para subida da cabine.
se (nãoimedmotorSobeCabine) {
ligaimedmotorSobeCabine;
}
fim_circuito_seqüência
rede 43 // Quando a cabine chega no 2º andar, desliga o motor.
se (imedcabineEstá2ºAndar)
{
desligaimedmotorSobeCabine; desligaimedcabineEstáSubindo;
desligaimedVentilaIlumina; transfere_seqüênciaabrindo2ºAndar;
}
rede 44 // Fim da Seqüência subindo1ºAndar
fim_seqüência;
//**************** Fim seqüência subindo1ºAndar ****************
//**************** Início seqüência descendo1ºAndar ****************
rede 45 // Seq. descendo1ºAndar: cabine descendo do 1º andar para o Térreo.
seqüênciadescendo1ºAndar
rede 46 // Liga motor para descida da cabine.
se (nãoimedmotorDesceCabine) {
ligaimedmotorDesceCabine;
}
fim_circuito_seqüência
rede 47 // Quando a cabine chega no Térreo, desliga o motor.
se (imedcabineEstáTérreo)
{
desligaimedmotorDesceCabine; desligaimedcabineEstáDescendo;
desligaimedVentilaIlumina; transfere_seqüênciaabrindoTérreo;
}
rede 48 // Fim da Seqüência descendo1ºAndar
fim_seqüência;
//**************** Fim seqüência descendo1ºAndar ****************
//**************** Início seqüência descendo2ºAndar ****************
rede 49 // Seq. descendo2ºAndar: cabine descendo do 2º andar para o 1º andar.
seqüênciadescendo2ºAndar
rede 50 // Liga motor para descida da cabine.
se (nãoimedmotorDesceCabine) {
ligaimedmotorDesceCabine;
}
fim_circuito_seqüência
rede 51 // Quando a cabine chega no 1º andar, verifica se deve parar ou continuar. se (imedcabineEstá1ºAndarenãoimedbotãoCabTérreoenãoimedchamaTérreo)
{
desligaimedcabineEstáDescendo;
desligaimedVentilaIlumina;
}
se (imedcabineEstá1ºAndare (imedbotãoCab1ºAndarouimedchamaDesce1ºAndar ou (imedchamaSobe1ºAndarenãoimedcabineEstáDescendo) )
ouimedbotãoEmergência)
{
desligaimedmotorDesceCabine;
transfere_seqüênciaabrindo1ºAndar;
}
senão
{
se (imedcabineEstá1ºAndar)
{
transfere_seqüênciadescendo1ºAndar;
}
}
rede 52 // Fim da Seqüência descendo2ºAndar
fim_seqüência;
//**************** Fim seqüência descendo2ºAndar ****************
fim
Como resultado da compilação do programa Elevador_3_Pavimentos acima, o SimuPLC 4.1.0 gerou, exatamente, o seguinte código, em Lista de Instruções - IL:
// CLP Elevador_3_Pavimentos // Esboço de controle automático de um elevador em prédio com 2 andares e térreo. (Atenção: controles que envolvem diretamente a vida humana, como em elevadores, caldeiras, oleodutos, veículos, etc., podendo colocá-la em risco no caso de mau funcionamento, devem ser implementados no mundo real com especial rigor, além de ter que atender legislação específica, testes rigorosíssimos, aprovação por órgãos certificadores, etc. Normalmente são adquiridos em pacotes de software embutidos nos equipamentos controlados. O presente controle aqui esboçado tem caráter meramente de exemplificação e introdução ao estudo do interessante e complexo campo dos controles de elevadores e afins.)
NETWORK0// Inicia o controle na seq. esperaTér (O sistema deve ser sempre iniciado com a cabine no térreo e com a sua porta aberta, por meio de acionamentos manuais dos motores após queda de energia elétrica ou manutenção).
LDII2.1 =IQ1.0
LDNII1.7 OII2.2 OII2.0 OII2.1 =M0.0 // Indica algo errado que impede o fechamento da cabine
LBLENQ1
LDII2.2 NOT JMPENQ2
LDNIQ1.1 // Aciona imediatamente o alarme enquanto perdurar o excesso de peso =IQ1.1
LDNV_0 JMPENQ1
LBLENQ2
LDNVarAux =Início // Gera um punho na variável Início quando do início da operação (1º ciclo) OVarAux =VarAux
LDInício SesperandoTérreo, 1 // Ativa a seqüência inicial quando do início da operação //**************** Início seqüência esperandoTérreo ****************
NETWORK1// Seq. esperandoTérreo: cabine parada no térreo aguardando chamadas/usuários
LSCResperandoTérreo
NETWORK2// Destrava porta do térreo para permitir entrada dos usuários.
LDNIQ0.6 SIQ0.6, 1 RT0, 1
LDQ0.6 TONT0, 3000
LDII0.6 ONII1.7 OII2.0 // A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta e, se entrou alguém, após a entrada do último usuário, ou, se obstruída, após ser desobstruída. RT0, 1
NETWORK3// Quando alguém entra e aciona botão para subir, ou algum usuário chama a cabine em andar superior, o PLC trava a porta do térreo e transfere para seq. fechandoTér, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário.
LDQ1.2 ANII0.6 AT0 ANM0.0 RIQ0.6, 1 // Trava a porta de acesso à cabine
SCRTfechandoTérreo
NETWORK4// Fim da Seqüência esperandoTérreo
SCRE //**************** Fim seqüência esperandoTérreo ******************* //**************** Início seqüência esperando1ºAndar ****************
NETWORK5// Seq. esperando1ºAndar: cabine parada no 1º Andar aguardando chamadas/usuários
LSCResperando1ºAndar
NETWORK6// Destrava porta do 1º andar para permitir entrada dos usuários.
LDNIQ0.5 SIQ0.5, 1 RT1, 1
LDQ0.5 TONT1, 3000
LDII0.5 ONII1.7 OII2.0 RT1, 1
NETWORK7// Quando alguém entra e aciona botão para subir, ou algum usuário chama a cabine em andar superior, o PLC trava a porta do 1ºAndar e transfere para seq. fechando1ºAndar, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário.
SCRE //**************** Fim seqüência esperando1ºAndar **************** //**************** Início seqüência esperando2ºAndar ****************
NETWORK9// Seq. esperando2ºAndar: cabine parada no 2ºAndar aguardando chamadas/usuários
LSCResperando2ºAndar
NETWORK10// Destrava porta do 2º andar para permitir entrada dos usuários.
LDNIQ0.4 SIQ0.4, 1 RT2, 1
LDQ0.4 TONT2, 3000
LDII0.4 ONII1.7 OII2.0 RT2, 1
NETWORK11// Quando alguém entra e aciona botão para descer, ou algum usuário chama a cabine em andar inferior, o PLC trava a porta do 2ºAndar e transfere para seq. fechando2ºAndar, desde que a porta da cabine não seja aberta, o botão "Emergência" não tenha sido pressionado, não haja excesso de peso nem alguém na linha da porta da cabine, o que é indicado pela ausência de luz na fotocélula, e nem obstáculo impedindo seu fechamento. A cabine só é fechada após permanecer um tempo mínimo com sua porta aberta após a entrada do último usuário.
SCRE //**************** Fim seqüência esperando2ºAndar **************** //**************** Início seqüência fechandoTérreo ****************
NETWORK13// Seq. fechandoTérreo: cabine parada no térreo e fechando sua porta
LSCRfechandoTérreo
NETWORK14// Fecha porta da cabine.
LDNIQ0.3 SIQ0.3, 1
NETWORK15// No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo térreo".
LDII0.6 ONII1.7 OII2.1 OII2.0 RIQ0.3, 1
SCRTabrindoTérreo
LDII0.6 ONII1.7 OII2.1 OII2.0 NOT
LDII0.7 ALD RIQ0.3, 1
SCRTsubindoTérreo
NETWORK16// Fim da Seqüência fechandoTérreo
SCRE //**************** Fim seqüência fechandoTérreo **************** //**************** Início seqüência fechando1ºAndar ****************
NETWORK17// Seq. fechando1ºAndar: cabine parada no 1ºAndar e fechando sua porta
LSCRfechando1ºAndar
NETWORK18// Fecha porta da cabine.
LDNIQ0.3 SIQ0.3, 1
NETWORK19// No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo andar tal".
LDII0.5 ONII1.7 OII2.0 OII2.1 RIQ0.3, 1
SCRTabrindo1ºAndar NOT
LDII0.7 ALD RIQ0.3, 1 LPS
LDQ1.2 ALD
SCRTsubindo1ºAndar LPP
LDQ1.3 ALD
SCRTdescendo1ºAndar
NETWORK20// Fim da Seqüência fechando1ºAndar
SCRE //**************** Fim seqüência fechando1ºAndar **************** //**************** Início seqüência fechando2ºAndar ****************
NETWORK21// Seq. fechando2ºAndar: cabine parada no 2ºAndar e fechando sua porta
LSCRfechando2ºAndar
NETWORK22// Fecha porta da cabine.
LDNIQ0.3 SIQ0.3, 1
NETWORK23// No momento do fechamento da cabine, se alguém abrir sua porta, interromper a luz na fotocélula, acionar o botão de emergência, ou segurar sua porta ou colocar algum obstáculo impedindo o seu fechamento, o controle, por medida de segurança, transfere para a seqüência de operação "abrindo andar tal".
LDII0.4 ONII1.7 OII2.0 OII2.1 RIQ0.3, 1
SCRTabrindo2ºAndar
LDII0.4 ONII1.7 OII2.0 OII2.1 NOT
LDII0.7 ALD RIQ0.3, 1
SCRTdescendo2ºAndar
NETWORK24// Fim da Seqüência fechando2ºAndar
SCRE //**************** Fim seqüência fechando2ºAndar **************** //**************** Início seqüência abrindoTérreo****************
NETWORK25// Seq. abrindoTérreo: cabine parada no térreo e abrindo sua porta
LSCRabrindoTérreo
NETWORK26// Aciona abertura da porta da cabine.
LDNIQ0.2 SIQ0.2, 1
NETWORK27// Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
LDII1.0 RIQ0.2, 1 RIQ1.3, 1 RIQ0.7, 1
SCRTesperandoTérreo
NETWORK28// Fim da Seqüência abrindoTérreo
SCRE //**************** Fim seqüência abrindoTérreo**************** //**************** Início seqüência abrindo1ºAndar ****************
NETWORK29// Seq. abrindo1ºAndar: cabine parada no 1ºAndar e abrindo sua porta
LSCRabrindo1ºAndar
NETWORK30// Aciona abertura da porta da cabine.
LDNIQ0.2 SIQ0.2, 1
NETWORK31// Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
LDII1.0 RIQ0.2, 1
SCRTesperando1ºAndar
NETWORK32// Fim da Seqüência abrindo1ºAndar
SCRE //**************** Fim seqüência abrindo1ºAndar **************** //**************** Início seqüência abrindo2ºAndar ****************
NETWORK33// Seq. abrindo2ºAndar: cabine parada no 2ºAndar e abrindo sua porta
LSCRabrindo2ºAndar
NETWORK34// Aciona abertura da porta da cabine.
LDNIQ0.2 SIQ0.2, 1
NETWORK35// Quando a cabine estiver aberta, fica esperando chamadas ou usuários.
LDII1.0 RIQ0.2, 1 RIQ1.2, 1 RIQ0.7, 1
SCRTesperando2ºAndar
NETWORK36// Fim da Seqüência abrindo2ºAndar
SCRE //**************** Fim seqüência abrindo2ºAndar **************** //**************** Início seqüência subindoTérreo****************
NETWORK37// Seq. subindoTérreo: cabine subindo do térreo para o 1º andar.
LSCRsubindoTérreo
NETWORK38// Liga motor para subida da cabine.
LDNIQ0.0 SIQ0.0, 1
NETWORK39// Quando a cabine chega ao 1º andar, verifica se deve parar ou continuar.
LDII1.5 ANII1.1 ANII0.0 RIQ1.2, 1 RIQ0.7, 1
LDII1.5
LDII1.2 OII0.1
LDII0.2 ANIQ1.2 OLD ALD OII2.1 RIQ0.0, 1
SCRTabrindo1ºAndar NOT
LDII1.5 ALD
SCRTsubindo1ºAndar
NETWORK40// Fim da Seqüência subindoTérreo
SCRE //**************** Fim seqüência subindoTérreo **************** //**************** Início seqüência subindo1ºAndar ****************
NETWORK41// Seq. subindo1ºAndar: cabine subindo do 1º para o 2º andar.
LSCRsubindo1ºAndar
NETWORK42// Liga motor para subida da cabine.
LDNIQ0.0 SIQ0.0, 1
NETWORK43// Quando a cabine chega no 2º andar, desliga o motor.
LDII1.4 RIQ0.0, 1 RIQ1.2, 1 RIQ0.7, 1
SCRTabrindo2ºAndar
NETWORK44// Fim da Seqüência subindo1ºAndar
SCRE //**************** Fim seqüência subindo1ºAndar **************** //**************** Início seqüência descendo1ºAndar ****************
NETWORK45// Seq. descendo1ºAndar: cabine descendo do 1º andar para o Térreo.
LSCRdescendo1ºAndar
NETWORK46// Liga motor para descida da cabine.
LDNIQ0.1 SIQ0.1, 1
NETWORK47// Quando a cabine chega no Térreo, desliga o motor.
LDII1.6 RIQ0.1, 1 RIQ1.3, 1 RIQ0.7, 1
SCRTabrindoTérreo
NETWORK48// Fim da Seqüência descendo1ºAndar
SCRE //**************** Fim seqüência descendo1ºAndar **************** //**************** Início seqüência descendo2ºAndar ****************
NETWORK49// Seq. descendo2ºAndar: cabine descendo do 2º andar para o 1º andar.
LSCRdescendo2ºAndar
NETWORK50// Liga motor para descida da cabine.
LDNIQ0.1 SIQ0.1, 1
NETWORK51// Quando a cabine chega no 1º andar, verifica se deve parar ou continuar.
LDII1.5 ANII1.3 ANII0.3 RIQ1.3, 1 RIQ0.7, 1
LDII1.5
LDII1.2 OII0.2
LDII0.1 ANIQ1.3 OLD ALD OII2.1 RIQ0.1, 1
SCRTabrindo1ºAndar NOT
LDII1.5 ALD
SCRTdescendo1ºAndar
NETWORK52// Fim da Seqüência descendo2ºAndar
SCRE //**************** Fim seqüência descendo2ºAndar ****************