elipsesoftware Nome do arquivo: ALTUSTCPIP.DLL Fabricante: Altus (http://www.altus.com.br) Equipamentos: UCPs Altus conectadas s interfaces AL-3405, PO7091, WebGates PO9900 ou PO9901 Protocolo: ALNET II via TCP/IP Verso: 1.14 ltima atualizao: TESTE Introduo O driver ALTUSTCPIP efetua a comunicao entre sistemas Elipse e qualquer UCP Altus conectada rede Ethernet atravs das interfaces AL-3405, PO7091 ou dos WebGates PO9900 ou PO9901. Este driver tambm tem a possibilidade de receber e tratar mensagens no-solicitadas (MNS), isto , decodificar comandos enviados atravs de instrues ECR/ECH pelo programa aplicativo que executa no CP. Preparando o equipamento Parmetros [P] de configurao do driver P1Deixar em zero. No utilizado. P2Deixar em zero. Em desuso. P3Deixar em zero. Em desuso. P4Nmero de canais de comunicao read-ahead com cada CP.
Os parmetros P2 e P3 esto em desuso e indicavam respectivamente quantas retentativas internas de leitura e escrita sero efetuadas para cada tentativa de comunicao sem sucesso. Por exemplo, caso P3 seja 1, se uma escrita vier a falhar o driver ir reenviar o comando de escrita mais uma vez ao CP. O parmetro P4 indica quantas tarefas adicionais de comunicao (threads de read-ahead) sero criadas para efetuarem a comunicao com cada CP. Durante a execuo, o driver aprende quais so os tags que o aplicativo est lendo, disparando leituras dos tags nestes threads de read-ahead, de forma que o valor do tag j esteja disponvel quando a prxima leitura do tag for requisitada ao driver. NOTA: recomendado o nmero mximo de 4 canais. Consulte a seo Threads de Read-ahead para maiores informaes. ALTUS TCP/IP driver 2 Para configurar os demais parmetros do driver ALTUSTCPIP, aparecer a seguinte janela de configuraes atravs dos botes Outros parmetros... ou Extra..., como segue:
Figura 1: Configurao dos parmetros do driver A janela acima separada em trs grandes grupos: Itens da opo Other Settings Campo Descrio Time-OutDefine o tempo em milissegundos que o driver aguarda por uma resposta do CP uma pergunta feita pelo driver. Handle MNSDefine se o driver ir tratar mensagens no-solicitadas (MNS), porm esta opo s habilitada quando a opo Use ALNET II est ligada. Share TagsSe desmarcado, cria um endereamento de memria para cada conexo de mensagens no-solicitadas (MNS), caso contrrio todas as MNS sero guardadas em uma mesma tabela interna. Esta opo muito til quando utilizada com CPs redundantes. Computer IPEndereo IP do computador. Somente utilizado quando trabalha com mensagens no-solicitadas (MNS). Computer PortPorta IP do computador. Somente utilizado quando trabalha com mensagens no-solicitadas (MNS). Use ALNET IIPor definio a rede de CPs via TCP/IP utiliza o protocolo ALNET II, porm em algumas arquiteturas pode-se querer comunicar ALNET I via TCP/IP, portanto para estes casos deve-se desmarcar esta opo.
ALTUS TCP/IP driver 3 Itens da opo Connections Campo Descrio Add Adiciona uma nova conexo de CP. Deve-se informar IP e porta. Este novo CP adicionado lista de CPs e seu nmero da conexo mostrado na frente do IP e da porta. Este nmero de conexo utilizado nos parmetros N1/B1. Se for definido um IP de backup, seu valor ser mostrado aps o IP principal, separado por uma vrgula. Se for habilitada a troca de IP automtica ser adicionado o valor 1 aps o IP de backup, separado por uma vrgula. Edit Permite editar os parmetros de uma conexo de CP existente. Remove Remove a conexo selecionada na lista de conexes.
Itens da opo LOG File Campo Descrio File path (client)Nome do arquivo de logs onde sero gravadas as comunicaes com os CPs configurados na lista de CPs. Ser criado um arquivo para cada thread de comunicao. O nome configurado nesse parmetro define o nome do arquivo de log do thread principal de cada escravo. Os threads de read-ahead criaro cada um um arquivo com o mesmo nome do principal mais um underscore e o nmero de ordem do thread, comeando em 1. Todos os threads de mesma ordem de cada escravo compartilham o mesmo arquivo. File path (MNS)Nome do arquivo de logs para mensagens no-solicitadas (MNS). File typeDefine o tipo de log a ser criado: No LOG: no cria os arquivos de log; Create new: cria um arquivo novo (apagando o antigo) cada vez que o driver reiniciado; Append data: o arquivo de log sempre cresce indefinidamente mesmo que o driver seja reiniciado. Log ALNET I Telegrams Escreve no arquivo de log os telegramas ALNET I. Log ALNET II Telegrams Escreve no arquivo de log os telegramas ALNET II.
Atravs dos botes da Janela de configuraes extras, possvel acessar tambm as seguintes janelas de configurao:
Figura 2: Configurao das opes de reconexo automtica Itens de Reconnection settings Campo Descrio Retry failed connections afterDefine de quanto em quanto tempo o driver deve reiniciar as tentativas de reconexo. Number of consecutive connection reattempts Nmero de retentativas de conexo sucessivas. Esta opo configura o nmero de operaes de leitura ou escrita em tags de CLP que tenha sido desconectado que ainda tentaro estabelecer conexo. Cada uma dessas operaes, se no tiver sucesso na reconexo, retornar erro aps o timeout configurado. Aps o nmero definido de retentativas, novas operaes em tags do CLP retornaro erro imediatamente, sem tentativa de reconexo, at que expire o intervalo de tempo configurado, aps o qual a seqncia de retentativas recomea.
ALTUS TCP/IP driver 4
Figura 3: Configurao dos parmetros da conexo Itens da janela Add Remote Settings Campo Descrio PortPorta IP do CP (normalmente 405). Main IPDefine o IP do CP principal. Customize max. frame size Esta opo configura o tamanho mximo da rea de dados de cada frame de comunicao. Se alguma comunicao (normalmente uma operao de escrita ou leitura de blocos) exigir uma rea de dados maior que este limite, o driver automaticamente dividir a operao em quantas forem necessrias de forma a respeitar o limite de bytes de dados para cada frame isolado. A primeira opo a default, equivalendo a um frame com no mximo 220 bytes de dados. A segunda, usada para WebGates, limita a rea de dados em 128 bytes. Em casos mais raros, pode ser necessrio personalizar este valor, usando a terceira opo. ATENO: Esta opo de configurao deve ser alterada apenas se absolutamente necessrio, pois a escolha de um valor inapropriado pode ter um srio impacto, em termos de perda de desempenho. Em caso de dvidas, deixe na opo default ou contate o suporte do fabricante. Use Backup IP address Quando esta opo habilitada possvel especificar um IP secundrio, de um CP redundante. Notar que ao desmarcar a opo o IP de redundncia anteriormente configurado ser perdido. Automatically connect to alternative IP address in case of comm. error Quanto esta opo habilitada o driver ir automaticamente tentar a comunicao com o outro IP, caso falhe a comunicao com o IP em uso (passando principal para o secundrio e vice-versa). O tag Status da redundncia (N2 = 105) permite monitorar qual o IP em uso (ver tabela 2). Caso a opo esteja desmarcada, a troca de IP pode ser feita diretamente pelo aplicativo, atravs da escrita no tag Status da redundncia. Backup IPQuando a opo Use Backup IP address marcada, possvel definir o IP do CP redundante. Notar que este CP dever obrigatoriamente aceitar conexes na mesma porta IP que o CP principal. ALTUS TCP/IP driver 5 Campo Descrio Use driver hot-standby logic Quando esta opo habilitada, o driver passa a gerenciar automaticamente o processo de redundncia (hot-standby) entre CLP's. A opo "Automatically connect to alternative IP address in case of comm. error" deve ser habilitada para que este recurso funcione corretamente. Test periodDefine o perodo de monitorao do operando que informa se o CLP com o qual o driver est comunicando est ativo (monitoring operand). Monitoring operandNesta opo deve ser inserida uma string informando o operando de monitorao a ser usado. Este operando informa se o CLP est ativo. Ter o valor 1 para ativo, ou zero para inativo. O default M009.0. Este operando pode ser definido como tipo bloco, mas deve necessariamente ter apenas um elemento. Automatically activate backup PLC in case of disconnection Esta opo s tem sentido em ser usada dentro da lgica de driver hot-standby. Quando esta opo estiver habilitada, se o driver detectar a desconexo de algum escravo e conectar-se ao CLP antes inativo, ele tentar ativar este CLP, caso o operando de monitorao do mesmo ainda estiver em zero. A ativao feita atravs da escrita de um valor configurvel em um operando tambm configurvel, conforme as opes a seguir. ATENO: Este recurso ainda no foi padronizado no processo de redundncia, podendo no estar implementado no sistema. Antes de ativ-lo, verifique se o software do CLP est preparado para usar este recurso, e se no existem implicaes em deixar a ativao automtica. Set state operandNesta opo deve ser inserida uma string informando o operando de ativao do CLP, se o mesmo existir. Trata-se de um operando no qual pode-se escrever um valor pr-determinado para ativar um CLP inativo. Este recurso no um recurso padro, mas conveniente em muitos casos. Este operando pode ser um bloco, mas deve necessariamente ter apenas um elemento. Activation valueValor a ser escrito no operando de ativao, para ativar um CLP inativo.
Figura 4: Definio do caminho completo dos arquivos de configurao para aplicaes CHESF PA Itens de CHESF Directories Settings Campo Descrio General Parameters fileDefine caminho do arquivo de parmetros gerais (PGerais.csv) Definition file for communication points groups Define o caminho para o arquivo de configurao de grupos de pontos de comunicao (Grupos.csv) Definition file for polling blocksDefine caminho para arquivo de definio de blocos de polling (BlocosPoll.csv) ALTUS TCP/IP driver 6 Ini fileDefine caminho para arquivo INI que armazena os ltimos valores dos ponteiros de leitura da fila de eventos do CP, de forma a evitar a perda de eventos, se a aplicao sair do ar por um instante. Para que os valores armazenados neste arquivo sejam usados na inicializao do driver, preciso que o checkbox "discard remaining events", da janela "Add Remote Settings", esteja desmarcado, caso contrrio os ponteiros de leitura sero inicializados com os mesmos valores dos ponteiros de escrita lidos do CP, descartando todos os eventos remanescentes, gerados antes da inicializao do driver.
Parmetros [N] de endereamento de tags PLC N1Nmero da conexo do CP N2Tipo do dado (ver tabela 1) N3Endereo N4Bit ou posio de tabela (ver tabela 1)
O parmetro N1 contm o nmero da conexo na lista de CPs (grupo Connections na janela da figura 1), comeando em zero. Para mensagens no-solicitadas (MNS), usar 1000 + IPPLC. O nmero do IPPLC coincide com o ltimo nmero do endereo IP do PLC. Assim, para um PLC de endereo IP 195.4.32.29, o nmero do IPPLC ser 29, portanto N1 deve ser igual a 1029. Tabela 1 Tipos de tags de dados (tags PLC) Tipo N1 N2 N3 N4 Read/Write Comentrios Memriaconexo 0 end (*) R/W Tabela de Memriaconexo 1 end pos R/W Bit de Memriaconexo 2 end n R/W Em desuso Decimalconexo 3 end (*) R/W Tabela de Decimaisconexo 4 end pos R/W Auxiliarconexo 5 end (*) R/W Entradas e Sadasconexo 6 end (*) R/W Inteiroconexo 7 end (*) R/W Bit em Octeto (E/S)conexo 8 end bit (0-7) W Em desuso Bit em Auxiliarconexo 9 end bit (0-7) W Em desuso Real (float)conexo 10 end (*) R/W Tabela de Reais (float)conexo 11 end pos R/W Tabela de Inteirosconexo 12 end pos R/W Captura eventosconexo 13 end TM Aux * 10 + bit R Eventoconexo 14 mdulo (0-15) ponto (0-31) R Requer tag N2=13 Erro de mduloconexo 15 0 0 R Requer tag N2=13 Overflow de memriaconexo 16 0 0 R Requer tag N2=13 Mudana de data/horaconexo 17 0 0 R Requer tag N2=13 Leitura de op. CHESF por polling conexo 18 0 DI 1 AI 2 DO 3 AO Endereo (0 9999) R/W (escrita permitida somente para tipos DO e AO). Ver seo Tratamento de eventos CHESF PA Leitura de op. CHESF por evento conexo 19 0 DI 1 AI 2 DO 3 AO Endereo (0 9999) R/W (escrita permitida somente para tipos DO e AO). Ver seo Tratamento de eventos CHESF PA ALTUS TCP/IP driver 7 Tag de indicao de overflow na fila de eventos CHESF conexo 20 no usado no usado R Retorna lista de eventos de overflow (Ver seo Tratamento de eventos CHESF PA) Realizao de scans CHESF conexo 21 no usado no usado R Ver seo Tratamento de eventos CHESF PA
Tabela 2 Status e comandos de conexes TCP/IP Tipo N1 N2 Read/Write Valor Status da conexo conexo 101 R 0 desconectado 1 conectado -1 erro Inicia conexo conexo 102 W Sem valor Termina conexo conexo 103 W Sem valor Status da conexo em valor booleano conexo 104 R 0 desconectado ou em erro 1 conectado Status da redundncia conexo 105 R/W 0 IP principal 1 IP de backup Driver Hot-standby conexo 106 R/W 1 ativo 0 inativo Hot-standby automatic activation conexo 107 R/W 1 ativo 0 inativo Leitura de operando de monitorao da lgica de Hot-standby conexo 108 R 1 CP ativo 0 CP inativo Ativa CLP, segundo lgica de hot-standby conexo 109 W Sem valor
Observaes importantes Deve ser adicionado o valor 10000 ao parmetro N2 para tratar os valores lidos como inteiros de 16 bits sem sinal, com isso os valores variam de 0 a 65535. Na tabela 1, os parmetros N4 marcados com (*) possuem a seguinte interpretao: Se N4 igual a 0, ento ser lido todo o operando. Se N4 maior que 0, ento o comando efetuado sobre o bit especificado em N4 (valores de 1 a 32, dependendo do tamanho do operando), sendo o bit menos significativo indicado por 1. Para garantir a compatibilidade de aplicaes antigas com o driver atual, certifique-se que os tags com N2 = 0 possuem N4 = 0, j que, caso N4 for diferente de 0 ser encarado como um bit. Quando o valor de N1 estiver configurado para mensagens no-solicitadas (N1 >= 1000), os valores sero inicializados e permanecero em 0 at que o CP atualize os operandos correspondentes. Os tipos marcados com R/W permitem leitura e escrita de valor. Os tipos marcados com R ou W permitem apenas leitura ou escrita, respectivamente. Parmetros [B] de endereamento de tags bloco B1Nmero da conexo do CP B2Tipo do dado (ver tabela 3) B3Endereo (ver tabela 3) B4No utilizado (deixar em zero)
ALTUS TCP/IP driver 8 O parmetro B1 contm o nmero da conexo na lista de CPs (grupo Connections na janela da figura 1), comeando em zero. Para mensagens no-solicitadas (MNS), usar 1000 + IPPLC. O nmero do IPPLC coincide com o ltimo nmero do endereo IP do PLC. Assim, para um PLC de endereo IP 195.4.32.29, o nmero do IPPLC ser 29, portanto B1 deve ser igual a 1029. Tabela 3 Tipos de tags de dados (tags bloco) Tipo B1 B2 B3 Read/Write Tabela de Memria conexo Nm. tabela posio inicial na tabela R/W Tabela de Decimais conexo 1000+nm. tabela posio inicial na tabela R/W Tabela de Reais (float) conexo 4000+nm. tabela posio inicial na tabela R/W Tabela de Inteiros conexo 6000+nm. tabela posio inicial na tabela R/W Tabela de Memria de MNS 1000+IPPLC Nm. tabela posio inicial na tabela R Tabela de Decimais de MNS 1000+IPPLC 1000+nm. tabela posio inicial na tabela R Tabela de Reais de MNS 1000+IPPLC 4000+nm. tabela posio inicial na tabela R Status Barramentos de E/S conexo 2000 nm. Barramento R Status Comunicao conexo 2001 reset de variveis (*) R Status Equipamento conexo 2002 - R Bloco de Memria conexo 3000 endereo inicial R/W Bloco de Real (float) conexo 5000 endereo inicial R/W Bloco de Entradas conexo 5001 endereo inicial R Bloco de Sadas conexo 5001 endereo inicial W Bloco de Auxiliares conexo 5002 endereo inicial R/W Bloco de Inteiros conexo 5003 endereo inicial R/W Bloco de Decimais conexo 5004 endereo inicial R/W Leitura de blocos CHESF PA por polling conexo 7000 + 0 DI 1 AI 2 DO 3 AO endereo (0 9999) R/W (escrita apenas de elementos isolados)
Observaes importantes Deve ser adicionado o valor 10000 ao parmetro B2 para tratar os valores lidos como inteiros de 16 bits sem sinal, com isso os valores variam de 0 a 65535. Quando o valor de B1 estiver configurado para mensagens no-solicitadas (B1 >= 1000), os valores sero inicializados e permanecero em 0 at que o CP atualize os operandos correspondentes. Os tipos marcados com R/W permitem leitura e escrita de bloco. Os tipos marcados com R ou W permitem apenas leitura e escrita, respectivamente. A partir da verso 1.08, esse driver permite a escrita de blocos de qualquer tamanho, sendo o bloco dividido internamente em mais blocos pelo driver, automaticamente, se seu tamanho exceder o limite mximo previsto pelo protocolo. Esse limite, entretanto, pode variar caso se esteja utilizando WebGate, ou de alguma forma se estiver comunicando diretamente com a porta serial do equipamento. O tamanho mximo do bloco nesses casos depender do sistema utilizado, e a informao exata do mximo nmero de elementos permitidos poder ser obtida em cada caso junto ao suporte da Altus. Nesses casos, pode ser necessrio modificar a opo "Customize max. frame size", na janela de configurao "Add Remote Settings" (ver figura 7). No reset de variveis, os valores vlidos so os seguintes: 0 = os valores dos dados sobre recepo e transmisso no so alterados; 1 = os valores dos dados sobre recepo e transmisso so zerados.
ALTUS TCP/IP driver 9 Endereamento de tags atravs do Elipse Drivers OPC Caso este driver esteja sendo utilizado em conjunto com o Elipse Drivers OPC, utilize a seguinte tabela para acesso s memrias do CP: Tabela 4 Mnemnicos para uso do cliente OPC Mnemnico Descrio Read/Write <con:>AxAuxiliar R/W <con:>Ax.bBit de auxiliar R/W <con:>Ax_nBloco de auxiliares R/W <con:>DxDecimal R/W <con:>Dx.bBit de decimal R/W <con:>Dx_nBloco de decimais R/W <con:>ExEntrada R <con:>Ex.bBit de entrada R <con:>Ex_nBloco de entradas R <con:>FxReal (float) R/W <con:>Fx_nBloco de reais (float) R/W <con:>IxInteiro 32 bits R/W <con:>Ix.bBit de inteiro 32 bits R/W <con:>Ix_nBloco de inteiros 32 bits R/W <con:>MxMemria R/W <con:>Mx.bBit de memria R/W <con:>Mx_nBloco de memrias R/W <con:>SxSada W <con:>Sx.bBit de sada W <con:>Sx_nBloco de sadas W IPplc:TDUMx.y_nTabela de decimais de mensagem no-solicitada R <con:>TDx.yPosio de tabela de decimais R/W <con:>TDx.y_nTabela de decimais R/W IPplc:TFUMx.y_nTabela de reais de mensagem no-solicitada R <con:>TFx.yPosio de tabela de reais (float) R/W <con:>TFx.y_nTabela de reais (float) R/W <con:>TIx.yPosio de tabela de inteiros 32 bits R/W <con:>TIx.y_nTabela de inteiros 32 bits R/W IPplc:TMUMx.y_nTabela de memrias de mensagem no-solicitada R <con:>TMx.yPosio de tabela de memrias R/W <con:>TMx.y_nTabela de memrias R/W <con:>BSx_nStatus do barramento de E/S R <con:>CSxStatus da comunicao R <con:>ESStatus do equipamento R
Onde: Os caracteres em negrito representam mnemnicos fixos, que identificam os comandos, enquanto os caracteres que no esto em negrito representam valores, e devem ser substitudos pelos mesmos. <con:> um prefixo opcional que define o nmero da conexo na lista de CPs (grupo Connections na janela da Figura 1), comeando em zero. Caso este prefixo no seja informado, o driver utilizar a conexo de nmero 0. Veja os exemplos da Tabela 5 para maiores informaes. plc: No caso de mensagens no-solicitadas, aps o mnemnico IP deve-se fornecer o nmero da conexo, que corresponde ao valor IPPLC usado em tags tipo PLC e bloco, ou seja, coincide com o ltimo nmero do endereo IP do PLC, apenas quando so utilizadas mensagens no-solicitadas (MNS). Assim, para um PLC de endereo IP 195.4.32.29, o nmero do IPCPLC ser 29. x representa o endereo do operando ou o nmero da tabela, dependendo do tipo solicitado. Para os tipos CSx e BSx, consulte a Tabela 3 e suas notas. y representa a posio inicial na tabela. n representa o nmero de items a ser lido. ALTUS TCP/IP driver 10 b representa o nmero do bit, variando de 0 (bit menos significativo) ao mximo de 31 (bit mais significativo, porm o nmero mximo dependente do nmero de bits presentes no tipo do dado). A seguir, podemos ver alguns exemplos de uso dos mnemnicos:
Mnemnico Descrio A20 Auxiliar 20 (conexo 0) 1:M2400 Memria 2400 (conexo 1) D10_4 Bloco de decimais 10 com 4 elementos (conexo 0) E5.2 Bit 2 da entrada 5 (conexo 0) TM17.0_20 21 posies da tabela 17 de memria a partir da posio 0 (conexo 0) IP29:TFUM3.1_30 30 posies da tabela 3 de reais de mensagem no-solicitada a partir da posio 1 do CP com endereo de IP final 29. 1:M2400 Memria 2400 (conexo 1)
Leitura de Eventos (SOE) Este driver segue a nota de aplicao NAE-040 da ALTUS (seo 2.3.2) no que se refere ao tratamento de eventos. Para isso necessrio: 1. Criar um tag captura eventos (N2 = 13, ver tabela 1), com ciclo de varredura recomendado em 1000ms. O parmetro N3 define qual tabela de memria de 63 posies possui os eventos (O ladder deve gravar os eventos nesta tabela). No parmetro N4 especificado qual o nmero do auxiliar e o bit que resetado aps a leitura dos eventos (igualmente o ladder deve setar este bit de auxiliar para 1 quando houver eventos). importante a configurao correta dos parmetros N3 e N4 para um correto funcionamento da captura dos eventos. A utilizao deste tag obrigatrio para leitura de eventos. O valor do tag captura eventos ir mostrar quantos eventos foram encontrados na tabela de memria na ltima leitura. Nos logs podero ser vistos erros da seguinte forma (exemplos): a. ERROR: Cannot read event table TM2: isto significa que est falhando a leitura da tabela de memria 2. Verifique se o tamanho da tabela est correta ou configure novamente o parmetro N3 do tag captura eventos; b. ERROR: Invalid Apontador (value=80): na nota NAE-040 especifica que o Apontador pode ir at o valor 60 (13 eventos), portanto considera-se o valor maior do que 60 um erro e os eventos no so lidos da tabela. Verifique se a tabela correta e se os dados que esto sendo copiados para ela pelo ladder so vlidos; c. ERROR: Cannot reset A0.7: Este erro informa que o driver no conseguiu resetar o auxiliar 0 bit 7 aps a leitura da tabela de eventos. Confira se foi configurado corretamente o parmetro N4. Exemplo: para um auxiliar 4, bit 3, o N4 igual a 43, isto , 4 * 10 + 3. Este parmetro deve estar configurado de acordo com o Ladder do sequenciamento de eventos (SOE). 2. Aps a criao e leitura do tag anterior o driver comear a guardar os eventos internamente. Para a leitura desses eventos, necessrio criar um tag especificando o nmero da conexo (N1), o nmero do mdulo ou placa (N3) e nmero do ponto (N4). Os valores vldos so: a. 0 Estado 0 da entrada b. 1 Estado 1 da entrada Portanto necessrio criar um tag para cada bit de cada mdulo que se deseja ler os eventos. Cada evento trar na propriedade timestamp a data/hora que o evento ocorreu no CP, portanto desejvel que o CP esteja com a data/hora ajustada com a data/hora do computador. ALTUS TCP/IP driver 11 Mensagens No-Solicitadas (MNS) O uso das mensagens no-solicitadas permite melhorar significativamente a performance do aplicativo de superviso, pois o mesmo no precisa ficar fazendo polling nas variveis do CP o tempo todo e mesmo quando as mesmas no sofreram alterao. Ao contrrio, usando-se mensagens no-solicitadas, toda vez que uma varivel sofre alterao, o prprio CP envia uma mensagem avisando o driver, que, por sua vez, far a alterao em sua base de dados. O aplicativo, por sua vez, deve configurar seus tags PLC e tags bloco de maneira muito semelhante quela usada para tags normais (polling), mudando-se apenas o parmetro N1 ou B1 para 1000+IPPLC. Este nmero indicar ao driver que os valores destes tags devero ser lidos no do CP, mas diretamente da base de dados do driver, atualizada pelas MNS. Os tags do supervisrio, portanto, continuam funcionando por polling, s que a leitura ser diretamente de uma memria imagem contida no driver, que no gerar comunicao com o CP. Como esta operao extremamente rpida, sugerimos usar um perodo de scan muito pequeno, da ordem de milissegundos, o que permitir uma atualizao imediata dos tags em caso de alterao do valor por mensagens no-solicitadas. Exemplo de tag PLC para mensagens no-solicitadas: N1 = 1029 (leitura da memria imagem = 1000 + 29) N2 = 0 (memria) N3 = 1 (memria M1) N4 = 0 (no usado neste caso) Scan = 10 (10 milissegundos) O nmero do CP usado neste caso coincide com o ltimo nmero do endereo IP do CP. Assim, para um CP de endereo IP 195.4.32.29, o nmero do PLC ser 29 (N1 = 1029).
Tratamento de eventos CHESF PA Para que se possa usar os tags de leitura de eventos e operandos do sistema CHESF, preciso primeiramente definir nas opes de configuraes Extras do driver o caminho dos trs arquivos de configurao do sistema, clicando-se no boto "Directories Settings...". Alm disto, preciso criar uma conexo para cada CP presente no sistema. Para se definir uma conexo como pertencente ao sistema CHESF, deve-se habilitar o checkbox "Use CHESF Config", na janela "Add Remote Settings", e entrar com o nome do CP, conforme aparece nas tabelas de configurao, ao qual a conexo ir se referir. Desta forma, pode-se definir a que CP os tags do sistema CHESF se referem atravs da conexo referenciada nos parmetros n1 ou b1. O checkbox "Discard remaining events", da janela "Add Remote Settings", se habilitado, faz com que o driver despreze, na primeira leitura da fila de eventos aps sua inicializao, todos os eventos pr-existentes na fila de eventos, lendo apenas novos eventos. Se este checkbox ficar desabilitado, o driver tentar carregar os valores dos ponteiros de leitura lidos por ltimo, na ltima vez que o driver foi rodado, do arquivo INI definido na caixa de dilogo "Directory Settings", se o mesmo existir. Para a realizao dos scans configurados nas tabelas CHESF, um tag especfico deve ser chamado periodicamente, no caso o tag n1 = 21. O scan do mesmo pode ser bem pequeno, algo como 100ms por exemplo, pois a leitura do mesmo s ir realizar algo nos perodos programados nas tabelas de configurao. Os novos tags permitem ler e escrever em operandos com polling habilitado (n2 = 18 e b2>=7000) e ler operandos obtidos por eventos (n2 = 19). O tag bloco de polling (b2>=7000) deve ter exatamente o tamanho relativo ao nmero de operandos do grupo acessado, mais elementos extras no caso de variaes com qualidade especfica. No caso de variaes com qualidade especfica, o tamanho do tag bloco deve ser o dobro do nmero de operandos, onde os elementos finais contero as respectivas qualidades dos operandos lidos. Ou seja, no caso de se desejar ler um grupo do tipo AI, com 4 operandos, iniciando no endereo AI100, e qualidade especfica, o tag bloco deve ser configurado como b1=conexo, b2=7001, b3=100, e o tamanho do bloco dever ser de 8 elementos, onde os 4 primeiros traro os valores, e os 4 ltimos suas respectivas qualidades. J se a variao do grupo acessado for de qualidade comum, a qualidade vir na propriedade QUALITY do bloco, ALTUS TCP/IP driver 12 no ocupando nenhum elemento do mesmo, e neste caso, assim como no de variaes sem qualidade, o tamanho deve ser igual ao nmero de operandos. A leitura de eventos, atravs do tag n2=19, retorna uma lista de eventos sempre que existirem eventos disponveis para a leitura. Caso contrrio, o valor do tag no ser alterado, e nenhum evento ser gerado. A leitura das listas de eventos deve ser realizada atravs do evento OnRead do tag. Por exemplo, se uma determinada leitura de tag retornar 10 eventos CHESF, sero gerados em sequncia por esta nica leitura 10 eventos OnRead neste tag, onde cada um conter o valor de um determinado evento. A maneira mais usual de se utilizar este recurso usando o evento OnRead para dar um comando WriteRecord, ou equivalente, em um histrico previamente associado aos valores e ao timestamp do tag, e com isto se garante o armazenamento de todos os eventos lidos. Threads de read-ahead Para habilitar o read-ahead basta colocar em P4 o nmero de threads que o driver deve criar para cada CP (alm do thread principal de comunicao). Desta forma, se P4=5, o driver vai criar 6 conexes com o CP (1 thread principal e mais 5 threads de read-ahead). Deixando P4=0 o driver fica s com um thread (o thread principal), que a modo normal de funcionamento do driver. NOTA: muito importante dimensionar o parmetro P4 corretamente O nmero de conexes no pode ser maior do que a capacidade do CP em tratar mltiplas requisies. recomendado que P4 fique em 3 ou 4 no mximo (verses mais novas do firmware do PLC podem suportar at 9). Otimizaes de leitura Este driver suporta agrupamento automtico de tags em blocos, quando suportado pelo software* que usa o driver, o que permite grandes ganhos de performance de monitoramento em aplicativos que no definem por si os tags em blocos. O agrupamento feito automaticamente pelo software na medida que os tags entram em varredura, permitindo minimizar as requisies de leitura do CP. NOTA: Atualmente essa otimizao est disponvel somente no Elipse Drivers OPC verso 1.1 ou superior. Quando o driver for utilizado com um software compatvel com essa otimizao, no h necessidade do usurio criar as tags em blocos, bastando apenas tomar cuidado para definir as tags em endereos consecutivos no CP. O critrio para justificar a criao de tags em blocos, passa a ser neste caso apenas a necessidade da escrita simultnea em vrios endereos. Sendo inclusive recomendada a criao de tags PLC caso no sejam realmente necessrias escritas em blocos. Driver Hot-Standby A lgica de redundncia Hot-Standby implementada neste driver segue as especificaes do fabricante. Considera-se que exista um CLP principal e um reserva para cada conexo definida na janela de configuraes Extras do driver, cada um com um endereo IP especfico. Em um dado momento, haver sempre um CLP ativo e outro inativo. Em condies normais, o driver estar normalmente conectado e comunicando-se com o CLP ativo, ao mesmo tempo em que monitora, a intervalos regulares, o operando de monitorao do mesmo. O intervalo de tempo entre leituras do operando de monitorao chamado o perodo de teste (Test period). O operando de monitorao usado para indicar se o CLP est ativo ou inativo. Este ter o valor 1 se o CLP estiver ativo, e zero caso contrrio. De acordo com esta lgica, se o operando de monitorao for de 1 para 0, indicando a passagem do CLP para a condio de inativo, o driver deve se desconectar o IP antes ativo e conectar-se ao IP alternativo, realizando ento a leitura do operando de monitorao neste novo IP. Se o mesmo estiver em 1, o CLP alternativo estar em modo ativo, e a comunicao pode prosseguir com o novo CLP. J se o operando de monitorao estiver tambm em zero no novo IP, o driver mais uma vez se desconectar e voltar a tentar o IP anterior. Esse processo continuar at que o driver tenha sucesso em se conectar com algum CLP que retorne 1 na leitura do operando de monitorao. ALTUS TCP/IP driver 13 A opo "Automatically activate backup PLC in case of disconnection", na janela de configurao da conexo, permite ao driver forar a ativao do CLP inativo, caso seja perdida a conexo com o CLP ativo. Se esta opo estiver habilitada, ao perder a conexo com o CLP ativo, o driver tentar se conectar ao CLP inativo. Aps a conexo, ser efetuada a leitura do operando de monitorao do mesmo. Se este operando retornar zero, indicando que este CLP continua no estado inativo, o driver escrever um valor pr-configurado (Activation value) em um operando tambm previamente configurado (Set state operand). Se o software residente no CLP estiver preparado para interpretar este valor neste operando como um comando de ativao, o CLP passar para a condio de ativo, mudando o valor do seu operando de monitorao para 1. Este recurso, no entanto, no padronizado, e depende da implementao do software residente no CLP para funcionar corretamente. Dicas de performance Existem algumas configuraes a serem feitas no conjunto Driver-Equipamento que podem gerar um ganho de performance. Dentre estas citamos os seguintes: Comeando com o equipamento que precisa de uma alterao na sua configurao de retentativas na Camada TCP/IP. Nas configuraes de fbrica, o nmero de retentativas nesta camada igual a 5, sendo que cada retentativa possui um time-out que comea em 200ms e a cada nova tentativa este valor de time out dobrado. Pela prtica, foi concludo que o nmero de retentativas timo seria igual a 3, resultando em um time-out total de 3 segundos. Se at este tempo, somado ao tempo de resposta do prprio do CP, no for recebida nenhuma resposta, significa que a requisio no chegou at o CP, ou que este no pode responder por algum motivo qualquer. Com isto, o time-out configurado no driver deve ser maior que este valor. Ainda no equipamento, durante o desenvolvimento da programao Ladder, interessante utilizar o operando chamado LAI, que basicamente faz com que o equipamento tenha um tempo extra para responder as requisies do driver, fazendo com que o CP responda mais de uma requisio entre seus ciclos de programa. O nmero de operandos mximo que deve ser adicionado igual a 7, isto dependendo do tempo de ciclo da programao do CP. (Maiores informaes sobre estas configuraes podem ser obtidas no documento Caractersticas Tcnicas do mdulo AL3412 no site da ALTUS www.altus.com.br) J no driver Altus TCP/IP, devemos fazer a configurao das threads de comunicao - quantas conexes do driver sero abertas para comunicao simultnea - sendo que o valor normalmente utilizado est em torno de 3 a 4. O uso de um valor maior que este no garante uma maior performance na comunicao, em testes realizados encontrou-se este padro como ideal, sendo que um valor maior pode resultar numa perda de performance. O time-out do driver deve ser configurado para um valor maior que o tempo mximo de resposta do CP para a configurao informada acima, este tempo esta em 3 segundos de timeout da camada TCP/IP somado com o tempo de resposta do equipamento - um valor indicado atravs de testes seria 4 segundos. Histrico de revises do driver Verso Data Autor Comentrios 1.14 A. Quites C. Fehlauer
v1.13 2006.01.26 A.Corra A.Quites - Implementado compartilhamento para mensagens no-solicitadas (Case 6126) - Implementado a leitura de eventos (Case 6143) - Arrumado problema na leitura de operandos com N4 diferente de zero (Case 6127) - Arrumado problema de comunicao com CPs Altus antigos (Case 6613) ALTUS TCP/IP driver 14 Verso Data Autor Comentrios v1.12 2005.07.05 A. Quites - Implementada lgica completa de redundncia, ou driver Hot-standby (Case 4344). - Melhorada rotina de importao de configuraes de verses antigas, que agora contemplam todas as verses anteriores do driver (Case 5477). - Criadas opes de configurao para o processo de reconexo automtica do driver (Case 5759). - Melhorado desempenho da escrita de bits para operandos auxiliar, octeto e memria, que antes usavam mascaramento, usando o recurso de subdiviso do protocolo (Case 5833) - Substituio do comando 129 (fora operando simples) pelo comando 133 (escreve operando simples) na escrita de operandos simples, conforme orientao da Altus (Case 5832) v1.11 11.04.2005 L. Silva - Adicionado suporte a otimizao de leituras (agrupamento automtico de tags em blocos - Case 5521); - Adicionado suporte a leituras sncronas reais mesmo quando usando threads de read-ahead (Case 4977). v1.10 31.03.2005 A. Quites - Corrigida a importao das configuraes extras de verses anteriores do driver (case 5477). A importao continuar no funcionando para drivers publicados antes de junho de 2002. v1.09 07.03.2005 L. Silva - Melhorada lgica de read-head para tags com scan alto - i.e. maior que ~10s (Case 4969); - Corrigida a lgica da troca de IP (manual ou automtica) quando so usados os canais de read-head (Case 5089); - Criada opo para desabilitar a troca de IP automtica quando usada redundncia de CPs (Case 5089). v1.08B 08.11.2004 A. Correa - Pequenas modificaes apenas no documento, sem alterao no driver. v1.08A 08.11.2004 A. Quites - Adicionada opo que desabilita a converso para ALNET-II, tornando esse driver um driver ALNET I comum, e desabilitando-se ento o recurso de mensagens no-solicitadas. (Case 3190) - O driver agora no retorna mais erro no StartCom caso ocorra erro na abertura do arquivo de log (Case 3323) - Adicionado as leituras de bloco para os seguintes operandos: Auxiliares, Decimais, Entradas, Sadas. (Cases 4455, 3932) - Implementado operando I (inteiro). (Case 4456) - Adicionado suporte ao Elipse Drivers OPC.(Case 4457) - Retirado Log Date & Time. - Adicionado nmero da conexo na janela de edio. (Case 4458) - O driver agora permite escrever blocos de operandos de qualquer tamanho, mesmo maiores que o tamanho mximo permitido pelo protocolo, situao em que ele mesmo quebrar a escrita em mais de um bloco (Case 4754) - A escrita de blocos de mais de 64 operandos tabela agora est funcionando, devido a uma alterao no cdigo conversor AlnetI/AlnetII da Altus, que antes no estava convertendo para a instruo AlnetII mais adequada (Case 4751) - Implementada redundncia de conexes (Case 4344) v1.07 09.01.2004 F. Englert - Corrigido problema da verso anterior (ocorria um GPF na segunda vez que rodava o aplicativo se as MNS estivessem habilitadas) (Case 3193) - O padro do driver agora no gerar log (antes era Create New) (Case 3193) v1.05 31.10.2003 F. Englert - Habilitado o suporte a mensagens no-solicitadas (MNS). (Case 2805) - Resolvido problema na cache de pr-leitura, o driver no descartava valores antigos de um bloco se algum elemento era escrito. (Case 2838) v1.04 29.09.2003 F. Englert - Melhorado o log de mensagens NACK recebidas pelo protocolo. v1.03 26.09.2003 F. Englert - O driver agora converte strings para nmeros nas escritas. Ao escrever 1234 o valor 1234 enviado. Se o string tiver algum caractere no numrico ou for um nmero mal formatado a escrita vai retornar erro. v1.02 05.09.2003 F. Englert - Criada inteligncia para minimizar descarte de dados read-ahead, um tag s lido quando falta menos que 8 segundos para o prximo scan. v1.01 02.09.2003 F. Englert - Criados threads de read-ahead e retentativas de leitura e escrita. v1.00 R. Haetinger - Todas as publicaes anteriores ao controle de revises.