Você está na página 1de 33

IOKIT para o Elipse E3 e Elipse SCADA Verso 1.

14

Manual do Usurio

I/O Kit Manual do Usurio

1 Introduo
Este manual uma referncia para os usurios do IOKit Elipse, descrevendo como utilizar e configurar o IOKit tanto no Elipse SCADA quanto no E3, fornecendo informaes tcnicas do uso prtico do IOKit. O IOKit um componente compartilhado utilizado pelos drivers de I/O do Elipse, implementando o acesso padro do nvel fsico e proporcionando interfaces para: Portas seriais Modem (atravs de TAPI) Ethernet (utiliza Windows Sockets via TCP/IP ou UDP/IP) RAS (Remote Access Server)

Todos os drivers escritos utilizando o IOKit utilizam os seguintes recursos descritos neste manual, como por exemplo: Independncia de nvel fsico Gerao de logs Configurao offline Gerenciamento de conexes

O IOKit implementado como um DLL (dynamic link library) linkado com o driver. IMPORTANTE: Para evitar conflitos entre drivers, o arquivo IOKIT.DLL deve estar presente APENAS na pasta Windows\System32. Cpias deste DLL em outras pastas podem fazer com que o driver e/ou o IOKit no funcionem corretamente.

I/O Kit Manual do Usurio

2 Configurao
A configurao do I/O kit feita no dialog de configurao do driver. Para acessar a configurao do dialog no E3 (verso 1.xx), siga os seguintes passos: Clique com o boto da direita no driver (IODriver) Selecione Propriedades no menu popup Selecione a pgina Driver Pressione o boto Outros parmetros para abrir a configurao do driver.

No E3 verso 2.0 ou posterior, basta clicar no boto No Elipse SCADA, siga os seguintes passos: Abra o Organizer Selecione o driver na rvore Pressione o boto Extras na pgina do driver

Atualmente o IOKIt permite que apenas uma conexo seja aberta por cada driver. Isto significa que, se voc desejar o acesso a duas portas seriais, ter que adicionar dois drivers na sua aplicao e configurar cada um deles para cada porta serial.

2.1 O Dialog do IOKit


O dialog do IOKit permite configurar a conexo de I/O que ser utilizada pelo driver e contm cinco pginas: Setup Serial Ethernet Modem RAS

Alguns drivers fornecem pginas adicionais especficas no dialog do IOKit. Consulte os manuais do driver caso deseje maiores informaes sobre estas pginas.

2.2 A pgina do Setup


A pgina do Setup contm a configurao geral do driver. A pgina dividida em trs partes distintas: 1) Configuraes gerais 2) Connection management (gerenciamento de conexes) 3) logging options (Opes de logs)

I/O Kit Manual do Usurio

Physical Layer Selecione a interface fsica a partir da lista. As opes so: Serial, Ethernet, Modem and RAS. A interface selecionada dever ser configurada na sua pgina especfica. Timeout Configure o timeout em milisegundos para a camada fsica. Isto a medida de tempo que a interface de I/O aguardar para a recepo de UM byte (qualquer byte do buffer de recepo). Start driver OFFLINE Assinale esta opo para fazer com que o driver inicie OFFLINE (parado). Isto significa que a interface I/O no ser criada at que voc configure o driver como ONLINE (utilizando um tag na aplicao). Este modo possibilita a configurao dinmica da interface I/O em execuo. Veja a seo Trabalhando em OFFLINE para maiores detalhes. Connection management Estas configuraes configuram como o IOKit ir manter a conexo e qual a poltica de recuperao contra as falhas. Mode Seleciona o modo de gerenciamento de conexo. Selecionando a opo Automatic deixar que o driver gerencie a conexo automaticamente como configurado nas opes seguintes. Selecionado a opo Manual deixar o gerenciamento inteiramente a cargo da aplicao. Veja a seo Estado do Driver para maiores detalhes. Retry failed connection every Selecione esta opo para habilitar a retentativa de conexo do driver em um determinado intervalo (em segundos). Se a opo give up no estiver configurada o driver continuar retentando at que a conexo seja efetuada ou que a aplicao seja parada. Give up after Habilite esta opo para definir um nmero mximo de tentativas de conexo. Quando o nmero especificado em consecutive connection tries alcanado o driver ir para o modo OFFLINE, assumindo que um problema de hardware est presente. Se o driver estabelece uma conexo com sucesso, o nmero de tentativas sem sucesso zerada. Se esta nova conexo perdida ento o contador de retentativas comea do zero. 4

I/O Kit Manual do Usurio

Disconnect if non-responsive Habilite esta opo para fazer com que o driver desconecte se nenhum byte chegou a interface I/O no timeout especificado (em segundos). Este timeout dever ser maior que o timeout configurado no nvel fsico anteriormente. Logging Options Estas configuraes controlam a gerao de arquivos de log para o driver. Log to File Habilite esta opo e configure o nome do arquivo onde o log ser escrito. Arquivos de log podem ser bem extensos, portanto utilize esta opo por curtos perodos de tempo, apenas para o propsito de testes e depuraes. Caso voc coloque a macro %PROCESS% no nome do arquivo de log, esta ser substituda pelo ID do processo atual. Esta opo particularmente til se voc est utilizando vrias instncias do mesmo driver no E3, fazendo assim que cada instncia gere um arquivo separado de log. Por exemplo: Log to file: c:\e3logs\drivers\sim_%PROCESS%.log Ir gerar um arquivo de log c:\e3logs\drivers\sim_00000FDA.log para o processo 0FDAh Voc tambm pode utilizar a macro %DATE% no nome do arquivo. Neste caso ser gerado um arquivo de log por dia (no formato aaaa_mm_dd). Por exemplo: Log to file: c:\e3logs\drivers\sim_%DATE%.log Ir gerar o arquivo c:\e3logs\drivers\sim_2005_12_31.log no dia 31 de Dezembro de 2005, e c:\e3logs\drivers\sim_2006_01_01.log no dia 1 de Janeiro de 2006.

2.3 A pgina Serial


Utilize esta pgina para configurar os parmetros da interface Serial.

I/O Kit Manual do Usurio

Port Selecione a porta serial a partir da lista (COM1 at COM4) ou digite o nome da porta serial no formato COMn (ex: COM15). Se voc digitar o nome da porta manualmente o dialog aceitar apenas nomes de portas comeando com COM. Baud rate Selecione o baud rate a partir da lista (1200, 2400, 4800, 9600, 19200, 38400, 57600 ou 115200) ou digite o baud rate desejado (ex: 600). Data bits Selecione 7 ou 8 bits de dados a partir da lista. Parity Selecione a paridade a partir da lista (None, Even, Odd, Mark ou List) Stop bits Selecione o nmero de stop bits a partir da lista (1, 1.5 ou 2 stop bits) Enable ECHO supression Habilite esta opo para remover o eco recebido aps o IOKit enviar algo pela serial. Se o eco no for igual aos bytes recm enviados, o IOKit aborta a comunicao. Handshaking Configure o uso dos sinais RTS, CTS e DTR no handshaking (controlando quando o dado pode ser enviado/recebido atravs da linha serial). Na maioria das vezes configurando o controle DTR para ON e o controle RTS para Toogle ir funcionar tanto com RS232 quanto com RS485. DTR control Selecione ON para deixar o sinal DTR sempre ligado enquanto a porta serial aberta. Selecione OFF para desligar o sinal DTR enquanto a porta serial aberta. Alguns equipamentos exigem que o sinal DTR esteja ligado para permitir a comunicao. RTS control Selecione ON para deixar o sinal RTS sempre ligado enquanto a porta serial aberta. Selecione OFF para desligar o sinal RTS enquanto a porta serial aberta. Selecione Toogle para ligar o RTS enquanto envia os bytes atravs da porta serial e deslig-lo quando no est enviando bytes (habilita recepo). Wait for CTS before send Disponvel apenas quando o controle RTS est configurado para Toogle. Utilize esta opo para forar que o driver verifique o sinal CTS antes de enviar os bytes atravs da serial (aps levantar o sinal de RTS). Neste modo o CTS tratado como um flag de permisso para envio. CTS timeout Determina o tempo mximo (em milisegundos) que o driver ir aguardar pelo sinal de CTS depois de levantar o sinal de RTS. Se o CTS no levantado dentro deste timeout, o driver acaba por falhar na comunicao atual e retorna erro. Delay before send Alguns hardwares de porta serial demoram a habilitar o circuito de envio de dados depois que o sinal RTS levantado. Configure este parmetro para aguardar uma determinada quantidade de milisegundos depois de levantar o RTS e antes de enviar o primeiro byte. IMPORTANTE: esta espera deve ser utilizada com muito cuidado, pois consome 100% dos recursos da CPU enquanto aguarda. A performance geral do system ser degradada conforme este valor aumenta.

I/O Kit Manual do Usurio

Delay after send o mesmo que o Delay before send, mas neste caso a espera efetuada depois que o ltimo byte enviado, antes de baixar o sinal de RTS. Inter-byte delay (microseconds): Define uma espera entre cada byte transmitido pelo IOKit, em milionsimos de segundo (1000000 = 1 segundo). Esta opo deve ser utilizada com esperas pequenas (menos que um milisegundo). Inter-frame delay (miliseconds): Define uma espera entre pacotes enviados/recebidos pelo IOKit, em milsimos de segundo (1000 = 1 segundo). Esta espera aplicada caso o IOKit envie dois pacotes consecutivos, ou entre um pacote recebido e o prximo envio.

2.4 A pgina do Modem


Utilize esta pgina para configurar os parmetros da interface Modem. Algumas opes da pgina Serial afetam a configurao do Modem, portanto interessante no esquecer de configurar a interface Serial.

A interface modem utiliza os modems TAPI instalados no seu computador. Select the modem to use Escolha um modem a partir da lista de modems disponveis no seu computador. Case voc selecione (default modem), ento o primeiro modem disponvel ser utilizado (escolher esta opo recomendado especialmente quando a aplicao ser utilizada em um outro computador). Modem settings... Clique neste boto para abrir a janela de configurao do modem selecionado. Dial Number Digite o nmero para discar (este pode ser modificado em execuo). Voc pode utilizar a

I/O Kit Manual do Usurio

caractere w representando uma pausa (espera pelo tom de discagem). Ex: 0w33313456 (discar 0, esperar e ento discar 33313456). Accept incoming calls Habilitando esta opo faz com que o driver atenda o telefone quando ele receba uma chamada externa. Para utilizar esta opo necessrio que o Connection managment, na pgina de Setup, esteja configurada para Manual.

2.5 A pgina Ethernet


Utilize esta pgina para configurar os parmetros da interface Ethernet. Estes parmetros (todos exceto configuraes da porta) devem ser tambm configurados para uso na interface RAS.

Transport Selecione TCP/IP para um socket TCP (stream). Selecione UDP/IP para utilizar um socket UDP (datagram, connectionless). Listen for connections on port: Utilize esta opo para aguardar por novas conexes em uma porta IP especfica (comum em drivers Escravos). Caso voc deixe esta opo desmarcada ento o driver conectar ao endereo e porta especificado em Connect to. Connect to Estes parmetros configuram o endereo IP e a Porta do dispositivo remoto. IP Digite o endereo IP do dispositivo remoto. Voc pode usar tanto o IP separado por pontos quanto uma URL (no caso de uma URL, o driver usa o servio de DNS disponvel para mapear a URL para um endereo IP). Exemplos: 192.168.0.13 ou server1 Port Digite a porta IP do dispositivo remoto (0 at 65535). Backup address Habilite o endereo de backup se o dispositivo dispe de um endereo de IP alternativo (no caso do primeiro endereo falhar).

I/O Kit Manual do Usurio

IP Digite o endereo IP do dispositivo remoto. Voc pode usar tanto o IP separado por pontos quanto uma URL (no caso de uma URL, o driver usa o servio de DNS disponvel para mapear a URL para um endereo IP). Exemplos: 192.168.0.13 ou server1 Port Digite a porta IP do dispositivo remoto (0 at 65535). PING before connecting Habilite esta opo para pingar (verificar se o dispositivo pode ser encontrado na rede) o dispositivo antes de tentar uma conexo com o socket. Esta uma maneira rpida de determinar a chance de uma conexo bem sucedida antes de tentar abrir um socket com o dispositivo (o timeout de uma conexo com um socket pode ser bem alto). Timeout Especifique o nmero de milisegundos de espera por uma resposta do ping. Voc deve usar o comando de linha de comando PING para verificar o tempo normal de resposta, configurando este parmetro para um valor acima desta mdia. Normalmente voc pode configurar um valor entre 1000 e 4000 milisegundos (1 at 4 segundos). Retries Nmero de retentativas de ping (no conta a tentativa inicial). Se todos as tentativas falharem ento a conexo com o socket ser abortada.

2.6 A pgina RAS


Use esta pgina para configurar os parmetros da interface RAS. Voc necessitar tambm configurar a pgina Ethernet. A interface RAS abre uma conexo socket com um dispositivo RAS. O dispositivo RAS um servidor de modems acessvel atravs de TCP/IP, aguardando por conexes socket em uma porta IP. Para cada conexo aceita nesta porta ele d acesso a um modem. Quando conectando a um dispositivo RAS, primeiramente o IOKit conecta ao socket no IP e porta configurado na pgina Ethernet. Depois que o socket aberto, os seguintes passos de inicializao/conexo so efetuados: 1) Limpeza do socket (remove qualquer mensagem de saudao TELNET recebida do dispositivo RAS) 2) Envia o comando de discagem AT (em ASCII) no socket 3) Aguarda pela recepo de uma resposta CONNECT 4) Caso o timeout expire, a conexo abortada 5) Se o CONNECT recebido dentro do timeout, o socket disponibilizado para comunicao com o dispositivo (a conexo est estabelecida) Se o passo 5) efetuado com sucesso, ento o socket comporta-se como um socket normal, com o dispositivo RAS funcionando como um roteador entre o driver e o dispositivo (os bytes enviados pelo driver so recebidos pelo dispositivo RAS e enviados para o dispositivo destino utilizando um modem. Os bytes recebidos pelo dispositivo RAS do modem so enviados de volta ao driver utilizando o mesmo socket). Depois que a conexo estabelecida, a interface RAS monitora os dados recebidos pelo driver. Caso um string de NO CARRIER encontrado, o socket fechado. Se o dispositivo RAS no envia o sinal No Carrier, a interface RAS no consegue detectar quando a conexo modem entre o dispositivo RAS e o dispositivo final de I/O falha. Para recuperao de tal falha fortemente recomendado que seja habilitada a opo Disconnect if non-responsive (na pgina de Setup).

I/O Kit Manual do Usurio

AT command String com o comando AT completo usado para discar ao dispositivo destino. Exemplo: ATDT33313456 (discagem usando tom para o nmero 33313456). Connection timeout Nmero de segundos a aguardar por uma resposta CONNECT do modem, aps o envio do comando AT.

10

I/O Kit Manual do Usurio

3 Referncia dos Tags do IOKIT (N1/B1 = -1)


O IOKit define tags internos utilizados para vrias tarefas. Todos os tags do IOKit tem N1/B1 = -1 (ou 65535 no E3) e N2/B2 = 0. Os parmetros N3/B3 tem o seguinte significado: N3/B3=0: Tags de status e configuraes gerais do IOKit N3/B3=1: Tags da interface serial N3/B3=2: Tags da interface ethernet N3/B3=3: Tags da interface modem N3/B3=4: Tags da interface RAS

3.1 Tags gerais do IOKit (N2/B2 = 0)


Os tags seguintes so fornecidos pelo IOKit para todas as interfaces de I/O suportadas. BLOCO [tamanho=4] Read Driver Events (-1, 0, 0, 1) - IO.IOKitEvent apenas leitura

Este bloco retorna eventos do driver gerados por vrias fontes do IOKit (veja Apndice I Eventos do IOKit para a lista de todos os eventos gerados pelo IOKit). A propriedade timestamp do bloco informa o tempo que o evento ocorreu. Os elementos do bloco so: - Elemento 0: Tipo do evento 0 = Informao 1 = Aviso 2 = Erro - Elemento 1: Fonte do evento 0 = Driver (especfico do driver) -1 = IOKit (Eventos genricos de I/O do Kit) -2 = Interface Serial -3 = Interface Modem -4 = Interface Ethernet -5 = Interface RAS - Elemento 2: Nmero do Erro (especfico de cada fonte do evento) - Elemento 3: Mensagem do Evento (string, especfico de cada evento) * O driver mantm um mximo de 100 eventos internamente. Caso um novo evento seja reportado o evento mais antigo descartado.

TAG

Physical Layer Status (-1, 0, 0, 2) IO.PhysicalLayerStatus

apenas leitura

Este tag indica o estado do nvel fsico. O valor deste tag pode ser: 0 Nvel fsico parado (o driver est em offline, o nvel fsico falhou ao iniciar ou excedeu o nmero mximo de tentativas de reconexo) 1 Nvel fsico iniciado mas no conectado (o driver est online, mas o nvel fsico no est conectado. Se voc habilitou o gerenciamento automtico de conexo, o nvel fsico ou est conectando, desconectado ou aguardando por uma tentativa de reconexo. Caso voc tenha selecionado o gerenciamento manual de conexo, o nvel fsico permanecer neste estado at que voc force-o a conectar)

11

I/O Kit Manual do Usurio

TAG

Physical Layer Status (-1, 0, 0, 2) IO.PhysicalLayerStatus

apenas leitura

2 Nvel fsico conectado (o nvel fsico est pronto para ser utilizado). Isto NO significa que o dispositivo est conectado, mas apenas que o meio de acesso est funcionando.

TAG/BLOCO

Set Configuration Parameters (-1, 0, 0, 3) IO.SetConfigurationParameters

somente escrita

Use este tag para modificar em execuo qualquer propriedade do dialog (a lista completa de propriedades pode ser encontrada no Apndice II Propriedades do IOKit). Este tag funciona apenas enquanto o driver estiver OFFLINE. Para iniciar o driver em offline, verifique a opo Start driver OFFLINE, presente na pgina Setup do driver. Voc pode tambm escrever em um TAG simples ou escrever em um BLOCO contendo os parmetro que voc deseja modificar (escritas individuais de elemento de bloco no so suportadas, o bloco inteiro deve ser escrito de uma vez s!!!!) No Elipse SCADA, voc precisar usar um tag BLOCO. Cada parmetro que voc queira modificar usa dois elementos de bloco. Por exemplo, se voc deseja configurar 3 parmetros, ento o tamanho do bloco dever ser 6 (3 * 2). O primeiro elemento o nome da propriedade (como um string), enquanto o segundo elemento o valor da propriedade. Observe o seguinte cdigo de script do Elipse SCADA:
// Block dever ser um tag Bloco com leitura automtica, // leitura por scan e escrita automtica DESABILITADOS // configura os parmetros Block.element001 = IO.Type Block.element002 = Serial Block.element003 = IO.Serial.Port Block.element004 = 1 Block.element005 = IO.serial.BaudRate Block.element006 = 19200 // escreve o bloco inteiro Block.Write() // parmetero 1 // parmetero 2 // parmetero 3

Se voc estiver usando o E3, a habilidade de criar arrays em execuo permite que voc use tanto o I/O tag quando o tag Bloco. Voc pode tambm usar o mtodo Driver.Write para enviar os parmetros diretamente ao driver sem a necessidade de criar um tag. Veja os exemplos a seguir:
Dim arr(6) configura os elementos do array arr(1) = IO.Type arr(2) = Serial arr(3) = IO.Serial.Port arr(4) = 1 arr(5) = IO.serial.BaudRate arr(6) = 19200 voc tem dois mtodos de enviar os parmetros Mtodo 1: usando um tag I/O tag.WriteEx arr Mtodo 2: sem uso de tag Driver.Write -1, 0, 0, 3, arr

Uma variao do exemplo acima usa um array bidimensional:


Dim arr(10)

12

I/O Kit Manual do Usurio

TAG/BLOCO

Set Configuration Parameters (-1, 0, 0, 3) IO.SetConfigurationParameters

somente escrita

configura os elementos do array, note que o array foi dimensionado para 10 elementos. Elementos de array vazios so ignorados pelo driver arr(1) = Array(IO.Type, Serial) arr(2) = Array(IO.Serial.Port, 1) arr(3) = Array(IO.serial.BaudRate, 19200) Driver.Write -1, 0, 0, 3, arr

O driver no valida os nomes dos parmetros nem os valores passados, portanto seja cuidadoso para escrever os nomes das propriedades corretamente. O comando de escrita falhar se o array configurado estiver incorretamente montado. Voc pode verificar o log do driver ou utilizar o parmetro writeStatus da funo WriteEx para a causa exata do erro:
Dim arr(10), strError arr(1) = Array(IO.Type, Serial) arr(2) = Array(IO.Serial.Port, 1) arr(3) = Array(IO.serial.BaudRate, 19200) If Not Driver.WriteEx -1, 0, 0, 3, arr, , , strError Then MsgBox Falha configurando os parmetros do driver: + strError End If

TAG

Work ONLINE (-1, 0, 0, 4) IO.WorkOnline

leitura/escrita

Este tag informa o status atual do driver e permite que voc inicie ou pare o nvel fsico. 0 Driver OFFLINE: o nvel fsico est fechado (parado). Este modo permite a configurao dinmica dos parmetros do driver usando o tag Set Configuration Parameters. 1 Driver ONLINE: o nvel fsico est aberto (rodando). Enquanto ONLINE, o nvel fsico pode estar conectado ou desconectado (voc pode verificar o status atual com o tag Physical Layer Status) O seguinte exemplo em E3 coloca o driver em offline, muda a porta COM e coloca o driver em online novamente:
Pra o driver colocando-o em OFFLINE Driver.Write -1, 0, 0, 4, 0 Muda a porta para COM2 Driver.Write -1, 0, 0, 3, Array(IO.Serial.Port, 2) Coloca o driver em ONLINE Driver.Write -1, 0, 0, 4, 1

O comando de Write pode falhar quando configurando o driver para ONLINE (escrevendo 1). Neste caso o driver continua em OFFLINE. A causa dessa falha pode ser: O tipo do nvel fsico configurado incorretamente (provavelmente um valor invlido foi configurado para a propriedade IO.Type) O driver pode ter ficado sem memria suficiente O nvel fsico falhou criando seu prprio thread de tarefa (verifique o arquivo de log, procurando pela mensagem Failed to create physical layer thread!) O nvel fsico falhou ao inicializar. A causa da falha depende do tipo do nvel fsico. Pode ser causado por uma porta serial invlida, falha na inicializao dos Windows sockets, falha inicializando o TAPI (modem), etc. A causa ser gerada no arquivo de log.

IMPORTANTE: caso voc obtenha sucesso colocando o driver em ONLINE, isto no significa

13

I/O Kit Manual do Usurio

TAG

Work ONLINE (-1, 0, 0, 4) IO.WorkOnline

leitura/escrita

que o nvel fsico est pronto para uso (pronto para efetuar I/O com o dispositivo externo). Voc deve verificar o tag Physical Layer Status para ter certeza que o nvel fsico est conectado e pronto para efetuar operaes de troca de dados.

3.2 Tags da Interface Serial (N2/B2 = 2)


Atualmente no existem tags definidos especialmente para o gerenciamento da Interface Serial em execuo.

3.3 Tags da Interface Modem (N2/B2 = 3)


Os seguintes tags permitem o controle e diagnstico da Interface Modem em execuo. Estes tags esto disponveis APENAS quando o driver estiver ONLINE. TAG Get/Set Phone Number (-1, 0, 3, 0) IO.TAPI.PhoneNumber leitura/escrita

(String) Este tag l/modifica o nmero do telefone usado no comando Dial. Se voc modificar este tag, o novo valor ser usado somente no prximo comando Dial.

TAG

Dial (-1, 0, 3, 1) IO.TAPI.Dial

somente escrita

Escreva qualquer valor neste tag para forar a interface modem a iniciar a discagem. Este comando assncrono, portanto apenas inicia o processo de discagem. Voc pode monitorar o tag Is Modem Connected para detectar quando ligao est estabelecida.

TAG

Get Modem Status (-1, 0, 3, 2) IO.TAPI.ModemStatus

somente leitura

Retorna um string com o status atual do modem. Os valores possveis so: - No status!" a interface modem ainda no foi aberta ou j foi fechada. - Modem initialized OK!" a interface modem foi inicializada com sucesso. - Modem error at initialization! o driver falhou ao inicializar a linha do modem. Verifique o arquivo de log para maiores detalhes do erro. - Modem error at dial!" o driver falhou ao iniciar ou aceitar uma ligao. - Connecting..." o driver iniciou com sucesso uma chamada e agora a est processando. - Ringing..." indica que o modem est recebendo uma chamada (mas ainda no foi aceita). - Connected!" o driver est conectado com sucesso (tanto por completar um ligao quanto por aceitar uma chamada externa). - Disconnecting..." o driver est desligando a ligao atual. - Disconnected OK!" o driver desligou a ligao atual. - Error: no dial tone! o driver abortou a ligao pois o tom de discagem no foi detectado. - Error: busy! o driver abortou a ligao porque a linha estava ocupada.

14

I/O Kit Manual do Usurio

TAG

Get Modem Status (-1, 0, 3, 2) IO.TAPI.ModemStatus

somente leitura

- Error: no answer! o driver abortou a ligao porque no obteve resposta do outro modem. - Error: unknown! o driver abortou a ligao porque ocorreu um erro desconhecido.

TAG

Is Modem Connected (-1, 0, 3, 3) IO.TAPI.IsModemConnected

somente leitura

Este tag indica o estado da conexo do modem. Os valores possveis so: 0 o modem no est conectado (pode estar conectando ou aceitando uma ligao) 1 o modem est conectado, o driver tanto completou uma ligao quanto aceitou uma ligao externa com sucesso. O nvel fsico est apto a enviar/receber dados enquanto estiver neste estado.

TAG

Hang-up Call (-1, 0, 3, 4) IO.TAPI.HangUp

apenas escrita

Escreva qualquer valor neste tag para terminar a ligao atual. NOTA: Voc deve usar este comando apenas se voc est gerenciando o nvel fsico manualmente ou se voc deseja forar explicitamente o driver a reiniciar a conexo. Caso o nvel fsico tenha sido configurado para reconexo automtica, o driver ir automaticamente tentar restabelecer a conexo.

TAG

Connection Baud-rate (-1, 0, 3, 5) IO.TAPI.ConnectionBaudRate

somente leitura

Indica o baud rate da conexo atual. Caso o modem no esteja conectado o valor deste tag ser 0.

TAG

Is Modem Connecting (-1, 0, 3, 6) IO.TAPI.IsModemConnecting

somente leitura

Este tag indica o estado da conexo do modem. Os valores possveis so: 0 o modem no est conectado. 1 o modem est conectando (discando ou aceitando uma ligao externa). 2 o modem est conectado, o driver tanto completou uma ligao quanto aceitou uma ligao externa com sucesso. O nvel fsico est apto a enviar/receber dados enquanto estiver neste estado. 3 o modem est desconectando (a chamada atual est sendo finalizada).

3.4 Tags da Interface Ethernet Interface (N2/B2 = 4)

15

I/O Kit Manual do Usurio

Os seguintes tags permitem o controle e diagnstico da Interface Ethernet em execuo (tambm vlidos quando a Interface RAS estiver selecionada). Estes tags esto disponveis APENAS quando o driver estiver ONLINE. TAG IPSelect (-1, 0, 4, 0) IO.Ethernet.IPSelect leitura/escrita

Indica qual dos IPs especificados na configurao da interface Ethernet est ativo: 0: o IP principal est selecionado (ativo) 1: o IP de reserva est selecionado (ativo) Se a interface Ethernet estiver conectada, este tag indica em qual dos dois IPs que a conexo foi estabelecida. Se estiver desconectada, este tag indica em qual IP o IOKit tentar conectar primeiro na prxima tentativa de conexo. Durante a conexo, se o IP ativo no estiver disponvel, o IOKit tenta a conexo com o outro IP. Se esta conexo tiver sucesso, ento este passa para o estado ativo. Para alterar o IP ativo, basta escrever 0 ou 1 neste tag. Se o driver estiver conectado, esta escrita forar uma reconexo com o IP especificado. Se o driver estiver desconectado, esta escrita simplesmente configura qual o primeiro IP que ser utilizado na prxima tentativa de conexo.

TAG

IPSwitch (-1, 0, 4, 1) IO.Ethernet.IPSwitch

somente escrita

Qualquer valor escrito neste tag fora uma troca do IP ativo (do principal para o backup, ou do backup para o principal). Se o driver estiver conectado, esta escrita forar uma reconexo com o novo IP ativo. Se o driver estiver desconectado, esta escrita simplesmente configura qual o primeiro IP que ser utilizado na prxima tentativa de conexo.

3.5 RAS Interface Tags (N2/B2 = 5)


Atualmente no existem tags definidos especialmente para o gerenciamento da Interface RAS em execuo.

16

I/O Kit Manual do Usurio

4 Tpicos Avanados
Este captulo contm informaes detalhadas do funcionamento interno do IOKit.

4.1 Estados do Driver


O driver pode estar em 4 distintos estados: 1) Parado 2) OffLine (iniciado) 3) Desconectado (inciado, online) 4) Conectado (iniciado, online) O estado parado quando o driver no est sendo executado ou no est carregado (tipicamente quando voc est configurando a aplicao). To logo voc executa a aplicao (inicia), o driver vai para o estado offline. Neste estado ele detecta as condies mnimas para rodar (basicamente o DLL do driver foi carregado) e est aguardando por mais parmetros de configurao ou por um comando que pea que ele v para o estado online. O estado online tem duas divises principais: conectado ou desconectado. O driver est desconectado quando o nvel fsico no capaz de transmitir/receber dados. O driver est conectado quando o nvel fsico est pronto para utilizao. NOTA: os estados definidos aqui aplicam-se apenas ao nvel fsico. Tendo o nvel fsico conectado faz com que o driver acesse o dispositivo de I/O (plc), porm o dispositivo pode ainda no estar respondendo. Estando o nvel fsico conectado um bom comeo, porm voc deve sempre verificar os tags especficos do driver que informam o estado do driver. Driver Iniciado Driver Online Driver Parado
start stop

Driver Offline

go online go offline

Driver Desconectado

disconnect connect

Driver Conectado

Figura 1 Estados do Driver IOKit

4.2 Trabalhando OFFLINE


O modo OFFLINE foi planejado para sistemas onde o driver necessita ser configurado em execuo. Este o caso quando voc simplesmente no sabe o tipo de conexo ou parmetros at que a aplicao esteja sendo executada. 17

I/O Kit Manual do Usurio

Em OFFLINE, todos os tags de I/O do driver iro falhar (todas as escritas e leituras). Os nicos tags permitidos so os Tags gerais do IOKit (N1/B1=-1 e N2/B2=0). Embora voc possa chavear o driver entre os modos ONLINE e OFFLINE em execuo, geralmente voc ir tomar os seguintes passos: 1) Configurar a opo Start driver OFFLINE no dialog do driver Extras.... Esta opo far com que o driver inicie no estado OFFLINE. 2) Configurar os parmetros do driver em um script da aplicao. O script pode ser executado automaticamente ou de acordo com uma solicitao do usurio. 3) Configurar o driver para ONLINE

4.3 Gerenciamento da Conexo


Quando o driver est ONLINE, ele entra em um estado de tentativa de conectar o nvel fsico. Esta conexo pode ser efetuada de trs maneiras: conexo automtica: o driver mantm a conexo como configurado no dialog do driver. conexo manual: o driver se mantm desconectado e aguarda por comandos de aplicao (ex: comando dial) para conectar o nvel fsico. modo de espera: o driver se mantm desconectado e age como um escravo, aceitando conexes solicitadas por outros dispositivos na linha fsica.

Esta seo tambm descreve a deteco de inatividade, que automaticamente desconecta o nvel fsico caso no receba nenhum byte em um determinado perodo de tempo.

4.3.1
-

Conexo Automtica
no dialog do driver, selecione Automatic (managed by the driver) na lista do modo de conexo. configure a propriedade IO.ConnectionMode para 0 (automtico).

Selecione a conexo automtica de duas formas:

O algoritmo de conexo automtica inicia quando o driver configurado para o modo ONLINE. Nesta hora o driver estabelece a conexo inicial. A partir deste ponto, o driver ir comportar-se de acordo com as opo de gerenciamento da conexo. Caso voc habilite o resgate da conexo (Retry failed connection every nn seconds) ento o driver ir automaticamente tentar reconectar o nvel fsico se a conexo est perdida. Se o resgate da conexo desabilitado e a conexo perdida ento o driver ir retornar para o modo offline. Voc tambm pode definir o nmero mximo de tentativas de conexo (Give up after nn failed connections), limitando o nmero de reconexes com o nvel fsico. Caso todas as tentativas forem feitas, ento o driver abortado e colocado novamente no estado offline. O failed connections counter zerado (setado para 0) quando a conexo for bem sucedida.

4.3.2

Conexo Manual

Quando configurado para trabalhar em modo manual, o driver mantm o estado desconectado aps ser colocado em online. Ento voc pode forar manualmente a conexo do nvel fsico utilizando os tags de gerenciamento da conexo. Por exemplo, se voc estiver usando o nvel fsico do modem, voc poder ter uma tela onde edita o nmero do telefone (usando um setpoint) e um boto para iniciar a discagem. Caso a

18

I/O Kit Manual do Usurio

discagem funcione ento o driver ir automaticamente ir para o estado conectado. Voc pode desconectar o driver novamente, escrevendo no tag hang-up.

4.3.3

Modo de espera

O modo de espera quase idntico ao modo manual, mas a diferena est que o nvel fsico ser programado para aceitar conexes externas. Para o nvel de ethernet, voc teria que marcar a opo Listen for connections on port. Para o nvel de modem, voc teria que marcar a opo Accept incomming calls. Para o funcionamento do modo de espera, necessrio configurar o driver para funcionar no modo manual. O driver ir continuar no estado desconectado at que o nvel fsico sinalize que o uma conexo est disponvel. Voc pode verificar quando a conexo estabelecida monitorando o tag Physical Layer Status.

4.3.4

Deteco de Inatividade

O driver pode ser programado para desconexo automtica do nvel fsico se ele se mantm inativo por um perodo de tempo. O driver considera que o nvel fsico est inativo se ele continuamente solicita dados (tenta receber caracteres) sem receber NENHUM dado. Caso algum caractere seja recebido (mesmo que no seja um caractere vlido do protocolo), o temporizador de inatividade reinicializado. O temporizador de inatividade iniciado sempre que ocorre um timeout na recepo de caracteres no nvel fsico. O temporizador reinicializado (parado) quando qualquer byte recebido pelo nvel fsico. O tempo mximo de inatividade deve ser maior que o timeout do nvel fsico, caso contrrio o nvel fsico pode ser considerado inativo durante o funcionamento normal do driver. recomendado um mnimo de 10 segundos para o tempo mximo de inatividade.

4.4 Threads do Driver


Tanto o E3 quanto o Elipse SCADA utilizam os benefcios de multithreading nas suas arquiteturas de captura de dados. O Multithreading permite aos drivers operarem troca de dados simultaneamente, sem bloqueios entre os mesmos. Nesta seo ns vamos estudar os threads de I/O tanto do Elipse SCADA quanto do E3.

4.4.1

Threads no Elipse SCADA

Quando utilizado o Elipse SCADA (ELIPSE32.EXE), voc tipicamente tem os seguintes threads (apenas threads de I/O esto listados aqui): O thread PRINCIPAL: este thread roda a interface do usurio e todos os scripts da aplicao. Todas as solicitaes sncronas do driver (leituras/escritas chamadas por scripts ou pela interface do usurio, incluindo escritas assncronas) so geradas neste thread. O thread PRINCIPAL bloqueado enquanto estas solicitaes sncronas esto sendo processadas pelo driver. O thread do DRIVER: este thread onde o driver executado. Existe um thread de DRIVER para cada driver declarado na aplicao. Este manuseia as leituras em background (polling) dos tags e tambm as solicitaes sncronas geradas pelo thread principal. Se o driver est configurado como manter o comportamento 16-bit, ento este thread no existe e todas as solicitaes (sncronas e leituras em background) so manipulados pelo thread PRINCIPAL. O thread do NVEL FSICO: este thread iniciado quando o driver entra em ONLINE. Ele manipula as solicitaes de I/O enviados pelo thread do DRIVER e tambm responsvel por gerenciar a conexo (conectar, desconectar, retentar conexo, etc). As solicitaes

19

I/O Kit Manual do Usurio

do thread do DRIVER podem ser apenas manipuladas pelo thread do NVEL FSICO quando o driver est conectado.

4.4.2

Threads no E3

Quando utilizando o E3, cada driver tem seu prprio processo (IOSERVER.EXE). Todos os drivers so gerenciados pelo mdulo runtime do E3 (E3RUN.EXE). Ns vamos apenas comentar aqui os threads do IOSERVER: O thread PRINCIPAL: este thread recebe solicitaes do E3Run. Estas solicitaes incluem: iniciar/parar o driver, comandos de escrita, iniciar/parar a leitura por varredura de tags. O thread de CALLBACK: este thread responsvel por enviar os valores de volta ao E3RUN. O thread do DRIVER: este thread (como o thread do DRIVER do Elipse SCADA) onde o driver realmente executado. O thread do NVEL FSICO: este thread (como o thread do NVEL FSICO do Elipse SCADA) manuseia solicitaes de I/O enviadas pelo thread do DRIVER, gerenciando tambm a conexo fsica. iniciado apenas quando o driver est ONLINE.

20

I/O Kit Manual do Usurio

5 APNDICE I Eventos do IOKit


Este apndice lista os eventos atualmente gerados pelo IOKit. Para acessar estes eventos voc deve declarar o tag Read Driver Events block (B1=-1, B2=0, B3=0, B4=-1, Tamanho=4) Tipo Fonte Cdigo Mensagem Error opening serial port: %s - tried to open port COM%u twice - failed to open port %s (windows error %u) - failed to configure port %s (windows error %u) Error opening modem line: %s - tried to open line twice - failed to initialize line (tapi error %s) - failed to negotiate API version (tapi error %s) - failed to open line (tapi error %s) - failed to configure status messages (tapi error %s) - failed to get line address status (tapi error %s) - out of memory getting line address status - failed to get device capabilities (tapi error %s) - device ID=%u not found - out of memory getting device capabilities Begin of available modem list %u:%s - %u o ID do modem (em decimal) - %s a descrio do modem End of available modem list Error connecting to %s on port %u: %s Error connecting to %s on port %u (backup IP): %s - tried to connect socket twice - null address - socket error %s(%d) calling %s() Timeout waiting for CONNECT RAS response: '%s' RAS connection error: NO CARRIER Initializing physical layer... Physical layer initialization failed! Physical layer initialized! Connecting physical layer... Failed to connect physical layer! Physical layer connected! Physical layer connection lost! Reconnecting physical layer... Failed to reconnect physical layer!

Erro (2)

Serial (-2)

Erro (2)

Modem (-3)

Info (0) Info (0) Info (0)

Modem (-3) Modem (-3) Modem (-3)

2 3 4

Erro (2)

Ethernet (-4)

Erro (2) Info (0) Erro (2) Info (0) Erro (2) Info (0) Info (0) Erro (2) Info (0) Erro (2) Info (0) Erro (2)

Ras (-5) Ras (-5) Ras (-5) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1)

1 3 4 1 2 3 4 5 6 7 8 9

21

I/O Kit Manual do Usurio

Tipo Info (0) Info (0) Info (0) Erro (2) Info (0) Info (0) Info (0) Info (0) Erro (2) Erro (2)

Fonte IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1) IOKit (-1)

Cdigo 10 11 12 13 14 15 16 17 18 19

Mensagem Physical layer reconnected! Physical layer connected automatically! Reconnecting physical layer (retry #%u) Failed to reconnect physical layer (retry #%u)! Physical layer reconnected (on retry #%u)! Terminating physical layer... Physical layer terminated! (%u bytes sent, %u bytes received) Disconnecting physical layer... Physical layer aborted (exhausted all retries)! Physical layer non-responsive for %u seconds, disconnecting...

22

I/O Kit Manual do Usurio

6 APNDICE II Propriedades do IOKit


Este apndice lista os parmetros suportados pelo IOKit. Os parmetros podem ser modificados em execuo pela escrita no tag Set Configuration Parameters.

6.1 Parmetros Gerais:


Estes so os parmetros gerais do nvel fsico: IO.Type Define o tipo da interface de nvel fsico usado pelo driver. Os valores possveis so: - N ou None: no usa nenhuma interface de comunicao. - S ou Serial: use uma porta serial local (COMn). - M ou Modem: use um modem local (interno ou externo) acessado via TAPI (Telephony Application Programming Interface). - E ou Ethernet: use um socket TCP/IP ou UDP/IP. - R ou RAS: use uma interface RAS (Remote Access Server). O driver conecta com o dispositivo RAS usando uma interface Ethernet e ento utiliza um comando AT (discagem). String

IO.TimeoutMs Define o timeout do nvel fsico (em milisegundos; 1 segundo = 1000).

Inteiro

IO.StartOffline TRUE para iniciar o driver offline, FALSE para iniciar o driver online.

Boleano

NOTA: no faz sentido em modificar esta propriedade em runtime, pois ele s pode ser modificado se o driver j estiver offline. Para colocar o driver online em execuo, escreva 1 no tag Work ONLINE.

IO.ConnectionMode Controla o modo de gerenciamento da conexo: 0: modo automtico (o driver gerencia a conexo) 1: modo manual (a aplicao gerencia a conexo)

Inteiro

IO.RecoverEnable

Boleano

TRUE para habilitar o driver a resgatar conexes perdidas, FALSE para fazer com que o driver fique OFFLINE quando a conexo perdida.

23

I/O Kit Manual do Usurio

IO.RecoverPeriodSec Nmero de segundos a aguardar entre duas tentativas de reconexo. NOTA: a primeira reconexo feita imediatamente aps a conexo ser perdida.

Inteiro

IO.GiveUpEnable TRUE para definir o nmero mximo de tentativas de reconexo. Se todas as reconexes falharem, o driver ficar OFFLINE. Caso seja configurado para FALSE o driver ir tentar indefinidamente at que obtenha sucesso na reconexo.

Boleano

IO.GiveUpTries

Inteiro

Nmero de tentativas de reconexo antes de abortar a reconexo. Por exemplo, caso seja utilizado o valor 1, ento o driver ir tentar apenas uma reconexo quando a conexo perdida. Caso falhe o driver ir para OFFLINE.

IO.InactivityEnable

Boleano

TRUE para habilitar e FALSE para desabilitar a deteco de inatividade. O nvel fsico ser desconectado caso fique inativo por um perodo de tempo. Ser considerado inativo apenas se o nvel fsico capaz de enviar dados, mas no recebe nenhum dado de retorno.

IO.InactivityPeriodSec Nmero de segundos de checagem da inatividade. Caso o nvel fsico est inativo por este perodo de tempo ele ser desconectado.

Inteiro

6.2 Parmetros do Log:


Estes parmetros controlam a gerao do arquivo de log. IO.Log.Enable Boleano

Coloque em TRUE para habilitar e em FALSE para desabilitar a criao do arquivo de log.

IO.Log.Filename String definindo o nome do arquivo de log.

String

6.3 Parmetros da Interface Serial


Estes parmetros controlam a configurao da Interface Serial: 24

I/O Kit Manual do Usurio

IO.Serial.Port Nmero da porta local serial: 1: use COM1 2: use COM2 3: use COM3 ...

Inteiro

IO.Serial.Baudrate Define o baud rate da porta serial. Exemplo: 9600

Inteiro

IO.Serial.DataBits

Inteiro

Define o nmero de bits de dados configurados para a porta serial. Os valores possveis so: 5: 5 data bits 6: 6 data bits 7: 7 data bits 8: 8 data bits

IO.Serial.StopBits

Inteiro

Define o nmero de bits de parada configurados para a porta serial. Os valores possveis so: 1: um stop bit 2: um stop bit e meio 3: dois stop bits

IO.Serial.Parity Define a paridade configurada para a porta serial. Os valores possveis so: E ou Even: paridade par N ou None: sem paridade O ou Odd: paridade mpar M ou Mark: paridade mark S ou Space: paridade space

String

IO.Serial.RTS

String

25

I/O Kit Manual do Usurio

IO.Serial.RTS Indica como o driver ir manipular o sinal de RTS: OFF: RTS sempre desligado ON: RTS sempre ligado Toggle: somente liga o RTS quando est transmitindo dados.

String

IO.Serial.DTR Indica como o driver ir manipular o sinal de DTR: OFF: DTR sempre desligado ON: DTR sempre ligado

String

IO.Serial.DelayBeforeMs

Inteiro

Nmero de milisegundos de espera antes de ligar o RTS, antes de enviar os dados. Esta opo apenas disponvel quando o RTS est em Toggle e o WaitCTS FALSE.

IO.Serial.DelayAfterMs

Inteiro

Nmero de milisegundos de espera depois que o ltimo byte enviado pela serial antes de desligar o sinal de RTS. Disponvel apenas quando o RTS est Toggle e o WaitCTS FALSE.

IO.Serial.WaitCTS

Boleano

TRUE para fazer com que o driver aguarde pelo sinal de CTS antes de enviar os bytes quando o RTS ligado. Disponvel apenas quando a opo do RTS esta configurada para Toggle.

IO.Serial.CTSTimeoutMs

Inteiro

Nmero de milisegundos de espera pelo sinal de CTS. Depois que o RTS ligado, um temporizador iniciado para aguardar pelo sinal de CTS. Caso este temporizador expire, o driver aborta o envio dos bytes atravs da porta serial. Disponvel apenas quando o RTS est em Toggle e o WaitCTS TRUE.

IO.Serial.InterbyteDelayUs

Inteiro

Nmero de microsegundos (1/1000000 de segundo) de espera entre dois bytes enviados pela interface serial.

26

I/O Kit Manual do Usurio

IO.Serial.InterframeDelayMs Nmero de milisegundos a esperar entre o envio de dois pacotes consecutivos, ou entre a recepo de um pacote e o envio de outro pacote.

Inteiro

IO.Serial.SupressEcho Use um valor diferente de zero para habilitar a recepo de eco, ou zero para desabilitar.

Inteiro

6.4 Parmetros da Interface TAPI


Estes parmetros controlam a configurao da interface Modem. IO.TAPI.AcceptIncoming Inteiro

FALSE se o modem no deve aceitar chamadas (o driver age como mestre), TRUE para habilitar o recebimento de chamadas (o driver age como escravo).

IO.TAPI.PhoneNumber

String

Nmero do telefone a ser usado nos comandos de discagem. Por exemplo: 0w01234566 (o w fora o modem que espere que tom de discagem).

IO.TAPI.ModemID

Inteiro

O ID (identificador) do modem. Este ID criado pelo Windows e utilizado internamente para identificar o modem dentro da lista de dispositivos instalador no computador. Voc no deve supor que o ID permanecer o mesmo caso o modem seja reinstalado ou se voc rodar a aplicao em outro computador. fortemente recomendado que este parmetro seja configurado para 0, indicando que o driver deve utilizar o primeiro modem disponvel.

6.5 Parmetros da Interface Ethernet


Estes parmetros controlam a configurao da Interface Ethernet (observe que a Interface Ethernet tambm utilizada pela Interface RAS). IO.Ethernet.MainIP String

Endereo IP do dispositivo destino. Voc pode usar tanto o IP por pontos quando o nome do HOST do dispositivo. Exemplos: 192.168.0.6 ou SERVER1

IO.Ethernet.MainPort

Inteiro

27

I/O Kit Manual do Usurio

IO.Ethernet.MainPort Nmero da porta IP do dispositivo destino (usado em conjunto com o MainIP).

Inteiro

IO.Ethernet.BackupEnable

Boleano

TRUE para habilitar o endereo IP backup. Caso ocorra uma falha ao conectar ao MainIP o driver tentar usar o endereo backup. FALSE para desabilitar o uso do endereo IP backup.

IO.Ethernet.BackupIP

String

Endereo IP do dispositivo destino alternativo. Voc pode usar tanto o IP por pontos quando o nome do HOST do dispositivo. Exemplos: 192.168.0.6 ou SERVER1

IO.Ethernet.BackupPort

Inteiro

Nmero da porta IP do dispositivo destino alternativo (usado em conjunto com o BackupIP).

IO.Ethernet.PingEnable

Boleano

TRUE para habilitar o ping do endereo IP do dispositivo destino antes da tentativa de conexo ao socket. O timeout de conexo ao socket no pode ser controlado, portanto pingar o endereo antes de conectar uma maneira rpida de detectar se a conexo ir falhar. FALSE desabilita o ping.

IO.Ethernet.PingTimeoutMs Nmero de milisegundos de espera por uma resposta de ping.

Inteiro

IO.Ethernet.PingTries Nmero mximo de tentativas de ping (mnimo 1, incluindo o primeiro ping).

Inteiro

IO.Ethernet.Transport Define o protocolo transporte: T ou TCP: use TCP/IP U ou UDP: use UDP/IP

Inteiro

IO.Ethernet.AcceptConnection

Boleano

28

I/O Kit Manual do Usurio

IO.Ethernet.AcceptConnection

Boleano

FALSE se o driver no dever aceitar conexes externas (o driver age como um mestre), TRUE para habilitar o driver a receber conexes (o driver age como um escravo).

IO.Ethernet.ListenPort Nmero da porta IP, utilizada pelo driver para aguardar conexes.

Inteiro

6.6 Parmetros da Interface RAS


Estes parmetros controlam a configurao da Interface RAS. Observe que a interface RAS usa a interface Ethernet, portanto voc dever ter o cuidado de configurar a interface Ethernet. IO.RAS.ATCommand String

Comando AT enviado atravs do socket para forar o dispositivo RAS a discar usando o canal RAS atual. Exemplo: ATDT6265545

IO.RAS.CommandTimeoutSec Nmero de segundos de espera pela mensagem CONNECT em resposta ao comando AT.

Inteiro

29

I/O Kit Manual do Usurio

7 Histrico de Revises
Verso Data Autor Comentrios Corrigido: o IOKit pode tramcar enquanto um driver serial est sendo terminado. (Case 5313) Melhorado o tempo de resposta de drivers escravos pela porta serial. (Case 7280) O IOKit agora enumera os modens disponveis (com os seus respectivos IDs) quando o driver ativado com um modem F. Englert ID invlido/desconhecido. (Case 7474) Corrigido: as primeiras operaes de I/O (leituras/escritas) podem falhar enquanto o IOKit est tentando fazer a primeira conexo (Case 7614) Corrigido: o IOKit pode gerar um GPF quando um nmero de ponto flutuante (float ou double) muito grande lido/escrito (ex: -4585887366944162000000000000.0) (Case 7806) v1.13 2006-08-10 F. Englert Corrigido: A estampa de tempo de valores lidos ou escritos pode ficar incorreta por 1 milisegundo. (Case 7261) Corrigido: Vazamento de memria quando o driver retorna um HVALUE dimensionado como um array de HVALUEs. (Case v1.12 2006-07-03 F. Englert
7092)

v1.14

2007-01-15

Corrigido: Driver com um thread separado de comunicao pode travar ou falhar quando o IOKit colocado OFFLINE.
(Case 7099)

Agora possvel verificar a verso do IOKitLib que foi compilada com um determinado driver. Uma funo com nome do tipo IOKitLib_v1.11() exportada pela DLL do driver, permitindo verificar facilmente qual verso do IOKitLib foi utilizada (Case 6968) v1.11 2006-05-11 F. Englert Corrigido: o tempo de timeout no respeitado no envio de dados da interface Ethernet. Este bug poderia pendurar o driver caso o PLC mantivesse um socket aberto sem ler os dados recebidos neste socket. (Case 6935) Corrigido: a opo disconnect if inactive no funciona se o driver foi implementado em modo de escuta (Case 6933) Corrigido: no so feitas tentativas de reconexo da interface Serial caso falhe a abertura da porta (Case 6865) O IOKit agora pode gerar um arquivo de log por dia se a macro %DATE% for colocada no nome do arquivo (Case v1.10 2005-12-20 F. Englert
2047)

Corrigido: o log do IOKit pode misturar as linhas com TX: ou RX: geradas por threads de comunicao diferentes (Case
6530)

30

I/O Kit Manual do Usurio

Verso

Data

Autor

Comentrios Corrigido: a interface de Modem no lista ou no abre um modem se existirem modems incorretamente instalados no sistema (Case 3613) Agora uma mensagem mostrada se o usurio habilida a opo Start driver OFFLINE, perguntando se o usurio tem certeza que quer iniciar OFFLINE (Case 4584) Os parmetros de configurao do IOKIT agora so listados no arquivo de log quando o driver iniciado (Case 4584) Corrigido: os delays na configurao do chaveamento da interface serial no funcionam em Windows NT (Case 5525) Adicionada a opo Inter-frame delay (miliseconds) na configurao da interface Serial (tambm disponvel na interface Modem) (Case 5525) A mensagem escrita no arquivo de log quando o PLC fecha o socket (recv3() returned error (unknown) (0)) foi alterada para socket gracefully closed by the remote partner (Case
5599)

v1.09

2005-12-07

F. Englert

A interface Ethernet agora utiliza o WinSock v2.2 se estiver disponvel (as verses anteriores do IOKit utilizavam apenas o WinSock v1.1) alguns PLCs exigem esta verso para comunicar corretamente (Case 5617) Adicionada a opo Enable ECHO supression (habilita a supresso de ECO na comunicao) na interface Serial (tambm disponvel na interface Modem) (Case 5647) Adicionado o boto Modem settings... na pgina de configurao da interface Modem, permitindo que o usurio configure o modem selecionado (Case 5656) Adicionado suporte a auto-declarao dos tags internos do IOKit (utilizado pela ferramenta TagBrowser do E3) (Case
6016)

Adicionadas trs novas opes de baudrate na pgina de configurao da interface Serial: 38700, 57600 e 115200 baud (Case 6076) O IOKit agora pode receber e identificar a fonte (IP) de pacotes UDP enviados em broadcast. Esta ferramenta permite que alguns drivers utilizem o broadcast UDP para identificar os equipamentos presentes na rede (Case 6085) O IOKit agora no tenta reconectar imediatamente se uma conexo recm feita for perdida (Case 6294) Adicionada a opo None lista de interfaces disponveis no IOKit, permitindo que alguns drivers implementem o seu prprio meio de acesso (Case 6316) v1.08 F. Englert Adicionado o status Ringing... e o tag Is Modem

31

I/O Kit Manual do Usurio

Verso

Data

Autor

Comentrios Connecting na interface Modem (Case 4368) Implementado o IP Reserva, Ping e UDP na interface Ethernet (Cases 3014, 3015 e 3017) Colocada proteo para evitar buffer overrun na gerao de logs (Case 4365) Implementado o delay entre bytes durante a transmisso na interface Serial e Modem (Case 4343) Portado para Linux e Windows CE (Case 4280) Implementados os servios de ativao e desativao de log em runtime pela janela do Gerenciador de Drivers do E3Run
(Case 4513)

Adicionados logs extras para ajudar na depurao de drivers: indicao de interface desconectada no sputs e sgets (Case
4851)

A verso do IOKit agora mostrada no ttulo da pgina de propriedades dos drivers (Driver nonono (IOKit v1.08) (Case
4778)

O estado anterior da porta serial agora restaurado quando a porta fechada. Isto evita que outros programas que usam a porta serial na configurao padro do windows deixem de funcionar (Case 4484) v1.07 2004-05-04 A. Corra Manual traduzido para o Portugus A interface serial s vezes demora 1 segundo antes de manipular os bytes que esto chegando (afetando apenas os drivers escravos) (Case 3279) O IOKit agora verifica se a verso do driver para ter certeza que nela foi utilizada uma verso compatvel do IOKit (Case
3018)

v1.07

2004-01-26

F. Englert

v1.06

2003-12-18

F. Englert

v1.05

2003-11-27

F. Englert

Implementado a opo Listen for connections on port: na interface Ethernet. Drivers escravos via Ethernet agora so suportados. (Case 3018) A interface RAS agora corretamente desconecta um socket se ele recebe uma seqncia de string NO CARRIER depois que a conexo estabelecida. (Case 2643) A pgina Ethernet no deixa o parmetro da porta IP ser editada quando a interface RAS est selecionada. (Case 2675)

v1.04

2003-10-27

F. Englert

v1.03

2003-10-09

F. Englert

Permite que o string %PROCESS% seja inserido no nome do arquivo de log, a fim de inserir o nome do ID do processo no nome do arquivo. Exemplo: c:\driver_%PROCESS%.log ir criar um arquivo de log c:\driver_0000.log, onde 0000

32

I/O Kit Manual do Usurio

Verso

Data

Autor

Comentrios o ID do processo. (Case 2676) As propriedade IO.Log.Enable e IO.Log.Filename no funcionam e elas deveriam ser aplicadas imediatamente depois de modificadas utilizando o tag Set Parameters. (Case
2678)

v1.02

2003-10-07

F. Englert

A interface RAS agora conecta a uma porta IP simples (a porta especificada na pgina Ethernet). O hardware RAS ir verificar se existe um modem disponvel, designar um modem ao socket ou negar a conexo ao socket. (Case 2656) A interface RAS agora desconecta o socket caso ele receba uma seqncia de string NO CARRIER depois que a conexo estabelecida. (Case 2643) (esta caracterstica no est
funcionando corretamente, por favor utilize a verso 1.04)

v1.01

2003-10-06

F. Englert

v1.00

2003-08-11

F. Englert

Primeira verso. As seguintes opes Ethernet no esto disponveis ainda: ping, endereo de backup, UDP, usar novo socket and aceitar conexo.

33

Você também pode gostar