Home
Manual de Utilização AL-2005/RTMP
Contents
1. 70 Resultado Observacoes Veja tamb m 5 Programa o onde TimerID identificador do temporizador a ser lido A fun o retorna o valor do temporizador em ticks do sistema isto o tempo restante antes do temporizador esgotar seu Intervalo de tempo programado com StartStopTimer e As interrup es n o s o alteradas CreateTimer DeleteTimer StartStopTimer ReleaseNestedResource Descri o Sintaxe Resultado Observa es Veja tamb m ReleaseResource Descri o Sintaxe Resultado Libera um recurso aninhado STATUS huge ReleaseNestedResource int nResourcelD onde nResourcelD identificador do recurso a ser liberado A fun o retorna OK INVALID RESOURCE ID RESOURCE NOT OWNED o recurso n o pode ser liberado pois n o pertence tarefa corrente e O contador de uso do recurso decrementado de um a cada chamada a ReleaseNestedResource O recurso n o fica livre enquanto o contador de uso n o chegar a zero e Quando se tornar livre o recurso ser Imediatamente repassado para a tarefa se houver alguma que estiver aguardando por ele h mais tempo Se necess rio o reescalonamento de tarefas ocorre imediatamente CreateResource DeleteResource ReserveResource ReleaseResource Libera um recurso incondicionalmente STATUS huge ReleaseResource int nResourcelD onde nResourcelD identificador do recurso a ser liberado A fun o retorna OK INVALID RESOURC
2. 17 Botao Execucao 3 Configura o Este comando passa o AL 2005 para o estado execu o Ao receber este comando o processador verifica se existe algum aplicativo carregado em sua mem ria Caso haja algum aplicativo na mem ria a BIOS dispara a sua execu o Caso contr rio o processador entra em estado de erro de programa Bot o Apagar Esta op o apaga todos os aplicativos residentes na mem ria do processador AL 2005 ATEN O O processo de apagamento dos programas aplicativos residentes na mem ria do processador AL 2005 um processo irrevers vel Bot o Diret rio Exibe o diret rio de aplicativos carregados na mem ria Flash do processador AL 2005 Para cada aplicativo carregado no processador exibido o n mero da aplica o bem como o n mero de bytes utilizados para c digo na mem ria Flash e o n mero de bytes utilizados para dados na mem ria RAM A figura a seguir apresenta uma tela exemplo de um diret rio 153860 Carregador do AL 2005 DEMO EXE Home 0 V3o0o Codigo 4740 Quantidade de Aplica es 1 Bytes Usados Bytes Livres Bytes Totais 4240 2126 192400 194564 196640 196992 BIOS AL 2005 Verz ao 3 00 Mar 21 2006 Class code recomendado D 106C Botao Porta Serial Data 220542006 Figura 3 4 Tela do diret rio loj x Selecionar Hora 19 04 Execu o Apagar Diret rio Porta Serial Sobre Fechar Esta op
3. DEC TAG Figura 6 3 Par metros de Entrada do M dulo F 2005 016 1 100 6 Desenvolvendo uma Aplica o para o AL 2005 MASTERTOOL E DEMO 001 L gicas4 Tamanho 288 bytes Ed o Busca Rel Mov Ait Cort con Gers Liga Janes 7 Ee la elle eee le iy i r i Te meme ceneensana rrenan nene Pee CHE Parametros de Entrada O R0000 e 0 1 g47M0000 o 2 5kKM 00019 2005 E KM 00003 ZKM DODOO DEC TAG Figura 6 4 Par metros de Entrada do M dulo F 2005 016 2 Utilizando os Programas DEMO Os programas DEMO s s o fornecidos como parte integrante do AL 2005 e tem como objetivo servir de base para o desenvolvimento de novas aplica es O desenvolvimento de novos programas aplicativos deve preferencialmente utilizar um destes exemplos como modelo j que nele est o inclusas as chamadas de todas as ferramentas necess rias para compilar depurar e gerar programas execut veis no processador AL 2005 Os dois exemplos foram desenvolvidos visando utilizarem recursos distintos dispon veis no ambiente de modo a oferecer uma gama maior de caracter sticas demonstradas Utilizando o recurso de menus configur veis do compilador Borland C poss vel chamar as seguintes ferramentas j com suas linhas de comando convenientemente acertadas e o depurador Turbo Debugger e o programa LOCATE para relocar aplica es a serem depuradas remotamente
4. desde que InSize seja maior do que um O padr o ent o repetido at o tamanho indicado por InSize GetBlock FreeBlock 50 Descri o Sintaxe Resultado Observa es Veja tamb m FreeBuffer Descri o Sintaxe Resultado Observa es Veja tamb m FreeEventGroup Descri o Sintaxe Resultado 5 Programa o Libera um bloco de mem ria STATUS huge FreeBlock char far lpBlock onde pBlock ponteiro para um bloco de mem ria alocado pelas fun es GetBlock ou GetBlockUsingHandle A fun o retorna OK INVALID MEMORY BLOCK MEMORY BLOCK NOT IN USE e O chaveamento de tarefas desabilitado na entrada da fun o e posteriormente restaurado ao encerrar a execu o da fun o e O contador de uso do bloco de mem ria decrementado de um Se o contador de uso chegar a zero o bloco de mem ria liberado para reutiliza o GetBlock GetBlockUsing Handle AddBlockUseCount Libera um buffer STATUS huge FreeBuffer char far lpBuffer onde lpBuffer ponteiro para um buffer obtido atrav s da fun o GetBuffer A fun o retorna OK BUFFER_NOT_IN_USE e O contador de uso do buffer decrementado de um Se o contador de uso chegar a zero o buffer retornado para a fila de buffers livres do pool GetBuffer AddBufferUseCount Libera um grupo de eventos STATUS huge FreeEventGroup GROUP Group onde Group identificador do grupo de eventos obtido com um
5. e os modelos dos equipamentos utilizados e a configura o do sistema instalado e on mero de s rie da UCP e arevisao do equipamento e a vers o do software executivo constantes na etiqueta afixada na lateral do produto e informa es sobre o modo de opera o da UCP obtidas atrav s do programador MasterTool e o conte do do programa aplicativo m dulos obtido atrav s do programador MasterTool e a vers o do programador utilizado 1 Descri o Tecnica Mensagens de Advert ncia Utilizadas neste Manual Neste manual as mensagens de advert ncia apresentar o os seguintes formatos e significados PERIGO Relatam causas potenciais que se n o observadas levam a danos integridade f sica e sa de patrim nio meio ambiente e perda da produ o CUIDADO Relatam detalhes de configura o aplica o e instala o que devem ser seguidos para evitar condi es que possam levar a falha do sistema e suas consequ ncias relacionadas ATEN O Indicam detalhes importantes de configura o aplica o ou instala o para obten o da m xima performance operacional do sistema 1 Descri o Tecnica 2 Descri o Tecnica 2 Descri o T cnica Este cap tulo apresenta as caracter sticas t cnicas do produto AL 2005 abordando as partes Integrantes do sistema sua arquitetura caracter sticas gerais e el tricas Descri o do Painel A figura 2 1 mostra o painel do produto AL 2005 Canal auxilia
6. 1 TI F ou TF ap s ler ou 37 4 Sistema Operacional antes de escrever os dado no CP visto que o CP trabalha no formato HI LO e a BIOS no formato LO HI Relogio e Sincronismo A BIOS possui um rel gio interno com resolu o de Ims que pode ser acessado pela aplica o para realizar leituras ou escritas acertos A estrutura de uma vari vel do tipo rel gio a seguinte typedef struct unsigned int bios_mseg milisegundo do tempo atual 0 999 unsigned char bios_seg segundo do tempo atual 0 59 unsigned char bios_min minuto do tempo atual 0 59 unsigned char bios_hor hora do tempo atual 0 23 unsigned char bios_dia dia da data atual 0 31 unsigned char bios_mes mes da data atual 1 12 unsigned char bios_ano ano da data atual 00 99 BIOSTIME Os seguintes servi os s o oferecidos em rela o ao rel gio Gerenciamento do GetTime Leitura do hor rio da BIOS rel gio da BIOS SetTime Escrita do hor rio na BIOS Al m da manuten o do hor rio interno a BIOS gera sinais de sincronismo atrav s do canal serial de programa o RJ45 permitindo o acerto do rel gio do CP atrav s do cabo AL 2329 Os pulsos de sincronismos gerados a cada segundo tem curta dura o largura de 250ms ou seja impedem o escorregamento de hor rio entre a BIOS e o CP Os pulsos s o gerados pelo sinal de RTS Request To Send do canal serial de programa o PG do AL 2005 O sinal gerado a cada
7. Se o gerenciador de mem ria for capaz de encontrar um bloco de mem ria de tamanho suficientemente grande que atenda o requerido fornecer um ponteiro para este bloco e uma indica o do tamanho real do mesmo O bloco devolvido pode ser um pouco maior do que o tamanho requisitado Se o gerenciador de mem ria n o localizar um bloco de tamanho suficiente retorna uma indica o de erro e o tamanho do maior bloco dispon vel naquele instante No entanto se a tarefa imediatamente requisitar um bloco com este tamanho a requisi o pode novamente falhar j que em um ambiente multitarefa outras tarefas com maior prioridade podem ter tomado parte desta mem ria antes mesmo que a tarefa possa renovar sua requisi o Quando o gerenciador de mem ria aloca um bloco para ser utilizado por uma tarefa seta o contador de uso do bloco em um O dono de um bloco pode incrementar o contador de uso do bloco AddBlockUseCount Neste caso o bloco dever ser liberado duas vezes antes de se tornar efetivamente livre 34 Listas 4 Sistema Operacional O contador de uso do bloco a chave da posse de blocos de mem ria O gerenciador de mem ria dono de todos os blocos livres Uma ou mais tarefas podem ser donas de um bloco j alocado Este conceito de posse de um bloco semelhante ao apresentado na se o anterior sobre a posse de um buffer atrav s do gerenciador de buffers Quando o uso de um bloco de mem ria n o mais necess rio
8. o Mec nica e El trica O Processador Multitarefa AL 2005 um m dulo utilizado com o sistema das UCPs AL 2003 ou AL 2004 Desta forma seus procedimentos de instala o mec nica e el trica s o descritos no cap tulo de Instala o do Manual de Utiliza o da UCP correspondente DO 7 Instala o Conexoes Gerais Interfaces Seriais O Processador Multitarefa AL 2005 possui um canal serial dedicado RS 232C para carga de programa e depura o de aplicativos e dois conectores seriais DB9 para conex o entre o Processador Multitarefa AL 2005 e equipamentos quaisquer Para a carga de programa ou depura o de aplicativos necess rio conectar um microcomputador padr o IBM PC ao Processador Multitarefa AL 2005 soquete PG do painel frontal atrav s do cabo AL 1340 ou AL 1327 conforme o tipo de conector A figura 7 2 mostra a conex o do canal serial COM A conector f mea DB9 do Processador Multitarefa AL 2005 a um equipamento qualquer s DA Sp S pee Sy S N Rg an PAPA o RR RRRRRRRA gt Fon URRAK AAR a ZOO 94052305A Figura 7 2 Conex o do Canal Serial Os conectores COM A e COM B apenas realizam a liga o f sica entre os cabos do meio externo com os m dulos de interface acoplados ao Processador Multitarefa AL 2005 Estes m dulos s o opcionais oferecendo diferentes tipos de interfaces seriais e AL 2405 485I um m dulo serial que implementa o p
9. ource Directories EC E Cancel E Help E ALZ2HA51L LI gt LIE na na DEMO C e na na IEEE med Fi Help The directories to search for your include H gt files Figura 6 5 Ajuste de Diret rios amp Borland C for DOS OF File Edit Search Run Compile Debug Project Mptmanso Window Help DEMO C Application Compiler Transfer OBJETO DEMO C AUTOR ALTUS Make Linker DESCRICAO Aplicativo de demonstra o para o RIM Librarian Debugger eS Directories ALTERACOES da al w x xX KX K xX KX AMA MA A AA autor metodo rotina descricao Savel Ed 1 1 File name Location Lines Code Data de ALZHASL LIB SLIB na n a n a E SE E 424 1626 4664 aE ee Fi Help Figura 6 6 Ajuste de Comandos 1 102 6 Desenvolvendo uma Aplica o para o AL 2005 M Borland C for DOS ON File Edit Search Run Compile Debug Project Options Window Hely OBJETO DEMO GC DESCRICAO Apl AA AAAA autor BR ae me ae me me E Re locador Fi Help Use cursor keys to examine the list of Transfer items Figura 6 7 Ajuste do Comando Relocador 1 2 Borland C for DOS OR File Edit Search Run Compile Debug Project Options Window Hely a ha a he ee ee ee ee ee ee Cw EPSP ee ee ee ee ol el el he ee er hr PETE ee ee ee ee ee ee ee ee ee ee ee ee ee ee Ka ocr itle Hot ke D
10. CALLING TASK WAITING NO MESSAGE WAITING e Seoretorno for diferente de OK a vari vel em lpMessage n o alterada e Seoretorno for CALLING TASK WATTINGS a tarefa que est chamando GetMailboxMessage est correntemente processando uma mensagem enviada por outra tarefa que est por sua vez aguardando por uma confirma o de que a mensagem foi recebida N o poss vel obter nova mensagem antes que a mensagem corrente tenha sido completamente processada Para tanto deve se chamar WakeCallingTask para acordar a tarefa que est aguardando e s 56 Veja tamb m GetNumTab Descri o Sintaxe Resultado Veja tamb m GetTamTab Descri o Sintaxe Resultado Veja tamb m GetTaskDescriptor Descri o Sintaxe Resultado 5 Programa o ent o voltar a chamar GetMailboxMessage SendMessage SendMessage Wait WakeCallingTask Obt m o n mero da tabela de configura o associada a um processador Somente pode ser chamada de dentro da fun o HookPLC char huge GetNumTab char num coproc onde num coproc n mero de identifica o do processador A fun o retorna o n mero da tabela de configura o associada ao processador especificado HookPLC GetIDCoproc GetTamTab Obt m o tamanho da tabela de configura o associada a um processador Somente pode ser chamada de dentro da fun o HookPLC char huge GetTamTab char num coproc onde num coproc n mero de identifica o do
11. DEMONUT ILSLOCATE ommand Line L 1T anslator Enter the path and program name associated with this item Figura 6 8 Ajuste do Comando Relocador 2 103 6 Desenvolvendo uma Aplica o para o AL 2005 2 Borland C for DOS IO x File Edit Search Run Compile Debug Project Options Window Help OBJETO DEMO C DESCRICAO Apl Turbo Debugger AA teal tee LLLP 2 pe x i w Fi Help Use cursor keys to examine the list of Transfer items Figura 6 9 Ajuste do Comando Turbo Debugger 1 M Borland C for DOS IO x File Edit Search Run Compile Debug Project Options Window Help T Hot ke Turbo Debugger Shift F4 5 ath l ommand Line 1 T anslator Enter title you want assigned to the Transfer item Figura 6 10 Ajuste do Comando Turbo Debugger 2 104 6 Desenvolvendo uma Aplica o para o AL 2005 2 Borland C for DOS Oe E4 File Edit Search Run Compile Debug Project Options Window Hely DEJETO DATA 81 89 84 DESCRICAO Carregador ALSG6A Fi Help Use cursor keys to examine the list of Transfer items Figura 6 11 Ajuste do Comando Carregador AL 3860 1 Command Prompt be dit earch un i ions indow I Hot ke carregador ALIS6A Shift F NEGA ath ommand Line SSAUE CUR SERENAME L 1T anslator 2 nea na na AL266 DEMO C FLOAT ASM Fi Help
12. Descri o Sintaxe 5 Programa o Beginlnterrupt EndInterrupt ChangelnterruptHandler Seta o offset de um ponteiro void huge SetOffset void far Iptr int nOffset onde ptr ponteiro para a memoria nOffset valor de offset a ser atribu do a ptr A parte do offset do ponteiro ptr setada com o valor de 16 bits sem sinal nOffset e As interrup es n o s o alteradas SetSegment Offset Segment Seta o segmento de um ponteiro void huge SetSegment void far Iptr int nSegment onde ptr ponteiro para a memoria nSegment valor de segmento a ser atribu do a ptr A parte do segmento do ponteiro ptr setada com o valor de 16 bits sem sinal nSegment e As interrup es n o s o alteradas SetOffset Offset Segment Escrita no rel gio interno da BIOS para realizar acertos de hor rio void huge SetTime BIOSTIME far lpTime onde IpTime 80 Veja tamb m SignalEvent Descri o Sintaxe Resultado Veja tamb m SignalSemaphore Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o ponteiro para a estrutura com o novo hor rio GetTime Sinaliza um ou mais eventos em um grupo STATUS huge SignalEvent GROUP Group GROUP ValueMask GROUP GroupValue onde Group identificador do grupo de eventos obtido com uma chamada a GetEventGroup ValueMask m scara de 16 bits identificando os flags de interesse no grupo de eventos Group
13. Observa es 5 Programa o mem ria M e TM decimal D e TD inteiro Y l e WTD e real F e TF no CP ReadOp WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC L informa es de status do CP ou da rede ALNET I N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadPLC void buffer char tipo req unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser o armazenados as informa es de status lidas do CP tipo req tipo do operando do CP TIPO STATUS CP TIPO STATUS ALNETH nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela leitura das informa es especificadas se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da leitura A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a leitur
14. a tarefa retornar imediatamente sem aguardar o encerramento da escrita permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO NAO DEFINIDO houve a tentativa de escrita de um operando n o declarado na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de escrita de um n mero inv lido de operandos O ou maior que o limite m ximo permitido para o tipo e Com esta fun o poss vel escrever at 1024 bytes de dados no CP ou seja at 512 operandos mem ria M ou 256 operandos decimal D inteiro I ou real F e Seo bit 7 do par
15. aplica o main da BIOS e a segunda tarefa a de comunica o com o carregador AL 3860 As outras 8 tarefas est o dispon veis para serem utilizadas pelas aplica es a serem carregadas no AL 2005 Cada aplica o carregada no AL 2005 considerada tamb m como uma nova tarefa Exemplo se forem carregadas duas aplica es no AL 2005 e onde cada uma delas ainda crie mais duas tarefas Create Task teremos 8 tarefas executando das 10 dispon veis tarefa 1 BIOS tarefa 2 tarefa criada pela main da BIOS int de comunica o tarefa 3 main da primeira aplica o carregada tarefa 4 main da segunda aplica o carregada tarefa 5 tarefa 1 2 criada pela main da primeira aplica o carregada tarefa 6 tarefa 2 2 criada pela main da primeira aplica o carregada tarefa 7 tarefa 1 2 criada pela main da segunda aplica o carregada tarefa 8 tarefa 2 2 criada pela main da segunda aplica o carregada tarefa 9 dispon vel tarefa 10 dispon vel A cria o din mica de uma tarefa requer a inicializa o de uma estrutura de dados de descri o da tarefa que cont m informa es relevantes para que o sistema operacional controle a execu o da mesma Esta estrutura encontra se definida no arquivo AL2005 H da seguinte forma 21 4 Sistema Operacional typedef struct void far far TaskProcedure char Tagl char Tag2 char Tag3 char Tag4 unsigned int
16. de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de escrita de uma tabela n o declarado na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de escrita de um n mero inv lido de posi es da tabela O posi es ou mais posi es que o permitido por esta fun o e Com esta fun o poss vel escrever at 2048 bytes de dados do CP ou seja at 1024 posi es de operandos tabela mem ria TM ou at 512 posi es de operandos tabela decimal TD tabela inteiro TI ou tabela real Jo TF e O n mero de posi es de tabelas que ser o escritas corresponde a soma de posi es das N tabelas a serem escritas a partir da primeira tabela ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs ReadPLC WritePLC Escrita de operandos tabela Mem ria Decimal Inteiro ou Real TM TD TI ou TF no CP invertendo automaticamente os bytes de valores dos operandos para o formato utilizado pelo CP N o pode ser chamada
17. houve a tentativa de leitura de um n mero inv lido de posi es da tabela O posi es ou mais posi es que o permitido por esta fun o e Com esta fun o poss vel ler at 2048 bytes de dados do CP ou seja at 1024 posi es de operandos tabela mem ria TM ou at 512 posi es de operandos tabela decimal TD tabela inteiro TI ou tabela real TF e A rea de mem ria alocada para a leitura deve ser suficiente para acomodar todas as tabelas especificadas Um erro fatal pode ocorrer caso sejam corrompidos os conte dos de qualquer parte da mem ria fora dos limites da rea alocada e O n mero de posi es de tabelas que ser o lidas corresponde a soma de posi es das N tabelas a serem lidas a partir da primeira tabela ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap WriteTabs ReadPLC WritePLC Leitura de tabelas tipo Mem ria Decimal Inteiro ou Real TM TD TI ou TF do CP invertendo automaticamente os bytes de valores dos operandos para o formato utilizado pela BIOS N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadTabSwap void buffer char tipo op int address int pos ini unsigned char num op unsigned char far pnum op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser armazenada a tabela lida do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEIRO TIPO TABELA DECIMAL TIPO TABELA REAL
18. ltima mem ria escrita por esta opera o e Seo bit 7 do par metro de tipo do operando do CP estiver ligado escrita orientada a bit e o tipo de operando for TIPO DECIMAL TIPO INTEIRO ou TIPO REAL o par metro sub dever conter no byte alto o n mero do bit inicial O a 31 a partir do qual o primeiro operando dever ser escrito e no byte baixo o n mero do bit final O a 31 que dever ser escrito no ltimo operando escrito por esta opera o ReadOp ReadOpSwap WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC Escrita de operandos simples tipo Mem ria Decimal Inteiro ou Real M D 1 ou F no CP invertendo automaticamente os bytes de valores dos operandos para o formato utilizado pelo CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge WriteOpSwap void buffer char tipo op int address int sub unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea de mem ria que cont m os valores a serem escritos no operando do CP tipo op 89 Resultado Observacoes 5 Programa o tipo do operando do CP TIPO MEMORIA TIPO INTEIRO TIPO DECIMAL TIPO REAL address endere o do operando no CP sub endere o da subdivis o do operando do CP num op n mero de operandos do CP que se deseja escrever nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela escrita dos operandos especificados se nTimeOut 0
19. o de endere os v lidos para m dulos inteligentes e OPER4 n o utilizado O Carregador de Aplicativos AL 3860 O carregador AL 3860 permite a carga de aplicativos para o processador AL 2005 bem como a execu o de opera es de manuten o tais como leitura de aplicativos j carregados e remo o dos mesmos Para a execu o do carregador AL 3860 primeiramente necess rio conectar se o cabo AL 1327 na porta de comunica o serial desejada e ligar o AL 2005 O AL 2005 indicar que n o existe aplica o carregada utilizando o pela primeira vez Ap s necess rio selecionar a porta de comunica o desejada pressionando se o bot o Porta Serial Finalmente executar o programa AL 3860 no diret rio corrente A tela de apresenta o do carregador AL 3860 mostrada na figura a seguir AL3860 Carregador do AL 2005 x Selecionar Enviar Eancelar Programa o Execu o Apagar Diret rio Porta Serial Sobre Fechar EERI Figura 3 2 Carregador AL 3860 16 3 Configura o ATEN O Para executar as opera es no AL 2005 o mesmo deve encontrar se obrigatoriamente no estado programa o A rea branca destinada a mostrar informa es sobre as aplica es carregadas no AL 2005 bem como mensagens orientativas auxiliando a utiliza o do software As seguintes opera es est o dispon veis no AL 3860 atrav s de bot es de comando Bot
20. o do Borland C Atrav s da op o de menu Compile O diret rio do compilador Borland C deve estar definido no path do sistema operacional As figuras a seguir mostram o resultado da compila o do projeto amp Borland C for DOS OF ES File Edit Search Run Mame Debug Project Options Window Hely 1 3 Compile Alt F9 Make F include alz2005 h Link H include demo h Build all t Hdefine PRIOR TASK 64 Hdefine TAMANHO PILHA 12HH HAHAHAHA 1 1 Project DEMO File name Location CHEXEL 0OBJ SLIB ALZHHSL LIB sLIE Fi Help Rebuild all files Figura 6 13 Menu Compile amp Borland C for DOS Miel ES File Edit Search Run Compile Debug Project Options Window Hely Especificos H include al2hH85 _h H include demo h EET RHECE EST RCECE EXE file DEMO EXE Linking BORLANDOSLIENCL LIEB Total Link Lines compiled 2112 PASS 2 fidefine PRIOR TASK Warnings B H def ine TAMANHO PI Errors H 5 Qecgtcgecregerse n Available memory 2035K 31 1 File name Locatii Lines Code Data ALZHASL LIB SLIB na na na DEMO C E dad 1625 4064 Fi Help Alt FE Next Msg Alt F Prev Msg Alt F Compile F Make F186 Menu Figura 6 14 Gera o do C digo Execut vel 108 6 Desenvolvendo uma Aplica o para o AL 2005 Depura o dos Programas DEMO Vers o para Depura o Para gerar o aplicativo de demonstra o a ser depurado via Turbo Debu
21. o permite selecionar o canal serial do microcomputador que ser utilizado na comunica o com o processador AL 2005 A figura a seguir mostra a janela de sele o do canal 18 3 Configura o i O x 4 aL3860 Carregador do AL 2005 DEMO EXE _ Selecionar ID Home Codigo Dados Data Hora 0 vai 4240 2126 22052006 19 04 Enviar i i x Quantidade de Ap ic sai BE Bytes Usados Serial COM2 Programa o Bytes Livres Execu o Bytes Totais alae BIOS AL 2005 Yersac Diret rio Class code recomenc Cancel Porta Serial Sobre Fechar EEHEHE Figura 3 3 Sele o do Canal Serial Bot o Sobre Esta op o mostra a vers o do AL 3860 Bot o Fechar Permite finalizar a execu o do carregador AL 3860 19 4 Sistema Operacional 4 Sistema Operacional Um sistema de tempo real caracterizado pela necessidade de uma resposta rapida a eventos que ocorrem assincronamente no tempo Um sistema multitarefa aquele no qual varias atividades ou processos devem ser realizados simultaneamente sem interfer ncia entre s1 Um sistema no qual v rias atividades devam operar simultaneamente em tempos cr ticos chamado de sistema multitarefa em tempo real O sistema operacional do processador AL 2005 fornece uma solu o simples para a complexidade de m ltiplas tarefas sendo executadas em tempo real supervisionando a execu o ordenada deste conjunto de tarefas Uma tarefa nad
22. seu dono pode liber lo FreeBlock passando o mesmo ponteiro recebido quando o bloco foi originalmente alocado O gerenciador de memoria decrementa o contador de uso e caso este tenha chegado a zero retorna o ao conjunto de blocos livres Caso haja blocos livres adjacentes ao bloco liberado todos estes blocos s o reunidos para formar um nico bloco maior O gerenciador de mem ria pode fornecer o tamanho de um bloco de mem ria em particular GetBlockSize o que pode ser til se uma tarefa recebe a posse de um buffer de uma outra tarefa O novo dono do bloco pode ent o verificar se o tamanho do bloco atende as suas necessidades Se uma tarefa corromper os conte dos de qualquer parte da mem ria fora dos limites do seu bloco os efeitos s o imprevis veis e potencialmente desastrosos Uma caracter stica particular do gerenciador de mem ria permite que qualquer bloco de mem ria possa ser tratado como uma se o de mem ria privada de onde blocos menores podem ser dinamicamente alocados Para tanto a tarefa chama a fun o GetHandle passando lhe um ponteiro para uma rea privada de mem ria cujo acesso deve ser controlado pelo gerenciador de mem ria Deve se especificar o tamanho desta rea O gerenciador de mem ria converte esta rea em uma se o de mem ria para uso privado da tarefa identificada por um handle de mem ria que um ponteiro de 32 bits retornado para a tarefa que o requisitou O handle de mem ria deve s
23. A tarefa que faz a requisi o colocada em estado de espera at que 1 a tarefa chamada recebe a mensagem e chama WakeCallingTask ou 2 a tarefa chamada recebe a mensagem e encerra sua execu o chamando EndTask ou retornando para o sistema operacional STATUS huge SendMessageWait TASKID TaskID int nPriority char far pMessage onde TaskID 11 Resultado Observa es Veja tamb m SerialConfig Descri o Sintaxe 5 Programa o identificador da tarefa para a qual a mensagem deve ser enviada nPriority prioridade da mensagem O maior 3 menor IpMessage nome de um array ou ponteiro para 12 bytes consecutivos que formam a mensagem a ser copiada para a tarefa destino a mensagem pode ser qualquer estrutura de 12 bytes A fun o retorna OK INVALID TASK ID NO FREE ENVELOPE NO MAILBOX DEFINED MAILBOX FULL e Um chaveamento imediato ocorrer para a tarefa pronta de maior prioridade SendMessage StartTask EndTask WakeCallingTask Inicializa canal serial STATUS huge SerialConfig char Channel unsigned nBaudRate char nStopBits char nParity char nDataBits onde Channel identificador do canal a ser inicializado COM AouCOM B nBaudRate taxa de comunica o SERIAL BAUDSO0 SERIAL BAUDYS5 SERIAL BAUDIIO SERIAL BAUDIS4 5 SERIAL BAUDISO0 SERIAL BAUDS300 SERIAL BAUDO600 SERIAL BAUD1200 SERIAL_BAUD 1800 SERIAL BAUD2000 SERIAL BAUD2400 SERIAL BAUDS3600 SERIAL BAUD4 00 S
24. Inicializa o tratamento de aritm tica em ponto flutuante void far Emulnit void N o h retorno de Emulnit e Esta fun o deve ser chamada por cada tarefa que necessite fazer uso de valores em ponto flutuante antes de utiliz los 48 Enable Descri o Sintaxe Resultado Veja tamb m Endinterrupt Descri o Sintaxe Resultado Veja tamb m EndTask Descri o Sintaxe Resultado Observa es Veja tamb m EscreveLeds Descri o Habilita as interrup es void huge Enable void As interrup es s o habilitadas Disable Termina o atendimento de uma interrup o void huge Endlnterrupt void 5 Programa o O supervisor de interrup es verifica se a rotina de atendimento de interrup o est retornando para uma tarefa interrompida Em caso positivo chaveia para a pilha da tarefa Os registradores salvos s o restaurados da pilha antes de retornar para o chamador de Endlnterrupt Beginlnterrupt Setlnterrup Termina a execu o da tarefa corrente void huge EndTask void N o h retorno de EndTask e Se alguma tarefa estiver aguardando pelo encerramento do processamento de uma mensagem enviada para esta tarefa o sistema operacional automaticamente chama WakeCallingTask para acord la e EndTask somente pode ser usada para terminar a tarefa que a chamar SendMessage StartTask WakeCallingTask StopTask KillTask DeleteTask Permite controlar os LEDs PG COM PG
25. Libera um recurso aninhado ReleaseResource Libera um recurso incondicionalmente DeleteResource Remove um recurso Um recurso deve ser criado por uma tarefa antes que possa ser utilizado CreateResource Cada recurso controlado pelo gerenciador de recursos tem um limite m ximo definido pelo usu rio do n mero de tarefas que podem aguardar por ele Uma tarefa requisita a posse de um recurso atrav s da reserva do recurso ReserveResource Se o recurso estiver dispon vel a tarefa tem assegurado imediatamente a posse do recurso Se o recurso 30 4 Sistema Operacional n o estiver dispon vel a tarefa colocada no final de uma lista de tarefas que est o aguardando por aquele recurso Uma tarefa que j possui um recurso pode reserv lo novamente resultando em uma reserva aninhada Quando a tarefa que correntemente possui o recurso liber lo o recurso ser dado tarefa que estiver h mais tempo aguardando por ele A tarefa que possui o recurso deve liber lo uma vez para cada reserva aninhada que tenha realizado ReleaseNestedResource ou o recurso pode ser incondicionalmente liberado ReleaseResource Se um recurso n o necessita mais ser compartilhado uma tarefa pode remov lo DeleteResource Sem foros O gerenciador de sem foros fornece sem foros contadores de uso geral com enfileiramento de prioridades e timeout que fornecem facilidades de sincroniza o entre tarefas executadas concorrentemente Em um
26. NumeroTxNoack Num de TX sem ACK de hardware unsigned int NumeroTxErro Num de TX abortadas por excesso de erro unsigned int NumeroTxTimeout Numero de time out de buffers unsigned int NumeroTxFalta Numero de vezes que estourou buffer de TX unsigned int LivreO 2 unsigned int NumeroRxOk Num de recepcoes sem erros unsigned int NumeroRxAbt Num de RX abortadas por colisao unsigned int NumeroRxOvr Num de RX com overrun unsigned int NumeroRxCrc Num de RX com erro de CRC unsigned int NumeroRxAe Num de RX com erro de alinhamento unsigned int NumeroRxLong Num de RX de pacotes muito grandes unsigned int NumeroRxTimeout Num de time outs em respostas de pacote unsigned int NumeroRxFalta Numero de vezes que estorou buffer de RX unsigned int Livrel 1 unsigned int Velocidade Velocidade de comunicacao unsigned int EnderecoNo Endereco do CP na rede unsigned int EnderecoSubrede Endereco da subrede local unsigned int Multicast Grupos de multicast que o CP pertence unsigned int Gateway Endereco do primeiro gateway unsigned int Gateway2 Endereco do segundo gateway unsigned int TimeoutLocal Time out local unsigned int TimeoutExterno Time out externo unsigned int TimeoutPacote Time out de pacotes unsigned int TentativasTx Numero de tentativas de retransmissao char NomeEstacao 20 Nome de identific
27. USE COUNT OVERFLOW e Seoretorno for diferente de OK o contador de uso do bloco de mem ria permanece inalterado e Seo contador de uso de um bloco for incrementado de n o bloco n o ser liberado at que n chamadas a FreeBlock sejam executadas GetBlock GetBlockUsing Handle FreeBlock Acrescenta ao final da lista STATUS huge AddBottomList void far lpList unsigned long Item onde pList ponteiro para uma lista circular veja ResetList Item vari vel de 1 2 ou 4 bytes a ser acrescentada lista A fun o retorna 0 inser o ok lista n o est cheia 1 inser o ok lista agora ficou cheia nao possivel inserir item lista esta cheia ResetList AddTopList GetTopList GetBottomList 41 AddBufferUseCount Descri o Sintaxe Resultado Observa es Veja tamb m AddTopList Descri o Sintaxe Resultado Veja tamb m Begininterrupt Descri o Sintaxe 5 Programa o Incrementa contador de uso de um buffer STATUS huge AddBufferUseCount char far lpBuffer int nIncrement onde lpBuffer ponteiro para um buffer obtido pela chamada da fun o GetBuffer nincrement valor com sinal a ser somado ao contador de uso do buffer A fun o retorna OK BUFFER NOT IN USE BUFFER USE COUNT OVERFLOW contador nIncrement gt 65535 e Seo contador de uso de um buffer for incrementado de n o buffer n o ser retornado a lista de buffers livres do seu pool at
28. a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de escrita de uma tabela n o declarado na mem ria do CP COD ERRO INDICE TABELA INVALIDO houve a tentativa de escrita de uma posi o de tabela n o declarada na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de escrita de um n mero inv lido de posi es da tabela 0 ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab ReadTabs WriteTabs ReadPLC WritePLC 96 6 Desenvolvendo uma Aplica o para o AL 2005 6 Desenvolvendo uma Aplica o para o AL 2005 Instala o do Ambiente de Desenvolvimento O ambiente de desenvolvimento de aplica es para o AL 2005 e duas aplica es exemplo s o fornecidos juntamente com o processador AL 2005 As aplica es exemplo s o modelos de desenvolvimento para aplica es que envolvam comunica o com outros dispositivos e de aplica es de c lculo efetuadas no coprocessador Os diret6rios arquivos necess rios para o desenvolvimento de uma nova aplica o para o processador AL 2005 s o instalados a partir do CD origem em um diret rio de trabalho no microcomputador gerando a rvore de diret rios descrita a seguir Diret rio INCLUDE Cont m unicamente o arquivo AL2005
29. address endere o da tabela do CP pos ini posi o inicial da tabela num op n mero de operandos da tabela a serem lidos se num op 1 a tabela completa 69 Resultado Observacoes Veja tamb m ReadTimer Descri o Sintaxe 5 Programa o lida e seu tamanho devolvido no endere o apontado por pnum op pnum op ponteiro para armazenar o n mero total de operandos da tabela se num op 1 nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela leitura da tabela especificada se nTimeOut 0 a tarefa retornar erro imediatamente pois a BIOS n o suporta o ac mulo de leituras com swap em sua fila de requisi es devendo se aguardar sempre pela sua execu o A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a leitura verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 c
30. ambiente multitarefa frequentemente necess rio que uma tarefa ganhe acesso mutuamente exclusivo a recursos cr ticos O recurso pode ser uma regi o de c digo ou uma fun o n o reentrante e portanto n o compartilh vel Um sem foro pode ser usado para assegurar o acesso mutuamente exclusivo das tarefas a recursos cr ticos Um sem foro tamb m pode ser usado para controlar a aloca o de recursos escassos E W Dijkstra introduziu duas opera es primitivas para controlar o acesso exclusivo a recursos cr ticos As primitivas abstratas chamadas de operadores P e V operam sobre uma vari vel chamada sem foro Muitas varia es destes operadores P e V foram implementadas deste sua introdu o inicial O gerenciador de sem foros fornece uma varia o conhecida como sem foro contador ao qual acrescentado o enfileiramento de prioridades e timeout autom tico O gerenciador de sem foros fornece o seguinte conjunto de servi os Gerenciamento CreateSemaphore Cria um sem foro de sem foros WaitSemaphore Aguarda por um sem foro timeout opcional SignalSemaphore Sinaliza um sem foro DeleteSemaphore Remove um sem foro Um n mero qualquer de sem foros definidos pelo usu rio podem ser criados CreateSemaphore Ao ser criado deve se especificar sua contagem inicial e o n mero m ximo de tarefas que podem aguardar por ele Quando usado para exclus o m tua o valor inicial do sem foro deve ser 1 Se o sem foro
31. aos operandos do CP permitem o acesso escrita e leitura aos operandos do CP operandos simples e tabelas e fun es de comunica o com acesso aos estados do CP permitem o acesso escrita e leitura s informa es de estado do CP e estado da sua rede de comunica o ALNET H e fun es de aloca o de mem ria din mica e fun es de acesso a placa serial padr o RS 485 ou RS 232C Estas fun es s o apresentadas em ordem alfab tica e para cada uma delas s o especificados descri o sintaxe resultado observa es opcional veja tamb m ATEN O Para as fun es desta lista exceto quando explicitamente indicado as interrup es s o desabilitadas na entrada da fun o e posteriormente restauradas ao encerrar a execu o da fun o para o estado em que se encontravam no momento da chamada 40 5 Programa o Fun es da Biblioteca de Suporte AddBlockUseCount Descri o Sintaxe Resultado Observa es Veja tamb m AddBottomList Descri o Sintaxe Resultado Veja tamb m Incrementa contador de uso de um bloco de mem ria STATUS huge AddBlockUseCount char far lpBlock int nIncrement onde pBlock ponteiro para um bloco de mem ria alocado pelas fun es GetBlock ou GetBlockUsingHandle nincrement valor com sinal a ser somado ao contador de uso do bloco de mem ria A fun o retorna OK INVALID MEMORY BLOCK MEMORY BLOCK NOT IN USE MEMORY BLOCK
32. associada a um temporizador peri dico pode para lo chamando StartStopTimer com TimerValue 0 O temporizador peri dico pode ser novamente disparado chamando StartStopTimer com TimerValue n O temporizador esgotar ap s n ticks de sistema e retomar sua opera o peri dica com o seu per odo pr definido por CreateTimer e Temporizadores n o peri dicos one shot timers podem ser re disparados por sua rotina de temporiza o associada usando StartStopTimer CreateTimer DeleteTimer ReadTimer Dispara a execu o de uma tarefa STATUS huge StartTask TASKID TaskID onde TaskID identificador da tarefa a ser disparada A fun o retorna OK INVALID TASK ID e Um chaveamento imediato de tarefas ocorrer caso a tarefa que est sendo disparada tiver maior prioridade do que a tarefa corrente SendMessage EndTask Para termina a execu o de uma tarefa 82 Sintaxe Resultado Observacoes Veja tamb m TimeConvert Descri o Sintaxe Resultado Observa es Veja tamb m TXBlock Descri o Sintaxe 5 Programa o STATUS huge StopTask TASKID TaskID onde TaskID identificador da tarefa a ser parada A fun o retorna OK INVALID TASK ID TASK ABORT NOT ALLOWED e Qualquer tarefa que esteja aguardando que a tarefa parada responda a uma mensagem retomar sua execu o e Uma tarefa pode parar a si mesma e N o se deve parar uma tarefa que esteja aguardando por um re
33. da biblioteca do sistema O programa executivo do AL 2005 tamb m chamado de BIOS um sistema operacional multitarefa de tempo real preemptivo que suporta a execu o simult nea de v rios programas aplicativos Para tanto torna dispon vel ao projetista de aplica es uma biblioteca de fun es Atrav s do suporte desta biblioteca de fun es poss vel e desenvolver aplicativos multitarefa utilizando fun es de cria o de tarefas espera de eventos espera de recursos sem foros identifica o de tarefas etc 1 Descri o Tecnica e utilizar aritm tica de ponto flutuante e realizar aloca o din mica de mem ria e acessar os operandos do CP atrav s de fun es de escrita e leitura a operandos simples e tabelas e acessar as placas seriais conjugadas ao hardware do AL 2005 nos padr o RS 485 ou RS 232C Documentos Relacionados a este Manual Para obter informa es adicionais sobre o processador AL 2005 podem ser consultados outros documentos manuais e caracter sticas t cnicas al m deste Estes documentos encontram se dispon veis em sua ltima revis o em www altus com br Cada produto possui um documento denominado Caracter stica T cnica CT onde encontram se as caracter sticas do produto em quest o Adicionalmente o produto pode possuir Manuais de Utiliza o o c digo do manuais s o citados na CT Aconselha se os seguintes documentos como fonte de informa o adicional e Manual
34. de dentro da fun o HookPLC 94 Sintaxe Observa o Resultado 5 Programa o STATUS huge WriteTabSwap void buffer char tipo op int address int pos ini unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria que cont m os valores a serem escritos na tabela do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEIRO TIPO TABELA DECIMAL TIPO TABELA REAL se o bit 7 deste par metro estiver ligado a escrita ser executada a n vel de bit servindo portanto para escrita individual de bits de tabela address endere o da tabela do CP se for uma escrita orientada a bit bit 7 do tipo op estiver ligado o byte alto deste par metro dever indicar o n mero do ltimo bit a ser escrito dentro da posi o final de tabela 0 a 15 pos ini posi o inicial da tabela se for uma escrita orientada a bit bit 7 do tipo op estiver ligado o byte alto deste par metro dever indicar o n mero do primeiro bit a ser escrito dentro da posi o inicial de tabela informada no byte baixo deste par metro 0 a 15 num op n mero de operandos da tabela a serem escritos se for uma escrita orientada a bit bit 7 do tipo op estiver ligado o n mero d posi es de tabela a serem escritas devem incluir tanto a posi o inicial quanto a ltima posi o que deve ser escrita ainda que estas posi es n o tenham todos os seus bits escritos se pos ini 0 e num op 1 que para o ti
35. de um pool o mesmo pode ser removido DeleteBufferPool Quando isto ocorrer toda a rea de mem ria RAM alocada na cria o do pool de buffers liberada O gerenciador de mem ria controla a aloca o din mica de mem ria para as tarefas no ambiente multitarefa Os seguintes servi os de gerenciamento de mem ria s o fornecidos Gerenciamento AddBlockUseCount Incrementa contador de uso de um bloco de mem ria da mem ria FillBlock Preenche um bloco de memoria com um padrao FreeBlock Libera um bloco de memoria GetBlock Obt m um bloco de memoria GetBlockSize Obt m o tamanho de um bloco de memoria GetBlockUsingHandle Obt m bloco de mem ria usando um handle privado GetHandle Cria um handle privado de mem ria A seguinte nomenclatura adotada para o gerenciador de mem ria e bloco de mem ria Regi o da mem ria RAM alinhada par grafo Um bloco pode ultrapassar 64 Kbytes de tamanho e contador de uso de um bloco Inteiro associado a um bloco de mem ria mas que n o faz parte dele usado pelo gerenciador de mem ria para manter se informado sobre o n mero de donos do bloco e handle de mem ria Identificador de 32 bits fornecido pelo gerenciador de mem ria para identificar um bloco de mem ria privativo de uma tarefa mas que ainda assim encontra se sob o controle do gerenciador de mem ria Qualquer tarefa pode chamar o gerenciador de mem ria a fim de obter um bloco de mem ria de qualquer tamanho GetBlock
36. digo de erro retornado quando nTimeOut 0 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de leitura de uma tabela n o declarada na mem ria do CP COD ERRO INDICE TABELA INVALIDO houve a tentativa de leitura de uma posi o de tabela n o declarada na mem ria do CP ou quantidade de dados a transferir ultrapassa 2048 bytes COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de leitura de um n mero inv lido de posi es da tabela 0 e Com esta fun o poss vel ler at 255 posi es de tabela seja ela do tipo mem ria TM decimal TD inteiro TT ou real TF e A rea de mem ria alocada para a leitura deve ser suficiente para acomodar toda a tabela especificada Um erro fatal pode ocorrer caso sejam corrompidos os conte dos de qualquer parte da mem ria fora dos limites da rea alocada e Os operandos com mais de um byte no CP AL 2003 e AL 2004 est o no formato HI LO enquanto que no AL 2005 no formato LO HI Por isso da necessidade de convers o ap s a leitura e antes da escrita de operandos tipo mem ria M e TM decimal D e TD inteiro Y l e WTD e real F e TF no CP ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC L o valor corrente de um temporizador unsigned int huge ReadTimer unsigned int TimerID
37. endere o da primeira tabela a ser lida do CP num op n mero de tabelas a serem lidas nTimeOut intervalo de tempo m ximo em ticks de sistema que a tarefa aguardar pela leitura das tabelas especificadas se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da leitura permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria 68 Observacoes Veja tamb m ReadTabSwap Descri o Sintaxe 5 Programa o prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a leitura verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de leitura de uma tabela n o declarada na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO
38. es sobre os procedimentos a serem tomados em cada caso Diagn sticos Diagn sticos s o mensagens que o sistema envia ao usu rio relatando anormalidades sejam elas falhas erros ou modos de opera o O AL 2005 possui quatro LEDs no seu painel frontal para indicar diferentes modos de opera o auxiliando tamb m no diagn stico de poss veis erros Suas indica es s o apresentadas na tabela a seguir LEDs Significado ERR aceso e PG A memoria do AL 2005 RTMP est vazia piscando AL 2005 em estado programa o PLC piscando AL 2005 em execu o e o processador comunicando com a UCP PLC permanentemente Poss vel erro na aplica o la o repetitivo aceso COM PG piscando AL 2005 comunicando com o computador pela porta serial de programa o durante a carga de aplica o PLC PG COM PG e Situa o normal de power up inicializa o do AL 2005 ERR acesos por alguns instantes PLC PG COM PG e Caso ocorra durante a execu o da aplica o indica erro irrecuper vel ERR permanentemente acesos Tabela 8 1 LED DG Teste das Interfaces Seriais O programa TSTCOM fornecido juntamente com o m dulo AL 2005 tem por por finalidade testar os canais e B do mesmo O software presente no m dulo fica constantemente informando pela porta serial a mensagem lt cn gt AL 2005 com A serial test no caso do software TSTCOM_A EXE O par metro lt cn gt um contador livre que informa o n mero da mensag
39. escrita permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o esta 92 5 Programa o Observa es Veja tamb m WriteTabs Descri o Sintaxe Resultado recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO NAO DEFINIDO houve a tentativa de escrita de uma tabela n o declarado na mem ria do CP COD ERRO INDICE TABELA INVALIDO houve a tentativa de escrita de uma posi o de tabela n o declarada na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de escrita de um n mero inv lido de posi es da tabela 0 e Com esta fun o poss vel escrever at 255 posi es de tabe
40. estrutura para armazenamento de ponteiros e As fun es de leitura e escrita de operandos operandos tabela ou status n o podem ser disparadas pelas fun es de tratamento das entradas da instru o CHF GetIDCoproc GetNumTab GetTamTab 59 InByte Descri o Sintaxe Resultado Observa es Veja tamb m InWord Descri o Sintaxe Resultado Observa es Veja tamb m KillTask Descri o Sintaxe Resultado 5 Programa o L byte de uma porta de entrada char huge InByte int nPort onde nPort n mero da porta de entrada A fun o retorna o byte lido e As interrup es n o s o alteradas InWord OutByte OutWord L palavra de uma porta de entrada unsigned int huge InWord int nPort onde nPort n mero da porta de entrada A fun o retorna a palavra lida e As interrup es n o s o alteradas InByte OutByte OutWord Mata uma tarefa For a que uma tarefa pronta em execu o ou suspensa seja encerrada Todas as mensagens nas caixas postais da tarefa ser o descartadas STATUS huge KillTask TASKID TaskID onde TaskID identificador da tarefa a ser morta A fun o retorna OK INVALID TASK ID TASK ABORT NOT ALLOWED 60 Observacoes Veja tamb m LocateTask Descri o Sintaxe Resultado Observa es Veja tamb m Offset Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o e Qua
41. far lpnStack unsigned int nStackSize unsigned int nTaskAttributes unsigned int nPriority unsigned int nTimeSlice int nMailOSize int nMaill Size int nMail2Size int nMail3 Size TASKDESCR onde TaskProcedure um ponteiro para a fun o que ser chamada pelo sistema operacional quando a tarefa for disparada ATEN O Toda fun o usada para disparar uma nova tarefa deve ser declarada como HUGE O motivo disto garantir que o registrador de segmento de dados DS da tarefa seja preservado quando houver chaveamento de tarefas Tagl a Tag4 s o quatro bytes usados para definir um tag nico isto um nome para cada tarefa normalmente utilizam se quatro caracteres ASCII como tag da tarefa A fun o LocateTask pode ser usada para encontrar o identificador de uma tarefa atrav s de seu tag lpnStack o endere o da pilha da tarefa Para cada tarefa deve ser alocada uma rea em RAM para a sua pilha Deve ser passado o endere o do fim da pilha A partir da vers o 2 24 da BIOS este endere o passou a ser ajustado automaticamente para permitir que a tarefa execute c lculos em ponto flutuante sem afetar outras reas nStackSize o tamanho da pilha da tarefa em bytes Deve ser um n mero par de bytes O tamanho da pilha de cada tarefa dependente da aplica o Deve ter no m nimo 64 palavras 128 bytes para permitir com que a tarefa receba mensagens e seja interrompida e suspensa por tarefas de maior
42. for inicializado com um valor n pode ser usado para controlar o acesso a n recursos de um determinado tipo Se o tamanho m ximo da fila de espera pelo sem foro for igual a zero n o ser permitido a nenhuma tarefa aguardar pelo sem foro se o recurso controlado por ele j estiver sendo utilizado Uma tarefa que deseja ganhar o controle de um sem foro ou utilizar um dos recursos gerenciados por ele requisita ao gerenciador de sem foros a concess o do mesmo WaitSemaphore Deve especificar a prioridade com que deseja aguardar caso o sem foro n o esteja imediatamente dispon vel A tarefa ser Inserida em uma fila de espera pelo sem foro na prioridade especificada Desta forma tarefas que necessitam de maior prioridade no acesso a um recurso podem preemptar tarefas com prioridade de espera menor A tarefa pode opcionalmente especificar o intervalo de tempo maximo ou timeout de espera limitando desta forma o tempo que tem para aguardar pela libera o do sem foro para seu uso Uma tarefa somente entrar em espera pelo sem foro caso a fila de espera do mesmo n o se encontre cheia no momento da requisi o Quando a tarefa encerra com sua utiliza o do recurso sinaliza sua libera o SignalSemaphore O gerenciador de sem foros libera o recurso e verifica a fila de espera sempre garantindo o acesso ao sem foro tarefa que estiver no topo da fila Se esta tarefa for de maior prioridade do que a tarefa que est liberando o recu
43. houve erro Os 8 bits menos significativos identificam o erro ocorrido caso algum dos 8 bits mais significativos encontrar se em 1 A fun o retorna SERIAL OK inicializa o sem problemas filas de recep o e transmiss o resetadas SERIAL INVALID CHANNEL identificador de canal inv lido SERIAL CFG ERRO BAUDRATE taxa de comunica o inv lida SERIAL CFG ERRO STOPBITS n mero de stop bits inv lido SERIAL CFG ERRO PARIDADE tipo de paridade inv lido SERIAL CFG ERRO BITSDADOS n mero de bits do dado inv lido SERIAL NO HARDWARE m dulo AL 2405 n o encontrado e O par metro nStopBits dever conter o valor resultante do OU l gico entre o n mero de stop bits sinais de modem e o modo de opera o dos sinais de controle CTS e RTS RXByte TXByte RXBlock TXBlock Instala um ponteiro de interrup o void huge SetInterrupt int nInterrupt void interrupt char far lpArea onde ninterrupt n mero da interrup o do microprocessador 80186 da Intel 0 255 interrupt ponteiro para uma rotina de atendimento de interrup o pArea ponteiro para uma area de memoria estatica com 16 palavras que nao deve ser alterada enquanto o ponteiro de interrup o permanecer instalado N o h retorno de DeleteTimer 79 Veja tamb m SetOffset Descri o Sintaxe Resultado Observa es Veja tamb m SetSegment Descri o Sintaxe Resultado Observa es Veja tamb m SetTime
44. metro tipo do operando do CP estiver ligado e for TIPO MEMORIA TIPO DECIMAL TIPO INTEIRO ou TIPO REAL a escrita ser executada a n vel de bit servindo portanto para escrita individual de bits de operandos mem ria decimal inteiro ou real e Seo bit 7 do par metro de tipo do operando do CP estiver ligado escrita orientada a bit e o tipo de operando for TIPO MEMORIA o par metro sub dever conter no byte alto o n mero do bit inicial O a 15 a partir do qual a primeira mem ria dever ser escrita e no byte baixo o n mero do bit final O a 15 que dever ser escrito na ltima mem ria escrita por esta opera o e Seo bit 7 do par metro de tipo do operando do CP estiver ligado escrita orientada a bit e o tipo de operando for TIPO DECIMAL TIPO INTEIRO ou TIPO REAL o par metro sub dever conter no byte alto o n mero do bit inicial O a 31 a partir do qual o primeiro operando dever ser escrito e no byte baixo o n mero do bit final O a 31 que dever ser escrito no ltimo operando escrito por esta opera o 90 Veja tamb m WritePLC Descri o Sintaxe Resultado Observa es 5 Programa o e Os operandos com mais de um byte no CP AL 2003 e AL 2004 est o no formato HI LO enquanto que no AL 2005 no formato LO HI Por isso da necessidade de convers o ap s a leitura e antes da escrita de operandos tipo mem ria M e TM decimal D e TD inteiro Y l e WTD e real F e TF no CP ReadOp Re
45. nPort n mero da porta de sa da Byte byte a ser escrito e As interrup es n o s o alteradas OutWord InByte InWord Escreve uma palavra em uma porta de saida void huge OutWord int nPort int Word onde nPort numero da porta de saida Word palavra a ser escrita e As interrup es n o s o alteradas OutByte InByte InWord L operandos simples do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadOp void buffer char tipo op int address int sub unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser o armazenados os valores do operando lido do CP tipo op tipo do operando do CP TIPO MEMORIA TIPO INTEIRO TIPO DECIMAL 62 Resultado Observa o Veja tamb m ReadOpSwap 5 Programa o TIPO REAL TIPO ES TIPO AUXILIAR address endere o do operando no CP sub endere o da subdivis o do operando do CP num op n mero de operandos do CP que se deseja ler nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardara pela leitura dos operandos especificados se nTimeOut 0 a tarefa retornara imediatamente sem aguardar o encerramento da leitura permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria
46. o for necess rio a fun o HookPLC n o precisa ser executada As fun es GetIDCoproc GetNumTab e GetTamTab obt m as seguintes informa es armazenados pelo CP na rea de mem ria compartilhada com o processador AL 2005 n mero de identifica o do processador corrente n mero e tamanho da tabela de configura o correntemente associada a um dado processador respectivamente Uma tarefa pode ter acesso leitura e escrita a operandos e informa es de status do CP atrav s de chamadas s fun es ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC e WritePLC Para tanto deve alocar uma rea de mem ria para transferir operandos ou informa es de para o CP A tarefa pode opcionalmente aguardar pelo encerramento da transfer ncia de dados especificando um intervalo de tempo m ximo no qual permanecer aguardando Ao receber um pedido de comunica o com o CP o sistema operacional enfileira a requisi o para trat la no momento em que o processador AL 2005 dispor da janela de tempo para acessar as reas de comunica o com o CP As fun es com Swap ReadOpSwap WriteOpSwap ReadTabSwap WriteTabSwap s o teis para leitura de operandos do tipo mem ria M e TM tipo decimal D e TD tipo inteiro l e TT e tipo real F e TF pois fazem a invers o swap autom tico dos respectivos bytes que comp em as words M e TM ou double words D TD
47. o logo ap s a chamada de WaitSemaphore com uma indica o de erro de TIME OUT Este erro ser devolvido mesmo se ninterval 0 espera para sempre O erro indica que a tarefa retomou sus execu o sem ter garantida a posse do sem foro CreateSemaphore DeleteSemaphore SignalSemaphore Aguarda por um tempo determinado delay STATUS huge WaitTime int nTicks onde nTicks intervalo de tempo de espera medido em ticks do sistema 86 Resultado Observa es Veja tamb m WakeCallingTask Descri o Sintaxe Resultado Observa es Veja tamb m WakeTask Descri o Sintaxe Resultado 5 Programa o As interrup es s o habilitadas A fun o retorna OK WAKENED BEFORE TIMEOUT a tarefa foi acordada antes de encerrar o Intervalo de tempo especificado e A tarefa pode retomar sua execu o sendo seu temporizador de espera parado no momento que outra tarefa chamar WakeTask especificando esta tarefa e Sea tarefa tiver uma requisi o pendente para acordar no momento em que chama WaitTime continuar imediatamente sua execu o sem espera e Se houver alguma possibilidade de que alguma tarefa j fez uma chamada para WakeTask a fim de acordar a tarefa corrente deve se chamar ResetPending Wake para resetar qualquer requisi o pendente antes de chamar WaitTime Wait WakeTask ResetPending Wake ResetTaskWake Acorda uma tarefa que enviou uma mensagem para a tarefa corrente STAT
48. para o processador AL 2005 A entrada configura ap s ativada deve ser desligada quando a sa da de erro estiver no estado desligado e reset quando acionada faz com que se perca a configura o corrente A entrada reset ap s ativada deve ser desligada quando a sa da de erro estiver no estado desligado 15 3 Configura o As sa das da instru o de chamada da F 2005 016 s o e c pia habilita uma c pia da entrada habilita e erro esta sa da energizada quando a comunica o entre o CP e o processador AL 2005 n o se realiza a contento ou porque o processador AL 2005 n o aproveita a janela de tempo concedida pelo CP ou porque os operandos da fun o foram mal especificados quanto a seus tipos ou endere os As c lulas da instru o CHF utilizada para a chamada da F 2005 016 s o programadas do seguinte modo e OPERI n mero de par metros passados para a fun o em OPER3 deve ser obrigatoriamente uma constante mem ria com o valor 3 KM 00003 e OPER2 n mero de par metros passados em OPER4 KM 00000 j que OPER4 n o utilizado e OPER3 par metros passados para a fun o declarados atrav s de uma janela visualizada no programador de CPs MasterTool quando a instru o CHF editada o n mero de par metros edit veis especificado em OPERI sendo fixado em 3 para este m dulo RXXXX endere o da placa AL 2005 no barramento do CP Consulte documenta o do bastidor em uso para defini
49. prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a leitura verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de leitura de um operando n o declarado na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de leitura de um n mero inv lido de operandos O ou maior que o limite m ximo permitido para o tipo e Com esta fun o poss vel ler a seguinte quantidade de operandos 96 do tipo auxiliar A 96 do tipo entrada ou sa da E S 255 do tipo mem ria M 255 do tipo decimal D 255 do tipo inteiro I 255 do tipo real F e Seo tipo de operando for TIPO AUXILIAR ou TIPO E S o par metro sub dever conter o n mero do bit O a 7 do octeto a ser lido por esta opera o ou o valor 1 para leitura do octeto inteiro O valor lido armazenado a partir do bit O do operando destino O ltimo byte d
50. recursos e aloca o de mem ria Recursos O gerenciador de recursos permite o acesso controlado a recursos definidos pelo usu rio como uma regi o de mem ria por exemplo isto torna poss vel o compartilhamento de recursos entre tarefas que executam concorrentemente Utiliza um sem foro bin rio para limitar o acesso a cada recurso a uma nica tarefa de cada vez A posse e a libera o de um recurso governada por chamadas ao gerenciador de recursos O gerenciador de recursos oferece a caracter stica nica de identificar a tarefa propriet ria de cada recurso que a nica que tem permiss o para liber lo O gerenciador de recursos difere do gerenciador de sem foros de duas formas N o existe enfileiramento de prioridades As tarefas esperam um recurso na base de que a primeira a requisitar a primeira a ser atendida first come first served N o existe timeout Uma tarefa aguardar incondicionalmente at que o recurso esteja dispon vel para seu uso privativo Al m disto diferentemente dos sem foros a posse de um recurso est amarrada a uma tarefa espec fica Apenas a tarefa que dona de um recurso pode sinalizar sua libera o N o poss vel que mais de uma tarefa compartilhe a posse de um recurso em particular O gerenciador de recursos oferece o seguinte conjunto de servi os Gerenciamento CreateResource Cria um recurso de recursos ReserveResource Reserva um recurso ReleaseNestedResource
51. tarefa ou de tempo A tarefa que est aguardando pelo evento permanece suspensa incondicionalmente at que outra tarefa execute uma chamada a WakeTask requisitando ao sistema operacional que acorde a tarefa suspensa O par Wait WakeTask usado para sincroniza es de eventos simples O sistema operacional tamb m suporta sincroniza o com timeout autom tico Uma tarefa pode chamar WaitTime especificando um intervalo de tempo m ximo que deseja aguardar pela ocorr ncia de um evento Se nenhuma outra tarefa executar WakeTask neste nterim o sistema operacional automaticamente acordar a tarefa ao expirar o intervalo O sistema operacional passa para a tarefa uma indica o da ocorr ncia ou n o do timeout Uma tarefa tamb m pode ser sincronizada a uma outra tarefa atrav s da passagem de mensagens Uma tarefa envia uma mensagem para outra tarefa atrav s de SendMessage Wait que for a seu estado de espera Quando a tarefa destino recebe a mensagem pode executar WakeCallingTask a fim de acordar a tarefa que lhe enviou a mensagem Esta tarefa por sua vez retomar sua execu o sabendo que sua mensagem j foi recebida pela tarefa destino Se a tarefa destino n o executar WakeCallingTask o sistema operacional acordar automaticamente a tarefa geradora da mensagem assim que a tarefa destino encerrar Supervisor de Interrup es As tarefas executam com o sistema de interrup es do processador habilitado o que permite ao sistem
52. 5 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO NAO DEFINIDO houve a tentativa de escrita de um operando n o declarado na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de escrita de um n mero inv lido de operandos O ou maior que o limite m ximo permitido para o tipo e Com esta fun o poss vel escrever a seguinte quantidade de operandos 96 do tipo auxiliar A 96 do tipo entrada ou sa da E S 255 do tipo mem ria M 255 do tipo decimal D 255 do tipo inteiro I 255 do tipo real F e Seo bit 7 do par metro tipo do operando do CP estiver ligado e for TIPO MEMORIA TIPO DECIMAL TIPO INTEIRO ou TIPO REAL a escrita ser executada a n vel de bit servindo portanto para escrita individual de bits de operandos mem ria decimal inteiro ou real e Seo tipo de operando for TIPO AUXILIAR ou TIPO E o par metro sub dever conter o n mero do bit O a 7 do octeto a ser escrito por esta opera o ou o valor 1 para escrita do octeto Inteiro e Seo bit 7 do par metro de tipo do operando do CP estiver ligado escrita orientada a bit e o tipo de operando for TIPO MEMORIA o par metro sub dever conter no byte alto o n mero do bit inicial O a 15 a partir do qual a primeira mem ria dever ser escrita e no byte baixo o n mero do bit final O a 15 que dever ser escrito na
53. A RS 485 Endereco de modulo Entrada saida Envelope EPROM ER Escravo Flash EPROM Frame Freeze Gateway Grupo de eventos grupo Identificador de um Hardware Idle IEC 1131 Interface Interrup o kbytes LED Sequ ncia finita de instru es bem definidas objetivando resolu o de problemas Conjunto de sinais el tricos agrupados logicamente com a fun o de transferir informa o e controle entre diferentes elementos de um subsistema Taxa com que os bits de informa o s o transmitidos atrav s de uma interface serial ou rede de comunica o medido em bits segundo Unidade b sica de informa o podendo estar no estado O ou 1 Sigla para teste de bateria em ingl s battery test Cole o de buffers de dados cujo uso controlado pelo gerenciador de buffers Unidade de informa o composta por oito biis Recept culo fornecido por cada tarefa para receber suas mensagens Cada tarefa pode ter at quatro caixas postais Interface de um equipamento que transfere dados no modo serial Uma execu o completa do programa aplicativo de um controlador program vel Circuito eletr nico destinado a verificar a integridade do funcionamento de um equipamento C digo do produto formado pelas letras PO seguidas por quatro n meros S rie de inteiros com sinal usados para indicar condi es de erro detectadas pelas fun es da biblioteca Tamb m chamado de CP Equipamento que realiza controle s
54. E ID RESOURCE NOT OWNED o recurso n o pode ser liberado pois n o pertence 71 Observacoes Veja tamb m ReserveResource Descri o Sintaxe Resultado Observa es Veja tamb m ResetBufferPool Descri o Sintaxe Resultado 5 Programa o tarefa corrente e O contador de uso do recurso zerado e o recurso liberado podendo ser imediatamente repassado para a tarefa se houver alguma que estiver aguardando por ele h mais tempo Se necess rio o reescalonamento de tarefas ocorre imediatamente CreateResource DeleteResource ReserveResource ReleaseNestedResource Reserva um recurso STATUS huge ReserveResource int nResourcelD onde nResourcelD identificador do recurso a ser reservado A fun o retorna OK INVALID RESOURCE ID RESOURCE QUEUE FULL o recurso j de outra tarefa e a fila de tarefas que est o aguardando por ele est cheia e Seo recurso j for de outra tarefa a tarefa corrente ser suspensa e ficar aguardando pelo recurso Quando o recurso finalmente estiver dispon vel para a tarefa a fun o retornar com OK e O contador de uso do recurso setado em um quando uma tarefa o recebe pela primeira vez Uma tarefa que j possui um recurso pode reserv lo novamente atrav s de ReserveResource resultando em uma reserva aninhada O contador de uso do recurso incrementado de um a cada nova reserva CreateResource DeleteResource ReleaseNestedResource R
55. E os os Sa ie Su ae Salus de de sv uaa da ee Rare E Tea os ea bad 119 Manuten o Preventiva ss isso asso sas sasnspamaaaa sas anis assa Dios anna nina Gis IPA ia ani pa Riaa nina Rica Rins dono sai aaa aa 119 GLOSS RIO autista da da ada dad dia lead dade 120 1 Descri o Tecnica 1 Introdu o O Real Time Multitasking Processor O Real Time Multitasking Processor AL 2005 um processador de comunica o e de algoritmos que opera em conjunto com as UCPs AL 2003 ou AL 2004 O Processador Multitarefa AL 2005 pode executar tarefas diversas tais como comunica o com outros equipamentos utilizando protocolos quaisquer e programas aplicativos escritos em linguagem de alto n vel linguagem C Os aplicativos do processador multitarefa s o desenvolvidos utilizando se uma biblioteca de fun es pr pria do AL 2005 O processador multitarefa AL 2005 possui sistema operacional multitarefa de tempo real preemptivo que permite a execu o de v rios m dulos de programa simultaneamente acessando a mem ria imagem da UCP de forma concorrente O AL 2005 permite que sejam acoplados at dois m dulos seriais Cada um destes m dulos implementa um padr o f sico de comunica o diferente AL 2405 485I para o padr o RS 485 AL 2405 232 para o padr o RS 232C Sob o ponto de vista do programa aplicativo no CP toda a comunica o entre o processador Multitarefa AL 2005 e a UCP realizada por meio de uma mem ria de operandos compar
56. ERIAL BAUD7200 SERIAL_BAUD 9600 SERIAL BAUDI9K SERIAL BAUDSSK SERIAL BAUDS6K SERIAL BAUDI2SK SERIAL BAUD256K SERIAL_BAUD 14400 SERIAL BAUD28600 SERIAL BAUDS33600K nStopBits n mero de stop bits controle de CTS RTS DCD e receiver FIFO trigger level SERIAL ISTOPBIT 1 stop bit SERIAL_2STOPBITS 2 stop bits SERIAL_WAIT_CTS aguarda o retorno de CTS na transmissao SERIAL RTS ON valor para o qual RTS deve ser setado ao encerrar a transmiss o SERIAL MSR INT indica que devem ser geradas interrupcoes de Status Modem Register DCD SERIAL TRIGGER 14 14 bytes de FIFO de recep o default SERIAL TRIGGER 08 8 bytes de FIFO de recep o SERIAL TRIGGER 04 4 bytes de FIFO de recep o SERIAL TRIGGER 01 1 byte de FIFO de recep o 78 Resultado Observacoes Veja tamb m Setinterrupt Descri o Sintaxe Resultado 5 Programa o nParity tipo de paridade SERIAL NOPARITY sem bit de paridade SERIAL ODDPARITY paridade mpar SERIAL EVENPARITY paridade par SERIAL ALWAYSO bit de paridade sempre desligado SERIAL ALWAYS T bit de paridade sempre ligado nDataBits n mero de bits do dado SERIAL 5SDATABITS SERIAL 6DATABTITS SERIAL 7DATABITS SERIAL SDATABITS A fun o SerialConfig retorna um valor inteiro de 16 bits Os 8 bits mais significativos do valor de retorno s o bits de status e se um ou mais bits de status estiverem em 1 ocorreu um erro e se nenhum bit de status estiver em 1 n o
57. Enter title you want assigned to the Transfer item Figura 6 12 Ajuste do Comando Carregador AL 3860 2 As etapas do desenvolvimento de um programa aplicativo sob o ponto de vista do ambiente ou das ferramentas de desenvolvimento s o detalhadas a seguir escrita do programa aplicativo depura o do programa gera o do programa execut vel carga do programa execut vel na Flash EPROM do processador AL 2005 105 6 Desenvolvendo uma Aplica o para o AL 2005 O AL 2005 executa em paralelo v rios aplicativos Cada aplicativo pode ser segiiencial sendo uma nica tarefa ou multitarefa S o caracter sticas da programa o sequencial e programa o simplificada em rela o a criar um aplicativo com v rias tarefas e utiliza poucas rotinas da API do AL 2005 S o caracter sticas da programa o multitarefa mais complexo exigindo maior experi ncia do projetista utiliza maior quantidade de rotinas da API do AL 2005 para efetuar sincroniza o entre as tarefas desenvolvimento mais espec fico menos port vel permite subdividir o processamento em trechos de c digo independentes que cooperam para atingir um objetivo comum Descri o do Programa DEMOCOM O programa exemplo fornecido no diret rio DEMOCOM tem por objetivo demonstrar a utiliza o de fun es da API respons veis por acesso s interfaces serias al m de demonstrar a cria o e sincroniza o de m ltiplas tarefas em uma aplica o do process
58. Fun o de Comunica o CP com o AL 2005 A comunica o entre o processador AL 2005 e a UCP efetuada atrav s de uma rea de mem ria compartilhada por ambos qual cada um dos m dulos tem acesso de forma exclusiva A Iniciativa da comunica o sempre comandada pela chamada do m dulo de fun o F 2005 016 dentro do programa aplicativo do CP fazendo com que a partir deste instante o processador AL 2005 disponha de uma janela de tempo de at 3200 us para acessar as reas de comunica o com o CP O m dulo de fun o F 2005 016 implementa a comunica o entre a UCP e o processador AL 2005 tamb m usado para transferir informa es de configura o do CP para os programas aplicativos do AL 2005 atrav s de tabelas de mem ria Estas informa es de configura o podem por exemplo estabelecer um mapeamento ou seja rela es entre operandos do CP e vari veis par metros de algum dispositivo externo conectado atrav s dos canais seriais do processador AL 2005 CHF 2005 habilita c pia habilita OPERI configura erro As entradas da instru o de chamada da F 2005 016 s o e habilita quando acionada a fun o est habilitada a executar abrindo uma janela de tempo para acesso do processador AL 2005 s reas de comunica o com o CP ou possibilitando a transfer ncia de informa es de configura o e configura quando acionada novas informa es de configura o s o transferidas do CP
59. H de cabe alho para aplica es do AL 2005 INCLUDE diret rio com o header do AL 2005 AL2005 H arquivo de Header para programas AL 2005 Diret rio LIB Cont m ambiente para a gera o das bibliotecas de servi os especificos para o processador AL 2005 LIB diret rio c bibliotecas e startup para o AL 2005 AL2005L LIB biblioteca de servi os modelo Large AL2005S LIB biblioteca de servi os modelo Small CODBGL OBJ c digo de startup para modelo Large depura o CODBGS OBJ c digo de startup para modelo Small depura o COEXEL OBJ c digo de startup para modelo Large execu o COEXES OBJ c digo de startup para modelo Small execu o Diret rio UTIL Cont m o utilit rio LOCATE para o desenvolvimento das aplica es UTIL diret rio de utilit rios LOCATE EXE execut vel para realoca o de aplica es utilizado em modo depura o Diret rio AL3860 Cont m o programa carregador de aplicativos AL3860 diret rio do carregador AL3860 EXE programa carregador de aplicativos AL3860 INI arquivo de inicializa o Diret rio SUPORTE Cont m programa para teste das interfaces seriais A e B SUPORTE diret rio de suporte TSTCOM TXT instru es de utiliza o dos programas TSTCOM_A EXE programa para teste da porta COM A TSTCOM_B EXE programa para teste da porta COM B 97 Diretorio TD2005 6 Desenvolvendo uma Aplica o para o AL 2005 Para gera o de uma nova vers o deve se chamar o compilador Borl
60. Hora 0 DEMO 2640 ef 08 2004 13 31 Enviar Quantidade de Aplica es 1 Lamcelar Bytes Usados 2640 6960 Programa o Bytes Livres 194000 190048 E x Bytes Totais 196640 197008 Erecu an Apagar BIOS AL 2005 Versao 2 35 Jul 01 2003 Class code recomendado 01199 Porta Serial Sobre Fechar Figura 6 25 Diret rio de Aplica es no AL 2005 Para sair do ambiente do compilador Borland C tecle ALT X Ad 7 Instala o 7 Instala o Este cap tulo descreve os procedimentos e cuidados necess rios para a instala o do Processador Multitarefa AL 2005 e dos arquivos que acompanham o produto As recomenda es apresentadas devem ser seguidas para o correto funcionamento do equipamento A figura 7 1 mostra o Processador Multitarefa destacando se os elementos de conex o e sinaliza o referenciados nas pr ximas se es an CT By AD ONG ds 3 Sn gt 8 Sane m O il Th 6 Q 94052304A Figura 7 1 Vis o Geral do Processador Multitarefa A L 2005 1 2 3 4 LEDs de estados 5 Canal serial dedicado para carga de programa e depura o 6 Conector DB9 do canal A de comunica o 7 Conector DB9 do canal B de comunica o 8 9 Conectores para m dulo serial do canal B 10 11 Conectores para m dulo serial do canal A 12 Conector do Processador Multitarefa AL 2005 RTMP ao barramento da UCP AL 2003 ou AL 2004 Instala
61. K NO_FREE_BUFFER_POOL NO_BUFFERS_DEFINED BUFFER_TOO_SMALL DeleteBufferPool Cria um recurso STATUS huge CreateResource int QueuedTasks int far lpnResourcelD onde QueuedTasks n mero m ximo de tarefas que podem esperar pelo recurso em um dado instante gt 0 e lt 128 pnResourceID ponteiro para armazenar o identificador do recurso criado A fun o retorna OK NO FREE RESOURCE ID INVALID RESOURCE QUEUE DEPTH DeleteResource ReserveResource ReleaseResource Cria um sem foro 44 Sintaxe Resultado Observa es Veja tamb m CreateTask Descri o Sintaxe Resultado Veja tamb m CreateTimer Descri o Sintaxe 5 Programa o STATUS huge CreateSemaphore int far lpSCB int nValue int nQueuedTasks onde IpSCB ponteiro para uma rea de 4 palavras usada para controle do sem foro nValue valor inicial do sem foro gt 0 e lt 128 nQueuedTasks n mero m ximo de tarefas que podem esperar pelo sem foro em um dado instante gt 0 e lt 128 A fun o retorna OK INVALID SEMAPHORE VALUE INVALID SEMAPHORE QUEUE DEPTH e As interrup es n o s o alteradas DeleteSemaphore WaitSemaphore SignalSemaphore Cria uma nova tarefa STATUS huge CreateTask TASKDESCR far pDescription TASKID pTaskID onde pDescription ponteiro para o descritor da tarefa todos os campos deste descritor devem ser v lidos antes da chamada de CreateTask pTaskID ponteir
62. MALL Al m do compilador necess rio tamb m o utilit rio de reloca o LOCATE da Paradigm vers o 4 0 ATEN O Para aquisi o deste compilador deve ser adquirida a vers o 5 02 ou posterior do produto BorlandC Compiler junto aos representantes da Borland e requisitada c pia do compilador Borland C 3 1 13 3 Configura o 3 Configura o O Processador Multitarefa AL 2005 um m dulo que opera em conjunto com a UCP AL 2003 ou AL 2004 Desta forma o Processador Multitarefa AL 2005 deve ser declarado como um m dulo no barramento da UCP Esta declara o feita atrav s do programador MasterTool A figura a seguir mostra a tela de declara o dos m dulos no barramento da UCP Barramento O Primeiro octeto de saida lt lt Anterior Pr ximo gt gt Adicionar Remover oH OOOO ARDIDE 7oHOO1 6 7oHOO2 4 oR OOS oH OO 40 7oHOOAG 7oHO056 20R006 4 20ADO Fe oH OOEO oH OOGG 7oHOOS6 7oHO1 04 7oHO1 12 7oHO1 20 Figura 3 1 Tela de Configura o do Barramento no Programador Master Tool Al m da declara o do AL 2005 no barramento necess rio a utiliza o de um m dulo fun o F 2005 016 no programa aplicativo do CP Este m dulo respons vel pela comunica o entre o processador e a UCP O processador AL 2005 baseado em microprocessador 80186 da Intel permitindo que programas aplicativos sejam desenvolvidos utilizando compiladores
63. Manual de Utiliza o AL 2005 RTMP Rev E 05 2006 C d Doc MU207006 Condicoes Gerais de Fornecimento Nenhuma parte deste documento pode ser copiada ou reproduzida sem o consentimento pr vio e por escrito da Altus Sistemas de Inform tica S A que se reserva o direito de efetuar altera es sem pr vio comunicado Conforme o C digo de Defesa do Consumidor vigente no Brasil informamos a seguir aos clientes que utilizam nossos produtos aspectos relacionados com a seguran a de pessoas e instala es Os equipamentos de automa o industrial fabricados pela Altus s o robustos e confi veis devido ao r gido controle de qualidade a que s o submetidos No entanto equipamentos eletr nicos de controle industrial controladores program veis comandos num ricos etc podem causar danos s m quinas ou processos por eles controlados em caso de defeito em suas partes e pe as ou de erros de programa o ou instala o podendo inclusive colocar em risco vidas humanas O usu rio deve analisar as poss veis consegii ncias destes defeitos e providenciar instala es adicionais externas de seguran a que em caso de necessidade sirvam para preservar a seguran a do sistema principalmente nos casos da instala o inicial e de testes E imprescind vel a leitura completa dos manuais e ou caracter sticas t cnicas do produto antes da instala o ou utiliza o do mesmo A Altus garante os seus equipamentos conforme descrito
64. Out onde buffer ponteiro para a rea de mem ria que cont m os valores a serem escritos no operando do CP tipo op tipo do operando do CP TIPO MEMORIA TIPO INTEIRO TIPO DECIMAL TIPO REAL TIPO ES TIPO AUXILIAR address endere o do operando no CP sub endere o da subdivis o do operando do CP num op n mero de operandos do CP que se deseja escrever nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardara pela escrita dos operandos especificados se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da escrita permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi 88 Observacoes Veja tamb m WriteOpSwap Descri o Sintaxe 5 Programa o excedido antes da BIOS conseguir realizar a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 200
65. Pee Pe E 0 98 Pr ODDC aa Sa a a e a aa a Da 98 Sumario Diret rios DEMOCOM e DEMOGCAL C ei cs cvsecssscesasecieecesesaseepeesaes cass iniesnchapiniadsiassipieis aves WAR AOE 98 Uolizando os Programas DEMO aicccsciccascicccsascccscieccsaccceseccceescccseccccssseeuss sh eueusnvavaseeneesasceastsaeasavaeasieeeusasee 101 Descri o do Prosrama DEMO COM aan nai enoe EEEE 106 Descri o do Programa DEMOCAL C sisssccssssscssccssssiasseossesscsssccssessesseeesssssneeasesssoaeecnvssvvsseeseessssdeonseeseonee 107 Compilando os Programas DEMOCOM e DEMOCALC seessssseccsseccssseccsscecosscecosseeccsscessssecosssesssseeso 108 Depura o dos Programas DEMO ssssecssssecesscecossecccsecccsseecossecccsseesssseessssecsoseecosseesossecssssecssssesesssessssee 109 Versio pata Depura Io ap id a e e E 109 Versao para Car caren lash E PROMESSA SO SS a 113 OAISTER RS RR RR RS RARE RCE RR RREO RR 115 Instala o Mecanica PICITICA sanar aea isa aid est SER ea ID es IRL GUS ARE coins santas anita 115 COCA OCS CCI AS casa a a a 116 a Bey ES os Fo erre pen a a ne OP RT 116 Enstalac o dos Modulos Serdi Sand onan spans abinsinn sine ns sine sn weve es nea wees E E aver ania ecerancen eased 117 Instala o OC Das ses eso possa Dado e fai e Di Saldo Disp Senda dd Sinal Aida id a sad aaa ao id 117 s MANUTENCAO RR NR RR RR RR RR 118 PENOSO 5 2 0 5s0s5isunss si mu a 118 Teste das TLC ge Le costa 163 gl S AR RR RR AA NA RN 118 Identihicando Problemas a AE
66. Pending Wake Recebe um bloco de bytes do canal serial STATUS huge RXBlock char Channel unsigned far lpnBlock unsigned far pnSize TIME InTimeOutRX onde Channel identificador do canal utilizado para receber o bloco COM Aou COM B pnBlock ponteiro para a rea da mem ria onde ser armazenado o bloco recebido a rea 74 Resultado Observa o Veja tamb m RXByte Descri o Sintaxe 5 Programa o de mem ria deve ser capaz de armazenar 2 pnSize bytes pnSize ponteiro para o numero de bytes a serem recebidos no retorno cont m o n mero de bytes efetivamente transferidos para a rea de mem ria da aplica o InTimeOutRX intervalo de tempo m ximo em ticks de sistema que a tarefa aguardar pela recep o do bloco de byte se InTimeOutRX 0 trata se de uma consulta fila de recep o serial ver Resultado Cada valor armazenado na rea apontada por pnBlock ocupa 16 bits e os 8 bits mais significativos s o bits de status se um ou mais bits de status estiverem em 1 ocorreu um erro na recep o do byte correspondente podem assumir os seguintes valores SERIAL PARITY ERROR SERIAL OVERRUN ERROR ou SERIAL FRAMING ERROR e os 8 bits menos significativos cont m o byte recebido caso nenhum dos 8 bits mais significativos encontrar se em 1 Se InTimeOutRX 0 realizada apenas uma consulta fila de recep o serial e a area apontada por pnBlock recebe no m ximo o bloco de bytes re
67. Qualquer tamanho par de buffer maior do que dois bytes e menor do que o limite de 64K de um segmento de mem ria permitido Todos os buffers em um pool devem residir no mesmo segmento de mem ria Um pool de buffers deve ser criado por uma tarefa CreateBufferPool antes de poder ser utilizado O gerenciador de buffers retorna um identificador do pool para a tarefa chamadora que deve guarda lo para futuras refer ncias Ao criar um pool de buffers deve se especificar tr s par metros o n mero de buffers no pool o tamanho de cada buffer e um ponteiro para a rea de mem ria RAM onde ficar o localizados todos os buffers do pool Esta rea de mem ria subdividida pelo gerenciador de buffers no n mero de buffers requisitado Todos os buffers no pool s o encadeados atrav s de uma lista de buffers livres e cada buffer tem associado a si um contador de uso inicializado com zero para mostrar que n o est sendo utilizado Estas duas informa es s o mantidas internamente ao gerenciador de buffers Depois que um pool foi criado pode se obter um buffer do pool GetBuffer O gerenciador de buffers retira um buffer da lista de buffers livres incrementa o contador de uso associado ao buffer e retorna um ponteiro para o primeiro byte do buffer Pode se ent o armazenar e recuperar dados deste buffer conforme o desejado Quando n o se necessita mais de um buffer o mesmo pode ser liberado FreeBuffer O buffer a ser liberado identificad
68. RO TIPO TABELA DECIMAL TIPO TABELA REAL address endere o da tabela do CP pos ini posi o inicial da tabela num op n mero de operandos da tabela a serem lidos se num op 1 que para o tipo unsigned char equivale a 255 a tabela completa lida e seu tamanho devolvido no endere o apontado por pnum op pnum op ponteiro para armazenar o n mero total de operandos da tabela se num op 1 que para o tipo unsigned char equivale a 255 nTimeOut intervalo de tempo m ximo em ticks de sistema que a tarefa aguardar pela leitura da tabela especificada se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da leitura permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o 67 Observacoes Veja tamb m ReadTabs Descri o Sintaxe Resultado 5 Programa o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir real
69. US huge DeleteBufferPool int nPoolID onde nPoolID identificador do pool a ser removido A fun o retorna OK INVALID POOL ID e As interrup es n o s o alteradas e Nenhuma opera o que utilize os servi os do gerenciador de buffers e que venha a afetar os buffers do pool ou a alterar o conte do de qualquer um deles pode ocorrer durante ou ap s a remo o do pool CreateBufferPool Remove um recurso STATUS huge DeleteResource int nResourcelD onde nResourcelD identificador do recurso a ser removido A fun o retorna 46 Veja tamb m DeleteSemaphore Descri o Sintaxe Resultado Veja tamb m Delete Task Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o OK INVALID RESOURCE ID RESOURCE NOT FREE CreateResource ReserveResource ReleaseResource Remove um sem foro STATUS huge DeleteSemaphore int far lpSCB onde IpSCB ponteiro para a rea de controle do sem foro inicializada por CreateSemaphore A fun o retorna OK NO SUCH SEMAPHORE lpSCB n o foi inicializado por CreateSemaphore SEMAPHORE IN USE CreateSemaphore WaitSemaphore SignalSemaphore Remove uma tarefa do sistema operacional STATUS huge DeleteTask TASKID TaskID int nPriority onde TaskID identificador da tarefa a ser removida nPriority prioridade de execu o na qual a remo o deve ocorrer a prioridade da remo o deve ser menor do que a priori
70. US huge WakeCallingTask void A fun o retorna OK INVALID TASK ID CALLING TASK NOT WAITING a tarefa que enviou a mensagem n o se encontra em estado de espera NO MESSAGE PROCESSING a tarefa corrente n o se encontra processando uma mensagem recebida de outra tarefa e Um chaveamento imediato de tarefas ocorrer caso a tarefa que est sendo acordada tiver maior prioridade do que a tarefa corrente SendMessage Wait EndTask Acorda uma tarefa que se encontra no estado de espera devido a uma chamada a Wait ou WaitTime STATUS huge WakeTask TASKID TaskID onde TaskID identifcador da tarefa a ser acordada A fun o retorna 87 Observa es Veja tamb m WriteOp Descri o Sintaxe Resultado 5 Programa o OK TASK NOT WAITING WARNING a tarefa que se deseja acordar n o se encontra no estado de espera a requisi o para acordar fica pendente INVALID TASK ID TASK NOT WAITING a tarefa que se deseja acordar n o se encontra no estado de espera e j h uma outra requisi o para acordar pendente e Um chaveamento imediato de tarefas ocorrer caso a tarefa que est sendo acordada tiver maior prioridade do que a tarefa corrente Wait WaitTime ResetPending Wake ResetTaskWake WaitSemaphore Escreve em operandos simples do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge WriteOp void buffer char tipo op int address int sub unsigned char num op unsigned nTime
71. Value valor de 16 bits especificando o estado para cada um dos flags de evento selecionados pela m scara o estado dos flags n o selecionados pela m scara pode assumir qualquer valor A fun o retorna OK MAILBOX FULL n o poss vel sinalizar o s evento s provavelmente porque n o existe envelopes de mensagem dispon veis GetEventGroup FreeEventGroup WaitEvent Sinaliza um semaforo STATUS huge SignalSemaphore int far lpSCB onde IpSCB ponteiro para a rea de controle do sem foro inicializada por CreateSemaphore A fun o retorna OK NO SUCH SEMAPHORE lpSCB n o foi inicializado por CreateSemaphore e O sem foro ser imediatamente repassado para a tarefa se houver alguma que estiver aguardando por ele no topo da sua fila de espera Se necess rio o reescalonamento de tarefas ocorre imediatamente CreateSemaphore DeleteSemaphore WaitSemaphore 81 StartStopTimer Descri o Sintaxe Observa es Observa es Veja tamb m StartTask Descri o Sintaxe Resultado Observa es Veja tamb m StopTask Descri o 5 Programa o Dispara ou para um temporizador void huge StartStopTimer unsigned int TimerID unsigned int TimerValue onde TimerID identificador do temporizador a ser disparado ou parado Timer Value intervalo de tempo em ticks do sistema a ser programado no temporizador Timer Value 0 para o temporizador Uma fun o de temporiza o
72. a verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido e As estruturas de dados de armazenamento das informa es de estado do CP e de estado da ALNET II devem ser do tipo STATUS PLC e STATUS ALNETII respectivamente typedef struct STATUS PLC char TipoUCP Tipo de UCP char Extensao 8 Identificacao complementar char Versao 2 Versao do executivo char ModoOperacaol Modo de operacao do CP char ModoOperacao2 Modo de operacao complementar char CodigoMensagem 4 Mensagens de erro ou advertencia char TempoCiclo 8 Tempos de ciclo de execucao do CP 65 5 Programa o char MaxTempoExec 1 Tempos de execucao do ladder char IntEISEI9 2 Tempos de interrupcao EOIS e E019 char Livre 2 char EstadoRAMI Estado da memoria RAM char EstadoRAM2 RAM compactada nao compactada 0 1 char RAMLivre 16 Memoria de RAM livre memorias 0 7 char EstadoEPROM Estado da memoria EPROM char EPROMLivre 16 Memoria de EPROM livre memorias 0 7 char Reserva 100 typedef struct STATUS ALNETII E unsigned int NumeroTxOk Num de transmissoes sem erros unsigned int NumeroTxTcdt Num de TX com colisoes fora do preambulo unsigned int NumeroTxUdr Num de TX com underrun unsigned int
73. a armazenar o ponteiro do bufffer retornado A fun o retorna OK INVALID_POOL_ID NO_BUFFER_AVAILABLE e Se um buffer for alocado o contador de uso do buffer setado em um FreeBuffer AddBufferUseCount GetBufferSize 54 Descri o Sintaxe Resultado Observa es Veja tamb m GetEventGroup Descri o Sintaxe Resultado Veja tamb m GetHandle Descri o Sintaxe 5 Programa o Obt m o tamanho de um buffer unsigned int huge GetBufferSize char far IpBuffer onde lpBuffer ponteiro para um buffer obtido atrav s da fun o GetBuffer A fun o retorna o tamanho do buffer em bytes Se o buffer n o estiver sendo utilizado retornado 0 e As interrup es nao s o alteradas GetBuffer Obt m o uso de um grupo de eventos STATUS huge GetEventGroup GROUP far pGroup unsigned int nInitialValue onde pGroup ponteiro para armazenar o identificador do grupo de eventos alocado ninitialValue valor inicial dos 16 flags de evento do grupo A fun o retorna OK NO FREE EVENT GROUP FreeEventGroup WaitEvent SignalEvent Cria um handle privado de mem ria STATUS huge GetHandle MEMBLOCK pBlock long InSize MEMHANDLE far pHandle onde pBlock ponteiro para uma rea de mem ria a ser controlada pelo gerenciador de mem ria pode se usar blocos alocados atrav s das fun es GetBlock ou GetBlockUsingHandle InSize tamanho em bytes do bloco de mem ria apont
74. a chamada a GetEventGroup A fun o retorna OK 51 Veja tamb m Generatelnterrupt Descri o Sintaxe Resultado Veja tamb m GetBlock Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o EVENT GROUP IN USE GetEventGroup WaitEvent SignalEvent Gera uma Interrup o n de software n unsigned int huge Generatelnterrupt int nInterrupt BIOSREGS far lpRegs onde ninterrupt tipo da interrup o n mero O a 255 IpRegs estrutura contendo o valor dos registradores do processador necess rios para a interrup o de software especificada que se est gerando A fun o retorna o valor do registrador AX no encerramento da rotina de atendimento da interrup o Beginlnterrupt ChangelnterruptHandler EndInterrupt Setlnterrupt Obt m um bloco de mem ria STATUS huge GetBlock long InSize MEMBLOCK far ppBlock long far p Size onde InSize tamanho em bytes de memoria requerida ppBlock ponteiro para armazenar o ponteiro do bloco de memoria retornado IpSize ponteiro para armazenar o tamanho til real em bytes do bloco de mem ria em ppBlock lpSize pode ser um pouco maior do que nSize A fun o retorna OK ppBlock um ponteiro para um bloco de mem ria pSize o tamanho real do bloco MEMORY NOT AVAILABLE ppBlock indefinido pSize o tamanho do maior bloco de mem ria correntemente dispon vel e O chaveamento de tarefas desabi
75. a mais do que um m dulo de programa Um programa aplicativo composto por uma ou mais tarefas onde cada tarefa pode resolver um problema espec fico e fornecer uma determinada capacidade funcional ao programa Este cap tulo apresenta o sistema operacional do processador AL 2005 descrevendo como devem ser criadas e se relacionam entre si as diferentes tarefas carregadas Escalonador de Tarefas O escalonador de tarefas procura em uma lista de tarefas dispon veis aquela com a maior prioridade e em condi es de execu o A prioridade da execu o das tarefas determinada pelo projetista das mesmas exceto no caso dos pr prios programas aplicativos que possuem um valor de prioridade pr definido Se n o houver nenhuma tarefa pronta para ser executada o sistema operacional com as interrup es habilitadas aguarda que algum evento externo gere uma Interrup o O sistema operacional inicia a execu o de uma tarefa pelo endere o de in cio da mesma tamb m definido pelo projetista A tarefa executada como se fosse o nico programa no sistema Assim que inicia sua execu o a tarefa parece operar sem interrup es As interrup es que porventura possam ocorrer s o tratadas pelo sistema operacional de uma forma transparente para a tarefa Ao entrar em execu o a tarefa inibe a execu o de qualquer outra tarefa com prioridade menor do que a sua permanecendo neste estado at que decida renunciar ao controle mesmo q
76. a responder a eventos em tempo real Quando ocorre uma Interrup o como de um canal serial por exemplo o processador desabilita o sistema de interrup es e salva o endere o de retorno e seus flags correntes na pilha da tarefa interrompida desviando para uma rotina de atendimento da Interrup o Em geral a rotina de atendimento da interrup o salva os registradores que necessita utilizar atende a interrup o restaura os registradores habilita as interrup es e retorna ao programa que estava em execu o no ponto em que o mesmo foi interrompido O supervisor de interrup es do sistema operacional simplifica a constru o de rotinas de atendimento de interrup o Os seguintes servi os oferecidos pelo sistema operacional est o associados ao tratamento de interrup es Tratamento BeginInterrupt Inicia o atendimento de uma interrup o interrup es ChangelnterruptHandler Troca a rotina de atendimento de uma dada Interrup o EndInterrupt Termina o atendimento de uma Interrup o GeneratelInterrupt Gera uma interrup o n de software n SetInterrupt Instala um ponteiro de interrup o Temporiza es Os sistemas de tempo real s o caracterizados pela necessidade de fornecer um controle preciso sobre temporiza es O rel gio de hardware do processador AL 2005 fornece a fonte b sica de temporiza es o sistema operacional fornece o controle sobre seu uso A unidade de tempo do sistema opera
77. acao do CP na rede unsigned int TipoConexao Tipo de conexao fisica O eletrica 1 otica unsigned int Redundancia Redundancia da conexao O sem 1 com unsigned int PeriodoTeste Periodo para envio de mensagem de teste para conexoes redundantes em seg unsigned int TempoComutacao Tempo de espera para comutacao da conexao seg unsigned int Livre2 2 unsigned int ConexaoSelec Conexao de comunicacao selecionada 1 ou 2 WA unsigned int EstadoConexaol Estado da conexao I O ok 1 falha unsigned int EstadoConexao2 Estado da conexao 2 O ok 1 falha 66 Veja tamb m ReadTab Descri o Sintaxe Resultado 5 Programa o unsigned int Livre3 1 unsigned int ConexaoForcada Conexao forcada O sem forcamento 1 2 unsigned int EsdadoForcadol Estado forcado da conexao I O ok 1 falha 27 unsigned int EsdadoForcado2 Estado forcado da conexao 2 O ok 1 falha EA j ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs WritePLC L tabela do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadTab void buffer char tipo op int address int pos ini unsigned char num op unsigned char far pnum op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser armazenada a tabela lida do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEI
78. adOpSwap WriteOp ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC Escreve informa es de status no CP ou na rede ALNET II N o pode ser chamada de dentro da fun o HookPLC STATUS huge WritePLC void buffer char tipo req unsigned nTimeOut onde buffer ponteiro para a rea da mem ria de onde ser o lidas as informa es de status a serem escritas no CP tipo req tipo do operando do CP TIPO STATUS CP TIPO STATUS ALNETH nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela escrita das informa es especificadas se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da escrita A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a escrita verificar com que fregii ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o t
79. ado por pBlock pHandle ponteiro para armazenar um handle de mem ria a ser usado para acessos subsequentes a blocos menores dentro do bloco maior o handle retornado um ponteiro 55 5 Programa o Resultado Observa es Veja tamb m GetIDCoproc Descri o Sintaxe Resultado Veja tamb m GetMailboxMessage Descri o Sintaxe Resultado Observa es A fun o retorna OK MEMORY NOT AVAILABLE tamanho de mem ria muito pequeno ou excede 1 Mbytes e O chaveamento de tarefas desabilitado na entrada da fun o e posteriormente restaurado ao encerrar a execu o da fun o GetBlockUsingHandle FreeBlock AddBlockUseCount Obt m o n mero de identifica o do processador Somente pode ser chamada de dentro da fun o HookPLC char huge GetIDCoproc void A fun o retorna o n mero de identifica o do processador no barramento YRxxxx 8 podendo retonar valores de O a 7 Exemplo R000 0 R0008 1 ROO16 2 etc HookPLC GetNumTab GetTamTab Obt m a mensagem de maior prioridade STATUS huge GetMailboxMessage int nPriority char far lpMessage onde nPriority prioridade da caixa postal na qual deve se buscar a mensagem O maior 3 menor IpMessage nome de um array ou ponteiro para 12 bytes consecutivos para onde a mensagem ser copiada caso esteja dispon vel a rea para c pia da mensagem pode ser qualquer estrutura de 12 bytes A fun o retorna OK
80. ador AL 2005 O arquivo DEMO C fornecido pelo DEMOCOM implementa duas tarefas que s o executadas concorrentemente S o elas e driver de comunica o para protocolo ALNET I que interpreta APENAS comandos de monitora o de operandos do CP o na posi o TMO 2 deve ser especificado o canal serial do AL 2005 utilizado O para COMA configura o padr o 1 para COMB o na posi o TMO 4 aparece um c digo para a velocidade de comunica o desejada O para 38400 bps 1 para 19200 bps 2 para 9600 bps configura o padr o 3 para 4800 bps 4 para 2400 bps 5 para 1200 bps 6 para 600 bps 7 para 300 bps 8 para 150 bps e escrita cont nua na tabela TM3 do CP o na posi o TM3 0 aparece o n mero de posi es da TM3 correntemente escritos que varia de 256 a 4 seqiiencialmente o a posi o TM3 1 cont m o n mero da itera o para um dado tamanho de transfer ncia especificado em TM3 0 no total s o executadas 1024 itera es a cada vez para cada valor diferente em TM3 0 O arquivo DEMO C inclui coment rios no seu c digo fonte visando facilitar seu entendimento 106 6 Desenvolvendo uma Aplica o para o AL 2005 Descri o do Programa DEMOCALC O programa exemplo fornecido no diret rio DEMOCALC possui o arquivo DEMO C o qual implementa apenas uma fun o destinada ao c lculo de opera es sequencias la o que envolvam opera es matem ticas complexas O projeto contido no exemplo DEMOCALC inc
81. ador AL 2005 baseada no microprocessador de 16 bits Intel 80C186 que possui elevada integra o de recursos de hardware e especialmente indicado para aplica es industriais O c digo das Instru es deste microprocessador compat vel com o dos demais microprocessadores da Intel utilizados nos computadores IBM PC 80386 80486 etc Caracter sticas do Equipamento Dimens es F sicas Dimens es em mil metros 261 6 930630258 12 2 Descri o Tecnica Dados para Compra Itens Integrantes A embalagem do produto cont m um e M dulo AL 2005 RTMP processador AL 2005 RTMP Real Time Multitasking Processor e CD Card com os seguintes itens o M dulo fun o de interface UCP AL 2005 F 2005 016 Carregador AL 3860 Biblioteca de Fun es Programas Exemplos DEMOS Manual de Utiliza o Tutorial O O OO O C digo do Produto O seguinte c digo deve ser usado para compra do produto AL 2005 Real Time Multitask Processor Produtos Relacionados Os seguintes produtos devem ser adquiridos separadamente quando necess rio C digo Denomina o M dulo serial RS 485 isolado M dulo serial RS 232C Cabo DB25 P2 Est reo Cabo DB9 RJ45 PC AL 2005 Cabo DB9 macho para rede RS 485 Programador MasterT ool ATENCAO Para o desenvolvimento de programas aplicativos para o processador AL 2005 obrigat ria a utiliza o do compilador Borland C vers o 3 1 nos modelos de mem ria LARGE ou S
82. adr o de comunica o RS 485 e AL 2405 232 um m dulo serial que implementa o padr o RS 232C ATEN O Antes de conectar o processador multitarefa AL 2005 a qualquer outro equipamento com canal serial indispens vel que ambos possuam um ponto de aterramento em comum 116 7 Instala o Instala o dos M dulos Seriais A figura a seguir mostra como deve ser executado o acoplamento de m dulos seriais ao Processador Multitarefa AL 2005 LLL 94052306b Figura 7 3 Conex o do M dulo Serial Para realizar a instala o do m dulo serial devem ser seguidos os seguintes passos 1 Parafusar o espa ador 3 na placa AL 2005 fixando com o parafuso 7 e arruela 8 pelo orif cio 9 2 Encaixar a placa do m dulo serial nos conectores 5 e 6 ou 10 e 11 na placa AL 2005 3 Verificar se todos os pinos encaixam corretamente nos seus respectivos conectores 4 Parafusar a placa do m dulo serial atrav s do parafuso 1 e arruela 2 pelo orif cio 4 Instala o do CD O CD ROM cont m um aquivo denominado AL2005 EXE Para instala o execute o instalador e siga os procedimentos exibidos na tela 117 8 Manutencao 8 Manuten o Ao longo da opera o ou funcionamento do sistema algumas anormalidades podem ser eventualmente encontradas pelo usu rio Os itens a seguir apresentam as anormalidades mais comuns e d o instru
83. agada eletricamente Uma unidade de informa o transmitida na rede Em redes PROFIBUS o estado da rede quando os dados das entrada s o congelados Equipamento para a conex o de duas redes de comunica o com diferentes protocolos Conjunto de 16 eventos cujo acesso e sinaliza o controlado pelo gerenciador de eventos Inteiro sem sinal atribu do a um grupo de eventos pelo sistema operacional para ser usado como seu identificador nico Equipamentos f sicos usados em processamento de dados onde normalmente s o executados programas software Um dos estados de uma tarefa no sistema operacional do Processador Multitarefa AL 2005 RTMP Quando uma tarefa est no estado Idle ela n o est sendo utilizada Norma gen rica para opera o e utiliza o de CPs Dispositivo que adapta el trica e ou logicamente a transfer ncia de sinais entre dois equipamentos Evento com atendimento priorit rio que temporariamente suspende a execu o de um programa e desvia para uma rotina de atendimento espec fica Unidade representativa de quantidade de mem ria Representa 1024 bytes Sigla para light emitting diode um tipo de diodo semicondutor que emite luz quando estimulado por eletricidade Utilizado como indicador luminoso Linguagem Assembly Linguagem de programa o Linguagem de rel s e blocos Altus Lista circular lista Elemento de uma L gica MasterTool Memoria imagem Mensagem mensagem Prioridad
84. al atribu do a um recurso pelo gerenciador de recursos para ser usado como seu identificador nico Conjunto de equipamentos n s interconectados por canais de comunica o Rede de comunica o onde a transmiss o e a recep o de informa es entre os diversos n s garantida com um tempo m ximo conhecido Rede de comunica o onde as transfer ncias de informa es s o iniciadas somente a partir de um nico n mestre da rede ligado ao barramento de dados Os demais n s da rede escravos apenas respondem quando solicitados Rede de comunica o onde as transfer ncias de informa es s o iniciadas por qualquer n ligado ao barramento de dados Um dos estados de uma tarefa no Processador Multitarefa AL 2005 RTMP Indica que uma tarefa est executando Sigla usada para indicar recep o serial o gerenciador de um sistema operacional multitarefa respons vel pelo escalonamento troca de estado das tarefas Estrutura de dados da aplica o que pode ser usada pelo gerenciador de sem foros para fornecer acesso mutuamente exclusivo a recursos espec ficos do usu rio Uma das n posi es usadas para armazenar elementos em uma lista circular Programas de computador procedimentos e regras relacionadas opera o de um sistema de processamento de dados Segmento de uma rede de comunica o que interliga um grupo de equipamentos n s com o objetivo de isolar o tr fego local ou utilizar diferentes pro
85. amento de uma m quina ou processo Sistema operacional de um controlador program vel Controla as fun es b sicas do controlador e a execu o de programas aplicativos Regras de procedimentos e formatos convencionais que mediante sinais de controle permitem o estabelecimento de uma transmiss o de dados e a recupera o de erros entre equipamentos Sigla para random access memory a mem ria onde todos os endere os podem ser acessados diretamente de forma aleat ria e com a mesma velocidade vol til ou seja seu conte do perdido quando o equipamento desenergizado a menos que se possua uma bateria para a reten o dos Ready Real Time Recurso recurso Identificador de um Rede de comunica o Rede de comunica o determin stica Rede de comunica o mestre escravo Rede de comunica o multimestre Run RX Scheduler Sem foro Slot Software Sub rede Tag Tarefa tarefa Prioridade de uma Taskid Temporizador temporizador Identificador de um Tick de hardware Tick do sistema Time out Time Slicing Toggle Token TX UCP Upload Wait WD Word valores Um dos estados de uma tarefa no Processador Multitarefa AL 2005 RTMP Indica que uma tarefa est pronta para executar uma caracter stica de processos que exigem um tempo de resposta r pido Uma entidade como uma regi o de memoria cuja posse controlada pelo gerenciador de recursos Inteiro sem sin
86. and C BC o qual invocara a aplica o para depura o no AL 2005 a qual deve ser carregada via carregador AL 3860 YFD2005 TD2005 EXE Diret rio DOCS diret rio com a aplica o de depura o aplica o depurador remoto para AL 2005 Para gera o de uma nova vers o deve se chamar o compilador Borland C BC o qual invocara a aplica o para depura o no AL 2005 a qual deve ser carregada via carregador AL 3860 DOCS TUTORIAL PDF MU207006 PDF Diret rios DEMOCOM e DEMOCALC diret rio contendo documenta o do produto tutorial apresentando uma vis o geral do produto manual de utiliza o do produto O diret rio DEMOCOM cont m todo o ambiente de desenvolvimento de um programa exemplo que envolve comunica es a ser executado no AL 2005 O diret rio DEMOCALC cont m o ambiente de desenvolvimento de um programa exemplo para c lculo DEMOCOM DEMOCALC AL2003 C DEMO 000 DEMO MTL E DEMO 000 E DEMO 001 F 2005 016 AL2004 C DEMO 000 DEMO MTL E DEMO 000 E DEMO 001 F 2005 016 DEMO C PSDFLOAT C PSDFLOAT H FLOAT ASM DEMO DSK DEMO EXE DEMO H DEMO PRJ DEMOTD DSK DEMOTD EXE DEMOTD PRJ RELOCA CFG XDEMOTD EXE diret rio com a aplica o exemplo para drivers de comunica o diret rio com a aplica o exemplo para c lculo diret rio com o projeto demo para o AL 2003 modulo de configura o projeto do MasterTool m dulo de partida m dulo de execu o principal fun o de comun
87. anter este identificador de modo a poder referir se tarefa criada subsegiientemente Estados de uma Tarefa Uma tarefa sempre se encontrar em um dos seguintes estados e Jnativa o estado da tarefa quando a mesma criada Neste estado a tarefa n o possui nenhuma requisi o pendente a ser atendida e Pronta uma tarefa encontra se no estado de pronta quando tiver alguma requisi o pendente a atender ou estiver pronta a retomar sua execu o ap s ter sido interrompida ou estar aguardando e Em execu o a tarefa est sendo executada pelo processador S poss vel uma nica tarefa encontrar se neste estado a cada instante e Em espera a tarefa encontra se bloqueada aguardando a ocorr ncia de algum evento 23 4 Sistema Operacional ra Start Task SendMessage tarefa encerrada Pronta ou interrompida nao ha tarefa em execu o com maior prioridade Em execu o arefa encerrada ou interrompida Wait WaitTime SendMessageWait WaitSemaphore WaitEvent ReserveResource Em espera p evento de interesse ou timeout In cio de uma Tarefa Os programas aplicativos carregados no processador AL 2005 s o tarefas pr definidas Logo que o sistema operacional iniciado na energiza o do processador a mem ria de usu rio varrida em busca de programas aplicativos Quando um programa aplicativo encontrado o sistema operacional cria uma tarefa para este aplicativo e em seguida utili
88. ar 5 a 95 sem condensa o Indica o de estado 4 LEDs indicadores de estado Temperatura m xima de 60 C operacao Temperatura de armazenagem 25a 70 C Tabela 2 1 Caracteristicas T cnicas Gerais 11 2 Descri o Tecnica Arquitetura do Processador Multitarefa AL 2005 Um sistema de tempo real se caracteriza pela necessidade de responder adequadamente a eventos ocorridos assincronamente no tempo Um sistema multitarefa um conjunto de atividades ou tarefas que podem ser realizados sem interfer ncia em outros processos Um sistema com v rias tarefas que devem ser executadas simultaneamente e com um tempo de execu o cr tico chamado de real time multitasking system O processador AL 2005 implementa um sistema operacional multitarefa o que facilita a solu o de sistemas de tempo real O sistema operacional do AL 2005 utiliza um m todo de time slice m todo de tempo compartilhado para a execu o de aplicativos independentes uns dos outros Cada aplicativo pode possuir um conjunto de tarefas O chaveamento de tarefas segue o m todo preemptivo prioridade de tarefa Portanto o sistema operacional do processador AL 2005 segue dois m todos e Time slice tempo compartilhado para cada aplica o residente no AL 2005 e Preemptivo para cada tarefa de um determinado aplicativo deve se atribuir uma prioridade de execu o As tarefas podem ser interrompidas por uma de maior prioridade A arquitetura do process
89. as por algum motivo Quando uma tarefa inicia sua execu o tem completo controle sobre o processador O sistema de interrup es deve permanecer habilitado a fim de permitir o atendimento das interrup es Se a tarefa necessitar desabilitar as interrup es por algum motivo recomenda se que isto seja feito no menor per odo de tempo poss vel a fim de n o degradar o tempo de resposta das interrup es Uma tarefa pode executar sem se preocupar com o fato de que ocorrer o interrup es e que as mesmas ser o atendidas Se tarefas de maior prioridade ficarem prontas para execu o a tarefa ser suspensa temporariamente pelo sistema operacional Quando a tarefa de maior prioridade for suspensa ou encerrar o sistema operacional permitir que a tarefa interrompida retome sua execu o a partir do ponto em que foi interrompida Sincroniza o de Tarefas e Eventos O sistema operacional suporta tr s poderosos mecanismos para a sincroniza o de eventos O gerenciador de sem foros fornece sem foros contadores com capacidade de enfileiramento e timeout O gerenciador de eventos pode sincronizar v rios eventos com mais de uma tarefa oferecendo a melhor solu o para a coordena o de eventos complexos O sistema operacional oferece uma outra forma simples de sincroniza o de tarefas eventos 25 4 Sistema Operacional Uma tarefa pode aguardar incondicionalmente por um evento chamando Wait Este evento pode ser dependente de uma
90. aso afirmativo verifica se o novo estado dos 16 flags de evento est de acordo com o crit rio de detec o desejado pela tarefa Se isto ocorrer a tarefa acordada pelo gerenciador de eventos Se n o houver nenhuma outra tarefa de maior prioridade em execu o esta tarefa retomar imediatamente sua execu o com uma Indica o de que a combina o de eventos que estava aguardando ocorreu Se n o houver mais necessidade de um grupo de eventos o mesmo pode ser removido FreeEventGroup O gerenciador de buffers fornece acesso r pido e eficiente a m ltiplos conjuntos pools de buffers onde cada buffer representa um bloco de tamanho fixo de mem ria Esta forma de gerenciamento de mem ria vem ao encontro de aplica es em tempo real nas quais a disponibilidade de reas de mem ria deve ser previs vel e nas quais n o se pode tolerar fragmenta o de mem ria O gerenciador de buffers fornece o seguinte conjunto de servi os Gerenciamento AddBufferUseCount Incrementa contador de uso de um buffer de buffers CreateBufferPool Cria um pool de buffers DeleteBufferPool Remove um pool de buffers FreeBuffer Libera um buffer GetBuffer Obt m um buffer de um pool espec fico GetBufferSize Obt m o tamanho de um buffer ResetBufferPool Inicializa um pool de buffers espec fico ResetBufferPools Inicializa todos os pools de buffers pr definidos Um pool de buffers consiste de um n mero qualquer de buffers de tamanho uniforme
91. at que a tarefa sendo chamada receba a mensagem e responda chamada Prioridade As prioridades das tarefas s o usadas pelo escalonador do sistema operacional para determinar a tarefa a ser executada A qualquer instante sempre estar em execu o a tarefa com a maior prioridade que estiver capacitada a executar As prioridades das tarefas v o de 1 maior a 127 menor A prioridade dos programas aplicativos carregados no processador AL 2005 pr definida em 64 A prioridade das tarefas criadas dinamicamente definida na sua cria o atrav s do campo nPriority do descritor da tarefa TASKDESCR Se mais de uma tarefa possuir a mesma prioridade o sistema operacional ir atribuir prioridades relativas s diferentes tarefas de acordo com a ordem cronol gica com que foram criadas com a primeira tarefa criada tendo a maior prioridade Uma tarefa pode alterar sua prioridade ou a prioridade de qualquer outra tarefa atrav s da fun o ChangeTaskPriority mas esta pr tica nao recomendada Execu o de uma Tarefa O sistema operacional dispara uma tarefa fazendo uma chamada FAR para o endere o da fun o especificada no descritor da tarefa quando a mesma criada no campo TaskProcedure A tarefa somente ser iniciada se n o houver nenhuma outra tarefa de maior prioridade em condi es de ser executada Portanto uma tarefa somente entra em execu o se todas as outras tarefas de maior prioridade estiverem inativas ou suspens
92. bloco MEMORY NOT AVAILABLE ppBlock indefinido pSize o tamanho do maior bloco de mem ria correntemente dispon vel INVALID MEMORY BLOCK Handle um handle de mem ria inv lido ppBlock e IpSize s o indefinidos e O chaveamento de tarefas desabilitado na entrada da fun o e posteriormente restaurado ao encerrar a execu o da fun o e Sea mem ria for alocada o contador de uso do bloco setado em um 53 Veja tamb m GetBottomList Descri o Sintaxe Resultado Veja tamb m GetBuffer Descri o Sintaxe Resultado Observa es Veja tamb m GetBufferSize 5 Programa o GetHandle AddBlockUseCount FreeBlock Remove do final da lista STATUS huge GetBottomList void far lpList unsigned long far IpItem onde pList ponteiro para uma lista circular veja ResetList lpltem ponteiro para armazenar a vari vel de 1 2 ou 4 bytes removida da lista se lpltem NULL OL o item removido da lista mas n o retornado para a tarefa que chamou GetBottomList A fun o retorna 0 remo o ok lista n o est vazia 1 remo o ok lista agora ficou vazia n o poss vel remover o item lista est vazia ResetList AddTopList AddBottomList GetTopList Obt m um buffer de um pool de buffers espec fico STATUS huge GetBuffer int nPoolld char far lpBuffer onde nPoolld identificador do pool de onde o buffer deve ser obtido lpBuffer ponteiro par
93. cional o chamado tick do sistema que um intervalo de tempo fixo derivado do rel gio de hardware ATEN O O tick do sistema vale 10 ms 26 4 Sistema Operacional Uma tarefa pode suspender a si propria por um intervalo de tempo especifico WaitTime Pode tamb m aguardar por um evento que deve ocorrer dentro de um intervalo de tempo determinado Se o evento n o ocorrer neste intervalo a tarefa retoma sua execu o com uma indica o de timeout Uma outra facilidade fornecida pelo sistema operacional associada a controle de intervalos de tempo s o os temporizadores utilizados pelas aplica es Uma vez criado um temporizador pode ser disparado verificado e parado por qualquer tarefa Os seguintes servi os oferecidos pelo sistema operacional est o associados a temporizadores Gerenciamento CreateTimer Cria um temporizador StartStop Timer Dispara para um temporizador temporizadores TimeConvert Converte milisegundos em ticks do sistema ReadTimer L o valor corrente de um temporizador Delete Timer Remove um temporizador Um temporizador deve ser criado por uma tarefa antes de poder ser utilizado CreateTimer O sistema operacional retorna um identificador do temporizador para a tarefa chamadora que deve guard lo para futuras refer ncias Tr s par metros devem ser especificados na cria o de um temporizador seu per odo um ponteiro para uma fun o de temporiza o a ser executada quando esgo
94. cssssscssseeses 15 O Carregador de Aplicativos AL 3860 ccccssccccsssccsssscccsssccssssccsssscccssscccssssccssssccesssccesssccesssccessscsssscees 16 DORO SEIS CIONAL ars is a a a a ererer renter rrr nr nyar nnn 17 Bot o ENVII aa a NEEE ENEO O DOr EEO E o ESO ES EEE 17 PODE e S a RUN DURE DE GUN SUE RES ER e UR RS RIR TRE TR a Yara are 17 Bot o BroSrama o ssa aan 17 BOLO aly e161 11 6721 amen ern RD UR UU CORUNA RR RR RR RR RR UNIDA Centr 18 DONO ADA O is a o a renner nmr renner ire tr mr 18 BODD O altho E alan last alah asl 18 Bot o Porta Serial cceccccceccccseecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeeseeeeeaeeeeeeeeeeeseeeeeseeesaeseeeaeeees 18 POU A Os S ODE eraa E atc A ta tthe tt E A tra ature nae rasauienaerouatamaunaamanmamntian 19 BOLA INCC ese ste eels Sabie Ba Do a o onset o o o o o 19 4 SISTEMA OPERACIONAL iara eaten ais nan ee ae ee ee ee 20 EsScalonAdor de bike ra rere ee an arnre nye a ner remy rey ner nny rer nmr ner werner Te 20 Supervisor de INPEMUPCOES ua aene EE Ea eE Eeer EE EEr EE SEE En EE Ea eiai 26 Tempora OC ae ae e aeaee aa a a dad 26 MENSIE CNS coren E indi a o nd ad 28 MB TN FN ao o E o E ND PD na na RD SS ad a a a 30 SE TE 11 E PENON AON ONE ONANI EE Wena lian AT EET EE E aa ieatian Mealy 36 REL GIO e Sincron MO monen a e ea alge tot 38 OUTOS SO IVC OS a ate ada acl RR NR RR RR RR PR RR sania 38 Se PROGRAMA O sas TO ia 40 Sumario Fun es da Bibli
95. curso sem foro ou grupo de eventos KillTask DeleteTask Converte milisegundos em ticks do sistema unsigned int huge TimeConvert unsigned int MiliSeconds onde MiliSeconds n mero de milisegundos A fun o retorna o Intervalo de tempo equivalente em ticks do sistema e As interrup es n o s o alteradas e Sea freqii ncia do rel gio do sistema for tal que MiliSeconds requer mais de 65535 ticks de sistema a fun o retorna 65535 Se MiliSeconds for menor do que metade de um tick de sistema a fun o retorna 0 CreateTimer DeleteTimer StartStopTimer ReadTimer Transmite um bloco de bytes pelo canal serial STATUS huge TXBlock char Channel char far lpBlock unsigned nSize BOOL Wait onde Channel identificador do canal utilizado para transmitir o bloco COM AouCOM B pBlock ponteiro para o bloco de bytes a transmitir nSize 83 Resultado Observacao Veja tamb m TXByte Descri o Sintaxe Resultado Observa o Veja tamb m 5 Programa o n mero de bytes a transmitir Wait indica se a fun o deve retornar imediatamente ap s a chamada FALSE 0 aguardar o t rmino da transmiss o do bloco de bytes TRUE 1 ou aguardar por um determinado tempo gt 2 especificado em ticks do sistema funcionando como um tempo de timeout de transmiss o A fun o retorna SERIAL OK transmiss o do bloco de byte sem problemas SERIAL TX QUEUE FULL bloco de bytes foi enfilei
96. da a sua transmiss o A cada byte transmitido liberado um byte no buffer deste modo pode se transferir mais do que 1024 bytes sem riscos de perdas de dados Comunicando com o CP O controle da comunica o com o CP fornece os seguintes servi os Tratamento comunica o com o CP da HookPLC GetIDCoproc GetNumTab GetTamTab ReadOp ReadOpS wap WriteOp WriteOpS wap ReadTab ReadTabS wap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC Define a fun o de interface com chamada CHF do m dulo F 2005 no programa aplicativo do CP Obt m o n mero de identifica o do processador Obt m o n mero da tabela de configura o Obt m o tamanho da tabela de configura o L operandos simples do CP L operandos simples do CP Escreve em operandos simples do CP Escreve em operandos simples do CP L tabela do CP L tabela do CP Escreve em tabela do CP Escreve em tabela do CP L tabelas do CP Escreve em tabelas do CP L informa es de status do CP ou da rede ALNET II Escreve informa es de status no CP ou na rede ALNET II A fun o HookPLC serve para definir uma rotina a ser usada como uma interface entre o programa aplicativo no processador AL 2005 e a instru o de chamada CHF do m dulo F 2005 016 no programa aplicativo do CP Esta rotina servir para analisar as entradas da instru o e eventualmente repassar a opera o de reset ou configura o para outras tarefas Caso Isto n
97. dade de qualquer tarefa que possa afetar a tarefa sendo removida mas deve ser maior do que a prioridade de qualquer tarefa que fique permanentemente ativa compute bound A fun o retorna OK INVALID TASK ID TASK ABORT NOT ALLOWED e Ap s a remo o o identificador TaskID da tarefa n o ser mais v lido e Uma tarefa pode remover a si mesma e N o se deve remover uma tarefa que esteja aguardando por um recurso sem foro ou grupo de eventos ChangeTaskPriority CreateTask 47 Delete Timer Descri o Sintaxe Resultado Observa es Veja tamb m Disable Descri o Sintaxe Resultado Observa es Veja tamb m Emulnit Descri o Sintaxe Resultado Observa es 5 Programa o Remove um temporizador void huge DeleteTimer unsigned int TimerID onde TimerID identificador do temporizador a ser removido Nao ha retorno de DeleteTimer e Uma fun o de temporiza o nao deve chamar DeleteTimer para remover o temporizador ao qual esta associada ver CreateTimer Pode no entanto remover quaisquer outros temporizadores aos quais nao esta associada e Um temporizador ativo pode ser removido CreateTimer StartStopTimer RreadTimer Desabilita as interrup es void huge Disable void As interrup es s o desabilitadas e As interrup es devem permanecer desabilitadas pelo menor per odo de tempo poss vel a fim de n o degradar a performance do sistema Enable
98. das aplica es DEMO apresentada como coment rio do arquivo DEMO H de cada aplica o A figura 6 2 mostra a primeira chamada do m dulo F 2005 016 contida no m dulo principal de execu o Na sequ ncia as figuras 6 3 e 6 4 mostram duas op es de configura o dos par metros de entrada do m dulo F 2005 016 Quando o par metro de entrada 2 KM 00000 o AL 2005 estar executando em modo release isto n o permitir a depura o remota da aplica o carregada Quando KM vale 00019 o processador estar apto a depura o remota da aplica o Para descri o completa dos par metros da CHF consulte o Cap tulo 3 Configura o MASTERTOOL E DEMO 001 L gicas 4 Tamanho 288 bytes Ed o Busca Rel Mov vit Com cori Soot Liga Janela 7 Bie asia isle isi epson EIA TMODOO DEC TAG Figura 6 1 Inicializa o da Tabela de Configura o da Aplica o 99 6 Desenvolvendo uma Aplica o para o AL 2005 MASTERTOOL E DEMO 007 L gicas 4 Tamanho 288 bytes E Mov ar zE aa a E EE ZRA e eHre HE BIN SEE ASSANE EE L gicas 4 Tamanho 288 bytes 2 Logica 004 Me OCO i yagoma Figura 6 2 Chamada do M dulo F 2005 016 hi MASTERTOOL E DEMO 001 L gicar4 Tamanho 288 bytes ae Busca Rel Mov Ant Com con Gerais Liga Janela Operandos _ 0 PeRoooo 4 1 3sTMO000 2 SKM 00000
99. de Utiliza o do AL 2003 e Manual de Utiliza o do AL 2004 e Manual de Programa o do MT4100 Inspe o Visual Antes de proceder instala o recomend vel fazer uma inspe o visual cuidadosa dos equipamentos verificando se n o h danos causados pelo transporte Verifique se todos os componentes de seu pedido est o em perfeito estado Em caso de defeitos informe a companhia transportadora e o representante ou distribuidor Altus mais pr ximo CUIDADO Antes de retirar os m dulos da embalagem importante descarregar eventuais potenciais est ticos acumulados no corpo Para isso toque com as m os nuas em uma superf cie met lica aterrada qualquer antes de manipular os m dulos Tal procedimento garante que os n veis de eletricidade est tica suportados pelo m dulo n o ser o ultrapassados E importante registrar o n mero de s rie de cada equipamento recebido bem como as revis es de software caso existentes Essas Informa es ser o necess rias caso se necessite contatar o Suporte T cnico da Altus Suporte T cnico Para entrar em contato com o Suporte T cnico da Altus em S o Leopoldo RS ligue para 55 51 3589 9500 Para conhecer os centros de Suporte T cnico da Altus existentes em outras localidades consulte nosso site www altus com br ou envie um email para altus altus com br Se o equipamento j estiver instalado tenha em m os as seguintes informa es ao solicitar assist ncia
100. do representa a primeira posi o de mem ria livre na RAM do AL 2005 endere o de par grafo e equivale a diretiva CLASS CODE XXXX do arquivo de configura o do relocador da Paradigm Vers o para Carga em Flash EPROM Para gerar o aplicativo de demonstra o demonstra o para ficar residente na Flash EPROM utilize o arquivo de projeto do BorlandC DEMO PRJ O fonte DEMO C pode ser alterado conforme desejado Para tanto pode se abrir uma janela com o arquivo DEMO C posicionando se o cursor da janela de projeto sobre DEMO C e digitando ENTER Para compil lo basta teclar F9 equivalente ao menu COMPILE comando MAKE Para carregar o execut vel gerado no AL 2005 basta teclar SHIF T F9 que corresponde ao menu de sistema CARREGADOR AL 3860 113 6 Desenvolvendo uma Aplica o para o AL 2005 No programa de carga AL3860 1 Coloque o AL 2005 em estado programa o 2 Se for o caso escolha o comando APAGA que apaga todos os m dulos carregados na mem ria Flash EPROM do AL 2005 3 Selecione e envie o arquivo DEMO EXE para o AL 2005 Selecionar Enviar Cancelar Programa o Execu o Apagar Diret rio Porta Serial Sobre Fechar PER OREE LED Figura 6 24 Selecao do Arquivo Final 4 Coloque o AL 2005 em estado de execu o 5 Selecione o bot o FECHAR e retorne ao ambiente do compilador AL3860 Carregador do AL 2005 Demo exe i Selecionar Hone Codigo Data
101. dor MasterT ool rea de mem ria compartilhada entre o Processador Multitarefa AL 2005 RTMP e a UCP AL 2004 ou AL 2003 A mem ria imagem cont m o valor dos operandos da UCP Doze bytes de informa o da aplica o passada pelo sistema operacional em um envelope para uma tarefa Identifica qual entre as quatro caixas postais de uma tarefa deve receber uma mensagem passada pelo sistema operacional Conjunto de op es dispon veis e exibidas por um programa no v deo e que podem ser selecionadas pelo usu rio a fim de ativar ou executar uma determinada tarefa Equipamento ligado a uma rede de comunica o de onde se originam solicita es de comandos para outros equipamentos da rede Elemento b sico de um sistema completo que possui fun es bem definidas Normalmente ligado ao sistema por conectores podendo ser facilmente substitu do Parte de um programa aplicativo capaz de realizar uma fun o espec fica Pode ser executado independentemente ou em conjunto com outros m dulos trocando informa es atrav s da passagem de par metros Veja m dulo de configura o Tamb m chamado de m dulo C um m dulo nico em um programa de CP que cont m diversos par metros necess rios ao funcionamento do controlador tais como a quantidade de operandos e a disposi o dos m dulos de E S no barramento M dulo pertencente ao subsistema de entradas e sa das Veja m dulo execu o M dulo que cont m o programa ap
102. dor do AL 2005 TD2005 EXE 5TD2005 gt TD2005 EXE selecionado ili ce eae Lamar qu Figura 6 19 Sele o do Arquivo de Depura o DU AL3860 Carregador do AL 2005 TD2005 EXE Home Codigo Data Hora il T TD2005 GOD 1106 2003 10 30 Quantidade de Aplica es 1 Eate Bytes Usados 6000 3072 Bytes Livres 190640 193136 Bytes Totais 196640 197008 BIOS AL 2005 Versao 2 35 Jul 01 20043 Class code recomendado Ox1l0D6 E TE a a TEET EN Es Figura 6 20 Diret rio de M dulos do AL 2005 111 6 Desenvolvendo uma Aplica o para o AL 2005 5 Coloque o AL 2005 em estado de execu o ft AL3860 Carregador do AL 2005 TD2005 EXE AL 2005 em EXECU O Selecionar Enviar Eancelar Programa o Apagar Diret rio Porta Serial Sobre Fechar Figura 6 21 Modo Execucao do AL 2005 6 Selecione o bot o FECHAR e retorne ao ambiente do compilador Para depurar o aplicativo de demonstra o tecle SHIFT F4 correspondente ao menu de sistema TURBO DEBUGGER a fim de ativar o Turbo Debugger Quando o depurador entra no ar aparece a mensagem Program out of date on remote send over link Responda com Yes e aguarde o t rmino da carga do aplicativo no AL 2005 A partir deste momento pode ser iniciada a sess o de depura o do aplicativo de demonstra o que pode ser encerrada teclando se ALT X As figura 6 22 e 6 23 exibem este processo onde se indentif
103. e de uma Menu Mestre Modulo referindo se a hardware Modulo referindo se a software Modulo C M dulo de configura o M dulo de E S M dulo E M dulo execu o M dulo F M dulo fun o M dulo P M dulo procedimento Multitasking Nibble N Octeto Operandos PA PC Preemptivo Programa aplicativo Programa executivo Protocolo RAM Linguagem de programa o do microprocessador tamb m conhecida como linguagem de m quina Um conjunto de regras e conven es utilizado para a elabora o de um programa Conjunto de instru es e operandos que permitem a edi o de um programa aplicativo para ser utilizado em um CP Estrutura de dados da aplica o usada para manter uma lista de 1 2 ou 4 bytes com a capacidade de acrescentar e remover elementos tanto no topo quanto na base Um valor de um byte 8 bits uma palavra 16 bits ou dupla palavra 32 bits que pode ser acrescentado ou removido de uma lista circular Matriz gr fica onde s o inseridas as instru es de linguagem de um diagrama de rel s que comp e um programa aplicativo Um conjunto de l gicas ordenadas sequencialmente constitui um m dulo de programa Identifica o programa Altus para microcomputador execut vel em ambiente WINDOWS que permite o desenvolvimento de aplicativos para os CPs das s ries Ponto Piccolo AL 2000 Grano e Quark Ao longo do manual este programa referido pela pr pria sigla ou como programa
104. e ERR do painel do AL 2005 49 5 Programa o Sintaxe Resultado FillBlock Descri o Sintaxe Resultado Observa es Veja tamb m FreeBlock void huge EscreveLeds char Valor char Mascara onde Valor valor tipo m scara com o s LED s a ser em ligado s PROG LED TXRX LED ERROR LED Mascara M scara com o s LED s afetado s pela escrita PROG LED TXRX LED ERROR LED Ser o afetados somente os LEDs cuja m scara esteja habilitada Para desligar um ou mais LEDs basta passar O como par metro de valor e como m scara o respectivo LED ou conjunto de LEDs Preenche uma rea de mem ria com um padr o STATUS huge FillBlock MEMBLOCK pBlock long InSize unsigned int nPattern onde pBlock ponteiro para a rea de mem ria a ser preenchida com o padr o InSize tamanho em bytes da rea de mem ria a ser preenchida apontada por pBlock nPattern padr o a ser usado no preenchimento A fun o retorna OK MEMORY NOT AVAILABLE e As interrup es n o s o alteradas e Esta fun o particularmente til para o preenchimento de grandes regi es de mem ria que excedam 64 Kbytes A fun o otimizada para velocidade no preenchimento de grandes regi es e A fun o preencher qualquer regi o de mem ria alinhada a byte ou palavra com um tamanho par ou mpar Os 8 bits menos significativos de nPattern s o armazenados em pBlock Os 8 bits mais significativos em pBlock 1
105. e dado recebido deve ser mascarado pela aplica o se seus bits n o forem todos v lidos ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC 63 Descri o Sintaxe Resultado Observa o 5 Programa o Leitura de operandos simples tipo Mem ria Decimal Inteiro ou Real M D l ou F do CP invertendo automaticamente os bytes de valores dos operandos para o formato utilizado pela BIOS N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadOpSwap void buffer char tipo op int address int sub unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser o armazenados os valores do operando lido do CP tipo op tipo do operando do CP TIPO MEMORIA TIPO INTEIRO TIPO DECIMAL TIPO REAL Address Endere o do operando no CP Sub Endere o da subdivis o do operando do CP num op n mero de operandos do CP que se deseja ler nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela leitura dos operandos especificados se nTimeOut 0 a tarefa retornara erro imediatamente pois a BIOS n o suporta o ac mulo de leituras com swap em sua fila de requisi es devendo se aguardar sempre pela sua execu o A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permit
106. e o programa AL 3860 de carga de aplica es na mem ria Flash EPROM do AL 2005 A programa o dos menus configur veis do compilador Borland C fica armazenada nos arquivos de projeto PRJ Sugere se portanto que ao se criar uma nova aplica o apenas sejam copiados os arquivos DEMO PRJ e DEMOTD PRJ para outros nomes como PROG PRJ e PROGTD PRJ por exemplo alterando se os par metros necess rios mas mantendo se a programa o dos menus o que possibilita a chamada de todas as ferramentas necess rias a partir do compilador Verifique qual das aplica es demo melhor se aplica ao desenvolvimento desejado Os par metros passados ao depurador Turbo Debugger e ao programa LOCATE devem ser configurados corretamente Para visualizar os par metros de configura o dispon veis em cada um deles deve se invocar o Turbo Debugger com o par metro h TD h e o LOCATE sem nenhum par metro LOCATE 101 6 Desenvolvendo uma Aplica o para o AL 2005 Para tanto configure o projeto para os diret rios de instala o do Borland C e de sua aplica o As figuras a seguir exibem a sequ ncia para ajuste dos diret rios menu Options Directories e dos comandos menu Options Transfer no ambiente do Borland C o Borland C for DOS OR File Edit Search Kun Compile Debug Project Options Window Hely Especificos include include E ABS ibrary Directories D BORLANDC LIB sLIB ai earn
107. ela do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEIRO TIPO TABELA DECIMAL TIPO TABELA REAL se o bit 7 deste par metro estiver ligado a escrita ser executada a n vel de bit servindo portanto para escrita individual de bits de tabela address endere o da tabela do CP se for uma escrita orientada a bit bit 7 do tipo op estiver ligado o byte alto deste par metro dever indicar o n mero do ltimo bit a ser escrito dentro da posi o final de tabela 0 a 15 pos ini posi o inicial da tabela se for uma escrita orientada a bit bit 7 do tipo op estiver ligado o byte alto deste par metro dever indicar o n mero do primeiro bit a ser escrito dentro da posi o inicial de tabela informada no byte baixo deste par metro 0 a 15 num op n mero de operandos da tabela a serem escritosse for uma escrita orientada a bit bit 7 do tipo op estiver ligado o n mero de posi es de tabela a serem escritas devem incluir tanto a posi o Inicial quanto a ltima posi o que deve ser escrita ainda que estas posi es n o tenham todos os seus bits escritos se pos ini 0 e num op 1 que para o tipo unsigned char equivale a 255 a tabela completa escrita independente da quantidade de valores contidos no buffer nTimeOut intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela escrita da tabela especificada se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da
108. eleaseResource Inicializa zera um pool de buffers espec fico STATUS huge ResetBufferPool int nPoolID onde nPoolID identificador do pool a ser inicializado A fun o retorna OK INVALID POOL ID BUFFER TOO SMALL o tamanho de buffer do pool muito pequeno um erro fatal porque indica que os dados de controle do gerenciador de buffers est o corrompidos 72 Observacoes Veja tamb m ResetBufferPools Descri o Sintaxe Resultado Observa es Veja tamb m ResetList Descri o Sintaxe 5 Programa o e As interrup es n o s o alteradas e Esta fun o apenas deve ser usada em aplica es nas quais certo que os buffers n o ser o utilizados ou liberados durante a inicializa o do pool e Todos os buffers do pool s o inicializados mesmo que estejam correntemente em uso O conte do dos buffers ser alterado ResetBufferPools Inicializa zera todos os pools de buffers pr definidos STATUS huge ResetBufferPools void A fun o retorna OK BUFFER TOO SMALL o tamanho de buffer de algum pool muito pequeno um erro fatal porque indica que os dados de controle do gerenciador de buffers est o corrompidos e As interrup es n o s o alteradas e Esta fun o apenas deve ser usada em aplica es nas quais certo que os buffers n o ser o utilizados ou liberados durante a inicializa o dos pools e Todos os buffers dos pools s o inicializados mesmo que es
109. em O sistema operacional tem a capacidade de enfileirar requisi es para execu o de tarefas permitindo com que mensagens associadas s requisi es sejam empilhadas em caixas postais de uma forma controlada Isto libera a tarefa requisitora a continuar com seu pr prio processamento Alternativamente a tarefa requisitora pode suspender a si mesma at que a tarefa chamada tenha executado em resposta requisi o A tarefa requisitora pode enfileirar mensagens em at quatro n veis de prioridade A tarefa destino pode portanto receber mensagens de um n mero qualquer de chamadores com as mensagens ja ordenadas por prioridade pelo sistema operacional O projetista de uma aplica o descreve a necessidade exata de caixas postais de cada tarefa para o sistema operacional atrav s da estrutura de descri o da tarefa Para cada tarefa poss vel especificar quais dos quatro n veis de prioridade s o suportados caso qualquer um deles for necess rio Al m disto especifica se tamb m o n mero de mensagens poss vel em cada uma destas caixas postais O gerenciamento de caixas postais fornece o seguinte conjunto de servi os Gerenciamento GetMailboxMessage SendMessage SendMessage Wait de caixas postais Obt m a mensagem de maior prioridade Inicia uma tarefa pelo envio de uma mensagem Inicia uma tarefa pelo envio de uma mensagem aguardando at que a tarefa receba a mensagem Uma tarefa pode enviar uma mensagem para
110. em enviada Para teste do canal B deve ser utilizado o programa TSTCOM B EXE Para verifica o do funcionamento das Interfaces seriais devem ser seguidos os seguintes procedimentos l Carga no m dulo AL 2005 do software TSTCOM A EXE TSTCOM B EXE ou ambos para testar a porta desejada atrav s do programa de carga AL 3860 2 Neste momento Inicia se a comunica o e para TSTCOM_A EXE ira piscar o LED PG e para TSTCOM B EXE ira piscar o LED COM PG 118 8 Manutencao 3 Para comunica o com o AL 2005 deve ser utilizado o programa HyperTerminal chamado no seu microcimputador Os par metros de configura o do canal serial s o fixos e seguem o padr o do MasterTool conforme a tabela e BaudRate 9600 bps e Paridade par e StopBit 1 stopbit e RTS CTS sem controle 4 O software ira imprimir na janela do HyperTerminal a mensagem supra citada e para cada tecla pressionada ser mostrado um conjunto de caracteres correspondentes esta letra Caso ainda n o ocorra comunica o certifique se de que a placa sat lite AL 2405 possui o padr o 232 ou 485 conforme sua configura o Identificando Problemas Quando o AL 2005 n o responder adequadamente a uma comunica o solicitada os seguintes itens devem ser verificados se e verificar se os LEDs da fonte de alimenta o acendem Em caso negativo verificar o estado do fus vel da mesma e a fonte est alimentada com a voltagem correta e verificar se o dimens
111. em o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi excedido antes da BIOS conseguir realizar a leitura verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 c digo de erro retornado quando nTimeOut 0 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de leitura de um operando n o declarado na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de leitura de um n mero inv lido de operandos O ou maior que o limite m ximo permitido para o tipo e Com esta fun o poss vel ler at 4096 bytes de dados do CP ou seja at 2048 operandos mem ria M ou 1024 operandos decimal D inteiro Y 1 ou real JF e Os operandos com mais de um byte no CP AL 2003 e AL 2004 est o no formato HI LO enquanto que no AL 2005 no formato LO HI Por isso da necessidade de convers o ap s a leitura e antes da escrita de operandos tipo 64 Veja tamb m ReadPLC Descri o Sintaxe Resultado
112. er usado para alocar blocos menores da se o de mem ria privada atrav s da fun o GetBlockUsingHandle Quando uma se o de mem ria privada criada qualquer tarefa que tenha o handle pode adquirir blocos da se o Depende apenas da tarefa que criou a se o privada determinar a que tarefas ser dado o handle O gerenciador de listas fornece facilidades para manipula o de listas circulares gen ricas Uma lista circular uma estrutura de dados usada por uma aplica o para manter uma lista ordenada de bytes palavras ou palavras duplas Cada elemento armazenado em um slot da lista Cada lista cont m um n mero fixo de slots definido pelo usu rio Os servi os do gerenciador de listas s o reentrantes permitindo com que sejam compartilhados por tarefas executando concorrentemente O gerenciador de listas fornece os seguintes servi os para manipula o de listas Gerenciamento AddBottomList Acrescenta ao final da lista de listas AddTopList Acrescenta no inicio da lista GetBottomList Remove do final da lista GetTopList Remove do inicio da lista ResetList Inicializa uma lista circular Uma lista circular criada por uma aplica o atrav s de uma chamada fun o ResetList para a qual deve fornecer tr s par metros o n mero de slots da lista o tamanho de cada slot 1 2 ou 4 bytes e um ponteiro para a uma rea de mem ria onde a lista ser armazenada que deve ser alinhada palavra e ter um
113. er usado para sincronizar tarefas a qualquer um dos 16 eventos que representa Uma tarefa pode aguardar por um evento WaitEvent opcionalmente especificando um intervalo de tempo m ximo no qual permanecer aguardando pelo evento Se desejar aguardar por mais de um evento todos estes eventos devem estar contidos em um mesmo grupo Ao aguardar por eventos a tarefa deve especificar o identificador do grupo de eventos desejado uma m scara de 16 bits que identifica os eventos de interesse e um valor de 16 bits indicando o estado de Interesse para cada um dos eventos selecionados Especifica tamb m um entre dois crit rios a serem usados na detec o de eventos A tarefa pode aguardar que qualquer um dos eventos selecionados no grupo atinja o estado especificado ou alternativamente que todos os eventos selecionados sejam iguais aos respectivos estados especificados Quando uma tarefa gera uma mudan a de estado em um evento sinaliza o evento SignalEvent especificando o identificador do grupo que cont m o evento desejado Mais de um evento podem ser 32 Buffers 4 Sistema Operacional sinalizados de uma unica vez Para tanto deve se especificar uma mascara de 16 bits identificando os eventos particulares do grupo e um valor de 16 bits especificando o novo estado de cada um dos eventos selecionados Sempre que um evento sinalizado o gerenciador de eventos determina se alguma tarefa est aguardando por eventos daquele grupo Em c
114. es interpreta e executa as instru es do programa e monitora os dispositivos do sistema Leitura do programa ou configura o do CP Um dos estados de uma tarefa no Processador Multitarefa AL 2005 RTMP indica que a tarefa esta esperando por algum evento Sigla para c o de guarda em ingl s watchdog Veja circuito de c o de guarda Unidade de informa o composta por 16 bits
115. foi configurada com sucesso o na posi o TMO 5 deve ser especificado o endere o inicial do operando M origem da rea de troca de dados No exemplo TMO 5 10 oque identifica MOO10 Na rea definida no exemplo como iniciando em M0010 s o efetuadas as trocas de dados utilizadas no c lculo As seguintes informa es s o definidas a partir deste operando o MQ0010 controle de habilita o do c lculo 1 habilita c lculo para ser efetuado O identifica que operacao foi efetuada e o resultado pode ser lido pelo ladder o MQ0011 identifica tipo de operacao aritm tica soma 2 subtra o 3 multiplica o 4 divis o M0012 reservado M0013 valor do par metro 1 inteiro wM0014 reservado M0015 valor do par metro 2 inteiro MOO16 reservado oM0017 resultado da opera o inteiro MOO18 status do c lculo 321768 Identifica se opera o foi v lida O O O OO O 107 6 Desenvolvendo uma Aplica o para o AL 2005 O resultado do c lculo armazenado em M0017 e representa o valor obtido pela opera o de P1 P2 P1 P2 P1 P2 ou P1 P2 e est dispon vel para uso pelo programa ladder quando M0010 passar para o valor O e M0018 for 32768 Da mesma forma que o projeto anterior DEMO C inclui coment rios no seu c digo fonte visando facilitar seu entendimento Compilando os Programas DEMOCOM e DEMOCALC Os projetos modelos DEMO s o compilados no pr prio ambiente de edi
116. gger deve ser utilizado o arquivo de projeto do BorlandC DEMOTD PRu Dentro do ambiente do compilador pode se abrir uma janela com o arquivo DEMO C de modo a poder edit lo conforme desejado Para tanto basta posicionar o cursor da janela de projeto sobre DEMO C e teclar ENTER conforme mostra a figura 6 15 amp Borland C for DOS File Edit Search Fun Compile Debug Project Options Window Hel Project DEMOTD Fi Help Ins Add Del Delete O Options Space Includes A Edit Fill Menu Figura 6 15 Projeto DEMOTD PRJ Para compilar o aplicativo e gerar o execut vel correspondente basta teclar F9 que equivale ao menu COMPILE comando MAKE A figura 6 16 mostra o menu de compila o amp Borland C for DOS File Edit Search Run Debug Project Options Window Hely 1 ft Magias Alt F9 Link OBJETO DEMO C Build all DATA 61 09 64 DESCRIC O Aplicativo d Information Remove messages Xk O D E D DE AE RACAAS AS autor metodo Crotina gt descricao da alteracao E Fi Help Bring target up to date by compiling and linking as necessary Figura 6 16 Compilando o Projeto DEMOTD PRJ 109 6 Desenvolvendo uma Aplica o para o AL 2005 Na sequ ncia deve ser executado o relocador para aplica es a serem depuradas remotamente Para tanto tecle SHIF T F8 que corresponde ao menu de sistema comando RELOCADOR quando executado o LOCATE da Paradigm que utiliza o arqui
117. ica o com o AL 2005 diret rio com o projeto demo para o AL 2004 modulo de configura o projeto do MasterTool m dulo de partida m dulo de execu o principal fun o de comunica o com o AL 2005 fonte de programa exemplo para AL 2005 somente DEMOCALC API para c lculo ponto flutuante somente DEMOCALC API para c lculo ponto flutuante somente DEMOCALC API para c lculo ponto flutuante configura o do projeto no Borland C aplica o execut vel no AL 2005 arquivo de header para programa exemplo arquivo de projeto Borland C para gerar execut vel configura o do projeto no Borland C aplica o depur vel no AL 2005 arquivo de projeto Borland C para gerar depur vel arquivo de configura o do Paradigm LOCATE aplica o relocada depur vel no AL 2005 em conjunto com o Turbo Debugger O projeto DEMO MTL deve ser enviado para a UCP atrav s do programador MasterTool Deve ser verificado qual o modelo de UCP utilizado e selecionado o projeto correspondente 98 6 Desenvolvendo uma Aplica o para o AL 2005 A figura 6 1 mostra a inicializa o da tabela de configura o TM0000 passada como par metro de entrada 1 na chamada do m dulo F 2005 016 Esta tabela referida tamb m como tabela de rela es quando efetua a correla o entre operandos de protocolos distintos A decodifica o das informa es constantes nesta tabela efetuada pelo software A tabela de configura o
118. ica o cursor para execu o passo a passo da aplica o no AL 2005 Figura 6 22 Envio do Programa a ser Depurado no AL 2005 112 6 Desenvolvendo uma Aplica o para o AL 2005 A Borland C for DOS File Edit View Kun Breakpoints Data Options Window Hely eJ Module DEMO File DEMO C 414 oo Fi Help F2 Bkpt F3 Mod F4 Here F5 Zoom Fh Next F7 Trace F Step FY Run Fib Menu Figura 6 23 Depura o do Programa Para sair do ambiente do compilador Borland C tecle ALT X ATEN O Conforme j citado o n mero da aplica o para uso com o depurador deve ser 19 e este n mero deve ser utilizado na defini o da chamada fun o F 2005 016 constante mem ria passado como terceiro par metro para a fun o O tamanho do arquivo execut vel aplica o pode n o equivaler a soma da mem ria de c digo e de dados da aplica o ap s a carga no AL 2005 visualizada pelo carregador AL 3860 A diferen a que pode haver se deve aos seguintes fatores o header cabe alho do execut vel n o transferido para o AL 2005 a tabela de s mbolos do execut vel n o transferida para o AL 2005 a rea de dados no execut vel pode estar compactada vari veis pr inicializadas ocupam mem ria de c digo e de dados no AL 2005 enquanto que no execut vel somente de c digo O comando de Diret rio do carregador AL 3860 apresenta entre outros o dado Class CODE recomendado OxXXXX O valor indica
119. icado Portanto logo ap s o retorno da chamada de SendMessage os par metros da mensagem j encontram se livres para reutiliza o Ao receber a mensagem a tarefa destino disparada em seu endere o inicial pelo sistema operacional A mensagem de 12 bytes retirada do envelope copiada para a pilha da tarefa e o envelope automaticamente liberado Os par metros da mensagem recebida pela tarefa destino encontram se exatamente na mesma ordem com a qual foram enviados Uma tarefa que recebe uma grande variedade de mensagens deve declarar uma uni o a fim de se referir a diferentes tipos de mensagens union rmsg char int l int iarray 6 char carray 12 struct msg msga 29 4 Sistema Operacional A tarefa pode ser escrita como void huge taskn char c declara o de par metro fantasma union rmsg pmsg msg union rmsg amp c ponteiro para a mensagem recebida pmsg 8 P P 8 A mensagem recebida pode aqui ser acessada usando o ponteiro pmsg Neste exemplo a tarefa que recebe mensagens n o tem uma forma bvia de determinar como a mensagem deve ser interpretada isto se apenas um caracter ou a estrutura pmsg gt msga inteira Esta quest o normalmente resolvida com a inclus o de um c digo de opera o no in cio de cada mensagem Gerenciadores O sistema operacional fornece um conjunto de gerenciadores para simplificar a sincroniza o de eventos manipula o de
120. ificativos do valor de retorno s o bits de status e se um ou mais bits de status estiverem em 1 ocorreu um erro e se nenhum bit de status estiver em 1 o byte foi recebido sem erro Os 8 bits menos significativos cont m o byte recebido caso nenhum dos 8 bits mais significativos encontrar se em 1 Se InTimeOutRX 0 realizada apenas uma consulta fila de recep o serial e se n o houver nenhum caracter na fila de recep o retornado imediatamente SERIAL RX TIME OUT ERROR e se h caracter na fila de recep o o caracter retornado imediatamente juntamente com SERIAL OK mas n o retirado da fila A fun o retorna SERIAL OK recep o sem problemas 8 bits menos significativos s o o byte recebido SERIAL INVALID CHANNEL erro de identificador de canal inv lido SERIAL UART NOT CONFIG erro de canal n o inicializado SERIAL RX TIME OUT ERROR erro de timeout esgotado SERIAL PARITY ERROR erro de paridade SERIAL OVERRUN ERROR erro de overrun SERIAL FRAMING ERROR erro de framming e O tamanho do buffer de recepc o de 128 bytes para vers es at a 2 34 e de 512 bytes para as vers es 2 35 ou superiores Dados recebidos pela serial com o buffer lotado ser o perdidos SerialConfig TXByte RXBlock TXBlock Obt m o segmento de um ponteiro unsigned int huge Segment void far Iptr onde ptr ponteiro para a memoria A fun o retorna um valor inteiro de 16 bits sem sinal represe
121. ionamento de correntes do barramento n o ultrapassa o m ximo especificado nas caracter sticas t cnicas das fontes e verificar se o processador multitarefa AL 2005 est corretamente encaixado no bastidor e verificar se os m dulos opcionais ex Interface RS 485 AL 2405 485 encontram se corretamente encaixados nos conectores apropriados do Processador Multitarefa AL 2005 e verificar se o cabo de comunica o serial est conectado e a temperatura ambiente est dentro do especificado CUIDADO A troca de m dulos no barramento ou a verifica o de suas conex es deve ser realizada com a alimenta o principal do sistema desenergizada Se nenhum problema for identificado consulte o Suporte a Clientes Altus Manuten o Preventiva e Deve se verificar a cada ano o se os cabos de interliga o est o com as conex es firmes sem dep sitos de poeira principalmente os dispositivos de prote o o seo valor de tens o da fonte de alimenta o est dentro do padr o especificado para o m dulo e Em ambientes sujeitos a contamina o excessiva deve se limpar periodicamente o equipamento retirando res duos poeira etc 119 9 Glossario Algoritmo Barramento Baud rate Bit BT Buffers Pool de Byte Caixa postal Canal serial Ciclo de varredura Circuito de cao de guarda Codigo comercial Codigo de erro Controlador programavel CP Default Depuracao Diagnostico Download E S E2PROM EI
122. ipo de operando especificado no par metro tipo op da fun o n o um valor v lido e As estruturas de dados de armazenamento das informa es de estado do CP e de estado da ALNET II devem ser do tipo STATUS PLC e STATUS ALNETII respectivamente vide a fun o ReadPLC com a descri o das estruturas mesmo que todas as suas vari veis n o sejam utilizadas na escrita e ParaTIPO STATUS CP s poss vel escrever no CP os tempos de ciclo de execu o vari vel TempoCiclo composto pelo tempo de ciclo instataneo tempo de ciclo m dio tempo de ciclo m ximo e tempo de ciclo m nimo e ParaTIPO STATUS ALNETII s poss vel escrever no CP as seguintes vari veis da estrutura STATUS ALNETII NumeroTxOk NumeroTxTcdt 91 Veja tamb m WriteTab Descri o Sintaxe Resultado 5 Programa o NumeroTxUdr NumeroTxNoack NumeroTxErro NumeroTxTimeout NumeroTxFalta NumeroRxOk NumeroRxAbt NumeroRxOvr NumeroRxCrc NumerokxAe NumeroRxLong NumeroRxTimeout NumeroRxFalta ConexaoForcada EsdadoForcadol EsdadoForcado ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC Escreve em tabela do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge WriteTab void buffer char tipo op int address int pos ini unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria que cont m os valores a serem escritos na tab
123. izar a leitura verificar com que frequ ncia est o sendo feitas chamadas a fun o F 2005 016 COD ERRO TIPO OPERANDO INVALIDO o tipo de operando especificado no par metro tipo op da fun o n o um valor v lido COD ERRO OPERANDO N O DEFINIDO houve a tentativa de leitura de uma tabela n o declarada na mem ria do CP COD ERRO INDICE TABELA INVALIDO houve a tentativa de leitura de uma posi o de tabela n o declarada na mem ria do CP COD ERRO NUMERO OPERANDOS INVALIDO houve a tentativa de leitura de um n mero inv lido de posi es da tabela 0 e Com esta fun o poss vel ler at 255 posi es de tabela seja ela do tipo mem ria TM decimal TD inteiro TI ou real TF e A rea de mem ria alocada para a leitura deve ser suficiente para acomodar toda a tabela especificada Um erro fatal pode ocorrer caso sejam corrompidos os conte dos de qualquer parte da mem ria fora dos limites da rea alocada ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTabSwap WriteTab WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC L tabelas do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge ReadTabs void buffer char tipo op int address unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria onde ser o armazenadas as tabelas lidas do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEIRO TIPO TABELA DECIMAL TIPO TABELA REAL address
124. l Os servicos de canais seriais foram implementados dentro de um conceito de drivers de dispositivo de modo a suportar novas UARTss ou outras placas de comunica o que venham a ser utilizadas nos dois slots de expans o da placa AL 2005 No momento encontra se implementado um driver para a interface serial National NS 16550AF das placas sat lites do processador AL 2005 que tanto podem obedecer ao padr o RS 232C quanto RS 485 de forma transparente para o driver Os seguintes servi os relacionados comunica o serial s o oferecidos Tratamento da SerialConfig Inicializa canal serial comunica o RXByte Recebe um byte do canal serial serial TXByte Transmite um byte pelo canal serial RXBlock Recebe um bloco de bytes do canal serial TXBlock Transmite um bloco de bytes pelo canal serial Atrav s destes servi os poss vel configurar os canais seriais SerialConfig transmitir e receber bytes isolados TXByte RXByte ou realizar comunica es blocadas TXBlock RXBlock 36 4 Sistema Operacional O tamanho do buffer de recep o de 128 bytes para vers es at a 2 34 e de 512 bytes para as vers es 2 35 ou superiores Assim que s o retirados dados do buffer novos dados recebidos pela serial podem ser armazenados Dados recebidos pela serial com o buffer lotado ser o perdidos O tamanho do buffer de transmiss o de 1024 bytes Assim que os dados bytes come am a ser inseridos no buffer inicia
125. la seja ela do tipo mem ria TM decimal TD inteiro TT ou real TF ReadOp ReadOpSwap WriteOp WriteOpSwap ReadTab ReadTabSwap WriteTabSwap ReadTabs WriteTabs ReadPLC WritePLC Escreve em tabelas do CP N o pode ser chamada de dentro da fun o HookPLC STATUS huge WriteTabs void buffer char tipo op int address unsigned char num op unsigned nTimeOut onde buffer ponteiro para a rea da mem ria que cont m os valores a serem escritos na tabela do CP tipo op tipo de tabela do CP TIPO TABELA MEMORIA TIPO TABELA INTEIRO TIPO TABELA DECIMAL TIPO TABELA REAL address endere o da primeira tabela a ser escrita no CP num op n mero de tabelas a serem escritas nTimeOut intervalo de tempo m ximo em ticks de sistema que a tarefa aguardar pela escrita das tabelas especificadas se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da escrita permanecendo a requisi o na fila da BIOS para ser executada A fun o retorna OK fun o executada com sucesso 93 Observacoes Veja tamb m WriteTabSwap Descri o 5 Programa o PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p
126. licativo podendo ser de tr s tipos E000 E001 e E018 O m dulo E000 executado uma nica vez na energiza o do CP ou na passagem de programa o para execu o O m dulo E001 cont m o trecho principal do programa que executado ciclicamente enquanto que o m dulo E018 acionado por interrup o de tempo Veja m dulo fun o M dulo de um programa de CP que chamado a partir do m dulo principal m dulo E ou a partir de outro m dulo fun o ou procedimento com passagem de par metros e retorno de valores Atua como uma sub rotina Veja m dulo procedimento M dulo de um programa de CP que chamado a partir do m dulo principal m dulo E ou a partir de outro m dulo procedimento ou fun o sem a passagem de par metros Caracter stica de um sistema operacional poder executar v rias tarefas de um sistema por interm dio de um m todo de compartilhamento de UCP Unidade de informa o composta por quatro biis Qualquer esta o de uma rede com capacidade de comunica o utilizando um protocolo estabelecido Conjunto de oito bits numerados de 0 a 7 Elementos sobre os quais as instru es atuam Podem representar constantes vari veis ou um conjunto de vari veis Ver pontes de ajuste Sigla para programmable controller a abreviatura de controlador program vel em ingl s M todo de compartilhamento de UCP por prioridades de execu o o programa carregado em um CP que determina o funcion
127. litado na entrada da fun o e posteriormente restaurado ao encerrar a execu o da fun o e Sea mem ria for alocada o contador de uso do bloco setado em um AddBlockUseCount FreeBlock 52 GetBlockSize Descri o Sintaxe Resultado Veja tamb m GetBlockUsingHandle Descri o Sintaxe Resultado Observa es 5 Programa o Obt m o tamanho de um bloco de mem ria STATUS huge GetBlockSize MEMBLOCK pBlock long far lpSize onde pBlock ponteiro para um bloco de mem ria alocado pelas fun es GetBlock ou GetBlockUsingHandle IpSize ponteiro para armazenar o tamanho efetivo em bytes do bloco de mem ria apontado por pBlock A fun o retorna OK INVALID MEMORY BLOCK MEMORY BLOCK NOT IN USE GetBlock GetBlockUsing Handle Obt m um bloco de mem ria usando um handle privado STATUS huge GetBlockUsingHandle long InSize MEMBLOCK far ppBlock long far IpSize MEMHANDLE Handle onde InSize tamanho em bytes de mem ria requerida ppBlock ponteiro para armazenar o ponteiro do bloco de mem ria retornado IpSize ponteiro para armazenar o tamanho til real em bytes do bloco de mem ria em ppBlock lpSize pode ser um pouco maior do que nSize Handle handle de mem ria atribu do pelo gerenciador de mem ria em uma chamada pr via a GetHandle o handle um ponteiro A fun o retorna OK ppBlock um ponteiro para um bloco de mem ria pSize o tamanho real do
128. lquer tarefa que esteja aguardando que a tarefa morta responda a uma mensagem retomar sua execu o e Uma tarefa pode matar a si mesma e N o se deve matar uma tarefa que esteja aguardando por um recurso sem foro ou grupo de eventos EndTask DeleteTask Localiza uma tarefa atrav s de seu nome STATUS huge LocateTask TASKID far lpTaskID char far lpsTaskName onde lpTaskID ponteiro para armazenar o identificador da tarefa caso ela possa ser localizada lpsTaskName ponteiro para o tag de quatro caracteres que o nome da tarefa que se deseja localizar A fun o retorna OK INVALID TASK ID e Se mais de uma tarefa foram criadas com o mesmo tag obt m se o identificador de qualquer uma delas e Todos os quatro caracteres em lps TaskName devem ser iguais ao tag da tarefa para se obter um identificador v lido GetTaskID GetTaskDescriptor Obt m o offset de um ponteiro unsigned int huge Offset void far lptr onde ptr ponteiro para a memoria A fun o retorna um valor inteiro de 16 bits sem sinal representando a parte do offset de um ponteiro ptr e As interrup es n o s o alteradas Segment SetOffset SetSegment 61 OutByte Descri o Sintaxe Observa es Veja tamb m OutWord Descri o Sintaxe Observa es Veja tamb m ReadOp Descri o Sintaxe 5 Programa o Escreve um byte em uma porta de sa da void huge OutByte int nPort char Byte onde
129. lui uma biblioteca de processamento de dados com padr o descrito pela norma IEEE 754 para opera es envolvendo dados com ponto flutuante Esta biblioteca define o padr o pseudo float ao inv s de dados tipo float Assim se obtem uma melhor performance do processador AL 2005 no processamento de dados envolvendo ponto flutuante O programa exemplo foi desenvolvido para efetuar as opera es aritm ticas soma subtra o multiplica o e divis o envolvendo valores com ponto flutuante Para tanto define apenas um esqueleto envolvendo a configura o da aplica o atrav s da fun o HookPLC e uma rotina principal respons vel por identificar a opera o e processar a a o solicitada Com o uso da fun o HookPLC poss vel configurar se o operando M inicial da sequ ncia de dados trocados entre a aplica o no AL 2005 e o programa aplicativo ao inv s de pr defini los como feito no exemplo DEMOCOM Atrav s destes par metros passados ao coprocessador pela UCP executado o c lculo necess rio segundo a opera o solicitada No exemplo conforme definido na tabela de configura o da aplica o o nas posi es TMO 2 e TMO 3 devem ser especificados o c digo da aplica o e a vers o No exemplo TMO 2 9999 TMO 3 100 o na posi o TMO 4 definido o endere o do operando M para retorno da configuracao efetuada No exemplo TMO 4 1 o que identifica M0001 Se M0001 321768 ent o a aplica o
130. nas Condi es Gerais de Fornecimento anexada s propostas comerciais A Altus garante que seus equipamentos funcionam de acordo com as descri es contidas explicitamente em seus manuais e ou caracter sticas t cnicas n o garantindo a satisfa o de algum tipo particular de aplica o dos equipamentos A Altus desconsiderar qualquer outra garantia direta ou impl cita principalmente quando se tratar de fornecimento de terceiros Pedidos de informa es adicionais sobre o fornecimento e ou caracter sticas dos equipamentos e servi os Altus devem ser feitos por escrito A Altus n o se responsabiliza por informa es fornecidas sobre seus equipamentos sem registro formal DIREITOS AUTORAIS S rie Ponto Master Tool Quark ALNET e WebPLC s o marcas registradas da Altus Sistemas de Inform tica S A IBM marca registrada da International Business Machines Corporation Sumario Sumario 1 INERODUC NO cated shiotststidctstsdidatetatecatacadssatscadsantecetaces sdacaceucdacacsuesocscacesneacacsscsacostacsacnetessoceassnsscetecssetstaeneas 6 O Real Time Multitasking Processor s essseecseecsseecsscocseecoseecseecsseocoecosseecsecosseecsseccseecsseccseecsseocsseosseecsseessee 6 Aplica es do Processador Multitarefa AL 2005 sseecssseccssseccssecccssecsossecsssseccsscesssecescssecssssecssssesssseessse 6 Documentos Relacionados a este Manual seeescsseccssseccssseccssceccsscecosseesosseccssseccsseeccsseecos
131. ntando a parte do segmento de um ponteiro ptr e As interrup es n o s o alteradas Offset SetOffset SetSegment 76 SendMessage Descri o Sintaxe Resultado Observa es Veja tamb m SendMessageWait Descri o Sintaxe 5 Programa o Inicia uma tarefa pelo envio de uma mensagem A tarefa requisita ao sistema operacional o envio de uma mensagem para outra tarefa em uma dada prioridade e que o mesmo inicie a execu o da tarefa o mais cedo poss vel STATUS huge SendMessage TASKID TaskID int nPriority char far pMessage onde TaskID identificador da tarefa para a qual a mensagem deve ser enviada nPriority prioridade da mensagem O maior 3 menor IpMessage nome de um array ou ponteiro para 12 bytes consecutivos que formam a mensagem a ser copiada para a tarefa destino a mensagem pode ser qualquer estrutura de 12 bytes A fun o retorna OK INVALID TASK ID NO FREE ENVELOPE NO MAILBOX DEFINED MAILBOX FULL e Um chaveamento de tarefa imediato ocorrer caso a tarefa para a qual se est enviando a mensagem for de maior prioridade do que a tarefa corrente SendMessage Wait StartTask EndTask WakeCallingTask Inicia uma tarefa pelo envio de uma mensagem aguardando at que a tarefa receba a mensagem A tarefa requisita ao sistema operacional o envio de uma mensagem para outra tarefa em uma dada prioridade e que o mesmo inicie a execu o da tarefa o mais cedo poss vel
132. nte at ser acordada void huge Wait void A tarefa ser suspensa at que outra tarefa chame WakeTask a fim de acordar esta tarefa e As interrup es s o habilitadas e Sea tarefa tiver uma requisi o pendente para acordar no momento em que chama Wait continuar imediatamente sua execu o sem espera e Se houver alguma possibilidade de que alguma tarefa j fez uma chamada para WakeTask a fim de acordar a tarefa corrente deve se chamar ResetPending Wake para resetar qualquer requisi o pendente antes de chamar Wait WaitTime WakeTask ResetPendingWake ResetTaskWake WaitSemaphore Aguarda por evento s em um grupo STATUS huge WaitEvent GROUP Group GROUP ValueMask GROUP GroupValue GROUP MatchValue unsigned int nTimeOut onde Group identificador do grupo de eventos obtido com uma chamada a GetEventGroup ValueMask m scara de 16 bits identificando os flags de interesse no grupo de eventos GroupValue valor de 16 bits especificando o estado para cada um dos flags de evento selecionados pela m scara o estado dos flags n o selecionados pela m scara pode assumir qualquer valor MatchValue crit rio de correspond ncia se O qualquer flag selecionado que se encontrar no estado desejado considerado como o evento de interesse se lt gt 0 todos os flags selecionados devem encontrar se no estado especificado por GroupValue para se atingir o evento de Interesse nTimeOut intervalo de tempo maximo em ticks de
133. o Selecionar Este comando permite a sele o de arquivos de programas aplicativos execut veis EXE do disco para posterior envio ao AL 2005 Nenhum outro tipo de arquivo pode ser selecionado por esta op o Ao selecionar um arquivo o carregador AL 3860 exibe o seu nome na barra de t tulo conforme mostrado na figura a seguir DU AL3860 Carregador do AL 2005 E x CoProgeto z al2005DEMODEMO EXE selecionado Selecionar abrir sis a Examinar S DEMO de E E EE Cancelar Programa o DEMO EXE Execu o DEMOTD EXE Apagar a xDEMOTO EXE Diret rio Porta Serial Sobre Nome do DEMO EXE arquivo Arquivos do Arquivos Execut veis EXE Cancelar tipo Fechar tipo PER OREE LED EE EC JE Figura 3 3 Sele o de Arquivo para Carga Bot o Enviar Esta op o envia o programa aplicativo para a mem ria do processador AL 2005 Antes da efetiva transmiss o do arquivo o AL 3860 verifica se o programa aplicativo selecionado um arquivo execut vel no AL 2005 e se existe espa o de mem ria de c digo e de dados para a carga Bot o Cancelar Esta op o cancela a transmiss o da aplica o para o AL 2005 Bot o Programa o Este comando passa o processador para o estado programa o E no estado programa o que s o permitidas as opera es de leitura de diret rio do processador AL 2005 exclus o de aplicativos da memoria e envio de programas aplicativos
134. o a o a a a a a o a o a a a a o a Co 54 CEBOL TS ZE cora nes e ca CC E eee a co E 54 CS en N OTOU e A orn Tart aren rn nr aren rret arora E reve rarer 55 ESCURA 116 beeen ee aS a a ne e a DR DO 55 OS CO aac an ean 56 Get Pe pod dh o Ti E Si o RR RR cust eentaus tenet IRD RREO DD E 56 CONDADO ss Da town a iret wrt a Da men eer mee Men mn mn ne en one 57 CCU LAI AD AA RN NR RD RR RAN DR RN RR NR RN 57 Ger lask DESC IDIOT pano a a a a e ee e t 57 OSE EAS FM ote iia lnc RR RD ees ances eicosanoid acc ice RD E E 58 GATORS as a ects a a o a a a e 58 75s 6d Bs 11 oy ener eee etre mrt e RD RS E DS E DDD DE ene oe 58 RS Op TS saa Sos a alse Sara sats ose rasa Do Do Roo o o o E 59 TIDOREECO clas sue sao oo E aaa a E a a a a a o ar 59 InByte 60 ON Or tats toca PNR MR RN ND tan RR RD E E E E EN ER O RE RD 60 GUS Bei O PDR RR RS RR NR ea aeteuaaesecetee 60 LO ASK ssa nr a Pu A RD a RD Na 61 Offset 61 OB LO an aa a a A Uren UT enT eh Uren tren nr em ener ere ere Uren errur eran er ener en erent reer even e reran 62 OON 0 0 RPE SR RR NR ERR RE PR RD Re Re eR ER Re SERENA 62 REAd OD ssisanisasiagadnsadaaciagadagadagadagadacadeaalegadanalagaiagadagalagaiagadagalogalogodagologalacalagalagadasadagalasadasadagnmgudiaudddial 62 eat 6 150 1921 0 pene ene Ceara re ERR RR TD wT aTe 63 Sumario Essa al Career me ee re Ra nr oA A Te Ta ARE ARO RR TRC A ORC ET NNE ee Ree EE 65 Eca ay ce eae eee cee ek cet RE O o tomers cu ON O DR noses AS e eat 67 RCE ADS ec
135. o de temporiza o Temporizadores peri dicos s o automaticamente disparados pelo sistema operacional com seus valores pr definidos assim que a fun o de temporiza o encerrar sua execu o Quando n o houver mais necessidade de um temporizador o mesmo pode ser removido DeleteTimer Os seguintes servi os podem ser chamados pela fun o de temporiza o 27 Mensagens StartTask WakeTask SendMessage CreateTimer DeleteTimer ReadTimer StartStopTimer TimeConvert GetBuffer FreeBuffer SignalEvent SignalSemaphore AddBottomList AddTopList GetBottomList GetTopList ResetList 4 Sistema Operacional Dispara a execu o de uma tarefa Acorda uma tarefa no estado de espera Dispara uma tarefa pelo envio de uma mensagem Cria um temporizador Remove um temporizador L o valor corrente de um temporizador Dispara para um temporizador Converte milisegundos em ticks do sistema Obt m um buffer de um pool espec fico Libera um buffer Sinaliza um ou mais eventos em um grupo Sinaliza um sem foro Acrescenta ao final da lista Acrescenta no in cio da lista Remove do final da lista Remove do in cio da lista Inicializa uma lista circular As mensagens s o usadas para a comunica o entre tarefas cooperantes Uma tarefa em execu o pode requisitar a execu o de uma outra tarefa mediante o envio de uma mensagem Usualmente a a o executada pela tarefa destino variar de acordo com o conte do da mensag
136. o para armazenar o identificador da tarefa criada A fun o retorna OK NO FREE TASK CONTROL BLOCK INVALID TASK PRIORITY O ou gt 127 DeleteTask KillTask StopTask ChangeTaskPriority StartTask SendMessage SendMessage Wait Cria um temporizador STATUS huge CreateTimer unsigned int far lpTimelD unsigned int nPeriod unsigned int huge far pProc unsigned int long long InParam onde IpTimelD ponteiro para armazenar o identificador do temporizador criado nPeriod 45 Resultado Observacoes Veja tamb m DeleteBufferPool Descri o Sintaxe Resultado Observa es Veja tamb m DeleteResource Descri o Sintaxe Resultado 5 Programa o intervalo de tempo em ticks de sistema a ser usado se o temporizador for peri dico nPeriod 0 em caso contr rio pProc ponteiro para a fun o de temporiza o a ser executada sempre que o temporizador esgotar o intervalo de tempo nele programado por StartStopTimer InParam par metro de 4 bytes a ser passado para a fun o de temporiza o sempre que a mesma for chamada pelo sistema operacional usualmente um ponteiro para alguma vari vel ou estrutura dependente da aplica o A fun o retorna OK NO FREE TIMER BLOCK e A cria o de um temporizador n o o dispara automaticamente A fun o StartStopTimer deve ser usada para disparar o temporizador DeleteTimer StartStopTimer ReadTimer Remove um pool de buffers STAT
137. o pelo ponteiro para seu primeiro byte o mesmo que foi recebido quando o buffer foi adquirido O gerenciador de buffers decrementa o contador de uso e se a contagem chegar a zero o buffer novamente encadeado lista de buffers livres do pool ao qual pertence Uma vez adquirido um buffer poss vel incrementar seu contador de utiliza o AddBufferUseCount permitindo a exist ncia simult nea de mais de um dono compartilhando o uso 33 Memoria 4 Sistema Operacional do buffer Na primeira vez em que se obt m um buffer seu contador setado em um Se o contador de uso incrementado de um o buffer ter de ser liberado duas vezes antes de se tornar realmente livre Esta caracter stica pode ser importante para alguns tipos de aplica es mas exige alguns cuidados Quando um buffer possui v rios donos executando concorrentemente o conte do do buffer n o deve ser alterado a menos que cada dono possa apenas escrever em uma parte do buffer exclusivamente sua As nicas opera es permitidas s o a leitura e a libera o do buffer poss vel tamb m obter o tamanho de um buffer GetBufferSize Como o buffer foi obtido de um pool de buffers de tamanho conhecido este servi o normalmente desnecess rio Entretanto em aplica es onde a tarefa que utiliza um buffer n o necessariamente a mesma que o criou conveniente poder determinar seu tamanho Se em algum ponto n o houver mais necessidade de nenhum dos buffers
138. o raio E EEEE ETE ane Pen E EE ne TACO SRO ARE EE E 68 Read ADS WAD waccscacncssacssseaasecsdesssoanncwanccncatasca dele a ilacstd paira ia natetaeatseietis E seme tnauenss 69 PR OE O 0 6 q RR oars sats pe VIRE ERROR RESENDE RSRSRS O 70 RelcaseNestedRCSQUIC assadas niss ides stoct doch du a al ad dd side DELES RA GRE SO 71 PESER ESOU Ce hae a Mal Nan oa telat aoa 71 EeSCrvelRCSQUICO sacra cr RECN SIO A ORIN RS CRP AC PR Te ee rr ee ere oy 72 ResetBuiterPoO ssi ioe ais ius nics GUGA SGD 72 ReselBUN er oO lS eanan r a E E a 73 PEE a aa a easter es ad add GR OR 73 PSE NVA ia a a A E seta shies 74 eer Las Va eee ane aE RR Re In Oe OOD De E mere RE 74 FABIO K Gere ne a e e On TTT ce oR Oe ee ee E OR ee CENT nD ee 74 RADIO aaa a da aa ada ada ada aa da da ada a e ia da 15 DG 84 MIC es O SINO RO RR RS ENC RSO URSS DEDE DRSO DRSE DEDE ROC EESC SEDE ROL CEO A SE CEDRO AT 16 DMV SAC a ssa ci asa ana ian T ada a ad a ada aaa S E Ta SONTE O CNN a E EE ETTE TEAT 11 SE O a A ee E NS RE RE RR ER RD Tt 78 DESCRICAO a a a rte termite tryin nr mr a Mere ToT nnn Ter ner 78 Semeri te a aaa dan EEEE EE EOE OOE EE ENE S EEEO EEEE 79 SO oe E 7 a a na SO PGS SING INU sere ra ceia insanos aaa O sea eee A EN ees 80 SELIC ai ii a e ete tes ees AA A A OANE SONIT ETIA 80 SE O a a ag a a 81 Sianal Mma POR sus sccccssacssecssccssassuadsnccssadscssansdsnadedsaeseseaw ss seus ada DE seus ous sews E sein cu Si au anna as 81 Rin co tio od Bin Ecce RR RD RR RR RR aeseaese nn suag
139. ob o comando de um programa aplicativo composto de uma UCP uma fonte de alimenta o e uma estrutura de E S Veja controlador program vel Valor predefinido para uma vari vel utilizado em caso de n o haver defini o Testes para determina o do correto funcionamento do produto procurando os poss veis erros de um sistema Procedimento utilizado para detectar e isolar falhas tamb m o conjunto de dados usados para tal determina o que serve para a an lise e corre o de problemas Carga de programa ou configura o no CP Veja entrada sa da Memoria n o vol til que pode ser apagada eletricamente Padr o industrial n vel f sico para comunica o de dados Endere o pelo qual o CP realiza acessos a um determinado m dulo de E S Tamb m chamado de E S Dispositivos de E S de dados de um sistema No caso de CPs correspondem tipicamente a m dulos digitais ou anal gicos de entrada ou sa da que monitoram ou acionam o dispositivo controlado Estrutura de dados privada usada pelo sistema operacional para passar uma mensagem para uma tarefa Significa Erasable Programmable Read Only Memory uma mem ria somente de leitura apag vel e program vel N o perde seu conte do quando desenergizada Sigla usada para indicar erro nos LEDs Equipamento ligado a uma rede de comunica o que s transmite dados se for solicitado por outro equipamento denominado mestre Memoria n o vol til que pode ser ap
140. oteca de Suporte sssseceosssscecossseecocsseeceocseeeccosssscccossseccosssseccocsseeecosssseesosssessssssssesosssssee 41 PANTS TO be CG a coh face ae eae A A eeiebasekien okra ee abe kee ee Rokautu eee ua tnaiee aaa aoa 41 dO DOOM E e a O a nN nee on en ee ee Rea AR A 41 PGS UIC Sets OU pj ERR RR PR E E 42 DCI OPED ana atas 42 BOLD td a a a a Re na 42 Chanceler ET ana e uni ain ai Na a a A 43 EC nano Cla Oni na a E n nen nen rn re nrn rrr rt nT 43 eso si Be 0 Pee me ee RS RR See INAS ere nee 43 CT CALC RES OUR CS La a a a a 44 CHCALES SIMA PINOLE rata edad E a A 44 OAE E AAAA A 45 C a E E TR 45 D KEBO TITE O a o So do T toe oe 46 Delete RESOU CO aeoe a a a a a a a a 46 DEICLES CIA PONG marea aa 47 DOCA Rn nadando sas 47 MSC Be Bda e aso se secs UR RD RR RR DR RR RR EE 48 MUG DO pe aid oe dd a a a a a a a al e 48 E DOM Orr a ak ga se ae trek ec es rsd as 2 oes ed ae ee eee a o DR a UR 48 Enable49 End pi E E Mr E er mee Mere er ere Ree ey me me en Toe eae re 49 TS RD O RD RODO RR O budoesuseaaaeeess 49 ESCREVO ii aaa id cb dead da fe dora cd dao 49 PUBI E nas aaa aos oi Acaiaca aT Tar 50 DICE OC a a wn i oo no o a 50 DICE DUTO te a eer ner verre 51 Preece VOC OUD erinnere aca asteca lara a a a a a aaa a a a a a 51 CCC RALO BC Do ssa DE DD DD e a a a A 52 EEBS A PE AE E E E O E 52 GBD Otis Da DD a a A e UA RO ARC A RO S 53 GetBlockUsino Andie sesei a ISA UaRaUGaR IS Pesa sacana 53 GEEB OOE a a a aa 54 GBO Ec ss crocante is a S
141. pTime ponteiro para a estrutura onde ser armazenado o hor rio SetTime 58 GetTopList Descri o Sintaxe Resultado Veja tamb m HookPLC Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o Remove do in cio da lista STATUS huge GetTopList void far lpList unsigned long far lpitem onde pList ponteiro para uma lista circular veja ResetList Ipitem ponteiro para armazenar a vari vel de 1 2 ou 4 bytes removida da lista se pItem NULL OL o item removido da lista mas n o retornado para a tarefa que chamou GetTopList A fun o retorna 0 remo o ok lista n o esta vazia 1 remo o ok lista agora ficou vazia n o poss vel remover o item lista est vazia ResetList AddTopList AddBottomList GetBottomList Define a fun o de interface com chamada CHF do m dulo F 2005 no programa aplicativo do CP char huge HookPLC char fptr user int comando onde fptr user ponteiro para a fun o a ser executada sempre que no programa aplicativo do CP ao se executar uma chamada CHF ao m dulo F 2005 houver varia o em alguma das entradas da instru o CHF comando par metro da fun o de tratamento das entradas da instru o CHF F 2005 apontada por fptr user CHF CONFIGURA entrada configura ligada CHF RESET entrada reset ligada CHF CONF RES entradas configura e reset ligadas A fun o retorna 0 OK 1 esgotada a
142. para armazenar o ponteiro da rotina de atendimento anterior Esta fun o N O DEVE ser utilizada para alterar a rotina de atendimento das interrup es de erro de divis o overflow ou erro de limite SetInterrupt Altera a prioridade de uma tarefa STATUS huge ChangeTaskPriority TASKID TaskID int nPriority onde TaskID identificador da tarefa cuja prioridade deve ser alterada nPriority prioridade desejada para a tarefa 1 maior at 127 menor A fun o retorna OK INVALID TASK ID INVALID TASK PRIORITY 0 ou gt 127 CreateTask DeleteTask 43 Descri o Sintaxe Resultado Veja tamb m CreateResource Descri o Sintaxe Resultado Veja tamb m CreateSemaphore Descri o 5 Programa o Cria um pool de buffers STATUS huge CreateBufferPool void far pPoolDefinition int far lpnPoolID onde pPoolDefinition ponteiro para uma estrutura de defini o do pool que descreve o pool de buffers a ser criado como struct BufferPoolDefinition char pPool ponteiro p pool alinhado palavra unsigned int nbuffers n mero de buffers no pool unsigned int nsize tamanho de cada buffer em bytes T A rea alocada para o pool de buffers al m de estar alinhada palavra deve ter N bytes de mem ria RAM cont nua onde N nbuffers nsize 2 2 3 2 e N lt 64Kbytes lpnPoolID ponteiro para armazenar o identificador do pool criado A fun o retorna O
143. para microcomputador padr o IBM PC que geram c digo compat vel com o do processador No entanto por quest es de implementa o de seu programa executivo o desenvolvimento de programas aplicativos para o AL 2005 est limitado utiliza o do compilador Borland C vers o 3 1 14 3 Configura o Ambiente de Desenvolvimento de Aplica es para o AL 2005 O desenvolvimento de aplica es pelo usu rio para o AL 2005 deve ser feito a partir de uma das aplica es exemplos identificadas pelo arquivo de projeto DEMO PRJ fornecidas com o produto AL 2005 Uma caracter stica importante fornecida pela BIOS do AL 2005 a capacidade de depura o simb lica remota o que permite o uso do Turbo Debbuger da Borland para a depura o de programas aplicativos As aplica es desenvolvidas podem ser verificadas tomando como exemplo a aplica o exemplo depuravel identificada pelo arquivo de projeto DEMOTD PRJ Para que o processador AL 2005 obtenha acesso mem ria imagem do CP mem ria de operandos necess ria a chamada da fun o de comunica o F 2005 016 no programa do CP O programa aplicativo respons vel por atuar na janela de tempo dispombilizada pela F 2005 016 deve ser desenvolvido e carregado no processador AL 2005 A carga de aplicativos no processador AL 2005 efetuada pelo usu rio pela interface serial RS 232C de um computador PC compat vel com o uso do programa carregador AL 3860 F 2005 016
144. po unsigned char equivale a 255 a tabela completa escrita independente da quantidade de valores contidos no buffer nTimeOut intervalo de tempo m ximo em ticks de sistema que a tarefa aguardar pela escrita da tabela especificada se nTimeOut 0 a tarefa retornar imediatamente sem aguardar o encerramento da escrita e Com esta fun o poss vel escrever at 255 posi es de tabela seja ela do tipo mem ria TM decimal TD inteiro TI ou real TF e Os operandos com mais de um byte no CP AL 2003 e AL 2004 est o no formato HI LO enquanto que no AL 2005 no formato LO HI Por isso da necessidade de convers o ap s a leitura e antes da escrita de operandos tipo mem ria M e TM decimal D e TD inteiro Y l e WTD e real F e TF no CP A fun o retorna OK fun o executada com sucesso PLC NOT READY comunica o inoperante com o CP a BIOS n o est recebendo as interrup es do CP que permitem o acesso a sua mem ria prov vel que a fun o F 2005 016 n o esteje sendo chamada pelo ladder WAITING QUEUE POSITION a fila de requisi es de comunica o de 16 posi es da BIOS est lotada e esta comunica o n o p de ser atendida verificar se n o est o sendo feitas muitas leituras escritas e poucas chamadas a fun o F 2005 016 PLC TIME OUT o tempo especificado no par metro nTimeOut da fun o foi 95 Veja tamb m 5 Programa o excedido antes da BIOS conseguir realizar
145. prioridade Al m disto deve se alocar espa o suficiente para satisfazer as necessidades particulares de cada tarefa nTaskAttributes deve ser sempre zero nPriority a prioridade de execu o da tarefa A prioridade das tarefas varia de 1 maior a 127 menor Mais de uma tarefa podem ter a mesma prioridade ntimeSlice deve ser sempre zero nMail0Size a nMail3Size definem o n mero m ximo de envelopes de mensagens que podem estar em cada uma das quatro caixas postais que uma tarefa pode possuir A caixa postal O a de maior prioridade e a 3 a de menor prioridade 22 4 Sistema Operacional Um exemplo de defini o do descritor de uma tarefa aparece a seguir define PRIOR_TASK 64 Prioridade da tarefa a define TAMANHO PILHA 1200 Tamanho da pilha m ltiplo de 16 unsigned int Pilha TAMANHO PILHA Pilha da tarefa void huge TrataAlnetl void Tarefa A static TASKDESCR DescrAlnetl Descri o da estrutura TrataAlnetl Ponto de entrada Ao NT Nome da tarefa 4 caractere Pilha TAMANHO_PILHA Ponteiro para o fim da pilha TAMANHO_PILHA sizeof int Tamanho da pilha em bytes sy 0 Atributos da tarefa PRIOR_TASK Prioridade da tarefa 0 Tempo sempre zero EA 0 0 0 0 Tamanho das caixas postais Pe Quando uma tarefa criada dinamicamente o sistema operacional retorna o identificador da tarefa criada para o criador E responsabilidade da aplica o m
146. processador A fun o retorna o tamanho da tabela de configura o associada ao processador especificado HookPLC GetIDCoproc GetNumTab Obt m o ponteiro para o descritor de uma tarefa STATUS huge GetTaskDescriptor TASKID TaskID TASKDESCR far far IplpDescr onde TaskID identificador da tarefa que se deseja obter o ponteiro para o descritor IplpDescr ponteiro para armazenar o ponteiro para o descritor da tarefa A fun o retorna OK 57 Observacoes Veja tamb m GetTaskID Descri o Sintaxe Resultado Observa es Veja tamb m GetTaskStatus Descri o Sintaxe Resultado GetTime Descri o Sintaxe Veja tamb m 5 Programa o INVALID TASK ID e As interrup es n o s o alteradas e Se TasklD inv lido retornado o valor NULL OL em IplpDescr GetTaskID LocateTask DeleteTask Obt m o identificador da tarefa corrente TASKID huge GetTaskID void A fun o retorna o identificador da tarefa correntemente em execu o e As interrup es n o s o alteradas GetTaskDescriptor LocateTask Obt m o estado de uma tarefa STATUS huge GetTaskStatus TASKID TaskID TASKSTATUS far pTaskStatus onde TaskID identificador da tarefa que se deseja obter o estado lpTaskStatus ponteiro para armazenar o estado da tarefa A fun o retorna OK INVALID TASK ID Leitura do rel gio interno da BIOS void huge GetTime BIOSTIME far lpTime onde I
147. que n chamadas a FreeBuffer sejam executadas GetBuffer FreeBuffer Acrescenta no inicio da lista STATUS huge AddTopList void far lpList unsigned long InItem onde pList ponteiro para uma lista circular veja ResetList InItem vari vel de 1 2 ou 4 bytes a ser acrescentada a lista A fun o retorna 0 Inser o ok lista n o est cheia 1 inser o ok lista agora ficou cheia nao possivel inserir item lista esta cheia ResetList AddBottomList GetTopList GetBottomList Inicia o atendimento de uma interrup o void huge Beginlnterrupt void 42 Resultado Veja tamb m 5 Programa o O supervisor de interrup es salva todos os registradores na pilha do chamador Se uma tarefa acabou de ser interrompida o sistema operacional chaveia para sua pilha de interrup o antes de retornar para o chamador de Beginlnterrupt EndInterrupt Setlnterrupt ChangelnterruptHandler Descri o Sintaxe Resultado Veja tamb m ChangeTaskPriority Descri o Sintaxe Resultado Veja tamb m CreateBufferPool Troca a rotina de atendimento de uma dada interrup o void huge ChangelnterruptHandler int nInterrupt void interrupt far pNewProc void interrupt far far lplpOldProc onde ninterrupt n mero da interrup o do microprocessador 80186 da Intel 0 255 lpNewProc ponteiro para a nova rotina de atendimento da interrup o plpOldProc ponteiro
148. quisitado mas os bytes recebidos n o s o retirados da fila de recep o e pnSize recebe o n mero de bytes efetivamente devolvidos e a fun o retorna imediatamente SERIAL OK A fun o retorna SERIAL OK recep o de bloco de bytes sem problemas SERIAL INVALID CHANNEL erro de identificador de canal inv lido SERIAL UART NOT CONFIG erro de canal n o inicializado SERIAL RX TIME OUT ERROR erro de timeout esgotado SERIAL PARITY ERROR erro de paridade SERIAL OVERRUN ERROR erro de overrun SERIAL FRAMING ERROR erro de framming combina o OR de qualquer um dos tr s ltimos valores e O tamanho do buffer de recepc o de 128 bytes para vers es at a 2 34 e de 512 bytes para as vers es 2 35 ou superiores Dados recebidos pela serial com o buffer lotado ser o perdidos SerialConfig RXByte TXByte TXBlock Recebe um byte do canal serial STATUS huge RXByte char Channel TIME InTimeOutRX onde Channel identificador do canal utilizado para receber o byte COM_A ou COM_B InTimeOutRX intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela recep o do byte se nTimeOutRX 0 trata se de uma consulta fila de recep o serial ver Resultado 75 Resultado Observa o Veja tamb m Segment Descri o Sintaxe Resultado Observa es Veja tamb m 5 Programa o A fun o RXByte retorna um valor inteiro de 16 bits Os 8 bits mais sign
149. r Placa Interface de Canais de Comunica o comunica o A e B Figura 2 1 Painel do Processador AL 2005 10 2 Descri o Tecnica Caracter sticas T cnicas Caracter sticas Gerais Tipo de m dulo Processador Mem ria RAM Mem ria Flash para 256 Kb 64 Kb ocupados pela BIOS aplicativos Carga de programas Via canal serial atrav s do carregador AL 3860 aplicativos no processador Sistema operacional dos aplicativos Comunica o com o CP Acesso aos operandos do CP 16 bits Barramentos de dados internos Velocidade canal serial Com apenas um canal serial 38400 bauds Com dois canais 19200 bauds Tempo m ximo para Com uma placa AL 2405 150uS desligamento do sinal de RTS Com duas placas AL 2405 950uS cada AL 2005 Taxa de transfer ncia de Melhor que 1 Mbyte s dados com mem ria imagem da UCP Portas Seriais COM1 e COM2 RS232C ou RS 485 conforme interface de comunica o AL 2405 Consumo 850 mA O 5 Vcc considerar consumo de placas adicionais conectadas ao Processador AL 2005 N vel de severidade de Conforme a norma IEC 1131 n vel 3 descargas eletrost ticas ESD Imunidade a ru do el trico tipo Conforme norma IEC1131 n vel de severidade A e IEEE onda oscilat ria C37 90 1 SWC Protecao contra choque Conforme norma IEC 536 1976 classe quando instalado em el trico bastidor Sem embalagem 500 g Com embalagem 700 g Umidade relativa do
150. rado na fila de transmiss o mas fun o teve de aguardar por posi es livres SERIAL INVALID CHANNEL identificador de canal inv lido SERIAL UART NOT CONFIG canal n o inicializado SERIAL TX TIME OUT ERROR timeout de transmiss o e O tamanho do buffer de transmiss o de 1024 bytes SerialConfig RXByte TXByte RXBlock Transmite um byte pelo canal serial STATUS huge TXByte char Channel char Byte BOOL Wait onde Channel identificador do canal utilizado para transmitir o byte COM Aou COM B Byte byte a ser transmitido Wait indica se a fun o deve retornar imediatamente ap s a chamada FALSE 0 aguardar o t rmino da transmiss o do byte TRUE 1 ou aguardar por um determinado tempo gt 2 especificado em ticks do sistema funcionando como um tempo de timeout de transmiss o A fun o retorna SERIAL OK transmiss o de byte sem problemas SERIAL INVALID CHANNEL erro de identificador de canal inv lido SERIAL UART NOT CONFIG erro de canal n o inicializado SERIAL TX QUEUE FULL byte foi enfileirado na fila de transmiss o mas fun o teve de aguardar por posi o livre SERIAL TX TIME OUT ERROR timeout de transmiss o e O tamanho do buffer de transmiss o de 1024 bytes SerialConfig RXByte RXBlock TXBlock 84 Wait Descri o Sintaxe Resultado Observa es Veja tamb m WaitEvent Descri o Sintaxe Resultado 5 Programa o Aguarda incondicionalme
151. retamente relacionados com o controle de tarefas s o os seguintes 20 Controle ChangeTaskPriority de tarefas CreateTask DeleteTask EndTask GetTaskDescriptor GetTaskID GetTaskStatus KillTask LocateTask ResetPending Wake ResetTaskWake StartTask StopTask Wait 4 Sistema Operacional Altera a prioridade de uma tarefa Cria uma nova tarefa Remove uma tarefa do sistema operacional Termina a execucao da tarefa corrente Obt m o ponteiro para o descritor de uma tarefa Obt m o identificador da tarefa corrente Obt m o estado de uma tarefa Mata uma tarefa Localiza uma tarefa atrav s de seu nome Reseta uma requisi o pendente para acordar a tarefa corrente Reseta uma requisi o pendente para acordar uma tarefa Dispara a execu o de uma tarefa Para termina a execu o de uma tarefa Aguarda incondicionalmente at ser acordada WaitTime WakeCallingTask WakeTask Aguarda um intervalo de tempo delay Acorda a tarefa que enviou uma mensagem para a tarefa corrente Acorda uma tarefa no estado de espera Cria o de uma Tarefa As tarefas podem ser pr definidas como no caso de um programa aplicativo carregado no processador AL 2005 ou podem ser criadas dinamicamente por outras tarefas durante sua execu o O sistema operacional AMX do AL 2005 suporta no m ximo 10 tarefas simult neas sendo que destas 2 tarefas s o reservadas para a pr pria BIOS do AL 2005 a primeira tarefa a pr pria
152. rso ocorrer um chaveamento de tarefas dando tarefa de maior prioridade 31 Eventos 4 Sistema Operacional uma oportunidade imediata de utilizar o recurso Caso a tarefa para a qual se concede o recurso for de menor prioridade do que a tarefa que o esta liberando a nova proprietaria tera de aguardar at que a tarefa correntemente em execu o renuncie ao controle do processador Se expirar o intervalo de timeout especificado pela tarefa enquanto a mesma estiver aguardando por um sem foro o gerenciador de sem foros remove a da fila do sem foro e permite com que ela retome sua execu o com uma indica o de timeout Quando n o se necessitar mais de um sem foro o mesmo pode ser removido DeleteSemaphore O gerenciador de eventos fornece um m todo conveniente para sincronizar uma ou mais tarefas a eventos detectados por outras tarefas Uma tarefa pode requisitar ao gerenciador de eventos que suspenda sua opera o at que um entre um conjunto de eventos ocorra Alternativamente a tarefa pode pedir para esperar at que um conjunto completo de eventos ocorra Opcionalmente a tarefa pode especificar um intervalo de timeout limitando o tempo que ficar aguardando pelo evento Mais de uma tarefa podem estar aguardando por um evento ou conjunto de eventos Quando uma tarefa detecta a ocorr ncia de um evento sinaliza o evento atrav s de uma chamada ao gerenciador de eventos O gerenciador de eventos verifica se o evento resul
153. secssssecosssesssssessse 7 Mis pecia Visuales eaa a a a Eae 7 SPORE L EN OE E A AA A 7 Mensagens de Advert ncia Utilizadas neste Manual esssseecssceccssccccsececsseeccssecccseccccsececssececsseeecsssecssseeosoe 8 2 DESCRI O TECNICA eannan aa e raae a rarae e a Ea E E eCa AEE EE E asia gs 10 Descricao do AIM aoa tra eae sisson aa sais a ca ia Nr N NSE ENE r I E Er E ana o irana i kanana 10 Caracteristicas TeCNICAS a ar iE ALEE EEOSE EEEE EE EE EEEE E at 11 Car hs aE e e o a renee veer er ete 1 Arquitetura do Processador Multitarefa AL 2005 ssccccsssccssssccsssscccssscccssssccssssccsssccesscccsssscsessscoess 12 Caractensticasdo Equipamento ssa sea SECR aa a aa acne 12 Dimens es Fisicas sssscccccccsssssssssccccccccccssssssccccccccccsssscsseccccsccesssssssccccssscesssscsscccescssssssssssscessssessssosees 12 Dados para OMA acesa Si SRD Sa RAS Dad SO ST a SR OA A Ra 13 Metis Lite rane s cons a da a a a E DD RD eae 13 Cod do PIOQNTo ara aaa E RR aenr min nrnrnrn re 13 Produtos Relacionados ass nos ira Sead caadanocaaaiasadana asa dasadasada EEE TE DE asas adaca duas sala daLadaGatnos 13 3 CONFICURA O antena dese dese iNas des aduan dna ns dad aaa diana adro NU pena nda nene adiada 14 Ambiente de Desenvolvimento de Aplica es para 0 AL 2005 ssccccsssssccssssssccssssssccccsssccssssssccseeeees 15 F 2005 016 Fun o de Comunica o CP com o AL 2005 cccccsssssccsssssccccsssscccssssccscsssc
154. segundo pode ser visto a seguir RR 000 ms 250 ms 000 ms 250 ms Outros Servi os O sistema operacional fornece ainda os seguintes servi os de natureza geral que visam simplificar a programa o de aplica es em tempo real no microprocessador 80186 da Intel Tratamento de ponto flutuante Inicializa o tratamento de aritm tica em ponto flutuante InByte L byte de uma porta de entrada InWord L palavra de uma porta de entrada OutByte Escreve um byte em uma porta de sa da Tratamento de fun es OutWord Escreve uma palavra em uma porta de sa da de baixo n vel Offset Obt m o offset de um ponteiro Segment Obt m o segmento de um ponteiro SetOffset Seta o offset de um ponteiro SetSegme Seta o segmento de um ponteiro nt 38 4 Sistema Operacional Disable Desabilita as interrup es Enable Habilita as interrup es 39 5 Programa o 5 Programa o Neste cap tulo apresentado um guia de refer ncia das fun es da biblioteca de suporte ao processador AL 2005 As principais fun es dispon veis na API do AL 2005 j referenciadas no cap tulo 4 Sistema Operacional correspondem e fun es para confec o de aplicativos multitarefa a BIOS do AL 2005 um sistema operacional multitarefa que fornece uma s rie de servi os aos aplicativos cria o de tarefas espera de eventos espera de recursos sem foros identifica o de tarefas etc e fun es de comunica o com acesso
155. sistema que a tarefa aguardar pela ocorr ncia do evento especificado se nTimeOut 0 a tarefa aguardara indefinidamente As interrup es sao habilitadas A fun o retorna OK TIME OUT 85 Observacoes Veja tamb m WaitSemaphore Descri o Sintaxe Resultado Observa es Veja tamb m WaitTime Descri o Sintaxe 5 Programa o e Seos eventos do grupo corresponderem ao crit rio especificado no momento da chamada de WaitEvent a tarefa corrente continua a execu o imediatamente sem esperar GetEventGroup FreeEventGroup SignalEvent Aguarda por um sem foro STATUS huge WaitSemaphore int far lpSCB unsigned int nInterval int nPriority onde IpSCB ponteiro para a rea de controle do sem foro inicializada por CreateSemaphore ninterval intervalo de tempo maximo em ticks de sistema que a tarefa aguardar pela libera o do sem foro para seu uso se ninterval 0 a tarefa aguardar indefinidamente nPriority prioridade com a qual a tarefa deseja aguardar pelo sem foro O a maior e 255 a menor A fun o retorna OK NO SUCH SEMAPHORE lpSCB n o foi inicializado por CreateSemaphore SEMAPHORE WAIT QUEUE FULL TIME OUT e O gerenciador de sem foros usa as fun es Wait e WakeTask para aguardar por um sem foro Se qualquer tarefa do sistema indiscriminadamente chamar WakeTask para acordar a tarefa que est aguardando pelo sem foro esta tarefa retomar sua execu
156. tamanho de n s 8 bytes onde n o n mero de slots e s o tamanho do slot 1 2 ou 4 O gerenciador de listas cria a lista na rea de mem ria designada e torna a vazia Pode se ent o acrescentar e remover elementos do tamanho definido no in cio e ou no final da lista utilizando as 35 4 Sistema Operacional outras fun es do gerenciador de listas AddBottomList AddTopList GetBottomList GetTopList Estas fun es devolvem o estado da lista a cada chamada Quando acrescentando elementos lista pode se saber se a lista j est cheia ou se acabou de ficar cheia com a Inser o do elemento Quando removendo elementos pode se saber se n o h nenhum elemento na lista ou se a lista acabou de ficar vazia com a retirada do elemento Listas podem ser criadas din mica ou estaticamente O exemplo a seguir ilustra listas est ticas de bytes palavras e palavras duplas NSLOT definido como o n mero de slots em cada lista typedef char SLOTI slot de I byte typedef int SLOT2 slot de 2 bytes typedef long SLOT4 slot de 4 bytes define NSLOT 64 struct int header 4 SLOTI slots NSLOT bytelist lista circular com NSLOTS bytes de amp bits struct int header 4 SLOT slots NSLOT wordlist lista circular com NSLOTS palavras de 16 bits struct int header 4 SLOT4 slots NSLOT ptrlist lista circular com NSLOTS ponteiros de 32 bits Entrada Saida Comunica o Seria
157. tar o intervalo de tempo com o qual inicializado no seu disparo e um par metro opcional de 32 bits dependente da aplica o O per odo do temporizador especificado em ticks do sistema determina se o mesmo peri dico ou n o Se o per odo for zero o temporizador funciona uma nica vez cada vez que for disparado permanecendo inativo at ser novamente disparado Se o per odo for diferente de zero o temporizador peri dico Sempre que esgota o Intervalo de tempo programado em um temporizador o sistema operacional executa a fun o de temporiza o associada ao mesmo na sua cria o Esta fun o recebe como par metros o identificador do temporizador e o par metro de 32 bits pr definido na cria o do temporizador Quando o temporizador criado o sistema operacional o coloca em um estado inativo permanecendo neste estado at ser disparado por uma tarefa StartStopTimer que escreve seu valor inicial em ticks do sistema Por conveni ncia a fun o TimeConvert pode ser usada para converter um intervalo especificado em milisegundos para o n mero correspondente de ticks do sistema Os temporizadores s o contadores decrementais O sistema operacional decrementa contadores ativos n o zero at que cheguem a zero Quando um temporizador encerra sua contagem o sistema chama a fun o de temporiza o associada Temporizadores n o peri dicos permanecem Inativos a menos que sejam novamente disparados pela fun
158. teaseosascnasancuasaics 82 ET es Que PORN he hte E E JOD DDR RR DO asim sigs O RO TR RAR RA RR A IR RR 82 SOP LaS SRR e E EE E EREE EOE a Ee 82 TECON e E A E E E RR 83 TABIO o a Te PER Se nt ea a PP eR ee ee da a BB 83 SATER aan a GR Re DR RR oauaaeten ia eetanese 84 Wait 85 NO GEE NONO ras E e Ne gt Di gE ee es Pee 85 W alt SMa PMOL RD RR RO POR ER 0 RR ER RR RR 86 E UW aerate act RR AR RA RR RR e eau aulls 86 Wako Ge no Bec hs iii renee nee ena E 87 IN aC AS E cassa sad and ida ad na id aaa didi da dead end is and E casted and au dc dida de e 87 N TEOD douta E RUE uae oes 88 VTC 9 ate REU dese ore URDU naga pag aad yng a ang UR aaa ERR UR UR A 89 MICRO aiii aa Dao as 91 NILO DD osso ag ne nen Do a tr Teeny ner ner rine rer ne 92 Mine PADS assa aa ace e O o a a 93 WY Ee ADS Wap sdesaconcdaiadosacotedakacosacanedaaatonadancdnacdoandaccdnandequdecednasdeqndecednaadeusdaacdsaadeusdaasdsaatansdansienatsnguansias 94 SH LL ED amp eee Cen eS A SO RSRS aa NES RG RETO SS CRC RA RS E RR Teed 95 6 DESENVOLVENDO UMA APLICA O PARA O AU 2005 vissecssccecevccscatecssccecccenccnsscesececatencesssschecencees 97 Instala o do Ambiente de Desenvolvimento ccccssssccsssssscccsssssccccsssscccssssccccssscccccsssscssesssccssssscseees 97 TOI CCOLIO NG E BO 1 SD RE ARA DAR ea 97 DIO O a E e in mclemuene nee sete 97 Di tono DO titia a a a 97 PEONES e ee 97 Direto o SUPORTE YE EEA EE ENEE R EE nate EEE EEE O E Do Eea 97 Droo TD DOS a ea en
159. tejam correntemente em uso O conteudo dos buffers sera alterado ResetBufferPool Inicializa uma lista circular void huge ResetList void far lpList int SlotSize int nSlots onde pList ponteiro para a rea de memoria onde a lista circular ser armazenada como por exemplo a seguinte estrutura est tica typedef char SLOTI slot de I byte define NSLOT 64 struct int header 4 SLOTI slots NSLOT bytelist lista com NSLOTS bytes de 8 bits SlotSize tamanho de cada slot da lista 1 2 ou 4 bytes nSlots numero de slots da lista 1 a 16380 slots 73 Veja tamb m ResetPendingWake Descri o Sintaxe Resultado Observa es Veja tamb m ResetTaskWake Descri o Sintaxe Resultado Observa es Veja tamb m RXBlock Descri o Sintaxe 5 Programa o AddTopList AddBottomList GetTopList GetBottomList Reseta uma requisi o pendente para acordar a tarefa corrente void huge ResetPending Wake void Esta fun o s afeta a tarefa corrente e As interrup es n o s o alteradas Wait WaitTime WakeTask ResetTaskWake Reseta uma requisi o pendente para acordar uma tarefa STATUS huge ResetTaskWake TASKID TaskID onde TaskID identificador da tarefa cuja requisi o para ser acordada que se encontra pendente deve ser descartada A fun o retorna OK INVALID TASK ID e As interrup es n o s o alteradas Wait WaitTime WakeTask Reset
160. tilhada Deve se utilizar no programa do CP uma ou mais chamadas a uma fun o de comunica o com o Processador Multitarefa AL 2005 m dulo F 2005 016 Este m dulo fun o permite que o AL 2005 obtenha acesso a mem ria imagem dos operandos do CP podendo realizar a leitura ou escrita dos operandos do CP Atrav s da conex o de um microcomputador padr o IBM PC ao Processador Multitarefa AL 2005 pode se realizar carga e depura o de programas aplicativos Para tanto deve se utilizar o carregador AL 3860 fornecido no CD que acompanha o produto e o canal serial dedicado para carga de programa no Processador Multitarefa AL 2005 Aplica es do Processador Multitarefa AL 2005 O Processador Multitarefa AL 2005 RTMP pode ser utilizado para realizar tarefas de alta complexidade liberando o processador principal do CP para realizar suas tarefas convencionais tais como varredura e acionamento permitindo uma distribui o mais equilibrada da carga de processamento entre os dois processadores O processador AL 2005 suporta a escrita de aplica es segiienciais tradicionais ou aplica es multitarefa Esta ltima permite um maior aproveitamento do tempo do processador uma vez que qualquer tarefa que n o necessita da UCP em um determinado momento pode libera la para outra tarefa ou aplica o Este manual inclui a descri o do ambiente de desenvolvimento para aplica es no AL 2005 bem como fornece uma refer ncia A Z das fun es
161. tocolos ou meio f sicos Nome associado a um operando ou a uma l gica que permite uma identifica o resumida de seu conte do M dulo de programa executado pelo sistema operacional de tal maneira que parece que todas as tarefas s o executadas simultaneamente Prioridade na qual uma tarefa executada Tarefas que possuem a mesma prioridade s o ordenadas pela ordem na qual foram criadas Inteiro sem sinal atribu do a uma tarefa quando a mesma criada e que serve como seu identificador unico Facilidade fornecida pelo sistema operacional que permite a medi o de intervalos de tempo precisos Inteiro sem sinal atribu do a um temporizador pelo sistema operacional e que serve como seu identificador nico Interrup o c clica gerada por um rel gio de hardware M ltiplo do tick de hardware de onde derivada a unidade b sica de tempo do sistema operacional Todos os intervalos de tempo do sistema s o medidos em m ltiplos do tick do sistema Tempo preestabelecido m ximo para que uma comunica o seja completada Se for excedido procedimentos de retentiva ou diagn stico ser o ativados M todo de compartilhamento de UCP por intervalos de tempo Elemento que possui dois estados est veis trocados alternadamente a cada ativa o uma marca que indica quem o mestre do barramento no momento Sigla usada para indicar transmiss o serial Sigla para unidade central de processamento Controla o fluxo de informa
162. tou em uma combina o de eventos para a qual uma ou mais tarefas est o aguardando Se isto ocorrer as tarefas que estiverem aguardando s o liberadas para retomar sua execu o O gerenciador de eventos fornece o seguinte conjunto de servi os Gerenciamento GetEventGroup Obt m o uso de um grupo de eventos de eventos WaitEvent Aguarda evento s em um grupo timeout opcional SignalEvent Sinaliza um ou mais eventos em um grupo FreeEventGroup Libera um grupo de eventos Cada grupo de eventos inclui 16 flags de evento Cada evento de um grupo representado por um flag booleano que constitui o estado do evento Os 16 flags booleanos de evento s o representados em uma palavra de 16 bits Recomenda se que os estados booleanos 0 e 1 sejam usados como indicadores de falso e verdadeiro respectivamente O estado zero representa portanto a aus ncia do evento O estado um Indica que o evento ocorreu Antes de poder ser utilizado um grupo de eventos deve ser adquirido por uma tarefa GetEventGroup O gerenciador de eventos aloca um grupo de eventos e retorna um identificador do grupo para a tarefa chamadora que deve guard lo para futuras refer ncias Ao adquirir um grupo de eventos a tarefa deve especificar o valor inicial que cada um dos 16 eventos de um grupo devem assumir A atribui o de eventos espec ficos a cada um dos flags de um grupo de eventos fica a crit rio do projetista Uma vez adquirido um grupo de eventos pode s
163. ue temporariamente atrav s da chamada de uma fun o do sistema operacional A tarefa termina ao retornar para o escalonador do sistema operacional que volta a procurar a pr xima tarefa de maior prioridade pronta a executar dando lhe o controle do processador O sistema operacional oferece um conjunto de servi os que podem ser invocados pela tarefa atrav s de chamadas de fun es que constituem a chamada biblioteca de suporte do sistema Uma tarefa pode por exemplo enviar uma mensagem para outra tarefa aguardar por um evento ou por um intervalo de tempo Se a tarefa desejar aguardar um evento o servi o correspondente do sistema operacional suspender a tarefa e requisitar ao escalonador a execu o da pr xima tarefa com maior prioridade pronta a executar O sistema operacional atua como chaveador de contextos supervisionando a execu o ordenada das tarefas Emprega um algoritmo de escalonamento preemptivo e comandado por prioridade que assegura que a tarefa de maior prioridade que esteja pronta para executar um trabalho til sempre ter o controle do processador O sistema far o chaveamento de tarefas se receber uma requisi o da tarefa em execu o para realizar uma opera o que invoca uma tarefa de maior prioridade A tarefa em execu o pode por exemplo requisitar ao sistema operacional o disparo de uma tarefa de maior prioridade atrav s do envio de uma mensagem para a mesma Os servi os do sistema operacional di
164. uma outra tarefa usando as fun es SendMessage ou SendMessage Wait Uma mensagem cont m no m ximo 12 bytes totalmente dependentes da aplica o 28 4 Sistema Operacional Exemplo char E int 1 int iarray 6 char carray 12 struct msg char ml char m2 int m3 long m4 msga As seguintes chamadas enviar o as mensagens especificadas para a tarefa cujo identificador taskid com uma prioridade priority SendMessage taskid priority amp c Envia c SendMessage taskid priority amp i Envia i SendMessage taskid priority iarray Envia iarray SendMessage taskid priority carray Envia carray 74 SendMessage taskid priority amp msga Envia msga A O chamador especifica a prioridade priority com a qual a mensagem deve ser enviada O n vel da prioridade O maior 1 2 ou 3 menor determina a caixa postal na qual a tarefa chamada receber a mensagem O chamador identifica tamb m a tarefa sendo chamada especificando o seu identificador taskid O chamador pode suspender sua execu o at que a tarefa chamada tenha sido executada em resposta requisi o usando SendMessage Wait ao inv s de SendMessage O sistema operacional usa envelopes de mensagens para a passagem de mensagens O sistema obt m um ponteiro para um envelope livre move os par metros da mensagem para o envelope e insere o ponteiro na caixa postal da tarefa destino no n vel de prioridade especif
165. vo de configura o RELOCA CFG e gera o arquivo XDEMOTD EXE previamente configurado na op o Options Transfer Antes de iniciar a depura o do aplicativo de demonstra o deve se carregar no AL 2005 o programa depurador remoto TD2005 EXE a ser utilizado em conjunto com o Turbo Debugger Para tanto tecle SHIFT F9 que corresponde ao menu de sistema CARREGADOR AL 3860 No programa de carga AL3860 1 Selecione o canal de comunica o a ser utilizado no bot o Porta Serial A figura 6 17 mostra o menu Selecione a Porta Serial Serial com Cancel Figura 6 17 Sele o do Canal Serial 2 Coloque o AL 2005 em estado programa o 3 Se for o caso escolha o comando APAGA que apaga todos os m dulos carregados na mem ria Flash EPROM do AL 2005 A figura 6 18 mostra a tela do carregador 4 AL3860 Carregador do AL 2005 TD2005 EXE Selecionar ID Nome Codigo Dados Data Hora Quantidade de Aplica es Enviar RETO Lancelar Bytes Usados T T Programa o Bytes Livres 196640 197008 Elegrama ao Bytes Totais 196640 197008 Execu o B pagar BIOS AL 2005 Versao 27 35 Jul 01 2003 Class code recomendado DxOFE6 Diret rio a Forta Seral Sobre Fechar Figura 6 18 Modo Programa o do AL 2005 110 6 Desenvolvendo uma Aplica o para o AL 2005 4 Selecione e envie o arquivo TD2005 EXE para o AL 2005 2 AL3860 Carrega
166. za a fun o StartTask para disparar sua execu o Quando o programa aplicativo inicia sua execu o o mesmo pode criar novas tarefas atrav s da fun o CreateTask como explicado na se o anterior Qualquer tarefa em execu o pode requisitar a execu o de outra tarefa do sistema utilizando uma entre tr s fun es StartTask dispara a execu o da outra tarefa sem passar nenhuma mensagem SendMessage envia uma mensagem para a outra tarefa SendMessage Wait envia uma mensagem para a outra tarefa e aguarda que a mesma seja recebida e processada Tarefas que n o recebem mensagens e que s o portanto iniciadas chamando se StartTask devem ser escritas como uma fun o sem par metros formais Por exemplo uma tarefa que se encerra imediatamente seria void far taskl void j 4 Sistema Operacional Tarefas que devem receber uma mensagem disparadas por SendMessage ou SendMessageWait sao escritas como fun es que recebem par metros Por exemplo uma fun o que recebe um inteiro como mensagem e ent o encerra apareceria como void far task2 int message i j As chamadas das fun es SendMessage e SendMessage Wait passam como par metro uma mensagem que movida para um envelope Este envelope inserido ent o na caixa postal da tarefa destino no n vel de prioridade indicado pela chamada Uma tarefa que executa uma chamada fun o SendMessageWait suspende a si mesma entra em estado de espera
Download Pdf Manuals
Related Search
Related Contents
KC44G。B充電ロロ 取扱説明書 Descarga - Inicio Manual del utilizador Manuel d`installation Vr201 Aroua Kodak Capture Pro, 1Y, 1u MANUAL DE INSTRUCCIONES BlackBerry Curve 9380 Smartphone - 7.0 Copyright © All rights reserved.
Failed to retrieve file