Alm da programao de CLPs pelo mtodo intuitivo, existem algumas mtodos formais muito uteis principalmente quando se programa aplicaes grandes ou complexas: - o crescimento da complexidade de sistemas automatizados requer a minimizao do tempo de programao e, se possvel, a possibilidade de reutilizao de cdigos para CLPs; - em aplicaes crticas relacionadas sistemas de segurana, existe a necessidade de procedimentos de verificao e de validao das aplicaes, ou seja, uma metodologia para se provar caractersticas estticas e dinmicas de programas de CLPs, tal como tempos de resposta.
A figura seguinte representa o processo de criao de um programa de controle para CLP. Sem o uso de tcnicas formais, o processo seria limitado ao anel externo do diagrama. O programa implementado diretamente da especificao informal do problema e validado informalmente com bases nestas especificaes. Entende-se por especificao informal do problema a descrio do sistema automtico em linguagem no formal (descrio do problema) e todo o conjunto de documentao tcnica do sistema. A validao neste caso possvel posteriormente implementao do projeto e quando se dispe de uma equipe de testes, porm este um processo lento e caro.
Figura 5.1. Processo de implementao de programas em CLPs
Validao Realizao Implementao Formalizao Especificao formal Especificao informal Implementao direta Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 185 de 250 Como alternativa a esta metodologia de projeto, pode-se utilizar tcnicas formais para a programao e a validao de programas em CLPs. Nesta metodologia, adicionam-se as etapas de formalizao, especificao formal e implementao. A formalizao consiste da converso da especificao informal em uma especificao formal, ou seja, que segue regras de representao e de comportamento. Esta etapa pode ter o auxlio de softwares nas nunca automtica, pois depende da interpretao do projetista. Uma especificao formal deve ser capaz de: 1 - capturar as caractersticas estticas e dinmicas do sistema; 2 - acomodar o estilo de modelagem dos estados e de atividades de uma forma natural; 3 - permitir a sua integrao em qualquer outra linguagem de modelagem; 4 - ser capaz de representar sistemas sobre mltiplos nveis de abstrao.
J para o rastreamento de erros, verificao e validao, a tcnica de especificao deve permitir simulao e animao e dispor de tcnicas de anlise eficientes para verificar as propriedades do modelo. A implementao depende da plataforma tecnolgica que se utiliza (software e hardware do CLP), neste caso pode-se contar com ferramentas de gerao de cdigo automtico. De acordo com a norma IEC 61131 descrita anteriormente, existem atualmente cinco linguagens padronizadas: IL (lista de instrues), ST (texto estruturado), FBD (diagramas de blocos funcionais), SFC (sequential function charts) e LD (diagramas ladder). No captulo anterior foram apresentadas as linguagens LD e FBD, neste captulo ser apresentada a linguagem SFC. Derivada das Redes de Petri (tcnica descrita mais a diante neste captulo) e do seu subconjunto destinado modelagem de sistemas seqenciais IEC 848, o denominado Grafcet (lanado em 1988), o SFC se presta a uma especificao formal de alto nvel adequada para projetos de maior complexidade baseados em CLPs. A vantagem a destacar a possibilidade de se traduzir um cdigo SFC para as demais linguagens da norma. Quando o projeto requer o processamento paralelo de duas ou mais tarefas em um controlador, ao contrario da programao direta em ladder (por exemplo), a tcnica do SFC torna-se mais adequada, pois baseia-se em diagramas grficos de estrutura seqencial adequada modelagem de sistemas Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 186 de 250
orientados a eventos, atravs de uma abordagem capaz de resolver problemas sequencias de grande porte ou complexidade com mltiplos processos (ou seqncias) paralelos. Atualmente o SFC adotado por alguns fabricantes de CLP como linguagem direta de programao. Para CLPs que no possuem essa caracterstica, o SFC pode ser traduzido para ladder ou para qualquer outra linguagem IEC 1131, tornando-se assim uma ferramenta para elaborao de comandos seqenciais, segundo uma abordagem top down para estruturao das aes do programa. A sua filosofia consiste em partir da descrio informal das funes de automao a se projetar e decomp-las em passos e transies. Nos passos e s neles so realizadas aes (por exemplo, ligar um contator de acionamento de um motor) ou eventualmente pode no se realizar qualquer ao (quando o controlador est em repouso). Em cada instante, numa dada seqncia s um passo est ativo. Para haver a transio de um passo para outro preciso que se verifique uma ou mais condies de transio. Por exemplo, para que um elevador em movimento do 2 para o 3 andar pare neste ltimo, preciso que um fim de curso indique a chegada da cabine a este andar. Exemplo de representao de um SFC:
Figura 5.2. Exemplo de um SFC Passo inicial Passo 1 Passo 2 0 1 2 1 Transio 2 Transio 3 Transio Aes a realizar no passo 0 Aes a realizar no passo 1 Aes a realizar no passo 2 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 187 de 250
Elementos de um SFC Os elementos de um SFC so passos, transies, arcos, aes e regras de evoluo. Transio Passo (step) Ao Arco orientado
Um arco representado por uma linha vertical e orientado de cima pra baixo (default). No caso em que se projeta um arco orientado de baixo para a cima, o sentido deve ser representado atravs uma seta. Uma seqncia definida por uma srie de passos, transies e passos ligados por arcos orientados:
possvel realizar seqncias alternativas atravs de caminhos divergentes e convergentes. As seqncias so executadas em mtua excluso.
home start N Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 188 de 250
Regras de validao de seqncias alternativas: As condies booleanas associadas a transies so estimadas da esquerda para direta. Se uma ou mais transies tem condies TRUE, a precedncia garantida transio mais a esquerda, possvel todavia modificar a regra de precedncia, atribuindo uma prioridade cada transio. boa prtica associar a transies presentes em seqncias alternativas, condies lgicas mutuamente exclusivas Seqncias Simultneas: possvel realizar seqncias simultneas, da seguinte forma:
Caminho divergente Caminho convergente Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 189 de 250
As seqncias simultneas so consideradas todas em paralelo, pode-se por exemplo utilizar uma seqncia para o controle do processo e outra para realizar o monitoramento. Em cada seqncia simultnea, somente um passo de cada vez pode ser ativado e a convergncia de seqncias simultneas acontece somente quando todos os ltimos passos de cada seqncia forem ativados. Regras de Programao de uma seqncia simultnea: necessrio que a convergncia de seqncias simultneas possa ser atuada, quando todos os passos que se inserem em tal convergncia devem poder ficar todos ativos. Exemplo de convergncia de seqncias simultneas errada:
Divergencia de seqncias simultneas Convergencia de seqncias simultneas
Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 190 de 250
Uma transio representada por uma barra horizontal, a qual possvel associar pelo menos um passo precedente e pelo menos um passo seguinte (os passos precedentes e seguintes podem ser mais de um) Para cada transio vem associada uma condio. As condies podem ser constitudas de: Uma varivel booleana (TRUE, FALSE) ou, Uma linha em linguagem ladder. Se a linha for ativada, a condio associada transao torna-se verdadeira, ou, Uma sada binria de qualquer FB. Se a sada verdadeira ento as condies associadas transio tornam-se verdadeiras, ou Um nome de um programa. O programa deve ser definido separadamente e pode ser escrito em uma das linguagens IEC 1131-3. O programa deve fornecer como sada um valor booleano que deve ser associado ao nome do prprio programa.
A condio associada a uma transio estimada SOMENTE quando todos os passos precedentes a essa estiverem ativos. Quando todos os passos precedentes a uma transio estiverem ativos e a condio associada a esta verdadeira, todos os passos precedentes desativam-se e os passos seguintes tornam-se ativos. Se a uma transio est associada a um nome, este deve ser singular (ou nico) em todo o programa (varivel local). Exemplos de Transio: Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 191 de 250
Exemplo de diagramas errados:
Programa "start" codificado em Ladder: Step1 Step2 start (TRUE, FALSE) Step1 Step2 x y z Step1 Step2 AND Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 192 de 250
Tipos de passo: Passo Normal (caixa simples) e Passo Inicial (representado por caixa dupla)
Pode existir somente um Passo Inicial, que vai ser ativado em um cold-start. Cada passo tem associado um nome nico em todo o programa (variveis locais). Para cada passo associado um estado: ativo ou no ativo. O estado ativo quando a transio precedente ao passo "liberada", isso significa tambm que a condio associada a esta transio tornou-se verdadeira. O passo desativado com a liberao da transio que o sucede, ou transio de sada. A cada passo possvel se associar uma ou mais aes que descrevem o que se fazer quando o relativo passo ativado. Cada ao representada por um retngulo conectado ao passo:
Nome Nome Step1 Step2 start x y z start Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 193 de 250
Qualificador: Este parmetro especifica as modalidades de execuo da ao. Pode assumir os valores: N, S, R, L, D, P, SD, DS, SL Nome da ao: Este parmetro nico em todo o programa. Ele corresponde ao nome do programa que realiza a ao. O programa pode ser escrito em qualquer uma das linguagens IEC 1131 Indicador da varivel: Este parmetro opcional e permite indicar a varivel que modificada pela ao e, quando modificada, indica o fim da execuo. Uma mesma ao pode ser associada a mais de um passo. possvel que a um passo no seja associada nenhuma ao. Nesse caso quando o passo fica ativo, nada executado, e se espera que o passo seja desativado pela liberao da transio de sada. Observao: A norma IEC 1131-3 assume que qualquer ao associada a um passo vai ser executada ainda mais uma vez aps a desativao do passo. Pode-se ou no adotar tal hiptese. Vantagem: permite o reset de eventuais parmetros ou variveis usados durante a execuo da ao.
Qualificador 'N' Non stored Qualificador Nome da ao Indicador da varivel Qualificador Nome da ao Indicador da varivel Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 194 de 250
A ao "Action1" executada continuamente enquanto o Step1 ativo. Quando o Step1 desativado, a ao executada somente mais uma vez
Qualificador 'S', 'R', Set e Reset
A ao "Action1" comea a ser executada quando o Step1 ficar ativo. A ao memorizada e continua a ser executada enquanto o passo StepN ficar ativo. Neste caso a ao "Action1" executada somente mais vez. No caso em que uma ao no seja resetada atravs do qualificador 'R', esta ser executada indefinidamente.
Qualificador 'P' pulse Action1 N Step1 Step1.X Action1 T1 T1 Action1 S Step1 Step1.X T1 T1 Action1 R StepN StepN.X Action1 TN TN Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 195 de 250
Quando o Step1 ativado, a ao Action1 executada somente uma vez, em algumas implementaes do padro, a execuo depois da desativao do Step1 pode no ser prevista.
Qualificador 'L' Time Limited
A ao "Action1" comea a ser executada quando o Step1 fica ativo. A ao executada em um determinado intervalo de tempo T (associado ao qualificador L). Ao fim de tal intervalo, a ao terminada. Se o passo desativado antes que do final do tempo T, ento a ao "Action1" terminada. Quando a ao terminada, em ambos os casos, essa executada pela a ltima vez e somente uma vez. Action1 P Step1 Step1.X T1 T1 Action1 Action1 L Step1 Step1.X T1 T1 Action1 T Step1.X T1 Action1 T Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 196 de 250
Qualificador 'SL' stored and time limited
Qualificador 'D' time delayed
Action1 SL Step1 Step1.X T1 StepN.X Action1 T Step1.X Action1 R StepN TN StepN.X Action1 Step1.X StepN.X Action1 T T Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 197 de 250
A ao "Action1" comea a ser executada depois do intervalo temporal T (associado ao qualificador D) a partir do instante no qual o Step1 fica ativo. A ao executada enquanto o Step1 no desativado. Nesse caso a ao "Action1" executada somente uma vez. Se o Step1 no permanece ativo por um tempo pelo menos igual a T, a ao nunca executada.
Qualificador 'SD' stored and time delayed
Action1 D Step1 Step1.X T1 T1 Action1 T Step1.X T1 Action1 T Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 198 de 250
Quando o Step1 ativo, a ao "Action1" memorizada, mas no executada at que o intervalo de durao T termine. A ao executada enquanto no resetada atravs do qualificador R. Se a ao "Action1" chamada com o qualificador R antes que o intervalo T acaba-se, a ao no ser executada.
Elementos Fundamentais de Controle atravs de SFC Bypass ou salto de uma seqncia:
Action1 SD Step1 Step1.X T1 StepN.X Action1 T Step1.X Action1 R StepN TN StepN.X Action1 T Step1.X StepN.X Action1 T Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 199 de 250
Loop de uma sequencia
Rendezvous:
Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 200 de 250
Exemplo: Controle de Acesso O exemplo a seguir representa um SFC para controle de segurana de duas portas. Uma porta requer um cdigo de acesso de dois dgitos, a segunda porta requer um cdigo de trs dgitos. A execuo do sistema inicia-se no topo do diagrama, no passo inicial, quando o sistema ligado. Existe uma ao associada ao passo inicial que trava a porta (Nota: na prtica, em SFC se utiliza lgica ladder para acionamento de sadas e leitura de entradas, recurso no apresentado no diagrama). Aps a inicializao do diagrama, sua execuo dividida em dois processos e ambos os passos 1 e 6 so ativados. Quando uma condio lgica de digitao do cdigo satisfeita, a transio correspondente desativa o passo anterior e aciona o passo seguinte. Enquanto o passo 1 estiver ativo, duas transies podem ser disparadas. No caso da digitao correta do dgito, o passo 1 ficara inativo e o passo 2 ativo. Caso a digitao seja incorreta, ento o a transio leva o sistema novamente para o passo 1. O passo 1 no tem nenhuma ao associada, portanto nada deve acontecer neste perodo. A lgica para ambas as portas deve se repetir aps o final do ciclo de combinao-abertura-atraso- travamento.
Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 201 de 250
Exemplo: Controle de Prensa Um SFC para o controle de uma prensa de estampagem apresentado a seguir. Note que o processo composto por uma nica seqncia, portanto poderia ser implementado diretamente em ladder. O processo da prensa se inicia em um estado ocioso, quando um boto automtico pressionado, a alimentao da prensa e uma luz de indicao so ligados. Frente deteco de uma pea, o movimento iniciado at a sensibilizao de um fim de curso, ento a prensa tem o movimento de retorno acionado at um fim de curso superior ser acionado. Um boto de parada pode ser acionado somente durante o movimento de descida da prensa (note que este tipo de mecanismo de segurana 2 Incio 1 3 4 1o dgito 1o dgito errado OK 2o dgito OK 3o dgito OK destrava#1 5 seg. atraso 5 trava#1 7 6 8 destrava#2 5 seg. atraso 9 trava#2 Trava portas 2o dgito errado 3o dgito errado 1o dgito OK 2o dgito OK 1o dgito errado 2o dgito errado 3 seg. atraso = 1 = 1 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 202 de 250
pode ser ativo durante toda a operao). Quando o sistema parado, deve-se pressionar um boto de reset antes de se iniciar novamente a operao automtica. Aps o passo 6, a prensa aguarda a no deteco da pea antes de aguardar por uma nova pea. Sem este mecanismo a prensa entraria em um ciclo interminvel.
Exerccios 5.1. Crie um SFC para uma estao de trabalho para 2 pessoas. A estao tem duas prensas que podem ser utilizadas ao mesmo tempo. Cada prensa tem um boto de ciclo que inicia o avano. Um fim 1 2 alimentao on 3 avano on 4 Avano off 6 retrao off Luz off Fixa pea off retrao on Fixa pea on luz on avano off Boto reset Boto automtico Pea no detectada Pea detectada boto stop 1 FC inferior FC superior 2 3 4 5 6 7 alimentaa off 5 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 203 de 250 de curso inferior interrompe o avano, e o cilindro retrai at o acionamento de um fim de curso superior. 5.2. Crie um SFC para o controle de um semforo de trnsito. Devem-se considerar botes para a solicitao de travessia de pedestres em ambos os sentidos. Uma seqncia normal de operao deve ser: Sinal verde por 16 segundos, Amarelo por 4 segundos e Vermelho por 16 segundos. Se um dos botes de pedestres for acionado, uma luz de travessia de pedestre deve ser acesa por 10 segundos e o sinal verde estendido por 24 segundos. 5.3. Desenhe um SFC para o processo de estampagem onde o avano e a retrao so disparados por um boto de ciclo nico. 5.4. Projete o controle de um porto automtico de garagem: - existe um nico boto na garagem e outro no controle remoto. - quando o boto pressionado, o porto abre ou fecha. - se o boto pressionado durante o movimento, o porto pra. Um Segundo acionamento do boto inicia o movimento no sentido contrrio. - existem fins de curso nas duas extremidades do movimento do porto. - existe uma barreia tica no curso do porto, que interrompe o fechamento e inicia a abertura quando o sinal tico bloqueado. - existe uma sinalizao luminosa que se ativa por 1 minuto aps a abertura ou o fechamento do porto.
Converso de diagramas SFC em linguagem Ladder Um diagrama SFC pode ser convertido diretamente em ladder de algumas formas distintas. O mtodo aqui apresentado deve ser utilizado em seqncia elaborao do diagrama SFC. O programa ladder comea com uma seo de inicializao de passos e transies para valores nicos. Em uma segunda seo da lgica ladder ativam-se as transies subseqentes aos passos. Em uma terceira seo, caso determinada condio de transio seja satisfeita, ento o prximo passo ativado e o passo precedente, bem como a prpria transio em questo, so desativados. Segue-se a lgica ladder com a codificao da ao associada a cada passo, com as ativaes de sadas e lgicas locais em uma ltima seo. Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 204 de 250
A seguir, demonstra-se a codificao em ladder do exemplo 5.2. Controle de Prensa.
Nesta primeira seo do ladder, inicializam-se todas as variveis relacionadas a passo e transies. Note que so seis passos e sete transies nomeados de forma nica no programa. Deve-se sempre nomear passos e transies de forma nica. Em geral os CLPs possuem uma varivel de sistema que pode ser utilizada para a ativao das inicializaes somente no primeiro ciclo de scan do programa. Caso o controlador no tenha este recurso, necessria a utilizao de uma lgica para realizar tal funo.
Primeiro Ciclo S R R R R R R R R R R R R passo 1 (passo inicial) passo 2 passo 3 passo 4 passo 5 passo 6 transio 1 transio 2 transio 3 transio 4 transio 5 transio 6 transio 7 INICIALIZAO DE PASSOS E DE TRANSIES Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 205 de 250
Na seo de habilitao das transies, deve-se reproduzir a estrutura do SFC em relao s seqncias passos-transies. Na seo seguinte, cada transio deve ter sua condio de disparo avaliada e, caso a avaliao seja positiva, deve-se ativar os passos seguintes, desativar o passo anterior e desativar a prpria transio em questo.
passo 1 S transio 1 passo 2 S transio 2 passo 3 S S transio 3 transio 4 passo 4 S transio 5 passo 5 S transio 7 HABILITAO DAS TRANSIES passo 6 S transio 6 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 206 de 250
transio 1 AVALIAO DAS TRANSIES Boto automtico transio 7 Boto reset transio 2 Pea detectada S R S R S R passo 2 transio 1 passo 1 transio 7 passo 3 transio 2 transio 3 FC inferior S R passo 4 transio 3 R transio 4 transio 4 Boto stop S R passo 5 transio 3 R transio 4 transio 5 FC superior transio 6 Pea detectada S R S R passo 6 transio 5 passo 2 transio 6 R passo 1 R passo 5 R passo 2 R passo 3 R passo 3 R passo 4 R passo 6 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 207 de 250
Por fim, executam-se as aes atribudas a cada passo. Note que nesta seo do diagrama ladder o passo 1 no foi considerado por no ter nenhuma ao associada.
EXECUO DAS AES EM CADA PASSO passo 2 passo 3 S S S S alimentao luz avano fixa pea passo 4 passo 5 S R R R retrao avano luz avano R alimentao passo 6 R R retrao fixa pea Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 208 de 250
Pode-se alternativamente proceder com a converso em ladder sem o uso de bobinas do tipo Set/Reset atravs do mtodo exemplificado abaixo para o mesmo exemplo da prensa. Seguem as lgicas para a ativao das transies e para os passos.
Passo 5 Boto reset Transio 7 Passo 1 Boto automtico Transio 1 Passo 6 Pea detectada Transio 6 Passo 2 Pea detectada Transio 2 Passo 3 FC inferior Transio 3 Passo 3 Boto STOP Transio 4 Passo 4 FC superior Transio 5 Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 209 de 250
Passo 1 Transio 1 Passo 1 Transio 7 Passo 2 Transio 2 Passo 2 Transio 1 Passo 3 Transio 3 Passo 3 Transio 2 Transio 6 Transio 4 Primeiro Ciclo Notas de Aula SEL0406 | Prof. Dennis Brando | SEL-EESC-USP Pgina 210 de 250
Alguns CLPs permitem a programao grfica diretamente do SFC. Mesmo assim, cdigos em ladder, lista de instrues, blocos funcionais ou texto estruturado devem ser programados para cada transio ou passo. Cada cdigo ento deve ser separado em um programa distinto nesta lgica.
Exerccios 5.5. a 5.9. Codifique em ladder os SFCs projetados nos exerccios 5.1 a 5.4 e no exemplo 5.1 respectivamente.