Home

Uma Arquitetura de Interoperabilidade para as Linguagens da

image

Contents

1. 39 Figura 4 7 Equivalente Th venin de Circuito El trico 39 Figura 4 8 Equivalente Th venin de Express o L gica ceeeeeeeeeeeeeeeeeeeeeeeeeeaeee 39 Figura 4 9 Comando IF em ST e LD essi ass eeisdisuiedosapraninosrbii as iai postaram 40 Figura 4 10 Chamada de Bloco de Fun o em FBD e ST 41 Figura 4 11 Blocos FBD com Entrada Habilita a 41 Figura 4 12 Contatos e Bobinas em LD e FBD ae 42 Figura 4 13 Nomes das Entradas e Sa das dos Blocos ssssssssssesirreeesrrrreerrrreesrrrene 42 Figura 4 14 N mero de Ocorr ncia dos Blocos emana 43 Figura 4 15 Exemplo de LD com dois blocos TEE 44 Figura 4 16 Exemplo de FBD com Dois Blocos TEE as 44 Figura 4 17 Representa o Textual do EBD anamaria et atacada srt ackanctates 45 Figura 4 18 Inst ncia de Bloco esiathcdehesincd steers cheated anchybaheheeadcl oud inh dhutcaieiabss 45 viii Figura 4 10 Conexao de Bloco sra si ued tenis a a Sa Sd 46 Figura 5 1 Categorias de Vari veis em CLPScript ie 51 Figura 5 2 Declara o de Fun o em CLP Script ae 52 Figura 5 3 Declara o de Programa em CLPScript ie 52 Figura 5 4 Comando IF em CLPScript e iceraaaeeeaaaenanas 57 Figura 5 5 Comando CASE em CLPScript ice 57 Figura 5 6 Comando WHILE em CLPS
2. BOB Bobina simples ED SLT Bobina de salto S MOV Movimenta o de operandos simples MOV MOP Movimenta o de partes de operandos MOP MOT Movimenta o de tabela de operandos MOT SOM Soma SOM SUB Subtra o SUB MUL Multiplica o MUL DIV Divis o DIV AND Fun o e bin rio entre operandos AND OR Fun o ou bin rio entre operandos OR XOR Fun o ou exclusivo bin rio entre operandos XOR CAR Carrega operando CAR IGU Igual MEN Menor lt lt MAI Maior sS CHF Chama M dulo Fun o CHF LGH Liga o horizontal a LGV Liga o vertical SEn Tabela 8 1 Instru es de CPs Altus Cada uma destas instru es ocupa uma quantidade determinada de linhas e colunas e possui uma quantidade determinada de operandos parametriz veis e de entradas e sa das Esta informa o essencial no momento da gera o do c digo assembly da linguagem LD ALT98b Os operandos identificam diversos tipos de vari veis e constantes utilizadas na elabora o de um programa aplicativo podendo ter seu valor modificado de acordo com a programa o realizada A Tabela 8 2 mostra os tipos de operandos existentes em CPs da Altus 92 Tipo Operando Tamanho em Bytes WE Rel s de Entrada 1 S Rel s de Saida 1 PR Endere o no Barramento 1 WA Rel s Auxiliares 1 M Mem rias 2 D Decimais 4 F Reais 4 KM
3. IF1 FOR LINRZA Figura 8 16 L gicas 002 e 003 do M dulo P Exemp2 021 A Figura 8 17 mostra a tela de configura o dos par metros de entrada e sa da da instru o CHF no MasterTool No caso est sendo mostrado o operando de acesso indexado M0010 F que significa que na instru o ser utilizado o operando F determinado pelo conte do do operando M0010 109 CHF Parametros de Entrada Operandos mooo ZKM 00001 ZKM 00001 Figura 8 17 Par metros de Entrada da Instru o CHF L gica 004 IF1_FOR Figura 8 18 L gicas 004 e 005 do M dulo P Exemp2 021 110 A Figura 8 18 mostra as l gicas que acumulam dentro do FOR o valor de retorno da fun o linrza na vari vel acum alocada no operando F0014 A Figura 8 19 mostra o incremento da vari vel de 7 de controle do FOR e o salto negativo de 5 l gicas recaindo no in cio do FOR feito atrav s da instru o bobina de salto S dos CPs Altus L gica 006 IF1_FOR KM 00005 Figura 8 19 L gicas 006 e 007 do M dulo P Exemp2 021 A Figura 8 20 mostra as l gicas fazem a divis o do total acumulado para obter o valor m dio desejado na vari vel media L gica 008 DI ACUM Bos OUT Sok M 00020 oM0000 Figura 8 20 L gicas 008 e 009 do M dulo P Exemp2 021 111 8 6 Conclus o Este cap
4. Os Blocos tags BlocoNNN tamb m precisam de operandos alocados para suas sa das A arquitetura XML utiliza blocos de duas entradas e apenas uma sa da logo apenas um operando deve ser alocado a cada bloco O tipo deste operando pode variar conforme o bloco ou conforme os operandos de suas entradas conforme mostra a Tabela 8 4 Por exemplo um bloco ADD com uma entrada do tipo INT e outra REAL vai ter uma sa da do tipo REAL Blocos do XML Tipo Alocado para a Sa da EQ GT GE LE LT NE BOOL AND OR XOR BOOL ADD SUB MUL DIV EXPT Depende das entradas CHF Definido no XML Tabela 8 4 Aloca o de Operandos para Sa da de Blocos 8 3 2 2 Gerando as Instru es Cada atributo instr da tag BlocoNNN gera no arquivo ProLD uma ou mais instru es LD Altus de fun o equivalente conforme resumido a seguir e ADD SUB MUL DIV correspondem diretamente a instru es Altus 96 EQ GT GE LT LE e NE correspondem a v rias instru es Altus conforme mostra a Figura 8 3 AND OR XOR correspondem s instru es Altus conforme mostra a Figura 8 4 CHF corresponde diretamente a instru o CHF AR EQ M0001 SK M 00035 AR gt GT M0001 HKM 00035 GE AR z LT M0001 o6KM 00035 LE NE Figura 8 3 Instru es EQ GT GE LT LE e NE 97 A0001 3 A0001 4 AND j A0001 3 OR A0001 4
5. Figura 3 8 Linguagem VHDL Em VHDL uma entidade qualquer componente VHDL que tenha um conjunto de portas de comunica o com outras entidades e uma arquitetura um conjunto de primitivas VHDL que fazem a efetiva descri o do hardware A Figura 3 8 mostra uma descri o VHDL do inversor da Figura 3 7 As palavras reservadas est o em negrito A entidade inversor definida a partir de entity como uma porta de uma entrada e uma sa da O comportamento do inversor definido a partir 2 da palavra reservada architeture e o s mbolo lt utilizado com a sem ntica de atribui o 29 A linguagem VHDL descreve de forma textual os blocos gr ficos e as conex es dos circuitos digitais Pode se fazer uma analogia desta representa o com os blocos de fun o e suas conex es da linguagem FBD Os dois exemplos a seguir visam mostrar a maneira que o VHDL descreve textualmente estes blocos e conex es Os exemplos foram implementados com o software MAX PLUS II ALT97 da Altera O software gerao VHDL automaticamente a partir de um diagrama l gico correto 3 3 1 VHDL de Portas L gicas AND OR XOR e NOT A Figura 3 9 mostra um diagrama l gico com duas portas AND uma OR uma XOR e uma porta NOT e as conex es entre elas A pergunta relevante aqui como o VHDL representa este diagrama e as conex es atrav s de uma linguagem textual Figura 3 9 Diagrama L gico com Portas AND OR XOR e NOT
6. o prematuramente atrav s do comando EXIT Este comando s pode ser usado dentro do la o da itera o 5 6 7 1 Comando WHILE O comando WHILE mostrado na Figura 5 6 executa o bloco de comandos enquanto express o de avalia o lt express o booleana gt for verdadeira O comando WHILE sempre testa a fun o de avalia o antes de executar o bloco Assim se na primeira itera o o teste resultar em falso o bloco de afirma es n o ser executado 57 WHILE lt express o booleana gt DO lt afirma es gt END WHILE Figura 5 6 Comando WHILE em CLPScript 5 6 7 2 Comando REPEAT O comando REPEAT mostrado na Figura 5 7 executa o bloco de comandos at que a express o de avalia o lt express o booleana gt seja verdadeira Diferente do comando WHILE o comando REPEAT executa primeiro o bloco de afirma es e depois testa a express o de avalia o Assim o bloco de afirma es executado pelo menos uma vez REPEAT lt afirma es gt UNTIL lt express o booleana gt END REPEAT Figura 5 7 Comando REPEAT em CLPScript 5 6 7 3 Comando FOR O comando FOR mostrado na Figura 5 8 permite executar um bloco de afirma es repetidas vezes O n mero de repeti es controlado por uma lt vari vel controle gt Esta vari vel deve ser do tipo SINT ou INT e n o pode ser um operando do CP FOR vari vel controle gt lt expr_inicial gt TO lt expr final gt BY lt expr in
7. 23k 7 ChamadaFuncao IDArray Express o ID Express o Express o 9 ID Express o Express o Express o Operator Express o lt gt gt gt e lt AND OR XOR ID cte ChamadaFuncao IDArray Express o Tabela 7 5 BNF de Express es da CLPScript 7 2 4 Statements A Tabela 7 6 mostra a BNF de Statements da CLPScript Statement ComandoAtribuicao Comandolf ComandoReturn ComandoFor ComandoExit ComandoChamadaFuncao Statements ed Statement Statement ComandoAtribuicao EH ID IDArray Express o Comandolf IF Express o THEN Statements ELSE Statements END IF ComandoReturn Es RETURN ComandoFor FOR ID Express o TO Express o DO Statements END_FOR ComandoExit JEXIT ComandoChamadaFuncao ChamadaFuncao 3 Tabela 7 6 BNF de Statements da CLPScript 87 7 2 5 Simbologia Utilizada A Tabela 7 7 mostra a simbologia utilizada na descri o da BNF da linguagem CLPScript Simbolo Significado Barra vertical I Significa ou Par nteses e Usados para agrupar express es Asterisco Colchetes e Significa zero ou mais ocorr ncias Significam zero ou uma ocorr ncia conforme 2 norma IEC 1131 3 p gina 269 Significa produ o Sem negrito S mbolos n o terminai
8. e o ILA n o tem convers o de tipos nem expl cita atrav s de rotinas de convers o e nem impl cita coer o e o ILA um interpretador e para no primeiro erro que encontra CLPStoXML por ser um compilador n o deve para no 1 erro tenta se recuperar e continuar compilando e o ILA processa as fun es a medida em que s o chamadas O CLPStoXML deve processa las na ordem que se encontram no fonte e o ILA n o gera c digo ele executa o c digo e armazena os valores das vari veis O CLPStoXML gera o c digo XML LL uma classe de gram tica de linguagens que permite a utiliza o de parsers top down sem a necessidade de backtracking O primeiro L refere se a busca da esquerda para a direita e o segundo L refere se a deriva o mais a esquerda Normalmente referenciada na forma LL k onde k o n mero de tokens look ahead necess rios na an lise de uma senten a da linguagem MUC97 80 7 1 1 As Fun es Pr Definidas do CLPStoXML Dentre as fun es pr definidas especificadas na norma IEC 1131 3 as listadas a seguir foram implementadas no CLPStoXML e ABS e COS e INT TO DINT e SQRT e TAN e DINT TO REAL e LN e ASIN e DINT_TO_INT e LOG e ACOS e REAL TO INT e EXP e ATAN e REAL TO DINT e SIN e INT TO REAL O compilador CLPStoXML faz a verifica o de quantidade de par metros e tipo de cada um nas chamadas de fun o tanto para as fun es pr definidas quanto para as criadas pelo
9. http www2 informatik uni erlangen de DiaGen SIPN Ultimo acesso Setembro 2003 Spinellis Diomidis Notable design patterns for domain specific languages 121 University of the Aegean 2000 STROO Stroustrup Bjarne The C Programming Language Special Edition AT amp T 2000 TITO2 Tittel Ed XML The McGraw Hill Companies Inc 2002 TOU97 Tourlas Konstantinos An Assessment of the IEC 1131 3 Standard on Languages for Programmable Controllers SafeComp 97 1997 TOUOO Tourlas Konstantinos Diagrammatic Representations in Domain Specific Languages University of Edinburgh 2000 WEB02 Weber Michael Kindler Ekkard The Petri Net Markup Language Technische Universitat M nchen 2002 WYK00 Wyk Eric Van Domain Specific Meta Languages ACM Oxford University Computing Laboratory 2000 122
10. ATTLIST ARQ nome CDATA REQUIRED gt lt ENTITY tiposIEC BOOL BYTE WORD DWORD SINT USINT INT UINT DINT UDINT REAL gt lt ELEMENT FUNCTION ANY gt lt ATTLIST FUNCTION nome CDATA REQUIRED type tiposIEC REQUIRED gt lt ENTITY atribsVAR nome CDATA REQUIRED type CDATA REQUIRED at CDATA IMPLIED atrib CONSTANT RETAIN IMPLIED ws lt ELEMENT VAR PCDATA gt lt ATTLIST VAR atribsVAR gt lt ELEMENT VAR_INPUT PCDATA gt lt ATTLIST VAR INPUT atribsV AR gt lt ELEMENT VAR_GLOBAL PCDATA gt lt ATTLIST VAR OUTPPUT GatribsVAR gt lt ELEMENT IF ANY gt lt ELEMENT THEN ANY gt lt ELEMENT ELSE ANY gt lt ELEMENT ATRIBUICAO ANY gt lt ELEMENT PROGRAM ANY gt lt ATTLIST PROGRAM nome CDATA REQUIRED gt lt ELEMENT CASE ANY gt lt ELEMENT OF ANY gt lt ATTLIST OF valor CDATA REQUIRED gt lt ELEMENT REPEAT ANY gt lt ELEMENT UNTIL ANY gt lt ELEMENT WHILE ANY gt lt ELEMENT DO ANY gt Figura 6 24 DTD da Arquitetura XML 1 parte A sintaxe desta DTD foi verificada com 0 parser MSXML da Microsoft disponivel no browser Internet Explorer a partir da vers o 5 Para executar estes testes foram utilizados os arquivos da arquitetura XML gerados pelos exemplos descritos no Capitulo 8 Estudo de Caso 76 lt ELEMENT FOR ANY gt lt ATTLIST FOR var CDATA REQUIRED to CDATA REQUIRED gt lt ELEMENT RETURN EMPTY gt lt
11. O programa VHDL correspondente ao diagrama da Figura 3 9 gerado pelo MAX PLUS II ALT97 mostrado na Figura 3 10 ARCHITECTURE bdf type OF exemplo01 IS signal SYNTHESIZED WIRE 0 STD LOGIC signal SYNTHESIZED WIRE 1 STD LOGIC signal SYNTHESIZED WIRE 5 STD LOGIC signal SYNTHESIZED WIRE 3 STD LOGIC BEGIN SYNTHESIZED WIRE 0 lt in_2 AND in_1 AND in_0 SYNTHESIZED_WIRE_5 lt in_3 AND in_4 SYNTHESIZED WIRE 3 lt SYNTHESIZED_WIRE_0 OR SYNTHESIZED_WIRE_1 SYNTHESIZED_WIRE_1 lt NOT SYNTHESIZED_WIRE_5 out O lt SYNTHESIZED WIRE 3 XOR SYNTHESIZED_WIRE_5 END Figura 3 10 VHDL do Diagrama de Portas L gicas 30 Observa se a partir da Figura 3 10 que o programa VHDL n o instancia as cinco portas ou blocos utilizados no diagrama gr fico mas sim a fia o ou conex es atrav s da palavra reservada signal S o criadas as conex es WIRE 0 WIRE 5 WIRE 1 e WIRE 3 conforme mostra a Figura 3 11 in 3 in 4 Figura 3 11 Conex es Criadas no VHDL Cada um destas conex es possui uma linha no VHDL da Figura 3 10 onde seu valor atribu do no escopo do BEGIN e END A ltima linha a atribui o do valor da sa da out 1 Observa se que a refer ncia s portas ou blocos feita nestas express es de atribui o No diagrama original existem cinco portas l gicas esperava se encontrar cinco refer ncias s mesmas no VHDL mas isto n o acontece O que acontece que as conex es que s
12. Ultimo acesso Setembro 2003 119 EXP98 FES00 FIT81 FREO1 FRO97 GEOO0 GRUO1 HANO3 HAR99 HAY73 HOLO1 TEC93 ILA91 INT96 KAI99 KRU97 LEI99 LEV92 Expat Expat XML Parser Toolkit Disponivel em http www jclark com xml expat html Ultimo acesso Janeiro 2004 Festo Automa o LTDA Introdu o a Controladores L gicos Program veis Festo Didatic Brasil 2000 Fitzgerald Arthur Eugene Higginbotham David E Grabel Arvin Engenharia El trica McGraw Hill 1981 Frey Georg Minas Mark Internet based Development of Logic Controllers Using Signal Interpreted Petri Nets and IEC 61131 Universitat Kaiserlautern Alemanha 2001 Fromherz Markus Gupta Vineet Saraswat Vijay cc A Generic Framework for Domain Specific Languages POPL 97 Paris 1997 Georgini Marcelo Automacdo Aplicada rica S o Paulo 2000 Grune Dick Bal Henri E Jacobs Ceriel J H Langendoen Koen G Projeto Moderno de Compiladores Editora Campus Rio de Janeiro 2001 Hansen Roseli P GlueScript Uma linguagem espec fica de Dom nio para composi o de Web Services Disserta o de Mestrado Universidade do Vale do Rio dos Sinos Fevereiro 2003 Harold Elliotte Rusty XML Bible ADG Books Worldwide Inc Foster City 1999 Hayt William H Kemmerly Jack E An lise de Circuitos em Engenharia McGraw Hill 1973 Holzner Ste
13. bem definidas formando um algoritmo seqiiencial de controle A Figura 2 13 mostra um esbo o de programa em SFC Transition 1 Transition 2 Figura 2 13 Exemplo de SFC 19 Enquanto a SFC define os blocos de controle e a forma que est o interconectados qualquer outra das 4 linguagens pode ser utilizada para codificar as a es associadas a cada passo e as condi es de cada transi o 2 4 Conclus o Este cap tulo apresentou uma revis o bibliogr fica sobre linguagens espec ficas de dom nio uma introdu o aos principais conceitos do XML e uma vis o geral da norma IEC 1131 3 Foram apresentadas no es b sicas da linguagem XML que ser o importantes no desenvolvimento do trabalho podendo se citar os conceitos de tags e atributos a diferen a entre um documento bem formado e um documento v lido as DTDs e principalmente a caracter stica de ser uma linguagem extens vel onde n s mesmos podemos criar nossos pr prios tags A norma IEC 1131 3 IEC93 surgiu com o objetivo de padronizar a rea de linguagens de programa o para controladores program veis Foram apresentadas as 5 linguagens da norma os pontos em comum as caracter sticas de cada uma e aplica es apropriadas Os conceitos de linguagens espec ficas de dom nio foram aproveitados na defini o das linguagens CLPScript e ProLD criadas neste trabalho O XML aparece no centro da arquitetura proposta no Cap tulo 6 e a
14. e permite projeto de software estruturado e facilidades de reutiliza o de c digo e manuten o e permite desenvolvimento independente de fabricante Das cinco linguagens definidas duas s o gr ficas Ladder Diagram LD e Function Block Diagram FBD duas s o textuais Instruction List IL e Structured Text ST e uma quinta serve como base de organiza o para as demais Seguential Function Chart SFC 1 2 Motiva o e Contexto do Trabalho A IEC 1131 3 uma norma internacional que padroniza as linguagens de programa o para controladores program veis na rea de automa o industrial Definindo um conjunto de linguagens gr ficas e textuais correlacionadas traz diversos benef cios para todas os envolvidos sejam engenheiros integradores t cnicos operadores ou pessoal de manuten o A norma marca o in cio do uso de programas bem estruturados reutiliz veis e de f cil manuten o na rea de controle de processo industrial As empresas fabricantes de software e hardware precisam se adaptar a norma para que possam ser competitivas neste mercado e muitas ainda n o o fizeram completamente Dentro deste contexto o trabalho foi desenvolvido 1 3 Problema A norma IEC 1131 3 surgiu com o objetivo de padroniza o dos programas aplicativo dos controladores program veis Ela especifica 5 linguagens de programa o sendo que os programas podem ser escritos na linguagem que o projetista achar mais adequad
15. o Petri Net Markup Language PNML que se encontra em defini o WEBO2 25 O PNML uma proposta de um formato de trocas baseado em XML para Redes de Petri um formato aberto que distingue as diferentes caracter sticas de todos os tipos de Redes de Petri e tamb m caracter sticas espec ficas de tipos especiais de redes A Figura 3 5 mostra um exemplo de uma rede SIPN com uma posi o uma transi o e um arco e o XML de armazenamento correspondente em PNML lt place id p1 gt lt name gt Init lt name gt p1 lt place gt lt transition id t1 gt lt name gt start lt name gt lt transition gt t1 lt arc id al source p1 target t1 gt lt are gt Figura 3 5 Um exemplo de PNML 3 2 PLCOpen PLCopen PLC92 uma associa o mundial n o vinculada a fabricantes ou produtos que visa resolver t picos relacionados com programas de controle e normas internacionais na rea de automa o industrial Possui v rios comit s t cnicos mas o foco principal de atua o relacionado com a norma IEC 1131 3 Possui diversos membros associados em diversos pa ses como mostra a Figura 3 6 Fundada em 1992 possui escrit rio central na Holanda e escrit rios de suporte no Canad Jap o e outros pa ses PLC92 26 ABB Sweden Altus Information Brazil Atos industrial Automation Brazil ATS International The Netherlands Baum ller Germany Beckhof
16. o modeladas e as refer ncias s portas aparecem apenas nas express es de atribui o das conex es 3 3 2 VHDL de Blocos Contador e Comparador A Figura 3 12 mostra um diagrama l gico com um bloco contador A e dois blocos comparadores B e C A sa da q do contador est conectada s entradas dataa dos comparadores D O VHDL representa de forma textual estes blocos gr ficos e esta conex o 31 Figura 3 12 Diagrama L gico de Contador e Comparadores A Figura 3 13 mostra o VHDL do diagrama l gico da Figura 3 12 O bloco contador A e os dois blocos comparador B e C s o instanciados com o comando PORT MAP A conex o entre os tr s representada pelo signal WIRE 3 D ARCHITECTURE bdf type OF exemplo02 IS signal SYNTHESIZED WIRE 0 STD LOGIC signal SYNTHESIZED WIRE 3 STD LOGIC VECTOR 6 downto 0 SYNTHESIZED WIRE 0 lt 1 b2v inst conta j PORT MAP updown gt SYNTHESIZED WIRE 0 clock gt clock q gt SYNTHESIZED WIRE 3 y b2v_inst2 compara02 PORT MAP clock gt clock dataa gt SYNTHESIZED_WIRE_3 b2v_inst3 compara_01 PORT MAP dataa gt SYNTHESIZED WIRE 3 3 Figura 3 13 VHDL do Diagrama L gico de Contador e Comparadores 32 3 4 Uma Avalia o das Linguagens da IEC 1131 3 Em TOU97 Konstantinos Tourlas faz uma avalia o das linguagens FBD e ST da norma IEC 1131 3 considerando os blocos de fun o e identificando alguns problemas na
17. tulo apresentou um estudo de caso onde programas CLPScript armazenados na arquitetura XML foram convertidos para a linguagem LD dos controladores program veis da Altus S A Para realizar esta convers o foi desenvolvido o programa XMLtoLD em Visual C 6 0 Este programa l um arquivo XML utilizando um parser XML bem conhecido e de dom nio p blico o parser expat O programa identifica as tags e atributos da arquitetura XML faz a convers o para diagrama LD e grava um novo arquivo no formato Altus O XMLtoLD tamb m se mostrou bastante complexo de ser implementado pois demandou o conhecimento do assembly do microcontrolador 80C251 e do formato interno das instru es LD dos controladores program veis Altus Ap s o LD ser gerado pelo XMLtoLD ele pode ser visualizado pelo software programador MasterTool da Altus Pode inclusive ser editado ou at mesmo executado em um controlador program vel Ap s ter sido gerado n o h como distinguir se foi criado pelo MasterTool ou pelo XMLtoLD O XMLtoLD foi desenvolvido especificamente para o Altus para ser usado como prova de conceito A partir do XML cada fabricante respons vel por gerar seu pr prio XMLtoLD 112 9 Conclusoes e Trabalhos Futuros 9 1 Conclus es A norma IEC 1131 3 definiu e padronizou 5 linguagens de programa o para desenvolvimento de programas aplicativo de controladores program veis LD FBD ST IL e SFC Segundo a norma os programas podem ser
18. uma express o LD pode ser representada pelo seu equivalente Th venin conforme mostra a Figura 4 8 Cc x X equivalente de A OR B AND C Figura 4 8 Equivalente Th venin de Express o L gica Os comandos IF da ST s o definidos pela sintaxe IF lt express o gt THEN lt comando gt A express o l gica de todo comando IF pode ser representada pelo equivalente Th venin Os comandos de atribui o dentro de IFs podem ser representados em LD por bobinas liga ou desliga e em FBD por blocos de movimenta o 39 LD ST X A7 D if X then A7 0 Y A8 L if Y then A8 1 Figura 4 9 Comando IF em ST e LD Em LD uma bobina desliga atribui o valor O ao seu operando quando energizada e uma bobina liga atribui o valor 1 A Figura 4 9 mostra dois comandos IF em ST e seus equivalentes em LD Na primeira linha o operando A7 est sendo utilizado com uma bobina desliga e na segunda linha o operando A8 est sendo utilizado com uma bobina liga Os comandos CASE s o casos particulares do comando IF podendo ser tratados da mesma forma Os comandos FOR REPEAT e WHILE s o expandidos em comandos IF e GOTO A Tabela 4 1 exemplifica esta expans o Comando ST Exemplo em ST Expandindo em IFs IF 15 THEN CASE OF A7 A7 1 15 A7 A7 1 END IF CASE 30 A8 A8 1 IF 30 THEN END_CASE A8 A8 1 END_IF 1 INI FOR IF gt
19. 6 0 KRU97 DATOO utilizando MFC Microsoft Foundation Classes KAI99 da Microsoft 79 Foi implementado um analisador sint tico top down preditivo GRUO1 PRIO0 escrito manualmente sem usar geradores de c digo tais como lex amp yacc LEV92 por exemplo Consiste em um conjunto de rotinas recursivas onde cada rotina corresponde a uma regra na gram tica da linguagem Tal analisador chamado analisador descendente recursivo e funciona com gram ticas LLU GRUO1 O CLPStoXML foi escrito baseado no c digo fonte de outro software o ILA Interpretador de Linguagem Algoritmica ILA91 o Projeto ILA foi desenvolvido na Universidade do Vale do Rio dos Sinos sob orienta o do Prof Dr S rgio Crespo como uma alternativa de minimizar problemas de constru o de algoritmos ILA n o propriamente um ambiente mas sim um interpretador pequeno e vers til que permite o teste e execu o de algoritmos em um portugu s estruturado ILA91 O ILA vers o 1 01 est dispon vel para download a partir do site http www inf unisinos br crespo O compilador CLPStoXML possui as seguintes diferen as em rela o ao ILA e o ILA possui os tipos Num rico e Caracter enquanto que o CLPStoXML n o possui o Caracter mas possui diferentes tipos num rico tais como REAL INT SINT UINT LREAL dentre outros e faz a verifica o de tipo entre eles por ser uma linguagem fortemente tipada
20. BON97 11 e melhora a qualidade do software aplicativo utilizando se software estruturado e modernas t cnicas de programa o e aproveita t cnicas existentes agregando ferramentas de alta produtividade e redu o do tempo de treinamento teste e manuten o e uso de m dulos de software desenvolvidos por terceiros e estruturas de dados poderosas e desenvolvimento independente de fabricante 2 3 1 Elementos Comuns A norma define elementos que s o comuns s 5 linguagens padronizadas Esta se o apresenta os tipos de dados existentes as vari veis e tamb m os Program Organization Units POU Conforme a norma um POU um Programa uma Fun o ou um Bloco de Fun o LEW95 descritos mais adiante neste cap tulo A norma define uma s rie de fun es e Blocos de Fun o padronizados para tarefas t picas de controle Al m destas a norma permite que sejam criados fun es e blocos de fun o definidos pelo usu rio podendo ent o ser utilizados da mesma forma que os padronizados 2 3 1 1 Tipos de Dados A norma prove alguns tipos de dados b sicos para lidar com os valores t picos de vari veis de aplica es industriais mostrados na Tabela 2 1 Palavra Chave Descri o Bits Faixa BOOL Boolean 1 FALSE ou TRUE SINT Short integer 8 128 127 USINT Unsigned Short integer 8 0 255 INT Integer 16 32 768 32 767 UINT Unsigned integer 16 0 65 5
21. Eloa ceed E EA a TERE 89 8 1 AS FERRAMENTAS NECESS RIAS csccsssseesesseseeecsseaeeecaseaeercaseacercasaceecassaeeecasaesecaseasercaseasereate 90 8 2 A LINGUAGEM LD ALTUS eoeta oin r ee iera rio oe a EEE AEREE E EE Eo 91 8 3 O PROGRAMA XMLTOLD CONVERSOR XML PARA LD ALTUS o 93 8 3 1 M dulo 1 A Leitura do XML erare n A EE EE A AEE E E EEEE Y 94 8 3 2 M dulo 2 A gera o do ProLD iea eeii roa i ERE a aE 95 8 3 2 1 Aloca o de Operando ssar oenn e a E E ROEA dears EE pistas 95 8 3 2 2 Gerando as Instru es 8 3 2 3 Gerando os Comandos IE nsare ie an e EAEAN E eed odeved 98 8 3 3 M dulo 3 A convers o para LD sssssseesessesseseesrseeesresesresrrsreerssrrrresessresrnseseresesreerssresee 98 8 3 4 Adnterface do AMELOLD saias saite cst colar kE E tase ton song ocgaa sa mess apa O Saa 100 8 4 ESTUDO DE CASO Jenna ass transe unia saints Reg ae el a eee 101 8 5 ESTUDO DESCASO 2 i ne noire viahovdens E E E a E E Ena pie cubes woe E RE E EEE E 105 8 6 EOIN ED URIN O EAE E E E A Ei eet wae asked 112 9 CONCLUS ES E TRABALHOS FUTUROS scscssssssssssssssssessesessescscescsesucsesnsscsesesssseenesescesescanes 113 9 1 CONCLUSOES itra an ra rT E a E EE eka EE E EOE EE SE S 113 9 2 CONTRIBUI ES roar arne reaa E eaa o E E tates copies EE e EE E ETOT E EERS 117 9 3 TRABALHOS FUTUROS ssie a oroesi E anaoa EErEE E EEan rE EESE EEr EE TEES 117 BIBLIOGRAFIA Prroni EERE Sh Sows RENE E EE REN EET R 119 vii Lista d
22. Esta ferramenta SIPN Editor SIP01 foi implementada usando o DiaGen Diagram Editor Generator uma framework para gera o de editores gr ficos desenvolvido na Universit t Erlangen Niirnberg Alemanha DIAO1 A Figura 3 4 mostra o SIPN Editor que disponibilizado como um Applet Java que pode ser executado em browsers padr o de qualquer PC conectado internet 24 SIPN editor O x File Edit View Untitled 0 P1 Edit properties n Place Operations Open nested SIPN lava Applet Window Figura 3 4 A Ferramenta SIPN Editor O principal componente da ferramenta o editor gr fico que permite a cria o de redes SIPN de maneira direta As transi es e estados podem ser inseridos s partir de cones na tool bar do programa da mesma forma que os arcos de conex o As a es de cada estado e transi o podem ser inseridos atrav s da propriedade destes objetos O editor verifica a validade da rede sendo criada gerando um feedback visual em caso de erro conforme pode se observar pela cor vermelha do objeto P2 na Figura 3 4 Ap s a edi o de um programa SIPN completo o c digo IL pode ser gerado e est pronto para ser executado em qualquer CP compat vel 3 1 3 SIPNe XML A ferramenta SIPN Editor oferece uma interface baseada em XML para exportar a rede SIPN editada em um formato de trocas que pode ser utilizado por outros programas O formato selecionado
23. IEC 1131 3 define e padroniza cinco linguagens de programa o de controladores program veis e diz que os programas escritos em uma linguagem podem ser convertidos para outra mas n o diz nada sobre como fazer isto Esta disserta o apresenta a proposta de uma arquitetura XML que permite a interoperabilidade para as linguagens ST FBD e LD desta norma apresentado uma revis o bibliogr fica sobre linguagens espec ficas de dom nio conceitos de XML e uma vis o geral da norma IEC 1131 3 bem como alguns trabalhos relacionados com controladores program veis linguagem XML e linguagens de programa o da norma IEC 1131 3 feita uma compara o entre as linguagens ST LD e FBD e uma proposta de representa o textual para os diagramas gr ficos LD e FBD A linguagem CLPScript definida a partir da linguagem ST S o definidos as tags e atributos utilizadas para a representa o de diagramas LD e FBD e programas CLPScript formando a arquitetura XML proposta Foi desenvolvido o programa CLPStoXML um compilador que l um programa CLPScript e gera a arquitetura XML correspondente Como prova de conceito foi realizado um estudo de caso onde se converteram alguns programas fonte escritos em CLPScript para XML e deste XML para a linguagem LD da Altus S A uma empresa fabricante de controladores program veis Para realizar esta convers o foi desenvolvido o programa XMLtoLD especificamente para os controladores program
24. MOV 1 FBD __ A3 Figura 4 4 Comando Atribui o em ST LD e FBD Uma express o l gica em ST pode ser representada por um diagrama de contatos equivalentes em LD utilizando se os conceitos de liga o em s rie e paralelo da engenharia el trica FIT81 A express o OR corresponde a uma liga o dos contatos em paralelo e a express o AND corresponde a uma liga o em s rie Em FBD a express o l gica ST representada diretamente pelos blocos equivalentes OR e AND conforme mostra Figura 4 5 ST D A OR B AND C LD Eee Apos e C D B FBD A Figura 4 5 Express o L gica em ST LD e FBD Pode se fazer uma analogia deste tipo de express o l gica LD com um circuito el trico a barra de energiza o corresponde a fonte de alimenta o e os contatos correspondem aos resistores A Figura 4 6 mostra os contatos A Be C equivalentes aos resistores R1 R2 e R3 respectivamente 38 12 v R2 B O Figura 4 6 Analogia entre Circuito El trico e Express o L gica LD De acordo com HAY73 William H Hayt mostra que o Teorema de Th venin permite nos substituir todo o circuito por uma fonte de tens o independente em s rie com um resistor equivalente conforme mostra a Figura 4 7 Circuito Original Equivalente Th venin WN os R1 w O MAO ve Cr o o O O Figura 4 7 Equivalente Th venin de Circuito El trico De forma an loga
25. Para se chegar nos resultados descritos neste trabalho foi realizado um grande esfor o de programa o devido ao tamanho e a complexidade dos softwares desenvolvidos As maiores dificuldades deste trabalho foram na defini o e na implementa o dos programas CLPStoXML e XMLtoLD Em CLPStoXML a gera o do XML foi relativamente simples mas o compilador ST foi bastante complexo de ser implementado e n o o teria feito sem a utiliza o dos fontes do ILA ILA91 e de bons livros de compiladores AHO86 MUC97 Quanto ao XMLtoLD a implementa o s foi poss vel porque teve se acesso a documenta es internas do formato das instru es LD e tamb m aos fontes do programador MasterTool Como heran a deste trabalho pode se dizer que a arquitetura XML desenvolvida aqui poder ser aproveitada no desenvolvimento de softwares programadores de controladores program veis que pretendem ter suporte para mais de uma linguagem de programa o conforme a norma A Altus pretende lan ar uma nova vers o de seu 116 programador onde o XML ser utilizado como formato intermedi rio de armazenamento das linguagens Todos os programas utilizados e gerados no estudo de caso o c digo fonte dos programas CLPStoXML e XMLtoLD e arquivos pdf com manuais e caracter sticas t cnicas de produtos utilizados podem ser encontrados no CDROM que acompanha esta disserta o 9 2 Contribui es Este trabalho propiciou as seguintes contr
26. Sae a a a 101 Figura 8 6 Programa CLPScript e XML Correspondente i 102 Figura 8 7 Arquivo Intermedi rio ProLD relogi pld eeen 103 Figura 8 8 Arquivo Texto relogi tXt usssesonashesensisdenraisiabranpas Sana eder dad raarde 103 Figura 8 9 Diagrama LD Gerado L gicas 000 e 001 eeeeeeeee ee eeeeeees 104 Figura 8 10 Diagrama LD Gerado L gicas 002 003 e 004 104 Figura 8 11 Diagrama LD Gerado L gicas 005 e 006 105 Figura 8 12 Programa CLPScript e XML correspondente 106 Figura 8 13 Arquivos ProLD a Linrza pld e b Exemp2 pld 107 Figura 8 14 Arquivo Texto com a Descri o dos Operandos Alocados 108 Figura 8 15 L gicas 000 e 001 do M dulo P Exemp2 021 esseere 108 Figura 8 16 L gicas 002 e 003 do M dulo P Exemp2 021 seeren 109 Figura 8 17 Par metros de Entrada da Instru o CHF i iii 110 Figura 8 18 L gicas 004 e 005 do M dulo P Exemp2 021 secere 110 Figura 8 19 L gicas 006 e 007 do M dulo P Exemp2 021 111 Figura 8 20 L gicas 008 e 009 do M dulo P Exemp2 021 111 Lista de Tabelas Tabela 2 1 Tabela 3 1 Tabela 4 1 Tabela 5 1 Tabela 5 2 Tabela 5 3 Tabela 5 4 Tabela 5 5 Tabela 5 6 Tabela 5 7 Tabela 5 8 Tabela 6 1 Tabela 6 2 Tabela 6 3 Tabela 6 4 Tabela 6 5 Tabela 7 1 Tabela 7 2 Tabela 7 3
27. Tabela 7 4 Tabela 7 5 Tabela 7 6 Tabela 7 7 Tabela 8 1 Tabela 8 2 Tabela 8 3 Tabela 8 4 Tabela 8 5 Tipos de Dados B SICOS saias ri a ai atendi 12 S mbolos da Linguagem SIPN adro cities a chine a canisi 21 Exemplo de Comandos CASE e FOR Expandidos em Comando IF 40 INOLA ES iS RIC AS Gras Sie sitio id ts feud a E Ei sb bs aaa A 48 Tipos de Dados da CLPScript eres 50 Operadores Matem ticos esata de Sede nse eet een at in 53 Operadores RelaciOnais ive iiciseeeiscdsnnsivedieeaneveneeatsndaneesswd neneasetanensewdannehs 54 Operadores L DICOS Suas cante card ca ead EE Aa aE Eai 54 Operadores Bit a Bi onart image noir ii nine er iris 55 Preced ncia de Operadores pinta and ainda cien dano iu a id a Sis 55 Laterais NUMEN COS anan stance netic heb na 56 Tags e Atributos XML de Declara es aee 61 Compara o de Blocos Entre Fabricantes eecceeeeeeeeeeeeeeeeeeeeeees 65 Exemplo de Expans es no XML eterna 68 Tags da Arquitetura XML ca as cedida dai identidade blind 74 Valores dos Atributos na Arquitetura XML eeeeeeeee eee eeeeeeeeeeeeeeeeeeee 75 Classes Principais do Programa CLPStoXML seeeeeeeeeeeeeeeeeeeees 83 BNF de Identificadores e Constantes da CLPScript 86 BNF de Declara o de Vari veis da CLPSCript ceeeeeeeeeeeeeeeeeeeeees 86 BNF de Function e Program da CLPScript 87 BNF d
28. de instancia o do bloco da mesma forma que as entradas locais constantes atrav s do identificador do bloco de saida que a outra ponta da conex o A Figura 4 17 mostra o diagrama textual correspondente CTT1 TRUE X8 TEE1 CTT1 0UT1 1 TEE2 1 5 OR1 TEE1 0UT1 TEE2 0UT2 BOB1 OR1 0UT1 X9 Figura 4 17 Representa o Textual do FBD Comparando se a linguagem textual da Figura 4 17 com o diagrama FBD correspondente da Figura 4 16 pode se observar que os cinco blocos do FBD CTT1 TEE1 TEE2 ORI e BOBI est o instanciados nas cinco linhas do textual correspondente Este mesmo comando de instancia o vai determinar tamb m a execu o do bloco ap s a compila o que vista mais adiante O primeiro bloco CTT1 aparece no FBD da Figura 4 16 com a primeira entrada energizada conectada a barra e a segunda com a vari vel X8 Estas duas entradas aparecem como par metros na mesma linha de CTT1 entre par ntesis conforme mostra a Figura 4 18 NA Vv CTT1 TRUE X8 Figura 4 18 Instancia de Bloco O segundo bloco TEE1 aparece no FBD da Figura 4 16 com a primeira entrada conectada a sa da do bloco CTT e a segunda com a constante 1 Na forma textual estas duas entradas aparecem como par metros na mesma linha de TEE entre par ntesis A conex o informada na posi o correspondente atrav s do nome do bloco com o qual feita a conex o seguido do caract
29. elas Al m disto neste cap tulo proposta uma representa o textual para as linguagens gr ficas LD e FBD utilizada posteriormente na arquitetura XML O Cap tulo 5 define a linguagem CLPScript usada para gerar e formalizar a arquitetura XML proposta O Cap tulo 6 apresenta a arquitetura XML mostrando as raz es da escolha desta linguagem definindo as tags e atributos XML para armazenar programas LD FBD e CLPScript Faz uma compara o da arquitetura XML com a linguagem IL O Cap tulo 77 descreve a implementa o da linguagem espec fica de dom nio CLPScript que gera e formaliza a arquitetura XML proposta atrav s do programa CLPStoXML O Cap tulo 8 apresenta o estudo de caso que visa mostrar que os controladores program veis Altus e seu software programador conseguem ler o XML da arquitetura proposta Apresenta o software XMLtoLD desenvolvido para realizar esta prova de conceito O Cap tulo 9 apresenta as conclus es da realiza o do trabalho as contribui es e os trabalhos futuros 2 Revis o Bibliogr fica Resumo Este cap tulo apresenta uma revis o bibliogr fica sobre linguagens espec ficas de dom nio uma introdu o aos principais conceitos do XML e uma vis o geral da norma IEC 1131 3 2 1 Linguagens Espec ficas de Dom nio 2 1 1 Defini o As linguagens de dom nio espec fico DSL s o especifica es ou linguagens de programa o que oferecem bastante poder focado em uma p
30. equivalente em FBD liga o bloco OR horizontal E equivalente ke Er RR E O eo a LD FBD Figura 4 2 Liga o horizontal e Bloco OR Equivalente 36 Abstraindo se a liga o horizontal de programas LD como um bloco OR invis vel no diagrama original pode se utilizar a mesma estrutura de dados para representar os programas LD e FBD Indo mais al m se as instru es contato e bobina forem tamb m abstra das como blocos um diagrama LD passa a ser um caso particular de um diagrama FBD A Figura 4 3 exemplifica esta equival ncia CTT OR BOB CTT LD FBD Figura 4 3 Equival ncia entre Diagramas LD e FBD 4 1 2 ST LD e FBD A linguagem ST possui diversos recursos existentes em outras linguagens de alto n vel tais como Pascal e C Dentre estes pode se citar os comandos IF FOR WHILE atribui o vari veis estruturas chamadas de fun o e outros A seguir feita a compara o da linguagem ST com as linguagens FBD e LD Um comando de atribui o em ST corresponde a uma bobina bobina liga ou desliga no LD ou a uma chamada do bloco de movimenta o no FBD conforme mostrado na Figura 4 4 Neste caso A3 representa uma vari vel inteira cuja declara o feita da mesma forma nas tr s linguagens 37 Declara o Atribui o ST A3 1 A3 VAR A3 INT ad Lj END VAR
31. es redes de campo Profibus CANOpen TC5 Safe Software relacionado com as normas IEC 61508 e 61511 TC6 XML A pr xima se o aborda os trabalhos do comit t cnico TC6 sobre XML 27 3 2 1 Comit T cnico TC6 Interface XML A necessidade de representa o textual padronizada de linguagens gr ficas relaciona se com o objetivo deste comit t cnico disponibilizar as informa es l gicas das linguagens em um formato XML incluindo opcionalmente caracter sticas gr ficas O TC6 PLCO3 trabalha na defini o de schemas XML para todas as linguagens da IEC 1131 3 Os trabalhos encontram se em desenvolvimento 3 3 Linguagem VHDL A linguagem VHDL uma linguagem de descri o de hardware surgida a partir de diversos trabalhos efetuados para aumentar o n vel de abstra o do projeto de sistemas digitais Este trabalhos foram motivados pela necessidade do mercado de lan ar novos produtos em tempos cada vez menores e pelo r pido avan o tecnol gico que vem permitindo circuitos com mais e mais componentes CARO1 A VHDL pode ser vista como uma DSL no dom nio de descri o de hardware VHDL significa VHSIC Hardware Description Language e VHSIC significa Very High Speed Integrated Circuits Originalmente a VHDL era voltada para a descri o e simula o de circuitos digitais e sistemas eletr nicos Atualmente ela tamb m voltada para a s ntese de chips customiz veis por software p
32. escritos na linguagem que o projetista achar mais adequada e qualquer programa escrito em qualquer das 4 linguagens LD FBD ST ou IL pode ser convertido em um programa equivalente nas outras linguagens Esta disserta o abordou o problema da interoperabilidade entre as linguagens da norma e entre diferentes fabricantes uma vez que a norma diz que a convers o entre as linguagens poss vel mas n o diz nada sobre como fazer isto Como forma de amenizar este problema este trabalho sugere uma arquitetura que permite a interoperabilidade baseada em XML Foi apresentado uma revis o bibliogr fica sobre linguagens espec ficas de dom nio uma introdu o aos principais conceitos do XML e uma vis o geral da norma IEC 1131 3 Os conceitos de linguagens espec ficas de dom nio foram aproveitados na defini o das linguagens CLPScript e ProLD criadas neste trabalho O XML aparece no centro da arquitetura proposta no Cap tulo 6 e a norma IEC 1131 3 um dos focos principais deste trabalho Foram apresentados alguns trabalhos relacionados com controladores program veis linguagem XML e linguagens de programa o da norma IEC 1131 3 tais como o a linguagem gr fica SIPN que descreve o comportamento sequencial de um processo gerando c digo IL o comit t cnico TC6 da associa o mundial PLCopen que trabalha na defini o de schemas XML para todas as linguagens da norma e a linguagem VHDL dentre outros Todos estes trabalhos fora
33. gt lt string IN gt lt n mero entrada gt O procedimento para se referenciar as sa das o mesmo utilizando se OUT em vez de IN Quando existir mais de um bloco do mesmo tipo de bloco pode se diferenci los atrav s do n mero de ocorr ncia do bloco conforme mostrado na Figura 4 14 12 ocorr ncia do bloco SOM SOM1 Bathe SOM1 IN1 SomioUT 22 ocorr ncia 2 SOM1 IN2_ M2 SOM2 IN1 SO SOM2 OUT1 SOM2 IN2 Figura 4 14 Numero de Ocorr ncia dos Blocos 4 2 2 Modelagem das Conex es Como representar em uma linguagem textual as conex es de blocos gr ficos Atrav s da refer ncia s entradas e sa das definidas na se o anterior Esta se o mostra inicialmente um diagrama exemplo em LD que em seguida adaptado para FBD e finalmente representado de forma textual A Figura 4 15 mostra um diagrama LD com dois blocos TEE temporizadores O TEE de 5 segundos est sempre habilitado enquanto que o de 1 segundo depende do estado do contato X8 Se este contato estiver energizado a bobina X9 acionada ap s 1 segundo caso contr rio ap s 5 segundos x8 TEE X9 TEE 5seg 43 Figura 4 15 Exemplo de LD com dois blocos TEE Antes de se modelar as conex es pode se redesenhar este diagrama LD pelo seu equivalente FBD com as seguintes modifica es e substi
34. norma Figura 3 14 Exemplo de Loops em FBD Considerando que os diagramas gr ficos precisam ser convertidos para algum tipo de linguagem textual antes de serem compilados Tourlas mostra que a norma usa a nota o de preced ncia para se referir ordem de execu o dos blocos FBD A Figura 3 14 mostra um diagrama com dois blocos conectados mutualmente sendo que a parte b mostra o mesmo diagrama da parte a com a ordem de execu o dos blocos invertida Tourlas mostra que a norma trata esta situa o dizendo simplesmente o usu rio deveria ser capaz de definir a ordem de avalia o selecionando feedback variables para formar um loop impl cito Este loop impl cito est mostrado na parte c da Figura 3 14 Tourlas alega que a ordem de execu o n o deveria ser importante para a avalia o do diagrama e prop e uma solu o baseada no que ele denomina decorated para provar a equival ncia dos diagramas Em TOU00 outro trabalho de Konstantinos Tourlas defende uma tese que conduz uma investiga o sobre a representa o de diagramas em linguagens espec ficas de dom nio usando t cnicas matem ticas e estudos de caso Nos estudos de caso foram utilizados os blocos de fun o da linguagem FBD da IEC 1131 3 33 3 5 Conclusao Este cap tulo apresentou alguns trabalhos relacionados com controladores program veis linguagem XML e linguagens de programa o da norma TEC 1131 3 O SIPN uma li
35. norma IEC 1131 3 um dos focos deste trabalho O pr ximo cap tulo apresenta alguns trabalhos relacionados com controladores program veis linguagens de programa o da IEC 1131 3 e linguagem XML 20 3 Trabalhos Relacionados Resumo Este cap tulo apresenta trabalhos e projetos relacionados com controladores program veis linguagem XML e linguagens de programa o da norma IEC 1131 3 3 1 Linguagem SIPN Em FRE01 Georg Frey apresenta a linguagem Signal Interpreted Petri Net SIPN utilizada para a programa o de controladores program veis SIPN uma linguagem gr fica capaz de descrever o comportamento seqiiencial e concorrente do processo a ser controlado E baseada em um tipo especial de Redes de Petri e utiliza os s mbolos mostrados na Tabela 3 1 S mbolo Descri o O Posi o lugar a Transi o Arco orientado Tabela 3 1 S mbolos da Linguagem SIPN Em SIPN as transi es est o associadas a uma fun o booleana dos sinais de entrada gerando a condi o de transi o enquanto que as posi es est o associadas a uma fun o que atribui valores aos sinais de sa da O comportamento din mico do SIPN dado pelo fluxo de marcas tokens atrav s da rede Este fluxo realizado pelo disparo das transi es removendo as marcas das pr 21 posi es e inserindo as em cada uma das p s posi es Para que um disparo de transi o aconte a e
36. o Formato da Instru o ProLD Instru es de 1 operando RNA opl RNF opl BOB opl Macros de 2 operandos de EQ opl op2 op3 entrada e um de sa da GT onl epops GE op op2 op3 LE opl op2 op3 LT op op2 op3 NE op op2 op3 AND opl op2 op3 OR op op2 op3 XOR opl op2 op3 Instru es de 2 operandos MOVE op op2 Instru es de 3 operandos ADD opl op2 op3 SUB opl op2 op3 MUL opl op2 op3 Instru es de 4 operandos DIV op op2 op3 op4 Outras CHF opl op2 op3 op4 paramIn paramOut Tabela 8 5 Instru es Aceitas no Arquivo ProLD 8 3 4 A Interface do XMLtoLD A Figura 8 7 mostra a interface do programa XMLtoLD Par utilizar o programa XMLtoLD primeiro deve se selecionar o arquivo XML a ser utilizado em seguida gerar o arquivo ProLD m dulos 1 e 2 e por ltimo gerar o arquivo LD Altus m dulo 3 Estes tr s comandos podem ser executados atrav s do menu File ou da barra de cones conforme mostra a Figura 8 5 100 M dulos 1 e 2 M dulo 3 XML2LDD diss4 bin Relogio xml Didiss4biniRelogio pld gt P Relogi 020 Fim da cria o do s arquivo s Figura 8 5 O programa XMLtoLD Ap s gerar o LD Altus o s m dulo s criado s pode m ser visualizado s ou editado s no MasterTool Se desejado pode se inclusive carregar um ou v rios destes m dulos em um controlador program vel e execut lo s O programa XMLtoLD cria tamb m um arquivo texto com a de
37. o o mesmo identificador 48 5 1 1 2 Uso de Espa o Tabula o e Quebras de Linha Ser o desprezados todos os caracteres de espa o tabula o e quebras de linha entre os identificadores palavras chave literais ou delimitadores 5 1 1 3 Coment rios Comentarios no c digo fonte devem ser feitos entre os caracteres e Podem ser comentadas v rias linhas formando um nico bloco de coment rios 5 1 1 4 Literais Num ricos Existem dois tipos de literais num ricos inteiros e reais Um n mero inteiro tamb m pode ser expresso em base bin ria octal ou hexadecimal Para isto utiliza se os prefixos 2H 8 e 16H antes do n mero respectivamente Literais num ricos reais cont m o ponto decimal entre os n meros Opcionalmente pode se especificar o expoente da base 10 utilizado os prefixos E ou e 5 1 1 5 Literais Booleanos Para literais booleanos podem ser usado as palavras reservadas TRUE ou FALSE 5 1 1 6 Operandos do CP Os operandos do CP para serem referenciados nos programas devem ser mapeados em vari veis Todos os operandos podem ser mapeados atrav s da instru o AT O acesso a subdivis o dos operandos s poder ser feita a n vel de bit 5 2 Tipos de Dados A CLPScript utiliza os tipos de dados definidos na Tabela 5 2 49 Tipo Descri o Bits BOOL Booleano 1 BYTE Segii ncia de 8 bits 8 WORD Segii ncia de 16 bits 8 D
38. para a defini o de estruturas complexas e tipos de dados para documentos XML Usando o XML Schema pode se definir derivar expandir e compor constru es muito precisas fornecendo assim uma sem ntica de alto n vel no documento e uma valida o autom tica maior a partir no n vel do analisador sint tico ARCO2 2 3 A Norma IEC 1131 3 A TEC 1131 3 EC93 uma norma internacional para padroniza o de linguagens de controladores program veis CP na rea de automa o industrial Foi desenvolvida em resposta a press es da ind stria por maior compatibilidade entre os CPs O objetivo foi especificar uma linguagem port vel extens vel que eliminasse as barreiras de software propriet rios e seus custos de treinamento associados Esta norma tamb m referenciada como IEC 61131 3 A norma define cinco linguagens sendo duas gr ficas Ladder Diagram LD e Function Block Diagram FBD duas textuais Instruction List IL e Structured Text ST e uma quinta que serve como base de organiza o para as demais Sequential Function Chart SFC Variando de baixo at alto n vel estas cinco linguagens oferecem ao programador diversos recursos para que ele use suas habilidades conforme os requisitos de cada aplica o Diferentes partes da aplica o podem ser programadas em diferentes linguagens formando um nico programa aplicativo a ser executado no CP Os principais benef cios que a norma traz s o LEW95
39. podem ser facilmente expressos pelas linguagens gr ficas uma linguagem fortemente tipada semelhante ao PASCAL possuindo as seguintes caracter sticas e comandos de atribui o e comandos de sele o IF THEN ELSE CASE OF e comandos de itera o FOR WHILE e REPEAT e chamadas de fun es e de blocos de fun o e comandos de controle RETURN e EXTT A Figura 2 11 mostra um trecho de programa em linguagem ST if level lt level max then out valve false m_vlv vlv23 dbh18 2 else alarm_level true end_if Figura 2 11 Exemplo de ST 18 2 3 5 A Linguagem IL A linguagem IL IEC93 Instruction List uma linguagem textual de baixo n vel utilizada para implementar procedimentos simples constitu da por instru es no estilo assembly conforme mostra o trecho de c digo da Figura 2 12 start cmd mul ope bo100 bemd JMPNC mul_op Figura 2 12 Exemplo de IL Um programa IL uma lista de instru es onde cada instru o tem um label um operador um ou dois operandos e um coment rio opcional 2 3 6 A Linguagem SFC A linguagem SFC IEC93 Sequential Function Chart uma linguagem gr fica utilizada para descrever o comportamento seqiiencial do programa Derivada de Redes de Petri MORO1 a linguagem ideal para se escrever m quinas de estado Atrav s da SFC pode se dividir um programa em a passos b a es e c transi es
40. possibilitando uma vis o geral do trabalho a ser realizado destacando se o contexto do trabalho o problema e o objetivo a ser alcan ado 1 1 Introdu o O Controlador Program vel CP CLP ou PLC um equipamento da rea de automa o industrial NATOO que surgiu nos anos 60 para substituir os caros e complexos pain is de rel s da poca Seus requisitos iniciais eram FES00 e ser de f cil programa o e possibilitar altera es do programa sem alterar o resto do sistema ou seja sem modifica es internas da fia o e ser menor mais barato e mais seguro que os controladores a rel s e ter manuten o f cil e barata Desde ent o se passaram tr s d cadas e o enorme desenvolvimento da microeletr nica tamb m acabou influenciando os CPs aumentando bastante sua tecnologia MORO1 Atualmente o CP GEO00 est presente em praticamente todas as reas da automa o industrial Dentre alguns dos principais fabricantes pode se citar e ABB Sweden www abb com e Altus S A Brazil www altus com br e Rockwell Software USA www rockwell com e Siemens Germany www siemens com e Schneider Automation Germany www schneider electric com e Yokogawa Electric Japan www yokogawa com Uma vez que os CPs surgiram para substituir os pain is de controle a rel s uma linguagem de programa o que mais se aproximasse da experi ncia de t cnicos e engenheiros da poca
41. procurou se sempre que poss vel manter no XML a mesma nomenclatura original da IEC O pr ximo cap tulo descreve a implementa o da CLPScript que gera e formaliza a arquitetura XML proposta atrav s do programa CLPStoXML desenvolvido neste trabalho 78 7 A Implementacao da Arquitetura XML com CLPScript Resumo Este capitulo descreve a implementa o do programa CLPStoXML um compilador que l um programa CLPScript e gera a arquitetura XML proposta Este cap tulo apresenta o programa CLPStoXML EXE um compilador CLPScript para XML desenvolvido durante os trabalhos desta disserta o O programa CLPStoXML l o arquivo de entrada selecionado compila o conforme a sintaxe da linguagem CLPScript definida no cap tulo 5 A Linguagem CLPScript e gera o arquivo XML com a arquitetura definida no cap tulo 6 A Arquitetura XML O CLPStoXML envolve o conhecimento de toda uma rea de compiladores AHO86 GRUO1 analisadores l xico sint tico sem ntico tabela de s mbolos gerador de c digo tratamento de erros ficando de fora neste caso gerador de c digo intermedi rio e otimizador de c digo 7 1 O programa CLPStoXML Um compilador um programa que l um programa escrito numa linguagem a linguagem fonte e o traduz num programa equivalente numa outra linguagem a linguagem alvo AHO86 O programa CLPStoXML um compilador de CLPScript para XML Foi desenvolvido em Visual C
42. tico executa os analisadores sint tico e sem ntico que fazem a compila o propriamente dita e Sem ntico mesma op o que a anterior mantida apenas para deixar referenciado as principais etapas de um compilador 82 7 1 3 Diagrama UML do CLPStoXML A Tabela 7 1 mostra as classes principais do programa CLPStoXML N o est o listadas as classes relacionadas com o ambiente de programa o Windows Classe Descri o CToken Armazena um token Um token uma segii ncia caracteres que possui um significado coletivo CDataType Representa os diversos tipos de dados b sicos e arrays CLexico Cont m o analisador l xico que l o programa de entrada e gera os tokens correspondentes Representa a lista de par metros passada para uma rotina e tamb m a declarada em CParametros a uma rotina PEPENE Cont m o analisador sint tico e sem ntico a classe principal gera os erros de CSintatico compila o e o XML final CTabelaFuncoes Armazena as fun es pr definidas da IEC 1131 3 Armazena todas as informa es relacionadas s vari veis e fun es criados ao CTabelaSimbolos longo do programa fonte CCLPScriptXML Centraliza tudo relacionado com XML cont m todos os tags e atributos usados CSTCompiler Executa os analisadores l xico e sint tico e as demais opera es da compila o CUtil Rotinas utilit rias gen ricas Tabela 7 1 Classes Principais do Programa CLPStoXML A classe CSTCompi
43. usu rio 7 1 2 A Interface do CLPStoXML A Figura 7 1 mostra o programa CLPStoXML com duas janelas a primeira onde visualiza se o programa fonte e a segunda com os resultados da compila o Esta 66199 1 figura mostra que o programa gerou um erro na linha 9 pois a vari vel i estava sendo usada sem ter sido declarada 81 STtoXML t1_st Oj x File Edit Compilar View Window Help Deh tse amp function Testel INT VAR OUTPUT x REAL END_VAR VAR GLOBAL y INT end_var lolx Taipi landa D NDISS4NBINNT1 S x 4 5 6 i gt Erro linha 9 coluna E i n o declarada gt Erro linha 9 coluna 17 E na opera o entre 5 6 CTE REAL e i TT IDENTIFIER Fim da Compilacao Erros 2 Compila o terminada com erros Ready NUM A Figura 7 1 Compilador CLPStoXML O programa CLPStoXML l o arquivo de entrada selecionado compila o conforme as regras da linguagem CLPScript definidas no cap tulo 5 e gera o arquivo XML com o programa compilado A sele o do arquivo de entrada feita da forma padr o do Windows pelo menu Arquivo Abrir A opera o de compila o iniciada a partir do menu Compilar que possui as seguintes op es e Pr Compilador executa o pr compilador que retira os coment rios antes de compilar e L xico executa o analisador l xico que quebra o arquivo original em uma sequ ncia de tokens correspondentes e Sint
44. vari veis e fun es v o sendo criados Cada s mbolo cont m seu escopo token original e tipo cont m CSTCompiler Compilar bool cont m tags e atributos cont m CCLPScriptXML declarados chamados conjunto de tipo Figura 7 2 Diagrama de Classes do Programa CLPStoXML O arquivo XML destino vai sendo montado por CSintatico durante sua execu o atrav s de um objeto do tipo CCLPScriptXML Caso algum erro de compila o seja encontrado ele mostrado na janela de erros e o XML n o gerado A Figura 7 2 84 mostra o digrama de classes UML do programa CLPStoXML resumido por quest es de clareza A Figura 7 3 mostra a defini o completa da classe principal do compilador CSintatico CSintatico m_iQtdTokens int m ilndTokenAtual int m tabelaSimbolos CTabelaSimbolos m tabelaFuncoes CTabelaFuncoes m_iQtdWarnings int m iQtdErros int m_strEscopo CString m_nBloco int CSintatico strNomeArgXml const CString amp CSintatico executar pListaTokens CToken iQtdTokens int int GetQtdErros inline int processarFunction bool processarProgram bool processarDeclaracaoVar bool processarTipoBasico pDataType CDataType bool processarDeclarArray pDataType CDataType bool processarDeclaracaoldentificadores bool processarStatements bool processarStatement
45. 10 THEN FORI 11010D0 p A TO END_FOR FOR A8 A8 1 mas END_FOR A8 A8 1 141 GOTO INI_FOR END_FOR Tabela 4 1 Exemplo de Comandos CASE e FOR Expandidos em Comando IF As chamadas de fun o em ST correspondem diretamente a um bloco equivalente em FBD Para cada linha que chama a fun o na ST existir um bloco instanciado no FBD 40 e os par metros passados no ST correspondem s entradas do bloco no FBD A Figura 4 10 mostra dois blocos TEE instanciados com os nomes TEE e TEE2 no diagrama FBD No ST equivalente s o feitas duas chamadas de bloco de fun o usando se estes mesmos nomes Na chamada de TEE1 passam se a vari vel Al e a constante 1 representando 1 segundo Na chamada TEE2 passa se a refer ncia sa da de TEEI uma conex o e a constante 5 TEE1 TEE2 FBD At TEE EE 1 seg Po 5seg TEE1 A1 1 ST TEE2 TEE1 OUT 5 Figura 4 10 Chamada de Bloco de Fun o em FBD e ST Em LD e FBD todos os blocos s o sempre executados mesmo se suas entradas de habilita o estiverem desenergizadas LD No ST isto nem sempre acontece pois o conte do de um comando IF pode n o ser executado Uma alternativa para que a convers o ST LD FBD seja poss vel assumir que todos os blocos possuem uma entrada e uma sa da de habilita o quando energizada o bloco executa normalmente e quando desenergizada o bloco executa mas n o faz nada dese
46. 2 Literais Num ricos Os literais num ricos inteiros da Tabela 5 8 podem ser usados em opera es com inteiros desde que o valor do literal n o ultrapasse o limite do tipo da faixa 55 Faixa Tipos compativeis 0a 127 SINT USINT INT UINT DINT UDINT BYTE WORD e DWORD 1 a 128 SINT INT e DINT 128 a 255 USINT INT UINT DINT UDINT BYTE WORD e DWORD 256 a 32 767 INT UINT DINT UDINT WORD e DWORD 129 a 32 768 INT e DINT 32 768 a 65 535 UINT DINT UDINT WORD e DWORD 32767 a 2 147 483 648 DINT 65 536 a 2 147 483 647 DINT UDINT e DWORD 2 147 483 648 a 4 294 967 296 UDINT DWORD Tabela 5 8 Literais Num ricos 5 6 3 Comandos de Atribui o A atribui o usada para escrever um determinado valor em uma vari vel lt vari vel gt lt express o gt Uma atribui o tamb m pode ser usada para configurar o valor retornado de uma fun o Neste caso a vari vel deve ser substitu da pelo nome da fun o Esta opera o n o ir encerrar a fun o apenas ir configurar o seu valor de retorno 5 6 4 Comando RETURN Um fun o sempre retorna para a rotina que a chamou ap s a execu o da ltima afirma o Por m poss vel for ar o retorno em qualquer ponto do c digo atrav s do uso da palavra reservada RETURN 5 6 5 Comando IF O comando IF mostrado na Figura 5 4 executar as afirma es ap s o THEN se a condi o lt express o booleana gt
47. 35 DINT Double Integer 82 ede Oe REAL Real 32 EQ LREAL Long Real 64 10 TIME Time Duration DATE Calendar Date STRING Character Strings Tabela 2 1 Tipos de Dados B sicos 12 Podem ser definidos novos tipos de dados a partir dos tipos basicos Tamb m existe defini es para estruturas enumerados sub ranges e arrays de uma ou mais dimens es A declara o de tipos possuiu a forma mostrada na Figura 2 2 TYPE lt lista de novos tipos gt lt tipo de dado b sico gt PRESSURE REAL END TYPE Figura 2 2 Declara o de Novos Tipos 2 3 1 2 Vari veis Conforme a norma uma vari vel uma rea de mem ria que armazena um determinado tipo de dado Todas as vari veis devem ser declaradas antes de serem usadas Isto feito no in cio da fun o ou do programa principal A declara o de vari veis possui a forma mostrada na Figura 2 3 VAR CONSTANT lt lista de vari veis gt lt tipo de dado 1 gt lt valor gt A B C REAL END_VAR Figura 2 3 Declara o de Vari veis O escopo das vari veis limitado ao POU em que foram declarados permitindo que os nomes possam ser reutilizados em outras partes sem nenhum conflito eliminando uma poss vel fonte de erros 2 3 1 3 Fun o 2 Uma fun o um trecho de c digo que poder ser chamado diversas vezes pelo programa principal por um bloco de fun o ou por outras fun es Ela se car
48. 4 0001 3 4 0001 4 H XOR A0001 4 A0001 3 K Figura 8 4 Instru es AND OR e XOR 8 3 2 3 Gerando os Comandos IF Cada tag IF encontrado no XML aloca um novo operando do tipo BOOL que recebe o resultado da avalia o da express o de condi o do IF Uma tag THEN faz com que o programa XMLtoLD passe a acrescentar no ProLD uma instru o contato RNA com o resultado da condi o do IF em s rie com os demais blocos que se localizam dentro do contexto desta tag THEN no XML Da mesma forma uma tag ELSE ap s o final de uma THEN o gerador de arquitetura CLPScript garante que foi gravado nesta ordem sen o geraria erro de compila o faz com uma instru o contato RNF seja acrescentada em vez de uma RNA O fim da tag THEN quando encontrado no XML termina este processo Quando existirem IFs aninhados os contatos RNA e ou RNF ser o acrescentados em seqii ncia at um limite de 7 IFs aninhados Os demais comandos condicionais s o gerados de forma semelhante ao comando IF 8 3 3 M dulo 3 A convers o para LD Este m dulo respons vel por gerar o c digo bin rio LD de uma fun o Altus a partir do arquivo texto ProLD gerado na etapa anterior Cada linha do ProLd gera uma ou mais instru es LD Altus 98 E neste m dulo que aparecem as particularidades do assembly Altus tais como n mero de linhas e colunas de cada l gica liga es verticais e horizontais marcas
49. 450 se sateen sheeted shears eee seat tp cado des ease isa dh abri o iso nl Ta dean E ES 5 1 1 1 Identificadores nas rererere RR RN UR O RD A VD NE 5 1 1 2 Uso de Espa o Tabula o e Quebras de Linha 5 1 1 3 COMENT rioSs reier e ea Eh voa insana cb seio aa da Senado de igtsesonndehes Sede atada Dao tona d o 5 1 1 4 Literais Num ricos 5 1 1 5 Literais Booleanos 5 1 1 6 Operandos do CPress renn na coset inea EE A EA EAE A E VE yereeseaveess 5 2 TPOS DE DADOS E a E RA ds et AAA A rE E AEE SEAS doada I tes santa a 5 3 VARIAVEIS cos ciate dia does anta ae Seagate sda ues ddan cotas a T stad cuanto pata AEE E E ERE RS 5 3 1 Declara o de VaridvVeIS is sas anren ay pandas EEEE REO EE e TESK 50 5 3 2 Categori s de Varidveis ssessectsiisnep cross eahiseiedeyinceeceveatiotuscobsnsseeobceutesetiouWsesueevdeoebevees ads 5 3 2 1 Mapeando Operandos do CP em Vari veis 5 4 FUN ES 5 ns teca ng Air obser At A da si Redacted ac Naan iat 5 4 1 Fun es Definidas pelo Usu rio sissisodan rena a e 5 5 PROGRAMAS coseses cs ingisieo everest sntelegenebecivesetecdenteveesebuedugestenrecscoiegigs vaieececcbbendgevasstdud es bebcedsespesneebees 5 6 COMANDOS foreskorti ne n eee ra Ea EEEE eS aE r Enee ee O ea Sae EE E Eea 5 6 1 EXPRESS ES aiae Suse a a oa ance Lagann e bu a aea Hd e aa di anil as 5 6 1 1 Operadores Matem ticos 5 6 1 2 Operadores Relacionais 5 6 1 3 Operadores L gicos e Bit a Bit esceseeeenee
50. 6 7 COMPARA O COM IL i eee ec ecto etinh cede eere inr ee eeter eE edocs an eair it eei 71 6 8 CONCLUS O v4 han ei eas Bh eae nid A eA See ees 78 7 A IMPLEMENTA O DA ARQUITETURA XML COM CLPSCRIPT cccscsssscsessessessseetssesees 79 71 O PROGRAMA CLPSTOXME 2 sosczsas sitecsapessesacs ai feccep soscadeat gens dadeennsdvady cdeebbopsenaee duce sdheseenttpaseddess 79 7 1 1 As Fun es Pr Definidas do CLPStoXML eee 1 7 1 2 Alnterface do CLPStOAME ss scx de eere dh obgaebeus ip aaa deans tee sp aoe teats RT 1 7 1 3 Diagrama UML do CLPStoXML 0 ccccsccescceseesseeneeeeeseeesecesecesecnsecnsecsecaseceeeeseeeneeeseenaes 83 T2 BNF DA LINGUAGEM CLPSCRIPT 5 cisccsscccscesscessenscehestu abso bagessgeiseesscabasisnetcse sbbedspeeedbcssbeosssanesevs 86 7 2 1 Declara o d VAViGVeis ciscs esis sesescsdscessstasesbizsissssostasasiossdeesbesdaesabapeasentestgesstedsdsestestaessee S6 7 2 2 Fiuinctionse Programs aiii cvs cceawsde diate sata sna vi atanto danada RA UA da Na PER T NT Ia dad enna va aC ERAS ANE RO 86 7 2 3 EXPRESS ES suisse dvcsnusasuscigs duces essa se saida doada deta siesigis Para a ai Dadas sdisdsdageisasbontassvasasdsuseseactass 87 7 2 4 NYALA A EE A E T E E aan E 87 7 2 5 Simbologia Utilizada sssiisiisiresiaa yececdsceacveasas iviasesiaseigaticecisessoviacesbcpiaseatesdicaiicevisesaestaze 88 7 3 CONCLUS O aos Nosicaetidt Mithila Maen hae aa thane ei Sb Sande 88 8 ESTUDO DE CAS O r sian cute geuccstbouness E
51. A A01 0 BOB A00 0 Bloco MOVE 1i THEN1 MOVE 1 M0011 Bloco2 CHF sqrt RNA A00 0 CHF sqrt 123 1 1 F0011 F0012 Bloco3 MUL 100 Bloco2 OUT RNA A00 0 MUL 100 F0012 F0013 Bloco MOVE Bloco3 OUT linrza RNA A00 0 MOVE F0013 F0010 ELSE1 Bloco MOVE 0 linrza RNF A00 0 MOVE 0 F0010 FIM IF1 FOR i lt 20 IF1_FOR LE M0011 20 A02 0 Bloco4 CHF linrza RNA A02 0 ADD M0011 100 M0010 CHF linrza 123 1 1 M0010 F F0016 Bloco5 ADD acum Bloco4 0UT RNA A02 0 ADD F0014 F0016 F0017 Bloco MOVE Bloco5 OUT acum RNA A02 0 MOVE F0017 F0014 FIM IF1_FOR ADD M0011 KM1 M0011 RNA A02 0 SLT 5 Bloco6 DIV acum 20 DIV F0014 20 F0018 MO Bloco MOVE Bloco6 OUT media MOVE F0018 F0015 Figura 8 13 Arquivos ProLD a Linrza pld e b Exemp2 pld O arquivo de descri o do operandos alocados gerado pelo XMLtoLD mostrado na Figura 8 14 As 20 posi es do array nivel foram alocadas na faixa de operandos F0101 at FO120 inclusive 107 F0010 linrza FUNCTION real F0011 medicao VAR INPUT REAL A00 0 IF1 BOOL A01 0 BO1_OUT Blocol GT medicao O BOOL F0012 BO2_OUT Bloco2 CHF sqrt REAL F0013 BO3_OUT Bloco3 MUL 100 Bloco2 0UT REAL F0014 acum VAR REAL F0015 media VAR REAL F0101 array nivel 1 F0120 array nivel 20 M0010 indice do array nivel M0011 i VAR INT A02 0 IF1_FO
52. Black gt Coment rios lt Blocol Description Exemplo de XML com dois blocos gt Descri o lt Blocol M8 Tempo de Motor Ligado gt Tipo de dado lt Bloco2 instr MOVE _OutDataType Real EnoDataType Bool gt Tabela 6 3 Exemplo de Expans es no XML 6 4 Representa o da CLPScript Esta se o apresenta maneiras de se armazenar em XML uma linguagem de alto n vel tipo CLPScript com recursos tais como comandos IF FOR WHILE atribui o vari veis estruturas e chamadas de fun o Um programa CLPScript deve ser quebrado em trechos pequenos e relevantes para serem armazenados no XML de prefer ncia em um formato semelhante ao utilizado para armazenar os blocos LD e FBD Esta opera o na verdade uma atividade de compila o onde um programa fonte transformado em outro A parte de declara o de vari veis fun es e programas a mesma j apresentada uma vez que utilizam o formato comum padronizado na norma IEC 1131 3 Resta ent o definir a maneira que s o armazenados os comandos ou statements da linguagem 6 4 1 Tags XML de Express es Uma express o l gica ou aritm tica deve ser quebrada em um conjunto de opera es b sicas sucessivas envolvendo um ou dois operandos e um operador Por exemplo a express o yl x 3 5 6 deve ser quebrada em x 3 seguido de 5 6 e de y1 Cada uma destas opera es b sicas ser ent o representada como sen
53. ELEMENT EXIT EMPTY gt lt ENTITY atribsBloco E instr EQIGTIGEILEILTINE ANDIORIXOR ADD SUB MUL DIV EXPT CHF MOVE REQUIRED inl CDATA REQUIRED in2 CDATA IMPLIED type CDATA IMPLIED nome CDATA IMPLIED qtdIn CDATA IMPLIED gt lt ELEMENT Bloco EMPTY gt lt ATTLIST Bloco atribsBloco gt Figura 6 25 DTD da Arquitetura XML 2 parte 6 7 Compara o com IL Em LEW95 R W Lewis cita que a linguagem IL muitas vezes referenciada como sendo uma linguagem base para a qual todas as outras linguagens da norma IEC 1131 3 podem ser convertidas A norma entretanto n o imp e que nenhuma linguagem particular seja tratada como uma linguagem base A linguagem IL simplesmente outra linguagem que pode ser usada se desejado para solucionar determinados tipos de problema O software Step7 da Siemens adotou a IL como linguagem base Nele os programas escritos em linguagem LD e FBD sempre podem ser convertidos para IL mas o contr rio n o verdadeiro Em determinadas situa es a convers o de IL para LD ou FBD poss vel em outras n o Outros fabricantes n o tratam a IL como linguagem base ou simplesmente n o a possuem A quest o relevante aqui o quanto a arquitetura XML definida neste trabalho semelhante a linguagem IL O XML parecido com a linguagem assembly a IL tamb m seus conte dos n o seriam o mesmo ent o Nosso XML n o seria simplesmente o IL co
54. ML correto Caso n o se deseje utilizar CLPScript o editor da linguagem utilizada que ser respons vel pela cria o do XML proposto a e Editor N Visualizador Compilador subset ST CLPScript C V XML lt bloco CTT bloco gt Figura 1 1 Arquitetura da Solu o Proposta A Figura l 1 representa a arquitetura da solu o proposta Um programa CLPScript criado a com um editor de texto compilado b e armazenado em XML c Em seguida convertido d e apresentado e em um visualizador LD Como forma de valida o do trabalho foi feito um estudo de caso onde o programa CLPScript compilado gera o XML que por sua vez foi convertido para ser visualizado em um editor LD MasterTool ALT03 da Altus S A conforme a seq ncia mostrada na Figura 1 1 1 6 Organiza o do Trabalho Este volume est organizado em nove cap tulos sendo que o Cap tulo 2 apresenta uma revis o bibliogr fica de linguagens espec ficas de dom nio no es b sicas de XML e uma introdu o a norma IEC 1131 3 principalmente nos aspectos relacionados com as linguagens ST LD e FBD e suas semelhan as O Capitulo 3 apresenta alguns trabalhos relacionados com controladores program veis linguagens de programa o da IEC 1131 3 e linguagem XML O Cap tulo 4 faz uma compara o das linguagens ST LD e FBD da IEC 1131 3 ressaltando suas semelhan as e diferen as e aspectos de portabilidade entre
55. Muchnick Steven S Advanced Compiler Design and Implementation Academic Press 1997 Natale Ferdinando Automa o Industrial rica S o Paulo 2000 Ousterhout John K Scripting Higher Level Programming for the 21 Century Sun Microsystems Laboratories 1998 P Pepper M Cebulla K Didrich W Grieskamp From program languages to software languages Berlin Germany 2001 PLCOpen Standardization in Industrial Control Programming Dispon vel em http www plcopen org Ultimo acesso Setembro 2003 PLCopen TC6 Technical Committee TC6 XML Dispon vel em http www plcopen org plcopen TC6 XMhL htm ltimo acesso Setembro 2003 Price Ana Maria de Alencar Toscani Sim o Sirineo Implementa o de Linguagens de Programa o Compiladores Editora SagraLuzzatto Porto Alegre 2000 Rockwell Automation Software RSLogix 5 Vers o 3 2 Guia de Procedimentos Milwaukee USA s n 1999 Rockwell Automatio RSLogix 5000 Configuration and Programming for the Logix5000 family of controllers USA s n 2000 Scowen R S Extended BNF A generic base Standard 1998 Shalloway Alan Trott R James Design Patterns Explained Addison Wesley 2002 Siemens Programming with Step 7 V5 0 s n 1999 Siemens Working with Step 7 V5 0 s n 1999 Silva Osmar J XML Aplica es Pr ticas rica S o Paulo 2001 SIPN Editor Editor for Hierarchical Signal Interpreted Petri Nets
56. Qx0 0 bool motor at QX0 1 bool move down at Qx0 2 bool move up at Oxo 3 bool END VAR Figura 3 2 Declara o das Entradas e Sa das em IL A Figura 3 3 mostra o trecho de c digo IL gerado para as transi es T41 e T43 e para as posi es P41 P43 P44 e P45 23 eeee Transition T41 2 1 O LD Pv 1 pre place P41 ANDN PV 2 ANDN PV 3 post place P43 JMPCN 11 R Pv_1 pre place P41 S Pv 2 post place P42 S PV 3 post place P43 Update packed place variables LD PCK O AND 254 OR 6 ST PCKO eeee Transition T43 twww 11 LD PV 3 pre place P43 ANDN PV 4 post place P44 JMPCN 12 AND lower position JMPCN 12 R PV 3 pre place P43 S Pv 4 post place P44 Update packed place variables LD PCK_0 AND 251 OR 8 ST PCK 0 a Transi es post place P42 waeew Place P41 fwwwar nothing happens here wee eee Place P42 trwwe LD PY 2 JMPCN 14 S motor eae eee Place P43 tee eee 14 LD Pva JMPCN 15 S move down Hr Dlace Dag trHHeA LD Pv 4 JMPCN 16 R move down S move up e80ee Place P s twww LD Q JMPCN LF R motor R move up RET b Posi es Figura 3 3 C digo de SIPN gerado em linguagem IL 3 1 2 A Ferramenta de Edi o do SIPN O uso do SIPN disponibilizado atrav s de uma ferramenta para edi o visualiza o e compila o
57. R BOOL F0016 B04_OUT Bloco4 CHF linrza REAL F0017 B05_OUT Bloco5 ADD acum Bloco4 0UT REAL F0018 BO6_OUT Bloco6 DIV acum 20 REAL Figura 8 14 Arquivo Texto com a Descri o dos Operandos Alocados Em seguida o XMLtoLD converteu estes dois arquivos ProLD nos respectivos m dulos LD Altus denominados P Linrza 020 e P Exemp2 021 Apenas o LD do 2 m dulo mostrado aqui nas figuras a seguir Todo o estudo de caso entretanto pode ser encontrado no CDROM que acompanha esta disserta o A Figura 8 15 mostra as l gicas criadas para inicializar a vari vel acum com zero e a c gt 1 vari vel do FOR com o valor 1 L gica 000 Figura 8 15 L gicas 000 e 001 do M dulo P Exemp2 021 108 A Figura 8 16 mostra o LD do teste da condi o do FOR que verifica se a vari vel 1 menor ou igual a 20 e a primeira instru o dentro do FOR que faz a chamada da fun o linrza passando a posi o 1 do array nivel como par metro Para isto utilizou se o modo de acesso indexado dos CPs Altus no qual o valor de um operando X qualquer que determina o operando Y a ser usado na instru o ALTO3 No caso 66199 1 o operando correspondente a vari vel M11 somado com o valor 100 local alocado para a primeira posi o do array nivel e o resultado colocado em M10 gera o ndice de acesso indexado ao array L gica 002
58. REAL gt lt Bloco3 instr MUL inl 2 3 in2 Bloco2 0UT gt lt Bloco4 instr CHF nome REAL TO INT qtdIn 1 inl Bloco3 0UT type INT gt lt Bloco5 instr ADD inl 1 in2 Bloco4 0UT gt lt Bloco instr MOVE inl 6 7 in2 M Bloco5 OUT gt lt ATRIBUICAO gt Figura 6 15 XML de Array em Express o Complexa 6 4 2 Tags XML de Comando Atribui o Um comando atribui o pode ser dividido em duas partes na avalia o da express o a ser atribu da e na atribui o propriamente dita A avalia o da express o foi definida na se o anterior enquanto que a atribui o feita com um novo bloco MOVE Uma tag ATRIBUICAO inserida envolvendo todos os blocos os da express o e os do MOVE conforme mostra a Figura 6 16 70 lt ATRIBUICAO gt lt Blocol instr SUB inl x in2 3 gt lt Bloco2 instr MUL inl Blocol OUT in2 5 6 gt lt Bloco3 instr ADD inl Bloco2 OUT in2 y1 gt lt Bloco instr MOVE inl Bloco3 OUT in2 x gt lt ATRIBUICAO gt Figura 6 16 XML de Comando Atribui o x Y1 x 3 5 6 Observe se que a tag do bloco MOVE n o possui n mero de ocorr ncia pois corresponde a um bloco que n o possui nenhuma sa da A presen a da tag ATRIBUICAO visa unicamente possibilitar que o programa original possa ser restaurado a partir do XML 6 4 3 Tags XML de Chamada de Fun o Uma chamada de fun o em CLPScript corresp
59. UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIENCIAS EXATAS E TECNOLOGICAS PROGRAMA INTERDISCIPLINAR DE P S GRADUA O EM COMPUTA O APLICADA PIPCA Uma Arquitetura de Interoperabilidade para as Linguagens da Norma IEC 1131 3 Usando XML por JOAQUIM GOMES DA COSTA EULALIO DE SOUZA Disserta o submetida a avalia o como requisito parcial para a obten o do grau de Mestre em Computa o Aplicada Prof Dr S rgio Crespo Coelho da Silva Pinto Orientador S o Leopoldo Fevereiro de 2004 Agradecimentos Agrade o a meus pais em mem ria pela educa o que me propiciaram e pela pessoa que me ensinaram a ser Tenho orgulho de ser filho deles Agrade o a minha fam lia e amigos pelo incentivo a realizar um trabalho como este e pela compreens o da aus ncia em v rias ocasi es como consequ ncia do tempo dedicado nesta tarefa Agrade o a meus amigos e colegas da Altus n o s pelo apoio t cnico mas principalmente pelo interesse demonstrado para que este trabalho resultasse em sucesso e pela compreens o das dificuldades e transtornos que possam ter causado Agrade o a empresa Altus e seus diretores pela oportunidade proporcionada e pelo apoio oferecido Agrade o a meu orientador pela lucidez e boa vontade em procurar e desenvolver um tema relevante e de interesse do aludo da universidade e da empresa Agrade o a todos os meus colegas de mestrado e PIPCA pela ajuda que sempre foi oferecid
60. WORD Seqii ncia de 32 bits 8 SINT Short integer 8 USINT Unsigned short integer 8 INT Integer 16 UINT Unsigned integer 16 DINT Double integer 32 UDINT Unsigned double integer 32 REAL Real 32 Tabela 5 2 Tipos de Dados da CLPScript 5 3 Variaveis Uma vari vel uma rea de mem ria que armazena um tipo de dado definido na se o Tipos de Dados Todas as vari veis devem ser declaradas antes de serem usadas 5 3 1 Declara o de Vari veis Cada declara o pode conter diversas vari veis separadas por v rgula Neste caso todas ser o de um mesmo tipo lt Varl gt lt Var2 gt lt VarN gt lt tipo gt lt Literal gt Vetores unidimensionais podem ser declarados usando para palavra reservada ARRAY Os limites inferiores e superiores podem ser livremente especificados lt vetor gt ARRAY lt limite inferior gt lt limite superior gt OF lt tipo gt 5 3 2 Categorias de Vari veis Uma categoria define o tipo de acesso e o escopo de uma vari vel E identificada por duas palavras chaves que definem o in cio e o fim da declara o de vari veis de uma categoria conforme mostra a Figura 5 1 50 lt Categoria gt lt declara o1 gt lt declara o 2 gt lt declara o N gt END_VAR Figura 5 1 Categorias de Vari veis em CLPScript Existe tr s categorias poss veis VAR GLOBAL Permite acesso de leitura e escrita Vari veis declaradas nesta categoria po
61. _ Constantes Mem rias 2 KD_ Constantes Decimais 4 KF Constantes Reais 4 TM_ Tabelas Mem rias 2 por posi o TD Tabelas Decimais 4 por posi o WTF Tabelas Reais 4 por posi o 8 3 O programa XMLtoLD Conversor XML para LD Altus O programa XMLtoLD l um arquivo XML gerado pelo CLPStoXML interpreta suas tags e atributos e gera um arquivo no formato bin rio contendo o assembly dos microcontroladores Intel 8051 e 80C251 INT96 utilizado pelos controladores program veis Altus O programa XMLtoLD foi desenvolvido em Visual C 6 0 HOLO1 com MFC Tabela 8 2 Operandos de CPs Altus KAI99 e dividido estruturalmente em tr s grandes m dulos e M dulo 1 A leitura do arquivo XML efetuada utilizado se um parser XML de dom nio p blico e M dulo 2 A gera o de um arquivo texto intermedi rio com os mnem nicos das instru es assembly Altus e M dulo 3 A gera o do c digo bin rio LD Altus a partir deste arquivo intermedi rio Denominou se este arquivo intermedi rio com os mnem nicos assembly Altus de ProLD Seu objetivo representar as instru es LD na forma textual para em seguida serem convertidas para c digo bin rio Os arquivos deste tipo s o gerados com a extens o PLD 93 Este processo semelhante ao utilizado em compiladores tradicionais onde a linguagem fonte original convertida em um arquivo ASM com os mnem nicos do processador e
62. a para a aplica o A norma determina que qualquer programa escrito em qualquer das 4 linguagens LD FBD ST ou IL pode ser convertido em um programa equivalente nas outras linguagens mas n o diz nada sobre como fazer isto Nenhum algoritmo ou esquema de convers o est documentado TOU97 Sendo assim alguns fabricantes de CPs que implementaram mais de uma linguagem da IEC 1131 3 desenvolveram seus pr prios sistemas de convers o entre linguagens com algoritmos propriet rios n o padronizados e que tamb m n o s o p blicos pois a maioria destes softwares de uso comercial Os softwares de programa o de controladores program veis ALL94 ALTOS ROC99 s o em sua grande maioria propriet rios e seus fornecedores n o disponibilizam os detalhes de implementa o e muito menos o c digo fonte Al m disto As linguagens LD e FDB s o linguagens gr ficas padronizadas para que possam ser utilizadas da mesma forma em CPs de diferentes fabricantes Entretanto o formato bin rio no qual os programas desenvolvidos nestas linguagens s o armazenados propriet rio n o padronizado e diferente a cada fabricante O programa gr fico LD ou FBD feito com o software de determinado fabricante s pode ser utilizado naquele fabricante Para ser utilizado em outro preciso digit lo novamente no software programador deste outro fabricante ou seja reprogramar toda a aplica o com todo o custo de um processo desta
63. a 6 20 XML de Comando CASE 72 6 4 6 Tags XML de Comando FOR O Comando FOR inserido no XML atrav s da tag FOR e dos atributos VAR e TO A vari vel de controle especificada no atributo VAR e sua inicializa o feita no comando atribui o que precede a tag FOR O s statement s a serem executados ficam aninhados dentro da tag FOR conforme mostra a Figura 6 21 VAR lt ATRIBUICAO gt I INT lt Bloco instr MOVE inl 0 in2 1 gt n vel array 1 10 of lt ATRIBUICAO gt real lt FOR var i to 9 gt END_VAR lt ATRIBUICAO gt a lt Blocol instr ADD inl i in2 1 gt for i 0 to 9 lt Bloco instr MOVE in1 0 in2 nivel Blocol OUT gt do nivel i 1 0 lt ATRIBUICAO gt end_for FOR gt Figura 6 21 XML de Comando FOR 6 4 7 Tags XML de Comando WHILE O Comando WHILE inserido no XML atrav s das tags WHILE e DO Entre estas duas tags aparece m o s bloco s com a avalia o da express o de condi o de entrada no la o WHILE Dentro da tag DO aparece o xml dos comandos correspondentes conforme mostra a Figura 6 22 lt WHILE gt lt Blocol instr LT inl x in2 7 gt lt DO gt lt Bloco2 instr ADD inl x in2 1 gt lt Bloco instr MOVE inl Blocol OUT in2 x gt lt DO gt WHILE gt Figura 6 22 XML de Comando WHILE WHILE x lt 7 DO Xe SHE END_WHILE 6 4 8 Tag
64. a com boa vontade Sumario LISTA DE FIGURAS ensinos Sit seek Gee Sie A eens Denil ae eee si eai dans viii LISTA DE TABELAS creire e a E RE anti e et AALS xi LISTA DE ABREVIATURAS a aieeaa Ne K Eeee r EErEE Er AE EEE eE EE Se dada aa wines xii RESUMO ke ot AS ee Gyo eg Eaa ore eee hee xiii ABSTRACT TE I e EEA E N EEA EEE E Era ara A pad areas cas xiv 1 INTRODU O SS DE RI SRD 1 11 INTRODU O PEE E E ela nee Ron ehh Japi cana a ee ae ET 1 12 MOTIVA O E CONTEXTO DO TRABALHO cssccesssseeeessnececsessececseceecesaeeeceesaeeecseseeeessneeecsaaeees 3 1 3 PROBLEMA meinata r a e E E E E LER RR E Ma E e ande a pensem aaa E 3 1 4 QUEST O DE PESQUISA ma E E E A EEA IESS 4 1 5 OBJETIVO e AR E E E RE E A E EE 4 1 6 ORGANIZA O DO TRABALHO oi e e E EEEE E E A EEE EEE ER 5 2 REVIS O BUTE se crs ct eta et the OO CAVALOS et eae ta ia ca 7 2 1 LINGUAGENS ESPEC FICAS DE DOMINIO s s csseseeseseeseescnseseeecasesesecneeaeeecneeaeeecneeseercneeaeeneneeaeers 7 2 1 1 Defini o ss oss cer oe ee oa ENTAO eee cca Cok Beng Seb env Ok Ora si LU Ua teen sad eu a aN ane ake cee et 2 1 2 Vantagens de USOS iii sok Ras i sions pesos a eves Aas dS ee Nes aes A 2 1 3 Implementa o see si icc Rees das ave SAS ENTRE hen ee ais Bede oe 2 2 MU eesecccct ts gubecoen bn theatsccosbeo Ui tee ese Hie ee ahd AE E ESE eet 2 2 1 Documentos X ME senai rst O Es Serbia Whaat dicate aes ada 2 2 2 Valida o is vs scsessesisdesstacathashieasesheatasuaseSea Stvaig
65. acteriza por ter diversas entradas mas apenas uma sa da Quando chamada com os mesmos par metros de entrada a fun o sempre retorna o mesmo valor na sa da Uma fun o pode ser declarada da forma mostrada na Figura 2 4 13 FUNCTION lt nome gt lt tipo_retorno gt VAR INPUT END VAR VAR END VAR lt corpo da fun o gt END FUNCTION Figura 2 4 Declara o de Fun o O lt corpo da fun o gt corresponde ao c digo da fun o que pode ser escrito em qualquer uma das 5 linguagens O c digo da fun o ir conhecer somente as suas vari veis declaradas em VAR INPUT e VAR N o ser poss vel para a fun o conhecer as vari veis declaradas em outras fun es ou no programa principal Antes que a fun o retorne rotina que a chamou dever ser atribu do o valor de retorno 2 3 1 4 Bloco de Fun o Um Bloco de Fun o um trecho de c digo que poder ser chamado diversas vezes pelo programa principal por outro bloco de fun o ou por outras fun es Ele se caracteriza por ter diversas entradas e uma ou mais sa das Quando chamada com os mesmos par metros de entrada um bloco de fun o pode retornar valores diferentes nas sa das pois estas dependem n o somente das entradas mas tamb m de vari veis que determinam seu estado interno O bloco de fun o equivalente a um circuito integrado CT representando uma fun o especializada de controle Ele possui intern
66. amente dados e algoritmo podendo portanto manter o hist rico do passado Possuem uma interface bem definida e vari veis internas da mesma forma que um CI caixa preta Um bloco de fun o pode ser declarado da forma mostrada na Figura 2 5 FUNCTION BLOCK lt nome gt VAR INPUT END VAR VAR OUTPUT END VAR VAR END VAR lt corpo do bloco de fun o gt END FUNCTION BLOCK Figura 2 5 Declara o de Bloco de Fun o 14 O lt corpo do bloco de fun o gt corresponde ao c digo do bloco de fun o que pode ser escrito em qualquer uma das 5 linguagens Os blocos de fun o precisam ser instanciados para que possam ser chamados pois cada instancia armazena seu pr prio conjunto de vari veis de estado interno 2 3 1 5 Programas Os programas s o a unidade de execu o principal em um CP compat vel com IEC 1131 3 Um programa muito similar a um bloco de fun o conforme mostra a Figura 2 6 PROGRAM lt nome gt VAR INPUT END VAR VAR OUTPUT END VAR VAR END VAR lt corpo do programa gt END PROGRAM Figura 2 6 Declara o de Programa O lt corpo do programa gt corresponde ao c digo do programa que pode ser escrito em qualquer uma das 5 linguagens da norma 2 3 2 A Linguagem LD Os controladores program veis surgiram para substituir pain is de controle a rel s Neste contexto uma linguagem de programa o que mais se aproximasse da ex
67. ap tulo apresenta a linguagem CLPScript a partir da qual a arquitetura XML ser gerada 46 5 A Linguagem CLPScript Resumo Este cap tulo define a linguagem CLPScript uma extens o de um sub conjunto da linguagem ST usada para gerar e formalizar a arquitetura XML proposta A linguagem CLPScript permite escrever programas que s o compilados para o formato XML que permite a interoperabilidade entre as linguagens da norma IEC 1131 3 Ap s uma an lise das linguagens da norma optou se por utilizar ST como linguagem hospedeira de CLPScript As raz es para utiliza o da linguagem ST como hospedeira s o e criar uma nova linguagem do zero muito trabalhoso e desnecess rio e os programadores e o mercado j conhecem linguagens no estilo ST e seu uso simples e pode se utilizar uma vers o mais enxuta da ST Como exemplo de outras linguagens que s o baseadas em uma linguagem hospedeira pode se citar dentre outras JSP que utiliza Java MOROO como linguagem hospedeira WebCompose CRE00 que utiliza Lua como linguagem hospedeira e GlueScript HANO3 que utiliza Java JSP como linguagem hospedeira Estas duas ltimas citadas WebCompose e GlueScript foram desenvolvidas no contexto do Laborat rio de Engenharia de Software do PIPCA da Universidade do Vale do Rio dos Sinos A linguagem CLPScript portanto uma extens o de um sub conjunto da linguagem ST 47 Esta se o define as partes do ST que f
68. articular fam lia de problemas DEU00 Em vez de ser uma linguagem gen rica uma DSL captura precisamente a sem ntica do dom nio SPI00 atrav s de abstra es e nota es apropriadas As DSLs s o linguagens de uso espec ficas ao contr rio de linguagens tradicionais de uso gen rico tipo C STROO ou Java MORO0 Representam uma alternativa ao uso destas linguagens tradicionais embora um sistema possa utilizar as duas abordagens simultaneamente cada uma na forma mais conveniente as linguagens tradicionais para construir os componentes ou partes do software e as DSLs para fazer a integra o ou conex o destes componentes OUS98 PEPO1 Alguns exemplos de DSLs conhecidas s o lex yacc HTML VHDL o shell e comando make do Unix Em DEUOO Arie van Deursen apresenta diversas refer ncias para DSLs nas reas de engenharia de software sistemas de software multim dia e telecomunica es 2 1 2 Vantagens de Uso Os benef cios do uso de uma DSL s o e permitem solu es expressadas no idioma e no n vel de abstra o do dom nio do problema DEU00 e utilizam express es concretas no dominio do conhecimento SPI00 capturando as funcionalidades espec ficas em uma forma concreta e leg vel e permitem que os pr prios especialistas do dom nio possam entender validar modificar ou at mesmo desenvolver os programas sem que seja necess rio aprender C ou Java ou outra linguagem gen rica qual
69. azem parte da CLPScript As extens es inclu das s o as relacionadas com os operandos do CP e outras facilidades para a gera o do XML 5 1 Elementos Comuns da IEC 1131 3 Esta se o define os elementos comuns da IEC 1131 3 utilizados na CLPScript S o itens presentes em todas as linguagens padronizadas pela norma 5 1 1 Nota es L xicas A norma IEC 1131 3 define diversas nota es para representar valores e dados Esta se o descreve as nota es utilizadas Item Descri o Letra qualquer letra de a z mai scula ou min scula digito qualquer digito de 0 9 digito bin rio qualquer digito de 0 1 digito octal qualquer digito de 0 7 digito hexadecimal qualquer digito de 0 9 ou qualquer letra a z mai scula ou min scula Tabela 5 1 Nota es L xicas 5 1 1 1 Identificadores Um identificador usado para nomear diferentes elementos dentro da linguagem sendo um elemento nico dentro do seu escopo E formado por uma seqii ncia de letras n meros ou do caracter subscrito _ Deve come ar por letra ou pelo caractere de subscrito Apenas os primeiros 32 caracteres da sequ ncia s o considerados os demais n o ter o significado e s o ignorados O uso de letras mai sculas ou min sculas fazem diferen a no identificador ou seja Nivel Vasol nivel vasol ou Nivel vasol n o s
70. bool processarComandolf bool processarComandoReturn bool processarComandoCase bool processarComandoWhile bool processarComandoFor bool processarComandoRepeat bool processarComandoExit bool processarComandoAtribuicao bool processarExpressao void processarChamadaFuncao bool processarPassagemParametros tkEsq Tokenld pParametros CParametros bool verificarPassagemParametrosArray const CString amp const CParametros amp bool verificarPassagemParametrosFuncao const CString amp const CParametros amp bool atualizarTabelaFuncoes strNomeFuncao const CString amp void ErroSintatico pszFormat const char void buscarProximoToken bool isVariavelDeclarada strNomeVar const CString amp bool isArrayDeclarado strNomeArray const CString amp bool isFuncaoDeclarada strNomeFuncao const CString amp bool match tkld Tokenld bool match tkld1 Tokenld tkld2 Tokenld bool evaluate VALUE void evaluateO VALUE void evaluate1 VALUE void evaluate2 VALUE void evaluate3 VALUE void evaluate4 VALUE void evaluate5 VALUE void evaluateChamadaFuncao value VALUE bool arithm const CToken amp VALUE VALUE void atom VALUE void atomArray pValue VALUE void atomFuncao pValue VALUE void Figura 7 3 Defini o da Classe CSintatico de CLPStoXML 85 7 2 BNF da Linguagem CLPScript Esta se o apre
71. c gt DO lt afirma es gt END FOR Figura 5 8 Comando FOR em CLPScript Primeiramente lt vari vel controle gt inicializada com o valor de lt expr_inicial gt No in cio de cada repeti o verificado se o valor de lt vari vel controle gt excedeu o valor definido por lt expr final gt Se n o excedeu o bloco de afirma es executado Caso contr rio o comando encerrado No fim da execu o do bloco lt vari vel controle gt incrementado em 1 ou pelo valor definido por lt expr inc gt Tanto a lt vari vel controle gt como as express es lt expr inicial gt lt expr inicial gt e lt expr final gt devem ser do mesmo tipo SINT ou INT 58 5 7 Itens Desconsiderados da Norma A defini o da CLPScript desconsiderou os seguintes aspectos da linguagem ST da norma IEC 1131 3 e strings e inicializa o de vari veis e tipos de dado struct enumerados e sub range e function blocks e resource task e configuration 5 8 Conclus o Este cap tulo apresentou a defini o da linguagem CLPScript criada a partir da linguagem ST da norma IEC 1131 3 Procurou se manter em CLPScript um m nimo de comandos imprescind veis em uma linguagem de alto n vel e retirou se op es mais complexas tais como estruturas de dados structs e cria o de novos tipos de dados definidos pelo usu rio No contexto da automa o industrial este conjunto de comandos selecionados j de gra
72. claradas com mapeamento de operandos n o s o inicializadas o uso da palavra reservada CONSTANT ser permitido ele serve para indicar que a vari vel n o ser modificada no decorrer do programa 51 A sintaxe de declara o da instru o AT lt vari vel gt AT lt operando CP gt lt tipo gt Os tipos permitidos na declara o devem ser compat veis com os operandos 5 4 Fun es Uma fun o um trecho de c digo que poder ser chamado diversas vezes pelo programa principal ou por outras fun es Ela se caracteriza por ter diversas entradas mas apenas uma sa da 5 4 1 Fun es Definidas pelo Usu rio Uma fun o pode ser declarada da seguinte forma mostrada na Figura 5 2 FUNCTION lt nome gt lt tipo retorno gt VAR INPUT END VAR VAR END VAR lt corpo da fun o gt END FUNCTION Figura 5 2 Declara o de Fun o em CLPScript Antes que a fun o retorne rotina que a chamou dever ser configurado um valor de retorno Esta opera o poder ser feita atribuindo se um valor para o nome da fun o Uma fun o pode chamar outra fun o definida pelo usu rio desde de que ela j tenha sido declarada Uma fun o n o poder chamar a si mesma isto n o pode ser recursiva 5 5 Programa O programa trecho de c digo onde come a a execu o do m dulo Um programa pode acessar todas as vari veis globais e fun es definidas no m dulo dec
73. cript ee 58 Figura 5 7 Comando REPEAT em CLPScript eee 58 Figura 5 8 Comando FOR em CLPScript esseceeeeeseeeeenceneeseeneenseseeneoneeeeeneees 58 Figura dG AME de Declara es airn cosas inca eld indi caqui ice adia 62 Figura 6 2 Declara o de Vari veis no Step 7 cceceeeeeeeeeeeeeeeeeeeeeeeeeeeeaaeeeeeeeaaes 63 Figura 6 3 XML de um Bloco Hlementar ices inp cessagre mas inss asd ig O SETE Ega as 63 Figura 6 4 XML de Dois Blocos Conectados eee 64 Figura 6 5 Diagrama LD no RSLogix da Rockwell 65 Figura 6 6 XML do Diagrama LD no RSLogix da Rockwell 65 Figura 6 7 Diagrama LD no MasterTool MT4100 da Altus 66 Figura 6 8 XML do Diagrama LD no MasterTool MT4100 da Altus 66 Figura 6 9 Diagrama FBD no Step7 da Siemens eram 67 Figura 6 10 XML do Diagrama FBD no Step7 da Siemens is 67 Figura 6 11 XML de Express o Aritm tica ccceeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeaaeeeeeeaaee 69 Figura 6 12 XML de Express o L GICA sicisssisasnissiesDosisasmaivis cana hearse eds 69 Figura 6 13 XML de Declara o de Array cccsesseceessessersessesseeeessesseneessensereeseaes 69 Figura 6 14 XML de Array em Expresses eceeeeeeeeeeeeeeeeeeeeeeeaeeeeeeeaaeeeeeenaaes 70 Figura 6 15 XML de Array em Express o Complexa ssseeeeeeeeeee
74. das dos blocos ADD gerados a partir do CLPScript original O m dulo 3 do programa XMLtoLD gera o arquivo final P relogi 020 que pode ser utilizado no MasterTool e nos controladores program veis Altus Este arquivo cont m o c digo bin rio LD correspondente ao relogi pld da Figura 8 7 e mostrado nas 3 pr ximas figuras 108 S P RELOGI 020 L gicas 7 Tamanho 218 bytes L gica 000 BO1_OUT B01 OUT Figura 8 9 Diagrama LD Gerado L gicas 000 e 001 L gica 002 IFA ORA Figura 8 10 Diagrama LD Gerado L gicas 002 003 e 004 104 L gica 005 Figura 8 11 Diagrama LD Gerado L gicas 005 e 006 A Figura 8 9 mostra o diagrama LD correspondente ao trecho de c digo de avalia o da express o do IF if minuto gt 59 A Figura 8 10 mostra o diagrama LD correspondente ao THEN deste IF onde s o feitas as atribui es minuto 0 e hora hora 1 Observe se que hora 1 considerado uma express o que avaliada antes da atribui o Observe se tamb m que as tr s l gicas correspondentes ao THEN possuem um contato normalmente aberto do operando IF correspondente em s rie com todos os blocos pertencentes a este THEN A Figura 8 11 mostra o diagrama LD correspondente ao ELSE onde s o feitas a atribui o minuto minuto 1 Observe se que estas l gicas possuem um contato normalmente fechado em s rie com todos os blocos seguintes
75. de in cio de colunas marcas de in cio de nova l gica cabe alhos de arquivo checksum et cetera Uma outra particularidade o chamado otimizador de c digo existente no MasterTool que por quest es de desempenho procura ao longo do programa instru es que possam ser suprimidas sem que causem altera es na execu o do programa Pode se citar como exemplo duas instru es MOV consecutivas movendo o mesmo valor para o mesmo registrador Uma destas instru es poderia ser removida e isto que o otimizador de c digo faz O programa XMLtoLD precisou levar em considera o esta informa o para que o c digo gerado pudesse ser reconhecido no MasterTool O m dulo 3 depende unicamente do arquivo ProLD para ser executado O arquivo ProLD possui as seguintes caracter sticas e uma linha corresponde a ou v rias instru es e seus par metros inserida numa nova l gica Para colocar duas instru es conectadas na mesma l gica utiliza se o caracter na mesma linha de ProLD e n o contem nomes de vari vel apenas operandos do CP Todas as vari veis foram alocadas em operandos do CP no m dulo 2 e linhas come ando com significam coment rios e portanto s o desprezadas A Tabela 8 5 mostra as instru es aceitas no arquivo ProLD e o n mero de operandos esperado em cada uma A palavra Macro foi usada para ressaltar que uma linha ProLd vai gerar mais do que uma instru o Altus 99 Descri
76. de teste for verdadeira Opcionalmente poss vel inserir outras condi es de teste com a clausula ELSIF sendo que apenas o grupo de afirma es onde o primeiro teste for verdadeiro que ser executado 56 IF lt express o booleana gt THEN lt afirma es gt ELSIF lt express o booleana gt THEN lt afirma es gt ELSE lt afirma es gt ENDIF Figura 5 4 Comando IF em CLPScript Opcionalmente poss vel especificar um bloco de afirma es para ser executado caso todos os testes falhem atrav s da clausula ELSE 5 6 6 Comando CASE O comando CASE mostrado na Figura 5 5 executa apenas um bloco de afirma es dentre v rios poss veis A sele o feita pela compara o do valor inteiro de lt express o inteira gt com os valores dos lt casos gt CASE lt express o inteira gt OF lt casos gt lt afirma es gt lt casos gt lt afirma es gt ELSE lt afirma es gt END CASE Figura 5 5 Comando CASE em CLPScript Opcionalmente poss vel especificar um bloco de afirma es para ser executado caso todos os testes falhem atrav s da clausula ELSE 5 6 7 Comandos de Itera o Um comando de itera o executa repetidamente um bloco de afirma es O n mero de vezes que executado depende do tipo de itera o que pode ser o comando WHILE o comando FOR ou o comando REPEAT Para todos os comandos poss vel interromper o la o da itera
77. do a chamada de um bloco correspondente com os dois operandos como entrada conforme mostra a Figura 6 11 A representa o destes blocos a mesma descrita anteriormente 68 lt Blocol instr SUB inl x in2 3 gt yl x 3 5 6 lt Bloco2 instr MUL inl Blocol OUT in2 5 6 gt lt Bloco3 instr ADD inl Bloco2 0UT in2 y1 gt Figura 6 11 XML de Express o Aritm tica O atributo instr de express es pode assumir os seguintes valores e EQ GT GE LE LT NE e AND OR XOR e ADD SUB MUL DIV EXPT Os atributos EQ at XOR correspondem a uma opera o l gicas e representam blocos que possuem sa da OUT do tipo bool Os atributos ADD at EXPT correspondem a uma opera o aritm tica e representam blocos nos quais o tipo da sa da OUT varia com o tipo das entradas A Figura 6 12 mostra o exemplo de uma express o l gica lt Bloco4 instr GT inl A in2 B gt A gt B and A gt C lt BlocoS instr GE inl A in2 C gt lt Bloco6 instr and inl Bloco4 0UT in2 Bloco5 OUT gt Figura 6 12 XML de Express o L gica 6 4 1 1 XML de Array nas Express es A norma IEC define a sintaxe de declara o e utiliza o de arrays em suas linguagens Para declarar um array em XML utiliza se a mesmo tag VAR descrito anteriormente conforme mostra a Figura 6 13 VAR M array 1 10 of real lt VAR nome M
78. e que conforme o fabricante cada bloco pode possuir uma ou mais entradas uma ou mais sa das e um ou mais par metros conforme resumido na Tabela 6 2 64 Fabricante N Entradas N Sa das N Par metros RSLogix Rockwell uma nica varias varios MasterTool Altus varias varias varios Step7 Siemens varias varias nenhum Tabela 6 2 Compara o de Blocos Entre Fabricantes Um bloco conforme a norma a norma IEC 1131 3 um POU ou seja um programa fun o ou bloco de fun o Existem blocos pr definidos e blocos criados pelo usu rio O que a norma n o define por m s o par metros de blocos Os fabricantes que os utilizam portanto est o fora da norma Em termos de armazenamento no XML entretanto pode se tratar par metros de forma semelhante a uma entrada do bloco 6 3 1 1 Exemplo de LD da Rockwell A Figura 6 5 mostra um diagrama LD criado no software programador RSLogix da Rockwell ROC99 ROC00 com um bloco temporizador TON conectado a um bloco comparador GRT ER LAD 2 Of x TON Timer On Delay Greater Than A gt B Timer Source A N 1 Time Base Preset Source B 45 Accum Figura 6 5 Diagrama LD no RSLogix da Rockwell A Figura 6 6 mostra a representa o XML correspondente Os par metros do bloco TON Timer Time Base Preset Accum e os do bloco GR Source A e Source B foram representados como se fossem uma entrada normal do bloco lt B
79. e Express es da CLPScript name 87 BNF de Statements da CLPScript eae 87 Simbologia utilizada na BNF da CLPScript ceceeeeeeeeeeeeeeeeeeee eens 88 Instru es de CPS AGUS a ccditcn sciatica tricinta tata indi dates Cadence dia dias 92 Operandos de CPs ANUS catar scien did enticed nN iis oi ian 93 Aloca o de Operandos para as Vari veis 96 Aloca o de Operandos para Sa da de Blocos iiii 96 Instru es Aceitas no Arquivo ProLD ae 100 xi Lista de Abreviaturas BNF Cl CLP CP CTT DSL DTD FBD HTML IEC IEEE ILA LD MFC PLC POU SFC SGML ST UML VHDL VHSIC W3C XML Backus Normal Form Circuito Integrado Controlador L gico Program vel Controlador Program vel Mnem nico da instru o contato na linguagem Ladder Domain Specific Language Document Type Definition Function Block Diagram HyperText Markup Language International Electro Technical Commission Institute of Electrical and Electronics Engineers Instruction List Interpretador de Linguagem Algoritmica Ladder Diagram Microsoft Foundation Classes Programmable Logic Controller Program Organization Unit Sequential Function Chart Standard Generalized Markup Language Structured Text Unified Modeling Language VHSIC Hardware Description Language Very High Speed Integrated Circuits World Wide Web Consortium Extensible Markup Language xii Resumo A norma
80. e Figuras Figura 1 1 Arquitetura da Solu o Proposta ccecsesseseencceeereeneossereensensereeneonees 5 Figura 2 1 Exemplo de Tags e Atributos em XML aeee 10 Figura 2 2 Declara o de Novos Tipos ainsi ias ns assess 13 Figura 2 3 Declara o de VaravelS assinei iosnenasniaasaeiidesanei ciusanes ias anaisd poi itunes 13 Figura 2 4 Declara o de Fun o msisasimcisisiecaisisiassaaio beisuaidinhenaid unia ara nal sntisamad s 14 Figura 2 5 Declara o de Bloco de Fun o sereia 14 Figura 2 6 Declara o de Programa ecceceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeneaeeeeeenaaes 15 Fruta 2 73 Laine semi pan Gs ato iso rasga a 16 Figura 2 8 Elementos da Linguagem LD ii eeeeereeeeaaeraenaaaa 16 Figura 2 9 Exemplo del escanear qua ads add lara ca adam dad 17 Fig ra 2 10 Exemplo de EBD ani dns a eT ery peremen tee emer peter eter 18 Fieura 2 1 1 Exemplo de ST ccissssivctseiseiisersuviiecninciverscndisnectevteneeiectanvavectdneuwev denna 18 Figuta 2 12 Exemplo de ME essi fugas af ane Ad veneer neua is ER Plim DD 19 Figura 2 13 Exemplo de SPC sesiswcissntswesineianedsneianssdationnilncnencndnsnennnmasmenentedmenenennbs 19 Figura 3 1 Exemplo de SIPN de M quina Furadeira eeeeeeeseeeeeeeeeeeeeeeeeeees 22 Figura 3 2 Declara o das Entradas e Sa das em IL ie 23 Figura 3 3 C digo de SIPN gerado em linguagem IL cceeeeeeeeeeeee
81. eeeeeeeeeeeeeaees 70 Figura 6 16 XML de Comando Atribui o ii eeeerraaeeeeaeraanana 11 Figura 6 17 XML de Chamada de Fun o ccccccseeeeseeeeeeeeeeeeecsneeseeseneeeeeeeeeeoneees 11 Figura 6 18 XML de Chamada de Fun o com Express o de Entrada 11 Figura 6 19 XML de Comando TR e ssaesu susana sai sra e ade 72 Figura 6 20 XML de Comando CAS Eins hacia iatrA painaseiled baked ations 72 Figura 6 21 XML de Comando FOR ccccccceeceeeeeeseeeeeeeeeeeeeceeeesenseeeeeeeeneceneuens 73 Figura 6 22 XML de Comando WHILE ss cssnrninesinecenstitvnanptethnmsticvacsatenentieceauesh 73 Figura 6 23 XML de Comando REPEAT ice 74 Figura 6 24 DTD da Arquitetura XML 1 parte 76 Figura 6 25 DTD da Arquitetura XML 2 parte ii 77 Figura 7 1 Compilador CL PSto XML assess ins dase dies vaaecdoatsaytveetineeveerdesiieevinetanavenstes 82 Figura 7 2 Diagrama de Classes do Programa CLPStoXML eeeeeeeeeeeeeeeeeeeee 84 Figura 7 3 Defini o da Classe CSintatico de CLPStoXML esseeeeeeeeeeeeeeneeeees 85 Figura 8 1 Programador de CPs Altus MasterTool MT4100 ssec 91 Figura 8 2 Exemplo de Eventos do Parser Expat saem 95 Figura 8 3 Instru es EQ GT GE LT LEE NE no 97 Figura 8 4 Instru es AND OR e XOR a eee eeeeeeeeaaaeeeeesaaeeeeeenaaes 98 Figura 8 5 O programa XMLtoLD ira case tate arara
82. eeeeeeeeeeeeeeees 24 Figura 3 4 A Ferramenta SIPN Editof iusahedcosscnpbanaunsnadsbansecnadanenensdubsnanedatseuted dye 25 Figura 3 5 Um exemplo de PNML iscas sautaanasea oasis dando ssa duas indie nda dia nda nene nanado 26 Figura 3 6 Empresas Membro da PLCOpen emana 27 Figura 3 7 Circuito Eletr nico com Dois Inversores eae 29 Figura 3 8 Linguagem VADL ass ares age a aa a 29 Figura 3 9 Diagrama L gico com Portas AND OR XOR e NOT 30 Figura 3 10 VHDL do Diagrama de Portas L gicas aee 30 Figura 3 11 Conex es Criddas no VHDL ssesses crusiss coasens casas cdaddvdnaasieas eativar anes 31 Figura 3 12 Diagrama L gico de Contador e Comparadores 32 Figura 3 13 VHDL do Diagrama L gico de Contador e Comparadores 32 Figura 3 14 Exemplo de Loops em FBD a aeeeeeaeraanaaa 33 Figura 4 1 Realimenta o em FBD cce discs cients ciddamdstntd duende cb dra adia dat s di h das 36 Figura 4 2 Liga o horizontal e Bloco OR Equivalente eeeeeeeseeeeeeeeeeeeeeeeeeeee 36 Figura 4 3 Equival ncia entre Diagramas LD e FBD 37 Figura 4 4 Comando Atribui o em ST LD e FBD eee eeeeeeeeeeeeeeeeeeeeaee 38 Figura 4 5 Express o L gica em ST LD e FBD eee eeeeeeeeeeeeeeeeeenaee 38 Figura 4 6 Analogia entre Circuito El trico e Express o L gica LD
83. egras b sicas de formata o O aspecto mais importante o aninhamento correto Um elemento est corretamente aninhado se as suas tags de in cio e fim est o dentro do mesmo elemento pai Os documentos XML come am sempre pela declara o lt xml version 1 0 gt 2 2 2 Valida o Um documento XML bem formado se ele seguir as regras de sintaxe de formata o resumidas na se o anterior Um documento XML v lido quando bem formado e segue as regras de valida o definidas pelas DTDs Document Type Definitions Uma DTD um conjunto de regras que define que tipo de dados e entidades fazem parte de um documento XML a sua ordem e atributos e seu conte do Essas regras podem ser definidas externamente em arquivos DTD ou internamente dentro do pr prio arquivo XML Um analisador de documentos pode checar os dados do arquivo 10 XML analisando as regras contidas na DTD para ter certeza de que esta estruturado corretamente As DTD s o opcionais As DTDs s o uma ferramenta excelente para uma enorme variedade de aplicativos em que o grau de formalismo necess rio moderado e defini es como o conte do s o dados de caracteres s o suficientes Outros aplicativos por m requerem defini es muito mais precisas tais como O conte do s o dados de caracteres representando um ponto flutuante menor que 9 69 Para tais aplicativos o W3C criou o XML Schema ARC02 O XML Schema uma linguagem
84. elo usu rio Em CARO1 Luigi Carro cita as seguintes vantagens no uso de uma linguagem de descri o de hardware e permitem maior poder de abstra o ao projetista tornando poss vel que projetos maiores possam ser desenvolvidos e ouso de s ntese torna o projeto independente das tecnologias de fabrica o de chips Assim um projeto pode beneficiar se da ltima fronteira de tecnologia um migrar para outra t cnica de implementa o e o uso de s ntese melhora a produtividade e perde muito pouco de qualidade em rela o a um projetista humano A s ntese r pida v rios estilos de descri o e v rias solu es podem ser tentadas em curto espa o de tempo o que imposs vel em um projeto manual 28 e facilidades de manuten o pois a linguagem serve tamb m para documentar o hardware sintetizado A seguir mostrado um exemplo de um circuito eletr nico simples e a descri o VHDL correspondente de um de seus componentes Buf Figura 3 7 Circuito Eletr nico com Dois Inversores A Figura 3 7 mostra um circuito eletr nico com dois inversores conectados Um inversor um componente eletr nico que ativa sua sa da quando sua entrada n o est ativa e desativa a sa da quando a entrada ativada Entity inversor is port inf in std_logic outi out std_logic end inversor architecture comportamento of inversor is BEGIN outi lt not int end comportamento
85. ent o o montador assembly chamado para gerar o c digo bin rio final a partir deste ASM O benef cio ganho com esta divis o que isola se as particularidades dos c digos bin rios do assembly da etapa de leitura e interpreta o do XML O problema original fica dividido em dois problemas menores com uma interface bem definida facilitando a implementa o das partes que ficam independentes uma da outra Facilita tamb m a depura o pois muito mais simples verificar se um arquivo texto foi gerado corretamente do que um arquivo bin rio Os programas aplicativos Altus possuem a restri o de uma nica fun o por arquivo nomes de fun o com no m ximo de 6 caracteres e limite m ximo de 10 par metros de entrada e 10 de sa da Sendo assim o programa XMLtoLD pode gerar mais de um arquivo destino para um mesmo XML de origem conforme o n mero de fun es presentes no XML Os nomes de fun o com mais que 6 caracteres s o truncados As se es a seguir descrevem os tr s m dulos citados do XMLtoLD 8 3 1 M dulo 1 A Leitura do XML A leitura do arquivo XML foi implementada utilizando se o parser expat EXP98 uma ferramenta de dom nio p blico para trabalhar com arquivos XML em C dispon vel para download em http www jclark com xml expat html O expat um analisador sint tico de n o valida o ou seja ele verifica se o XML bem formado mas n o consiste as regras da DTD O expat trabalha co
86. er e do identificador da sa da conforme mostra a legenda B na Figura 4 19 45 A B cri B C D TEE1 y MY X TEE1 CTT1 0UT1 1 Tai 1seg Figura 4 19 Conex o de Bloco Os demais blocos s o instanciados e conectados da mesma forma descrita at aqui A linguagem textual da Figura 4 17 possui toda a informa o necess ria para redesenhar completamente o diagrama original FBD ou LD 4 3 Conclus o Este cap tulo apresentou uma compara o das linguagens ST LD e FBD da norma IEC 1131 3 Da compara o entre FBD e LD concluiu se que a representa o textual de um diagrama gr fico LD se torna um caso particular do FBD desde que as instru es contato e bobina sejam assumidas como se fossem blocos e que as liga es horizontais sejam substitu das por um bloco OR equivalente Da compara o com ST nasce a proposta de representa o do comando IF e demais comandos condicionais da linguagem Para a representa o textual de um diagrama gr fico de blocos conectados percebe se que n o necess rio nenhuma estrutura de dados mais elaborada tipo grafo ou lista encadeada desde que assuma se que cada sa da de bloco possui mem ria alocada para armazenar seu valor e que a informa o de conex es fique sempre armazenada na entrada dos blocos Com isto apresenta se uma representa o textual que usada mais adiante na arquitetura XML O pr ximo c
87. erentes O XML considerado de grande import ncia na Internet e em grandes intranets porque prov a capacidade de interoperabilidade dos computadores por ter um padr o flex vel e aberto e independente de dispositivo As aplica es podem ser constru das e atualizadas mais rapidamente e tamb m permitem m ltiplas formas de visualiza o dos dados estruturados 2 2 1 Documentos XML Os documentos XML s o formados por elementos que s o delimitados por tags de in cio e fim e podem conter outros elementos e textos Uma tag de in cio composta de uma tag de nome e um conjunto de atributos Uma tag de fim cont m apenas o nome do elemento precedido de Um atributo um par nome valor separado por um sinal de igual O valor de um atributo deve estar envolto em sinais de aspas simples ou duplas O espa amento entre o nome do elemento e os atributos bem como o espa amento entre nomes e valores de atributos irrelevante ARCO2 lt local gt lt universidade gt nome Unisinos cidade S o Leopoldo lt universidade gt lt local gt Figura 2 1 Exemplo de Tags e Atributos em XML A Figura 2 1 mostra dois exemplos de tags local e universidade com suas marcas de in cio e fim Mostra tamb m dois atributos da tag universidade chamados nome e cidade com seus valores respectivamente Unisinos e S o Leopoldo Um documento XML deve seguir algumas r
88. f Germany Berger Lahr Germany Bosch Rexroth Germany B amp R Industrie Elektronik Austria Control Techniques United Kingdom Danfoss Drives A S Digital Electronics Japan Elau Germany Fuji Electric Japan Giddings amp Lewis CMS USA Honeywell SMS The Netherlands ISA Triplex Canada Infoteam Software Germany Keba Austria Kirchner Soft GmbH Kloeckner Tevopharm Netherlands Kuka Germany KW Software Germany Lenze Germany LG Industrial Systems South Korea Matsushita Electric works Germany Mitsubishi Electric Europe Germany Nyquist Industrial Control The Netherlands Omron Co Japan Online Development USA Parker Automation Germany Philip Morris USA Phoenix Contact Germany Rockwell Software USA Selectron Systems AG Switserland Softing Germany Siemens Germany SMS Demag AG Germany Schneider Automation Germany Team Spain Teco Czech Republic Triconex USA Wago USA Yokogawa Electric Japan Figura 3 6 Empresas Membro da PLCOpen A PLCOpen promove o ambiente da norma IEC 1131 3 desenvolve diretrizes comuns de implementa o e n veis de conformidade e define laborat rios de certifica o Os membros da PLCopen s o parceiros na defini o e uso desta norma Os comit s t cnicos existentes s o TC1 Padroniza es TC2 Fun es define bibliotecas comuns de fun es e blocos de fun o para reas espec ficas TC3 Certifica o e Testes de Conformidade TC4 Comunica
89. foi projetado pelo W3C para ser amplamente utilizado na Web enquanto que a VHDL foi criada numa poca em que este requisito n o era relevante 60 e as ferramentas mais poderosas de VHDL pertencem a empresas privadas que as comercializam enquanto que para XML existem diversas ferramentas de qualidade e de dominio p blico tais como parsers para leitura e valida o de um documento e o XML uma proposta mais atual uma tend ncia de mercado e desperta um maior interesse da comunidade de engenharia de software da qual fazemos parte 6 2 Representa es Comuns a Todas as Linguagens A norma IEC 1131 3 define elementos que s o comuns s 5 linguagens conforme visto anteriormente Dentre estes est o os tipos de dados e a declara o de vari veis fun es e programas Os tipos de dados e trechos das declara es que aparecem no XML possuem os mesmos nomes definidos na norma Procurou se sempre que poss vel manter no XML a mesma nomenclatura original da IEC A Tabela 6 1 mostra as tags e atributos utilizados na declara o de vari veis fun es e programas Tag no XML Atributos Obrigat rios Atributos Opcionais ARQ Nome FUNCTION Nome Type PROGRAM Nome VAR Nome Type At Atrib VAR INPUT VAR GLOBAL Tabela 6 1 Tags e Atributos XML de Declara es O atributo Nome define o nome do arquivo origem fun o programa ou vari vel conforme a tag em que se encontra O a
90. h xmlparse dll e xmltok dll 8 3 2 M dulo 2 A gera o do ProLD Cada tag e atributo lido do arquivo XML pode disparar a aloca o de um novo operando do CP ou a gera o de uma ou mais instru es LD correspondentes Estas instru es s o gravadas no arquivo texto ProLD para que numa terceira etapa sejam convertidas no formato de c digo bin rio Altus 8 3 2 1 Aloca o de Operandos Durante a leitura do XML todas as vari veis declaradas tags VAR VAR INPUT e VAR GLOBAL devem ser alocadas em operandos do CP correspondentes pois no contexto do CP n o existem vari veis mas sim operandos conforme a Tabela 8 2 mostrada anteriormente 95 Para esta aloca o devem ser selecionados operandos correspondentes em termos de tamanho formato interno e funcionalidade O programa XMLtoLD faz as aloca es para operandos Altus da seguinte forma Tipo B sico IEC 1131 3 Operando Altus correspondente Operando Inicial INT M M10 DINT D D10 REAL WF F10 BOOL bit de A A0 0 Tabela 8 3 Aloca o de Operandos para as Vari veis A Tabela 8 3 mostra a aloca o de operandos Altus para as vari veis encontradas no XML Os operandos iniciais tamb m s o mostrados na figura e podem ser configurados no XMLtoLD Por exemplo a primeira vari vel do tipo INT encontrada no XML alocada para o operando M10 a segunda para o M11 et cetera
91. i o ANY NUM ANY NUM Subtra o ANY NUM ANY NUM Nega o menos un rio ANY NUM 7 Multiplica o ANY NUM ANY NUM Divis o ANY NUM ANY NUM Tabela 5 3 Operadores Matem ticos 53 5 6 1 2 Operadores Relacionais Os operadores relacionais mostrados na Tabela 5 4 executam uma compara o entre dois tipos num ricos Os operandos devem ser do mesmo tipo e a opera o retorna sempre um tipo BOOL Operador Descri o Aplica o lt Menor que ANY NUM lt ANY NUM gt Maior que ANY NUM gt ANY NUM lt Menor ou igual que ANY NUM lt ANY NUM gt Maior ou igual quae ANY NUM gt ANY NUM Igual a ANY ANY lt gt Diferente de ANY lt gt ANY Tabela 5 4 Operadores Relacionais 5 6 1 3 Operadores L gicos e Bit a Bit Estes operadores executam duas opera es diferentes l gica booleana e l gica bit a bit A sele o da opera o feita de acordo com os tipos dos operandos usados Opera es de l gica booleana s o executadas entre operandos do tipo BOOL A Tabela 5 5 representa o resultado de uma opera o booleana para os operadores AND OR e XOR O resultado sempre ser do tipo BOOL Operando A Operando B AND OR XOR FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE Tabela 5 5 Operadores L gicos Opera es
92. ibui es e o projeto da arquitetura XML para permitir a interoperabilidade para as linguagens da norma IEC 1131 3 visto que a norma determina que um programa escrito em qualquer das 4 linguagens LD FBD ST ou IL pode ser convertido em um programa equivalente nas outras linguagens mas n o diz nada sobre como fazer isto e a linguagem CLPScript que gera e formaliza esta arquitetura XML junto com seu compilador CLPStoXML e o estudo comparativo das linguagens LD FBD ST da norma IEC 1131 3 mostrando suas similaridades estruturais e o estudo da representa o textual de diagramas gr ficos que permitiram pensar na arquitetura XML e o estudo comparativo da linguagem IL com a arquitetura XML mostrando que o XML mais adequado que a IL para ser a linguagem intermedi ria na qual todas as demais podem ser convertidas porque com o XML poss vel que se restaure a linguagem original enquanto que com a IL n o poss vel 9 3 Trabalhos Futuros Este trabalho possibilita os seguintes trabalhos futuros 1 a arquitetura XML para representa o dos programas aplicativos pode ser convertida no formado bin rio nativo de determinado processador para que o programa armazenado possa ser executado no hardware correspondente Esta arquitetura XML poderia ser expandida com detalhes espec ficos do processador e hardware necess rios para esta convers o 117 2 a arquitetura XML para representa o dos programas aplicativos pode ser co
93. inas da LD FES00 Contato normalmente aberto Contato normalmente fechado P Contato de pulso positivo N Contato de pulso negativo Bobina simples Bobina de ativa o RE Bobina de desativa o Figura 2 8 Elementos da Linguagem LD Um contato normalmente aberto fornece o valor l gico 1 em sua sa da quando sua entrada est energizada e sua respectiva vari vel A e B na Figura 2 8 valer 1 Um contato normalmente fechado fornece o valor l gico 1 em sua sa da quando sua entrada est energizada e sua respectiva vari vel valer 0 16 Um contato ou rel de pulso positivo fornece o valor 1 em sua sa da para a transi o de O para 1 na sua entrada O contato de pulso negativo opera de maneira inversa A bobina simples atribui o valor 1 para sua respectiva vari vel C na Figura 2 8 se sua entrada estiver energizada caso contr rio atribui o valor 0 A bobina de ativa o ou bobina liga atribui o valor 1 caso sua entrada esteja energizada caso contr rio n o atribui nada o valor da vari vel associada fica inalterado A bobina de desativa o ou bobina desliga atribui o valor O caso sua entrada esteja energizada 1056 0135 Ho Figura 2 9 Exemplo de LD A linguagem LD indicada para aplica es de intertravamento e l gicas combinat rias em geral A Figura 2 9 mostra um exemplo de LD com dois contatos normalmente aberto 1024 e 1056 um contato normal
94. inrza gt lt ATRIBUICAO gt lt THEN gt lt ELSE gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 0 in2 linrza gt lt ATRIBUICAO gt lt ELSE gt lt IF gt lt FUNCTION gt lt PROGRAM nome exemp2 gt lt VAR nome acum type REAL gt lt VAR nome media type REAL gt lt VAR nome nivel type ARRAY 1 20 OF REAL gt lt VAR nome 1i type INT gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 0 in2 acum gt lt ATRIBUICAO gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 1 in2 i gt lt ATRIBUICAO gt lt FOR var 1 to 20 gt lt ATRIBUICAO gt lt Bloco4 instr CHF nome linrza gtdIn 1 inl nivel i type REAL gt lt Bloco5 instr ADD inl acum in2 Bloco4 0UT type REAL gt lt Bloco instr MOVE inl Bloco5 OUT in2 acum gt lt ATRIBUICAO gt lt FOR gt lt ATRIBUICAO gt lt Bloco6 instr DIV inl acum in2 20 type REAL gt lt Bloco instr MOVE inl Bloco6 OUT in2 media gt lt ATRIBUICAO gt lt PROGRAM gt lt ARQ gt Figura 8 12 Programa CLPScript e XML correspondente 106 Observe se que em um mesmo arquivo XML ficam declaradas a fun o linrza e o programa exemp2 A Figura 8 13 mostra os arquivos ProLD correspondentes gerados pelo programa XMLtoLD a b FUNCTION linrza real PROGRAM exemp2 IF1 Vari veis Bloco1 GT medicao O Bloco MOVE 0 acum GT F0011 0 A01 0 MOVE 0 F0014 RN
95. instr ADD inl minuto in2 1 gt lt Bloco instr MOVE inl Bloco3 0UT in2 minuto gt lt ATRIBUICAO gt lt ARQ gt Figura 8 6 Programa CLPScript e XML Correspondente Em seguida utilizou se o programa XMLtoLD para converter do XML para um m dulo conforme mostra a Figura 8 7 LD Altus Os m dulo 1 e 2 do XMLtoLD geram o arquivo intermedi rio relogi pld 102 PROGRAM Relogio IF1 Bloco1 GE minuto 59 GE M0011 59 A01 0 RNA A01 0 BOB A00 0 THEN1 Bloco MOVE 0 minuto RNA A00 0 MOVE 0 M0011 Bloco2 ADD hora 1 RNA A00 0 ADD M0010 1 M0012 Bloco MOVE Bloco2 OUT hora RNA A00 0 MOVE M0012 M0010 ELSE1 Bloco3 ADD minuto 1 RNF A00 0 ADD M0011 1 M0013 Bloco MOVE Bloco3 OUT minuto RNF A00 0 MOVE M0013 M0011 FIM TF1 Figura 8 7 Arquivo Intermedi rio ProLD relogi pld O programa XMLtoLD gera tamb m o arquivo de descri o do operandos alocados mostrado na Figura 8 8 M0010 hora VAR INPUT INT M0011 minuto VAR INPUT INT AO00 0 IF1 BOOL A01 0 BO1_OUT Blocol GE minuto 59 BOOL M0012 BO2_OUT Bloco2 ADD hora 1 INT M0013 BO3_OUT Bloco3 ADD minuto 1 INT Figura 8 8 Arquivo Texto relogi txt Observe se que dos 6 operandos alocados dois correspondem s vari veis declaradas hora e minuto dois foram utilizados na avalia o do IF e os ltimos dois s o as sa
96. ison Wesley 1986 Allen Bradley Controlador Program vel CLP 5 Manual de Montagem amp Instala o Milwaukee USA s n 1994 ABT 1785 6 1 1 ALTERA MAX PLUS II Getting Started Manual USA 1997 PN 25 04803 03 ALTUS S A Manual de Caracter sticas T cnicas S l s n 1998 CD ROM ALTUS S A Descri o de software C digo Execut vel para Diagrama de Rel s Porto Alegre Brasil s n 1998 DS6003 028 7 ver D ALTUS S A Manual de Utiliza o MasterTool Porto Alegre Brasil s n 2002 MP 6299 101 7 ver C ALTUS S A Manual de Programa o MasterTool Porto Alegre Brasil s n 2003 MP 6399 100 4 ver D Arciniegas Fabio C XML Makron Books S o Paulo 2002 Bonfatti Monari e Sampieri TEC 1131 3 Programming Methodology CJ international 1997 Carro Luigi Projeto e Prototipa o de Sistemas Digitais Ed Universidade UFRGS 2001 Crespo S rgio C S P Composi o em WebFrameworks Tese de Doutorado Pontif cia Universidade Cat lica do Rio de Janeiro Agosto 2000 Dattatri Kayshav C Effective Object Oriented Software Construction Second Edition Prentice Hall New Jersey 2000 Deitel Paul J Deitel Harvey M C How To Program Editora Prentice Hall 2002 Deursen Arie van Klint Paul Visser Hoost Domain specific languages CWI Amsterdam 2000 DiaGen The Diagram Editor Generator Dispon vel em http www2 informatik uni erlangen de DiaGen
97. l gicas bit a bit s o executadas quando os operandos s o do tipo BYTE WORD e DWORD sendo que ambos devem ser do mesmo tipo A opera o bit a bit realiza uma opera o booleana individualmente em cada bit dos operandos Estas opera es retornam o mesmo tipo dos operandos usados 54 Operador Descri o Aplica o AND amp E ANY_BIT AND ANY_BIT ANY_BIT amp ANY_BIT XOR OU exclusivo ANY_BIT XOR ANY_BIT OR OU ANY_BIT OR ANY_BIT NOT Complemento NOT ANY_BIT Tabela 5 6 Operadores Bit a Bit 5 6 1 4 Preced ncia de Operadores A avalia o da express o feita de acordo com a preced ncia dos operadores definido na Tabela 5 7 Operadores de maior preced ncia s o avaliados primeiro Caso os operadores tenham a mesma preced ncia o que estiver mais a esquerda ser o primeiro a ser avaliado Preced ncia Operador Descri o O maior express o Express o entre par nteses fun o pl p2 pN Avalia o de fun o 1 ia Eleva o a um expoente inteiro 2 Nega o NOT Complemento 3 ii Multiplica o Divis o MOD Resto 4 Adi o Subtra o 5 lt gt lt gt Compara o 6 Igualdade lt gt Desigualdade 7 AND amp Opera o E booleana XOR Opera o OU exclusivo booleana 8 menor OR Opera o OU booleana Tabela 5 7 Preced ncia de Operadores 5 6
98. l e pelo fato do autor desta disserta o atuar na rea de automa o industrial e ser colaborador da Altus a mais de 5 anos tendo portanto um conhecimento pr vio dos produtos da empresa e acesso documenta es internas necess rias a este 115 tipo de implementa o Salienta se que parte desta documenta o informa o estrat gica da empresa tecnologia propria patenteada e tratada com sigilo O tema desta disserta o foi escolhido porque a adequa o a norma IEC 1131 3 uma area estrat gica para todas as empresas que fabricam software para controladores program veis O assunto selecionado acabou se mostrando uma boa escolha pois conciliou perfeitamente o interesse do aluno da universidade e da empresa envolvida Entende se que os pr requisitos para o desenvolvimento de um trabalho deste porte sao e Conhecimento da rea de automa o industrial e experi ncia em desenvolvimento de programas aplicativos para controladores program veis e Conhecimento da norma IEC 1131 3 e Conhecimento da linguagem XML dos parsers e das ferramentas de valida o dispon veis e Conhecimento das t cnicas utilizadas na implementa o de compiladores e Conhecimento da linguagem assembly utilizada no controlador program vel e do formato interno de armazenamento da linguagem LD deste controlador e Experi ncia em desenvolvimento de software em alguma linguagem de programa o orientada a objetos tal como C
99. larado da forma mostrada na Figura 5 3 PROGRAM lt nome gt VAR END VAR lt corpo do programa gt END PROGRAM Figura 5 3 Declara o de Programa em CLPScript 52 5 6 Comandos As pr ximas se es definem os comandos da linguagem CLPScript 5 6 1 Express es Compostas por diversos operandos e operadores as express es s o utilizadas para calcular ou avaliar valores Os operandos podem ser vari veis literais ou chamadas de fun o Os operadores podem utilizar um ou dois operandos Quando utilizam apenas um operando s o chamados de un rios Neste caso sempre se localizam antes do operando Quando utilizam dois operandos s o chamados de bin rios Neste caso o operador dever estar entre os operandos Os dois operandos usados em opera es bin rias devem ser do mesmo tipo Caso n o seja dever ser usado uma fun o de convers o de tipo Ambos os operadores un rios e bin rios retornam o valor com mesmo tipo usado nos operandos Se o operando que receber o resultado for de um tipo diferente dever ser usado um fun o de convers o de tipos 5 6 1 1 Operadores Matem ticos Os operadores mostrados na Tabela 5 3 realizam opera es matem ticas entre dois operandos Os operandos podem ser de qualquer tipo num rico mas ambos devem ter o mesmo tipo O operador matem tico sempre retorna o mesmo tipo dos operandos usados Operador Descri o Aplica o Ad
100. ler instancia um objeto analisador l xico classe CLexico e um objeto analisador sint tico sem ntico classe CSintatico conforme mostra a Figura 7 2 Inicialmente uma pr compila o executada onde retira se todos os coment rios do fonte Em seguida executa se o analisador l xico que l o arquivo pr compilado quebrando o em uma lista de tokens correspondentes classe CToken Esta lista de tokens passada para o analisador sint tico sem ntico que mant m um ponteiro para o token atual e um para o pr ximo Estes dois tokens s o os nicos necess rios para verificar se a sintaxe e sem ntica est o de acordo com a BNF da linguagem uma vez que o analisador do tipo top down preditivo A classe CSintatico possui uma tabela de fun es e uma tabela de s mbolos classes CTabelaFuncoes e CTabelaSimbolos respectivamente A tabela de fun es cont m as fun es pr definidas especificadas na se o 7 1 1 e vai sendo acrescentada com novas fun es definidas pelo usu rio presentes no arquivo sendo compilado Uma fun o cont m sempre uma lista de par metros CParametros que comparada pelo analisador para verificar se os par metros passados na chamada correspondem aos par metros 83 declarados na fun o em termos de quantidade e tipo este ltimo determinado pela classe CDataType que trata tipos b sicos e arrays de tipos b sicos A tabela de s mbolos vai sendo preenchida durante a compila o conforme as
101. locol instr TON en 1 Timer T1 TimeBase 0 001 Preset 0 25 Accum 0 gt lt Bloco2 en Blocol EN instr GRT SourceA N7 1 SourceB 45 gt Figura 6 6 XML do Diagrama LD no RSLogix da Rockwell 65 Observe se que esta representa o engloba as entradas e sa das utilizadas os par metros na forma de entradas e as conex es existentes 6 3 1 2 Exemplo de LD da Altus A Figura 6 7 mostra um diagrama LD criado no software programador MasterTool MT4100 da Altus ALTO2 com um bloco temporizador TEE conectado a um bloco de armazenamento CAR por sua vez conectado a um comparador MAIOR L gica 008 Figura 6 7 Diagrama LD no MasterTool MT4100 da Altus A Figura 6 8 mostra a representa o XML correspondente Da mesma forma que no exemplo anterior os par metros do bloco TEE foram representados como se fossem entradas normais do bloco lt Blocol instr TEE inl 1 in2 1 param1 MO0001 param2 25 gt lt Bloco2 instr CAR inl Blocol Out1 param1 M0001 gt lt Bloco3 instr gt inl Bloco2 Out param1 45 gt Figura 6 8 XML do Diagrama LD no MasterTool MT4100 da Altus 6 3 1 3 Exemplo de FBD da Siemens A Figura 6 9 mostra um diagrama FBD criado no software programador Step7 da Siemens SIE99a com um bloco temporizador S_ODT conectado a um bloco de movimenta o MOVE 66 Hetwork v Title see ee ee Exemplo de XML com dois blocos FBD conectado
102. m o conceito de processamento dirigido a eventos seu analisador sint tico notifica o programa principal dos eventos que ocorrem enquanto o documento XML lido Alguns exemplos destes eventos s o encontrar uma nova tag de in cio ou encontrar mais dados de caracteres ARCO2 Ao utilizar o parser expat um programa deve registrar os eventos para os quais deseja receber notifica o Notificar um evento significa chamar a rotina registrada ou seja quando o evento acontece o parser quem chama uma rotina no programa principal atendimento ao evento 94 No caso do XMLtoLD os eventos registrados s o startElement e endElement correspondendo a eventos de in cio e fim de tag respectivamente Evento 1 in cio de tag VAR Evento 2 fim de tag VAR lt VAR nome i type INT gt lt VAR gt Figura 8 2 Exemplo de Eventos do Parser Expat A Figura 8 2 mostra um exemplo de eventos com o parser expat Ao processar o trecho de c digo XML da figura o analisador sint tico do expat gera os eventos de 1 in cio de tag VAR e 2 fim de tag VAR chamando as rotinas startElement e endElement respectivamente Os atributos nome e type s o passados como par metro para a rotina startElement junto com seus valores i e INT correspondentes Os arquivos referentes ao parser expat inclu dos no projeto do Visual C s o Xmlparse lib xmlparse
103. m pesquisados por terem alguma semelhan a com o desenvolvido aqui 113 As contribui es deste trabalho iniciam se com a compara o entre as linguagens ST LD e FBD e com a proposta de representa o textual para armazenar um diagrama gr fico LD ou FBD Destes estudos concluiu se que em determinadas condi es a representa o textual de um diagrama gr fico LD pode se tornar um caso particular do diagrama FBD Este detalhe pode ser muito importante no projeto de um software editor gr fico pois se for levado em considera o consegue se que o mesmo editor FBD possa ser utilizado para apresentar diagramas LD Para a representa o textual de um diagrama gr fico de blocos conectados percebeu se que n o necess rio nenhuma estrutura de dados mais elaborada tipo grafos ou lista encadeada desde que assuma se que cada sa da de bloco possui mem ria alocada para armazenar seu valor e que a informa o de conex es fique sempre armazenada na entrada dos blocos e n o nas sa das Esta representa o textual acaba sendo usada na arquitetura XML A linguagem CLPScript definida a partir da linguagem ST da norma IEC 1131 3 Procurou se manter um m nimo de comandos imprescind veis em uma linguagem de alto n vel e retirou se op es mais complexas e n o t o relevantes Para o contexto da automa o industrial entendeu se que este conjunto de comandos selecionados j de grande utilidade A arquitetura XML foi defi
104. mente comandos de atribui o ou chamada de fun o Para demarcar estas regi es insere se no XML as tags IF THEN e ELSE conforme mostrado na Figura 6 19 lt IF gt lt Blocol instr GT inl r in2 50 gt lt THEN gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 60 in2 x gt lt ATRIBUICAO gt lt THEN gt lt ELSE gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 70 in2 x gt lt ATRIBUICAO gt lt ELSE gt lt IF gt Figura 6 19 XML de Comando IF if r gt 50 then x 60 else x 70 end if Observe se que as tags THEN e ELSE est o dentro da tag IF e que a avalia o da condi o do IF fica ap s a tag IF e antes da tag THEN exatamente como na linguagem original 6 4 5 Tags XML de Comando CASE O Comando CASE inserido no XML atrav s da tag CASE e da tag OF junto com seu atributo valor Entre a tag CASE e o primeiro OF devem estar os blocos de avalia o da express o associada ao CASE Dentro de cada OF aparecem o xml dos comandos correspondentes conforme mostra a Figura 6 20 lt CASE gt lt Blocol instr ADD inl i in2 10 gt lt OF valor 15 gt CASE i 10 OF lt Bloco instr MOVE inl 10 in2 x gt Lg Se2 E lt OF gt rece lt OF valor 30 gt END CASE A lt Bloco instr MOVE inl 20 in2 x gt lt OF gt CASE gt Figur
105. mente fechado 1025 e duas bobinas simples 0134 e 0135 2 3 3 A Linguagem FBD A linguagem FBD IEC93 Function Block Diagram uma linguagem gr fica que permite descrever um processo por um conjunto de blocos interconectados de maneira semelhante a um circuito eletr nico A norma IEC1131 3 IEC93 inclui uma variedade de blocos de fun o padronizados para diversas opera es e poss vel incluir novos blocos definidos pelo usu rio Intertravamento no contexto de automa o industrial um a o executada em um equipamento em fun o de determinadas condi es do processo no qual se encontra Por exemplo pode se dizer que uma l gica de intertravamento deve desligar o motor X quando o n vel do tanque tornar se menor que Y ou que o intertravamento deve abrir imediatamente a v lvula de seguran a X caso a press o da caldeira ultrapasse o valor limite Y 17 Figura 2 10 Exemplo de FBD A Figura 2 10 mostra um exemplo de FBD Os blocos s o conectados representando o fluxo dos sinais entre os elementos sendo que sinais conectados devem ter 0 mesmo tipo de dado O fluxo de dados sempre da esquerda para a direita As entradas s o representadas na borda esquerda do bloco e as sa das s o representadas na borda direita do bloco 2 3 4 A Linguagem ST A linguagem ST IEC93 Structured Text uma linguagem textual de alto n vel poderosa utilizada para implementar procedimentos complexos que n o
106. n a aeaa dan E e ea a S E a aai 66 6 3 2 Expans es noXME riannee ta i a abate ea a antec Do e a A EE 67 6 4 REPRESENTA O DA CLPSCRIPT eee a ei hae sheik Rack ee N awa a 68 6 4 1 Tags AME de EXpress es a ce sv sos E EE E EE E E E E Gin Neat E 68 6 4 1 1 XML de Array nas EXpress es eenn a ordem r a sta ca AEE AEE INE AREA URE 69 6 4 2 Tags XML de Comando Atribui o oseeeseeeseeeeeeeneseseessresesrreresesreeriesesrresesreereseee 70 6 4 3 Tags XML de Chamada de Fun o sccesccescesseesseeneesscesecnecusecnseceseeeeeeeeeeseeeseceaecaeens 71 6 4 4 Tags XML de Comando IP sc ssssciassesissessissydvascassstase sve sgasvassapeavdsseguassstiendsasvaesdaesbessse 71 6 4 5 Tags XML de Comando CASE visis sccc esissevssestcsssssosesseseigesonsvescigesdnteascasesssstasasesdessnsesciee 72 6 4 6 Tags XML de Comando FOR ss ssiscscscsesissessseiscasssseseisesvabessesvessaseandsesseaseserssasasvabesgevieevsss 73 6 4 7 Tags XML de Comando WHILE erre rea aeeaarererereenraraeratenaa 73 6 4 8 Tags XML de Comando REPEAT 0 1 ccsccsscesssessceeseesecesecesecusecuseeeseeseeeseeeseeeseenseenaeenee 73 6 4 9 Tags XML de Comandos RETURN e EXIT c ccccccssccesscesecesecusecrseeseceneeesecesecnsecaeenss 74 6 5 RESUMO DAS TAGS E ATRIBUTOS DA ARQUITETURA XML wu ccececsessscecececessssecececeesensnaeeeeees 74 6 6 DTD DA ARQUITETURA XML wo cecececccsesssccccceceessnsscecececeeseseaececececsessaaeeeeececeenaaeeeeeeeeeensaaeaeeees 15 vi
107. na Figura 6 2 O atributo Type aceita como valor os tipos b sicos definidos na norma IEC 1131 3 e tamb m o tipo array descrito mais adiante na se o 6 4 1 1 XML de Array nas Express es Os arquivos desta arquitetura XML podem possuir uma ou mais fun es e ou um programa 62 Offset ik LAD STL FBD FC1 OF x File Edit Insert PLC Debug View Options Window Help Press F1 to get Help O offline Abs Insert C7 Figura 6 2 Declara o de Vari veis no Step 7 6 3 Representa o de LD e FBD A representa o de diagramas LD e FBD em XML baseada na modelagem de blocos descrita no cap tulo 4 Um bloco elementar possui as seguintes tags e atributos e tag BlocoNNN define o inicio do bloco com n mero de ocorr ncia NNN e atributo instr instru o ou nome do bloco e atributos inl in2 definem as entradas do bloco A Figura 6 3 a seguir uma reprodu o da Figura 4 13 mostrando um bloco elementar e o trecho de XML correspondente SOM IN1 SOM OUT1 lt Blocol instr SOM inl in2 gt SOM IN2 SOM OUT2 Figura 6 3 XML de um Bloco Elementar As saidas nao sao representadas diretamente no XML elas aparecem referenciadas nas conex es de entrada quando for o caso A Figura 6 4 mostra a representa o XML de dois blocos com uma conex o entre eles 63 CTT 1 TEE lt Blocol instr CTT inl 1 in2 0 gt jl lt Bloco2 i
108. natureza 1 4 Quest o de Pesquisa Como permitir uma interoperabilidade entre as linguagens LD FBD e ST conforme previsto pela norma IEC 1131 3 por meio de uma arquitetura nica de forma que o trabalho realizado em uma dessas linguagens possa ser utilizado ou complementado em outra linguagem 1 5 Objetivo Os objetivos deste trabalho s o a especificar e implementar uma arquitetura XML tendo por base uma ontologia para unificar e permitir a integra o das linguagens LD FBD e um sub conjunto da linguagem ST da norma IEC 1131 3 b especificar e implementar a linguagem espec fica de dom nio CLPscript que gera e formaliza esta arquitetura XML Salienta se que as linguagens IL e SFC da norma IEC 1131 3 est o fora do escopo deste trabalho A arquitetura XML proposta uma alternativa que permite a interoperabilidade entre as linguagens definidas pela norma IEC 1131 3 Um programa armazenado neste formato poder ser convertido para as demais linguagens independente da linguagem original com que foi criado Esta arquitetura pode fazer com que programas LD ou FBD de diferentes fabricantes sejam compat veis entre si desde que o software correspondente esteja programado para entender e utilizar o XML proposto A linguagem CLPScript oferecida como uma forma mais confort vel de gerar esta arquitetura XML Usando se a CLPScript o programa desenvolvido j ser salvo com este recurso de interoperabilidade no formato X
109. nde utilidade O pr ximo cap tulo utiliza a CLPScript para formalizar a arquitetura XML e o seguinte apresenta o programa CLPScript EXE implementa esta arquitetura 59 6 A Arquitetura XML Resumo Este cap tulo apresenta a arquitetura XML mostrando as raz es da escolha desta linguagem definindo as tags e atributos XML para armazenar programas LD FBD e CLPScript Faz uma compara o da arquitetura XML com a linguagem IL 6 1 Porque XML A linguagem XML foi selecionada para este trabalho devido s seguintes raz es uma linguagem de marca o amplamente difundida na Web que permite garantir a interoperabilidade entre dados e aplica es permite que se definam estruturas de dados simples e complexas auto descritivas de f cil compreens o por quem est utilizando foi projetada para descrever informa o atrav s de tags que n o s o pr definidas mas criadas conforme a necessidade de cada aplica o extens vel podendo descrever dados de uma enorme variedade de aplica es Existem outras linguagens que poderiam ter sido utilizadas para esta mesma finalidade como por exemplo o VHDL O XML foi selecionado em vez de VHDL pelas seguintes raz es a VHDL foi projetada com o foco em descri o de hardware e embora pudesse perfeitamente ser utilizada aqui o XML mais flex vel pois foi projetado para garantir a interoperabilidade entre dados e aplica es de qualquer rea de aplica o o XML
110. nergizando sua sa da habilita A Figura 4 11 mostra um comando IF em ST com uma chamada de bloco de fun o que pode n o ser executado e seu equivalente em FBD ST if A then CALC1 B C A Sees entrada habilita LD FBD CALCI Figura 4 11 Blocos FBD com Entrada Habilita 41 As instru es contato e bobina do LD tamb m podem ser representadas como um bloco contento uma entrada de habilita o conforme mostra a Figura 4 12 LD FBD Entrada habilita CTT A1 0 xo Contato Es A1 0 BOB A1 1 yo Bobina Y Ati Figura 4 12 Contatos e Bobinas em LD e FBD Note se que o bloco bobina n o possui nenhuma sa da pois ele a ltima instru o poss vel de uma l gica LD 4 2 Representa o Textual de LD e FBD Esta se o apresenta uma forma de representa o textual que pode ser usado como alternativa para as linguagens gr ficas LD e FBD Esta forma de representa o ser adaptada para o formato XML a ser definido 4 2 1 Modelagem dos Blocos Um bloco caracterizado pelo seu nome e pelas suas entradas e sa das Por exemplo o bloco SOM da Figura 4 13 possui duas entradas INI e IN2 e duas sa das OUTI e OUT2 SOM IN1 SOM OUT1 SOM IN2 SOM OUT2 Figura 4 13 Nomes das Entradas e Saidas dos Blocos 42 As entradas s o numeradas segiiencialmente e cada qual pode ser referenciada pelo conjunto lt nome do bloco gt lt caracter
111. nguagem gr fica capaz de descrever o comportamento seqiiencial e concorrente de um processo gerando c digo na linguagem IL da norma IEC 1131 3 ou exportando c digo atrav s de uma interface baseada em XML Criada na Universit t Kaiserlautern Alemanha cita a PNML uma proposta de formato de trocas para Redes de Petri baseado em XML PLCopen PLC92 uma associa o mundial n o vinculada a fabricantes ou produtos que atua na rea de controladores program veis e normas principalmente a TEC 1131 3 Um de seus comit s t cnicos tem foco na necessidade de representa o textual padronizada de linguagens gr ficas e trabalha na defini o de schemas XML para todas as linguagens da norma A linguagem VHDL uma linguagem de descri o de hardware voltada originalmente para a descri o e simula o de circuitos digitais e sistemas eletr nicos e atualmente para s ntese de chips customiz veis por software Foi estudada porque era uma maneira de descrever de forma textual os blocos gr ficos de uma linguagem de diagrama de blocos tipo FBD Todos estes trabalhos foram pesquisados por terem alguma semelhan a com o desenvolvido aqui O pr ximo cap tulo inicia as contribui es desta disserta o apresentando uma compara o entre as linguagens ST LD e FBD e com uma proposta de representa o textual para armazenar diagramas gr ficos LD ou FBD 34 4 Desenvolvimento do Trabalho Resumo Este cap tulo faz uma compa
112. nida a partir da CLPScript A linguagem XML uma linguagem de marca o amplamente difundida na Web que permite garantir a interoperabilidade entre dados e aplica es Foi particularmente til na defini o da arquitetura XML porque por ser extens vel permitiu que as tags e atributos fossem criados com os nomes que entendeu se mais apropriados A arquitetura XML define as tags e atributos utilizadas para a representa o de diagramas LD e FBD e programas CLPScript A representa o de LD e FBD foi baseada na representa o textual descrita no Cap tulo 4 enquanto que na representa o de CLPScript e dos aspectos comuns a todas as linguagens da norma IEC 1131 3 procurou se sempre que poss vel manter no XML a mesma nomenclatura original da IEC Foi desenvolvido o programa CLPStoXML um compilador l um programa CLPScript conforme definido no Cap tulo 5 e gera a arquitetura XML correspondente definida no Cap tulo 6 Foi escrito em Visual C 6 0 da Microsoft baseado no software ILA 114 Interpretador de Linguagem Algoritmica O programa CLPStoXML mostrou se bastante complexo de ser implementado porque demandou muito conhecimento da rea de compiladores Com o objetivo de certificar e validar a arquitetura XML foi realizado um estudo de caso onde se converteu alguns programas fonte escritos em CLPScript para XML e deste XML para a linguagem LD de uma empresa fabricante de controladores program veis a Alt
113. nstr TEE inl Blocol OUT 15 seg in2 15 gt Figura 6 4 XML de Dois Blocos Conectados Mostrou se que a representa o de um diagrama LD um caso particular da representa o de um diagrama FBD Este tipo de representa o portanto pode ser utilizada para armazenar os diagramas destas duas linguagens Em situa es t picas s o aceitas as seguintes simplifica es e em blocos com uma nica sa da omite se seu n mero referenciando a apenas por OUT em vez de OUTI por exemplo e blocos sem nenhuma sa da podem ser descritos sem o n mero de ocorr ncia Isto pode facilitar a gera o de c digo execut vel a partir do XML no aspecto de aloca o de mem ria em blocos com sa das preciso alocar mem ria para armazenar o valor da s sa da s enquanto que em bloco sem sa das isto n o necess rio e nomes de entrada ou sa da conhecidos podem ser utilizados no lugar de in1 in2 outl e demais nomes default de entrada e sa da 6 3 1 Exemplos de LD e FBD A seguir s o apresentados 3 exemplos de diagramas LD FBD criados em softwares de diferentes fabricantes enfatizando que esta representa o XML apesar de compacta pode ser utilizada para representar diagramas destas duas linguagens Cada exemplo mostra dois blocos com uma conex o entre si Cada bloco representa alguma instru o a ser executada pelo respectivo controlador program vel Observe s
114. nverter do XML para a linguagem LD utilizada por este fabricante visando prova de conceito Com o objetivo de certificar e validar a arquitetura XML apresentada e verificar sua usabilidade foi realizado um estudo de caso onde se converteu alguns programas fonte escritos em CLPScript para XML e deste XML para a linguagem LD de uma empresa fabricante de controladores program veis a Altus S A A escolha da Altus S A se deve a duas raz es principais primeiro uma empresa bem conhecida no mercado de automa o industrial cujo software programador possui a linguagem LD e entendeu se como melhor alternativa utilizar o visualizador de LD deste software em vez de construir do zero um novo visualizador Segundo o autor desta disserta o colaborador da Altus a mais de 5 anos tendo portanto um conhecimento pr vio dos produtos da empresa e acesso documenta es internas necess rias a este tipo de implementa o Salienta se que parte desta documenta o informa o estrat gica da empresa tecnologia pr pria patenteada e tratada com sigilo O estudo de caso visa mostrar que os controladores program veis Altus e seu software programador conseguem ler o XML uma vez que esta arquitetura pode ser adaptada para qualquer fabricante Para realizar esta prova de conceito desenvolveu se o software XMLtoLD descrito neste cap tulo que converte do XML para o LD Altus Salienta se que o XMLtoLD foi desenvolvido especificamente pa
115. nvertida em um formado bin rio que poderia ser diretamente utilizado pelos CPs para executar o programa aplicativo atrav s de um interpretador executando no pr prio CP Esta uma id ia equivalente a uma m quina virtual Java executando o byte code dos programas compilados Neste segundo item o c digo objeto gerado pode ser executado por um interpretador espec fico de cada CP de forma an loga ao que acontece com um programa Java Em Java o programa fonte compilado para um c digo intermedi rio chamado de byte code MOROO0 Este c digo intermedi rio executado por um interpretador Java chamado de m quina virtual Java De forma an loga preciso uma m quina virtual no CP para executar programas compilados neste c digo objeto As vantagens de se utilizar uma m quina virtual em vez de executar o c digo assembly nativo s o as mesmas da linguagem Java comparadas com linguagens compiladas tradicionais tais como C e Pascal Dentre outras pode se citar 1 simulador e interpretador mais simples 2 programa independente de plataforma e 3 complexidades do assembly espec fico s aparecem no interpretador e n o no editor gr fico compilador 118 Bibliografia AHO86 ALL94 ALT97 ALT98a ALT98b ALTO2 ALTO3 ARCO2 Bom97 CARO1 CREO0 DATOO DEIO2 DEU00 DIAO1 Aho Alfred V Sethi Rari Ullman Jeffrey D Compiler Principles Techniques and Tools Add
116. nvertido em XML 77 Ov A primeira vista parece que sim A declara o de vari veis id ntica a raz o disto Ov que esta parte da norma comum s 5 linguagens logo a declara o de vari veis sempre id ntica qualquer que seja a linguagem utilizada Uma analise mais profunda mostra que a arquitetura XML oferece ou pode oferecer as seguintes funcionalidades que n o seriam poss veis com a linguagem IL e o XML permite restaurar o programa fonte ST original atrav s das tags IF FOR CHF et cetera e a linguagem IL n o possui a ordem de execu o dos blocos que pode ser importante em diagramas LD e FBD enquanto que o XML possui e a linguagem IL n o representa a conex o entre blocos da forma que acontece no XML e o XML possibilita expans es a crit rio do implementador que n o geram incompatibilidades com o formato anterior 6 8 Conclus o XML uma linguagem de marca o amplamente difundida na Web que permite garantir a interoperabilidade entre dados e aplica es Foi particularmente til na defini o desta arquitetura porque por ser extens vel permitiu que as tags e atributos fossem criados com os nomes mais apropriados As tags e atributos que formam a arquitetura XML foram definidos neste cap tulo A representa o de LD e FBD foi baseada na representa o textual descrita no Cap tulo 4 Na representa o de CLPScript e dos aspectos comuns a todas as linguagens da norma IEC 1131 3
117. onde diretamente a uma chamada de bloco em LD ou FBD Utilizam uma tag Bloco com os seguintes atributos e Instr recebe o valor CHF significando chamada de fun o e Nome recebe o nome da fun o a ser chamada e QtdIn quantidade de par metros de entrada e inl in2 valor de cada par metro de entrada e Type tipo de retorno da fun o A Figura 6 17 mostra um exemplo de XML para a chamada da fun o SIN Caso o par metro de entrada n o fosse uma constante simples mas uma express o ent o a express o teria de ser avaliada antes da chamada conforme mostra a Figura 6 18 lt Bloco4 instr CHF nome sin qtdIn 1 inl 5 6 sin 5 6 type REAL gt Figura 6 17 XML de Chamada de Fun o lt Bloco5 instr DIV inl 3 1416 in2 2 gt lt Bloco6 instr ADD inl x in2 Bloco5 OUT gt lt Bloco7 instr CHF nome sin qtdIn 1 inl Bloco6 OUT sin x 3 1416 2 Figura 6 18 XML de Chamada de Fun o com Express o de Entrada 6 4 4 Tags XML de Comando IF Um comando IF pode ser dividido em duas ou tr s partes a avalia o da express o condicional o s statement s da se o THEN e opcionalmente o s statement s da 71 se o ELSE A forma de representar no XML recai em casos j vistos A condi o do IF a avalia o de uma express o e as se es THEN e ELSE s o statements normal
118. peri ncia de t cnicos e engenheiros seria a solu o mais adequada para desenvolvimento de programas aplicativos de CPs ALTO3 A linguagem LD IEC93 Ladder Diagram tamb m conhecida por linguagem de diagrama de rel s uma linguagem gr fica onde os elementos principais de seu diagrama s o contatos e bobinas de v rios tipos muito semelhante linguagem de descri o dos pain is de controle a rel A linguagem LD foi especificada pela IEC considerando os s mbolos e terminologias mais utilizados pelos fabricantes de CPs A principal vantagem da utiliza o deste tipo de linguagem seu r pido aprendizado pois assemelha se muito com os esquemas el tricos convencionais 15 Um diagrama LD sempre possui uma barra de energiza o vertical a esquerda que intuitivamente fornece energia para os contatos e bobinas ao longo das liga es horizontais direita O fluxo de energia da barra sempre da esquerda para a direita Barra de energiza o Contato A eS Bobina Jr ct B m Figura 2 7 Linguagem LD Considera se energizado o valor l gico 1 e desenergisado o valor l gico 0 A Figura 2 7 mostra um diagrama LD com a barra de energiza o dois contatos e uma bobina Esta simbologia representa que a vari vel C associada bobina s vai ser energizada se um dos dois contatos A ou B estiver ativo A Figura 2 8 mostra os principais tipos de contatos e bob
119. quer e os programas DSL s o concisos auto documentados e podem ser reutilizados para diferentes prop sitos e as DSLs aumentam a produtividade confian a e a portabilidade al m de facilitar a manuten o dos sistemas DEU00 2 1 3 Implementa o A implementa o de uma DSL difere da implementa o com linguagens gen ricas tradicionais Os compiladores tradicionais s o tipicamente estruturados em analisador l xico sint tico sem ntico otimizador e gerador de c digo As implementa es de DSL possuem escopo mais limitado e utilizam estrat gias diferentes SPI00 Tipicamente processam o programa fonte usando express es regulares e n o precisam de todas as etapas da compila o tradicional como por exemplo a etapa de gera o de c digo assembly Uma refer ncia completa sobre compiladores pode ser encontrada em AHO86 descrevendo as etapas de an lise l xica sint tica e sem ntica c digo intermedi rio otimiza o e gera o de c digo Em SPI00 Diomidis Spinellis apresenta alguns design patterns SHAO2 para DSLs dentre os quais cita se pipeline lexical processing language extension language specialization source to source transformation e data structure representation Um framework para a constru o de uma variedade de DSLs apresentado por Markus Fromahers em FRO97 mostrando como estas linguagens podem ser constru das e porque este framework apropriado para esta
120. ra o das linguagens ST LD e FBD da norma IEC 1131 3 ressaltando suas semelhan as e diferen as e aspectos de portabilidade entre elas Al m disto proposta uma representa o textual para as linguagens gr ficas LD e FBD utilizada posteriormente na arquitetura XML 4 1 Compara o Entre LD FBDe ST As linguagens LD e FBD s o linguagens gr ficas apropriadas para a formula o de opera es b sicas e para controles simples que podem ser descritos com l gica booleana Por outro lado ST uma linguagem textual de alto n vel apropriada para a elabora o de m dulos de software com conte do matem tico e algoritmos envolvendo estruturas de dados mais complexas 4 1 1 LD e FBD As linguagens gr ficas LD e FBD baseiam se na 1 inser o e parametriza o de contatos e bobinas LD ou blocos FBD e na 2 conex o entre eles Em LD e FBD as conex es s o feitas entre a sa da de um contato ou bloco com a entrada de outro N o permitido que nenhuma entrada fique desconectada ao contr rio das sa das Cada entrada deve estar conectada a uma nica sa da ou configurada com um valor constante Neste segundo caso o valor constante fica armazenado na pr pria instancia do bloco e sempre usado quando o bloco executado Uma sa da pode estar conectada a mais de uma entrada mas n o permitido conectar mais de uma entrada mesma sa da N o permitido que duas entradas sejam conectadas somente entre
121. ra o Altus A partir do XML cada fabricante respons vel por gerar seu pr prio XMLtoLD 89 Considerando que o foco do estudo de caso a prova de conceito e n o o volume de experimentos neste cap tulo s o apresentados dois exemplos de convers o de XML para LD Altus No CDROM que acompanha esta disserta o podem ser encontrados outros exemplos 8 1 As Ferramentas Necess rias Para tornar este estudo de caso poss vel foram desenvolvidas duas ferramentas em Visual C e CLPStoXML compilador CLPScript para XML descrito no capitulo anterior e XMLtoLD conversor de XML para LD Altus O programa XMLtoLD l um arquivo XML gerado pelo CLPStoXML interpreta suas tags e atributos e gera um arquivo no formato bin rio contendo o assembly utilizado pelos controladores program veis Altus ALT98a e pelo respectivo software de programa o MasterTool Programming MT4100 ALTO3 A Figura 8 1 mostra o MasterTool editando uma instru o de chamada de fun o O XMLtoLD envolve o conhecimento do assembly do microcontrolador Intel 8051 e 80C251 INT96 utilizado nos controladores program veis Altus e do formato interno das instru es LD geradas pelo software programador MasterTool MT4100 Se o assembly n o gerado exatamente como o original o MasterTool n o o reconhece e n o consegue desenhar o diagrama LD correspondente 90 MASTERTOOL P MAIN 022 L gicas 32 Tamanho 868 bytes Edi o Busca Rel Mov A
122. representando a condi o ELSE do IF 8 5 Estudo de Caso 2 Este estudo de caso mostra uma fun o de lineariza o e um programa que faz a m dia de 20 medi es anal gicas escritos em CLPScript As medi es s o valores do tipo REAL que est o em um ARRAY de 20 posi es a lineariza o feita chamando se a fun o 20 vezes em um FOR e acumulando se o resultado para ent o calcular a 105 m dia A Figura 8 12a mostra este programa e a Figura 8 12b mostra 0 XML correspondente gerado automaticamente pelo CLPStoXML a Programa CLPScript b Arquitetura XML function linrza real var_input medicao real end_var if medicao gt 0 then linrza 100 sqrt medicao else linrza 0 end_if end_function program exemp2 var acum media real nivel array 1 20 of real 1 int end_var acum 0 for i 1 to 20 do acum acum linrza nivel i end_for media acum 20 end_program lt xml version 1 0 gt lt ARQ nome D DISS4 CDROM DISSERTACAO BIN EX2 XML gt lt FUNCTION nome linrza type real gt lt VAR_INPUT nome medicao type REAL gt lt VAR_INPUT gt lt IF gt lt Blocol instr GT inl medicao in2 0 gt lt THEN gt lt ATRIBUICAO gt lt Bloco2 instr CHF nome sqrt qtdIn 1 inl medicao type REAL gt lt Bloco3 instr MUL inl 100 in2 Bloco2 0UT type REAL gt lt Bloco instr MOVE inl Bloco3 0UT in2 l
123. rt Cont con Gerais Liga Janela fred P MAIN 022 L gicas 32 Tamanho 868 bytes 2 L gica 000 Bos OUT HF TANQUE x C MTOOL DEC TAG Figura 8 1 Programador de CPs Altus MasterTool MT4100 8 2 A Linguagem LD Altus A Linguagem LD nos controladores program veis Altus denominada Linguagem de Diagramas de Rel s Um programa aplicativo um programa LD que executa em um CP que no caso da Altus composto por 4 elementos b sicos ALTO3 e m dulos e l gicas e instru es e operandos Um programa aplicativo composto por diversos m dulos permitindo uma melhor estrutura o das rotinas de acordo com as suas fun es Os m dulos s o programados em linguagem de rel s ALTO3 Um m dulo um arquivo cujo nome possui at 6 caracteres com extens o num rica contendo uma fun o ou um programa Um m dulo de programa aplicativo dividido em l gicas de programa o O formato de uma l gica de programa aplicativo utilizado nos CPs Altus permite at oito elementos em s rie e at quatro caminhos em paralelo 91 As instru es s o utilizadas para executar determinadas tarefas por meio de leituras e ou altera es do valor dos operandos A Tabela 8 1 mostra algumas das instru es dos CPs Altus Instru o Descri o Visualiza o RNA Contato normalmente aberto RNF Contato normalmente fechado
124. s negrito S mbolos terminais palavras reservadas Chaves e y Significam zero ou mais ocorr ncias conforme norma IEC 1131 3 p gina 269 Tabela 7 7 Simbologia utilizada na BNF da CLPScript 7 3 Conclus o Este cap tulo descreveu a implementa o da linguagem espec fica de dom nio CLPScript atrav s do programa CLPStoXML O CLPStoXML um compilador l um programa CLPScript conforme definido no Cap tulo 5 e gera a arquitetura XML correspondente definida no Cap tulo 6 Foi escrito em Visual C 6 0 da Microsoft baseado no software ILA Interpretador de Linguagem Algoritmica Internamente as classes mais importantes s o as que cont m os analisadores l xico sint tico e sem ntico estes dois ltimos implementados juntos O analisador sint tico sem ntico do tipo top down recursivo e funciona com gram ticas LL 1 O XML foi gerado diretamente pelo c digo nenhum ferramenta externa foi utilizada neste caso O programa CLPStoXML mostrou se complexo de ser implementado porque demandou muito conhecimento da rea de compiladores O pr ximo cap tulo mostra um estudo de caso que visa validar esta arquitetura XML gerada aqui 88 8 Estudo de Caso Resumo O estudo de caso deste cap tulo selecionou um fabricante de controladores program veis para certificar que seu software programador consegue ler o XML proposto Um software espec fico desenvolvido para co
125. s XML de Comando REPEAT O Comando REPEAT inserido no XML atrav s das tags REPEAT e UNTIL Dentro da tag UNTIL aparece m o s bloco s com a avalia o da express o de 73 condi o de sa da do la o REPEAT Entre as tags REPEAT e UNTIL aparece o xml dos comandos correspondentes conforme mostra a Figura 6 23 REPEAT pese d UNTIL x lt 7 END REPEAT lt REPEAT gt lt Bloco2 instr ADD inl x in2 1 gt lt Bloco instr MOVE inl Blocol OUT in2 x gt lt UNTIL gt lt Blocol instr LT inl x in2 7 gt lt UNTIL gt REPEAT gt 6 4 9 Tags XML de Comandos RETURN e EXIT Os comandos RETURN e EXIT s o inseridos no XML como tags de mesmo nome sem conter nenhum atributo ou qualquer outro elemento XML Figura 6 23 XML de Comando REPEAT 6 5 Resumo das Tags e Atributos da Arquitetura XML A Tabela 6 4 mostra as fags e atributos utilizados na arquitetura XML Tag no XML Atributos Obrigatorios Atributos Opcionais ARQ nome FUNCTION nome type PROGRAM nome VAR VAR INPUT VAR GLOBAL nome type at atrib ATRIBUICAO E BlocoNNN Bloco instr inl in2 type nome gtdIn IF THEN ELSE FOR var to CASE OF valor REPEAT UNTIL WHILE DO RETURN EXIT Tabela 6 4 Tags da Arquitetura XML 74 A Tabela 6 5 mostra os valores possiveis q
126. s ase Rag E a a AEEA a a kE ira DEE Sosi 2 3 A NORMA PC r eile Been ane Alida nea et ee 2 3 1 Elementos COMUMNS a a a aa a a aaa a a a a a ne Si aE a E ina aa S 2 3 1 1 Tipos de Dados ssesisesse at E EE E vere ET N 2 3 1 2 Vari veis 2 3 1 3 Fun o ee S e 2 3 1 4 Bloco de Fun o 2 3 1 5 Progra MaS estas im eoe ee EEE E E NE NE ONO TNE N ES 2 3 2 Al Einguagem LD Ss si das dada passat aa bina ON Da Cn Da o DA O SD EAR AS LAR 2 3 3 A ETA SUAS CMU EBD cn da sccvshstas a sada singca pau ashsaansbiva ss dan dean SES 2 3 4 A Linguagem STren en a ea E EE e Casa E SE dad caspa Mansiee desessesee save 18 2 3 5 A Linguagem LL wvisecccssivsns coeds sacacceiahcansdooscecdeaeasscbeancosudeebiaedbuvtesesoedsnaacendacshccedecctsanaveanedas 19 2 3 6 A Lingudgem SF Crssesiccserccotsssecccsoustcadadoosinacaacevessnesecousadaunadeedusesbscedevaaceadessccdsaecteancbesseats 19 2 4 CONCLUSA Onna i ian aie opal adic ay 20 3 TRABALHOS RELACIONADOS sss fects dive esses eh ee heli anc aden ded hacia ds 21 3 1 LINGUAGEM STEN ssa eo EEEE E E OE Saveveceaneoe E E ER 21 3 1 1 Gera o de C digo em Instruction List IL essseessseeeseeeeeeeesesessereesrsreeresrsrresesreeresreees 23 3 1 2 A Ferramenta de Edi o do SIPN cccccsccssscesecesecesecnseeeeeseeeseesseeseesseensecesecaecaeenaeens 24 3 1 3 SIPNEXME Sos cei Soles Sete r a GUI SNORT eU IS east sad 25 3 2 PECOPEN ienen a a a e arara sL Leela states aulas requerer alia gostado 26 3 2 1 Comit T cnico TC6 In
127. s no Siemens Step Pu t Figura 6 9 Diagrama FBD no Step7 da Siemens A Figura 6 10 mostra a representa o XML correspondente lt Blocol instr S_ODT S M7 1 TV 0 R 0 gt lt Bloco2 instr MOVE EN Bloco1 Q IN M8 gt Figura 6 10 XML do Diagrama FBD no Step7 da Siemens 6 3 2 Expans es no XML A escalabilidade do XML permite que a arquitetura definida aqui possa ser facilmente expandida incluindo se novos atributos nas tags BlocoNNN para novas fun es sem que isto cause nenhum conflito com os existentes anteriormente Como exemplo destas expans es pode se citar e coordenadas cores e outros atributos gr ficos dos blocos embora n o necess rios para regenerar o diagrama original podem ser implementados de forma a restaurar configura es feitas pelo usu rio e coment rios configur veis pelo usu rio de determinado conjunto de blocos de um diagrama tal como o texto Exemplo de XML da Figura 6 9 do Step7 da Siemens e descri o de vari veis e blocos configur veis pelo usu rio e o tipo de dado das sa das de cada bloco isto pode facilitar a implementa o do programa que l e interpreta o XML 67 A Tabela 6 3 mostra um exemplo XML para cada uma das expans es sugeridas acima Os novos atributos s o mostrados com um caractere subscrito _ na frente Expans o Exemplo de XML Gr ficos lt Blocol X 179 Y 25 Colour
128. scri o dos operandos alocados no formato que o MasterTool conhece e sabe importar de tal forma que pode se visualizar o diagrama LD com as descri es originais dos nomes de vari veis CLPScript 8 4 Estudo de Caso 1 Este estudo de caso inicia se a partir de um pequeno programa CLPScript que convertido para a arquitetura XML e em seguida para o LD Altus A Figura 8 6a mostra um pequeno programa CLPScript com um trecho de c digo de um software de contagem de tempo Este programa foi compilado com o programa CLPStoXML gerando automaticamente o XML mostrado na Figura 8 6b 101 a Programa CLPScript b Arquitetura XML lt xml version 1 0 gt Program Relogio Var hora INT minuto INT end_var if minuto gt 59 then minuto 0 hora hora 1 else minuto minuto 1 end_if end_program lt ELSE gt lt IF gt lt PROGRAM gt lt ARQ nome D DISS4 BIN RELOGIO XML gt lt PROGRAM nome Relogio gt lt VAR nome hora type INT gt lt VAR gt lt VAR nome minuto type INT gt lt VAR gt lt IF gt lt Blocol instr GE inl minuto in2 59 gt lt THEN gt lt ATRIBUICAO gt lt Bloco instr MOVE inl 0 in2 minuto gt lt ATRIBUICAO gt lt ATRIBUICAO gt lt Bloco2 instr ADD inl hora in2 1 gt lt Bloco instr MOVE inl Bloco2 0UT in2 hora lt ATRIBUICAO gt lt THEN gt lt ELSE gt lt ATRIBUICAO gt gt lt Bloco3
129. seceeseesceececsecsesseeseeaceaeeessessesseeseeaeeaes 5 6 1 4 Preced ncia de Operadores s da i einer ie e aea a e ae 5 6 2 Eiterais NUMETICOS oaie seins Er sakes E akan A E pro A O a aS 5 6 3 Comandos de Atribui o isis coiscs svccssssss sin ENEE Ea EC EEN nuno ERE ents 5 6 4 Comando RETURN act e Gace cai eeu tao avn N E ganado TR EEEE Ne 5 6 5 Comando LF suis pe ania a ox us bn E ETN EN EE E E E E E Uke 5 6 6 COMANAO CASE i aae r aaa E Ea E E AR EE E ERA aE S 5 6 7 Comandos de eracd jiu sr vevecssecsuscusitess oE EEEE NE ENa EEEE EEEE E E DEE vue 5 6 7 1 Comando MA e a A A R N ee ae 5 6 7 2 Comando REPEAT 5 6 7 3 Comando FOR aeaa e aaee Netos iron genes E EE AE EE NEE TET AE EESTE aa 5 7 ITENS DESCONSIDERADOS DA NORMA ccccccesecssesscssesseseeesessecssesecseesseseeesesseeesesessuesssneseseneeeese 5 8 CONCLUS O sins a E AA A A AAA AAA A AARQUITETURA XM oa EEEO EEE E REA E E E E a 60 6 1 PORQUE XML seriam sre E E EE ON T R I R 60 6 2 REPRESENTA ES COMUNS A TODAS AS LINGUAGENG ccsssseceseeeeceeseeeecsesaececseeeeeesseeecnaes 61 6 3 REPRESENTA O DE LD E FBD s ssesesssesessseeessserrreseesseereeseeesesrerreeesseeesesteeseseersoeeesseeeeeseeree 63 6 3 1 Exemplos de LD e FBD irens eyano n a a E EPE EER EES 64 6 3 1 1 Exemplo de LED da Rockwell sesuais serisiocripirctegos eisenai riepas 65 6 3 1 2 Exemplo de LD da Altus tenereet aeneae ee enea enean a e E ae aa eeraa ee Rei 66 6 3 1 3 Exemplo de FBD da Siemen siene
130. senta a BNF da linguagem CLPScript gerada durante a implementa o do compilador CLPStoXML Alguns termos utilizados nesta documenta o possuem intencionalmente o mesmo nome de m todos da classe CSintatico A Tabela 7 2 mostra a BNF de identificadores e constantes As demais tabelas complementam a BNF dividida por categorias A a Te aq x z Letter Letter Digit Tabela 7 2 BNF de Identificadores e Constantes da CLPScript 7 2 1 Declara o de Vari veis A Tabela 7 3 mostra a BNF de declara o de vari veis da CLPScript VarSection n VAR I VAR_INPUT VAR GLOBAL Atributo a RETAIN CONSTANT DeclarVar VarSection Atributo ID ID Location TIPO END_VAR TipoBasico BOOL INT DINT REAL Array ARRAY cte cte OF TipoBasico Tipo HEM TipoBasico Array Location AT DirectVariable OperandoAltus DirectVariable ID OperandoAltus M cte F cte D cte A cte OctalDigit Tabela 7 3 BNF de Declara o de Vari veis da CLPScript 7 2 2 Functions e Programs A Tabela 7 4 mostra a BNF de Functions e Programs da CLPScript 86 Function FUNCTION ID Tipo DeclarVar Statement END_FUNCTION Program PROGRAM ID DeclarVar Statement END_PROGRAM Tabela 7 4 BNF de Function e Program da CLPScript 7 2 3 Express es A Tabela 7 5 mostra a BNF de express es da CLPScript Operator
131. seria a solu o mais adequada para o desenvolvimento de programas aplicativos FES00 Neste contexto a linguagem Ladder BON97 LEW95 se tornou uma das mais utilizadas ao longo do tempo pela sua simplicidade e semelhan a com um esquema el trico Durante os ltimos 20 anos uma variedade de linguagens e t cnicas de programa o foram sendo criadas e utilizadas para escrever programas para controle de aplica es industriais e cada fabricante as implementou da sua pr pria forma A linguagem Ladder por exemplo foi adotada pela maioria dos fabricantes de CPs mas cada um deles implementou seu pr prio dialeto MORO1 O resultado final que todos estas linguagens s o na verdade diferentes tanto sem ntica quanto sintaticamente Para o pessoal envolvido com estes sistemas sejam t cnicos engenheiros projetistas operadores ou pessoal de manuten o este resultado muito ineficiente pois preciso estar treinado com equipamentos de diferentes fabricantes cada qual com sua pr pria linguagem de programa o e particularidades A norma IEC 1131 3 surgiu em 1993 IEC93 devido a este requisito de padroniza o na rea de linguagens de programa o para controladores program veis As suas principais caracter sticas s o e padroniza o dos programas aplicativo dos controladores program veis e define 5 linguagens de programa o e especifica a sintaxe e sem ntica de cada uma destas linguagens
132. si preciso que pelo menos uma sa da esteja conectada junto 35 Na LD a conex o sempre carrega uma informa o booleana indicando se a pr xima instru o vai ou n o estar energizada Na FBD o tipo da informa o carregada na conex o determinado pela sa da que est sendo conectada e pode ser al m de booleano inteiro real data hora e string Na FBD a ordem de execu o dos blocos importante e pode afetar o resultado do programa O mesmo vale para os programas desenvolvidos em LD Em geral os programas LD existentes no mercado executam em uma ordem fixa definida pelo fabricante de cima para baixo e da esquerda para a direita enquanto que os programas FBD possuem um par metro por bloco que determina a ordem de execu o deste bloco em rela o aos demais Os blocos de um programa FBD podem ser conectados de tal forma que aconte a uma realimenta o Em LD isto n o poss vel pois os contatos e bobinas possuem apenas uma entrada A Figura 4 1 mostra um exemplo de realimenta o em FBD lt realimenta o Figura 4 1 Realimenta o em FBD Em LD poss vel conectar se diretamente duas sa das de instru es contato formando uma conex o ou liga o horizontal Para se conectar duas sa das booleanas em FBD e obter o mesmo efeito que uma liga o horizontal em LD deve se inserir um bloco OR A Figura 4 2 mostra uma liga o horizontal em LD e o bloco OR
133. ssuem o escopo global podendo ser acessadas por todas fun es e pelo o programa principal VAR INPUT Permite acesso somente de leitura utilizada para definir os par metros de entrada de uma fun o Por defini o uma vari vel de entrada n o pode ser inicializada ou associada com operandos do CP com a cl usula AT Tamb m n o permitido declarar vetores como par metro de entrada Vari veis declaradas nesta categoria possuem escopo local ou seja s podem ser acessadas pela fun o onde foi declarada VAR Permite acesso somente de leitura utilizada para definir vari veis internas de uma fun o ou do programa Vari veis declaradas nesta categoria possuem escopo local ou seja s podem ser acessadas pela fun o ou programa onde foi declarada 5 3 2 1 Mapeando Operandos do CP em Vari veis E poss vel mapear um endere o f sico ou operando do CP diretamente para uma vari vel O mapeamento possibilita a intera o do m dulo gerado pelo compilador com os demais m dulos de programa existentes no CP E na verdade a nica forma de acessar operandos do CP dentro de um programa CLPScript Todo mapeamento feito na declara o de vari veis com a instru o AT Por mapear um endere o global para todos os m dulos de programa o do CP esta opera o tem as seguintes restri es s poder ser usado dentro de VAR e VAR GLOBAL s ser permitido uma vari vel por declara o vari veis de
134. tarefa 2 2 XML XML uma abrevia o de eXtensible Markup Language ou linguagem de marca o extens vel Pode ser formalmente descrita como uma metalinguagem de segunda gera o segunda gera o porque derivada de SGML Standard Generalized Markup Language norma ISO 8879 uma metalinguagem porque assim como a SGML XML uma linguagem de marca o projetada para descrever outras linguagens de marca o TITO2 Linguagens de marca o compreendem todas aquelas que possibilitam a formata o de elementos por meio de tags e atributos como o HTML HyperText Markup Language Por ser extens vel o XML possibilita a cria o de elementos ou seja voc mesmo pode inventar as suas tags Este um dos fatores que tornam a linguagem preferida na transa o e armazenamento de dados SILO1 Uma das principais diferen as entre o HTML e o XML que o HTML usado para formata o e exibi o das informa es enquanto que o XML usado para descrever e armazenar essas informa es HAR99 Os padr es que comp em o XML s o definidos pelo W3C World Wide Web Consortium A flexibilidade do XML prov m da possibilidade de transportar qualquer tipo de dados mantendo os estruturalmente coesos e intelig veis como bin rios atrav s da estrutura de marca o lt tag gt valor lt tag gt Devido a esta estrutura tamb m poss vel combinar num mesmo documento v rios objetos com tipos de dados dif
135. terface XML ei i E E EEE E S 28 3 3 LINGUAGEM VHDL menaire e a ra E T Cosimo E A TEE R ER RE 28 3 3 1 VHDL de Portas L gicas AND OR XOR e NOT ccccssscceseeesseceseeeensecesneeenseceeneeenaeees 30 3 3 2 VHDL de Blocos Contador e COMpArAdOL 1 sccsccecccesecesecesecusecnseeaeeeeeeeseceseensecaeenas 31 3 4 UMA AVALIA O DAS LINGUAGENS DA IEC 1131 3 00 eceesescccssseeceeseececeesececensseeeessneseeneaee 33 3 5 CONCLUS O orei ena a eera E E E EE T E nies 34 4 DESENVOLVIMENTO DO TRABALHO 00 ccccecssscccsssseeesssceeceeaeeecseceeceseneeecesaeeecseeaeeesnseeeenes 35 41 COMPARA O ENTRE LD FBD EST ee a E A E E EEEE TE 35 4 1 1 ED e FP BD Si a e hc eee i e a I a ERS 35 4 1 2 SE LD 6 EBD orini n e cc le Baie Bt Bas aR es e ES 37 4 2 REPRESENTA O TEXTUAL DE LD E FBD 0 ceeeeecccccscceessececeseececesceeceeaeeecsesaeceseneeeeeeseeeenaes 42 4 2 1 Modelagem dos BLOCOS ccccsccesccesscesecnseenseenseeseesseessecusecaecsaecasecsaeeseesseeeeeeeseeeeeeaecsaeens 42 4 2 2 Modelagem das COnexGeS cccccccsccesscesseeseessseeseesseessensecesecusecaecaaecaaeeseeeseesaeeseaenesonaeenas 43 4 3 CONCLUS O aaa a AS RAS AS AE AAAS 46 ASL INGUAGEM CLPSCRIPE coiso rsrs a cased tude soecd sca s a ARE cade COS IRS Pa E saves SERENA ES est ensaia i 47 5 1 ELEMENTOS COMUNS DA IEC 1 131 3 vicccccssccocselecssnsspcsvevetnseetesessseccethecbieoveosnssnscoteneesestnsrsvedes 5 11 Nota es LEXIC GS x susa s 2
136. tributo Type define o tipo da fun o ou da vari vel O atributo Atrib pode assumir os valores CONSTANT ou RETAIN e o atributo At especifica o endere o de mem ria ou operando do CP associado a vari vel declarada 61 a b FUNCTION Calcular INT lt xml version 1 0 gt VAR_INPUT lt ARQ nome D DISS4 BIN T1 XML gt x real lt FUNCTION nome Calcular type INT gt END_VAR lt VAR INPUT nome x type REAL gt VAR lt VAR nome y1 type INT gt yl y2 INT lt VAR nome y2 type INT gt R at F13 REAL lt VAR nome R type REAL at F13 gt END_VAR lt FUNCTION gt END_FUNCTION lt ARQ gt Figura 6 1 XML de Declara es A Figura 6 la mostra um exemplo de declara o de uma fun o com um par metro de entrada e tr s vari veis locais e a Figura 6 1b mostra sua vers o correspondente compilada em XML Note se que cada vari vel declarada em uma linha diferente do XML mesmo que no programa fonte n o seja assim Isto facilita a implementa o dos programas que l em este XML e tamb m permite que atributos individuais sejam acrescentados a cada vari vel individualmente tal como o at F13 da vari vel R Outra raz o para manter uma declara o vari vel por linha no XML quanto a futuras expans es com novos atributos Um exemplo poss vel o offset de cada vari vel conforme existe no software Step 7 da Siemens mostrado
137. tui se o contato e a bobina pelos seus blocos equivalentes em FBD e inclui se o n mero de ocorr ncia nos dois blocos TEE e inclui se o OR invis vel que abstrai a liga o horizontal A Figura 4 16 mostra as modifica es efetuadas CTT1 TEE1 x8 1 seg ORI BOB1 TEE2 5seg Figura 4 16 Exemplo de FBD com Dois Blocos TEE Para modelar este diagrama FBD em linguagem textual cada bloco precisa ser instanciado na linguagem textual procedimento an logo a declara o de objetos nas linguagens de programa o orientada a objetos DEI02 Cada inst ncia possui uma ou mais vari veis de estado que correspondem ao valor da s sa da s do bloco As entradas constantes sem conex o s o consideradas vari veis locais e seu valor tamb m armazenado na inst ncia do bloco Por outro lado as entradas conectadas a uma sa da de outro bloco n o s o consideradas vari veis locais desta inst ncia pois seu valor j est armazenado no bloco ao qual est conectado A informa o de conex o fica armazenada no bloco que possui a entrada conectada e n o no que possui a sa da Isto facilita a estrutura de dados de armazenamento uma vez que uma entrada s pode estar conectada a uma nica sa da enquanto que uma sa da poder estar conectada a zero uma ou v rias entradas 44 Cada conex o informada na mesma linha
138. type ARRAY 1 10 OF REAL gt END VAR Figura 6 13 XML de Declara o de Array A utiliza o de vari veis do tipo array no XML acontece conforme mostra a Figura 6 14 em a est se atribuindo a constante real 12 34 para uma posi o do array indexada pela constante 3 em b uma atribui o para uma posi o indexada pela 69 66599 1 vari vel 1 em c uma atribui o para uma posi o indexada por uma express o e neste caso preciso avaliar primeiro a express o e indexar o array com o resultado Blocol OUT Em d uma posi o do array que est sendo atribu da para uma vari vel A M 3 12 34 A lt Bloco instr MOVE inl 12 34 in2 M 3 gt B M i 56 78 B lt Bloco instr MOVE inl 56 78 in2 M i gt C M i 1 9 01 C lt Blocol instr ADD inl i in2 1 gt lt Bloco instr MOVE inl 9 01 in2 M Blocol OUT gt D R M 3 D lt Bloco instr MOVE inl M 3 in2 r gt Figura 6 14 XML de Array em Express es Pode se ter estruturas mais complicadas tipo um array cujo ndice uma chamada de fun o com par metros de entrada dependentes de outro ou do mesmo array Por exmplo a Figura 6 15 mostra o XML da express o M 1 REAL_TO_INT 2 3 Sin 4 M 5 6 7 lt ATRIBUICAO gt lt Blocol instr SUB in1 4 in2 M 5 gt lt Bloco2 instr CHF nome Sin qtdIn 1 inl Blocol OUT type
139. ue cada atributo pode assumir na arquitetura XML Atributo Valor nome Nome do arquivo origem fun o programa ou vari vel type Tipo b sico INT DINT REAL ou ARRAY at Endere o de mem ria ou operando do CP atrib CONSTANT ou RETAIN instr EQ GT GE LE LT NE AND OR XOR ADD SUB MUL DIV EXPT CHF inl in2 Valores de entrada do bloco var Nome da vari vel do FOR n o confundir com a tag VAR to Valor limite da vari vel do FOR valor Valores poss veis de cl usulas OF de um comando CASE Tabela 6 5 Valores dos Atributos na Arquitetura XML Nesta arquitetura n o est o representadas a entrada EN e sa da ENO opcionais dos blocos conforme define a norma Seria poss vel entretanto inseri las no XML atrav s de dois atributos a mais na tag correspondente Tamb m n o est representado aqui os Function Blocks cujas principais diferen as em rela o aos functions s o 1 possuem vari veis internas de estado 2 precisam ser instanciados antes de serem executados 3 a chamada feita pelo nome da vari vel instanciada e n o pelo nome do function block Os Function Blocks poderiam ser inclu dos no XML de uma forma muito semelhante ao Function 6 6 DTD da Arquitetura XML A Figura 6 24 e Figura 6 25 mostram a DTD da arquitetura XML Est o presentes todos as tags e atributos definidos neste cap tulo 75 lt ELEMENT ARQ FUNCTION PROGRAM gt lt
140. us S A Para realizar esta convers o foi desenvolvido o programa XMLtoLD em Visual C 6 0 Este programa l um arquivo XML utilizando o parser expat identifica as tags e atributos da arquitetura XML faz a convers o para diagrama LD e grava um novo arquivo no formato Altus Durante os trabalhos iniciou se o desenvolvimento de um software visualizador para as linguagens gr ficas LD e FBD Passadas cerca de tr s semanas percebeu se que esta alternativa seria por demais complexa e optou se ent o por utilizar um visualizador que ja estivesse pronto no caso o da Altus em vez de construir um do zero Desta op o surgiu o programa XMLtoLD O XMLtoLD tamb m se mostrou bastante complexo de ser implementado pois demandou o conhecimento do assembly do microcontrolador 80C251 e do formato interno das instru es LD dos controladores program veis Altus Ap s o LD ser gerado pelo XMLtoLD ele pode ser visualizado pelo software programador MasterTool da Altus Pode inclusive ser editado ou at mesmo executado em um controlador program vel Ap s ter sido gerado n o h como distinguir se foi criado pelo MasterTool ou pelo XMLtoLD Salienta se que o XMLtoLD foi desenvolvido especificamente para o Altus para ser usado como prova de conceito A partir do XML cada fabricante respons vel por gerar seu pr prio XMLtoLD A escolha da Altus S A se deu por esta ser uma empresa bem conhecida no mercado de automa o industria
141. veis da Altus xili Abstract The international standard IEC 1131 3 defines five programming languages for programmable controllers The standard says that it is possible to translate a program developed with one language to any other but doesn t say how This master dissertation presents the proposal of a XML architecture that allows this kind of interchange for languages ST FBD and LD It is presented a bibliographical revision on domain specific languages main concepts of XML and general aspects of IEC 1131 3 standard Some works related with programmable controllers XML and IEC 1131 3 programming languages are presented It is made a comparison between ST LD and FBD languages and a proposal of textual representation for LD and FBD graphical diagrams The CLPScript language is defined from ST language It is defined XML tags and attributes used for the representation of LD and FBD diagrams and CLPScript programs forming the XML architecture The CLPStoXML program was developed a compiler who reads a CLPScript program and generates corresponding XML architecture A case study was developed where some CLPScript programs were converted to XML and then to LD language of Altus S A a manufacturer company of programmable controllers To carry through this conversion the XMLtoLD program was developed specifically for Altus s programmable controllers xiv 1 Introducao Resumo Este cap tulo apresenta uma introdu o
142. ven C Black Book Makron Books Ltda 2001 International Electro Technical Commission TEC International Standard 1131 3 Programmable Controllers Part 3 Programming Languages 1993 PINTO S C C S SILVA J L T COUTINHO H Constru o de um interpretador de linguagem algor tmica In III Sal o de inicia o cient fica da UFRGS 1991 Porto Alegre Proceedings of HI Sal o de Inicia o Cient fica da UFRGS 1991 v 1 p 1 2 Intelo amp XC25ISA S8XC251SB 8XC251SP 8XC25I1SQ Embedded Microcontroller User s Manual Intel 1996 Kain Eug ne The MFC Answer Book Addison Wesley Indianapolis 1999 Kruglinski David J Inside Visual C 4th ed Redmond Washington Microsoft Press 1997 Leijen Daan Meijer Erik Domain Specific Embedded Compilers USENIX 1999 Levine John R Mason Tony Brown Doug lex amp yacc O Reilly 1992 120 LEW95 MORO0 MORO1 MUC97 NATOO OUS98 PEPO1 PLC92 PLCO3 PRIOO ROC99 ROCOO SCO98 SHAO2 SIE99a SIE99b SILO1 SIPO1 SPIO0 Lewis R W Programming Industrial Control Systems Using IEC 1131 3 Institution of Electrical Engineers London 1995 Morgan Michael Java 2 para Programadores Profissionais Editora Ci ncia Moderna Ltda 2000 Moraes C C cero Castrucci L Pl nio Engenharia de Automa o Industrial LTC Livros T cnicos e Cient ficos Editora Rio de Janeiro 2001
143. ver Figura 3 1 as posi es P42 e P43 s o marcadas semelhante a um estado ativo da linguagem SFC Em P42 o motor ligado e em P43 a sa da Mover para baixo acionada Tudo permanece nesta situa o at que a transi o T43 seja disparada o que acontece quando a m quina atinge o limite inferior e a entrada digital correspondente acionada A posi o P43 ent o desmarcada a P44 marcada e a P42 fica inalterada A posi o P44 marcada desliga a sa da Mover p baixo e liga a Mover p cima Novamente tudo permanece nesta situa o at que a pr xima transi o T44 seja disparada pela entrada digital que indica que a m quina atingiu o limite superior quando ent o o motor desligado e encerra se o ciclo 3 1 1 Gera o de C digo em Instruction List IL A linguagem SIPN convertida na linguagem Instruction List IL da IEC 1131 3 Conforme Georg Frey a implementa o direta de um compilador iria funcionar para apenas um tipo especial de CP enquanto que convertendo se para a linguagem IL pode se executar o programa em qualquer CP que atenda a especifica o IEC 1131 3 A Figura 3 2 mostra a declara o das entradas e sa das digitais do exemplo apresentado Esta forma de declara o a mesma para todas as linguagens da TEC 1131 3 VAR GLOBA start button at IX0 0 bool part in position at IX0 1 bool lower position at IX0 2 bool upper position at Ix0 3 bool active at
144. xistem quatro regras e a transi o est habilitada se todos as pr posi es est o marcadas e todas as p s posi es est o n o marcadas e uma transi o disparada imediatamente se est habilitada e se a condi o de transi o est atendida e todas as transi es que podem disparar disparam imediatamente e o processo de disparo iterativo e continua at que uma marca o est vel atingida A Figura 3 1 mostra um exemplo de SIPN para controle de uma m quina furadeira Durante um ciclo de opera o o objetivo do controle ligar o motor da furadeira comandar a descida da broca para executar a perfura o e ap s conclu da comandar a subida de volta a posi o inicial Para isto o sistema que possui uma sa da digital para ligar desligar seu motor uma para moviment la para cima e outra para baixo Possui tamb m uma entrada digital para indicar que a m quina atingiu a posi o limite inferior e outra para a posi o superior o exemplo original apresenta outras entradas e sa da omitidas do texto em raz o de maior clareza P41 Beginning of No drilling cycle T41 a l P43 es Move the No drill DOWN Drilling Drill at ee O Motor ON T43 ME OER position v P44 CN Move the o dil UP Drill at T44 UPPER position Edil End of P45 a drilling cycle Figura 3 1 Exemplo de SIPN de M quina Furadeira 22 Durante a execu o da rede ap s a transi o T41

Download Pdf Manuals

image

Related Search

Related Contents

Manuel - CaryMart    Istruzioni per l`uso SCHICK – Set per fresare le ceramiche  SE-U33GXV - オンキヨー株式会社  Tally Genicom 8026DN Printer User Manual  

Copyright © All rights reserved.
Failed to retrieve file