Você está na página 1de 190

______________________________________________________

Controladores Programveis

Linguagem Descritiva BCM


Verso:2009-1 Ref.:31940092-8

Linguagem Descritiva BCM

Linguagem Descritiva BCM

Este documento propriedade da BCM ENGENHARIA LTDA. Seu contedo tem carter exclusivamente informativo, cabendo BCM o direito de promover alteraes necessrias, sem aviso prvio.

proibida a reproduo parcial ou total sem o expresso consentimento da BCM Engenharia Ltda.

Linguagem Descritiva BCM

Linguagem Descritiva BCM

ATENO
Os Controladores Programveis BCM so equipamentos robustos e confiveis. O seu projeto foi feito levando em conta as condies de operao particulares do ambiente industrial. Porm, nunca esquea que todos os elementos de um sistema esto sujeitos a falhas. Desenvolva o projeto do sistema levando isto em considerao, obedecendo rigorosamente as recomendaes deste manual e das normas de segurana vigentes em seu pas ou regio. Um bom projeto do sistema e uma correta instalao so elementos fundamentais para o funcionamento satisfatrio e confivel dos produtos. Caso haja qualquer ponto duvidoso ou omisso, no hesite em consultar o Departamento de Assistncia Tcnica da BCM, o qual ter o maior prazer de lhe prestar todo o apoio necessrio.

Telefone (51) 3374.3899 Fax (51) 3374.4141 E-mail: bcmeng@terra.com.br

COMPATIBILIDADE COM O PROCP


As instrues descritas neste manual podem ser usadas com o PROCPV101.0, PROCPV201.0, PROCPV301.0 , PROCP V3k, V4k e V5k. Existem instrues que s so compiladas usando o PROCPV301.0 , PROCP V3k e PROCP V4k. Outras somente esto disponveis para o PROCP V5k. Estas instrues informam esta caracterstica na sua descrio. Para dvidas a respeito da disponibilidade de instrues em verses do PROCP anteriores, consulte a BCM.

Linguagem Descritiva BCM

Linguagem Descritiva BCM

ndice
1 - CONTROLE DE PROCESSOS COM CPS ....................................... 1.1 - DEFINIO E CARACTERISTICAS DO CP.............................. 1.2 - ABORDAGEM DO PROBLEMA E REPRESENTAO................ 1.3 - DOCUMENTAO DE PROJETOS............................................ 1.4 - TERMINOLOGIA E CONVENES USADAS............................. 2 - A LINGUAGEM DESCRITIVA BCM........................................................ 2.1 - ESTRUTURA DA LINGUAGEM DESCRITIVA BCM.......................... 2.2 - REGRAS DE PROGRAMAO NA LINGUAGEM DESCRITIVA 2.3 - COMO PROGRAMAR NA LINGUAGEM DESCRITIVA................... 2.4 - SINTAXE DAS INSTRUES E COMANDOS................................. 2.4.1 - Comandos de configurao do CP .......................................... 2.4.2 - Intrues de programao....................................................... 2.5 - EXEMPLOS TIPICOS DE PROGRAMAO.................................... 2.5.1 - Leitura das Entradas Digitais................................................... 2.5.2 - Controle das Sadas Digitais.................................................... 2.5.3 - Atribuio de Valor para Variveis........................................... 2.5.4 - Uso de contadores................................................................... 2.5.5 - Uso de temporizadores............................................................ 2.5.6 - Temporizadores Associados ao Teste de Varivel................... 2.5.7 - Leitura das Entradas Analgicas..................................... 2.5.8 - Controle das Sadas Analgicas........................................ 2.5.9 - Uso do Display................................................................... 2.5.10 - Uso de Matrizes............................................................... 2.5.11 - Controle PID.................................................................... 2.5.12 - Uso dos bancos de memria................................................. 11 11 13 17 18 31 31 33 39 40 41 58 114 114 116 116 118 121 126 127 131 133 145 149 157

Linguagem Descritiva BCM

2.6 - TRATAMENTO DE VARIVEIS........................................................ 2.6.1 - Varveis de Atribuio Livre..................................................... - Variveis Indexadas............................................................. - Variveis no Indexadas....................................................... 2.6.2 - Variveis de Entrada e Sadas ................................................ - Entradas Digitais................................................................. - Entradas Analgicas.......................................................... - Sadas Analgicas................................................................ - Display................................................................................ 2.6.3 - Variveis de atribuio Fixa..................................................... - Temporizao...................................................................... - Relgio............................................................................... - Reconhecimento dos Mdulos de E/S.................................. - Controle de Programa.......................................................... - Contadores Rpidos............................................................ - Interfaces com Perifricos..................................................... - Redes de Comunicao....................................................... - Medio do Tempo de Varredura......................................... 2.7 - REGRAS ESPECIAIS DE PROCESSAMENTO ARITMTICO........... 2.8 - COMO O PROGRAMA EXECUTADO / CICLO DE VARREDURA.... 2.9 - PRIORIDADE NAS OPERAES....................................................

159 160 161 161 162 162 163 163 164 165 166 167 168 171 174 175 180 181 182 183 186

Linguagem Descritiva BCM

ndice Geral das Instrues e Comandos


COMANDOS DE CONFIGURAO BCD - Tratamento das Chaves Thumbwheel............................ CLP - Define o tipo de Controlador............................................ CONTINUA - Divide o programa em Vrias Partes.................... CTR - Habilita as Rotinas para Tratamento de Contadores....... DIM - Define o Dimenso de uma Matriz................................. DISPLAY - Habilita a Operao dos Displays........................... ESA - Habilita Rotinas para Tratamento de E/S Analgicas....... FIM - Instrui o Compilador a Encerrar a Compilao................ IFT - Habilita o Uso do Mdulo IFT........................................... INTERFACE - Define Parametros de Comunicao ................ NEST - Reserva um Espao de Memria para uma Tabela....... PAN - Habilita a Rotina para Tratamento do Mdulo PAN......... RTC - Habilita a Operao do Relgio em Tempo Real............. SAIDA - Associa Variveis as Sadas ..................................... TCP - Configura os Parmetros do Canal Ethernet.................. INSTRUES DE PROGRAMAO COPIA - Copia variveis de uma matriz para outra................... DECREMENTA - Diminui uma unidade na Varivel.................. EAI - Programa os Valores Relativos ao Mdulo EAI................ EAN - Programa os Valores Relativos ao Mdulo EAN.............. ESCISI - Escreve uma Varivel em um Equipamento da Rede. ESCMISI - Escreve na Memria do Mdulo ISI....................... ESCREVE - Escreve Informaes em Outro Equipamento..... ESTADO - Marca o Incio das Instrues para cada Estado..... EVENTOS - Configura o mdulo EDE.................................... FACA - Intruo que Executa Operaes Aritmticas................ IMPRIME - Imprime o conteudo da Varivel............................. INCLUI - Inclui um trecho de programa em Ling. Descritiva...... INCREMENTA - Incrementa uma Unidade na varivel .......... ISI - Especifica a Porta Serial a ser Programada ................... LEISI - L uma Varivel de um Equipamento em Rede............. LEMISI - Faz a Leitura da Memria do Mdulo ISI.................. LE - Adquire Informaes de outro Equipamento na Rede........ LIGA DESL - Liga e Desliga as Sadas Especificadas..............
Linguagem Descritiva BCM

41 41 43 44 44 45 46 46 46 47 56 56 56 56 57

58 58 59 63 66 67 68 70 70 79 82 82 83 83 84 85 86 88
9

INSTRUES DE PROGRAMAO (continuao) MALHA/MAQUINA - Indica o incio dos estados ..................... MOSTRA - Apresenta as variveis nos Displays...................... MOTOR - Sistemas de Posicionamento com Mdulo MOT...... PID - Executa Rotina PID no Controlador ................................ PLIGA/PDESL - Liga e desliga pontos no mdulo PAN.............. PRESET - Preseta Variveis.................................................... RESET - Coloca a Varivel Mencionada em Zero..................... ROTINA - Permite Inserir Rotinas ............................................. SE - Transio de Estado........................................................ SET - Coloca o Valor 1 Nas Variveis Mencionadas.................. VA PARA - Mudana Imediata de Estado................................

88 88 93 102 106 106 107 108 113 113 113

Linguagem Descritiva BCM

10

BCM Automao

Linguagem Descritiva BCM

11

1 - CONTROLE DE PROCESSOS COM CPs


Criado para ser um substituto dos quadros de rels, o Controlador Programvel (CP) ultrapassou h muito as expectativas originais. Com processadores de alto desempenho, variedade de modelos e capacidade de comunicao, o seu campo de aplicao hoje quase ilimitado e o conhecimento de suas potencialidades torna-se cada vez mais necessrio para todos os envolvidos no planejamento, operao e manuteno de processos industriais. Nos prximos anos a sua importncia dever continuar crescendo, pois as pesquisas de mercado indicam uma contnua expanso na demanda por CPs, confirmando o inexorvel avano da automao em todas as reas de atividade.

1.1 - DEFINIO E CARACTERSTICAS DO CP


"O Controlador Programvel um dispositivo que, observando a arquitetura de computadores, possui uma memria programvel pelo usurio e realiza as funes de controle, comando e superviso de processos, com hardware e software compatveis com estas aplicaes." A estrutura bsica do Controlador Programvel segue uma linha similar a dos computadores de uso geral: Dispositivos de Entrada/ Processamento/ Sada. Nos CPs estas estruturas assumem uma forma particular, adequada ao ambiente de controle de processos:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

12

Entradas: As entradas digitais recebem o sinal de sensores, chaves,botoeiras, e outros equipamentos que fornecem sinais do tipo ligado/desligado. As entradas analgicas recebem sinais de tenso ou corrente de variao contnua, dentro de uma faixa e com significado especificado. Este mdulo condiciona o sinal de entrada e torna-o disponvel para o processador. Processador: o bloco que analisa, processa e decide. So executadas a funes de deciso, operaes matemticas, contagens, temporizao, dilogo com IHM, comunicao, etc. Memria: A memria de programa contm as instrues armazenadas para execuo das tarefas previstas para a aplicao. A memria de variveis contm os valores e parmetros correntes relacionados ao processo. Sadas: Atravs das sadas, o CP age sobre o processo sob o seu controle. As sadas digitais fornecem comandos do tipo ligado/desligado. As sadas analgicas fornecem um sinal de tenso ou corrente com variao contnua, para acionar vlvulas proporcionais, conversores ou outros equipamentos. Co-processadores: Mdulos com memria local e funes especializadas executam tratamento sofisticado de entradas analgicas, comunicaes com alto desempenho, controle de posicionamento com alta velocidade, operaes matemticas e outras. Interface Homem-Mquina: Este bloco coloca o operador (usurio) em contato direto com o CP e o processo sob controle. Podem ser passadas informaes de condies de processo, alarmes, solicitaes manuais e informaes numricas. A forma mais comum de interface Homem-Mquina no CP um display alfanumrico com teclado. Comunicaes: Este bloco fornece o meio fsico e os protocolos para que o CP se comunique com outros equipamentos integrantes do sistema. Os sistemas de controle atuais prevem a integrao de diversos dispositivos que podem incluir vrios CPs, computadores, interfaces IHM externos, sensores e atuadores inteligentes, todos ligados em rede.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

13

1.2 - ABORDAGEM DO PROBLEMA E REPRESENTAO


De forma geral, o processo de desenvolvimento de uma aplicao de Controlador Programvel atende uma seqncia de etapas, com objetivos bem determinados. O cumprimento satisfatrio de cada etapa ir garantir a segurana do trabalho e o sucesso do resultado final. Sero apresentadas em linhas gerais as caractersticas e requisitos de cada etapa.

Concepo

Definio

Projeto

Construo

Teste e Avaliao

Ciclo de Desenvolvimento de uma Aplicao

Definio - Nessa etapa ser explicitado o que o sistema ir fazer, sob que condies, as relaes do equipamento de automao com os diferentes usurios e as caractersticas das ligaes com outros sistemas. Projeto - Determinar uma soluo vivel e econmica para o problema a ser resolvido. Dessa fase j sair uma configurao definitiva dos equipamentos a serem usados e as linhas gerais do software a ser desenvolvido. Construo - Baseado nas especificaes geradas nas etapas anteriores, o projeto ser convertido em um programa ou programas que atendam os requisitos desejados. Paralelamente, os equipamentos necessrios sero construdos de acordo com as solicitaes do projeto. Teste e Avaliao Essa etapa deve responder basicamente a seguinte pergunta: O sistema atende as necessidades e expectativas do usurio? Em caso negativo, quais as modificaes necessrias? Para responder a essas perguntas poderemos trabalhar com simuladores do sistema, testes no sistema real em condies normais e anormais, etc.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

14

Definio O primeiro passo na etapa de definio a elaborao do documento denominado "Especificao do Problema", tambm chamado de "Especificao de Requisitos". Esse documento coloca claramente as necessidades do projeto e as expectativas do usurio. Somente uma redao completa e cuidadosa pode resultar em uma soluo adequada e de boa qualidade. A Especificao do Problema o instrumento fundamental para o dilogo entre o cliente do sistema e a equipe de desenvolvimento. Em alguns casos, ao se iniciar o trabalho, a especificao pode j existir, ser elaborada pelo cliente ou pelo responsvel pelo desenvolvimento. Projeto Na fase de projeto iremos construir uma soluo para o problema. O resultado principal dessa fase a "Especificao da soluo" ou Especificao de Projeto. Baseado no conhecimento dos mdulos e equipamentos disponveis, o projetista ir determinar uma soluo genrica completa para o problema. Ser gerado um diagrama fsico (hardware) e um diagrama lgico (software) da soluo de automao, acompanhado de uma descrio detalhada de como os objetivos sero atingidos. Onde for conveniente, deve-se considerar a incluso de normas universais relativas ao assunto, roteiros de teste, manuteno, etc. O projetista nessa fase j ir sugerir uma diviso lgica para a abordagem da programao. No iremos aqui abordar o desenvolvimento subseqente da parte eletrnica (hardware) do projeto; iremos nos fixar na parte de software e como o programador ir trabalhar de aqui por diante.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

15

No cotidiano do trabalho de automao com Controladores Programveis notamos que frequentemente as especificaes do problema e da soluo so reunidas em um documento nico. Tal procedimento vlido principalmente em processos mais simples de automao, uma vez que simplifica o trabalho do projetista. A principal exigncia nessa forma de abordagem que o responsvel pela especificao deve conhecer simultaneamente o processo (para poder redigir a Especificao do Problema), os equipamentos disponveis e os recursos de programao para poder projetar uma soluo adequada. Com os equipamentos padronizados disponveis e uma linguagem de alto nvel para programao dos CPs, o prprio usurio pode frequentemente construir uma especificao completa e adequada sem grande dificuldade. Como podemos notar, a passagem da fase de projeto para a fase de construo do programa depende basicamente do cuidado com que as especificaes foram elaboradas. Na linguagem descritiva BCM existe uma preocupao fundamental em aproximar a forma de raciocnio usada na especificao com a elaborao do programa.

Quando o projetista elabora a Especificao da Soluo ele tem uma necessidade fundamental de descrever o fluxo do processo ou seja, como os eventos se sucedem no sistema, quais as causas e efeitos de cada evento e a seqncia lgica de tarefas que o controlador deve executar. Existem vrias formas de fazer isso:

F Descrevendo literalmente a seqncia de eventos:


1 - Ao acionar o boto de partida PAR, as portas P01, P02, P03 e P04 devem ser abertas. 2 - Quando B01 atingir o peso programado, P01 fecha. 3 - Quando B02 atingir o peso programado, P02 fecha. 4 - Quando B03 atingir o peso programado, P03 fecha. 5 - Quando B04 atingir o peso programado, P04 fecha. 6 - Quando P01, P02, P03 e P04 estiverem novamente fechadas, VAZ acionado, virando todos os ingredientes no recipiente grande. 7 - Aps 15 segundos, MMI deve ser acionado. 8 - Aps 10 minutos, MMI deve ser desligado, permanecendo em repouso.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

16

F Montando um diagrama de tempos:


PAP B01 B02 B03 B04 P01 P02 P03 P04 VAZ MMI
10 min

F Elaborando um diagrama de estados: No objetivo aqui discutir ou comparar os mtodos tradicionais de representao. A linguagem BCM prope uma forma alternativa para representao que substitui os anteriores. Alm disso, elaborada convenientemente, essa forma de representao usada diretamente para programar o controlador. A estrutura fundamental na programao em linguagem BCM o Diagrama de Estados. A passagem da especificao devidamente elaborada para o Diagrama de Estados quase direta, exigindo um mnimo de elaborao adicional, qualquer que seja a forma usada anteriormente para representao:
0 PAR=1 4 LIGA P03

DESL. P01, B04=PESO P02,P03,P04

LIGA P04 B01=PESO 5 LIGA VAZ

LIGA P01

T=15s

B02=PESO

LIGA MMI

LIGA P02

T=10min

B03=PESO 7 DESL.MMI

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

17

1.3 - DOCUMENTAO DE PROJETOS


Ao lado da descrio de fluxo do processo, uma srie de documentos devem ser gerados durante o desenvolvimento da aplicao. A lista a seguir apresenta a documentao padronizada adotada nos projetos BCM: - Especificao do problema. - Especificao da soluo. Conceitualmente diferente, pode ser feita em conjunto com a especificao do problema em projetos simples e/ou quando o mesmo tcnico detalha o processo e aplica o CP. - Diagrama de blocos fsico do sistema abordado. - Listagem de entradas e sadas do CP - Smbolos e funes. - Listagem de matrizes e variveis utilizadas. - Protocolos especiais de interface com outros CPs ou equipamentos (serial, paralela, via E/S, etc.) - Diviso de malhas de estado e descrio da funo de cada uma. - Diagramas de estado para cada malha, com comentrios. - Listagem BCM completa. - Descrio funcional, fluxogramas e listagem de rotinas assembler, se existirem. Em muitos casos, usual incluir um texto dedicado ao processo de desenvolvimento do software, descrevendo os arquivos usados, a nomenclatura, roteiros de trabalho, etc. Isso feito para facilitar uma eventual necessidade futura de manuteno ou adaptaes no programa.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

18

1.4 - TERMINOLOGIA E CONVENES USADAS


Ao longo dos manuais BCM e no cotidiano do trabalho em automao e Controladores Programveis, encontramos uma srie de termos e conceitos tpicos. No sentido de familiarizar o usurio com esta terminologia, apresentamos um glossrio dos termos e expresses mais usuais. Em muitos casos, as informaes apresentadas no se atem a rgidas definies formais. Acreditamos, no entanto, que este captulo cumpre o objetivo de auxiliar a compreenso e eliminar dvidas. lgebra Booleana - Notao matemtica abreviada que representa relaes e expresses lgicas associadas as funes bsicas e, ou, ou exclusivo e no. Algoritmo - Conjunto de regras e operaes capazes de efetuar uma tarefa previamente especificada. Apontador - Valor numrico usado para indicar a localizao, na memria de dados ou de programa, de uma determinada informao, de um espao livre ou do ponto inicial de execuo de uma rotina. ASCII - Abreviatura para American Standard Code for Information Interchange. Esse cdigo representa todos os caracteres alfanumricos e smbolos do teclado padro atravs de nmeros de 7 bits (0 a 127). Alguns cdigos so ainda reservados para funo de controle (troca linha, retorna carro, troca pgina, etc). Assembler - Linguagem de baixo nvel, orientada diretamente ao microprocessador do sistema, que descreve o conjunto de operaes bsicas disponveis. Barra - Um ou mais condutores que carregam coletivamente uma informao codificada, proveniente de um dispositivo fonte para um ou vrios dispositivos receptores. Baud Rate - Taxa (velocidade) de transmisso de um sinal digital codificado, calculada em bits por segundo. Por exemplo: 9600 baud equivale a uma velocidade de transmisso de 9600 bits por segundo.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

19

BCD - Abreviatura de Binary Code Decimal. Sistema de numerao que representa separadamente cada dgito decimal pelo equivalente binrio em 4 bits. Por exemplo 371 equivale a 0011.0111.0001 em cdigo BCD. Binrio - Sistema de numerao de base 2, em contraposio ao sistema decimal, que usa a base 10. O sistema binrio requer somente dois tipos de dgito (0,1) que agrupados representam qualquer quantia desejada pelo usurio. BIT - Abreviatura de Binary Digit. Um bit a menor unidade de informao disponvel em um sistema binrio. Representa a deciso entre dois estados possveis, simbolizados normalmente 0 e 1. Pode ser usado tambm para representar os estados ligado/desligado ou verdadeiro/falso. Buffer - rea de memria reservada para armazenar uma determinada informao na passagem de uma fase de processamento para outra. Byte - Grupo de 8 bits processado em um sistema como uma entidade nica. Checksum - Resultado da soma de todos os valores de um determinado bloco de informao utilizado para verificao da integridade da informao armazenada. Uma determinada fase do processamento calcula o checksum e o armazena junto com o bloco. Em outro momento, o checksum recalculado e comparado com o valor armazenado. Qualquer desigualdade indica que ocorreu uma alterao indevida dos dados. Ciclo - Uma seqncia repetitiva de operaes ou instrues dentro de um algoritmo. - Parte de uma onda que comeando por um ponto de referncia (zero), atinge um valor mximo, volta ao nvel zero, atinge um valor mnimo, seguido por um retorno ao ponto zero de referncia. Clock - Circuito usado para gerar uma seqncia peridica de pulsos, usado para sincronizao de todas as operaes em um sistema digital. A freqncia de clock est associada velocidade na qual os sinais so processados no sistema.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

20

Comando - Informao codificada enviada a um processador digital (computador ou CP), que especifica um conjunto de caractersticas de funcionamento que este deve assumir. Compatibilidade - Propriedade que uma parte de um sistema apresenta de poder ser substituda por outra parte similar, com um mnimo de alteraes no funcionamento do sistema como um todo. Compilador - Um programa especfico, ou grupo de programas que traduzem as instrues e comandos de uma linguagem de alto nvel em cdigos na linguagem de mquina do processador utilizado. Controlador Programvel - Dispositivo ou equipamento que, observando a arquitetura de computadores, possui uma memria programvel pelo usurio, e realiza as funes de controle, comando e superviso de processos industriais; com hardware e software compatveis com estas aplicaes. Tambm denominado Controlador Lgico Programvel abreviaturas CP ou CLP. Controle Distribudo - Arquitetura usada em controle de processos, composta por 2 ou mais Controladores Programveis interligados a um computador usado como unidade central. Cada CP controla uma parte do processo global e est em constante comunicao com a unidade central que supervisiona e coordena o conjunto. Estruturas de maior porte permitem ainda que essa unidade central esteja conectada a outro computador maior, que assume uma superviso de nvel superior. Controle PID - Abreviatura para Controle Proporcional, Integral, Derivativo. Mtodo de controle em lao fechado que consiste em aplicar ao atuador o sinal resultante da soma das funes proporcional, integral e derivativa aplicadas ao erro observado na varivel medida.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

21

Controle PID Adaptativo - Recurso adicional ao controle PID que utiliza um algoritmo especial para ajustar automaticamente os parmetros proporcional, integral e derivativo do controlador, de acordo com o histrico de desempenho do processo. Como esses parmetros dependem fundamentalmente das caractersticas fsicas do meio, esse tipo de controlador adapta-se ao processo sem necessidade de calibrao manual. Controle PID Feedforward - Mtodo de controle que acrescenta ao controle PID tradicional um fator de antecipao. Basicamente, a mudana em uma condio que ter influncia futura na varivel medida considerada na composio da varivel de sada, mesmo que a medida ainda no tenha sido afetada.

CPU - Abreviatura para Central Processing Unit. Parte de um sistema digital que contm a memria principal, os circuitos de processamento lgico e aritmtico, alm de outros circuitos auxiliares. Em um computador ou Controlador Programvel, a CPU a responsvel pela interpretao e execuo das instrues do usurio. Dado - Informao codificada na forma digital, armazenada em uma determinada posio de memria, disponvel para processamento pela CPU. Depurao - Processo de pesquisa e eliminao de problemas e erros em um sistema. As fontes de erro consistem em problemas de fiao, partes com funcionamento incorreto ou descalibradas, instrues de programa com sintaxe errada e algoritmos de controle inadequados ao processo ou operao desejada. Diagrama de Blocos - Mtodo de representao que consiste em subdividir um sistema em vrias partes, mostrando a funo de cada bloco e apresentando graficamente a relao entre estes blocos.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

22

Diagrama de Estados - Mtodo de representao que apresenta as diversas etapas de um processo em uma montagem grfica, evidenciando as aes que sero efetuadas em cada etapa, bem como a seqncia dessas etapas (estados) e as condies que permitem que o processo passe de um estado a outro. Documentao - Todo o conjunto de informaes relativas a um equipamento ou sistema, incluindo diagramas eltricos, de fiao, de montagem, listagens de programa, procedimentos de manuteno, instrues de instalao e operao, etc. Edio -Trabalho de modificar um programa ou documentao no sentido de corrigir um problema, completar ou melhorar o desempenho do sistema. Encoder - Dispositivo tico, eletrnico ou eletromecnico, usado para medir e monitorar o movimento rotativo de uma pea. O encoder absoluto fornece um sinal codificado para cada posio do seu eixo. O encoder incremental fornece um determinado nmero de pulsos para cada unidade de movimento angular no eixo. Endereo - Cdigo que identifica a posio (localizao) de um determinado dado ou programa na memria de um computador ou CP. Entrada - Dispositivo de um computador ou CP que recebe uma determinada informao eltrica no meio ambiente e a repassa para o processamento na CPU. Entrada Analgica - Dispositivo de entrada capaz de receber e interpretar um sinal eltrico varivel continuamente em uma faixa de tenso ou corrente, onde a informao significativa transportada atravs da magnitude dessa tenso ou corrente. Entrada Digital - Dispositivo de entrada que recebe e interpreta uma informao do meio ambiente atravs de um cdigo de dois nveis predeterminados de tenso ou corrente.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

23

Eprom - Abreviatura de Erasable Programmable Read-Only Memory. Componente de memria capaz de ser gravada, apagada e regravada novamente. usada normalmente para armazenar a parte fixa do programa de um CP ou um determinado conjunto de dados que no sero modificados durante a operao. Estado - Na linguagem descritiva BCM, o conjunto de comandos que, quando ativado, provoca aes que caracterizam uma etapa do processo. A ativao sucessiva de cada estado determina a seqncia de controle do processo. E/S - Abreviatura para Entrada/Sada. Refere-se ao conjunto de dispositivos ou instrues de um CP responsveis pela relao do controlador com as informaes do meio ambiente. E/S Inteligente - Refere-se genericamente a um mdulo de entrada ou sada de um CP capaz de pr-processar as informaes antes de envi-las CPU ou as sadas. Esse recurso obtido atravs do uso de um processador localizado no prprio mdulo, realizando funes de escala, linearizao, clculos e funes especiais, dispensando a CPU e o programa do usurio dessas atividades. Flag - Varivel introduzida em um programa com o objetivo de sinalizar a execuo ou ocorrncia de uma determinada ao ou evento. Em outro ponto do programa, essa varivel ser lida e condicionar a execuo de uma instruo ou rotina. Flash-eprom - Componente de memria capaz de ser gravada, apagada e regravada eltricamente. usada normalmente para armazenar a parte fixa do programa de um CP ou um determinado conjunto de dados que podero ser modificados durante a operao. Fluxograma - Representao grfica que apresenta as diversas etapas da execuo de um programa. Todas as operaes e testes do programa esto representados por blocos, onde cada um ir corresponder a uma instruo ou conjunto de instrues no processador. Full Duplex - Modo de comunicao que permite que dois dispositivos troquem informaes, cada um transmitindo e recebendo simultaneamente.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

24

Half Duplex - Modo de comunicao que permite que dois dispositivos troquem informaes nas duas direes, porm no simultaneamente, isto , o dispositivo "A" transmite enquanto o dispositivo "B" somente recebe, e vice versa. Hardware - Todo o conjunto de partes, dispositivos fsicos e componentes que fazem parte de um sistema. Hexadecimal - Sistema de numerao de base 16. So necessrios dezesseis smbolos para representao, sendo que a padronizao mais usual utiliza os algarismos "0" a "9" e as letras "A" a "F". Hierarquia - Listagem ou classificao de um grupo de elementos de acordo com um conjunto de regras pr-determinadas. Refere-se tambm a ordem de execuo ou atendimento de uma srie de operaes concorrentes. Instruo - Cdigo simblico que representa uma seqncia de operaes que sero efetuadas pela CPU sobre um conjunto especfico de dados, de forma a obter resultados de acordo com regras previamente definidas. Interface - rea ou dispositivo de ligao entre componentes, circuitos, meios fsicos, ou sistemas entre os quais est previsto um intercmbio de dados, comandos de operao ou energia para alimentao. Interface Paralela - Dispositivo de interligao entre sistemas que transfere informao de um sistema a outro atravs de duas ou mais linhas codificadas coletivamente. Interface Srie - Dispositivo de interligao entre sistemas que transfere informao de um sistema a outro atravs de uma nica via, codificada atravs da seqncia temporal dos sinais significativos. Interrupo - Bloqueio na execuo normal de um programa para atendimento de uma outra rotina considerada mais prioritria. Aps o final dessa rotina, o programa volta execuo normal. O momento em que esse bloqueio ocorre determinado por um sinal externo ao programa.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

25

LCD - Abreviatura para Liquid Cristal Display. Refere-se a um tipo especfico de display cujos segmentos refletem a luz seletivamente, controlados por sinais eltricos para a formao dos caracteres e algarismos. LED - Abreviatura para Light Emitting Diode. Componente semicondutor que emite luz quando polarizado. usado basicamente como indicador visual em equipamentos eletrnicos. Linguagem - Conjunto de smbolos e regras que formam um cdigo capaz de permitir a comunicao entre o usurio e um determinado equipamento ou sistema. LSB - Abreviatura para Least Significant Bit. Bit menos significativo em uma palavra digital. Matriz - Arranjo de um determinado nmero de elementos com um significado nico. O agrupamento seqencial desses elementos em linhas e/ou colunas est normalmente associado a uma regra de ocupao determinada. Memria de Dados - Parte da memria de um computador ou CP reservada para armazenamento das constantes e variveis do programa, valores usados em operaes lgico-aritmticas, valores de contadores e temporizadores, estado corrente do processo, etc. Memria de Programa - Parte da memria de um computador ou CP onde esto localizadas as instrues de operao, as quais definiro como sero manejados os dados da memria e as entradas externas para fornecer as sadas que o processo sob controle exige. Memria Retentiva - Parte da memria de dados de um CP que mantem as informaes armazenadas independentemente da presena de alimentao no equipamento. Normalmente essa caracterstica obtida atravs da alimentao permanente dos dispositivos de memria com pilhas ou baterias.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

26

Mnemnico - Abreviatura ou conjunto de smbolos usado para referenciar rapidamente um dispositivo, equipamento, atividade, operao, etc. Normalmente composto por letras, nmeros ou palavras-chave retiradas da descrio do dispositivo ou operao. Modem - Abreviatura para Modulador/Demodulador. Equipamento usado para transmisso de dados digitais atravs de linhas telefnicas ou outros meios fsicos, usando princpios de modulao dos sinais em fase ou freqncia. Mdulo - Parte ou elemento de um equipamento ou sistema capaz de ser separado do conjunto mantendo determinadas caractersticas prprias. Em hardware entende-se por mdulo, uma parte que possa ser separada do equipamento, testada ou substituda individualmente. O mesmo conceito aplicado ao software se refere a partes de um programa que podem ser descritas, desenvolvidas, depuradas em separado e, posteriormente integradas ao sistema completo. MSB - Abreviatura para Most Significant Bit. Bit mais significativo em uma palavra digital. Multiplex - Ou multiplexao do processo que permite que dois ou mais sinais distintos sejam transmitidos em um mesmo canal de comunicao. Dois processos fundamentais so utilizados: a multiplexao no tempo divide os sinais em fatias no tempo, transmitindo uma amostra de cada sinal durante um perodo e numa seqncia determinada. A multiplexao em freqncia conseguida fazendo com que cada um dos sinais module uma freqncia portadora diferente no transmissor. A soma dos sinais enviada pela linha. No receptor, cada freqncia filtrada, separada e os diversos sinais podem ser demodulados separadamente. Nvel Lgico - Valores de tenso ou corrente que podem ser associados aos dois estados possveis em uma linha digital: "0" ou "1". Operando - Valor numrico sobre o qual uma operao lgico- aritmtica ser efetuada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

27

Palavra - Grupo de dois ou mais bytes associados, tratados como uma unidade, com significado coletivo prprio. Paridade - Ou bit de paridade. Bit no significativo adicionado a um byte digital, usado para detectar erros de transmisso desse byte de um meio a outro. Para um sistema funcionar necessrio que haja um dispositivo ou rotina que gere o bit de paridade correto (0 ou 1) e outro dispositivo que leia o byte completo, incluindo o bit de paridade, determinando se a paridade da palavra est correta ou no. O sistema, dito de paridade par quando o nmero de bits"1" da palavra completa for par; e dito de paridade mpar, quando o nmero de bits "1" for mpar. Perifrico - Dispositivo ou equipamento conectado a um computador ou CP para executar uma funo especfica, sem que possa ser considerada parte integrante do equipamento bsico. PID - Ver Controle PID. Pointer - Ver Apontador. Porta - Ponto de conexo de um equipamento ou sistema para intercmbio de informaes do sistema com o meio ou ligao de perifricos. Preset - Valor predeterminado lanado na memria de dados como valor inicial para a partida de um processo ou rotina. Protocolo - Conjunto de regras e convenes que especificam as caractersticas, formatos, nveis lgicos, temporizao, etc., necessrios para viabilizar a comunicao entre sistemas ou entre partes dentro de um sistema. PROCP - uma ferramenta usada no desenvolvimento de programas para os CPs BCM. Possui verso para ambiente DOS e WINDOWS. Est disponvel no mesmo ambiente ferramentas para editar, compilar, carregar e monitorar programas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

28

RAM - Abreviatura para Random Acess Memory. Componente de memria que permite o acesso aos dados armazenados para leitura ou escrita em um determinado tempo especificado, independentemente da localizao desse dado na memria. Realimentao - Sinal enviado pelo processo sob controle ao CP, indicando a resposta deste aos comandos de atuao aplicados pelo controlador. Reset - Ao de fazer retornar um processo ou varivel a uma condio inicial predeterminada. Rotina - Srie de instrues ou operaes que executam uma tarefa especfica. Rudo Eltrico - Sinais eltricos indesejveis em um sistema, capazes de perturbar ou modificar o funcionamento normal deste. A imunidade ao rudo definida como a medida da capacidade de funcionamento do sistema na presena de um nvel determinado de rudo eltrico. Sada - Dispositivo de um computador ou CP que transforma os comandos enviados pela CPU em nveis eltricos adequados, capazes de atuar sobre o meio externo. Sada Analgica - Dispositivo de um controlador programvel que transforma o contedo de uma varivel de programa em um valor de tenso ou corrente, disponvel para atuao sobre um circuito externo. A magnitude da tenso ou corrente est associada ao valor da varivel de acordo com uma regra pr-estabelecida. Sada Digital - Dispositivo de um controlador programvel que fornece uma tenso, corrente ou fecha um contato de acordo com o contedo de uma varivel ou um comando especfico do programa. A tenso ou corrente de sada pode assumir apenas dois nveis, correspondentes as situaes de sada ligada ou desligada. Sistema - Arranjo de componentes, dispositivos e/ou equipamentos ligados entre si como uma unidade organizada, capaz de executar um conjunto de funes e tarefas bem determinadas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

29

Sistema Operacional - Programa bsico de um CP ou computador que controla a distribuio de memria, acesso aos perifricos, superviso do sistema e outras funes trabalhadas independentemente do programa do usurio. O sistema operacional pode incluir ainda as rotinas bsicas que desenvolvem as instrues disponveis em um equipamento programvel. Software - Todos os programas, rotinas, sistemas operacionais e documentao participantes e relativos a um sistema que no possam ser considerados como partes fsicas integrantes deste. Sub-rotina - Parte de um programa ou rotina com uma funo especfica, armazenada em separado na memria de programa e que pode ser chamada e executada em vrios pontos do programa, tantas vezes quanto necessrio. Transio - Na linguagem descritiva BCM, a combinao de eventos que condiciona uma mudana de estado, isto , a transferncia da atividade de um estado para outro. Varredura - Seqncia cclica de operaes dentro de um CP que engloba o atendimento dos perifricos, desenvolvimento das operaes relativas aos estados correntes, inspeo das condies de transio, interface com o operador, superviso do sistema, etc. Watchdog - Tipo especial de temporizador, usado para monitorar o funcionamento correto de um controlador. O programa do CP gera um sinal alternado permanente para o circuito Watchdog, com um perodo mximo especificado. Caso haja uma falha do processador, o sinal alternado pra; nesse caso, o circuito Watchdog se encarrega de tomar uma providncia que proteja o processo, acionando um alarme, desligando ou reinicializando o controlador.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

30

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

31

2 - A LINGUAGEM DESCRITIVA BCM


O Diagrama de Estados basicamente uma forma padronizada de representao das regras de controle de um processo. Utilizando uma estrutura similar quela adotada na eletrnica e na matemtica, conhecida como "Diagrama de Variveis de Estado", possvel descrever operaes combinacionais ou seqenciais, executadas dentro de um fluxo nico ou em mltiplas ramificaes paralelas e simultneas. A forma grfica adotada permite uma fcil visualizao do conjunto, recurso fundamental na fase de projeto e especificao, oferecendo ao mesmo tempo uma forma exata para descrio de cada operao, viabilizando a programao do controlador a partir do Diagrama de Estados. importante ressaltar que qualquer programa para controle de processos digitais ou analgicos pode ser facilmente representado por um Diagrama de Estados. Alm disso, a utilizao do Diagrama de Estados elimina a necessidade de qualquer outro mtodo de descrio do processo.

2.1 - ESTRUTURA DA LINGUAGEM DESCRITIVA BCM


A estrutura da Linguagem Descritiva BCM formada por trs elementos bsicos: os ESTADOS, as TRANSIES e a MALHA DE CONTROLE: O Estado o conjunto de comandos que, quando ativado, provoca aes que caracterizam uma etapa ou evento do processo. A ativao sucessiva dos estados determina a seqncia de controle do processo. Nos diagramas, o estado representado por uma elipse. No canto esquerdo ser colocado o nmero do estado. No espao da direita sero descritas as aes efetuadas ou os comandos ativos para esse estado.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

32

Uma condio de Transio a combinao de eventos que determinam uma mudana de estado, isto , a transferncia da atividade de um estado para outro. No diagrama, a transio representada por uma seta orientada que liga o estado de origem com o estado para a transferncia. Sobre a seta so descritas as condies vlidas para essa transio.

1 LIGA ESTCAI RESET NPEC PESO=CAIXA DESL ESTCAI 2 LIGA ESTPEC,RECPOR

Uma Malha de controle um diagrama de estados parcial, que corresponde a um ramo do processo, dentro do qual apenas um estado pode estar ativo a cada momento. O diagrama de estados completo do processo pode ser composto por uma ou mais malhas. Devido aos recursos de multiprocessamento do controlador, todas as malhas sero atendidas simultaneamente quando da execuo do programa em tempo real.

LIGA ESTCAI RESET NPEC PESO=CAIXA DESL ESTCAI LIGA ESTPEC,RECPOR PESO=PPROG DESL RECPOR

PESO=0 4

T=5 seg DESL ESTPEC

O Diagrama de Estados apresenta de forma grfica uma estrutura lgica completa atravs de um conjunto de malhas de controle. Cada malha assume o controle de uma parcela determinada do processo. O Controlador Programvel oferece recursos para atendimento simultneo de diversas malhas. Este recurso de processamento multitarefas muito importante no desenvolvimento de solues de controle para os sistemas reais e de difcil representao pela maioria das outras formas de documentao.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

33

2.2 - REGRAS DE PROGRAMAO NA LINGUAGEM DESCRITIVA


O diagrama de estados uma forma padronizada de representao das regras de controle de um processo. Utilizando uma estrutura similar a que adotada na eletrnica e na matemtica, conhecida como "Diagrama de Variveis de Estado", possvel descrever operaes combinacionais ou seqenciais, executadas dentro de um fluxo nico ou em mltiplas ramificaes paralelas e Simultneas. A forma grfica adotada permite uma fcil visualizao do conjunto, recurso fundamental na fase de projeto e especificao, oferecendo ao mesmo tempo uma forma exata para descrio de cada operao, viabilizando a programao do controlador a partir do Diagrama de Estados. A seguir sero apresentadas, de forma sistemtica e mais detalhada, as regras fundamentais para elaborao, anlise e execuo pelo controlador, adotadas na programao atravs de diagramas de estado:

FRegra 1
O estado sempre representado por uma elipse, dividida em dois campos: No lado menor, a esquerda, colocado o nmero de referncia do estado; no lado direito so includos todos os comandos e aes ativos para esse estado.

FRegra 2
Os estados no diagrama so referenciados por um nmero situado na faixa entre 0 e 255. Cada malha recebe uma seqncia de numerao independente.

FRegra 3
A numerao adotada para os estados usada apenas para referncia. No existe nenhum sentido de seqncia ou prioridade de execuo pelo CP na numerao dos estados. A nica considerao especial que o controlador ao ser ligado, inicia a execuo do programa sempre pelo estado 0 de cada malha.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

34

FRegra 4
Somente um estado pode estar ativo de cada vez num mesmo Diagrama de Estados. Apenas os comandos e operaes desse estado sero executadas nesse momento. Alm disso, apenas as condies de transio do estado ativo sero consideradas pelo controlador.

FRegra 5
Associado a cada estado so aceitas duas formas condicionais: As condies para transio de estado especificam as relaes que, quando cumpridas fazem que o controlador transfira a atividade para o estado de destino; As condies para execuo imediata fazem que as aes especificadas sejam executadas dentro do estado ativo apenas se as relaes lgicas mencionadas forem vlidas. Transio de estado Execuo imediata

INI=1 INI=1 1 LIGA 1

FRegra 6
A transio representada por uma seta reta ou curva, indicando o sentido da transferncia da atividade quando do cumprimento das condies de transio.

FRegra 7
As operaes e comandos associados condio de execuo imediata so representados dentro de um retngulo, ligado por uma linha ao estado.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

35

FRegra 8
O programa ignora todos os estados e transies executados, somente considerando as transies com origem no estado ativo. O programa s considera vlidas as transies com origem no estado ativo, ignorando todas as demais. Assim, podemos dispensar a preocupao com o acionamento de entradas fora da seqncia desejada.

FRegra 9
So aceitas mltiplas condies de transio de um estado para outro. Quando duas ou mais expresses lgicas esto colocadas sobre uma mesma linha de transio, deve-se considerar que a transio ocorrer quando todas as expresses forem vlidas (ligao "E"). Para que a transio ocorra com apenas uma das expresses vlidas (ligao "OU"), necessrio que a palavra "OU" aparea entre as expresses. Ligao "E" Ligao "OU"

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

36

FRegra 10
So aceitas duas ou mais linhas de transio entre um estado origem e um destino. Neste caso a transio ocorrer quando uma das expresses for vlida (corresponde a ligao "OU").

MED=10

INI=1

FRegra 11
O nmero de transies com origem em cada estado ilimitado. No entanto um nmero muito grande de transies pode ocasionar uma falha por WATCH DOG. O programa pode seguir diversos caminhos a partir de um estado; o caminho a seguir ser decidido pela ltima condio de transio aprovada.

FRegra 12
No caso previsto pela regra anterior, importante definir o que acontece se duas ou mais condies estiverem simultaneamente vlidas. Quando a caracterizao da ordem de prioridades for importante, ser representada na forma a seguir: - (1) para o mais prioritrio; (2) para a segunda prioridade; e assim por diante.
1 1 3 BAT=1 INI=0 WOO>30 2 WOO=0 4

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

37

FRegra 13
Em determinadas situaes dentro de um programa necessrio ou conveniente definir transies entre estados sem condio especificada. No caso do exemplo, quando o estado 3 fica ativo, a sada 3 ligada; Imediatamente a seguir, o estado ativo passa a ser o 5, provocando a execuo imediata da operao "W00=W00+1". No programa editado, esse tipo de transio tratado pela instruo "VA PARA". A figura mostra o trecho-exemplo, salientando a forma de representao grfica.

WOO=0

LIGA 3

WOO=WOO+1

FRegra 14
Outro tipo de condio de transio a chamada "Condio Temporizada". Neste caso, ao invs de combinaes lgicas de entradas ou variveis, a transio est condicionada a passagem de um tempo. O tempo necessrio para a transio aparece ao lado da linha no diagrama. No programa editado, esse tipo de transio tratado pela instruo "ATRASO".

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

38

FRegra 15
Frequentemente aparece a necessidade de combinar uma condio temporizada com um ou mais testes de variveis. O trecho do diagrama de estados abaixo mostra esse caso. O programa vai para o estado 4 depois de passar 5 segundos e se a entrada "INI" estiver acionada. Observar que: - Os 5 segundos so contados a partir da entrada no estado 3, independentemente da situao de "INI". - Se a entrada "INI" for acionada 5 segundos ou mais aps a entrada no estado 3, a transio ocorrer imediatamente.

WOO=1

3 INI=1 5 seg.

FRegra 16
Cada malha componente do sistema recebe um nmero de referncia. A primeira malha ser a 0, a segunda ser a 1 e assim por diante, at um nmero mximo de 64 malhas.

FRegra 17
Cada estado sempre pertencente a uma e somente a uma malha. Alm disso, um estado ativo com uma condio de transio vlida transfere a atividade para o estado indicado na transio (estado de destino); Esse estado de destino pertencer necessariamente a mesma malha do estado anterior.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

39

FRegra 18
Do ponto de vista do diagrama de estados, cada malha considerada um processo independente. No pode haver transies de um estado de uma malha para outro em outra malha.

2.3 - COMO PROGRAMAR NA LINGUAGEM DESCRITIVA

As caixas de dilogo que aparecero ao longo do captulo servem para


situar/orientar o usurio sobre onde encontrar outras informaes a respeito de determinado tpico. A etapa seguinte elaborao do diagrama de estados a edio do programa do CP, propriamente dito. A tecnologia empregada nas CPUs BCM permite a programao direta, isto , o programa do usurio transferido diretamente do microcomputador para a memria do CP atravs do canal serial RS 232. Os recursos necessrios para a edio e transferncias do programa para o CP so: Microcomputador padro IBM-PC Software WINDOWS Compilador BCM PROCP Cabo de comunicao serial RS232 (especfico para CPs BCM) A seguir esto descritos os comandos e instrues para programao em linguagem descritiva BCM, segundo a sua funo dentro do programa do usurio. Sempre que for necessrio, ser apresentado um exemplo de aplicao para facilitar a compreenso e a utilizao do(s) respectivo(s) comando(s) e/ou instruo(es).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

40

2.4 - SINTAXE DAS INSTRUES E COMANDOS


Para cada comando ou instruo, ser apresentada a forma sinttica, a descrio completa da operao e o conjunto de parmetros e opes disponveis. Sempre que for conveniente, sero includos exemplos procurando esclarecer o funcionamento da forma mais clara e precisa possvel. Em geral, o funcionamento dos comandos e instrues idntico para todos os modelos de Controladores Programveis BCM. Sempre que houver diferenas, o texto chamar a ateno para todos os casos possveis. Naturalmente, a aplicabilidade de cada recurso est associada a disponibilidade fsica desse recurso no modelo ou verso do Controlador Programvel em questo. - Os sinais "igual", "pontos", "vrgulas" e espaos em brancos devem ser seguidos rigorosamente na edio. Caso contrrio, sero interpretados incorretamente pelo compilador. - Os elementos representados em letras minsculas significam constantes ou variveis que devem ser introduzidas nas posies citadas, de acordo com o que consta em cada descrio. - Os elementos entre colchetes "[ ]", so opcionais na composio da linha de programa. A sua incluso ou no produz diferentes efeitos na operao do comando ou instruo. - Os elementos entre chaves "{ }" so alternativos na composio da linha de programa. Dentro dos colchetes aparecem dois ou mais elementos entre colchetes. Para o funcionamento adequado, um dos elementos entre colchetes deve ser escolhido pelo programador. A incluso de cada tipo de elemento produz um determinado efeito na operao do comando ou instruo, conforme descrito.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

41

2.4.1 - Comandos de Configurao do CP Estes tem a finalidade de especificar parmetros, habilitar blocos funcionais do sistema operacional e instruir o compilador em relao a determinados procedimentos. Com a excesso dos comandos `CONTINUA' e `FIM', os demais comandos de configurao devem ser sempre colocados no incio do programa, antes da primeira definio de malha. O programador deve prestar especial ateno no momento da entrada destes comandos. A omisso da definio de um perifrico faz com que este no opere; Parmetros incorretos podem levar a erros de compilao ao longo do programa ou erros de execuo no controlador.

BCD=x Este comando, vlido apenas para o controlador BCM2085 com interface BCD, habilita a rotina de tratamento de chaves Thumbwheel. O parmetro `x' define o nmero de chaves BCD por grupo. So aceitos os valores 2 ou 4.

CLP=tipo[([ESD=X][ESA=Y][ESH=Z][ESP=1][VAF=1])] Define o tipo de controlador programvel BCM no qual o programa ser aplicado. Os seguintes tipos esto disponveis:
BCM2085 CPU6 CPU6A CPU7 CPU7-10 CPU7-11 CPU8 Configura o sistema para compilao, gravao de EPROMs e transferncia para flash-Eprom nos controladores BCM2085 que usem a CPU3, CPU4 ou CPU4A. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU6. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU6A. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU7. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU7 -10. Vlido para PROCP V4K ou superior. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU7 -10. Vlido para PROCP V4K ou superior. Configura o sistema para compilao de programas que sero usados no BCM2085/CPU8. Vlido para PROCP V4K 1.2 ou superior.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

42

BCM 1086 BCM 1088 BCM 3011

GP 3101 GP 3001 GP 3005 GP 3006 GP 3009 GP 3020

Configura o sistema para compilao, gravao de EPROMs e transferncia para flash-Eprom nos controladores BCM1086 e BCM1086A. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores BCM1088. Configura o sistema para compilao e transferncia para flsh-Eprom nos controladores GP3000 (GP3011 e GP 3020). Vlido para o PROCPV3K ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3101. Vlido para o PROCPV4K ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3001. Vlido para o PROCPV4K 1.2 ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3005. Vlido para o PROCPV4K 1.2 ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3006. Vlido para o PROCPV4K 1.2 ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3009. Vlido para o PROCPV4K 1.2 ou superior. Configura o sistema para compilao e transferncia para flash-Eprom nos controladores GP3020. Vlido para o PROCPV4K 1.2 ou superior.

As opes entre parnteses so utilizadas para o BCM GP 3011 e GP3101 para definir a configurao de mdulos de entradas e sadas.
ESD ESA ESH ESP VAF O parmetro x (1 a 4) define o nmero de mdulos GP3ESD. O parmetro y (1 a 4) define o nmero de mdulos GP3ESA. O parmetro z (1 a 4) define o nmero de mdulos GP3ESH. Declara que se ser usado o mdulo ESP. Somente um mdulo pode ser usado por controlador. Declara que se ser usado o mdulo ESP. Somente um mdulo pode ser usado por controlador.

Observao: o nmero mximo total de mdulos 4 . Se um tipo de mdulo no for usado este deve ser omitido.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

43

CONTINUA: (Narq.BCM) Esse comando permite que um programa aplicativo BCM seja dividido em vrios arquivos. Narq.BCM deve ser o nome de um arquivo com extenso .CLP ou .BCM localizado no mesmo diretrio. O compilador, ao encontrar esse comando, interrompe a compilao e continua a partir do incio do novo arquivo. usado principalmente para programas longos, que excedem a capacidade de memria do PROCP. Nestes casos, divide-se o programa em vrias partes, com nomes de arquivo diferentes, usando o comando `CONTINUA' para un-los no momento da compilao. A partir do PROCP verso V5K, a limitao de 64kbytes por arquivo fonte em linguagem descritiva deixou de existir. A utilidade do comando CONTINUA permanece para organizar diferentes partes de um aplicativo longo.

Exemplo:
;Arquivo: "TESTE1.BCM" MAQUINA 0: ESTADO 0: FACA MIN=0 E HOR=0 VA PARA 1 " " " " ESTADO 30: FACA* W00=SEC E W88=58888 E W89=HOR E W90=MIN FACA* W01=AN1 E W02=AN2 E W03=AN3 E W04=AN4 E W05=AN5 E W06=AN6 CONTINUA:(TESTE2.BCM) ;Arquivo: "TESTE2.BCM" MAQUINA 1: ESTADO 0: SE I01=1 OU I13=1 OU TF1=1 LIGA 1 SE I01=0 E I13=0 E TF1=0 DESL 1 " " " " ESTADO 13: SE V04<32768 ENTAO 12 VA PARA 0

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

44

CTR[*]=x Este comando habilita as rotinas de tratamento dos contadores rpidos no BCM2085B (mdulo CTR), no GP3000 (mdulo ESA ou CTR) ou no BCM1086A (expanso interna EI3). O parmetro `x' define o nmero de placas utilizadas no sistema. Deve ficar na faixa 1 a 5. Outro valor provocar erro na compilao. importante observar que se este comando no estiver presente, as placas no sero acessadas e as respectivas variveis assumiro valores indeterminados. O uso de CTR=5 no controlador BCM2085B s possvel se o comando PAN no estiver habilitado. Esta restrio determinada pelas limitaes do espao de endereamento no BCM2085B. O sinal opcional [*] informa ao sistema operacional que todas as placas CTR devem ser atendidas em cada Ciclo de Varredura. Sem o sinal, apenas uma placa ser atendida em cada ciclo. Esta opo no tem efeito no BCM1086A.

DIM aaa(xxx) Define a dimenso da matriz numrica `aaa'. O nmero de elementos pode estar na faixa 2 a 65535. DIMD[n] aaa(xxx) Define que a matriz `aaa' ser uma matriz de display, isto , a cada elemento da matriz de 0 a 99 corresponder um canal do display. O valor `n' opcional especifica a unidade de display e pode ser 1, 2 ou 3. Se omitido, o sistema assume a unidade 1. O valor `xxx' no ter importncia; uma matriz de display possui sempre a dimenso 99. O programa do usurio pode trabalhar livremente com uma matriz de display (testes, atribuio de valores, etc.), sem prejuzo das variveis definidas como variveis de display no menu "EDITA", as quais podem continuar a ser usadas normalmente. DIMM aaa(xxx) Define a dimenso da matriz numrica `aaa'. O nmero de elementos pode estar na faixa 2 a 65535. A diferena para a instruo `DIM' que `DIMM' aloca a matriz na memria RAM da placa BCM2085/MEM, verso `RIM'. Apenas controladores com essa placa instalada aceitam esse comando.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

45

DISPLAY=xx.yyy Habilita a operao dos displays numricos no BCM2085 ou BCM1086. O valor [xx] indica o nmero do ltimo canal reservado para o display, na faixa 1 a 99. O valor [yyy] indica o mximo admissvel no campo de valor dos displays, na faixa 1 a 65535. A colocao pelo programa de um valor fora da faixa configurada provoca o zeramento do valor, quando o canal correspondente for selecionado. Exemplo: DISPLAY=12.680 Neste caso, se utilizaro 12 canais, possibilitando a entrada ou apresentao de valores dentro dos limites 0 a 680. O Sistema Operacional permite a instalao de at trs mdulos de display numricos programveis pelo usurio e mais um de servio. O comando DISPLAY habilita todos os mdulos, mas os limites so vlidos apenas para os mdulos do usurio.

DISPLAY=DPA [20] Habilita a operao do display alfanumrico no BCM2085, BCM1086 ou GP3000. O controle da apresentao de mensagens e valores no display totalmente feito pela instruo MOSTRA. As seguintes observaes so importantes quando da elaborao do programa: Ao utilizar o comando DISPLAY=DPA, no podem existir variveis definidas nas unidades de display 2 e 3. Ao aparecer uma instruo "MOSTRA" no programa, obrigatrio que tenha sido colocado um comando DISPLAY=DPA no incio do programa. Caso contrrio, o compilador indica erro. A opo "DPA20" usada quando o display alfanumrico de 20 colunas. Caso contrrio, o compilador assume que o display possui 16 colunas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

46

ESA=x Este comando habilita a rotina de tratamento de entradas e sadas analgicas nos CPs BCM. importante observar que se este comando no estiver presente, as entradas e sadas no sero acessadas e as respectivas variveis assumiro valores indeterminados. No controlador BCM2085, o parmetro `x' define o nmero de mdulos ESA utilizadas no sistema. Se houver mdulos BCM2085/EAN ou /EAI instalados, o valor `x' pode estar na faixa 1 a 4. Se no houver mdulos EAN ou EAI, `x' pode estar na faixa 1 a 8. No controlador BCM1086, o comando ESA com `x' igual ou maior que 1 habilita o funcionamento das entradas e sadas analgicas nas expanses internas EI1, EI2 e EI4.
FIM Instrui ao compilador para encerrar a compilao nesse ponto, independentemente da continuao do programa no arquivo. usado principalmente durante a depurao, para isolar partes do programa que atrapalham o teste ou partes nas quais se suspeita haver erros.

IFT=x Este comando habilita a rotina de tratamento de entradas analgicas de termopares na placa IFT. O parmetro `x' define o nmero de placas utilizadas no sistema. Deve estar na faixa 1 a 8. Outro valor provocar erro na compilao. importante observar que se este comando no estiver presente, as placas no sero acessadas e as respectivas variveis assumiro valores indeterminados.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

47

INTERFACE1 [(nnnn)]=yyy [DE zzz] [(PROTOCOLO=BCMx TEM=m TOC=n TOR=o TOF=p NSE=q PAP=S/N)] Define os parmetros relativos comunicao entre a rede de CPs, do canal serial 1, e a unidade central ou com os outros equipamentos da rede. Ver o manual de Protocolos e Redes de comunicao para maiores informaes. O valor nnn define a velocidade. Para o protocolo BCM1 a velocidade de comunicao pode ser 1200bps ou 9600bps. Para o protocolo BCM2 as seguintes velocidades so admitidas: 1200, 9600, 19200, 38400, 48000. Nem todas as velocidades so suportadas por todos os produtos! Consulte a documentao especfica de cada produto para verificar as velocidades aceitas! O valor yyy o cdigo de acesso tal como ser reconhecido pela outros integrantes da rede. O cdigo permitido deve estar na faixa de 1 a 254. Apenas um dos dois canais de comunicao do CP pode fazer a passagem de ficha (definido pela expresso [DE zzz]). Sobre este canal que sero executadas as instrues LE/ESCREVE. O valor zzz especifica o nmero total de equipamentos ativos previstos para a rede. Na instruo INTERFACE1 esta opo s valida se o protocolo for o BCM2. As opes disponveis em PROTOCOLO so: BCM1 BCM2 MODBUSESCRAVO MODBUSMESTRE GPRS Ateno: A disponibilidade de cada protocolo depende do modelo de controlador programvel. Consulte a documentao especfica de cada modelo para saber quais os protocolos suportados e o detalhamento da configurao para uso. Se a opo escolhida for BCM1 os demais parmetros no devem estar presentes (TEM, TOC, TOR, TOF, NSE e PAP). Caso PROTOCOLO seja omitido o protocolo assumido o BCM1.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

48

O valor m define o tempo de espera gerado antes do envio de cada mensagem. Pode variar de 0 a 2550 em passos de 10. A unidade ms. Por omisso assumido o valor 0. O valor n define o time-out entre caracteres para descartar uma mensagem em curso Varia de 0 a 2550 (ms) em passos de 10. Se o valor programado for zero as mensagens no sero descartadas por time-out entre caracteres. Por omisso assumido o valor 0. O valor o define o time-out para resposta de uma solicitao (para considerar que o destino no respondeu). Pode variar de 10 a 2550 (ms) em passos de 10. Por omisso assumido o valor 500ms. O valor p define o time-out para criao de ficha. Varia de 0 a 2550 (ms) em passos de 10. Se o valor for 0 no cria ficha. Por omisso, igual a (960+40*(endereo do CP))ms. O valor q define o nmero de srie do produto. Pode variar 1 a 65535. Por omisso assume o valor prviamente gravado em Eeprom. A opo PAP habilita ou no a autorizao de parmetros on-line. PAP=S permite a alterao e PAP=N no permite) . Por omisso assume o valor PAP=S.

Observaes: - Caso os dois canais utilizem o protocolo BCM2, os cinco parmetros programveis sero sempre iguais (TEM, TOC, TOR, TOF, NSE e PAP) para os dois canais. Se houverem definies contraditrias, valer a ltima definio. - As opes PROTOCOLO,TEM, TOC, TOR, TOF, NSE e PAP s podem ser usadas com o PROCP V101.0, o PROCP V201.0, PROCP V301.0 e o PROCP V3K ou superiores.

Exemplos: INTERFACE1(38400)=2 DE 10 (PROTOCOLO=BCM2 TEM=100 TOC=30 TOR=100 - TOF=1250 NSE=1234 PAP=N) INTERFACE1(9600)=1
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

49

INTERFACE2 [(nnnn)]=yyy [DE zzz] [(PROTOCOLO=BCMx TEM=m TOC=n TOR=o TOF=p NSE=q PAP=S/N)] [EI] Define os parmetros relativos comunicao do canal serial 2. Ver o manual de Protocolos e Redes de comunicao para maiores informaes. O valor nnn define a velocidade. Para o protocolo BCM1 a velocidade de transmisso vai de 1200bauds a 9600bauds. Para o protocolo BCM2 as seguintes velocidades so admitidas: 1200, 9600, 19200, 38400, 48000. Nem todas as velocidades so suportadas por todos os produtos! Consulte a documentao especfica de cada produto para verificar as velocidades aceitas! O valor yyy: o cdigo de acesso tal como ser reconhecido pela outros integrantes da rede. O cdigo permitido deve estar na faixa de 1 a 254. Apenas um dos dois canais de comunicao pode fazer a passagem de ficha (definido pela expresso [DE zzz]). Sobre este canal que sero executadas as instrues LE/ESCREVE. O valor zzz especifica o nmero total de equipamentos previstos para a rede. As opes disponveis em PROTOCOLO so: BCM1 BCM2 MODBUSESCRAVO MODBUSMESTRE Ateno: A disponibilidade de cada protocolo depende do modelo de controlador programvel. Consulte a documentao especfica de cada modelo para saber quais os protocolos suportados e o detalhamento da configurao para uso. Se a opo escolhida for BCM1 os demais parmetros no devem estar presentes (TEM, TOC, TOR, TOF, NSE e PAP). Caso PROTOCOLO seja omitido o protocolo assumido o BCM1. Da mesma forma que no caso da velocidade, nem todos os produtos suportam ambos os protocolos.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

50

O valor m define o tempo de espera gerado antes do envio de cada mensagem. Pode variar de 0 a 2550 (ms) em passos de 10. Por omisso assumido o valor 0. O valor n define o time-out entre caracteres para descartar uma mensagem em curso Varia de 0 a 2550 (ms) em passos de 10. Se o valor programado for zero as mensagens no sero descartadas por time-out entre caracteres. Por omisso assumido o valor 0. O valor o define o time-out para resposta de uma solicitao (para considerar que o destino no respondeu). Pode variar de 10 a 2550 (ms) em passos de 10. Por omisso assumido o valor 500ms. O valor p define o time-out para criao de ficha. Varia de 0 a 2550 (ms) em passos de 10. Se o valor for 0 no cria ficha. Por omisso, igual a (960+40*(endereo do CP))ms O valor q define o nmero de srie do produto. Pode variar 1 a 65535. Por omisso assume o valor prviamente gravado em Eeprom. A opo PAP habilita ou no a autorizao do parmetros on-line. PAP=S permite a alterao e PAP=N no permite) . Por omisso assume o valor PAP=S. A opo EI indica que o controlador BCM1086A deve usar o canal serial da expanso interna, ao invs do canal serial do mdulo principal.

Observaes: - Caso os dois canais utilizem o protocolo BCM2, os parmetros programveis NSE e PAP sero sempre iguais para os dois canais. Se houverem definies contraditrias, valer a ltima definio. - As opes PROTOCOLO,TEM, TOC, TOR, TOF, NSE e PAP s podem ser usadas com o PROCP V101.0, PROCP V201.0, PROCP V301.0 e o PROCP V3K ou superiores.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

51

Exemplos: INTERFACE2(38400)=2 DE 10 (PROTOCOLO=BCM2 TEM=100 TOC=30 TOR=100 TOF=1250 - NSE=1234 PAP=N) INTERFACE2(9600)=1 DE 5 INTERFACE2(1200)=1

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

52

INTERFACE3=(PROTOCOLO=tipo {PORTA=nnn}) Configura o canal de comunicao Ethernet TCP-IP do controlador GP3101. Este comando vlido apenas para o PROCP V4K ou superior. As opes de servios disponveis em "tipo" so:
BCM2 MODBUSTCP GAT232 VEL=XX Configura o canal TCP-IP para o protocolo BCM2 (encapsulado) Configura o canal TCP-IP para o protocolo MODBUSTCP Configura o canal TCP-IP para operar como gateway com o canal RS232. O parmetro xx define a velocidade em baud do canal RS232 nesse modo. Pode ser 9600 ou 19200. Configura o canal TCP-IP para operar como gateway com o canal RS485. O parmetro xx define a velocidade em baud do canal RS485 nesse modo. Pode ser 9600 ou 19200.

GAT485 VEL=XX

Em PORTA deve ser colocado o nmero da porta lgica TCP-IP que ser usada dentro do protocolo especificado. Pode estar na faixa 1 a 65535. Se omitido, assume as seguintes portas, conforme o protocolo: - BCM2: Porta 501 - MODBUSTCP: Porta 502 - GAT232: Porta 23 - GAT485: Porta 24

Conexo ativa ModbusTCP A varivel TCPAT, disponvel somente para o GP3101, deve ser forada pelo programa do usurio para abrir uma conexo ativa ModbusTCP: - TCPAT= 0 -> conexo passiva - TCPAT= 1 -> dispara conexo ativa - TCPAT= 2 -> tentando estabelecer conexo ativa - TCPAT= 3 -> conexo ativa estabelecida

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

53

Os seguintes canais do Display #3 do GP3101 (SO verso 2005-3 ou superior) so utilizados para controle da comunicao ModbusTCP e portanto no podem ser utilizados para outras finalidades: Variveis de configurao (somente p/ conexo ativa):
Nome IP_1 IP_2 IP_3 IP_4 PORTA Canal 0 1 2 3 4 Endereo C400h C402h C404h C406h C408h Descrio 1o octeto do endereo IP do host (Supervisrio) 2o octeto do endereo IP do host 3o octeto do endereo IP do host 4o octeto do endereo IP do host Porta p/ conexo da comunicao Modbus com o host

Variveis de monitorao (conexo ativa e passiva):


Nome CONTC RXPCM RXPCP Canal 5 6 7 Endereo C40Ah C40Ch C40Eh Descrio Contador de tentativas de abertura de conexo TCP Contador de pacotes Modbus recebidos Contador de pacotes recebidos descartados

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

54

Conexo ativa nas funes Gateway pelos canais RS232 e RS485 Ateno: Este recurso vlido somente para o GP3101 com S.Operacional verso 2008-1 ou superior. As variveis de interface de Gateway RS232 ativo e Gateway RS485 ativo devem ser alocadas nos seguintes endereos do display #3:
Prot. GW232 Nome IP2_1 IP3_1 IP4_1 PORT1 DPCO1 CNTD1 IP1_2 IP2_2 IP3_2 IP4_2 PORT2 DPCO2 CNTD2 Canal 11 12 13 14 15 16 17 18 19 20 21 22 23 Descrio 2o octeto do IP do equipamento destino (cliente) 3o octeto do IP do equipamento destino (cliente) 4o octeto do IP do equipamento destino (cliente) Porta para conexo no equipamento destino Flag de disparo da conexo ativa (1) ativa; (3) encerra Contador de pedidos de conexo 1o octeto do IP do equipamento destino (cliente) 2o octeto do IP do equipamento destino (cliente) 3o octeto do IP do equipamento destino (cliente) 4o octeto do IP do equipamento destino (cliente) Porta para conexo no equipamento destino Flag de disparo da conexo ativa (1) ativa; (3) encerra Contador de pedidos de conexo

GW485

O padro Ethernet permite que dois ou at trs desses servios sejam configurados simultaneamente. Isto feito atravs da colocao de mais de uma linha INTERFACE3 no programa. O compilador deve indicar erro nos casos de conflito de alocao de uma porta serial para duas finalidades - Se for includo no mesmo programa as instrues: INTERFACE1=... e INTERFACE3=(PROTOCOLO=GAT232...) ou: INTERFACE2=... e INTERFACE3=(PROTOCOLO=GAT485...) O compilador deve indicar erro no caso de haver a mesma programao de PORTA para diferentes servios.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

55

Exemplos: INTERFACE3=(PROTOCOLO=GAT485 VEL=9600) Configura o canal TCP/IP para operar como gateway com a porta serial RS 485(canal 2). A porta serial ir funcionar a 9600 baud.

INTERFACE3=(PROTOCOLO=MODBUSTCP PORTA=30) Configura o canal TCP/IP para operar no protocolo MODBUS TCP, na porta lgica 30, sem abrir a comunicao na rede.

INTERFACE3=(PROTOCOLO=MODBUSTCP PORTA=30) ************** ************** FACA TCPAT=1 Configura o canal TCP/IP para operar no protocolo MODBUS TCP, na porta lgica 30, tomando a iniciativa de abrir a comunicao na rede. Devem ser tambm configurados os parmetros especficos para a operao ativa, conforme descrito acima.

INTERFACE3=(PROTOCOLO=GAT232 VEL=9600) INTERFACE3=(PROTOCOLO=GAT485 VEL=9600) INTERFACE3=(PROTOCOLO=MODBUSTCP PORTA=30) Configura o canal TCP/IP para executar os trs servios simultaneamente. Funciona como gateway para o canal serial RS232 atravs da porta 23, funciona como gateway para o canal serial RS485 atravs da porta 24 e tambm opera no protocolo MODBUS TCP, atravs da porta lgica 30.

INTERFACE3=(PROTOCOLO=GAT232 VEL=9600 PORTA=10) INTERFACE3=(PROTOCOLO=GAT485 VEL=9600 PORTA=20) INTERFACE3=(PROTOCOLO=MODBUSTCP PORTA=30) Configura o canal TCP/IP para executar os trs servios simultaneamente. Funciona como gateway para o canal serial RS232 atravs da porta 10, funciona como gateway para o canal serial RS485 atravs da porta 20 e tambm opera no protocolo MODBUS TCP, atravs da porta lgica 30.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

56

NEST=xxx Reserva um espao de memria para a tabela de estados. Este espao deve ser igual ou superior ao nmero de estados mais o nmero de testes independentes de estado de todo o programa. O valor para 'xxx' aceito na faixa 1 a 2000. Se omitido, o sistema reservar um espao de 150 estados.
PAN=x Este comando habilita a rotina de tratamento da placa BCM2085/PAN - Painel de leds. O parmetro `x' define o nmero de placas utilizadas no sistema. Pode ser 1 ou 2. Outro valor provocar erro na compilao. Se este comando no estiver presente, as placas no sero acessadas. importante observar que a incluso do comando PAN influi na capacidade de instalao de mdulos BCM2085/CTR no sistema.

RTC Habilita a operao do relgio de tempo real. Este comando usado nos controladores BCM1086A, GP3000 e no BCM2085 com a placa `MEM' instalada.

SAIDA r1{,r2,...rn} = aaa{,bbb,...nnn} Esta instruo est disponvel para o controlador BCM2085B, com CPU7 ou CPU8. Este comando associa as saidas digitais 'r1' ... at 'rn' s variveis 'aaa' ... at 'nnn'. Com isto, as sadas podero ser tratadas como variveis. A varivel 'aaa' dever ser varivel livre ou matricial (criada pelo comando DIM). As variveis 'bbb' ... at 'nnn' devero ser variveis livres, no podendo ser variveis indexadas, fixas ou de entrada digital. Quando a varivel 'aaa' for matricial, no podero ser definidas outras variveis. A ordem das sadas r1{,r2,...rn} dever ser crescente e ser verificada no momento da compilao. O acionamento das sadas no declaradas por esta instruo, continuar sendo feita pelas instrues LIGA, DESL e outras do mesmo gnero. O Sistema Operacional ter um bloco de tratamento das variveis associadas s sadas. Este bloco ser executado no incio de cada ciclo. Neste bloco, cada varivel associada que tiver o seu valor diferente de zero ser ligada, seno a sada ser desligada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

57

No programa BCM, todas as sadas associadas devero ser declaradas depois dos comandos DIM (se houver) e NEST (se houver) e antes da descrio da MALHA 0. O compilador dever gerar uma mensagem de erro, se esta ordem no for respeitada. No Compilador, as instrues LIGA n, DESL n, SE condio LIGA n e/ou SE condio DESL n, cuja saida 'n' for associada a uma varivel, gerar uma mensagem de erro.

TCP IP=x GT=y NT=z Configura os parmetros TCP/IP do canal Ethernet do GP 3101. Disponvel para o PROCP V4K ou superior. Os parmetros configurveis so os seguintes:
IP=x - Define o nmero IP do equipamento na rede. O PROCP testa por nmeros vlidos (0 a 255 e diferente de 0.0.0.0). Deve estar presente e colocado no formato padro de quatro octetos separados por pontos. GT=y - Define o endereo IP do gateway . Deve estar presente e colocado no formato padro de quatro octetos separados por pontos. NT=z - Define o netmask. Deve estar presente e colocado no formato padro de quatro octetos separados por pontos.

Exemplo: TCP IP=192.168.150.140 GT=192.168.150.255 NT=255.255.255.200

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

58

2.4.2 - Instrues de Programao

COPIA xxx(yyy) PARA zzz(www) QUANT=kkk Copia um conjunto de elementos de uma matriz para outra, a partir dos ndices especificados. Os parmetros yyy e www podem ser uma constante ou uma varivel. O parmetro kkk indica a quantidade de elementos a copiar, podendo ser constante ou varivel no indexada. Esta instruo executada na transio, isto , somente na primeira vez em que entra no ESTADO da MALHA que contm a respectiva instruo. Este recurso est disponvel no Controlador Programvel que use o mdulo BCM2085B/CPU7-11 ou /CPU8.

DECREMENTA aaa,bbb,ccc,ddd(iii) Decrementa de uma unidade o contedo das variveis mencionadas. Qualquer tipo de varivel aceita, inclusive variveis matriciais. Equivale instruo "FACA aaa=aaa-1 E bbb=bbb-1", etc., com mais clareza na edio, economia de memria e de tempo de processamento. Podem ser usadas vrias instrues DECREMENTA em um estado. A nica exigncia que as linhas com esta instruo devem ser adjacentes. Alm disso, todas as instrues SET, RESET, INCREMENTA e DECREMENTA de um estado devem estar agrupadas.
Exemplo: ESTADO 5: FACA CONT=10 VA PARA 6 ;Este bloco de programa aciona a sada 1 por 10 vezes, ;com um tempo ligado de 1s e desligado de 1s.

ESTADO 6: LIGA 1 SE ATRASO=10 ENTAO 7 ESTADO 7: DESL 1 DECREMENTA CONT SE ATRASO=10 ENTAO 6 SE CONT=0 ENTAO 8

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

59

EAI Essa instruo controla o funcionamento da placa BCM2085/EAI, permitindo que o usurio, atravs do programa em alto nvel, defina as caractersticas de funcionamento da placa conforme a aplicao. A mesma instruo permite adquirir os valores analgicos dos pontos de entrada e ler os valores processados localmente pela placa EAI, incluindo-os no programa da forma mais adequada. A varivel "r" especifica o nmero do ponto analgico que ser atendido pelo comando. O Sistema Operacional suporta um mximo de 128 pontos de entradas analgicas, distribuidos em at 8 placas. O comando define a operao a ser feita dentro da instruo `EAI'. Cada comando possui um conjunto prprio de parmetros com sintaxe definida. Somente um comando pode ser usado em cada linha de programa.

EAI r FILTRO [KP=www] [KI=yyy] [KD=zzz] [AI=uuu] [LIN=h] [ESC=xxx] [DES=vvv] [TA=qqq] [LS=sss] [LI=ttt] Programa os valores gerais relativos ao sistema de controle do canal `r' da placa EAI: - KP Transfere a varivel `www', relativa ao coeficiente proporcional vezes 256, para o PID do canal `r' da placa EAI. So permitidos valores na faixa 0 a 65534. Se omitido, o coeficiente proporcional assume o valor 1. - KI Transfere a varivel `yyy', relativa ao coeficiente integral vezes 256, para o PID do canal `r' da placa EAI. So permitidos valores na faixa 0 a 65534. Se omitido, assume o valor 0. Transfere a varivel `zzz', relativa ao coeficiente derivativo vezes 256, para o PID do canal `r' da placa EAI. Se omitido, assume o valor 0. Transfere a varivel `uuu', relativa ao acumulador integral, para o PID do canal `r' da placa EAI. Se omitido, o acumulador integral no ser alterado.

- KD

- AI

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

60

- LIN

O nmero `h' (sempre constante) especifica o cdigo para uma funo de linearizao. Essa funo aplicada diretamente sobre a leitura do conversor A/D. Todos os processamentos posteriores (sada VME, controle PID) tero como base o valor j passado pela funo especificada. Note que cada ponto analgico pode ter uma funo de linearizao distinta dos demais, independentemente da placa onde estiver instalada. - Funo 0: Sem linearizao (Leitura medida = Lad) - Funo 1: Linearizao para termopar tipo T - Leitura = 1000 + (10 * Temperatura) - Funo 2: Linearizao para termopar tipo S - Leitura = 1000 + (10 * Temperatura) - Funo 3: Linearizao para termopar tipo K - Leitura = 1000 + (10 * Temperatura) - Funo 4: Linearizao para termopar tipo J - Leitura = 1000 + (10 * Temperatura) Est previsto o desenvolvimento de funes de linearizao para outros tipos de termopares e transdutores no-lineares. O contedo da varivel `xxx' ser o fator de escala aplicado a sada do conversor A/D, aps a passagem pela funo de linearizao. expresso em termos de unidades do A/D por unidade da varivel da sada, vezes 256. So permitidos valores na faixa 0 a 65534. Se omitido, assume o valor 256. O contedo da varivel `vvv' ser o deslocamento (offset) de leitura. Especifica o valor que ser somado a sada da funo de linearizao, j includo o fator de escala. So permitidos valores na faixa 0 a 65534. Se omitido, assume o valor 0.

- ESC

- DES

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

61

- TA

Transfere a varivel `qqq', relativa ao tempo de amostragem para os fatores integral e derivativo do filtro PID relativo ao canal `r' da placa EAI. expresso em dcimos de segundo; a varivel pode assumir valores entre 1 e 255 correspondendo a intervalos de amostragem entre 0,1 e 25,5 segundos. Se omitido, o mdulo assume um intervalo de amostragem de 1 segundo. Transfere a varivel `sss' para o registro de limite superior do filtro PID. O contedo dessa varivel ir ser o limitante superior da sada do filtro PID. Ao atingir esse valor, o acumulador integral no aumenta mais, independentemente do valor do erro. So permitidos valores na faixa 0 a 65534. Transfere a varivel `ttt' para o registro de limite inferior do filtro PID. O contedo dessa varivel ir ser o limitante inferior da sada do filtro PID. Ao atingir esse valor, o acumulador integral no diminui mais, independentemente do valor do erro.

- LS

- LI

EAI r LEITURA [VME=yyy] [REF=xxx] [PID=www] Esse comando adquire informaes relativas ao canal `r' da placa EAI para tratamento em alto nvel. Os parmetros permitem especificar as variveis que recebero estas informaes: - VME Valor Medido. Carrega o valor medido da entrada analgica `r' na varivel `yyy' no momento da execuo da instruo. Note que o valor carregado corresponde a sada da funo de linearizao, aplicados ainda os fatores de escala e deslocamento. A frmula aplicvel a seguinte: VME = (ESC / 256) * Fx(Lad) + DES ESC -Fator de escala, programado em "FILTRO" DES -Fator de deslocamento, programado em "FILTRO" Fx( )-Funo de linearizao, selecionada em "FILTRO" Lad -Leitura obtida no conversor A/D.

Onde:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

62

- REF

Valor de Referncia PID. O contedo da varivel `xxx' ser o valor de referncia para aplicao do filtro PID. Ver o parmetro `PID' para o detalhamento do algoritmo.

- PID

Valor de Sada PID. Carrega o valor de sada do filtro PID na varivel `www', de acordo com o seguinte algoritmo: PID=Kp * Err + Ki * SErr + Kd * dErr Onde: Err o erro de controle (REF - VME); SErr a soma de todos os erros acumulados a cada intervalo de amostragem; dErr a diferena entre o erro atual e o erro registrado no intervalo de amostragem anterior.

Os comandos associados a instruo `EAI' so ativados no estado, isto , so repetidos uma vez a cada varredura enquanto o controlador estiver no estado. Alm dos comandos descritos para trabalho com o mdulo EAI, o Sistema Operacional possui a varivel de atribuio fixa `EANER' que indica o nmero de mdulos ativos no sistema e o cdigo de erro relativo a inicializao ou operao das placas. Observar que no podem ser utilizados mdulos EAN e EAI no mesmo controlador.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

63

EAN Essa instruo controla o funcionamento da placa BCM2085/EAN, permitindo que o usurio, atravs do programa em alto nvel, defina as caractersticas de funcionamento da placa conforme a aplicao. A mesma instruo permite adquirir os valores analgicos dos pontos de entrada e ler os valores processados localmente pela placa EAN, incluindo-os no programa da forma mais adequada. A varivel "r" especifica o nmero do ponto analgico que ser atendido pelo comando. O Sistema Operacional suporta um mximo de 64 pontos de entradas analgicas, distribuidos em at 8 placas. O comando define a operao a ser feita dentro da instruo `EAN'. Cada comando possui um conjunto prprio de parmetros com sintaxe definida. Somente um comando pode ser usado em cada linha de programa.

EAN r FILTRO [KP=www] [KI=yyy] [KD=zzz] [AI=uuu] [LIN=h] [ESC=xxx] [DES=vvv] [TA=qqq] [LS=sss] [LI=ttt] Programa os valores gerais relativos ao sistema de controle do canal `r' da placa EAN: - KP Transfere a varivel `www', relativa ao coeficiente proporcional vezes 256, para o PID do canal `r' da placa EAN. Se omitido, o coeficiente proporcional assume o valor 1. Transfere a varivel `yyy', relativa ao coeficiente integral vezes 256, para o PID do canal `r' da placa EAN. Se omitido, assume o valor 0. Transfere a varivel `zzz', relativa ao coeficiente derivativo vezes 256, para o PID do canal `r' da placa EAN. Se omitido, assume o valor 0. Transfere a varivel `uuu', relativa ao acumulador integral, para o PID do canal `r' da placa EAN. Se omitido, o acumulador integral no ser alterado.

- KI

- KD

- AI

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

64

- LIN

O nmero `h' (sempre constante) especifica o cdigo para uma funo de linearizao. Essa funo aplicada diretamente sobre a leitura do conversor A/D. Todos os processamentos posteriores (sada VME, controle PID) tero como base o valor j passado pela funo especificada. Note que cada ponto analgico pode ter uma funo de linearizao distinta dos demais, independentemente da placa onde estiver instalada. - Funo 0: Sem linearizao (Leitura medida = Lad) - Funo 1: Linearizao para termopar tipo T - Leitura = 1000 + (10 * Temperatura) Est previsto o desenvolvimento de funes de linearizao para outros tipos de termopares e transdutores no-lineares.

- ESC

O contedo da varivel `xxx' ser o fator de escala aplicado a sada do conversor A/D, aps a passagem pela funo de linearizao. expresso em termos de unidades do A/D por unidade da varivel da sada, vezes 256. Se omitido, assume o valor 256. O contedo da varivel `vvv' ser o deslocamento (offset) de leitura. Especifica o valor que ser somado a sada da funo de linearizao, j includo o fator de escala. Se omitido, assume o valor 0. Transfere a varivel `qqq', relativa ao tempo de amostragem para os fatores integral e derivativo do filtro PID relativo ao canal `r' da placa EAN. expresso em dcimos de segundos; a varivel pode assumir valores entre 1 e 255 correspondendo a intervalos de amostragem entre 0,1 e 25,5 segundos. Se omitido, o mdulo assume um intervalo de amostragem de 1 segundo. Transfere a varivel `sss' para o registro de limite superior do filtro PID. O contedo dessa varivel ir ser o limitante superior da sada do filtro PID. Ao atingir esse valor, o acumulador integral no aumenta mais, independentemente do valor do erro.
Referncia: 31940092-8

- DES

- TA

- LS

Verso 2009-1

BCM Automao

Linguagem Descritiva BCM

65

- LI

Transfere a varivel `ttt' para o registro de limite inferior do filtro PID. O contedo dessa varivel ir ser o limitante inferior da sada do filtro PID. Ao atingir esse valor, o acumulador integral no diminui mais, independentemente do valor do erro.

EAN r LEITURA [VME=yyy] [REF=xxx] [PID=www] [OVE=zzz] Esse comando adquire informaes relativas ao canal `r' da placa EAN para tratamento em alto nvel. Os parmetros permitem especificar as variveis que recebero estas informaes: - VME Valor Medido. Carrega o valor medido da entrada analgica `r' na varivel `yyy' no momento da execuo da instruo. Note que o valor carregado corresponde a sada da funo de linearizao, aplicados ainda os fatores de escala e deslocamento. A frmula aplicvel a seguinte: VME= (ESC / 256) * x(Lad) + DES Onde: ESC -Fator de escala, programado em "FILTRO" DES -Fator de deslocamento, programado em "FILTRO" Fx( )-Funo de linearizao, selecionada em "FILTRO" Lad -Leitura obtida no conversor A/D. Valor de Referncia PID. O contedo da varivel `xxx' ser o valor de referncia para aplicao do filtro PID. Ver o parmetro `PID' para o detalhamento do algoritmo. Valor de Sada PID. Carrega o valor de sada do filtro PID na varivel `www', de acordo com o seguinte algoritmo: PID = Kp * Err + Ki * SErr + Kd * dErr Err o erro de controle (REF - VME) SErr a soma de todos os erros acumulados a cada intervalo de amostragem, dErr a diferena entre o erro atual e o erro registrado no intervalo de amostragem anterior.

- REF

- PID

Onde:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

66

- OVE

Sinalizador de overflow na leitura. Ao ser executada a instruo, o sistema carrega o valor 1 na varivel zzz, se o canal 'r' estiver em overflow. Se o sinal de entrada estiver dentro da faixa, a instruo carrega o valor zero.

Os comandos associados a instruo `EAN' so ativados no estado, isto , so repetidos uma vez a cada varredura enquanto o controlador estiver no estado. Alm dos comandos descritos para trabalho com o mdulo EAN, o Sistema Operacional possui a varivel de atribuio fixa `EANER' que indica o nmero de mdulos ativos no sistema e o cdigo de erro relativo a inicializao ou operao das placas.

ESCISInn[*] aaa NO EQ=xxx EM [#]bbb [BLOCO=ccc] [STA=ddd] Esta instruo faz a escrita de uma varivel ou de um bloco de memria no equipamento nmero 'xxx' conectado rede de comunicao ligada porta 'nn' de uma placa ISI instalada. Os dados enviados da CPU comeam na posio 'aaa'. S pode ser executada uma instruo ESCISI por estado. O parmetro 'nn', sempre constante, especifica o nmero da porta serial da placa ISI (podendo variar de 1 a 36). Os parmetros 'aaa, 'xxx, 'bbb' e 'ccc' podem ser constantes ou variveis, no podendo ser variveis indexadas. O parmetro 'ddd' ser sempre varivel. O parmetro 'aaaendereo dos dados na CPU. Se 'aaa' for parmetro 'xxx' especifica o nmero do equipamento destino para escrita na rede de comunicao. O parmetro 'bbb' especifica o endereo no equipamento destino. Se 'bbb' for varivel, o endereo inicial no equipamento destino ser o contedo da varivel 'bbb'. Os parmetros 'ccc' e 'ddd' (se existirem), especificam respectivamente o tamanho do bloco (no de bytes) a ser escrito e a varivel onde ser armazenado o status da comunicao. A opo "#" (antes de 'bbb') usada para indicar que a escrita no equipamento destino ser direto na memria da ISI, caso contrrio ser na memria da CPU destino. A omisso do parmetro 'ccc' (tamanho do bloco), indicar que a escrita ser de apenas uma varivel.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

67

A opo '*' indica que a instruo ser executada no estado, seno a mesma ser executada somente na transio. Observaes: 1)Esta instruo pode ser usada apenas com CPU7, CPU7-10 e CPU7-11 2) Se 'aaa' ou 'bbb' forem constante, seu valor dever ser hexadecimal e precedido do caracter $. Por exemplo, o valor BFFE dever ser escrito: $BFFE. 3) O valor de 'xxx' e 'ccc' , se constante, dever ser decimal. O valor de 'xxx' poder variar de 1 a 127 e o valor de 'ccc' de 1 a 240. 4) A opo 'BLOCO' obrigatria se o endereo no equipamento destino for direto na memria da placa ISI (opo #). Instrues relacionadas : ESCREVE ESCMISI LE LEISI LEMISI ISI

ESCMISIn[*] aaa EM bbb [BLOCO=ccc] Esta instruo s pode ser usada com o BCM2085/CPU7 ou CPU8. Esta instruo faz a escrita na memria da placa ISI (varivel ou bloco), sem provocar uma transmisso pelo canal de comunicao da ISI. S poder ser executada uma instruo ESCMISI por estado. O parmetro 'n', sempre constante (1 a 12), especifica o nmero do mdulo ISI onde ser feito a escrita. Os outros parmetros podem ser constantes ou variveis, no podendo ser variveis indexadas, entretanto podem ser usadas variveis do tipo matricial, sem o ndice. O parmetro 'aaa' especifica o endereo dos dados na CPU. Se 'aaa' for varivel, o endereo inicial na CPU ser o endereo da prpria varivel 'aaa'. O parmetro 'bbb' especifica o endereo na memria da ISI. Se 'bbb' for varivel, o endereo inicial da ISI ser o contedo da varivel 'bbb'. O parmetro 'ccc' (se existir) especifica o tamanho do bloco (no de bytes) a ser escrito, seno a escrita ser de uma varivel.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

68

A opo '*' indica que a instruo ser executada no estado, seno a mesma ser executada somente na transio. Observao: Se 'aaa' ou 'bbb' forem constante, seu valor dever ser hexadecimal e precedido do caracter $. Por exemplo, o valor BFFE dever ser escrito: $BFFE. O valor de 'bbb' s poder variar de 8000H a BFFFH. O valor de 'ccc', se constante, dever ser decimal

ESCREVE[*] aaa NO EQ=xxx EM yyyy [BLOCO=zzz] [STA=bbb] O Controlador Programvel ir escrever um determinado bloco de informao em outro equipamento da rede de comunicao, atravs do canal serial. Para maiores informaes a respeito do Protocolo Geral de Comunicao, ver o manual do software de desenvolvimento. A opo "*" tem funo similar quela adotada na instruo "FACA". Sem o asterisco, a escrita executada somente uma vez a cada entrada no estado correspondente. Com o asterisco, a operao fica sendo repetida enquanto o CP estiver no estado. O parmetro aaa especifica o nome da varivel cujo endereo ser o ponto de partida para a escrita. Pode ser especificada uma varivel isolada ou matricial com ndice constante. A constante xxx especifica o nmero (cdigo) do equipamento sobre o qual ser feita a escrita.

A constante hexadecimal yyyy especifica o endereo de carga do bloco no equipamento de destino. Neste caso a constante no dever ser precedida do sinal $. A constante opcional zzz especifica o tamanho do bloco (em bytes) de memria a ser transferido. Pode estar na faixa 1 a 240. Se omitido, a instruo assume que o bloco possui dois bytes (uma varivel).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

69

O parmetro bbb especifica a varivel que ir receber os cdigos referentes s informaes de status do processo de comunicao. Os cdigos de status definidos so: 0 - Tarefa completada com sucesso 1 - Tarefa agendada no buffer para execuo pelo SO 2 - Tarefa em curso de execuo pelo SO 3 - Erro por falta de resposta no equipamento indicado 4 - Erro por sobrecarga do buffer de tarefas.

S permitido usar uma instruo ESCREVE por estado. No manual de Protocolos e Redes de comunicao podero ser encontradas mais informaes sobre o significado dos cdigos e a seqncia de tarefas de comunicao. Exemplos: ESTADO 2: ESCREVE* HAA NO EQ=15 EM 8965 O controlador ir escrever a varivel HAA no equipamento 15, na posio de memria 8965/66H. A operao ser repetitiva - A escrita ficar sendo feita enquanto o programa estiver no estado 2. ESTADO 2: ESCREVE XAM NO EQ=15 EM 8400 BLOCO=100 STA=AAB O controlador ir copiar a rea de memria iniciada pela varivel XAM no equipamento 15, a partir da posio de memria 8400H. A rea tem um tamanho de 100 bytes e o status da operao poder ser visto atravs do cdigo presente na varivel AAB. A escrita ser feita s uma vez, quando o sistema entrar no estado 2. Instrues relacionadas : ESCISI ESCMISI LE LEISI LEMISI
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

70

ESTADO r : Marca para o compilador o incio das instrues relativas ao estado `r'. Os estados podem ser numerados de zero at 254. A numerao dos estados no momento da edio do programa pode ser feita em qualquer ordem, pulando nmeros ou misturando a seqncia de numerao. No h qualquer sentido de prioridade ou influncia no funcionamento, que dependa dos nmeros escolhidos para os estados ou da ordem de edio. A nica considerao importante que o controlador ao ser ligado, inicia sempre pelo estado zero.

EVENTOS r FILTRO BUF=aaa TAM=bbb [DEB=ccc] [MASC=xxyy] [TRAN=d] [EST=e] [MESTRE] [DUPLOS=f,g,h,...] [TDUP=iii] EVENTOS r FILTRO BUF=aaa TAM=bbb [DEB=ccc] [MASC=xxyy] [TRAN=d] [EST=e] [MESTRE] [DUPLOS=fff] [TDUP=iii] Esta instruo pode ser usada somente com CPU7xx e CPU8. Esta instruo programa os parmetros da placa EDE nmero r, conforme descrito abaixo. Deve ser executada no incio do programa e antes de qualquer outra instruo EVENTOS: BUF O parmetro 'aaa' especifica o nome da varivel cujo endereo ser o endereo inicial do buffer onde sero armazenados os eventos lidos da placa EDE, atravs do comando EVENTOS r LEITURA. A varivel 'aaa' dever ser do tipo matricial (sem ndice). Toda vez que esta instruo executada, a posio 2 da matriz 'aaa' (que indica o nmero de eventos lidos) zerada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

71

TAM A constante 'bbb' especifica o nmero mximo de eventos (tamanho) que podero ser carregados no buffer citado acima. A matriz 'aaa' dever ser declarada no inicio do programa com a instruo DIM e seu tamanho. dever ser maior ou igual a 3 * 'bbb' + 2. O valor de 'bbb' pode variar de 1 a 255. CUIDADO: A declarao errada desta constante ou da matriz poder acarretar uma escrita de dados em rea de memria imprpria, sem indicao de erro pelo compilador. DEB A constante decimal 'ccc' especifica o tempo de debounce em 'ms' para todas as entradas da respectiva placa. O valor pode variar de 1 a 254. Por omisso, o valor assumido ser 10 ms. MASC As constantes hexadecimais 'xx' e 'yy' especificam a mscara para o registro de eventos das 32 entradas digitais. O valor hexadecimal 'xx' corresponde respectivamente s 16 ltimas entradas da placa (32 a 17) e o valor 'yy' s 16 primeiras (16 a 1). Para uma entrada gerar evento (entrada no mascarada), o bit correspondente dever ser setado pra '1'. O valor por omisso ser '1' para todos os bits. Obs.: O compilador PROCP sempre ir programar a mscara, independente dela ser omitida. TRAN O nmero 'd' (sempre constante) indica se a ocorrncia de transiente (bounce) sem a mudana de estado gera um evento. Se o valor for '0', o transiente no gera evento. Se for '1', gera evento. Por omisso, o valor assumido ser '0'. EST O nmero 'e' (sempre constante) especifica o que ocorrer se houver estouro da capacidade na carga dos eventos. Se o valor for '0', sero descartados os primeiros eventos que foram armazenados na EDE. Se o valor for '1', sero descartados os ltimos eventos. Por omisso, o valor assumido ser 1. (A 1a verso de S.O. para a placa EDE suportar apenas este caso).
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

72

MESTRE Se este parmetro for atribudo, a placa EDE que est sendo programada ser considerada a placa mestre, isto , a que gera o clock de sincronismo para as outras EDEs que estiverem presentes no mesmo bastidor. S pode haver uma placa mestre por CPU. Se uma placa EDE j foi programada como mestre, e dado um novo comando programando outra placa EDE como mestre, a ltima programao a que ser assumida. Quando este parmetro for atribudo, poder haver um atraso de at 0,5 ms no relgio da placa EDE usado para o registro dos eventos. DUPLOS As constantes decimais f, g, h, ... especificam quais sero as entradas duplas da respectiva placa EDE. Somente podem ser configuradas entradas mpares (1 a 31) e a segunda entrada de cada ponto ser a entrada par imediatamente a seguir. Se for usado o parmetro fff, este especifica o nome da varivel , que inclusive pode ser indexada. Cada bit da varivel configura 2 entradas da placa, sendo que bit em zero indica entrada simples e bit em 1 indica entrada dupla. O bit 0 configura as entradas 1 e 2, o bit 1 configura as entradas 3 e 4 e assim sucessivamente. Por omisso, todas as entradas sero configuradas como simples. O uso desse parmetro s vlido para o BCM2085B/EDE-11. Este recurso s est disponvel no Controlador Programvel que use o mdulo BCM2085B/CPU7-11 ou /CPU8. TDUP O parmetro iii pode ser uma constante decimal ou uma varivel (inclusive indexada) e especifica o tempo que deve ser aguardado para registro do evento duplo de posio indeterminada (em ms). Por omisso, o valor assumido ser 10.000 ms (10s). Observao: O tempo real p/ registro do evento de transio ser igual a: TDUP + DEB Os parmetros DUPLOS e TDUP, quando presentes, devem ser configurados simultaneamente com constantes ou simultaneamente como variveis. Por omisso, todas as entradas sero configuradas como simples. O uso desse parmetro s vlido para o BCM2085B/EDE-11. Este recurso s est disponvel no Controlador Programvel que use o mdulo BCM2085B/CPU7-11.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

73

EVENTOS RELOGIO Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo reprograma o relgio de todas as placas EDE presentes no sistema. Esta instruo sempre dever ser executada no incio do programa do usurio, para que o relgio de todas as placas EDE seja atualizado. A passagem do programa do usurio pelo estado com essa instruo deve ser de apenas um ciclo (usar VA PARA para sair do estado). A execuo dessa instruo gera dois eventos, um com o horrio anterior atualizao e outro depois. O contedo das variveis 'RHOR', 'RMIN' e 'RSEC' do Sistema Operacional (que indicam a hora, minuto e segundo) ser carregado em todas as placas EDE presentes no sistema. O controle de sincronismo ser feito automaticamente pela placa EDE mestre. Aps esta instruo ser executada, haver um intervalo de at 1 segundo em que nenhum evento ser registrado (se ocorrer). Isto ocorre em funo do ajuste do relgio das placas EDE. Alm disso, durante este tempo no poder ser executado nenhuma instruo EVENTOS. A diferena mxima de tempo entre o relgio de tempo real e o relgio das placas EDE (aps programados) ser igual ao tempo de ciclo de programa + 10 ms.

EVENTOS r LEITURA [NUM=aaa] Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo adquire as informaes dos eventos da placa 'r'. NUM O contedo da varivel 'aaa' ser o nmero de eventos que o usurio deseja ler na placa EDE e carregar no buffer programado pela instruo EVENTOS r FILTRO. Esta varivel no poder ser matricial nem de entrada digital. O valor poder estar entre 0 e 255. Se a EDE tiver menos eventos do que o valor programado em 'aaa', apenas sero lidos os existentes. Alm disso, eles sero carregados no buffer a partir da posio do ltimo evento carregado, at que todo o buffer seja preenchido. Quando o buffer estiver preenchido e for dada uma nova instruo de leitura, a mesma no ter efeito.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

74

Se este parmetro for omitido, o nmero de eventos que ser lido ser o nmero de eventos atual que existe na placa EDE ou o nmero de eventos que faltam para preencher o buffer programado em FILTRO. Vale o que for menor.Abaixo est descrito a estrutura do buffer criado pela instruo EVENTOS r FILTRO e que usado pela instruo EVENTOS r LEITURA:
BUF (0) BUF (1) BUF (2) BUF (3),(4),(5) BUF (6),(7),(8) BUF (9),(10),(11) livre livre n eventos evento 1 evento 2 evento 3 evento N (onde N=n de eventos programado em TAM.

OBS.: A posio BUF(2) da matriz contm o nmero de eventos carregados no buffer. Este valor ser atualizado pelo sistema operacional da CPU, todas as vezes que for executada uma instruo LEITURA, at atingir o valor mximo (TAM) programado em FILTRO. O usurio poder tratar os eventos e zerar o contedo de BUF(2), todas as vezes que o valor mximo for atingido, para que novos eventos possam ser carregados no buffer. O contedo de BUF(2) tambm zerado quando executado a instruo EVENTOS r FILTRO. A estrutura de cada evento transferido pela EDE segue um formato que ser descrito a seguir. Existem dois padres de formato, um para o produto EDE e EDE-10 e outro padro para o produto EDE-11.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

75

Estrutura para os produtos EDE (311022200-8) e EDE-10 (31022203-3): Cada evento ser constitudo dos seguintes parmetros: 1 - hora 2 - minuto 3 - segundo 4 - milisegundo 5 - no do ponto (1 a 384) 6 - tipo de evento: - entrada foi p/ '0' - entrada foi p/ '1' - ocorreu bounce (transiente) ** - acerto do relgio: hora antiga - acerto do relgio: hora nova - overrum na leitura A estrutura de cada evento ser
Bit 1 palavra 1 5 0 1 4 0 1 3 0 1 2 H 1 1 H 1 0 H 9 H 8 H 7 0 6 0 5 M 4 M 3 M 2 M 1 M 0 M

onde : H = hora M = minuto


Bit 2 palavra 1 5 S 1 4 S 1 3 S 1 2 S 1 1 S 1 0 S 9 L 8 L 7 L 6 L 5 L 4 L 3 L 2 L 1 L 0 L

onde : S = segundo L = milisegundo

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

76

Bit 3 palavra

1 5 0

1 4 T

1 3 T

1 2 T

1 1 0

1 0 0

9 0

8 P

7 P

6 P

5 P

4 P

3 P

2 P

1 P

0 P

onde: T=tipo Tipo: 000 -> 0" P=n do ponto 001 -> 1" 010 -> bounce + 011 -> bounce 100 -> hora antiga 101 -> hora nova 110 -> overrun na leitura das entradas ** O evento bounce indica que ocorreu um transiente numa entrada, sem ter havido mudana de estado.

Estrutura para o produto EDE-11 (31022205-7): Cada evento constitudo dos seguintes parmetros: 1 - contador de dias (0 a 7) 2 - hora (0 a 23) 3 - minuto (0 a 59) 4 - segundo (0 a 59) 5 - milissegundo (0 a 999) 6 - no do ponto (1 a 384) 7 - tipo de evento (0 a 20)

A estrutura de cada evento est descrita abaixo: 1a palavra onde: C C C H H H H H 0 C = contador de dias H = hora M = minuto 0 M M M M M M

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

77

2a palavra onde:

S S S S S S L S = segundo L = milissegundo

3a palavra onde:

T T T T T T = tipo P = no do ponto 00000 00001 00100 00101 (0) (1) (4) (5)

P P P P P P P P P

Tipos:

-> OFF -> ON -> bounce -> bounce +

-| | p/ ponto | simples -|

01000 (8) -> indeterminado - -| 01001 (9) -> OFF | p/ ponto 01010 (10) -> ON | duplo 01011 (11) -> indeterminado +-| 01100 (12) -> no usado 01101 (13) -> no usado 01110 (14) -> no usado 01111 (15) -> no usado 10000 (16) -> hora antiga{*} 10001 (17) -> hora nova{*} 10010 (18) -> overrun na leitura das entradas 10011 (19) -> overflow no buffer de eventos 10100 (20) -> hora nova c/erro{*}

Observao: O evento 'bounce' indica que ocorreu um transiente numa entrada, sem ter havido mudana de estado. Os eventos marcados com {*} so aqueles produzidos pela instruo EVENTOS RELGIO.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

78

EVENTOS r ENTRADAS BUF=bbb Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo realiza a leitura das 32 entradas digitais da placa 'r' e carrega o valor da leitura na matriz 'bbb'. BUF O parmetro 'bbb' especifica o nome da varivel cujo endereo ser o endereo inicial do buffer onde ser armazenado o resultado da leitura das 32 entradas. A varivel 'bbb' dever ser do tipo matricial e seu tamanho dever ser de no mnimo 32 posies (32 variveis). Na primeira posio ser armazenado o estado da entrada 1, na segunda posio o estado da entrada 2 e assim sucessivamente. Valor 0 = entrada desligada. Valor 1 = entrada ligada. A matriz 'bbb' dever ser declarada no incio do programa atravs da instruo DIM.

EVENTOS r TESTE BUF=bbb Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo realiza o teste das 32 entradas digitais da placa 'r' e carrega o valor do teste na matriz 'bbb'. BUF O parmetro 'bbb' especifica o nome da varivel cujo endereo ser o endereo inicial do buffer onde ser armazenado o resultado do teste das entradas. A varivel 'bbb' dever ser do tipo matricial e seu tamanho dever ser de no mnimo 2 variveis (4 bytes). O primeiro byte armazenado ser o byte do estado das primeiras 8 entradas digitais da placa e assim sucessivamente. O bit em '0' significa que a respectiva entrada est boa. O bit em '1', indica que a entrada est com defeito. A matriz 'bbb' dever ser declarada no incio do programa atravs da instruo DIM.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

79

Quando executado a instruo EVENTOS r TESTE, a placa EDE fica cega durante aproximadamente 70 ms, ou seja, durante este tempo ela no registra a ocorrncia de nenhum evento (se ocorrer). Esta instruo faz o autoteste das 32 entradas digitais da respectiva placa. Se os valores lidos pela CPU so iguais a zero, porque todas as entradas esto OK, caso contrrio existe erro em alguma delas, conforme definido nas instrues da linguagem BCM.

FACA[*]operao1<E>operao2<E>......operaoN Esta instruo executa operaes aritmticas entre variveis e/ou constantes. Todas as variveis e constantes so de 16 bits (faixa de 0 a 65535). Podem ser usadas variveis de qualquer tipo, exceto aquelas relativas s entradas digitais. Alm disso, algumas variveis de atribuio fixa reservadas s para leitura no podem ser usadas para receber resultados (Exemplo: CT1 a CT9). Apesar de todos os operandos serem de 16 bits, as operaes internas de multiplicao e diviso so realizadas em 32 bits para aumentar a preciso do resultado em clculos encadeados. O sinal opcional [*], quando presente, faz que a operao esteja associada ao estado e no a transio. Neste caso, a operao ser repetida em todos os ciclos de varredura, atualizando a sada na variao dos operandos. Caso contrrio, a operao feita apenas quando a malha entra no estado (na transio). As operaes ao longo de uma linha so sempre resolvidas da esquerda para direita. No h prioridade de execuo para os operadores Exemplo: MALHA 1: ESTADO 0: FACA* CONT=GAMA+DELT-453*8 E VAR6=VAR5-VAR4+VAR3 ;operao por estado. SE INI=1 ENTAO 1

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

80

ESTADO 1: FACA GAMA=GAMA+1 SE INI=0 ENTAO 0

;operao por transio.

Podem ser usadas vrias linhas FACA em um estado, porm s uma pode estar sem asterisco. Com vrias linhas FACA, coloque asteriscos em todas as linhas se voc quiser operaes de estado. Se voc quiser operaes de transio deixe a ltima linha FACA sem asterisco. Diversos operadores esto disponveis, conforme descrito a seguir: - Operaes aritmticas bsicas: Soma(+), Subtrao(-), Multiplicao(*), Diviso(/). - Operao lgica E: FACA XXX=YYY&ZZZ - Operao lgica OU: FACA XXX=YYY|ZZZ - Operao lgica XOR: FACA XXX=YYY^ZZZ - Operao lgica NOT: FACA XXX=~YYY - Operao lgica Deslocamento esquerda: FACA XXX = YYY << ZZZ ( O contedo de YYY deslocado por ZZZ passos, e o resultado lanado em XXX). - Operao lgica Deslocamento direita: FACA XXX=YYY>>ZZZ ( O contedo de YYY deslocado por ZZZ passos, e o resultado lanado em XXX). - Operao lgica Isolar um bit: FACA XXX=YYY.ZZZ ( Isola o bit ZZZ da varivel YYY e lana o resultado 0 ou 1 em XXX) - Operao lgica Resto da diviso: FACA XXX=YYY%ZZZ ( A varivel XXX recebe o resto da diviso de YYY por ZZZ) - Operao lgica Raiz quadrada: FACA XXX=#YYY - Separao do endereo da varivel: FACA XXX=&MAT(0) ( A varivel XXX ir assumir o endereo em RAM da varivel MAT(0)
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

81

Quando o valor de uma constante atribuido a uma varivel, essa constante pode ser expressa no formato decimal (normal) hexadecimal ou binrio. Para o formato hexadecimal, adicionar h minsculo aps a constante. Para o formato binrio adicionar o b minsculo aps a constante. Exemplos: FACA XXX=30h FACA XXX=10101b

;Equivale a FACA XXX=48 ;Equivale a FACA XXX=21

Este conjunto completo de recursos vlido para o PROCP-V4K ou superior, usando o mdulo BCM2085B/CPU7-11, CPU8 ou GP3101 com S.Operacional 2005-3 ou superior. Para as verses anteriores do PROCP, somente as quatro operaes bsicas so permitidas em FACA.

FACA[*] xxx(yyy)={a,b,c,d,...} Carrega uma lista de constantes numa matriz, onde xxx deve ser uma varivel matricial e yyy o ndice inicial da matriz, podendo ser constante ou varivel. Os parmetros a, b, c, d ... so constantes a serem carregadas na matriz a partir da posio indicada pelo ndice. A opo * indica que a instruo executada no estado, caso contrrio executada da transio.
Ateno: Na sintaxe da instruo, o uso dos colchetes {} obrigatrio. Este formato da instruo FACA mais eficiente do que diversos FACAs encadeados. Executa com maior velocidade e economiza espao de memria flash em relao a instrues FACA encadeadas. Ocupa 2 bytes por parmetro carregado. Este recurso est disponvel no Controlador Programvel que use o mdulo BCM2085B/CPU7-11 ou CPU8.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

82

IMPRIME [!][/][rr][(]aaa[)]{[!][/][rr]bbb} Com parnteses, imprime o string `aaa'. Sem parnteses imprime o contedo da varivel `aaa'. O valor `r' especifica a posio para impresso a partir do ltimo caracter impresso. O sinal [!] instrui para troca de pgina e o sinal [/] instrui para troca de linha. A aplicao da instruo "IMPRIME" deve levar em conta os seguintes cuidados: Apenas uma linha "IMPRIME" pode ser colocada em cada estado. No h, no entanto, restries ao comprimento da linha ou nmero de termos a imprimir. O sistema operacional BCM trata o interface com impressora atravs de um buffer de 256 caracteres, transferidos a taxa de um caracter por ciclo do controlador. O programador deve cuidar para no exceder a capacidade do buffer. Se um trecho impresso exige mais de 256 caracteres, as instrues de impresso devem ser separadas por um tempo suficiente para que haja a descarga do buffer. Do ponto de vista do preenchimento do buffer, a contagem de caracteres feita da seguinte forma: 5 caracteres por varivel; 1 caracter por letra ou nmero entre parnteses; 2 caracteres por smbolo de troca linha, 1 caracter por smbolo de troca pgina; e `r' caracteres para posicionamento, conforme o prprio valor `r'. Observao: esta instruo pode ser usada apenas com CPU3, CPU4 e CPU4A com interface para impressora paralela pelo mdulo MEM.

INCLUI:<arquivo.bcx> Usado para incluir um trecho de programa em Linguagem Descritiva, que ser inserido na posio da instruo INCLUI. A instruo aceita tanto arquivos no formato BCM quanto arquivos no formato .BCX. O arquivo formado .BCX desenvolvido normalmente usando o editor do PROCP, mas salvo usando uma nova opo do menu ARQUIVO: SALVAR COMO BCX. Nesta opo, o PROCP pede o nome do programa e uma senha, gravando o arquivo de forma escriptada, no editvel no formato ASCII. O editor do PROCP abre arquivos . BCX, fazendo automaticamente a decriptao , desde que o usurio coloque a senha correta.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

83

INCREMENTA aaa,bbb,ccc,ddd(iii) Incrementa de uma unidade o contedo das variveis mencionadas. Qualquer tipo de varivel aceita, inclusive variveis matriciais. Equivale instruo "FACA aaa=aaa+1 E bbb=bbb+1",etc., com mais clareza na edio, economia de memria e de tempo de processamento. Podem ser usadas vrias instrues INCREMENTA em um estado. A nica exigncia que as linhas com esta instruo devem ser adjacentes. Alm disso, todas as instrues SET, RESET, INCREMENTA e DECREMENTA de um estado devem estar agrupadas.

ISInn VEL=CV1 EER=CV2 PRO=CV3 [EUR=CV4] [TEM=CV5] [TOC=CV6] [TOR=CV7] [TOF=CV8] [NSE=CV9] Configura os canais seriais do mdulo BCM2085B/ISI. Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Onde : - nn: constante que especifica a porta serial a ser programada (podendo variar de 1 a 36). Cada placa tem 3 portas seriais. - CV1: constante ou varivel que especifica a velocidade da porta serial, conforme o cdigo: 1 - 1200bauds 5 - 96.000bauds 2 - 9600bauds 6 - 100.000bauds 3 - 19200bauds 7 - 250.000bauds 4 - 48.000bauds - CV2: constante ou varivel que especifica o endereo da porta na rede. - CV3: constante ou varivel que especifica o protocolo a ser usado pela porta serial. O significado depende do modelo de ISI utilizado. Consulte o Manual de Instalao e Caractersticas Tcnicas BCM2085B - captulo ISI. - CV4: constante ou varivel que especifica o endereo do ltimo equipamento ativo na rede.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

84

- CV5: constante ou varivel que especifica o tempo de espera antes do envio de cada mensagem (em ms/10). Se omitido o tempo zero. - CV6: constante ou varivel que especifica o time-out entre caracteres para descartar uma mensagem (em ms/10). Se omitido o tempo zero. - CV7: constante ou varivel que especifica o time-out para resposta de uma solicitao (em ms/10). Se omitido o tempo 500ms. - CV8: constante ou varivel que especifica o time-out para criao da ficha (em ms/10). Se omitido, o tempo igual a: 96+4*EER - CV9: constante que fora um nmero de srie para o mdulo ISI. Observaes: - Todas as constantes s podero assumir valores de 0 a 255, exceto CV9 que poder assumir valores de 0 a 65535. - Para velocidades acima de 48000 bauds pode haver restries de recursos e nmeros de canais. Consulte a BCM. - Conforme o modelo de ISI utilizado, alguns parmetros podem ser ou no aplicveis. Consulte o Manual de Instalao e Caractersticas Tcnicas BCM2085B - captulo ISI.

LEISInn[*] [#]aaa NO EQ=xxx EM bbb [BLOCO=ccc] [STA=ddd] Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo faz a leitura de uma varivel ou de um bloco de memria no equipamento nmero 'xxx' conectado rede de comunicao ligada porta 'nn' de uma placa ISI instalada. Os dados lidos so carregados na CPU a partir da posio dada por 'bbb'. S pode ser executada uma instruo LEISI por estado. O parmetro 'nn', sempre constante, especifica o nmero da porta serial da placa ISI sempre constante (1 a 36). Os parmetros 'aaa', 'xxx', 'bbb' e 'ccc' podem ser constantes ou variveis, no podendo ser variveis indexadas. O parmetro 'ddd' ser sempre varivel. O parmetro 'aaa' especifica o endereo no equipamento destino. Se 'aaa' for varivel, o endereo inicial no equipamento destino ser o contedo da varivel 'aaa'. O parmetro 'xxx' especifica o nmero do equipamento destino para leitura na rede de comunicao. O parmetro 'bbb' especifica o endereo inicial para carga na CPU. Se 'bbb' for varivel, o endereo inicial de carga na CPU ser o endereo da prpria varivel 'bbb'.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

85

Os parmetros 'ccc' e 'ddd' (se existirem), especificam respectivamente o tamanho do bloco (no de bytes) a ser lido e a varivel onde ser armazenado o status da comunicao. A opo "#" (antes de 'aaa') usada para indicar que a leitura no equipamento destino ser direto na memria da ISI, caso contrrio ser na memria da CPU destino. A omisso do parmetro 'ccc' (tamanho do bloco), indicar que a leitura ser de apenas uma varivel. A opo '*' indica que a instruo ser executada no estado, seno a mesma ser executada somente na transio. OBS.: 1) Se 'aaa' ou 'bbb' forem constante, seu valor dever ser hexadecimal e precedido do caracter $. Por exemplo, o valor BFFE dever ser escrito: $BFFE. 2) O valor de 'xxx' e 'ccc' , se constante, dever ser decimal. O valor de 'xxx' poder variar de 1 a 127 e o valor de 'ccc' de 1 a 252. 3) A opo 'BLOCO' obrigatria se o endereo no equipamento destino for direto na memria da placa ISI (opo #).

LEMISIn[*] aaa EM bbb [BLOCO=ccc] Esta instruo pode ser usada somente com CPU7, CPU7-10, CPU7-11 e CPU8. Esta instruo faz a leitura de memria da placa ISI (varivel ou bloco), sem provocar uma leitura no canal de comunicao da ISI. S poder ser executada uma instruo LEMISI por estado. O parmetro 'n', sempre constante (1 a 12), especifica o nmero do mdulo ISI onde ser feito a leitura. Os outros parmetros podem ser constantes ou variveis, no podendo ser variveis indexadas, entretanto podem ser usadas variveis do tipo matricial, sem o ndice. O parmetro 'aaa' especifica o endereo na memria ISI. Se 'aaa' for varivel, o endereo inicial da ISI ser o contedo da varivel 'aaa'. O parmetro 'bbb' especifica o endereo inicial de carga na CPU. Se 'bbb' for varivel, o endereo inicial de carga na CPU ser o endereo da prpria varivel 'bbb'. O parmetro 'ccc' (se existir) especifica o tamanho do bloco (no de bytes) a ser lido, seno a leitura ser de uma varivel.
Referncia: 31940092-8

Verso 2009-1

BCM Automao

Linguagem Descritiva BCM

86

A opo '*' indica que a instruo ser executada no estado, seno a mesma ser executada somente na transio. OBS.: Se 'aaa' ou 'bbb' forem constante, seu valor dever ser hexadecimal e precedido do caracter $. Por exemplo, o valor BFFE dever ser escrito: $BFFE. O valor de 'aaa' s poder variar de 8000H a BFFFH. O valor de 'ccc', se constante, dever ser decimal.

LE[*] yyyy NO EQ=xxx EM aaa [BLOCO=zzz] [STA=bbb]


O Controlador Programvel ir adquirir um determinado bloco de informao em outro equipamento da rede de comunicao, atravs do canal serial. Para maiores informaes a respeito do Protocolo Geral de Comunicao, ver o manual de Protocolos e Redes de comunicao. A opo "*" tem funo similar quela adotada na instruo "FACA". Sem o asterisco, a leitura executada somente uma vez a cada entrada no estado correspondente. Com o asterisco, a operao fica sendo repetida enquanto o CP estiver no estado. A constante hexadecimal yyyy especifica o endereo de aquisio do bloco no equipamento fonte. A constante xxx especifica o nmero (cdigo) do equipamento onde ser feita a aquisio. O parmetro aaa especifica o nome da varivel cujo endereo ser o ponto de partida para a carga dos valores adquiridos. A varivel deve ser isolada - no pode ser usada uma varivel matricial. A constante opcional zzz especifica o tamanho do bloco (em bytes) de memria a ser transferido. Pode estar na faixa 1 a 240. Se omitido, a instruo assume que o bloco possui dois bytes (uma varivel).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

87

O parmetro bbb especifica a varivel que ir receber os cdigos referentes s informaes de status do processo de comunicao. Os cdigos de status definidos so: 0 - Tarefa completada com sucesso 1 - Tarefa agendada no buffer para execuo pelo SO 2 - Tarefa em curso de execuo pelo SO 3 - Erro por falta de resposta no equipamento indicado 4 - Erro por sobrecarga do buffer de tarefas 5 - Erro na resposta (parmetros invlidos ou erro de CRC) S permitido usar uma instruo LE por estado. No manual de Protocolos e Redes de comunicao podero ser encontradas mais informaes sobre o significado dos cdigos e a seqncia de tarefas de comunicao. Exemplos: ESTADO 2: LE* 8600 NO EQ=15 EM HAA O controlador ir ler as posies de memria 8600/01H no equipamento 15 e carregar o valor lido na varivel HAA. A operao ser repetitiva - A aquisio ficar sendo refeita enquanto o programa estiver no estado 2. ESTADO 2: LE 8400 NO EQ=15 EM XAM BLOCO=100 STA=AAB O controlador ir copiar a rea de memria iniciada na posio de memria 8400H do equipamento 15 na memria do CP a partir da varivel XAM. A rea tem um tamanho de 100 bytes e o status da operao poder ser visto atravs do cdigo presente na varivel AAB. A aquisio ser feita s uma vez, quando o sistema entrar no estado 2. Instrues Relacionadas ESCREVE ESCISI ESCMISI LEISI LEMISI
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

88

LIGA r1{,rn} {<LIGA><DESL> s1{,sn}} DESL r1{,rn} {<LIGA><DESL> s1{,sn}} Liga e/ou desliga as sadas especificadas em r1,rn,s1,sn quando a malha entra no estado corrente. No h hierarquia nestas operaes. Na ocorrncia de instrues conflitantes, o resultado na sada imprevisvel. Exemplo: DISPLAY=1.99 INTERFACE1(9600)=1 MAQUINA 0: ESTADO 4: LIGA 1,2,5 DESL 3,4 DESL 7 LIGA 8

MALHA r/ MAQUINA r: Marca para o compilador o incio dos estados e instrues relativas a malha de estado `r'. As malhas so numeradas de 0 a 127, dependendo do tipo de controlador. Na edio do programa, as definies das malhas devem ser feitas em ordem crescente, sem numeraes vagas entre uma malha e outra. A primeira deve ser sempre a malha 0; a seguir vem a malha 1; depois a malha 2; e assim por diante at o final do programa. A Linguagem Descritiva BCM utiliza os dois termos "Malha" e "Mquina" com o mesmo significado. O compilador tambm aceita indistintamente as duas instrues.

MOSTRA [r](l,c)"string1",aaa,"string2" Esta instruo utilizada para a apresentao de variveis e mensagens nos displays alfanumricos dos controladores BCM1086A, BCM2085 e GP3000 Apresenta uma combinao de mensagens e contedos de variveis, posicionados no display na linha 'l' (1 ou 2) e iniciados na coluna 'c' (1 a 32). A varivel "aaa" pode ser isolada ou matricial.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

89

O atributo 'r' permite executar algumas tarefas adicionais relacionadas apresentao: T - Limpa a tela antes de apresentar L - Limpa a linha antes de apresentar Dn - Alinha o valor (contedo da varivel) direita, com 'n' dgitos. Z - Inclui os zeros esquerda dos valores, se houver 'Dn'. Sn - Condiciona a apresentao ao valor da varivel de atribuio fixa WWW, igual a 'n'. O parmetro 'n' pode estar entre 0 e 99. Podem ser utilizados vrios atributos combinados, se necessrio. Atributos da Instruo 'MOSTRA': O significado de cada um dos atributos citados acima est detalhado a seguir: Atributo `T (Limpa a tela): A incluso deste atributo em uma instruo `MOSTRA' faz com que todas as mensagens e variveis carregadas anteriormente na tela sejam apagadas. Atributo `L (Limpa a linha): A incluso deste atributo em uma instruo `MOSTRA' faz com que as mensagens que aparecem na linha em questo e as variveis que iniciam na linha em questo sejam apagadas do display. importante notar que no caso de uma mensagem que ocupe um pedao de cada linha, somente ser apagada a parte contida na linha que estiver sendo apagada. No caso de variveis, sero apagadas todas as variveis cuja primeira posio se localize na linha em questo. Atributo `Dn (Alinha direita com `n' dgitos): Este atributo modifica a forma de tratamento dos zeros esquerda da varivel a ser apresentada. Se este atributo for omitido, a varivel ser apresentada com apagamento dos zeros esquerda e alinhamento pela esquerda. Este atributo far a varivel ser apresentada com apagamento dos zeros esquerda mas com alinhamento pela direita, sendo reservados `n' dgitos para a varivel. Este atributo influi apenas na apresentao da varivel contida na mesma instruo `MOSTRA', no influenciando na apresentao das demais variveis da tela.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

90

Atributo `Z (Apresenta os zeros esquerda): Se estiver presente o atributo `Dn', este atributo faz com que sejam apresentados os zeros esquerda no valor da varivel, at o limite do nmero de dgitos definido pelo parmetro `n'. Este atributo influi apenas na apresentao da varivel contida na mesma instruo `MOSTRA', no influenciando na apresentao das demais variveis da tela. Atributo `Sn (Apresentao condicional): Uma instruo `MOSTRA' que contenha este atributo s ser executada se o valor da varivel `WWW' for igual ao parmetro `n'. As mensagens e variveis que houverem sido carregadas no display por alguma instruo `MOSTRA' com atributo de apresentao condicional sero apagadas quando uma nova instruo `MOSTRA' com atributo de apresentao condicional for executada. Este atributo no est disponvel para o BCM2085/CPU6. Limitaes e cuidados especiais da instruo 'MOSTRA' - Em cada instruo `MOSTRA' podero ser definidos at trs elementos, mas apenas uma varivel. - O tamanho mximo das mensagens definidas nas instrues `MOSTRA' 32 caracteres. As mensagens ou variveis que iniciem na primeira linha e no caibam inteiramente nela continuaro na segunda linha. - Informaes (variveis ou mensagens) carregadas no display por uma instruo `MOSTRA' s desaparecero do display se forem eliminadas por outra instruo 'MOSTRA'. - Uma varivel que tenha sido carregada no display ter seu valor corrente atualizado automatica-mente pelo Sistema Operacional a partir do momento em que houver sido carregada e at o momento em que seja eliminada do display, mesmo que o programa saia do estado que contm a instruo `MOSTRA' que carregou a varivel no display.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

91

- Variveis carregadas no display por uma instruo `MOSTRA' sem atributo de apresentao condicional s sero eliminadas pelos atributos `T' e `L'. Carregar uma mensagem ou outra varivel na posio ocupada por uma varivel carregada anteriormente no elimina esta varivel, e causa conflito no display. - A execuo de uma instruo `MOSTRA' com atributo de apresentao condicional eliminar do display todas as informaes (mensagens e variveis) que houverem sido carregadas pela execuo anterior de outra instruo `MOSTRA' com atributo de apresentao condicional, mesmo que esta instruo tenha sido executada em outro estado ou mesmo em outra malha do programa. - Nos controladores GP3011, BCM 2085B e BCM 1086A, a execuo simultnea de duas ou mais instrues `MOSTRA' com atributo de apresentao condicional faz com que apenas as informaes referentes ltima delas sejam apresentadas. No GP 3101 podem ser mostradas duas ou mais instrues com apresentao condicional. - Informaes que excedam a rea do display no sero apresentadas, e o display no apresentar nenhuma indicao da ocorrncia deste erro. Assim, se uma varivel for programada para comear na posio 2,15 e o seu valor corrente tiver cinco dgitos, apenas os dois mais significativos sero apresentados, e a informao apresentada no display no ser vlida. - Se houver um elemento mensagem aps uma varivel com alinhamento pela esquerda, o tamanho desta mensagem no poder exceder 7 caracteres. Um elemento mensagem colocado aps uma varivel com alinhamento pela esquerda na mesma instruo `MOSTRA' ter sua posio de apresentao no display varivel conforme o nmero de dgitos do valor corrente da varivel correspondente. - No caso de o espao previsto para a varivel ser menor do que o nmero de dgitos do seu valor corrente, ocorre a sobreposio do valor da varivel sobre a mensagem. Neste caso, se o nmero de dgitos do valor corrente da varivel diminuir, fazendo desaparecer a sobreposio, a mensagem original ser recuperada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

92

- No ocorre a apresentao de todos os dgitos do valor corrente de uma varivel se estes no couberem inteiramente na rea do display. importante notar que neste caso o display no apresenta nenhuma indicao de erro, ao contrrio do que ocorre se uma varivel for apresentada com o atributo `Dn' e o nmero de dgitos do seu valor corrente for maior do que o parmetro 'n' (ocorrncia de overflow), caso em que o espao reservado para a varivel preenchido com asteriscos. Exemplos de aplicaes da instruo 'MOSTRA': ESTADO 1: MOSTRA TL(1,4)"Peso:",W00,"g" MOSTRA (2,2)"* Em Operacao *" SE ABC=1 ENTAO 2

Peso: 392g * Em operao *

* Variando o valor, a posio do "g" se modifica *

Peso:57g * Em operao *

ESTADO 2: MOSTRA TD4(1,2)"Total:",W00,"," MOSTRA D2Z(1,13)W01,"g" SE ABC=2 ENTAO 3

Total:5315,17g

* O dgito menos significativo da varivel `W00' ser sempre apresentado imediatamente esquerda da vrgula, e os zeros esquerda da varivel sero substitudos por espaos. A varivel `W01' ser apresentada imediatamente direita da vrgula, com apenas dois dgitos, e sem apagamento dos zeros esquerda.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

93

ESTADO 3: FACA WWW=3 MOSTRA S1(2,1)"Mensagem Um" MOSTRA S2(2,1)"Mensagem MOSTRA S3(2,1)"Mensagem MOSTRA S4(2,1)"Mensagem MOSTRA S5(2,1)"Mensagem SE ABC=3 ENTAO 4 Dois" Tres" Quatro" Cinco"

Total:5315,17g Mensagem Trs

ESTADO 4: FACA WWW=1 E W02=0 MOSTRA S1(2,8)"WWW=",WWW MOSTRA S2(2,8)"W02=",W02 MOSTRA S3(2,1)"Mensagem Tres"

Total:5315,17g WWW

MOTOR Essa instruo permite a implementao de sistemas de posicionamento atravs do mdulo BCM2085/MOT. O mdulo MOT pode ser aplicado em dois tipos bsicos de sistema - Com motor DC ou com motor de passo. Nos sistemas acionados por motor DC, a informao de posio da unidade realimentada para a MOT atravs de um encoder. Nos sistemas acionados por motor de passo, no h realimentao. O nmero de pulsos fornecido ao motor define com preciso o deslocamento. As vrias opes de comandos e parmetros permitem um completo entrelaamento entre cada unidade de posicionamento e o resto do sistema. A varivel `r' especifica o nmero do eixo que ser atendido pelo comando. O sistema operacional suporta at um mximo de 16 placas no controlador. O comando define a operao a ser feita dentro da instruo `MOTOR'. Cada comando possui um conjunto prprio de parmetros com sintaxe definida. Somente um comando pode ser usado em cada linha.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

94

MOTOR r DESL Esse comando interrompe qualquer movimento do motor `r' imediatamente. No possui parmetros. O movimento pode ser retomado pelo comando "MOTOR LIGA".

MOTOR r LIGA [INI=iii FIM=jjj] [SVE] Esse comando liga o motor `r' imediatamente. aplicado em duas situaes: - D incio a um movimento instrudo pelo comando "SEQUENCIA" - Retoma um movimento interrompido pelo comando "DESL" Sem os parmetros INI e FIM, o motor `r' retoma a operao que estava sendo executada at o comando DESL Caso haja parmetros e uma seqncia programada, os parmetros instruem os passos inicial e final do movimento a ser executado. Observe que os comandos "MOVE" e "HOME" no exigem o comando "LIGA", pois so disparados imediatamente. Os parmetros so os seguintes: - INI ndice inicial. A varivel associada especifica o primeiro passo de movimento, que ser iniciado imediatamente aps o lanamento da instruo. Aceita valores na faixa 1 a 254. ndice final. A varivel associada especifica o ltimo passo de movimento, aps o qual a unidade pra. Aceita valores na faixa 1 a 254. Especifica se a velocidade secundria permanece setada ou no no final de um movimento ou de uma seqncia. Sem a opo, a velocidade secundria desliga no final ou na interrupo do movimento. Com SVE a velocidade secundria permanece com o ltimo valor programado.

- FIM

- SVE

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

95

MOTOR r MOVE [POP=www] [VEP=yyy] [NVE=zzz] [ACP=vvv] [SVE=yyy] Executa um movimento nico, com caractersticas determinadas pelos parmetros: - POP Posio programada. A varivel associada indica a posio programada para o final do movimento.

Em motores DC: POP = Pulsos do encoder / ESC POP mximo aceitvel: 1.000.000.000 / ESC + DES Em motores de passo: POP = Nmero de passos POP mximo aceitvel: 65.535

A omisso desse parmetro coloca o sistema no modo "velocidade", ou seja, o movimento s pode ser interrompido por outro comando, no existindo posio final especificada. Neste modo, s permitido ordenar um movimento na direo positiva.

- VEP

Velocidade programada. A varivel associada indica a velocidade com que o eixo vai se aproximar da posio programada.

Em motores DC: VEP = Pulsos do encoder por segundo / ESC VEP mximo aceitvel: 19.000.000 / ESC Em motores de passo: VEP = Passos por segundo VEP mximo aceitvel: 1.000

Obs.:

Distoro mxima dos pulsos de sada: +/- 500 us (com comando: MOTOR r LEITURA POR=MOV=BLQ=)

Acima de 500 Hz no devem ser usados comandos de acesso placa MOT enquanto ela est gerando os pulsos de sada, pois isto pode ocasionar a perda ou acrscimo de alguns pulsos. A omisso desse parmetro faz com que o eixo busque a posio com a mxima velocidade possvel.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

96

- NVE

Nova velocidade. Ao atingir a posio programada, o eixo entra no modo velocidade, especificada pela varivel indicada em NVE. A unidade de medida e o limite so os mesmos do parmetro VEP. Se o valor for zero ou se o parmetro for omitido, o movimento termina na posio programada. {nota 1} Acelerao programada. A varivel associada especifica a acelerao solicitada para que o eixo assuma a velocidade VEP. ACP =Pulsos do encoder por segundo por segundo / ESC ACP mximo aceitvel: 65.535 A omisso desse parmetro faz com que o eixo busque a velocidade programada com a maior acelerao possvel. {nota 1} Velocidade secundria. A varivel associada especifica a tenso de sada no canal analgico secundrio da placa MOT. Aceita valores na faixa 0 a 255, correspondendo de forma linear a tenses entre -10 e +9,92V (128 ==> 0V). Se omitido, a sada permanece em V. {nota 1}.

- ACP

- SVE

MOTOR r SEQUENCIA POP=www VEP=yyy [TEP=zzz] [ACP=vvv] [SVE=yyy] [IIN=aaa] [IFN=bbb] Executa uma seqncia de movimentos, com caractersticas determinadas pelas matrizes indicadas nos parmetros: {nota 1} - POP Matriz das posies programadas. Apresenta uma lista das posies que o eixo deve atingir em passos sucessivos. As consideraes adotadas em relao as unidades de medida e aos limites so as mesmas do comando "MOVE". Esse parmetro no pode ser omitido no comando SEQUENCIA.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

97

- VEP

Matriz das velocidades programadas. Indica as velocidades nas quais o eixo dever atingir as posies programadas em POP, a cada passo. As consideraes adotadas em relao as unidades de medida e aos limites so as mesmas do comando "MOVE". Esse parmetro no pode ser omitido no comando SEQUENCIA. Matriz dos tempos de espera. Ao invs de especificar uma posio final para um passo, o usurio pode desejar que o eixo se mova ou fique parado por um tempo determinado. Quando o valor de um passo na matriz indicada por TEP for diferente de zero, a posio na matriz POP ignorada e o eixo se move na velocidade VEP pelo tempo especificado (em 1/100 s). Se omitido, no sero habilitados tempos de espera no movimento. Aceita valores na faixa 0 a 65535. Matriz das aceleraes programadas. Indica a acelerao para mudana de velocidade a cada mudana de direo ou partida do motor. Esse valor no ser considerado nas trocas de velocidade sem mudana de direo. As consideraes adotadas em relao as unidades de medida e aos limites so as mesmas do comando "MOVE". A omisso desse parmetro faz com que o eixo busque cada nova velocidade programada com a maior acelerao possvel. Matriz das velocidades secundrias. Cada varivel especifica a tenso de sada que ser lanada no canal analgico a cada passo. Aceita valores na faixa 0 a 255, correspondendo de forma linear a tenses entre -10 e +9,92 V (128 ==> 0 V). Se omitido, a sada permanece em 0 V. A varivel associada especifica o ndice inicial das matrizes que iro programar o primeiro passo na placa MOT. Se omitido, o primeiro passo corresponder ao ndice zero da matriz. Aceita valores na faixa 0 a 255. {nota 2}

- TEP

- ACP

- SVE

- IIN

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

98

- IFN

A varivel associada especifica o ndice final das matrizes que iro programar o ltimo passo na placa MOT. Se omitido, o compilador assume o ndice 9 da matriz. Aceita valores na faixa 0 a 255. {nota 2}

MOTOR r FILTRO [KP=www] [KI=yyy] [KD=zzz] [ESC=xxx] [DES=vvv] [TOL=uuu] [IAD=aaa] [LIG=bbb] [MOD=t] Programa os valores gerais relativos ao sistema de controle do mdulo MOT. Esta instruo ser executada por transio, isto , uma vez a cada entrada no estado. No permitido incluir mais de uma instruo desse tipo num nico estado. - KP A varivel associada especifica a constante proporcional do PID da placa MOT. Se omitido, Kp assume o valor 0. Aceita valores na faixa 0 a 32767. {nota 1} A varivel associada especifica a constante integral do PID da placa MOT. Se omitido, Ki assume o valor 0. Aceita valores na faixa 0 a 32767. {nota 1} A varivel associada especifica a constante derivativa do PID da placa MOT. Se omitido, Kd assume o valor 0. Aceita valores na faixa 0 a 32767. {nota 1} O contedo da varivel associada especifica o fator de escala de todas as referncias de posio, afetando tambm a velocidade e acelerao. expresso em termos de pulsos por unidade representada. Se omitido, assume o valor 1. {nota 1} Deslocamento (offset) de posio. O contedo da varivel associada especifica a posio do ponto "Home" do encoder. Se omitido, assume o valor 0. O contedo da varivel associada especifica a tolerncia em unidades de posio para a considerao de erro de posicionamento "ERR" do comando "LEITURA". {nota 1}

- KI

- KD

- ESC

- DES

- TOL

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

99

- IAD

O contedo da varivel associada especifica o intervalo de amostragem derivativo para o controle PID {nota 1}. calculado pela seguinte frmula: IAD = (1,164 * Interv. de amostragem em ms) - 1. (Para CPU3) Aceita valores na faixa 0 a 255. O contedo da varivel associada especifica o limite para o acumulador integral do filtro PID. O acumulador integral o termo (KI. Se(n)) da equao PID. {nota 1}. Aceita valores na faixa 0 a 32767. Define o modo geral de operao para a placa MOT. O nmero 1 especifica que o motor `r' um sistema DC com encoder (modo por omisso). O nmero 2 especifica que o motor `r' um sistema com motor de passo.

- LIG

- MOD

Definies bsicas do filtro PID da placa MOT: O sinal analgico de sada para atuao do motor tem o seu valor determinado pela seguinte equao: U(n) = KP.e(n) + KI.Se(n) + KD.[e(n') - e(n'-1)] onde: U(n) - Sinal de sada para atuao na amostragem n. E(n) - Erro de posio no instante da amostragem n. Se(n) - Soma integral dos erros de posio desde a inicializao at a amostragem n. E(n) - Erro de posio no instante da amostragem derivativa n'. E(n'-1) - Erro de posio no instante da amostragem derivativa imediatamente anterior a n'. N -ndice da amostragem bsica. A taxa de amostragem bsica fixa e serve para renovar o clculo do erro e incrementar a soma integral. Na placa MOT com CPU3 igual a 856 us. N' - ndice da amostragem derivativa. A taxa de amostragem derivativa igual a um mltiplo da amostragem bsica, programado em IAD.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

100

Especificao do Fator Escala O fator escala ESC na placa MOT um recurso importante para converter o nmero de pulsos do encoder para uma unidade fsica conveniente em cada caso. Explicaremos o mecanismo de clculo atravs de um exemplo: "Temos um sistema mecnico de movimentao linear tracionado por uma rosca sem fim ligada ao eixo de um encoder de 2500 ciclos por volta. O passo da rosca de 5mm. Calcular o fator de escala para que o controlador programvel trabalhe com as variveis em centsimos de milmetro. " Um encoder de 2500 ciclos por volta gera 4*2500 = 10000 pulsos na MOT por volta completa. O passo de 5mm (500 centsimos) equivale a 10000 pulsos na MOT. Devemos programar 20 em "ESC" dentro do comando "FILTRO".

MOTOR r HOME [VEL[N]=yyy] Instrui a placa MOT a buscar o ponto de referncia inicial de posicionamento. Omitindo o parmetro "VEL", o registro de posio resetado imediatamente, sem movimentar o motor. Quando existir o parmetro "VEL", o motor `r' se move at que encontre o sinal Home: - VEL O contedo da varivel `yyy' define a velocidade para busca do Home. Com o sinal "N", a busca se d no sentido negativo, caso contrrio, a busca feita no sentido positivo.

MOTOR r LEITURA [POR=www] [VER=yyy] [MOV=www] [ERR=zzz] [BLQ=ttt] Esse comando adquire informaes na unidade de posicionamento para tratamento em alto nvel. Os parmetros permitem especificar as variveis que recebero estas informaes: - POR Posio real instantnea. Carrega a posio do eixo r na varivel www no momento da execuo da instruo. A unidade de medida adotada a mesma utilizada na programao - nmero de pulsos do encoder, a menos que o comando FILTRO defina outra unidade.
Referncia: 31940092-8

Verso 2009-1

BCM Automao

Linguagem Descritiva BCM

101

- VER

Velocidade real instantnea. Carrega a posio do eixo r na varivel yyy no momento da execuo da instruo. A unidade de medida adotada a mesma utilizada na programao nmero de pulsos do encoder por segundo, a menos que o comando FILTRO defina outra unidade. {nota 1} A varivel especificada assume o valor 1 enquanto o motor estiver se movendo, qualquer que seja o comando. Ao terminar o movimento ou no caso de uma interrupo, a varivel assume o valor zero. {nota 3} A varivel especificada assume o valor 1 caso o erro de posicionamento exceda a tolerncia especificada no comando "FILTRO". Caso contrrio, a varivel assume o valor zero. {nota 1} A varivel especificada assume o nmero do bloco corrente em execuo. Essa opo tem sentido apenas durante a execuo de uma seqncia. {nota 3} A maioria dos comandos associados a instruo `MOTOR' so executados quando da transio do estado, no sendo repetidos durante a permanncia no estado. Da mesma forma que nas instrues `FACA', `IMPRIME' e outras, existem flags para atuao nica. Ao entrar no estado, o sistema executa uma vez todas as instrues `MOTOR' existentes, inibindo a repetio nas varreduras seguintes. A nica exceo ocorre com o comando `LEITURA'. Esse comando no inibido e fica sendo repetido enquanto o estado estiver ativo. Afora os comandos descritos, o sistema operacional possui a varivel de atribuio fixa `MOTER' que indica o nmero de mdulos ativos no sistema e o cdigo de erro relativo a inicializao ou operao das placas.

- MOV

- ERR

- BLQ

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

102

Nota 1 Essas opes so vlidas apenas dentro do modo para motor DC. No modo para motor de passo no tem sentido ou no foram desenvolvidas no sistema.

Nota 2 : Devido ao ciclo de carga dos parmetros na placa MOT, a durao do ciclo de varredura que executa a instruo SEQUENCIA fortemente influenciada pela diferena entre os fatores IFN- IIN. Tipicamente, o tempo de varredura aumenta 0,5 ms para cada unidade.

Nota 3 : As informaes passadas por esses comandos se referem ao movimento terico, isto , ao movimento previsto pela MOT com base nos objetivos de posio, velocidade e acelerao. O comando `ERR' usado para informar se o mecanismo est realmente cumprindo o objetivo.

PID:r jjj=VS RE=aaa MD=bbb [KP=ccc] [KI=ddd] [KD=eee] [TA=fff] [DE=ggg] [LS=hhh] [LI=iii] Esta instruo executa uma rotina PID no controlador BCM. Se colocada associada a um estado, a rotina ser executada enquanto o estado estiver ativo. Se for colocada independente de estado, a rotina ficar operando permanentemente. O parmetro `r' define o nmero da rotina instalada. Podem ser definidas at 32 rotinas independentes com parmetros prprios. Se vrias rotinas PID forem definidas com o mesmo nmero, a ltima definio ativada invalidar todas as anteriores. Essa circunstncia permite a definio de rotinas PID com parmetros diferentes para diferentes fases do processo, conforme a necessidade.

A instruo PID executa automaticamente a cada ciclo a seguinte equao: VS = Kp * Err + Ki * SErr.dT + Kd * dErr/dT
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

103

Onde:

Err o erro de controle (Referncia - Medio). SErr a soma de todos os erros acumulados.

Em relao a um controlador analgico ideal, a rotina PID executada digitalmente impe uma srie de detalhes a serem observados: a) O diferencial de tempo, usado para clculo do erro diferencial e integrado, definido no sistema ideal como infinitamente pequeno, substitudo pelo conceito de Tempo de Amostragem (TA). Esse valor, programvel pelo usurio, determina o intervalo sobre o qual o erro somado no acumulador de erro; sendo tambm usado para calcular a variao diferencial das leituras tomadas entre duas amostragens. Definido desta maneira, a equao realmente executada fica sendo a seguinte: VS = Onde: DE + Kp * Err + Ki * J(r) + Kd * (Err - Err')
J(r) a soma dos erros acumulados a cada perodo de amostragem. Err' o erro calculado no perodo de amostragem anterior. DE uma constante programvel somada a varivel de sada.

b) As variveis usadas no possuem resoluo e capacidade infinita. Devero ser sempre observados os seguintes limites: VS, MD, RE, DE
kp, Ki, Kd Err J(r) - Valores positivos na faixa 0 a 65535 (16 bits). - Valores positivos na faixa 0,004 a 255 (16 bits). - Valores em complemento de 2 na faixa -32768 a 32767 (16 bits). - Valores positivos na faixa 0 a 65535 (16 bits).

Os clculos internos so todos desenvolvidos em complemento de 2, com 24 bits. c) O software projetado para que, em cada ciclo do CP, uma rotina PID seja atendida. Deve haver cuidado para que o tempo de amostragem escolhido seja sempre maior que o tempo requerido pelo sistema para atendimento de todas as rotinas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

104

d) Para aperfeioar a seqncia de controle, provido um recurso lgico para evitar o disparo do acumulador integral, fenmeno que provoca um atraso muito grande na estabilizao do sistema. A atualizao do acumulador integral fica associada ao desempenho da sada. Assim, o acumulador no incrementado se a sada estiver no limite superior (LS). Da mesma forma, o acumulador no decrementado se a sada estiver no limite inferior. Isso estabelece que a ao integral s ocorre dentro da chamada faixa proporcional. A seguir so apresentados os parmetros de controle acessveis ao usurio. Estes podem ser constantes ou variveis, conforme as definies: VS Varivel de sada do controle. Pode ser qualquer varivel no indexada. A faixa de sada vai de 0 a 65535 a menos que haja uma limitao via LS ou LI. Nome da varivel ou constante da referncia para o controle. Pode ser qualquer varivel no indexada. Deve estar na faixa 0 a 65535. Nome da varivel de medio do processo. Pode ser qualquer varivel no indexada. Deve estar na faixa 0 a 65535. Coeficiente proporcional. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, o coeficiente proporcional assume o valor 1. Coeficiente integral. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, assume o valor 0.

RE

MD

KP

KI

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

105

KD

Coeficiente derivativo. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, assume o valor 0. Tempo de amostragem em segundos. Constante que define o intervalo entre incrementos do acumulador integral e entre dois clculos do erro diferencial. Deve estar na faixa 0,1 a 25,5. Se omitido assume o valor 1. Apenas uma definio de TA admissvel no programa e ser vlida para todas as rotinas PID existentes. Deslocamento (offset) de sada. Constante na faixa 0 a 65535 que desloca a sada em relao ao valor calculado pelo algoritmo bsico. Limite superior de sada. Constante na faixa 0 a 65535 que limita o valor mximo da varivel de sada. Se omitido, a sada pode assumir qualquer valor. Limite inferior de sada. Constante na faixa 0 a 65535 que limita o valor mnimo da varivel de sada. Se omitido, a sada pode assumir qualquer valor.

TA

DE

LS

LI

Observao: Ao colocar constantes nos parmetros PID, o separador decimal deve ser ponto, e no vrgula (notao inglesa). Exemplo: A rotina a seguir implementa um controle PID com sada PWM, modulando a sada digital 1. As variveis de referncia e os coeficientes podem ser ajustados em outras malhas ou em outros equipamentos atravs da rede de comunicao.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

106

MALHA 0: PID:1 VSAI=VS RE=TEMP MD=TEMPM KP=COEFP KI=COEFI TA=0.5 LS=100 ESTADO 0: DESL 1 SE VSAN>0 E DEC>100 ENTAO 1 ESTADO 1: LIGA 1 RESET DEC SE DEC>VSAN ENTAO 0

PLIGA r1{,rn} {<PLIGA><PDESL> s1{,sn}} PDESL r1{,rn} {<PLIGA><PDESL> s1{,sn}} Liga e/ou desliga os leds da placa PAN especificados em r1,rn,s1,sn quando a malha entra no estado corrente. No h hierarquia nestas operaes. Na ocorrncia de instrues conflitantes, o resultado na sada imprevisvel. A sintaxe e lgica de operao similar a instruo LIGA/DESL, usada para comandar as sadas digitais.

PRESET:<arquivo.pre>,n Esta instruo usada para presetar variveis, equivalendo a uma srie encadeada de intrues FACA. O conteudo do arquivo arquivo.pre descreve as variveis que devem ser presetadas e os seus valores. No momento da compilao, o PROCP codifica o preset de cada varivel no formato (objeto) da instruo FACA. O arquivo em formato ASCII descreve o formato da tela de parametrizao, os nomes das variveis, o valor de preset e uma legenda descritiva do significado de cada varivel. O aplicativo parametrizador, integrado ao PROCP, permite a edio do arquivo de preset em um formato grfico flexvel e adequado a cada aplicao.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

107

O parmetro n define a forma que o arquivo de preset ser tratado pelo PROCP e pelo Sistema Operacional: Se n for 0 ou omitido: Compila na forma FACA .... E ....., ocupando 5 bytes por varivel presetada. Se n for 1: Compila na forma FACA xxx(yyy)={a,b,c,d....}, ocupando 2 bytes por varivel presetada.

PRESET xxx(yyy)=zzz QUANT=kkk Carrega um intervalo de uma matriz com um nico valor, onde xxx o nome da matriz e yyy seu ndice, que pode ser constante ou varivel. O parmetro zzz o valor a carregar na matriz, que pode ser constante ou varivel no indexada. O parmetro kkk indica a quantidade de elementos a copiar, podendo ser constante ou varivel no indexada. Esta instruo executada na transio, isto , somente na primeira vez em que entra no ESTADO da MALHA que contm a respectiva instruo. S pode ser usada com o BCM2085B/CPU7-11 ou /CPU8.

RESET aaa,bbb,ccc,ddd(iii) Coloca o valor 0 nas variveis mencionadas. Qualquer tipo de varivel aceita, inclusive variveis matriciais. Equivale instruo "FACA aaa=0 E bbb=0", etc., com mais clareza na edio, economia de memria e de tempo de processamento. Podem ser usadas vrias instrues RESET em um estado. A nica exigncia que as linhas com esta instruo devem ser adjacentes. Alm disso, todas as instrues SET, RESET, INCREMENTA e DECREMENTA de um estado devem estar agrupadas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

108

ROTINA[(xxxx)]=r1.r2.r3...rn Esta funo permite ao programador inserir uma rotina assembler que ser executada uma vez por ciclo do controlador. Os valor r1, r2, etc. so cdigos em linguagem de mquina Z80 (hex), cuja sada deve terminar sempre com "RET". O compilador aceita qualquer nmero de linhas com cdigo. Apenas deve haver no mximo 80 colunas por linha e as instrues `ROTINA' devem ser as ltimas do programa. O valor `xxxx' (obrigatoriamente 4 dgitos hex) opcional e define o endereo de relocao da rotina. Se for omitido, a rotina ser relocada imediatamente aps o final da tabela de instrues. Ocorrer um erro de compilao se o endereo apontado para a relocao for menor que o endereo final da tabela de instrues.

ROTINA[(xxxx)]=(narq) Nesta forma, a instruo `ROTINA' permite a entrada de mdulos assembler atravs de um arquivo objeto gerado por um assembler Z80. exigido que o arquivo esteja no formato Intel e que esteja presente no disco de sistema quando da compilao, caso contrrio, um erro especfico ser gerado. A forma de insero e de execuo do mdulo exatamente igual a forma adotada na instruo `ROTINA' anterior. Da mesma forma, podem ser encadeados vrios mdulos atravs da insero de vrias instrues `ROTINA', desde que sejam sempre as ltimas instrues presentes no programa. O valor `xxxx' (obrigatoriamente 4 dgitos hex) opcional e define o endereo de relocao da rotina. Se for omitido, a rotina ser relocada imediatamente aps o final da tabela de instrues. Ocorrer um erro de compilao se o endereo apontado para a relocao for menor que o endereo final da tabela de instrues.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

109

SE aaa<=><#><<><>>bbb{<E><OU> ccc<=><#><>><<>ddd} ENTAO r A malha corrente muda para o estado `r' caso se cumpra as condies previstas. A varivel `aaa' pode ser de qualquer tipo; o operando `bbb' pode ser constante ou varivel, no podendo ser varivel indexada ou de entrada digital. Esto disponveis os testes `igual' (=); `diferente' (#); maior que (>) e `menor que' (<). A expresso avaliada sequencialmente da esquerda para direita, sendo que no h hierarquia na seqncia de testes. Exemplo: DISPLAY=99.10 INTERFACE1(9600)=1 MAQUINA 0: ESTADO 0: SE ALFA#4 OU VAR1=VAR2 ENTAO 20

SE aaa<=><#><<><>>bbb {<E><OU>ccc<=><#><>><<>ddd} <LIGA><DESL> r1{,rn} A sada `r' ligada ou desligada caso se cumpram as condies previstas. `aaa' deve ser uma varivel de qualquer tipo; `bbb' pode ser varivel ou constante. Esto disponveis os testes `igual' (=); `diferente' (#); maior que (>) e `menor que' (<). A expresso avaliada sequencialmente da esquerda para direita. No h hierarquia na seqncia de testes. EXEMPLO: DISPLAY=20.9999 INTERFACE1(9600)=1 MAQUINA 0: ESTADO 0: SE ENT1<ENT2 E ENT3>6 LIGA 8,10,12

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

110

SE{(}aaa<=><#><>><<>bbb{)}<E><OU> {(}ccc<=><#><<><>>ddd {)}} ENTO r Esta instruo pode ser usada somente com o BCM2085/CPU7xx ou CPU8. A malha corrente mudar para o estado r caso se cumpram as condies previstas. A varivel aaa poder ser de qualquer tipo; o operando bbb poder ser constante ou varivel, no podendo ser varivel matricial com ndice varivel nem entrada digital. Pelo uso de parnteses poder ser dado prioridade na seqncia dos testes. Os testes disponveis sero: igual (=), diferente (#), maior que (>) e menor que (<). Observaes: - Quando a varivel aaa for de entrada digital, a varivel bbb obrigatriamente dever ser constante (valor 0 ou 1). Neste caso, o nico teste disponvel ser o de igual (=). - Esta instruo admite at 8 nveis de parnteses.

SE {(}aaa<=><#><>><<>bbb{)} {<E><OU> {(}ccc<=><#><<><>> ddd{)}} ENTO fff=yyy [SENO ggg=zzz] Esta instruo pode ser usada somente com o BCM2085/CPU7xx ou CPU8. A varivel aaa poder ser de qualquer tipo; o operando bbb poder ser constante ou varivel, no podendo ser varivel matricial com ndice varivel nem entrada digital. As variveis fff e ggg no podero ser indexadas, nem de entrada digital. Os operandos yyy e zzz podero ser constante ou varivel, no podendo ser varivel matricial com ndice varivel nem entrada digital. Se o resultado final da operao for verdadeiro, fff assumir o valor de yyy, seno permanecer inalterado ou ggg assumir o valor zzz, caso exista a diretiva SENO. Pelo uso de parnteses poder ser dado prioridade na seqncia dos testes. Os testes disponveis sero: igual (=), diferente (#), maior que (>) e menor que (<). Observaes: - Quando a varivel aaa for de entrada digital, a varivel bbb obrigatriamente dever ser constante (valor 0 ou 1). Neste caso, o nico teste disponvel ser o de igual (=). - Esta instruo admite at 8 nveis de parnteses

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

111

SE ATRASO=xx{ <E> aaa<=><#><>><<>bbb} ENTAO r A malha corrente muda para o estado `r' aps decorrido o tempo especificado na constante `xx' (em dcimos de segundo) e caso se cumpram as condies previstas. No h hierarquia na seqncia de testes. `aaa' deve ser uma varivel de qualquer tipo; `bbb'' pode ser varivel ou constante. Esto disponveis os testes `igual' (=); `diferente' (#); maior que (>) e `menor que' (<). - O termo ATRASO=xx deve ser obrigatoriamente o primeiro na seqncia de testes. - Somente o teste igual' (=) admissvel no termo ATRASO. - Somente permitida uma linha com ATRASO por estado. Exemplo: DISPLAY=99.99999 INTERFACE1(9600)=1 MAQUINA 1: ESTADO 0: SE ATRASO=40 E VAR#ENT ENTAO 1

SE ATRASO=xx {<E><OU> {(}aaa<=><#><>><<>bbb{)}} ENTO r Esta instruo s est disponvel para o BCM2085B/CPU7, CPU7-10, CPU7-11 e CPU8. A malha corrente mudar para o estado r aps decorrido o tempo especificado na constante xx (em dcimos de segundo) e/ou caso se cumpram as condies previstas. A varivel aaa poder ser de qualquer tipo; o operando bbb poder ser constante ou varivel, no podendo ser varivel indexada ou de entrada digital. Pelo uso de parnteses poder ser dado prioridade na seqncia dos testes. Os testes disponveis sero: igual (=), diferente (#), maior que (>). - Somente permitida uma linha com ATRASO por estado. - Quando a varivel aaa for de entrada digital, a varivel bbb obrigatriamente dever ser constante (valor 0 ou 1). Neste caso, o nico teste disponvel ser o de igual (=). - Esta instruo admite at 8 nveis de parnteses

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

112

SE ATRASO=xx {<E><OU> {(}aaa<=><#><>><<>bbb{)}} ENTO r [SENO ggg=zzz] Esta instruo pode ser usada somente com o BCM2085/CPU7xx ou CPU8. A varivel aaa poder ser de qualquer tipo; o operando bbb poder ser constante ou varivel, no podendo ser varivel indexada ou de entrada digital. As variveis fff e ggg no podero ser indexadas, nem de entrada digital. Os operandos yyy e zzz podero ser constante ou varivel, no podendo ser varivel indexada nem de entrada digital. Se o resultado final da operao for verdadeiro, fff assumir o valor de yyy, seno permanecer inalterado ou ggg assumir o valor zzz, caso exista a diretiva SENO. Pelo uso de parnteses poder ser dado prioridade na seqncia dos testes. Os testes disponveis sero: igual (=), diferente (#), maior que (>) e menor que (<). Obs.: - Quando a varivel aaa for de entrada digital, a varivel bbb obrigatriamente dever ser constante (valor 0 ou 1). Neste caso, o nico teste disponvel ser o de igual (=). - Esta instruo admite at 8 nveis de parnteses

SE ATRASO=xx {<E><OU>aaa<=><#><>><<>bbb} LIGA r1{,rn} SE ATRASO=xx {<E><OU>aaa<=><#><>><<>bbb} DESL r1{,rn} As sadas r1, ... rnso ligadas ou desligadas caso se cumpram as condies previstas. `aaadeve ser uma varivel de qualquer tipo; `bbb pode ser varivel ou constante. Esto disponveis os testes igual (=); diferente (#); maior que (>) e menor que (<). A expresso avaliada sequencialmente da esquerda para direita. No h hierarquia na seqncia de testes. Esta instruo pode ser usada com o PROCP V4K, Reviso 1.0.5, ou superior.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

113

SET aaa,bbb,ccc,ddd(iii) Coloca o valor 1 nas variveis mencionadas. Qualquer tipo de varivel aceita, inclusive variveis matriciais. Equivale instruo "FACA aaa=1 E bbb=1", etc., com mais clareza na edio, economia de memria e de tempo de processamento. Podem ser usadas vrias instrues SET em um estado. A nica exigncia que as linhas com esta instruo devem ser adjacentes. Alm disso, todas as instrues SET, RESET, INCREMENTA e DECREMENTA de um estado devem estar agrupadas.

VA PARA r Mudana imediata do estado corrente para o estado `r' independentemente de qualquer condio. EXEMPLO: DISPLAY=9.100 INTERFACE1(9600)=1 MAQUINA 0: ESTADO 0: VA PARA 1 ESTADO 1:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

114

2.5 - EXEMPLOS TPICOS DE PROGRAMAO


2.5.1 - Leitura de Entradas Digitais As entradas digitais so interfaces que recebem e interpretam informaes do processo sob controle. Uma entrada digital pode assumir dois nveis lgicos: Nvel Lgico 1 Significado Sensor acionado/contato fechado Representao Eltrica

Sensor desacionado/contato aberto

Na linguagem descritiva BCM as entradas digitais so consideradas um tipo especfico de varivel. Esta varivel DEVE ser associada respectiva entrada fsica do CP em que estiver conectada no instante da edio do programa no compilador PROCP.

LEMBRE-SE:O nome de uma varivel deve ter de 3 a 5 caracteres, sendo que o primeiro caracter deve ser SEMPRE uma letra.

A leitura de uma entrada digital feita atravs da instruo condicional SE.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

115

Exemplo: - Leitura de Entradas Digitais

Listagem do programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: DESL 5 SE PAR=1 ENTAO 1 ESTADO 1: LIGA 5 SE PAR=0 ENTAO 0 FIM ;Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico ;Especifica nmero da malha de controle ;Especifica nmero do estado corrente ;Mantm sada 5 desligada ;Se varivel PAR for acionada salta p/o estado 1 ;Especifica nmero do estado corrente ;Mantm sada 5 ligada ;Se varivel PAR for desacionada retorna ao estado 0 (zero) ;Informa fim da edio do programa

LEMBRE-SE:A varivel PAR deve ser associada (declarada) uma entrada fsica do CP quando da edio do programa no PROCP.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

116

2.5.2 - Controle de Sadas Digitais Exemplo: - Acionamento de Sadas Digitais CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: DESL 1.2.3 LIGA 4.5.6 FIM ;Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita tratamento do display alfanumrico ;Especifica nmero da malha de controle ;Especifica nmero do estado corrente ;Mantm sadas 1,2 e 3 desligadas ;Mantm saidas 4,5 e 6 ligadas ;Informa fim da edio do programa

2.5.3 - Atribuio de Valor para Variveis Em determinadas situaes pode ser necessrio fazer com que uma varivel assuma determinado valor. Existem trs situaes onde isso pode ser necessrio: * Fazer com que uma varivel assuma valor 0 - RESET * Fazer com que uma varivel assuma valor 1 - SET * Fazer com que uma varivel assuma valor>1 - PRESET Para estes casos pode-se utilizar as seguintes instrues: IMPORTANTE:Estas instrues no se aplicam s variveis de entradas digitais, entradas analgicas e variveis aplicadas placa CTR.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

117

Exemplo: Atribuir UM valor para uma varivel CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: ;Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico ;Especifica nmero da malha de controle ;Especifica o nmero do estado corrente

FACA VAR3=5

;Preseta VAR3 com valor igual a 5

Exemplo: Atribuir valor ZERO para uma varivel CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: RESET VAR1 ;Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico ;Especifica o nmero da malha de controle ;Especifica nmero do estado corrente ;Reseta varivel VAR1

Exemplo: Atribuir valor 1 para uma varivel CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA ; Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico

MALHA 0: ;Especifica o nmero da malha de controle ESTADO 0: ;Especifica nmero do estado corrente SET VAR1 ;Seta varivel VAR1 Para monitorar as variveis do programa, o PROCP tem um recurso chamado Monitora Variveis. Este recurso pode ser acessado atravs do Menu Monitora opo Variveis. Veja o manual do software de desenvolvimento para linguagem descritiva PROCP.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

118

2.5.4 - Uso de Contadores A linguagem descritiva BCM permite que sejam criados inmeros contadores internos. Para a criao de um contador interno basta usar uma varivel de atribuio livre. De um modo geral, estas variveis devem ser resetadas ou presetadas, conforme o caso, no estado 0 da malha em que forem utilizadas. LEMBRE-SE:O nome de uma varivel deve ter de 3 a 5 caracteres, sendo que o primeiro caracter deve ser SEMPRE uma letra. Contadores Crescentes Podem ser utilizadas duas instrues para implementar um contador crescente. Exemplo: - Contador Crescente - Ligar uma lmpada aps 5 toques no boto PAR

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

119

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: DESL 5 RESET CONT SE PAR=1 ENTAO 1 ESTADO 1: SE PAR=0 ENTAO 2 ESTADO 2: INCREMENTA CONT SE PAR=1 ENTAO 1 SE CONT=5 ENTAO 3 ESTADO 3: LIGA 5 FIM ;Especifica o tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico ;Especifica nmero da malha de controle ;Especifica o nmero do estado corrente ; Mantm sada digital 5 desligada ; Reseta varivel interna CONT ;Testa se boto PAR foi acionado e salta para o estado 1 ; Especifica o nmero do estado corrente ; Testa se boto PAR foi desacionado e salta para o estado 2 ; Especifica o nmero do estado corrente ; Incrementa em uma unidade a varivel CONT ; Se boto PAR foi acionado, retorna ao estado 1 ; Se varivel CONT atingiu valor 5, muda para estado 3 ; Especifica nmero do estado corrente ; Mantm sada digital 5 ligada ; Informa FIM da edio do programa

LEMBRE-SE: A varivel PAR deve ser associada uma entrada fsica do CP quando da edio do programa no PROCP. A varivel CONT, por ser uma varivel interna do programa, no precisa ser declarada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

120

Contadores Decrescentes Podem ser utilizadas duas instrues para implementar contadores decrescentes. Exemplo: - Contador Decrescente - Ligar uma lmpada aps 5 toques no boto PAR.

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: DESL 5 FACA CONT=5 SE PAR=1 ENTAO 1 ;Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita o display alfanumrico ;Especifica nmero da malha de controle ;Especifica o nmero do estado corrente ;Mantm sada digital 5 desligada ;Preseta varivel interna CONT com valor igual a5 ;Se boto PAR for acionado vai p/estado 1

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

121

ESTADO 1: SE PAR=0 ENTAO 2 2 ESTADO 2: DECREMENTA CONT

;Especifica o nmero do estado corrente ; Se boto PAR for desacionado salta p/estado

; Especifica o nmero do estado corrente ; Decrementa em uma unidade a varivel CONT ; Se boto PAR foi acionado, retorna ao estado 1 ; Se varivel CONT atingiu valor 0, muda para estado 3 ; Especifica nmero do estado corrente ; Mantm sada digital 5 ligada ; Informa FIM da edio do programa

SE PAR=1 ENTAO 1 SE CONT=0 ENTAO 3

ESTADO 3: LIGA 5 FIM

LEMBRE-SE:A varivel PAR deve ser associada uma entrada fsica do CP quando da edio do programa no PROCP. A varivel CONT, por ser uma varivel interna do programa, no precisa ser declarada.

2.5.5 - Uso de Temporizadores Freqentemente aparece a necessidade da utilizao de uma Condio de Transio Temporizada (regras 14 e 15 do diagrama de estados). Neste caso a transio do estado corrente para o estado de destino est condicionada a passagem de um determinado tempo. A linguagem descritiva BCM dispe de trs recursos para esta funo:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

122

1) Utilizando-se a instruo condicional SE ATRASO. Exemplo: - Uso da Instruo SE ATRASO - Ligar uma lmpada, 5 segundos aps pressionado o boto PAR.

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA MALHA 0: ESTADO 0: DESL 5 SE PAR=1 ENTAO 1 ; Especifica tipo de CP a ser utilizado ;Habilita canal serial RS232 na velocidade de 9600 baud ;Habilita funcionamento do display alfanumrico ; Especifica nmero da malha de controle ; Especifica o nmero do estado corrente ; Mantm sada digital 5 desligada ; Se o boto PAR for acionado salta para o estado 1.

ESTADO 1: SE ATRASO=50 ENTAO 2 ; Aguarda 5 segundos (50 dcimos) e muda para estado 2 ESTADO 2: ; Especifica nmero do estado corrente LIGA 5 ; Mantm sada digital 5 ligada

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

123

2) Utilizando-se a instruo FACA.

Exemplo: - Utilizao de um Temporizador Interno

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA alfanumrico MALHA 0: ESTADO 0: FACA TEMPO=0 (zero) DESL 5 SE PAR=1 ENTAO 1 ; Especifica tipo de CP a ser utilizado ; Habilita canal serial RS232 na velocidade de 9600 baud ; Habilita funcionamento do display

; Especifica nmero da malha de controle ; Especifica o nmero do estado corrente ; Cria a varivel TEMPO com valor inicial 0 ; Mantm sada digital 5 desligada ;Se boto PAR for acionado vai p/estado 1

ESTADO 1: ; Especifica o nmero do estado corrente FACA* TEMPO=TEMPO+1;Incrementa temporizador interno TEMPO SE TEMPO=500 ENTAO 2;Testa se decorreu 5 seg. (500 centsimos) e muda para o estado 2
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

124

ESTADO 2: LIGA 5 FIM

; Especifica o nmero do estado corrente ; Mantm sada digital 5 ligada ; Informa fim da edio do programa

3) Utilizando as variveis de atribuio fixa para temporizao (HOR, MIN,SEC,DEC). A linguagem descritiva BCM dispe de um grupo de variveis de atribuio fixa, j definidas no Sistema Operacional, para utilizao em temporizao. So elas: Varivel HOR MIN SEC DEC CEN Significado Contador de Horas Contador de Minutos Contador de Segundos Contador de Dcimos de Segundo Contador de Centsimos de Segundo

Estas variveis so inicializadas e incrementadas, na sua unidade de tempo, a partir do instante que o CP energizado. A qualquer instante o programador pode resetar ou presetar qualquer uma destas variveis de forma independente uma das outras. Deve haver o cuidado que, ao escrever em uma dessas variveis, a mesma no demorar o tempo caracterstico dela para incrementar pela primeira vez. Por exemplo, ao zerar a varivel MIN, o primeiro incremento ocorrer em um tempo aleatrio, que pode variar de zero at 1 minuto.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

125

Exemplo: - Utilizao Temporizao

das variveis de atribuio

fixa para

Listagem do Programa CLP=BCM1086 ; Especifica tipo de CP a ser utilizado INTERFACE1(9600)=1 ; Habilita canal serial RS232 na velocidade de 9600 baud DISPLAY=DPA ; Habilita funcionamento do display alfanumrico MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica o nmero do estado corrente DESL 5 ; Mantm sada digital 5 desligada RESET SEC ; Reseta contador de segundos SE SEC=5 ENTAO 1 ; Aguarda 5 segundos e muda para estado 1 ESTADO 1: LIGA 5 FIM ; Especifica o nmero do estado corrente ; Mantm sada digital 5 ligada ; Informa o fim da edio do programa

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

126

2.5.6 - Uso de Temporizadores associados ao teste de uma varivel A regra 15 do diagrama de estados diz que em determinadas situaes pode ser necessrio combinar uma condio temporizada com um ou mais testes de variveis. Isto pode ocorrer em duas situaes: 1 - Utilizando-se o conectivo E. 2 - Utilizando-se o conectivo OU. Exemplo: - Ligar uma lmpada aps 5 seg somente se o boto PAR estiver pressionado

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA ; Especifica tipo de CP a ser utilizado ; Habilita canal serial RS232 na velocidade de 9600 baud ; Habilita o display alfanumrico

MALHA 0: ;Especifica nmero da malha de controle ESTADO 0: ; Especifica o nmero do estado corrente DESL 5 ; Mantm Entradas digital 5 desligada SE ATRASO=50 E PAR=1 ENTAO 1 ; Muda para o estado 1 aps 5 seg. se o boto PAR estiver pressionado

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

127

ESTADO 1: LIGA 5 FIM

; Especifica o nmero do estado corrente ; Mantm sada digital 5 ligada ; Informa o fim de edio do programa

2.5.7 - Leitura de Entradas Analgicas As entradas analgicas so interfaces que recebem e interpretam sinais eltricos variveis provenientes de sensores do processo sob controle, onde a grandeza medida transportada atravs da intensidade deste sinal eltrico. De um modo geral os sensores analgicos fornecem sinais eltricos padronizados, proporcional as grandezas medida, tais como 0 a 5 Vdc, 0 a 10 Vdc, 0 a 20mA, 4 a 20mA entre outros. Atravs de conversores A/D (analgico/digital) estes sinais so convertidos em sinais digitais cuja resoluo depende do conversor A/D utilizado. Resoluo 8 bits 12 bits 16 bits Valor Decimal 0 a 255 0 a 4095 0 a 65.535

Por exemplo: Um sensor/transmissor de nvel, com escala para at 100 litros e sada 4 a 20mA, conectado a uma placa de entradas analgicas com resoluo de 8 bits. 0 litros 50 litros 100 litros 4mA 12mA 20mA |-----------|-----------| 0 125 250 Significado: A varivel que est associada entrada analgica, onde estiver conectado este sensor, assumir valores inteiros na faixa de 0 a 250 proporcional ao nvel medido (0 a 100 litros).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

128

Se conectarmos este mesmo sensor a uma placa de entradas analgicas com resoluo de 12 bits: 0 50 litros 100 litros 4mA 12mA 20mA |-----------|-----------| 0 2000 4000 A varivel que est associada entrada analgica, onde estiver conectado este sensor, assumir valores inteiros na faixa de 0 a 4000 proporcional ao nvel medido (0 a 100 litros). Comparao: Escala do Sensor 0 a 100 litros Varivel Entrada Analgica 8 bits 2 unid/litro 12 bits 40 unid/litro

Para leitura de uma entrada analgica utiliza-se a instruo condicional SE. Normalmente necessrio fazer-se uma converso de escala por software, isto , transformar o contedo da varivel de entrada analgica (8 ou 12 bits) em um valor correspondente a faixa de operao do sensor utilizado.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

129

Exemplo: Converter o sinal eltrico de 4-20mA fornecido por um transmissor de nvel, conectado a uma placa de entradas analgicas com resoluo de 8 bits, em uma escala de 0 a 100 litros.

Soluo: Como a placa de entradas analgicas possui resoluo de 8 bits, logo, o sinal de 4 a 20mA, corresponde a um valor decimal de 0 a 255. A equao a ser utilizada a seguinte: NIVEL=EA1*F.esc/Resoluo Onde: NIVEL - a varivel interna do programa que representa o nvel instantneo do tanque. EA1 - o valor da entrada analgica, j convertido em valor decimal correspondente a 8 bits (0 a 255). F.esc - representa o fundo de escala desejado (100 litros). Resoluo - valor decimal correspondente resoluo do conversor A/D utilizado na placa de entradas analgicas.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

130

Diagrama de estados MALHA 0:

FACA * NIVEL=EA1*100/255

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 ESA=1 RTC DISPLAY=DPA ; Especifica tipo de CP ;Habilita Canal RS232 em 9600 Bauds cd. acesso 1 ;Habilita tratamento da interface de E/S analgicas ;Habilita tratamento do relgio/calendrio ;Habilita tratamento display alfanumrico

MALHA 0: ; Especifica nmero da malha corrente ESTADO 0: ; Especifica nmero do estado corrente FACA* NIVEL=EA1*100/255; Converte sinal de EA1 em escala de 0 a 100 litros FIM ; Indica fim da edio do programa LEMBRE-SE:A varivel EA1 deve ser associada (declarada) entrada fsica do CP em que estiver conectado o sensor, durante a edio do programa no PROCP. NIVEL uma varivel interna do programa e, portanto, no precisa ser declarada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

131

2.5.8 - Controle de Sadas Analgicas As sadas analgicas so interfaces que recebem e interpretam valores binrios fornecidos pela CPU, e convertem estes valores em sinais eltricos proporcionais ao valor recebido. De um modo geral os conversores D/A e circuitos associados, fornecem sinais eltricos padronizados, tais como 0 a 5Vdc, 0 a 10Vdc, 0 a 20mA, 4 a 20mA entre outros. Os valores permitidos dependem do conversor D/A utilizado: Resoluo 8 bits 12 bits 16 bits Valor Decimal 0 a 255 0 a 4095 0 a 65.535

O contedo das variveis de sadas analgicas controlado atravs dos resultados aritmticos na instruo FACA. Ao ser ligado o CP, todas as variveis desse subgrupo so zeradas.

Exemplo: Incrementar em 20% do fundo de escala a cada segundo o valor de uma sada analgica com resoluo de 8 bits. 0 1s 2s 3s 4s 5 segundos 0 20 40 60 80 100% 0 51 102 153 204 255 Neste caso, o valor da sada analgica ser atualizado a cada segundo atravs do resultado da seguinte equao: SANA=255/5+SANA Onde: SANA - a varivel da sada analgica 255 - resoluo do conversor D/A 5 - constante que corresponde a 20% do fundo de escala

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

132

Diagrama de Estados:

Malha 0: 0
RESET SEC

SANA<255

SEC=1
FACA SANA=255/5+SANA

Listagem do Programa Edio do Programa: CLP=BCM1086 INTERFACE1(9600)=1 ESA=1 RTC DISPLAY=DPA MALHA 0: ESTADO 0: RESET SEC SE SEC=1 ENTAO 1

; Especifica tipo de CP ;Habilita Canal RS232 em 9600 Bauds cd. acesso 1 ;Habilita tratamento da interface de E/S analgicas ;Habilita tratamento do relgio/calendrio ; Habilita tratamento display alfanumrico ; Especifica nmero da malha corrente ; Especifica nmero do estado corrente ; Reseta contador de segundos ;Se decorreu 1 segundo aps o reset de SEC salta p/estado 1

ESTADO 1: FACA SANA=255/5+SANA;Incrementa em 20% o valor da Sada Analgica SE SANA<255 ENTAO 0 ;Se SANA ainda menor que 255 (100%) retorna ao estado 0 FIM ; Informa fim da edio do programa

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

133

LEMBRE-SE:A varivel SANA deve ser associada (declarada) uma sada fsica do CP quando da edio do programa no PROCP.

2.5.9 - Uso de Display Display Alfanumrico DPA Este recurso est disponvel nos CPs BCM1086A, GP3000 e BCM2085 com mdulo Display DPA instalado O controle de apresentao de mensagens e variveis no display alfanumrico feito unicamente atravs da instruo MOSTRA.

Atributo T L Dn Z Sn

Funo Limpa a Tela antes de apresentar a nova mensagem limpa a Linha antes de apresentar a nova mensagem Alinha o contedo da varivel direita, com n digitos Inclui os zeros esquerda dos valores, se houver Dn Condiciona a apresentao ao valor da varivel de atribuio fixa WWW, igual a n. O parmetro N pode estar na faixa de 0 a 99.

Podem ser utilizados vrios atributos combinados, se necessrio. Limitaes e cuidados especiais no uso da instruo MOSTRA a - Em cada instruo MOSTRA podero ser definidos at trs elementos, mas apenas uma varivel.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

134

b - O tamanho mximo das mensagens definidas nas instrues MOSTRA 40 caracteres (32 para BCM2085 com CPU4 instalado). Mensagens ou variveis que iniciem na primeira linha e no caibam inteiramente nela continuaro na segunda linha. c - Informaes (variveis ou mensagens) carregadas no display por uma instruo MOSTRA s desaparecero do display se forem eliminadas por outra instruo MOSTRA. d - Uma varivel que tenha sido carregada no display ter seu valor corrente atualizado automaticamente pelo Sistema Operacional a partir do momento em que houver sido carregada e at o momento em que seja eliminada do display, mesmo que o programa saia do estado que contm a instruo MOSTRA que carregou a varivel no display. e -Variveis carregadas no display por uma instruo MOSTRA sem atributo de apresentao condicional s sero eliminadas pelos atributos T e L. Carregar uma mensagem ou outra varivel na posio ocupada por umavarivel carregada anteriormente no elimina esta varivel, e causa conflito no display. f - A execuo de uma instruo MOSTRA com atributo de apresentao condicional eliminar do display todas as informaes (mensagens e varivel) que houverem sido carregadas pela execuo anterior de outra instruo MOSTRA com atributo de apresentao condicional, mesmo que esta instruo tenha sido executada em outro estado ou mesmo em outra mquina do programa. g - A execuo simultnea de duas ou mais instrues MOSTRA com atributo de apresentao condicional faz com que apenas as informaes referentes ltima delas sejam apresentadas. h - Informaes que excedam a rea do display no sero apresentadas, e o display no apresentar nenhuma indicao da ocorrncia deste erro. Assim, se uma varivel for programada para comear na posio 2,15 e o seu valor corrente tiver cinco dgitos, apenas os dois mais significativos sero apresentados, e a informao apresentada no display no ser vlida.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

135

i - Se houver um elemento mensagem aps uma varivel com alinhamento pela esquerda, o tamanho desta mensagem no poder exceder 7 caracteres. Um elemento mensagem colocado aps uma varivel com alinhamento pela esquerda na mesma instruo MOSTRA ter sua posio de apresentao no display varivel conforme o nmero de dgitos do valor corrente da varivel correspondente. j - No caso de o espao previsto para a varivel ser menor do que o nmero de dgitos do seu valor corrente, ocorre a sobreposio do valor da varivel sobre a mensagem. Neste caso, se o nmero de dgitos do valor corrente da varivel diminuir, fazendo desaparecer a sobreposio, a mensagem original ser recuperada. k - No ocorre a apresentao de todos os dgitos do valor corrente de uma varivel se estes no couberem inteiramente na rea do display. importante notar que neste caso o display no apresenta nenhuma indicao de erro, ao contrrio do que ocorre se uma varivel for apresentada com o atributo Dn e o nmero de dgitos do seu valor corrente for maior do que o parmetro n(ocorrncia de overflow), caso em que o espao reservado para a varivel preenchido com asteriscos.

- Uso dos Atributos da Instruo MOSTRA: Atributo T(Limpa Tela) : A incluso deste atributo em uma instruo MOSTRA faz com que todas as mensagens e variveis carregadas anteriormente na tela sejam apagadas. Atributo L (Limpa a Linha): A incluso deste atributo em uma instruo MOSTRA faz com que as mensagens ou variveis que aparecem na linha em questo sejam apagadas do display. importante notar que no caso de uma mensagem que ocupe um pedao de cada linha, somente ser apagado a parte contida na linha que estiver sendo apagada. No caso de variveis, sero apagadas todas as variveis cuja primeira posio se localize na linha em questo.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

136

Exemplo - Apresentao de Mensagens CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA ; Especifica tipo de CP ; Habilita Canal Serial RS232 na velocidade de em 9600 Bauds ; Habilita o display alfanumrico

MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente MOSTRA T(1,1) MANUAL PROGRAMAO MOSTRA (2,2)BCM Engenharia SE ATRASO=50 ENTAO 1 ;Aguarda 5 segundos e salta p/estado 1 ESTADO 1: ; Especifica o nmero do estado corrente MOSTRA L(2,1)USO INSTRUO MOSTRA SE ATRASO=50 ENTAO 0 ;Aguarda 5 segundos e retorna ao ESTADO 0. Observe que no estado 0, do exemplo acima, o atributo T limpa a tela antes de apresentar a nova mensagem e, no estado 1 o atributo L limpa apenas a linha 2 antes de apresentar a nova mensagem. necessrio utilizar uma instruo MOSTRA para cada linha do display.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

137

Exemplo - Apresentao de Mensagens e Variveis - Mostrar no display o valor do nvel de um tanque. Diagrama de estados:
MALHA 0: 0 FACA * NIVEL=EA1*100/255 MALHA 1: 0 MOSTRA (2,2)VALOR DE EA1=,EA1
MOSTRA T(1,1) NIVELATUAL=NIVEL,LTS

CLP=BCM1086 INTERFACE1(9600)=1 ESA=1 DISPLAY=DPA

; Especifica tipo de CP ; Habilita Canal serial RS232 na velocidade de 9600 Bauds ; Habilita E/S analgicas ; Habilita o display alfanumrico

MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente FACA* NIVEL=EA1*100/255; Converte valor de EA1 em escala 0 a 100 litros MALHA 1: ; Especifica nmero da malha corrente ESTADO 0: ; Especifica nmero do estado corrente MOSTRA T(1,1)NIVEL ATUAL=,NIVEL,LTS MOSTRA (2,2)VALOR DE EA1=,EA1 O resultado apresentado no display ser: NIVEL ATUAL=100 LTS VALOR DE EA1=255

Atributo Dn(Alinha direita com n dgitos): Este atributo modifica a forma de tratamento dos zeros esquerda da varivel a ser apresentada. Se este atributo for omitido, a varivel ser apresentada com apagamento dos zeros esquerda e alinhamento pela esquerda. Este atributo far a varivel ser apresentada com apagamento dos zeros esquerda mas com alinhamento pela direita, sendo reservados n dgitos para a varivel.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

138

Este atributo influi apenas na apresentao da varivel contida na mesma instruo MOSTRA, no influenciando na apresentao das demais variveis da tela. Atributo Z (Apresenta os zeros esquerda) : Se estiver presente o atributo Dn, este atributo faz com que sejam apresentados os zeros esquerda no valor da varivel, at o limite do nmero de dgitos definido pelo parmetro n. Este atributo influi apenas na apresentao da varivel contida na mesma instruo MOSTRA, no influenciando na apresentao das demais variveis da tela. Se acrescentarmos o atributo Dn para o exemplo acima, com n valendo 2: . . . MALHA 1: ESTADO 0: MOSTRA TD2(1,1)NIVEL ATUAL=,NIVEL,LTS

Resultado obtido: Ser apresentado o valor da varivel NIVEL com apenas dois dgitos, alinhados direita. Quando o valor atingir 3 dgitos (100), ir aparecer no display dois asteriscos. NIVEL ATUAL=**LTS

Se acrescentarmos o atributo Dn para o exemplo acima, com n valendo 4: . . . MALHA 1: ESTADO 0: MOSTRA TD4(1,1)NIVEL ATUAL=,NIVEL,LTS

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

139

Resultado obtido: Ser reservado um espao de quatro dgitos, alinhados direita, para apresentao do valor da varivel NIVEL. Como o valor de NIVEL tem no mximo 3 dgitos ficaro em branco os caracteres esquerda do valor. NIVEL ATUAL=100 LTS

Se acrescentarmos o atributo Z para o exemplo acima: . . . MALHA1: ESTADO0: MOSTRA TD4Z(1,1)NIVELATUAL=,NIVEL,LTS Resultado obtido: Ser reservado um espao de quatro dgitos, alinhados direita, para apresentao do valor da varivel NIVEL. Como o valor de NIVEL tem no mximo 3 dgitos, os caracteres esquerda do valor sero completados com o zeros.. NIVEL ATUAL=0100 LTS Atributo Sn(Apresentao condicional): Uma instruo MOSTRA que contenha este atributo s ser executada se o valor da varivel WWW for igual ao parmetro n. As mensagens e variveis que houverem sido carregadas no display por alguma instruo MOSTRA com atributo de apresentao condicional sero apagadas quando uma nova instruo MOSTRA com atributo de apresentao condicional for executada.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

140

Exemplo - Apresentar no display os nveis mdio e crtico para o tanque CLP=BCM1086 INTERFACE1(9600)=1 ESA=1 DISPLAY=DPA ;Especifica tipo de CP ;Habilita Canal Serial RS232 na velocidade de 9600 Bauds ; Habilita E/S analgicas ; Habilita tratamento display alfanumrico

MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente FACA* NIVEL=EA1*100/4095 E WWW=NIVEL/3 MALHA 1: ; Especifica o nmero da malha de controle ESTADO 0: ; Especifica o nmero do estado corrente MOSTRA T(1,1)"NIVEL ATUAL=",NIVEL,"lts" MOSTRA S30(2,4)"NIVEL MEDIO" MOSTRA S20(2,4)"NIVEL CRITICO" Neste caso a mensagem NIVEL MEDIOs ser apresentada no display quando a varivel WWW for igual a 30 (S30) e a mensagem NIVEL CRITICO quando a varivel WWW for igual a 20 (S20). - Uso das Teclas de Funo A interface teclado/display alfanumrico possui quatro teclas de funo (F1, F2, F3 e F4) livremente configurveis pelo usurio. Estas teclas possuem nomes de variveis de atribuio fixa j definidas pelo Sistema Operacional, portanto disponveis para utilizao, sem necessidade de declarao. Tecla F1 F2 F3 F4
Verso 2009-1

Varivel TF1 TF2 TF3 TF4


Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

141

Do ponto de vista eltrico, estas teclas so contatos NA (Normalmente Aberto) e seu funcionamento idntico s entradas digitais. Situao Tecla em repouso Tecla pressionada Nvel Lgico 0 (zero) 1 (Um)

Exemplo - Apresentar mensagens controladas pelas teclas de funo. Diagrama de Estados

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

142

Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA ; Especifica tipo de CP ; Habilita Canal RS232 na velocidade de 9600 Bauds ; Habilita tratamento display alfanumrico

MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente MOSTRA T(1,1)TECLAS DE FUNCAO MOSTRA (2,1)F1 - AVANCA SE TF1=1 ENTAO 1 ; Se F1 for pressionada salta p/o estado 1 ESTADO 1: SE TF1=0 ENTAO 2

; Se F1 for solta p/o estado 2

ESTADO 2: MOSTRA T(1,1)VOCE PRESSIONOU F1 MOSTRA (2,1)F2 - RETORNA SE TF2=1 ENTAO 3 ; Se F2 for pressionada salta p/o estado 3 ESTADO 3: SE TF2=0 ENTAO 0

; Se F2 for solta retorna ao estado 0

- Como carregar teclado/display

um

valor

em

uma

varivel

atravs

do

A mdulo teclado/display alfanumrico uma importante Interface-Homem- Mquina bidirecional entre o programa e o usurio do CP, isto , pode ser utilizada para ler ou para escrever valores em variveis do programa. (Set Point). As variveis de display podem ser livremente manejadas no programa, aparecendo em testes e operaes aritmticas. As variveis desse grupo so sempre retentivas, permitindo que pontos de ajuste, calibraes ou programaes, sejam mantidos independente de que o controlador seja mantido ligado.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

143

Para carregar valores em variveis deve-se utilizar a instruo MOSTRA e a varivel na qual se deseja escrever um valor deve ser declarada como canal de display atravs da janela Variveis do Programa no PROCP. Para carregar o valor desejado na varivel siga os seguintes passos: 1) Posicione o display de forma a apresentar a varivel desejada 2) Pressione a tecla de cursor at que o valor correspondente a varivel fique piscando 3) Digite o novo valor desejado 4) Pressione a tecla EV para que a varivel assuma o novo valor desejado.

Exemplo: - Carregar o valor em uma varivel Listagem do Programa CLP=BCM1086 INTERFACE1(9600)=1 DISPLAY=DPA ; Especifica tipo de CP ; Habilita Canal RS232 numa velocidade de 9600 Bauds ; Habilita tratamento display alfanumrico

MALHA 0: ; Especifica nmero da malha corrente ESTADO 0: ; Especifica nmero do estado corrente MOSTRA T(1,1)VALOR DESEJADO=,VDES

LEMBRE-SE: A varivel VDES deve ser associada a um canal de display do CP quando da edio do programa no PROCP.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

144

Uso do display Numrico Este recurso est disponvel nos CPs BCM1086 e BCM2085 com mdulo Display/700 instalado. A interface display numrico composto de 7 dgitos divididos em dois campos:

Os dois dgitos esquerda representam o nmero do canal corrente de 00 a 99 e os demais dgitos representam o valor da varivel do canal corrente. Os valores admissveis nessas variveis esto, em princpio, na faixa de 0 a 65535. O comando DISPLAY(colocado na configurao do CP) pode, no entanto, restringir essa faixa. As variveis desse grupo so sempre retentivas, permitindo que pontos de ajuste, calibraes ou programaes, sejam mantidos independente de que o controlador seja mantido ligado. O acesso aos canais do display numrico feito atravs da varivel de atribuio fixa WWW. Esta varivel contm o nmero do canal do display #1 presente no momento. Quando o usurio muda o canal pelo teclado, a varivel transmite essa informao para o programa. No sentido inverso, um valor lanado nessa varivel usando a instruo FACA ir fazer com que o display #1 v para o canal especificado. Aceita valores de 00 a 99.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

145

2.5.10 - Uso de Matrizes Definio: Matriz um arranjo de um determinado nmero de elementos com um significado nico. O agrupamento seqencial desses elementos em linhas e/ou colunas est normalmente associado a uma regra de ocupao determinada. Uso de Matrizes na Linguagem Descritiva BCM Com o uso desta funo, abre-se todo um espao de recursos no agrupamento, tratamento e recuperao de informaes numricas. Aplicaes tpicas de matrizes: - Gerao de histricos - Totalizao de valores - etc... As variveis utilizadas como matrizes devem ser, obrigatoriamente, variveis indexadas. A Linguagem Descritiva BCM possui dois comandos para definio e matrizes: - O comando DIM aaa(xxx) define a dimenso da matriz aaa. O nmero de elementos pode estar na faixa de 0 a 32767. - O comando DIMD aaa(xxx) define que a matriz aaa ser uma matriz de display, isto , a cada elemento da matriz corresponder a um canal do display. O valor xxx no ter importncia, pois uma matriz de display sempre ter dimenso igual a 99. O programa do usurio pode trabalhar livremente com uma matriz de display, sem prejuzo das variveis definidas como variveis de display na janela Variveis do Programa no PROCP Win ou no menu EDITA na verso DOS. LEMBRE-SE: O comando DIM deve ser declarado junto dos comandos de configurao do CP, antes da edio do programa. Ver comandos de configurao do CP.
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

146

Exemplo: Calcular a temperatura mdia no interior de uma estufa a cada 5 minutos. O intervalo entre cada leitura deve ser de 1 minuto.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

147

Soluo: Para armazenar as leituras ao longo do tempo, devemos criar um vetor indexado pelo tempo no qual ser armazenado o valor da temperatura a cada minuto. Para facilitar a compreenso, vamos dividir a soluo em malhas de controle. MALHA 0 1 2 FUNO Converso do sinal 4-20mA em escala de temperatura de 0 a 100C Leitura, armazenamento dos dados e clculo da temperatura mdia. Apresentao dos valores no display

Diagrama de estados:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

148

Listagem do Programa CLP=BCM1088 INTERFACE1(9600)=1 ESA=1 RTC DIM TEMP(5) DISPLAY=DPA ; Especifica tipo de CP ; Habilita Canal Serial RS232 na velocidade de 9600 Bauds ;Habilita tratamento da interface de E/S analgicas ; Habilita tratamento do relgio/calendrio ; Define a matriz TEMP com 5 elementos ; Habilita tratamento display alfanumrico

MALHA 0: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente FACA* NIVEL=EA1*100/255; Converte sinal de EA1 em escala de 0 a 100 graus MALHA 1: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado corrente FACA IND=0 E SOMA=0 E MEDIA=0 VA PARA 1 ESTADO 1: RESET MIN SE MIN=1 ENTAO 2 ; Especifica nmero do estado corrente ; Reseta Temporizador de Minutos ; Se j passou 1 minuto salta p/o estado 2

ESTADO 2: ; Especifica nmero do estado corrente INCREMENTA IND ; Incrementa ndice do Vetor FACA TEMP(IND)=TEMP E SOMA=TEMP(IND)+SOMA SE IND=5 ENTAO 3 ; Se ndice igual 5 (5 minutos) salta p/estado 3 VA PARA 2 ; Retorna ao estado 2, caso IND seja <5 ESTADO 3: ; Especifica nmero do estado corrente FACA MEDIA=SOMA/5 E SOMA=0 E IND=0 VA PARA 1 MALHA 2: ; Especifica nmero da malha de controle ESTADO 0: ; Especifica nmero do estado de controle MOSTRA T(1,1)TEMP ATUAL=,TEMP, Graus MOSTRA (2,1)TEMP MEDIA=,MEDIA, Graus FIM ;Informa fim da edio do programa
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

149

2.5.11 - Controle PID Controle de processo a tcnica de MEDIR uma varivel, COMPARAR este valor medido com um valor de referncia e AGIR sobre esta varivel de maneira que a diferena entre o valor medido e o valor desejado tenda a zero.
Sinal de controle Entrada de Referncia Sinal de Perturbaes

Erro

Ao de controle

Atuador

Processo
Varivel Controlada

Medidor

O Controle PID um mtodo de controle em lao fechado que consiste em aplicar ao atuador o sinal resultante da soma das funes proporcional, integral e derivativa aplicadas ao erro observado na varivel medida. Graficamente temos:

VS=Kp * Err + Ki * Serr * dT + Kd * dErr / dT

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

150

Onde: VS o sinal de sada que ser aplicado ao atuador Err a diferena entre o valor medido e o valor desejado (Setpoint) dT a diferena de tempo entre as amostragens Serr a soma dos erros ao longo do tempo dErr a diferena de erros - erro atual - erro anterior A instruo para execuo de uma rotina PID na Linguagem Descritiva BCM a seguinte: Consideraes sobre o uso da instruo PID 1) Se colocada associada a um estado, a rotina ser executada enquanto o estado estiver ativo. Se colocada independente de estado, a rotina ficar operando permanentemente. 2) Se vrias rotinas forem definidas com o mesmo nmero, a ltima definio ativada invalidar todas as anteriores. Essa circunstncia permite a definio de rotinas PID com parmetros diferentes para diferentes fases do processo, conforme a necessidade. A instruo PID executa automaticamente a cada ciclo a seguinte equao: VS=Kp * Err + Ki * SErr.Dt + Kd * dErr/dt Onde: Err o erro de controle (Referncia - Medio) Serr a soma de todos os erros acumulados Em relao a um controlador analgico ideal, a rotina PID executada digitalmente impe uma srie de detalhes a serem observados. a) O diferencial de tempo, usado para clculo do erro diferencial e integrado, definido no sistema ideal como infinitamente pequeno, substitudo pelo conceito de Tempo de Amostragem (TA). Esse valor, programvel pelo usurio, determina o intervalo sobre o qual o erro somado no acumulador de erro; sendo tambm usado para calcular a variao diferencial das leituras tomadas entre duas amostragens.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

151

Definido desta maneira, a equao realmente executada fica sendo a seguinte: VS=DE + Kp * Err + Ki * J(r) + Kd * (Err-Err) Onde: * J(r) a soma dos erros acumulados a cada perodo de amostragem * Err o erro calculado no perodo de amostragem anterior * DE uma constante programvel somada a varivel de sada (em complemento de 2) b) As variveis usadas no possuem resoluo e capacidade infinita. Devero ser sempre observados os seguintes limites: VS, MD, RE, DE- Valores positivos na faixa de 0 a 65535 (16 bits) Kp, Ki, Kd- Valores positivos na faixa 0,004 a 255 (16 bits) Err- Valores em complemento de 2 na faixa -32768 a 32767 (16 bits) J(r) - Valores positivos na faixa 0 a 65535 (16 bits) Os clculos internos so todos desenvolvidos em complemento de 2, com resoluo de 24 bits. c) O software projetado para que, em cada ciclo do CP, uma rotina PID seja atendida. Deve haver cuidado para que o tempo de amostragem escolhido seja SEMPRE maior que o tempo requerido pelo sistema para atendimento de todas as rotinas. d) Para aperfeioar a sequncia de controle, provido um recurso lgico para evitar o disparo do acumulador integral, fenmeno que provoca um atraso muito grande na estabilizao do sistema. A atualizao do acumulador integral fica associada ao desempenho da sada. Assim, o acumulador no incrementado se a sada estiver no limite superior (LS). Da mesma forma, o acumulador no decrementado se a sada estiver no limite inferior (LI). Isso estabelece que a ao integral s ocorre dentro da chamada faixa proporcional.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

152

A seguir so apresentados os parmetros de controle acessveis ao usurio. Estes podem ser constantes ou variveis, conforme as definies: VS
Varivel de sada de controle. Pode ser qualquer varivel no indexada. A faixa de sada vai de 0 a 65535 a menos que haja uma limitao via LS ou LI. Nome da varivel ou constante da referncia para o controle. Pode ser qualquer varivel no indexada. Deve estar na faixa de 0 a 65535. Nome da varivel de medio do processo. Pode ser qualquer varivel no indexada. Deve estar na faixa de 0 a 65535. Coeficiente proporcional. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, o coeficiente proporcional assume o valor 1. Coeficiente integral. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, o coeficiente proporcional assume o valor 0. Coeficiente derivativo. Pode ser uma constante ou varivel no indexada. Se constante, deve estar na faixa de 0,004 a 255. Se varivel, o contedo da varivel ser dividido por 256 para entrar no algoritmo de controle. Se omitido, o coeficiente proporcional assume o valor 0. Tempo de amostragem em segundos. Constante que define o intervalo entre os incrementos do acumulador integral e entre dois clculos do erro diferencial. Deve estar na faixa 0,1 a 25,5. Se omitido assume o valor 1. Apenas uma definio de TA admissvel no programa e ser vlida para todas as rotinas PID existentes. Deslocamento (offset) de sada. Constante na faixa de 0 a 65535 que desloca a sada em relao ao valor calculado pelo algoritmo bsico. Limite superior de sada. Constante na faixa de 0 a 65535 que limita o valor mximo da varivel de sada. Se omitido, a sada pode assumir qualquer valor. Limite inferior de sada. Constante na faixa de 0 a 65535 que limita o valor mnimo da varivel de sada. Se omitido, a sada pode assumir qualquer valor.

RE MD Kp

Ki

Kd

TA

DE LS

LI

OBS.: Ao colocar constantes nos parmetros PID, o separador decimal deve ser o ponto, e no vrgula (notao inglesa).
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

153

Aplicaes com a rotina PID 1) Caso - Atuando somente sobre a constante proporcional Para constante proporcional igual a 1: Kp=1 Ki=0 Kd=0 Se aplicarmos estes valores na equao, teremos: VS=Kp * Err + Ki * Serr + Kd * dErr / dT VS=1 * Err + 0 * Serr + 0 * dErr / dT VS=ErrComo: Err = Referncia - Valor Medido VS= (Ref - MD) Neste caso o PID gera um sinal de sada VS que depende apenas da Referncia (Setpoint) e do Valor Medido. Se Ref > MD=> VS>0(nmero positivo) aplica tenso na sada Se Ref < MD=> VS<0(nmero negativo) desliga sada VS pode ser uma sada digital (controle PWM) ou analgica (controle proporcional). Para constante proporcional igual a K . Onde K deve ser um valor maior que 1.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

154

Se aplicarmos estes valores na equao, teremos: VS=Kp * Err + Ki * Serr + Kd * dErr / dT VS=K * Err + 0 * Serr + 0 * dErr / dT VS=ErrComo: Err = Referncia - Valor Medido VS=K (Ref - MD) Logo: Se Ref > MD=> VS>>0(nmero positivo) aplica tenso na sada Se Ref < MD=> VS<<0(nmero negativo) desliga sada Por Exemplo: Para K = 1000 e Err = -1 logo a sada assume um valor VS= - 1000 Para corrigir este problema (sada com valor muito menor que zero) foi includo a constante de integrao Ki. A constante integral compara o valor atual com o valor anterior (determinado pelo tempo de amostragem).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

155

O Controle Proporcional e Integral (PI) leva o regime permanente prximo da referncia.

O Controle PI pode levar o sistema a ficar instvel se os valores para as constantes Kp ou Ki forem muito grandes. O controle PI (proporcional e Integral) faz com que o sistema tenha uma resposta lenta quando houver uma variao no valor medido. Para compensar isto deve-se incrementar a constante derivativo (Kd). O controle derivativo observa qual a taxa de variao do erro. geralmente usado quando deseja-se uma resposta muito rpida em relao a uma variao do valor medido. importante observar que o uso do controle derivativo pode acontecer uma oscilao em regime permanente. Para diminuir esta variao deve-se atuar sobre a constante proporciona. Como ajusta um controle PID Os passos a seguir servem apenas como orientativos para ajustar-se um controle PID. 1. Determinar uma valor para Kp e Zero para Ki e Kd 2. Verificar o grfico; se VS estiver variando muito, diminuir o valor de Kp at que a variao seja mnima. 3. Quando atingir um valor medido que seja estvel em regime permanente, ajustar o valor de Ki. O ajuste de Ki ir diminuir o erro em regime permanente para que o valor medido fique o mais prximo possvel do valor de referncia. O aumento de Ki deve ser gradativo. Observar se o aumento de Ki no causa uma instabilidade na constante proporcional.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

156

Exemplo: Implementar uma rotina de controle PID com sada PWM, modulando a sada digital 5. As variveis de referncia e os coeficientes podem ser ajustados com outras malhas ou em outros equipamentos atravs da rede de comunicao.

Listagem do Programa CLP=BCM1086 INTERFACE 1(9600)=1 ESA=1 DISPLAY=DPA ;Especifica tipo de CP ;Habilita canal serial RS232 na velocidade de 9600 bauds ;Habilita tratamento de E/S analgicas ;Habilita tratamento display alfanumrico

MALHA 0: ; Especifica o nmero da malha de controle PID:1 VSAI=VS RE=TEMP MD=TEMPM KP=COEFP KI=KOEFI TA=0.5 LS=100 ESTADO 0: ;Especifica nmero do estado corrente DESL 5 ;Mantm sada digital 5 desligada SE VSAI>0 E DEC>100 ENTAO 1 ESTADO 1: ;Especifica nmero do estado corrente LIGA 5 ;Mantm sada digital 5 ligada RESET DEC ;Reseta contador de dcimos de segundos SE DEC>VSAI ENTAO 0 ;Verifica se DEC maior que VSAI e retorna ao estado 0

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

157

2.5.12) Exemplo de uso dos bancos de memria Este exemplo simples mostra a forma de uso dos bancos de memria. O programa apresenta no display o contedo de variveis matriciais que refletem o contedo de dois bancos de memria. A matriz BANKX() pode ler/escrever o contedo do banco 1 ou do Banco 2, conforme seja pressionada a tecla F1 ou F2.
; ; ; ; PROGRAMA DE DEMONSTRAO PARA O USO DE BANCOS DE MEMORIA F1 - Vai para Banco1 F2 - Vai para Banco2 Definir todas as variveis no matriciais na rea de display.

CLP=BCM3011 INTERFACE1(9600)=1 (PROTOCOLO=BCM2) NEST=20 RTC DISPLAY=DPA20 DIM BANK0(2815) ;O tamanho deve ser tal que BANKX comece em E000h DIM BANKX(4000) MALHA 0: ESTADO 0: MOSTRA T(1,5)"DEMOBANCO.BCM" MOSTRA (2,3)"12/abr/2007 17h" SE ATRASO=50 ENTAO 1 ESTADO 1: MOSTRA T(1,1)"Banco:",BANCO MOSTRA (2,1)"INDICE:",IND MOSTRA (1,11)"BANK0(i):",BANK0(IND) MOSTRA (2,11)"BANKX(i):",BANKX(IND) ; A matriz BANKX na realidade mltipla. O valor que se escreve em BANCO permite selecionar um de at 15 conjuntos de 4000 variveis. O exemplo mostra uma matriz de 4000 elementos, mas ao invs disso, conforme o caso, podem ser usadas vrias matrizes menores alocadas na rea E000h a FFFFh. ;O estado 1 acima apresenta um interface simples para seleo de banco e entrada/apresentao de valores. Observar que a matriz BANK0 (a rea de memria que vai de CA00h a DFFFh) fixa, no sendo afetada pela seleo de banco. ; recomendvel que as variveis no matriciais usadas na aplicao seja alocadas na rea de display, de forma a no serem afetadas pela seleo de bancos. ;Apresentao no display

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

158

MALHA 1: ESTADO 0: SE TF1=1 ENTAO 1 SE TF2=1 ENTAO 2 ESTADO 1: FACA BANCO=1 VA PARA 0 ESTADO 2: FACA BANCO=2 VA PARA 0

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

159

2.6 - TRATAMENTO DE VARIVEIS


O sistema adotado para o tratamento de variveis nos Controladores Programveis BCM merece uma ateno especial devido a que, uma importante parte do potencial da linguagem BCM est relacionado aos conceitos e regras de operao com variveis, descritas nesse captulo. As variveis so os elementos que, em ltima anlise transportam as informaes das interfaces de entrada para o programa; de uma parte do programa para outra, e do programa para as interfaces de sada. O contedo das variveis, processado de forma adequada, determina o fluxo de todo o programa, controlando as aes a serem executadas e gerando resultados de sada. Alm dessa definio genrica, aplicvel a todas as linguagens de programao, alguns tipos de variveis cumprem funes executivas especficas na linguagem BCM. O uso dessas variveis, denominadas de atribuio fixa, substituem instrues adicionais, com vantagens de manejo dos procedimentos e legibilidade dos programas. Assim, o estudo da distribuio e funcionamento das variveis est intimamente ligado ao estudo dos comandos e instrues, uma vez que estas duas estruturas definem os recursos de programao da linguagem. Uma varivel lanada no programa do usurio possui como atributos primrios um nome e um endereo definido na memria RAM do controlador, onde o seu contedo ser armazenado. Esse nome, em alguns casos definido pelo programador, e em outros j padronizado na linguagem, passa a ser a nica referncia no programa. O endereo de memria onde a varivel foi alocada permanece, durante todo o tempo, totalmente invisvel para o programador.

Importante: Uma varivel no pode assumir duas atribuies ao


mesmo tempo. Por exemplo: No permitido definir uma varivel como entrada analgica e ao mesmo tempo defini-la como varivel de display.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

160

Uma caracterstica especial associada as variveis a sua retentividade. A varivel dita retentiva quando o controlador possui a capacidade de manter o seu valor armazenado mesmo na falta de energia ou no desligamento do controlador. Fisicamente isso conseguido atravs do uso de memrias RAM com bateria na placa, para manter os valores na ausncia de alimentao externa. Como iremos ver a seguir, alguns grupos de variveis so retentivas e outras no, conforme a finalidade de cada uma. importante observar que, devido a retentividade, as variveis contm valores aleatrios quando o CP instalado pela primeira vez ou quando a bateria substituda. Nos sistemas usados em computadores de uso geral, as variveis so zeradas na inicializao. Esse fato no pode ser esquecido pelo programador. Os itens a seguir apresentam de forma detalhada a organizao das variveis na linguagem BCM, dividindo-as em grupos e subgrupos. Sero analisadas as caractersticas importantes, restries e aplicao de cada subdiviso mencionada:

2.6.1 - Variveis de Atribuio Livre As variveis de atribuio livre so as que podem ser criadas pelo programador para atender necessidades prprias da sua lgica. O nome de cada varivel pode ser escolhido dentro de qualquer combinao alfanumrica, atendidas as seguintes restries: S - Os caracteres permitidos em nomes de variveis so as letras de `A' a `Z' e os algarismos de `0' a `9'. - O primeiro caracter do nome de uma varivel deve ser uma letra. - So permitidos de trs a cinco caracteres no nome de uma varivel. Qualquer varivel deste grupo pode participar de operaes aritmticas como operando ou resultado. Pode tambm participar de expresses condicionais na instruo`SE'.Conforme o CP utilizado, as variveis de atribuio livre podem ser retentivas ou terem os seus valores zerados ao ser ligado o controlador. Todas as variveis deste grupo podem assumir valores inteiros, e positivos dentro da faixa 0 a 65535. Conforme a estruturao, o grupo das variveis livres podem ser divididas em dois sub-grupos:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

161

2.6.1.1 - Variveis Indexadas As variveis indexadas possuem as caractersticas j definidas para as variveis livres, com o recurso adicional de permitir a associao de um ndice ao nome. Esse ndice, que pode ser uma constante ou um nome de varivel, colocado entre parnteses, permite a constituio de matrizes, abrindo todo um espao de recursos no armazenamento, tratamento e recuperao de informaes numricas. Exemplo: DIM MAT(40) FACA IND=3 FACA MAT(0)=10 E MAT(1)=20 E MAT(2)=30 SE MAT(IND)=30 ENTAO 0 A expresso condicional da ltima linha ser vlida; a matriz `MAT' contm em suas trs primeiras linhas os valores 10, 20 e 30. O comando `DIM' da primeira linha do programa reserva espao para uma matriz chamada `MAT', composta por quarenta e uma variveis indexadas.

2.6.1.2 - Variveis no Indexadas As variveis no indexadas no permitem a associao do ndice. Cada varivel pode conter apenas um valor numrico, mantidas todas as caractersticas j detalhadas para as variveis livres. Neste caso no necessria nenhuma pr-definio. O controlador reconhece e aloca espao para a varivel automaticamente, quando esta usada pela primeira vez.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

162

2.6.2 - Variveis de Entrada e Sada As variveis de entrada e sada tem a finalidade especfica de proporcionar a ligao entre as operaes lgicas do programa e as interfaces fsicas de entrada/sada do controlador. Para atender esse objetivo, esse grupo de variveis apresenta as caractersticas bsicas j definidas, alm de outras que sero analisadas em cada sub-grupo. Os nomes das variveis desse grupo so livremente escolhidos pelo usurio, respeitando o nmero e tipos de caracteres utilizveis. O programador deve definir todos os nomes de variveis de entrada/sada dentro da janela de variveis. Para maiores detalhes, veja o captulo sobre a operao do PROCP. 2.6.2.1 - Entradas Digitais Cada varivel de entrada digital assume o valor 1" ou 0", de acordo com o estado ligado ou desligado da entrada associada. O sistema operacional se encarrega de ler a porta de entrada a cada vez que uma expresso condicional citando tal entrada aparece no programa. O nmero de variveis permitido fica limitado unicamente pelo hardware utilizado, de acordo com o tipo e configurao de CP adotado. As variveis desse sub-grupo podem ser usadas na instruo SE no sendo permitido o seu uso em operaes aritmticas (instruo FACA). Exemplo: MALHA 0: ESTADO 0: SE ENT1=1 OU ENT2=0 DESL 8

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

163

2.6.2.2 - Entradas Analgicas As variveis de entradas analgicas so atualizadas a cada ciclo do controlador atravs da leitura dos conversores A/D dos mdulos especficos. O resultado obtido transferido pelo sistema operacional automaticamente para as variveis previamente definidas. Os valores permitidos dependem do interface A/D usado - No controlador BCM2085, por exemplo, a placa ESA l entradas analgicas em 8 bits, gerando valores na faixa 0 a 255. A placa ANA l entradas analgicas em 12 bits, gerando valores na faixa 0 a 4095 (o fundo da escala calibrado para 4000, sendo os valores 4001 a 4095 considerados como overflow). O nmero de variveis permitido, fica limitado unicamente pelo hardware, de acordo com o tipo e configurao de CP adotado. As variveis desse sub-grupo podem ser usadas em testes e operaes aritmticas, com as instrues `SE' e `FACA'.

Exemplo: MALHA 0: ESTADO 1: SE ENTA=40 ENTAO 40 FACA TOT=ENTA*40+4/SOMA+10

2.6.2.3 - Sadas Analgicas As variveis de sadas analgicas tem o seu contedo determinado unicamente pelo programa, atravs do resultado de operaes aritmticas. O sistema operacional se encarrega de transferir automaticamente os contedos das variveis para os conversores D/A disponveis. Aqui novamente, os valores permitidos dependem do interface A/D usado. No controlador BCM2085, por exemplo, a placa ESA converte valores na faixa 0 a 255 para uma tenso ou corrente proporcional ao contedo da varivel, disponvel nos bornes de sada. A placa ANA converte valores na faixa de 0 a 4095. O fundo de escala calibrado para 4000.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

164

O nmero de variveis permitido fica limitado unicamente pelo hardware, de acordo com o tipo e configurao de CP adotado. O contedo das variveis desse sub-grupo so controladas atravs dos resultados aritmticos na instruo `FACA'. Ao ser ligado o CP, todas as variveis desse sub-grupo sero zeradas. Exemplo: MALHA 0: ESTADO 0: FACA SANA=VAR1+40/VAR2*4

2.6.2.4 - Display O sistema de display programador proporciona um interface bidirecional eficiente entre o programa e o usurio do controlador. As variveis de display podem ser livremente manejadas no programa, aparecendo em testes e operaes aritmticas. O contedo destas variveis ir aparecer no display programador, uma varivel em cada canal disponvel. A linguagem BCM permite at trs displays com cem variveis cada, endereadas pelos canais 00 a 99. (Depende da disponibilidade de hardware, conforme o modelo e os mdulos disponveis). A limitao quanto ao nmero de unidades de display deve ser ainda conferida com o tipo de controlador usado em cada caso. A caracterstica de bidirecionalidade dada pelo fato que atravs do teclado pode- se alterar o contedo das variveis livremente, modificando situaes, pontos de ajuste, etc. O usurio pode assim interagir com o programa atravs dessas variveis. Mais detalhes sobre esse assunto sero apresentados no captulo especfico sobre operao com display programador. Os valores admissveis nessas variveis esto, em princpio, na faixa de 0 a 65535. O comando `DISPLAY' pode, no entanto, restringir essa faixa - ver a definio dos comandos operacionais. As variveis desse grupo so sempre retentivas, permitindo que pontos de ajuste, calibraes ou programaes, sejam mantidos independentemente de que o controlador seja mantido ligado.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

165

2.6.3 - Variveis de Atribuio Fixa As variveis de atribuio fixa possuem nomes e atribuies predeterminadas no contexto da linguagem. A sua finalidade a de executar funes especficas, substituindo instrues e comandos com vantagens de legibilidade dos programas e facilidade de manejo. O usurio pode incluir as variveis desse grupo em testes lgicos e operaes aritmticas, usando as instrues `SE' e `FACA'. Cada varivel possui uma caracterstica operacional prpria, com faixa de valores e possibilidades de leitura/escrita definidas para cada caso. No sentido de agrupar as variveis de atribuio fixa de acordo com as suas funes, estas foram divididas em sub-grupos. Alm disso, cada varivel apresenta uma descrio prpria do seu funcionamento. Ateno: Um erro comum no desenvovimento de aplicaes a criao de variveis pelo programador cujo nome seja o mesmo de uma varivel de atribuio fixa do sistema. Se fizer isso, o funcionamento do controlador pode assumir uma situao inesperada, conforme a varivel e a forma como essa for afetada. Abaixo apresentada uma lista alfabtica das variveis de atribuio fixa, atualizada de acordo com o PROCP V5k - Release 2. A descrio destas apresentada nos itens a seguir: ANAD1-8 CFISI EDEER LICLP RDEC TOC1-2 ANANM CFMOT EEEDD MATER RHOR TOF1-2 ANO CFSDD EER1-2 MES RMIN TOR1-2 BANCO CIC EMEM MIN RODIS TVARR BATOK CNCON ENDR1-9 MOTER RSEC UVARR BLCON CPUAT EPSDD NBACK SEC V01-16 CA1-10 CT1-10 ETMPD NEEDD SIGPS WW2 CEN CTH1-10 EUR1-2 NFIC SONAL WW3 CFANA DEC GRAV1-2 NPSDD TCPAT WWW CFEAI DIA J01-32 NTAR TEM1-2 CFEDD DSEM ISIER NTMPD TECLA CFEDE E00-E128 HOR PRGPS TF1-TF4 CFF1-11 EANER HOTBK RATT TFN0-1 CFIC EBACK LIBDS RCEN TIPER

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

166

2.6.3.1 - Temporizao As variveis de temporizao so incrementadas automaticamente pelo sistema operacional a cada unidade de tempo definida. Podem ser usada para leitura, escrita e teste na faixa 0 a 65535. Se a funo de temporizao exceder 65535, a varivel zerada e a contagem continua. importante observar que as variveis so totalmente independentes, isto , o contador de minutos, por exemplo, pode ser zerado ou presetado sem que ocorra nenhuma influncia sobre o contador de horas. HOR - Contador de horas. Incrementa uma unidade por hora. MIN - Contador de minutos. Incrementa uma unidade por minuto. SEC - Contador de segundos. Incrementa uma unidade por segundo. DEC - Contador de dcimos. Incrementa uma unidade por dcimo de segundo. CEN - Contador de centsimos. Incrementa a cada por centsimo de segundo. ETMPD - Endereo do buffer dos temporizadores de dcimos de segundo (vlido somente para a CPU8). O usurio pode criar at 255 temporizadores, que sero incrementados a cada dcimo de segundo. Na varivel NTMPD dever ser programado o nmero de temporizadores e na varivel ETMPD o endereo do buffer dos temporizadores. Este buffer dever ser definido no programa do usurio e dever ser compatvel com o tamanho configurado em NTMPD. Cada posio do buffer funcionar como um temporizador independente que poder ser usado livremente pelo usurio. O valor inicial de NTMPD e ETMPD ser igual a zero. NTMPD - Nmero de temporizadores de dcimos de segundo (vlido somente para a CPU8). Veja a descrio para ETMPD.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

167

2.6.3.2 - Relgio As variveis de relgio tornam as informaes de data e hora real disponveis para o programador. Essas variveis s tem utilidade quando o sistema est configurado com uma placa ou com recursos de relgio de tempo real. Essas variveis esto disponveis para incluso em operaes aritmticas (leitura) e operaes de teste. A escrita nas variveis de relgio (acerto do relgio/calendrio) deve seguir um roteiro especial, descrito no captulo especfico sobre cada modelo de controlador programvel. ANO MES DIA RHOR RMIN RSEC RDEC Varivel associada ao relgio de tempo real (ano atual). Varivel associada ao relgio de tempo real (ms atual). Varivel associada ao relgio de tempo real (dia atual) Varivel associada ao relgio de tempo real (hora atual) Varivel associada ao relgio de tempo real (minuto atual) Varivel associada ao relgio de tempo real (segundo atual) Varivel associada ao relgio de tempo real (dcimo de segundo atual) Obs: esta varivel s existe no BCM2085/CPU7 Varivel associada ao relgio de tempo real (dia da semana). No BCM1086A varia de 0(domingo) 6(sbado); No GP3000 e BCM2085B varia de 1(domingo) 7(sbado) Varivel de controle para acerto do relgio: 0 - O relgio sendo atualizado, se estiver habilitado 1 - Bloqueia a leitura do relgio, permitindo a atualizao das variveis ANO, MES, DIA, RHOR, RMIN, RSEC para acerto do relgio. 2 - Carrega o valor de ANO, MES, DIA, RHOR, RMIN, RSEC no relgio de tempo real e zera RDEC. 3 - Erro no relgio
Referncia: 31940092-8

DSEM

RATT

Verso 2009-1

BCM Automao

Linguagem Descritiva BCM

168

Para fazer o acerto do relgio atravs das variveis (recurso usado principalmente quando se deseja acertar o relgio remotamente, via canal de comunicao), siga a sequencia: - Escreva o valor 1 na varivel RATT (isso vai interromper a escrita dos valores do RTC nas variveis) - Escreva os valores desejados em ANO,MES,DIA,RHOR,RMIN,RSEC - Escreva o valor 2 na varivel RATT (isso vai atualizar o RTC e voltar ao funcionamento normal)

2.6.3.3 - Reconhecimento dos mdulos de E/S As variveis desse grupo sinalizam o estado de reconhecimento e diagnstico dos vrios mdulos de E/S do controlador BCM2085B: CFANA Configurao dos mdulos ANA reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro. (No disponvel atualmente) Configurao dos mdulos EAI reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro.

CFEAI

CFEDD Configurao dos mdulos EDD reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro. CFEDE Configurao dos mdulos EDE reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

169

CFISI

Configurao dos mdulos ISI reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro.

CFMOT Configurao dos mdulos MOT reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro. (No disponvel atualmente). CFSDD Configurao dos mdulos SDD reconhecidos. Cada bit da varivel corresponde a um mdulo. O bit 0 corresponde ao mdulo 1, o bit 1 corresponde ao mdulo 2 e assim por diante. Valor 1 significa que o mdulo est presente e OK. Valor 0 significa que o mdulo no foi reconhecido ou est em erro. CFF1 CFF2 CFF3 CFF4 CFF5 CFF6 CFF7 CFF8 CFF9 CFF10 Indica o nmero total de mdulos SD presentes e OK. Indica o nmero total de mdulos ESA presentes e OK. Indica o nmero total de mdulos CTR presentes e OK. Indica o nmero total de mdulos PAN presentes e OK. Indica o nmero total de mdulos EDD presentes e OK. Indica o nmero total de mdulos SDD presentes e OK. Indica o nmero total de mdulos EDE presentes e OK. Indica o nmero total de mdulos ANA presentes e OK. Indica o nmero total de mdulos ISI presentes e OK. Indica o nmero total de mdulos EAI presentes e OK.

CFF11 Indica o nmero total de mdulos MOT presentes e OK. (No disponvel atualmente)
Verso 2009-1 Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

170

EANER Apresenta o cdigo de status de erro relativo aos mdulos EAN ou EAI. A composio do cdigo segue o seguinte esquema:
PP E | |----- Cdigo de erro: | 1 - Instruo no executada porque a CPU no reconheceu o mdulo | 3 - Erro no sensor de junta fria | 4 - Erro no conversor A/D ou falta de alimentao | 5 - Erro na memria Ram | 6 - Erro na memria Eprom | 7 - O mdulo no responde | 8 - Mdulo indisponvel | 9 - Mdulo indisponvel | |--------- Nmero da placa com o erro

EDEER Apresenta o cdigo de status de erro relativo aos mdulos EDE. A composio do cdigo segue o seguinte esquema:
PP E | |----- Cdigo de erro: | 1 - Erro na memria Eprom | 2 - Erro na memria Ram | 3 - Erro nas memrias Eprom e Ram | 4 - Erro em alguma das entradas digitais | 5 - Erro nas entradas e na Eprom | 6 - Erro nas entradas e na Ram | 7 - Erro nas entradas, na Eprom e na Ram | 8 - Erro no acesso ao mdulo | 9 - Instruo no executada porque a CPU no reconheceu o mdulo | |--------- Nmero da placa com o erro

ISIER

Apresenta o cdigo de status de erro relativo aos mdulos ISI. A composio do cdigo segue o seguinte esquema:
PP E | |----- Cdigo de erro: | 1 a 7 - Erros internos no mdulo ISI | 9 - Instruo no executada porque a CPU no reconheceu o mdulo | |--------- Nmero da placa com o erro.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

171

MOTER

Essa varivel apresenta o cdigo de status de erro relativo aos mdulos BCM2085/MOT. A composio do cdigo segue o seguinte esquema:
P E | |----- Cdigo de erro: | 1 - Erro de execuo em INSMOT | 5 - Erro na memria RAM | 6 - Erro na memria EPROM | 7 - A placa no responde | 8 - Placa indisponvel (Status W) | 9 - Placa indisponvel (Status R) | |--------- Nmero da placa com o erro.

Os erros de cdigo 5 a 9 so marcados na inicializao do CP, quando do autoteste dos mdulos. Neste momento, o nmero da placa se refere a primeiro mdulo no qual houve erro. O erro cdigo 1 marcado durante a execuo de uma instruo "MOTOR", caso haja alguma anormalidade no interface.

2.6.3.4 - Controle de programa As variveis de controle de programa atendem operaes internas diversas, relacionadas ao fluxo do programa do usurio: BANCO Alguns controladores oferecem reas de memria de variveis organizadas em segmentos mltiplos denominados bancos de memria. Esta varivel permite ao programa do usurio selecionar qual o banco de memria deve ser acessado para leitura ou escrita em determinado momento. Consulte a documentao especfica do controlador programvel para mais detalhes. CIC Contador de ciclos de varredura do CP. Essa varivel incrementada continuamente de 0 a 65535, uma unidade a cada ciclo do controlador.

CPUAT - Indica se a CPU8 est ativa ou em stand-by. Usada em aplicaes com redundncia usando duas CPUs. Vlido para CPU8 (com S.O.2008-2 ou superior).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

172

E00 a E127 Estado de cada uma das 128 malhas disponveis. Somente a CPU7-11 e CPU8 tem capacidade para 128 malhas; os demais produtos suportam 64 malhas. Este sub-grupo de variveis permite ao programa controlar em uma mquina o que ocorre nas outras, estabelecendo vnculos entre os diversos ramos lgicos do sistema. Nesta funo, estas podem ser testadas e participar de operaes aritmticas, se necessrio. Pode-se ainda forar mudanas de estado imediatas em qualquer mquina, colocando valores nessa variveis atravs da instruo `FACA'. Essa operao equivale a mudana de estado normal, a menos do rearme dos flags aritmtico e de impresso, os quais no so rearmados quando se executa uma mudana de estado por esse mtodo. As variveis desse sub-grupo admitem valores na faixa 0 a 254. ENDR1 a ENDR9 - Endereos de referncia para passagem de parmetros para Blocos de Funo usados no controlador BCM2085B/CPU8. O significado de cada varivel ir depender do Bloco de Funo usado e estar descrito na sua documentao. GRAV1 Controla a gravao e leitura de variveis para a memria flash. Sob comando dessa varivel, o contedo da rea de display 2 (variveis do usurio) pode ser escrito ou lido em memria flash de acordo com a seguinte tabela:
Valor 0 1 5 10 11 100 101 102 Descrio Aguardando comando; operao concluda Leitura da flash para a Ram, com checagem de CRC Leitura da flash para a Ram, sem checagem de CRC Gravao de variveis na flash Confirmao da gravao de variveis na flash Indicao de erro de CRC na gravao da flash Indicao de erro de gravao Gravao no confirmada

GRAV2 Controla a gravao e leitura de variveis para a memria flash. Sob comando dessa varivel, o contedo da rea de display 3 (variveis do usurio) pode ser escrito ou lido em memria flash de acordo com a mesma lgica de comando usada em GRAV1.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

173

J01 a J32 Acumulador de erros, usado para clculos do termo integral nas rotinas de controle PID Para cada uma das 32 rotinas PID disponveis, essa varivel contm o valor atual do acumulador integral. Essa rea de variveis pode ser includa em testes, bem como em operaes de leitura e escrita. Admite valores na faixa de 0 a 65535. LIBDS Esta varivel controla o acesso ao display de servio pela tecla N/S. Com LIBDS=0, o acesso ao display de servio fica bloqueado. Com LIBDS=1, o acesso liberado. Com LIBDS=2, o acesso ao display de servio fica limitado s telas de E/S digitais (Recurso somente disponvel para o GP3101). Quando o CP ligado, esta varivel sempre inicializada em 1. O uso de LIBDS permite ao programador impedir que o usurio do sistema entre no display de servio e possa causar danos ao processo.

MATER Esta varivel (quando em 1) indica que existe uma instruo FACA ou SET tentando realizar uma escrita em rea de variveis de RAM interna do S.O., ou seja, fora da faixa de 1200H a FFFFH. A varivel inicializada em zero. Esta instruo est disponvel no PROCP V301.0 e PROCP V3K podendo ser usada somente com o BCM2085/CPU7. LICLP Controle de programa do usurio bloqueado (0) ou liberado(1).

TIPER Tipo de erro detectado pela CPU, conforme a codificao: 0 - No h erro 1 - Erro na Ram da CPU 32 - Erro de checksum da CPU 64 - Conflito de enderaamento entre os mdulos 2085B/ESA e 2085B/ANA. HOTBK Contador de inseres ou retiradas de mdulos a quente. Este recurso valido para o BCM 2085B/CPU7-11 com o Sistema Operacional 2003-1 ou superior ou para a CPU8.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

174

2.6.3.5 - Contadores Rpidos O sistema l o contedo dos contadores do GP3000 ou da placa BCM2085/CTR e atualiza um grupo composto por 2 variveis em cada contador (contagem alta e contagem baixa). Esse formato necessrio porque os contadores podem assumir valores de 0 at 1048575 (20 bits). Como todas as variveis do sistema so de 16 bits, cada contador dividido em duas variveis. As variveis definidas para contagem baixa variam na faixa 0 a 65535; as variveis definidas para contagem alta variam na faixa 0 a 15. O sistema prev at um mximo de 10 grupos de variveis (5 placas CTR). No GP 3000, esto disponveis at 4 contadores, todos de 16 bits, usando as variveis CT1, CT2, CT3, CT4. CT1 a CT10 Valor da parte baixa dos registros de contagem rpida nas placas CTR 1 a 5. CTH1 a CTH10 Valor da parte alta (bits 16 a 19) dos contadores rpidos nas placas CTR 1 a 5. CA1 a CA10 Resultado da operao dos comparadores analgicos das placas CTR 1 a 5. Essas variveis assumem os valores 0 ou 1, conforme os nveis de tenso nas entradas analgicas. Se o valor da tenso da entrada positiva (X+ ou Y+) for maior que o valor da entrada negativa (X- ou Y-), a varivel CAx assume o valor zero. Caso contrrio, assume o valor 1.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

175

2.6.3.6 - Interfaces com perifricos Esse sub-grupo de variveis de atribuio fixa tem a finalidade especfica de proporcionar a ligao entre as operaes lgicas do programa e alguns interfaces fsicos de entrada/sada de uso menos comum, no abrangidos pelas variveis de entrada/sada. Conforme o interface atendido, a faixa de trabalho e a caracterstica de leitura escrita pode ser diferenciada. Como nos outros tipos, a aplicabilidade das informaes depende da existncia ou no do suporte de hardware no modelo/verso de controlador programvel utilizado: ANAD1 a ANAD8 Estas variveis so usadas para acionar as sadas digitais das placas ANA no 1 at a n 8. No programa BCM, estas variveis podem ser usadas como as demais, mas apenas os 4 bits menos significativos que iro acionar as sadas digitais da respectiva placa. Por exemplo, se ANAD1 = 1, s a 1a saida digital da 1a placa ser acionada. Se ANAD1 = 3, a 1a e a 2a saidas digitais sero acionadas. Se ANAD1 = 15, todas as 4 sadas sero acionadas. ANANM Esta varivel contm o nmero de entradas analgicas que so lidas de todas as placas ANA instaladas. Seu valor pode variar de 1 a 8. Se ANANM for igual a zero, ser realizado o autoteste do conversor A/D de todas as placas ANA instaladas e o resultado ser colocado na 1a varivel de entrada analgica de cada placa. Se o teste estiver OK, o valor lido deve estar entre 3140 e 3150. BATOK Assume o valor 1 quando a bateria esta OK , ou assume 0 para bateria gasta. BLCON Varivel de controle para o backlight do display. Disponvel para alguns modelos de controladores. Permite ao programa do usurio controlar o acendimento ou no do backlight. Setando 1 na varivel, acende; setando zero, apaga o backlight. CNCON Varivel de controle para o contraste do display. Disponvel para alguns modelos de controladores. Permite ao programa do usurio regular o contraste do display LCD. Consulte o manual especfico do controlador para mais detalhes.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

176

EBACK - Controla a funo de leitura do readback das sadas digitais das placas SDD Na varivel NBACK deve ser configurado o nmero de placas SDD com readback (a partir da primeira) que o usurio precisa ler e na varivel EBACK deve ser programado o endereo do buffer de carga do readback das sadas. Este buffer dever ser definido no programa do usurio e seu tamanho dever ser compatvel com o nmero de placas ([NBACK*24-1]/16+1 posies). Em cada posio do buffer ser carregado o estado de readback de 16 sadas digitais, sendo que a informao de cada bit pode ser: 0 -> readback da saida digital Ok 1 -> readback da sada digital c/ falha ou SDD no reconhecida EEEDD - Endereo da matriz para carga do estado dos pontos de entradas digitais. Cada posio desta matriz informa o estado de uma entrada digital, a partir da primeira. Vlido para GP3101 ou CPU8 com S.Operacional 2008-1 ou superior. Valor = 0 -> indica entrada desligada (OFF) Valor = 1 -> indica entrada ligada (ON) Esta varivel usada em combinao com NEEDD (ver descrio abaixo). EMEM Varivel de entrada para uso geral, disponvel no mdulo BCM2085/MEM. O Sistema Operacional carrega automaticamente o valor binrio da porta na varivel, para ser usada em testes e operaes aritmticas. Assume valores na faixa 0 a 255.

EPSDD - Endereo do buffer associado s sadas digitais. Cada posio deste buffer fora o estado de uma sada digital, a partir da primeira. Vlido para GP3101 (com S.O.2008-1). Esta varivel usada em combinao com NPSDD (ver descrio abaixo). Valor = 0 -> desliga a sada digital (OFF) Valor >= 1 -> liga a sada digital (ON) NBACK - Controla a funo de leitura do readback das sadas digitais das placas SDD. * Veja a descrio acima para EBACK *

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

177

NEEDD - O Sistema Operacional oferece o recurso de cpia do estado dos pontos digitais numa matriz do programa do usurio. Para usar esse servio no GP3101 (S.Operacional 2008-1 ou superior), o programa do usurio deve carregar nesta varivel o nmero de pontos de entrada digital, a partir da primeira, que deseja que sejam carregados na matriz associada. Para usar esse servio na CPU8 (S.Operacional 2008-1 ou superior), o programa do usurio deve carregar nesta varivel o nmero de mdulos EDD, a partir do primeiro, que deseja que sejam carregados na matriz associada. Esta varivel usada em combinao com EEEDD (ver descrio acima). NPSDD - Nmero de pontos de sada digital, a partir da primeira, que tem buffer (ou matriz) associado. Vlido para GP3101 (com S.O.2008-1). Esta varivel usada em combinao com EPSDD (ver descrio acima). PRGPS Varivel utilizada para disparar a sincronizao do relgio da BCM2085/CPU7 e das placas BCM2085/EDE atravs do pulso PPS de um GPS. RODIS Varivel de controle para a rolagem das mensagens no display. Disponvel para alguns modelos de controladores. Consulte o manual especfico do controlador para mais detalhes. Varivel utilizada para indicar o estado da sincronizao do relgio da BCM2085/CPU7 pelo GPS.

SIGPS

SONAL Varivel de controle para o sonalarme (sinalizador sonoro). Disponvel para alguns modelos de controladores. Permite ao programa do usurio controlar o acionamento. Setando 1 na varivel, o sonalarme toca; setando zero, no toca. TF1 a TF4 Assume o valor 1 quando a respectiva tecla de funo pressionada no BCM 2085B/DPA.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

178

TECLA Assume um valor direto em funo de qualquer tecla que esteja pressionada , conforme a seguinte codificao:
Tecla pressionada 0 1 2 3 4 5 6 7 8 Valor em TECLA 0 1 2 3 4 5 6 7 8 Nenhuma tecla pressionada 128 Tecla pressionada 9 N/S EV - Entra valor Avana cursor Recua cursor Avana valor Recua valor Valor em TECLA 9 10 11 12 13 14 15

Observaes: - No GP3011, o valor em TECLA permanece enquanto a tecla estiver pressionada, voltando para 128 quando a tecla liberada (vlido para S.Operacional 2002-3 ou superior) - No GP3101, o valor em TECLA permanece s por um ciclo de varredura do CLP, voltando para 128 no ciclo seguinte, independentemente da tecla ser liberada ou no (vlido para S.Operacional 2007-1 ou superior)

V01 a V16 Variveis associadas ao painel de leds (BCM2085/PAN ou BCM1086/EX1). Cada varivel aqui ir controlar uma coluna de 16 leds. No BCM2085, cada uma das duas placas admissveis possui 8 colunas, totalizando 16 variveis. O valor binrio positivo de cada varivel, lanado pelo programa atravs de uma operao aritmtica, transferido para o padro de acendimento dos leds. Assim, o valor 0 na varivel apaga toda a coluna; o valor 1 acende o primeiro led, e assim por diante at que 65535 acende todos os leds da coluna.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

179

WWW

Essa varivel contm o canal do display #1 presente no momento. Quando o usurio muda o canal pelo teclado, a varivel transmite essa informao para o programa. No sentido inverso, um valor lanado nessa varivel usando a instruo `FACA' ir fazer com que o display #1 v para o canal especificado. Aceita valores na faixa 0 a 99. Essa varivel contm o canal do display #2 presente no momento. Quando o usurio muda o canal pelo teclado, a varivel transmite essa informao para o programa. No sentido inverso, um valor lanado nessa varivel usando a instruo `FACA' ir fazer com que o display #2 v para o canal especificado. Aceita valores na faixa 0 a 99. Essa varivel contm o canal do display #3 presente no momento. Quando o usurio muda o canal pelo teclado, a varivel transmite essa informao para o programa. No sentido inverso, um valor lanado nessa varivel usando a instruo `FACA' ir fazer com que o display #3 v para o canal especificado. Aceita valores na faixa 0 a 99.

WW2

WW3

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

180

2.6.3.7 - Rede de comunicao Esse sub-grupo de variveis fornece informaes dinmicas sobre os processos de comunicao. CFIC Contador do nmero de vezes que a ficha foi passada para o CP. Esta varivel usada para avaliar o desempenho da rede, alarmes, etc. Pode ser zerada ou presetada pelo programa do usurio, sendo incrementada cada vez que a ficha recebida pelo CP. Assume valores na faixa 0 a 65535.

EER1/EER2 Endereo do equipamento na rede BCM2. Disponveis para os canais seriais 1 e 2. EUR1/EUR2 Endereo do ltimo equipamento na rede BCM2. Disponveis para os canais seriais 1 e 2. NFIC Contador do nmero de vezes que a ficha foi criada pelo CP. Em conjunto com CFIC, esta varivel usada para avaliar o desempenho da rede, alarmes, etc. Pode ser zerada ou presetada pelo programa do usurio, sendo incrementada cada vez que o CP cria uma ficha na rede. Assume valores na faixa 0 a 65535.

NTAR Nmero de tarefas de comunicao agendadas e ainda no concludas. O sistema possui capacidade para suportar at quatro operaes pendentes, agendadas simultaneamente. Assume valores na faixa 0 a 4. TCPAT Disponvel somente para o GP3101, controla o disparo da conexo TCP ativa conforme descrito abaixo: TCPAT = 0 -> conexo passiva TCPAT = 1 -> dispara conexo ativa TCPAT = 2 -> tentando estabelecer conexo ativa TCPAT = 3 -> conexo ativa estabelecida TEM1/TEM2 Tempo de espera gerado antes do envio de cada mensagem na rede BCM2. Em centsimos de segundo.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

181

TOC1/TOC2 - Tempo de time-out entre caracteres para descartar uma mensagem em curso na rede BCM 2para considerar que o destino no respondeu a uma solicitao na rede BCM 2. Em centsimos de segundo. TOR1/TOR2 - Tempo de time-out para considerar que o destino no respondeu a uma solicitao na rede BCM 2. Em centsimos de segundo. TOF1/TOF2 - Tempo de time-out para recriar a ficha na rede BCM2. Em centsimos de segundo.

2.6.3.8 - Medio de Tempo de Varredura TVARR - A medio do tempo de varredura do Sistema operacional do controlador programvel est disponvel nessa varivel. O valor desta varivel igual ao maior tempo de varredura ocorrido (em centsimos de segundo). UVARR - O tempo de varredura do Sistema operacional do controlador programvel, atualizado a cada ciclo est disponvel nessa varivel. expresso em ms/5. (Vlido somente para o GP3101 e CPU8)

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

182

2.7 - REGRAS ESPECIAIS DE PROCESSAMENTO ARITMTICO


Como foi visto nos captulos anteriores, as variveis do sistema operacional podem assumir valores inteiros, positivos e dentro da faixa 0 a 65535 (A menos das limitaes nas variveis de atribuio fixa). Quando o resultado de uma operao extrapola esses limites, as seguintes regras so aplicveis: Operao resulta em valor negativo ==> A varivel de sada assume o valor algbrico do resultado mais 65536. EXEMPLO: FACA ARE=1 FACA ASA=ARE-3

;=> RESULTADO: ASA=(-2)+65536=65534

O resultado excede a faixa permitida ==> A varivel de sada assume o resultado algbrico menos 65536. EXEMPLO: FACA ARE=65000 FACA ASA=ARE+600 ;=>RESULTADO: ASA=65600-65536=64

A operao prevista produz um resultado fracionrio ==> A varivel de sada assume a parte inteira do resultado, desprezando a parte fracionria. EXEMPLO: FACA ARE=20 FACA ASA=ARE/3

=======> RESULTADO: ASA=6

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

183

2.8 - COMO O PROGRAMA EXECUTADO / CICLO DE VARREDURA


A execuo do programa do usurio no Controlador Programvel BCM est relacionada diretamente ao conceito de Ciclo de Varredura. Em cada Ciclo de Varredura, o sistema operacional acompanha o estado dos dispositivos de entrada e sada, executa rotinas operacionais especficas e atende as operaes solicitadas pelo programa. Ao final de um Ciclo, o microprocessador envia um pulso de controle ao circuito de Watchdog, voltando ao incio e repetindo-o indefinidamente. A composio do ciclo de varredura apresentada vlida para os Controladores Programveis BCM1086A, BCM1088, BCM2085B e GP3000. O diagrama a seguir apresenta as tarefas tpicas de um Ciclo de Varredura, mostrando a ordem na qual as operaes so efetuadas:
Inicializao de variveis, dos perifricos e diagnsticos iniciais

Execuo das rotinas operacionais dos mdulos (Display, ANA, CTR, relgio, etc..) que estiverem habilitados, inclundo leitura de entradas digitais/analgicas {1}

Executa o(s) Bloco de Funo em linguagem C

Acionamento de sadas digitais a partir do buffer e a partir do comando SAIDA (a partir do segundo ciclo)
Tratamento da Linguagem Descritiva

Identifica o estado corrente para a malha 0

Executa todas as instrues relativas ao estado corrente, na ordem em que aparecem no programa

Identifica o estado corrente para a malha 1

Executa todas as instrues relativas ao estado corrente, na ordem em que aparecem no programa{2}{3}

Repete o processo para as malhas seguintes, at a ltima{4}

Executa o tratamento da entrada GPS (somente CPU8)

Executa o(s) mdulos em lingugem ST e Ladder{5}

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

184

Observaes: {1} - O tratamento de cada tipo de perifrico tem caractersticas prprias relacionadas a velocidade e convenincia do processo: DISPLAY BCM700: O sistema atende quatro unidades de display/teclado. Em cada passagem pela rotina operacional, uma unidade atendida. Portanto, a renovao de valores e o reconhecimento do teclado por unidade feita uma vez a cada quatro Ciclos de Varredura. DISPLAY DPA: Em cada ciclo de varredura o display alfanumrico atualizado e o teclado lido. ESA: A cada passagem pela rotina, uma entrada e uma sada analgica so processadas em cada placa. (O nmero de placas usado definido no programa). Assim, a leitura de uma entrada analgica especfica feita sempre uma vez a cada oito Ciclos de Varredura. IFT: A cada passagem pela rotina, um mdulo atendido. O atendimento consiste em verificar o final de converso de um canal, recolher o valor e partir a converso do canal seguinte. Como o tempo de aquisio por canal longo (aprox. 300 ms), o mtodo de varredura no influi no processo. BCD: A cada passagem pela rotina, uma chave BCD processada. Como possvel instalar at 16 grupos de duas chaves no controlador, a renovao da leitura de cada grupo feita a cada 32 Ciclos de Varredura. CTR: A forma de processamento depende do comando de configurao usado. Com "CTR=x", uma placa atendida a cada passagem, exigindo 'x` Ciclos para renovao do valor de contagem. Com "CTR=x", todas as placas so atendidas em cada passagem, fazendo com que todos os valores sejam renovados no tempo de um Ciclo de Varredura. PAN : A cada passagem, uma varivel 'Vxx` atualizada, correspondendo a 16 leds. Conforme o comando de configurao, "PAN=1" ou "PAN=2", a renovao completa do painel de leds feita a cada 8 ou 16 Ciclos de Varredura.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

185

{2} - Devido aos flags especficos usados pelas instrues "FACA" e "IMPRIME", essas so executadas apenas uma vez por entrada no estado corrente, permanecendo inibidas nos Ciclos de Varredura seguintes.

{3} - A instruo "SE" com transio vlida, provoca a mudana do estado corrente. Essa mudana, no entanto, s afetar a execuo das instrues no Ciclo de Varredura seguinte. As instrues contidas nas linhas subsequentes a linha "SE" que provocou a transio sero executadas. Essa caracterstica ser melhor detalhada no item 2.9 Prioridades nas operaes.

{4} - O nmero "N" de malhas que sero atendidas corresponde nmero de malhas citadas no programa do usurio.

ao

{5} - Somente os controladores BCM2085B/CPU8 e GP3101 apresentam esse recurso.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

186

2.9 - PRIORIDADE NAS OPERAES


Devido ao fato que a linguagem BCM est apoiada nos conceitos bsicos de ESTADO e TRANSIO, no sendo similar as linguagens tradicionais de execuo seqencial, a anlise de prioridade nas operaes possui caractersticas prprias na linguagem BCM, conforme ser apresentado. Nos Controladores Programveis, a seqncia de operaes determinada basicamente pelo fluxo dos ESTADOS. As condies de transio definem qual ser o estado seguinte, cujas operaes sero executadas a seguir, independentemente de seu posicionamento no programa fonte. Desta forma, a numerao dos estados e a distribuio destes no programa no tem qualquer influncia na seqncia de processamento. Por exemplo, as sequncias: ESTADO 7: LIGA 2,3 SE INI= 1 ENTAO 8 SE ATRASO = 20 ENTAO 10 ESTADO 8: DESL 1 VA PARA 0 ESTADO 10: LIGA 4,5,6 VA PARA 0 ESTADO 8: DESL 1 VA PARA 0 ESTADO 10: LIGA 4,5,6 VA PARA 0 ESTADO 7: LIGA 2,3 SE INI=1 ENTAO 8 SE ATRASO=20 ENTAO 10

So executadas exatamente da mesma maneira. Do ESTADO corrente 7, podese passar ao ESTADO 8 ou 10 conforme as condies. Nesses ESTADOS sero efetuadas as operaes especificadas e o programa seguir conforme as transies. Quando so consideradas as operaes dentro do estado, o comportamento de programa pode ser dependente da ordem em que as linhas so editadas. Os casos tpicos so descritos a seguir:

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

187

CASO A: Instruo `SE' concorrentes Exemplo de referncia : 100 ESTADO 5: 110 SE INI=1 ENTAO 2 120 SE ROT=1 ENTAO 3 No caso das condies "INI=1" e "ROT=1" estarem vlidas , quando a mquina entra no estado 5, o sistema analisa a linha 110 e muda para o ESTADO 2. No entanto o sistema continua com a linha 120. Como a condio tambm ser vlida, o ESTADO 3 ser ativado. Por isso pode-se definir a seguinte regra de prioridade para o caso de instrues "SE" concorrentes: - No caso de duas ou mais linhas "SE" com condies de transio simultaneamente vlidas, o prximo ESTADO corrente ser aquele indicado pela ltima linha na edio. CASO B: Instruo 'SE' concorrente com 'VA PARA' Exemplo de referncia 100 ESTADO 5: 110 SE INI=1 ENTAO 2 120 VA PARA 7 Nesse caso, ao entrar no ESTADO 5, o sistema testa a condio da linha 110. Se for vlida, a mquina ir para o estado 2 e a operao `VA PARA' da linha 120 ser inibida por um flag especfico. Se `INI' for diferente de 1, a condio 110 no ser satisfeita e a mquina ir para o ESTADO 7 imediatamente. Essa regra permite a implantao eficiente da condio "caso contrrio": Um grupo de linhas `SE' executa as transies caso as condies especficas estejam satisfeitas; no caso de no ocorrer nenhuma transio, a instruo `VA PARA' envia a mquina para um estado alternativo.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

188

Exemplo:

Soluo 1: ESTADO 7: SE INI = 1 ENTAO 8 SE TPR = 1 ENTAO 9 SE INI = 0 OU TPR=0 ENTAO 10

Soluo 2: ESTADO 7: SE INI= 1 ENTAO 8 SE TPR= 1 ENTAO 9 VA PARA 10

As duas solues so funcionalmente idnticas em qualquer programa. A soluo `2' no entanto, aproveitando a propriedade "caso contrrio" da instruo `VA PARA' implementa a lgica com mais clareza, menor ocupao de memria e mais velocidade.

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

189

No exemplo a seguir, a lgica exige que, conforme a combinao de duas variveis digitais, a mquina v para um entre trs estados: Soluo 1: ESTADO 7: SE INI=0 E TPR=0 ENTAO 8 SE INI=0 E TPR=1 ENTAO 9 SE INI=1 E TPR=0 ENTAO 10 SE INI=1 E TPR=1 ENTAO 10 Soluo 2: ESTADO 7: SE INI=0 ENTAO 9 SE INI=0 E TPR=0 ENTAO 8 VA PARA 10

Combinando as regras vistas nos casos `a' e `b', usando uma eficiente anlise de propriedades, a soluo 2 permite diminuir o nmero de testes a serem feitos, melhorando o desempenho em ocupao de memria e velocidade. Caso C: Prioridade na instruo 'FACA' Exemplo de referncia: 100 ESTADO 5: 110 FACA* ABB = 3 E ASD = 7 E TOTAL= ABB + ASD 120 FACA* TXD = 4 E TXD= 5 130 VA PARA 6 No caso de vrias linhas com operaes aritmticas, as operaes sero executadas rigorosamente na ordem em que forem editadas. Da mesma forma, vrias operaes na mesma linha so completadas sempre na ordem de edio. Na linha 110 do exemplo, a varivel 'TOTAL' assume o valor 10, reconhecendo as operaes anteriormente realizadas sobre `ABB' e `ASD'. Na linha 120, provavelmente devido a um erro de edio, dois valores diferentes foram atribudos a uma mesma varivel. Nesse caso, a varivel `TXD' assumir o valor 5 (ltima operao).

Verso 2009-1

Referncia: 31940092-8

BCM Automao

Linguagem Descritiva BCM

190

Caso D: Atuao das instrues LIGA e DESL Exemplo de referncia: 100 MAQUINA 0: 110 ESTADO 1: 120 LIGA 3 DESL 5 130 SE INI=1 ENTAO 2 140 ESTADO 2 150 LIGA 4 . . . . . . 300 MAQUINA 1: 310 ESTADO 0: 320 DESL 4 Ao encontrar uma instruo LIGA/DESL no estado corrente, o sistema aciona ou desaciona imediatamente todas as sadas digitais envolvidas, independentemente da ordem de edio ou do nmero de linhas. A atuao sobre todas as sadas quase simultnea (diferenas de microsegundos); esse caso das sadas 3 e 5 na linha 120. Na mquina 0, ao se cumprir a condio `INI=1', o sistema passa ao estado 2, no qual a sada digital 4 dever ser acionada (linha 150). A mquina 1, no entanto, est mandando desligar a sada 4 ao mesmo tempo. Configura-se nesse caso um conflito de sadas que deve ser sempre evitado no desenvolvimento da lgica. A sada ou sadas em conflito assumem uma situao imprevisvel, podendo ficar ligadas, desligadas ou oscilar aleatoriamente, ocasionando o funcionamento deficiente do equipamento.

Verso 2009-1

Referncia: 31940092-8