Você está na página 1de 56

Driver DNP 3.

0 Slave
Nome do Arquivo DNPSlave.dll

Fabricante Protocolo DNP 3.0


Equipamentos
Protocolo DNP 3.0
Versão 4.0.36
Última Atualização 18/03/2021

Plataforma Win32
Dependências IOKit v1.15
Leitura de Superblocos Não
Nível 31201

Introdução
Este Driver implementa o protocolo DNP 3.0 no modo Escravo (Outstation), de acordo com os níveis 2 (dois) e 3 (três).

O DNP (Distributed Network Protocol) é um protocolo de comunicações aberto e não proprietário, baseado nas
especificações do IEC (International Electrotechnical Commission), adaptado para uso em aplicações altamente seguras, à
velocidade e quantidade de dados moderada. É extremamente flexível e pode ser utilizado em qualquer plataforma de
hardware.

O modelo especificado pela ISO/OSI (International Standards Organization / Open System Interconnection) estabelece sete
camadas para um protocolo de rede. Já o IEC especifica um modelo simplificado, que consiste nas camadas física, data
link e aplicação somente. Tal modelo é chamado EPA (Enhanced Performance Architecture). A figura a seguir mostra a
estrutura do modelo EPA e seu sistema de comunicação.

Driver DNP 3.0 Slave v4.0.36


Modelo Enhanced
Performance Architecture

A Camada do Usuário (User Layer) pode ser definida como o local em que o usuário manipula os dados depois de
todas as comunicações. Nas aplicações da Elipse Software, esta camada é representada pela aplicação do usuário. A
camada do usuário usa a camada de aplicação deste Driver para enviar ou receber mensagens completas para ou de
uma estação.

A Camada de Aplicação (Application Layer) é responsável por especificar em detalhes os pedidos da camada do usuário,
e de volta à esta quando a mensagem vem da camada data link. Em outras palavras, esta camada junta as mensagens da
camada do usuário, os fragmentos, em uma mensagem de múltiplos fragmentos com informação completa para ser
processada e enviada para uma estação pela camada data link.

A Camada Data Link é usada para passar mensagens entre as estações primária, ou originadora, e secundária, ou
recebedora. Esta camada também empacota os dados, verifica-os em relação aos erros de transmissão e envia para a
rede TCP/IP.

O protocolo DNP pode ser configurado para trocas de mensagens via polling, ou comunicação constante, ou via
integridade - mudanças, que é mais eficiente. O envio das mudanças, também conhecido como RBE (Report by Exception),
pode ocorrer de forma espontânea ou não solicitada ou não espontânea, através da solicitação explícita do lado Mestre
pelas mudanças.

Códigos de Função
Um código de função identifica o propósito de uma mensagem. Existem dois grupos de funções, um para os pedidos e
outro para as respostas. Há vários tipos de funções para pedidos, como mostrado na tabela a seguir. As funções de
resposta são usadas internamente e não são abertas ao usuário.

Códigos de função

CÓDIGO FUNÇÃO DESCRIÇÃO


1 Read Solicita os objetos especificados da
estação remota e responde com os
objetos pedidos que estão disponíveis

Driver DNP 3.0 Slave v4.0.36


CÓDIGO FUNÇÃO DESCRIÇÃO
2 Write Armazena os objetos especificados na
estação remota e responde com o
status da operação

3 Select Seleciona ou arma pontos de saída


mas não configura ou produz
qualquer ação, tais como controles,
setpoints ou saídas analógicas, e
responde com o status da operação.
A função Operate deve ser usada para
ativar estas saídas
4 Operate Configura ou produz ações nas saídas
ou pontos previamente selecionados
com a função Select
5 Direct Operate Seleciona e opera as saídas
especificadas e responde com o status
dos pontos de controle
6 Direct Operate NO ACK Seleciona e opera as saídas
especificadas e não envia resposta,
porém leva menos tempo
7 Immediate Freeze Copia os objetos especificados para
um buffer de congelamento
9 Freeze and Clear Copia os objetos especificados para
um buffer de congelamento e depois
zera os objetos
10 Freeze and Clear No ACK Copia os objetos especificados para
um buffer de congelamento e depois
zera os objetos, mas não envia
resposta de confirmação
11 Freeze with Time Copia os objetos especificados para
um buffer de congelamento no
instante especificado e responde com
o status da operação
13 Cold Restart Realiza uma sequência de reset
14 Warm Restart Realiza uma sequência parcial de reset
20 Enable Unsolicited Messages Habilita a notificação espontânea dos
objetos especificados
21 Disable Unsolicited Messages Desabilita a notificação espontânea
dos objetos especificados
22 Assign Classes Associa os objetos especificados com
uma classe
23 Delay Measurement Permite à aplicação calcular o atraso
ou tempo de propagação para uma
estação em particular

Após a especificação do propósito da mensagem (APCI), segue a segunda parte, se necessária, chamada de ASDU. Cada
ASDU consiste em um ou mais identificadores de dados (DUI), cabeçalhos de objetos e informações de objetos ou
campos de dados.

Driver DNP 3.0 Slave v4.0.36


Cabeçalho de Objetos
O cabeçalho de objeto de uma mensagem identifica os objetos de dados que estão contidos na mensagem ou que são
utilizados na resposta para a mensagem. É composto basicamente de um objeto, uma variação, um qualificador e uma
faixa.

Objetos
Os dispositivos inteligentes que usam a camada de aplicação do protocolo DNP são capazes de monitorar, controlar e
produzir um grande número de dados. Estes dados, chamados de Elementos de Informação, são processados e
armazenados como objetos de informação, que são padronizados de forma a atingir meios de descrevê-los e
representá-los de forma única. As categorias de objetos de dados existentes são as seguintes:

· Objetos Estáticos (Static Objects): São os objetos que refletem o valor atual de uma variável de campo ou interna

· Objetos de Evento (Event Objects): São os objetos gerados como resultado de uma mudança de valor ou outro
estimulante. São objetos históricos, ou seja, refletem o valor de um dado em algum instante no passado

· Objetos Estáticos Congelados (Frozen Static Objects): Refletem o valor congelado atual de uma variável de campo
ou interna. Dados são congelados como resultado de um pedido de congelamento de dados

· Objetos de Evento Congelados (Frozen Event Objects): São os objetos resultantes da mudança de um valor
congelado ou outro estímulo. São objetos históricos, ou seja, refletem o valor de um dado em algum instante no
passado

Cada categoria é representada com um objeto diferente, conforme descrito na tabela a seguir.

Objetos de dados

OBJETO DESCRIÇÃO
Entradas Digitais O grupo de entradas digitais contém todos os objetos
que representam entradas binárias, ou seja, status ou
atributos booleanos. Varia entre 1 (um) e 9 (nove)
Saídas Digitais O grupo de saídas digitais contém todos os objetos que
representam saídas binárias ou informação de controle de
relés. Varia entre 10 e 19
Contadores Este grupo contém todos os objetos contadores. Varia
entre 20 e 29
Entradas Analógicas Contém todas as entradas analógicas. Varia entre 30 e 39
Saídas Analógicas Contém todas as saídas analógicas. Varia entre 40 e 49
Tempo Contém todos os objetos que representam tempo em
forma absoluta ou relativa. Varia entre 50 e 59
Classes Este grupo contém todos os objetos que representam
classes ou prioridades de dados. Varia entre 60 e 69
Arquivos Arquivos ou sistema de arquivos. Varia entre 70 e 79
Dispositivos Varia entre 80 e 89
Aplicações Objetos que representam aplicações ou processos do
sistema operacional. Varia entre 90 e 99
Numéricos alternativos Representações numéricas customizadas. Varia entre 100 e
109

Driver DNP 3.0 Slave v4.0.36


É importante observar que um objeto estático, quando sofre variação, é capaz de gerar um objeto de evento indicando
esta mudança. Entretanto, ambos representam o mesmo objeto.

Variação
São modificações ou sub-tipos que podem ocorrer nos objetos, como exemplo uma entrada digital, que pode ser
representada apenas por um único bit (zero ou um), por uma palavra de status (um byte) ou ainda conter ou não a
informação de tempo (timestamp). Sendo assim, a combinação de um objeto mais a variação descreve completamente
uma informação, conforme os exemplos a seguir.

· Objeto 01: Variação 01 representa uma entrada digital sem status (apenas um bit)

· Objeto 01: Variação 02 representa uma entrada digital com status (um byte)

· Objeto 02: Variação 01 representa uma mudança de entrada digital sem a informação de tempo

· Objeto 02: Variação 02 representa uma mudança de entrada digital com a informação de tempo

Apesar de ambos objetos estarem relacionados à mesma entrada digital, esta informação pode ser simbolizada de
maneiras diferentes.

Qualificador
Especifica o significado do campo Faixa (Range).

Faixa
Indica a quantidade de objetos, os índices iniciais e finais ou identificadores para os objetos.

Classes
Os objetos declarados em um sistema ou equipamento que implementa o protocolo DNP no modo Escravo podem ser
agrupados em classes. O protocolo DNP define as classes padronizadas a seguir.

· Classe 0: Significa todos os objetos, ou seja, na inicialização o Driver no lado Mestre pode realizar um pedido de
Classe 0 (zero) e na resposta o lado Escravo envia o valor corrente de todos os objetos declarados

· Classes 1 a 3: São entidades que armazenam temporariamente listas de eventos ou mudanças nos objetos. Cada
objeto precisa estar configurado no lado Escravo para gerar eventos quando há mudanças, e geralmente há um
padrão entre os usuários de DNP para reservar a Classe 1 (um) para eventos digitais, a Classe 2 (dois) para eventos
analógicos e a Classe 3 (três) para contadores

Configuração do Driver
Este tópico contém informações sobre a configuração do Driver DNP 3.0 Slave.

Configurações Extras
Este tópico contém informações sobre a Janela de Propriedades deste Driver, conforme os tópicos a seguir.

Driver DNP 3.0 Slave v4.0.36


Aba DNP

Aba DNP

As opções disponíveis nesta aba estão descritas na tabela a seguir.

Opções disponíveis na aba DNP

OPÇÃO DESCRIÇÃO
My DNP Address Endereço deste Driver. Se houver outros Escravos no
mesmo link, este valor deve ser único

App Timeout (ms) Tempo máximo que a camada de aplicação espera por
uma resposta completa da camada Data Link. Se o
recebimento de um pedido está em andamento pela
camada Data Link, este tempo é estendido
automaticamente até o termino da recepção pela camada
Data Link. O valor padrão desta opção depende da taxa
de comunicação utilizada. O time-out de Data Link, ou byte
a byte, é definido pelo time-out do IOKit, configurado na
aba Setup. O valor desta opção deve ser maior ou igual
ao time-out de Data Link
App Retries Número de retentativas de comunicação realizadas pela
camada de aplicação em caso de erro de transação. O
valor padrão desta opção é 0 (zero)
Data Link Retries Número de retentativas de comunicação realizadas pela
camada Data Link em caso de erro de transação. O valor
padrão desta opção é 0 (zero)
Master Sync Request (s) Intervalo de tempo em que este Driver solicita ao Mestre
uma sincronia de relógio, que pode ou não ser aceita
dependendo da configuração da opção Enable Time Sync
na aba Time / Event Settings. Para desabilitar o envio,
configure esta opção com o valor 0 (zero)

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
Unsolicited Send Interval (ms) Define o intervalo de tempo em que este Driver verifica a
existência de eventos das Classes 1 (um), 2 (dois) ou 3
(três) disponíveis para serem enviados através de
mensagens não solicitadas, caso a opção Use Unsolicited
Messages esteja habilitada. O lado Mestre também pode
habilitar ou desabilitar o envio de mensagens não
solicitadas por parte do Escravo através do envio das
funções Enable Unsolicited Messages (20) e Disable
Unsolicited Messages (21)
Select / Operate Msg Tout (s) Tempo máximo, em segundos, entre um comando Select e
um comando Operate. Ultrapassado este tempo, o
comando Operate não é mais aceito por este Driver

Counter DeadBand (%) Informa a banda morta, em porcentagem, para efeitos de


notificação de eventos para os contadores
Analog DeadBand (%) Informa a banda morta, em porcentagem, para efeitos de
notificação de eventos para os pontos analógicos. Para
especificar bandas mortas individuais, verifique as
configurações de banda morta por tag no capítulo
Endereçamento de Tags.
Number of IP Connections Define o número de conexões simultâneas, TCP ou UDP,
que são aceitas a partir da porta TCP/IP definida na aba
Ethernet. Por exemplo, ao definir três conexões e porta
20000, então este Driver está apto a receber três conexões
nas portas 20000, 20001 e 20002. Pode ser definido um
valor entre 1 (uma) e 5 (cinco) conexões
App Fragment Size in Bytes Informa o tamanho maximo de um fragmento de
aplicação. O valor padrão para a maioria dos sistemas é
2048 bytes.
Use Unsolicited Messages Informa se este Driver envia mensagens não solicitadas
Confirm DataLink Messages Informa se este Driver solicita mensagens de confirmação
na camada de Data Link
Confirm All Application Messages Informa se este Driver solicita mensagens de confirmação
para todas as mensagens na camada de aplicação. Se esta
opção estiver desmarcada, só serão solicitadas
confirmações de aplicação para as mensagens que
contiverem eventos, pois este comportamento é
obrigatório.
Unify Objects With/Without Status Se esta opção estiver marcada, então as diferentes
variações de um objeto são unificadas em uma única
variação com status. Exemplo: Se a aplicação possui tags
digitais objeto 1 variação 1 e tambem variação 2, todos os
índices são unificados no mesmo objeto com variação 2.

Se esta opção estiver desmarcada, então as diferentes


variações de um objeto serão mantidas como objetos
independentes.
Exemplo: Se a aplicação possui um tag objeto 1 variação 1
indice 25, e outro tag com objeto 1 variação 2 e indice 26,
eles serão reportados na integridade como objetos
diferentes. Não é recomendável que objetos de variações

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
diferentes possuam os mesmos índices, pois ambos
poderão gerar eventos, o que pode causar confusão na
interpretação.

Esta opção atualmente vale para os objetos 101, 301,


1001, 1101 e 3004.
Wait Reset of Remote Link Instrui este Driver a só responder comunicações após ter
recebido o comando Reset of Remote Link vindo do
Mestre. O valor padrão desta opção é selecionada
Disable Restart / Shutdown Desabilita o comando de desligar o computador, que
pode ser enviado pelo Mestre a partir da função 13 do
DNP (Cold Restart)

Command Response Profile Informa o tipo de tratamento que é dado aos comandos
solicitados a este Driver (Objeto 12 Variação 1 e Objeto 41
Variações 1, 2, 3 e 4). As opções disponíveis são Deny
Always: Todos os comandos são respondidos negativa e
instantaneamente, com o campo Status do comando
reportando o código 4 (quatro, comando não suportado),
Accept Always: Todos os comandos são respondidos de
forma positiva, com o campo Status do comando
reportando o código 0 (zero, comando OK), após a
aplicação ler o Tag de comando respectivo. Isto serve
para indicar que o comando solicitado foi entendido e vai
ser processado pela aplicação e Wait for Application
Response: Os comandos só são respondidos depois que
a aplicação ler e escrever o Tag respectivo. A leitura serve
para que a aplicação entenda que houve uma solicitação
por parte do Mestre, que é repassado para outro Driver
ou saída do sistema. Após este processamento, a
aplicação deve escrever de volta no Tag o mesmo valor
lido para indicar que o processamento foi bem-sucedido,
ou um valor diferente caso não tenha obtido sucesso.
Consulte mais informações no tópico Tratamento de
Comandos

NOTA
É necessário um script para enviar a mensagem de um Driver a outro. Para mais informações, consulte o tópico
Sincronia de Eventos com Redundância.

Driver DNP 3.0 Slave v4.0.36


Aba Time / Event Settings

Aba Time / Event Settings

As opções disponíveis nesta aba estão descritas na tabela a seguir.

Opções disponíveis na aba Time / Event Settings

OPÇÃO DESCRIÇÃO
Enable Time Sync Informa se este Driver aceita pedidos de sincronia de
relógio, que por sua vez sincronizam o relógio do
Windows

Enable Time Zone Offset on Sync Aplica o fuso horário local no horário a ser sincronizado
Report Events in GMT TIme Modifica a estampa de tempo dos Tags, transformando-
os para o horário GMT com base nas configurações
regionais e horário de verão do Windows
Use Callbacks for Commands Notifica os Tags da aplicação imediatamente quando
comandos são recebidos de um Mestre. Caso esta opção
não esteja selecionada, a notificação é baseada no scan de
cada Tag de comando
Generate Event on First Write Indica se a primeira escrita de um Tag deve gerar ou não
um evento. Se esta opção não está selecionada, a primeira
escrita apenas cria o ponto na base de dados interna
deste Driver, e o valor é usado para comparação com a
segunda escrita em diante, verificando se houve ou não
um evento ou mudança de valor ou qualidade. Se esta
opção está selecionada, a primeira escrita cria o ponto na
base de dados interna deste Driver e gera um evento
Limit Event Class Msg Size - Single Datalink Fragment Limita as mensagens de eventos a um fragmento de Data
Link por vez

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
Sync Events with Stby Driver Na existência de um segundo Escravo na mesma aplicação
que esteja operando de forma redundante, ou seja, o lado
Mestre seleciona por qual canal é realizada a
comunicação, esta opção instrui este Driver para que a
cada mensagem de confirmação de eventos de classes
recebida, gere uma mensagem correspondente para ser
enviada ao Driver redundante
Stop Analog events if not connected Para de acumular eventos analógicos quando a conexão
com o Mestre é interrompida. O valor corrente de cada
Tag analógico continua sendo armazenado. Aplica-se aos
objetos 32 e 33
One Analog Event per Index Envia apenas um evento por índice a cada comunicação,
de forma a tornar compatível a comunicação com
implementações de Mestres que suportam apenas um
evento por vez
Sort Analog Events by Index Instrui este Driver a ordenar eventos analógicos (objetos
3X, qualquer Variação) pelo índice e não pela estampa de
tempo, conforme é realizado por padrão para os demais
eventos. Isto serve para permitir que eventos do tipo
Sag/Swell de um ponto sejam reportados em conjunto,
tornando possível para o lado Mestre compreender que
se trata de um evento deste tipo
Ignore Assign Class Requests Instrui o driver a ignorar os pedidos de assign class que
forem recebidos. O Assign class é uma função do DNP
que permite associar determinados objetos a uma classe
de eventos 1, 2 ou 3 em runtime.
Limit All Responses - Single App Fragment Se o DNP Master somente aceitar um fragmento de
aplicação por resposta a um pedido, marque esta opção.
Note que mensagens não solicitadas sempre usam apenas
um fragmento de aplicação.

Add new timestamped event on First Connection Informa que quando ocorrer a primeira conexão do
mestre, se este driver escravo deve gerar novos eventos
com timestamp a partir do valor corrente dos pontos. O
objetivo é que o Mestre tenha a chance de receber os
valores com timestamp antes de realizar a classe 0, que
por definição do protocolo DNP, ocorre com valores
estáticos (corrente) sem timestamp.
Desta forma, ao se conectar, se o mestre solicitar eventos
antes da classe 0, ou se as mensagens não solicitadas
estiverem habilitadas, então o mestre receberá os valores
corrente com timestamp, caso estejam configurados desta
forma.

Esta opção só é utilizada para os tags que estiverem


configurados com SOETYPE com timestamp (parâmetro
N1).
Add new timestamped event on reconnection O mesmo que a opção acima, porém quando houverem
reconexões.

Driver DNP 3.0 Slave v4.0.36


Aba Event Limits

Aba Event Limits

Configure nesta aba o número máximo de eventos que este Driver deve manter em memória para as classes de eventos
1 (um), 2 (dois) e 3 (três) nas opções Class 1 Max Events, Class 2 Max Events e Class 3 Max Events, respectivamente.
Caso o limite de eventos seja atingido, os eventos mais antigos são removidos da lista.

Endereçamento de Tags
N1 SOETYPE × 10 + Classe

N2 Código de função. Para mais informações, consulte o


tópico Códigos de Funções Suportadas
N3 Código do objeto e variação. Para mais informações,
consulte o tópico Objetos Suportados
N4 Endereço da variável ou número
Item Parâmetro opcional que informa a banda morta individual
do Tag

O parâmetro N1 contém a configuração de classes e eventos, de acordo com a fórmula SOETYPE × 10 + Classe.
SOETYPE pode ser 0 (zero, sem SOE), 1 (um, COS ou Change of State sem estampa de tempo) ou 2 (dois, SOE ou
Sequence of Events com estampa de tempo). Classe pode ser 1 (um), 2 (dois) ou 3 (três). Os casos especiais para o valor
do parâmetro N1 são os seguintes:

· Se o parâmetro N1 é igual a 999, este Tag representa um Tag On/Off do protocolo, cujo valor padrão é 1 (um). Ao
escrever o valor 1 (um), desliga toda e qualquer comunicação, retornando na escrita o valor 1 (um)

· Se o parâmetro N2 é menor do que 0 (zero, funções especiais), o parâmetro N1 é usado para identificar a conexão,
variando entre 1 (um) e 5 (cinco)

Driver DNP 3.0 Slave v4.0.36


O parâmetro N3 deve ser informado de acordo com a fórmula ObjectCode × 100 + Variation. ObjectCode é o tipo de
objeto, como por exemplo Entradas Binárias, e Variation é o sub-tipo.

O parâmetro N4 é o endereço da variável ou número, independente de ser um ponto físico ou lógico.

Caso seja necessário informar uma banda morta individual por Tag, é possível usar o parâmetro Item no formato DB:X
%, onde X é um valor decimal. Por exemplo, o valor DB:3% corresponde a 3 (três) por cento e o valor DB:0,6%
corresponde a 0,6 por cento.

Alternativamente, é possível especificar uma banda morta relativa, utilizando no parâmetro Item o formato DBR:X%, onde
X é um valor decimal. Desta forma, as solicitações de valor instantâneo, como por exemplo a Classe 0 (zero), reportam
sempre um valor atualizado, enquanto os eventos só são gerados se houver uma variação acima da banda morta com
relação ao último evento reportado.

Também é possível especificar uma banda morta especial para tags analógicos inteiros que representam um conjunto de
bits (ex: WORD ou DWORD onde cada bit é um estado digital). Para isso deve-se colocar no parâmetro Item o formato
DB:BSTR. Desta forma, caso ocorra uma mudança em qualquer bit deste tag, será gerado um evento, independente das
opções "One Analog Event per Index" e "Stop Analog if not Connected" - permitindo que alterações neste tag não sejam
perdidas, independente da configuração dos demais tags analógicos.

Códigos de Funções Suportadas


Códigos de funções suportadas

N2 LEITURA OU ESCRITA OPERAÇÃO


-13 Leitura Estatísticas de comunicação por canal.
Os valores possíveis para o parâmetro
N4 são 1: Frames enviados, 2: Frames
sem resposta, 3: Erros de CRC no
formato da resposta, 4: Erros de envio
ou 5: Retentativas de transmissão

-20 Leitura e escrita Comunicação ligada ou desligada por


canal. Os valores possíveis são 0
(zero, desligada) ou 1 (um, ligada)
-21 Leitura Comunicação inativa por canal. Os
valores possíveis são 1 (um, inativa) ou
0 (zero, ativa)
-22 Leitura Leitura de eventos quitados para
serem enviados a um Driver
redundante, por canal
-23 Escrita Escrita de eventos para serem
quitados neste Driver, por canal
1 Escrita Read
2 Leitura e escrita Write
3 Leitura e escrita Select
4 Leitura e escrita Operate
5 Leitura e escrita Direct Operate
13 - Cold Restart
14 - Warm Restart
20 - Enable Unsolicited Messages
21 - Disable Unsolicited Messages

Driver DNP 3.0 Slave v4.0.36


N2 LEITURA OU ESCRITA OPERAÇÃO
22 - Assign Classes
23 - Delay Measurement

24 - Record Current Time

Objetos Suportados
Objetos suportados

OBJETO VARIAÇÃO NOME CÓDIGO DE FUNÇÃO


1† 0 Retorna Objeto 1 Variação 2 6

1† 2 Binary Input with Status 1


2‡ 1 Binary Input Change without 1
Time
2‡ 2 Binary Input Change with 1
Time
2‡ 3 Binary Input Change with 1
Relative Time
3† 2 Double Bit Binary Input with 1
Status
4‡ 1 Double Bit Binary Input 1
Change without Time

4‡ 2 Double Bit Binary Input 1


Change with Time
10† 1 Binary Output 1
10† 2 Binary Output Status 1
12 1 Control Relay Output Block 3, 4, 5, 6
20† 2 Retorna Objeto 20 Variações 6
1e2
20† 1 32-bit Counter 1, 7, 9, 10, 11
20† 2 16-bit Binary Counter 1, 7, 9, 10, 11
20† 3 32-bit Delta Counter 1, 7, 9, 10, 11
20† 4 16-bit Delta Counter 1, 7, 9, 10, 11
20† 5 32-bit Counter without Flag 1, 7, 9, 10, 11
20† 6 16-bit Counter without Flag 1, 7, 9, 10, 11
20† 7 32-bit Delta Counter without 1, 7, 9, 10, 11
Flag
20† 8 16-bit Delta Counter without 1, 7, 9, 10, 11
Flag
21† 0 Retorna Objeto 21 Variações 6
1e2
21† 1 32-bit Frozen Counter 1, 7, 9, 10, 11
21† 2 16-bit Frozen Counter 1, 7, 9, 10, 11

Driver DNP 3.0 Slave v4.0.36


OBJETO VARIAÇÃO NOME CÓDIGO DE FUNÇÃO
21† 3 32-bit Frozen Delta Counter 1, 7, 9, 10, 11
21† 4 16-bit Frozen Delta Counter 1, 7, 9, 10, 11

21† 5 32-bit Frozen Counter with 1, 7, 9, 10, 11


Time Of Freeze
21† 6 16-bit Frozen Counter with 1, 7, 9, 10, 11
Time Of Freeze
21† 7 32-bit Frozen Delta Counter 1, 7, 9, 10, 11
with Time Of Freeze
21† 8 16-bit Frozen Delta Counter 1, 7, 9, 10, 11
with Time Of Freeze

21† 9 32-bit Frozen Counter 1, 7, 9, 10, 11


without Flag
21† 10 16-bit Frozen Counter 1, 7, 9, 10, 11
without Flag
21† 11 32-bit Frozen Delta Counter 1, 7, 9, 10, 11
without Flag
21† 12 16-bit Frozen Delta Counter 1, 7, 9, 10, 11
without Flag
22‡ 1 32-bit Counter Change Event 1
without Time
22‡ 2 16-bit Counter Change Event 1
without Time
22‡ 3 32-bit Delta Counter Change 1
Event without Time
22‡ 4 16-bit Delta Counter Change 1
Event without Time

22‡ 5 32-bit Counter Change Event 1


with Time
22‡ 6 16-bit Counter Change Event 1
with Time
22‡ 7 32-bit Delta Counter Change 1
Event with Time
22‡ 8 16-bit Delta Counter Change 1
Event with Time
23‡ 1 32-bit Counter Change Event 1
without Time
23‡ 2 16-bit Frozen Counter Event 1
without Time
23‡ 3 32-bit Frozen Delta Counter 1
Event without Time
23‡ 4 16-bit Frozen Delta Counter 1
without Time
23‡ 5 32-bit Frozen Counter Event 1
with Time

Driver DNP 3.0 Slave v4.0.36


OBJETO VARIAÇÃO NOME CÓDIGO DE FUNÇÃO
23‡ 6 16-bit Frozen Counter Event 1
with Time

23‡ 7 32-bit Frozen Delta Counter 1


Event with Time
23‡ 8 16-bit Frozen Delta Counter 1
Event with Time
30† 0 Retorna Objeto 30 Variações 6
1, 2 e 5
30† 1 32-bit Analog Input 1
30† 2 16-bit Analog Input 1

30† 3 32-bit Analog Input without 1


Flag
30† 4 16-bit Analog Input without 1
Flag
30† 5 32-bit Analog Input Floating 1
Point
31† 0 Retorna Objeto 31 Variações 6
1, 2 e 5
31† 1 32-bit Frozen Analog Input 1
31† 2 16-bit Frozen Analog Input 1
31† 3 32-bit Frozen Analog Input 1
with Time Of Freeze
31† 4 16-bit Frozen Analog Input 1
with Time Of Freeze
31† 5 32-bit Frozen Analog Input 1
without Flag

31† 6 16-bit Frozen Analog Input 1


without Flag
31† 7 32-bit Frozen Analog Input 1
Floating Point
32‡ 1 32-bit Change Event without 1
Time
32‡ 2 16-bit Change Event without 1
Time
32‡ 3 32-bit Analog Change with 1
Time
32‡ 4 16-bit Analog Change Event 1
with Time
32‡ 5 32-bit Analog Change 1
Floating Point without Time
32‡ 7 32-bit Analog Change 1
Floating Point with Time
33‡ 1 32-bit Frozen Analog Event 1
without Time

Driver DNP 3.0 Slave v4.0.36


OBJETO VARIAÇÃO NOME CÓDIGO DE FUNÇÃO
33‡ 2 16-bit Frozen Analog Event 1
without Time

33‡ 3 32-bit Frozen Analog Event 1


with Time
33‡ 4 16-bit Frozen Analog Event 1
with Time
33‡ 5 32-bit Frozen Analog 1
Floating Point without Time
33‡ 7 32-bit Frozen Analog 1
Floating Point with Time
34† 1 16-bit Analog Input Dead 1
Band
34† 2 32-bit Analog Input Dead 1
Band
34† 3 32-bit Analog Input Floating 1
Point Dead Band
40† 1 32-bit Analog Output Status 1
40† 2 16-bit Analog Output Status 1
40† 3 32-bit Analog Output Status 1
Floating Point
41 1 32-bit Analog Output Block 2, 3, 4, 5, 6
41 2 16-bit Analog Output Block 2, 3, 4, 5, 6
41 3 32-bit Floating Point Analog 2, 3, 4, 5, 6
Output Block
41 4 64-bit Double Analog Output 2, 3, 4, 5, 6
Block

50† 1 Time and Date 1, 2


50 3 Last Recorded Time 2
51† 1 Time and Date CTO 1
51† 2 Unsynchronized Time and 1
CTO
52† 2 Time Delay Fine 1
60‡ 1 Class 0 Data 1
60‡ 2 Class 1 Data 1
60‡ 3 Class 2 Data 1
60‡ 4 Class 3 Data 1
80 1 Internal Indications 1, 2

NOTA
CTO significa Common Time of Occurrence. Os objetos marcados com o símbolo † são objetos estáticos e os objetos
marcados com o símbolo ‡ são eventos.

Driver DNP 3.0 Slave v4.0.36


Qualificadores Suportados
Qualificadores suportados

OBJETO OU VARIAÇÃO QUALIFICADOR DO PEDIDO QUALIFICADOR DA RESPOSTA


Objetos Estáticos em Geral (Leitura) 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 Segue a pergunta
Objeto 34 (Escrita) 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 Segue a pergunta
Objeto 60 (Classes) ou Pedidos 6,7,8 17, 18, 27, 28, 47, 58
Gerais de Integridade (Leitura)

Objeto 50 (Escrita) 7,2 7,2


Objeto 80 (Escrita) 1, 7 7
Objetos 12 e 41 (Select e Operate, 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 Segue a pergunta
entre outros)

Exemplos de Configuração de Tags


Supondo que um Driver DNP Escravo deseja reportar para um outro sistema, que implementa um Driver DNP Mestre,
variáveis recebidas de um protocolo qualquer, os exemplos a seguir mostram os parâmetros N1, N2, N3 e N4 no
formato N1.N2.N3.N4:

· Entrada Digital X gerando eventos com estampa de tempo na Classe 1 (um): 21.1.102.X

· Entrada Digital Y gerando eventos sem estampa de tempo na Classe 1 (um): 11.1.102.Y

· Entrada Analógica Z de 16 bits gerando eventos sem estampa de tempo na Classe 3 (três): 13.1.3002.Z

Comentários Gerais
Este tópico fornece informações adicionais sobre o Driver DNP 3.0 Slave.

Funcionamento
Este Driver deve ser usado para operar em modo Escravo, enviando os dados para algum Driver DNP em modo Mestre
via Serial, Modem ou Ethernet TCP/IP.

Os dados que são enviados ao Mestre através de pedidos de leitura, geralmente comandos de leitura de variáveis
estáticas ou de eventos, devem ser constantemente informados a este Driver através da escrita em Tags, onde cada Tag
deve estar apontando para um ponto na base de dados.

Para efeitos de comunicação pelo protocolo, este Driver só reconhece a existência de um objeto DNP quando o primeiro
valor é escrito para um objeto. A partir deste momento, o lado Mestre pode realizar solicitações para este Driver, o lado
Escravo, que responde conforme os objetos solicitados.

NOTA
Os objetos que geralmente são lidos pelo lado Mestre, através da Função 1 de leitura, devem ter seus Tags
correspondentes cadastrados neste Driver Escravo com o parâmetro N2 igual a 1 (um), ou seja, a escrita deste Tag
para o Driver Escravo informa o valor atual para o objeto. A partir desta escrita, este Driver verifica se o novo valor
informado quando comparado ao valor anterior corresponde à geração de um evento, de acordo ainda com as
configurações de cada Tag, o que é informado no parâmetro N1.

Driver DNP 3.0 Slave v4.0.36


Por exemplo, o Mestre pergunta o valor do Objeto 1, Variação 2 e Índice 100. Este ponto digital deve estar cadastrado
na base de dados do Escravo através de um Tag com o parâmetro N1 igual a 21, supondo que este ponto vai gerar um
SOE e está associado à Classe 1), o parâmetro N2 igual a 1 (um), o parâmetro N3 igual a 102 e o parâmetro N4 igual a
100. Ao iniciar a aplicação, este ponto não tem nenhum valor. Através da escrita de um valor (zero ou um) neste Tag, o
ponto é efetivamente criado como um ponto online na base de dados deste Driver.

NOTA
Conclui-se que uma aplicação deve sempre receber os dados de algum lugar e atribuí-los aos Tags deste Driver para
que tenha os valores atualizados.

Para os Tags declarados como pertencentes às classes 1 (um), 2 (dois) ou 3 (três), com eventos com ou sem estampa de
tempo, ao realizar a atribuição é automaticamente verificado se deve ser gerado um novo evento, de acordo com a
banda morta se forem contadores ou analógicos, colocando-se o novo evento disponível para a classe.

Mesmo quando a propriedade DeadBand é declarada com o valor 0 (zero), é necessária uma mínima mudança de valor
ou qualidade para que um novo evento seja gerado. Para que a banda morta não seja verificada, o valor 100 pode ser
adicionado ao parâmetro N1, conforme os exemplos a seguir.

· Tag com o parâmetro N1 igual a 22 (SOE, Classe 2), parâmetro N2 igual a 1 (um), parâmetro N3 igual a 3002 e
parâmetro N4 igual a 10 (16-bit Analog point 10, com SOE)

· Valor atual igual a 100, qualidade atual igual a 192 e estampa de tempo igual a 1/1/2012 12:00:00

Uma escrita neste Tag com o mesmo valor e qualidade mas com a estampa de tempo diferente, na configuração com o
parâmetro N1 igual a 22, não gera um novo evento.

Mas caso o parâmetro N1 seja modificado para 122, mesmo que o valor e qualidade sejam os mesmos, um novo evento
é gerado na escrita. Isto é útil para representar eventos de trip sem retorno ou eventos de Sag/Swell.

Bloco Único de Eventos


Pode-se optar por criar um único Tag Bloco para inserir todos os eventos neste Driver, evitando a criação de vários Tags
individuais para cada informação. Este Bloco tem a seguinte configuração:

· N1: 50 (valor fixo)

· N2, N3, N4: Não utilizados

· Tamanho: Deve possuir sete Elementos:

· Elemento 0: Parâmetro N1 contém a informação SOETYPE × 10 + Classe. Para mais informações, consulte o
tópico Parâmetros N de Endereçamento de Tags PLC

· Elemento 1: Parâmetro N2 contém o código de função

· Elemento 2: Parâmetro N3 contém a informação Objeto × 100 + Variação. Para mais informações, consulte o
tópico Parâmetros N de Endereçamento de Tags PLC

· Elemento 3: Parâmetro N4 contém o índice do ponto

· Elemento 4: Valor do ponto

· Elemento 5: Estampa de tempo no formato de tempo nativo do sistema

· Elemento 6: Qualidade

Driver DNP 3.0 Slave v4.0.36


NOTA
O Bloco Único de Eventos não pode ser usado em conjunto com outros Tags de evento em uma aplicação, ocorrendo
neste caso a duplicação de eventos.

Comandos
O objeto Control Relay Output (Objeto 12, Variação 1) define os campos da mensagem, descritos na tabela a seguir.

Byte 0 (Control Code)

Bit 7 6 5 4 3 2 1 0
Significado Trip/Close Clear Queue Code

· Trip/Close: Este campo determina qual relé de controle é ativado em um sistema onde um par de relés trip e close é
usado para energizar e desenergizar os pontos no campo. Os valor possíveis são, em formato binário, 00: NUL, 01:
Close e 10: Trip. O valor NUL pode ser usado para ativar o relé de seleção sem ativar os relés de trip ou close. Em
um sistema sem relés de seleção, o valor NUL não realiza nenhuma operação. Já em um sistema sem relés trip ou
close, este campo deve ser sempre igual a NUL para indicar uma operação normal de controle digital, onde o ponto
exato de controle é implícito ou totalmente conhecido. Este campo não suporta os comandos de trip e close
simultaneamente

· Clear: Se o comando possui este campo em 1 (um, ligado), todas as operações de controle são removidas da fila,
incluindo o comando que estiver sendo executado, e esta operação de controle é realizada

· Queue (Fila): Indica a colocação do comando em uma fila de comandos no equipamento. Se este campo é 0 (zero,
NUL), então nenhuma operação é colocada na fila e a fila é limpa de todos os controles, incluindo o comando que
estiver sendo executado se o campo Clear estiver ligado. Quando a função de controle é executada e completada,
esta é removida da fila. Se o comando tem o atributo Queue ligado, então a operação é enfileirada novamente, ou
seja, posicionada no fim da fila para aquele ponto.

· Code: Este campo especifica o tipo de operação propriamente dito. Este comando pode ser usado com
equipamentos que suportam enfileiramento de comandos (queuing), ponto a ponto ou outros mecanismos de
controle. No primeiro tipo, qualquer comando de controle deve ser enfileirado para o ponto em questão. No
segundo tipo, cada controle é realizado até ser completado antes do próximo comando ser aceito para aquele
ponto

Valores possíveis para Code, em formato binário

VALOR OPERAÇÃO DESCRIÇÃO


0000 NUL Nenhuma operação é realizada
0001 PULSE ON O ponto, ou pontos, é ligado pelo
tempo especificado em On Time,
desligado pelo tempo especificado
em Off Time e deixado no estado
OFF
0010 PULSE OFF O ponto, ou pontos, é desligado pelo
tempo especificado em Off Time,
ligado pelo tempo especificado em
On Time e deixado no estado ON

Driver DNP 3.0 Slave v4.0.36


VALOR OPERAÇÃO DESCRIÇÃO
0011 LATCH ON Mantém o ponto ou pontos no estado
ON

0100 LATCH OFF Mantém o ponto ou pontos no estado


OFF

NOTA
Valores fora da tabela anterior não são definidos.

Byte 1 (Count)

Este byte indica quantas vezes uma operação é executada. Este valor é mantido fixo em 1 (um) por este Driver.

Bytes 2 a 5 (On Time)

Tempo on-time, em milissegundos, definido na janela de configurações extras deste Driver. Este valor é fixo para todos
os comandos.

Bytes 6 a 9 (Off Time)

Tempo off-time, em milissegundos, definido na janela de configurações extras deste Driver. Este valor é fixo para todos
os comandos.

Byte 10 (Status)

Status da operação retornado por este Driver se a operação foi concluída com sucesso. O status só é interpretado na
resposta e pode ser usado por uma aplicação para verificar se o comando foi executado com sucesso. Os códigos são
os seguintes:

· 0: Comando executado corretamente, incluindo operações de Select e Operate

· 1: Comando Operate enviado após o tempo máximo do comando Select definido no Escravo

· 2: Comando Operate enviado sem um comando Select prévio

· 3: Erros de formatação na mensagem

· 4: Operação não suportada para o ponto em questão

· 5: Fila cheia ou ponto já está ativo

· 6: Problemas de hardware

· Outros: Códigos de erro não padronizados

Tratamento de Comandos
Este Driver suporta o recebimento de comandos Select, Operate ou Direct Operate para os objetos 12 Variação 1 e 41
Variações 1, 2, 3 ou 4.

Driver DNP 3.0 Slave v4.0.36


Caso a opção Command Response Profile na aba DNP esteja definida com o valor Wait for Application Response, a
sequência completa para tratar um comando é a seguinte:

1. O comando Select, Operate ou Direct Operate é recebido.

2. Um Tag PLC ou Tag Bloco com o parâmetro N2 igual a 3 (três), 4 (quatro) ou 5 (cinco) deve ser lido e tratado pela
aplicação, como por exemplo repassar para outro Driver que vai reenviá-lo para um equipamento.

3. Ao receber a resposta deste comando ao equipamento, deve-se escrever de volta no mesmo Tag cujo comando foi
lido o status. Se a resposta do comando ao equipamento foi positiva, deve escrever o mesmo valor de volta. Caso
contrário, deve escrever um valor diferente.

4. Se nenhuma escrita é realizada no Tag no intervalo de 10 segundos, este Driver envia uma resposta com status igual
a 6 (seis, Request Not Accepted. Hardware Problems).

Para receber uma solicitação de comando destes objetos, pode-se utilizar um Tag Individual ou um Tag Bloco.

Objeto 12 Variação 1

Para um Tag individual, o valor do Tag quando lido contém o valor do campo Control Code. Para o uso das operações
Select e Operate devem ser criados dois Tags, e cada um recebe a leitura no momento que a operação correspondente,
Select ou Operate, ocorrer. Para o uso da operação Direct Operate (cinco) só é necessário um único Tag com os
parâmetros a seguir:

· N1: Não usado

· N2: 3 (três), 4 (quatro) ou 5 (cinco)

· N3: 1201 ou 41XX

· N4: Índice do ponto

Para um Tag Bloco, valem as mesmas configurações anteriores, porém este Tag Bloco pode ter até seis Elementos. A
diferença é que não importa a operação (Select, Operate ou Direct Operate), só é necessário um único Tag Bloco, pois
a operação é retornada no Elemento 5 (cinco):

· Elemento 0: Control Code

· Elemento 1: Count

· Elemento 2: On Time

· Elemento 3: Off Time

· Elemento 4: Status

· Elemento 5: Operação (3: Select, 4: Operate ou 5: Direct Operate)

· Elemento 6: Endereço do Mestre

Objeto 41 Variações 1, 2, 3 ou 4

Para um Tag individual, o valor do Tag quando lido contém o valor do campo Control Code. Para o uso das operações
Select e Operate devem ser criados dois Tags, e cada um recebe a leitura no momento que a operação correspondente,
Select ou Operate, ocorrer. Para o uso da operação Direct Operate (cinco) só é necessário um único Tag com os
parâmetros a seguir:

· N1: Não usado

Driver DNP 3.0 Slave v4.0.36


· N2: 5 (cinco)

· N3: 1201 ou 41XX

· N4: Índice do ponto

Para um Tag Bloco valem as mesmas configurações anteriores, porém este Tag Bloco pode ter até três Elementos:

· Elemento 0: Valor

· Elemento 1: Status

· Elemento 2: Operação

Exemplo de script para tratar a recepção de comandos em um Objeto 12 Variação 1.

Driver DNP 3.0 Slave v4.0.36


// O Bloco AbreFecha é formado por cinco Elementos
// O exemplo pressupõe o envio do comando recebido
// para um outro Driver DNP Mestre

Sub AbreFecha_OnRead()
Set Digitais = Parent.Parent.Item("LeituraDigitais")
ControlCode = Item("ControlCode").Value

Trip = 1
Close = 0
CmdOk = 1

Select Case ControlCode


Case 65 'Pulse On Close
VComando = Close
Case 66 'Pulse off close
VComando = Close
Case 67 'Latch On Close
VComando = Close
Case 68 'Latch Off Close
Vcomando = Close
Case 129 'Pulse On Trip
VComando = Trip
Case 130 'Pulse Off Trip
VComando = Trip
Case 131 'Latch On Trip
VComando = Trip
Case 132 'Latch Off Trip
VComando = Trip
Case Else 'Comando inválido ou não formatado
CmdOk = 0
End Select

If Not(CmdOk) Then
WStatus = 7
Else
If Digitais.Item("ESTADODL01").WriteEx(VComando, , , WStatus) Then
WStatus = 0 'Força o valor 0 ou sucesso na escrita
'Status esperados pelo Mestre em caso de erro:
Select Case WStatus
Case 1
Endtext = " Operate recebido depois do time-out de seleção"
Case 2
Endtext = " Sem mensagem de seleção anterior"
Case 3
Endtext = " Erro de formatação no comando"
Case 4
Endtext = " Operação não suportada para este ponto"
Case 5
Endtext = " Fila está cheia ou ponto já está ativo"
Case 6
Endtext = " Problemas de hardware"
Case Else
Endtext = " Problema não definido"
End Select
Else
WStatus = 7
End If
End If
Item("Status").Value = WStatus
Write(EWriteSyncMode)
End Sub

Informação de Qualidade
Para todos os Tags é utilizada a qualidade do Tag informada na escrita para efeito da propagação do status do ponto
original.

Driver DNP 3.0 Slave v4.0.36


Para isto é realizado um mapeamento simples. Se o Tag tem qualidade igual ou superior a 192, o status DNP do ponto
correspondente tem o bit Online igual a 1 (um). Caso contrário, o bit Online tem o valor igual a 0 (zero), conforme o
exemplo na tabela a seguir para os Objetos 1 (um), 2 (dois) e 10.

Bit 7 6 5 4 3 2 1 0
Significado XX XX CF LF RF CL RS OL

Sincronia de Eventos com Redundância


Caso a opção Sync Events with Stby Driver na aba Time / Event Settings esteja habilitada, é necessário que cada
Driver Escravo redundante possua dois Tags Bloco para receber e enviar os eventos a serem quitados.

Através do Tag Bloco com o parâmetro B2 igual a -22, é possível ler os eventos quitados em um Driver e com o Tag
Bloco com o parâmetro B2 igual a -23 é possível escrever os eventos a serem quitados em outro Driver.

Em ambos os casos o Tag Bloco deve possuir seis Elementos, descritos a seguir:

· Elemento 0: Objeto × 100 + Variação

· Elemento 1: Índice

· Elemento 2: Classe (um, dois ou três)

· Elemento 3: Valor

· Elemento 4: Estampa de tempo válida (1: Válida ou 0: Inválida)

· Elemento 5: Estampa de tempo no formato de ponto flutuante de 64 bits

Exemplo de código para o E3 ou Elipse Power, supondo a existência de um DriverSlave1 quitando eventos em
DriverSlave2 e vice-versa.
Sub SyncEvtsRead_OnRead() //Script em DriverSlave1
Set EvtTag = Application.GetObject("DriverSlave2.SyncEvtsWrite")
EvtTag.Item("Elemento1").Value = Item("Elemento1").Value
EvtTag.Item("Elemento2").Value = Item("Elemento2").Value
EvtTag.Item("Elemento3").Value = Item("Elemento3").Value
EvtTag.Item("Elemento4").Value = Item("Elemento4").Value
EvtTag.Item("Elemento5").Value = Item("Elemento5").Value
EvtTag.Item("Elemento6").Value = Item("Elemento6").Value
EvtTag.Write()
End Sub

Sub SyncEvtsRead_OnRead() //Script em DriverSlave2


Set EvtTag = Application.GetObject("DriverSlave1.SyncEvtsWrite")
EvtTag.Item("Elemento1").Value = Item("Elemento1").Value
EvtTag.Item("Elemento2").Value = Item("Elemento2").Value
EvtTag.Item("Elemento3").Value = Item("Elemento3").Value
EvtTag.Item("Elemento4").Value = Item("Elemento4").Value
EvtTag.Item("Elemento5").Value = Item("Elemento5").Value
EvtTag.Item("Elemento6").Value = Item("Elemento6").Value
EvtTag.Write()
End Sub

Cold e Warm Restart


Na recepção do comando Cold Restart, após o envio da mensagem de resposta, este Driver reinicia o sistema
operacional.

Driver DNP 3.0 Slave v4.0.36


Na recepção do comando Warm Restart, após o envio da mensagem de resposta, este Driver limpa a fila de eventos
que estiverem aguardando para serem enviados ou quitados e se coloca em estado de inicialização, aguardando uma
mensagem de Reset of Remote Link. Os valores correntes dos Tags na base de dados deste Driver permanecem em
memória.

Documentação das Interfaces de Comunicação


Esta seção contém a documentação das Interfaces de Comunicação referentes ao Driver DNPSlave.

Configurações do Driver
A configuração das Interfaces de Comunicação é realizada na caixa de diálogo de configuração do Driver. Para acessar a
configuração da caixa de diálogo no E3 (versão 1.0), siga estes passos:

1. Clique com o botão direito do mouse no objeto Driver (IODriver).

2. Selecione o item Propriedades no menu contextual.

3. Selecione a aba Driver.

4. Clique em Outros parâmetros.

No E3 versão 2.0 ou posterior, clique em Configurar o driver na barra de ferramentas do Driver. No Elipse SCADA,
siga estes passos:

1. Abra o Organizer.

2. Selecione o Driver na árvore do Organizer.

3. Clique em Extras na aba Driver.

Atualmente, as Interfaces de Comunicação permitem que apenas uma conexão seja aberta para cada Driver. Isto significa
que, se for necessário o acesso a duas portas seriais, é preciso adicionar dois Drivers na aplicação e configurar cada um
destes Drivers para cada porta serial.

Caixa de Diálogo de Configuração


A caixa de diálogo das Interfaces de Configuração permitem configurar a conexão de I/O que é utilizada pelo Driver. Esta
caixa de diálogo contém as abas Setup, Serial, Ethernet, Modem e RAS, descritas nos tópicos a seguir. Se um Driver
não implementa uma conexão de I/O específica, a respectiva aba não está disponível para configuração. Alguns Drivers
podem conter abas adicionais, específicas para cada Driver, na caixa de diálogo de configuração.

Aba Setup
A aba Setup contém a configuração geral de um Driver. A aba é dividida nos seguintes grupos:

· Configurações gerais: Configurações da camada física do Driver, time-out e modo de inicialização

· Connection management: Configurações de como a Interface de Comunicação mantém a conexão e qual a política
de recuperação em caso de falha

· Logging options: Controla a geração dos arquivos de log

Driver DNP 3.0 Slave v4.0.36


Aba Setup

Opções gerais da aba Setup

OPÇÃO DESCRIÇÃO
Physical Layer Selecione a interface física em uma lista. As opções são
Serial, Ethernet, Modem e RAS. A interface selecionada
deve ser configurada na sua aba específica
Timeout Configure o time-out, em milissegundos, para a camada
física. Esta é a medida de tempo que a interface de I/O
aguarda para a recepção de um byte qualquer do buffer
de recepção
Start driver OFFLINE Selecione esta opção para que o Driver inicie em modo
Offline ou parado. Isto significa que a interface de I/O não
é criada até que se configure o Driver em modo Online
utilizando-se um Tag na aplicação. Este modo possibilita a
configuração dinâmica da interface de I/O em tempo de
execução

Opções para o grupo Connection management

OPÇÃO DESCRIÇÃO
Mode Seleciona o modo de gerenciamento de conexão.
Selecionar a opção Automatic permite que o Driver
gerencie a conexão automaticamente, como especificado
nas opções seguintes. Selecionar a opção Manual permite
que a aplicação gerencie a conexão completamente.
Consulte o tópico Estados do Driver para mais
informações

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
Retry failed connection every ... seconds Selecione esta opção para habilitar a retentativa de
conexão do Driver em um determinado intervalo, em
segundos. Se a opção Give up after failed retries não
está selecionada, o Driver continua retentando até que a
conexão seja efetuada, ou que a aplicação seja parada
Give up after ... failed retries Habilite esta opção para definir um número máximo de
retentativas de conexão. Quando o número especificado
de tentativas consecutivas de reconexão for atingido, o
Driver vai para o modo Offline, assumindo que um
problema de hardware foi detectado. Se o Driver
estabelece uma conexão com sucesso, o número de
retentativas sem sucesso é zerado. Se esta nova conexão é
perdida, então o contador de retentativas inicia do zero

Disconnect if non-responsive for ... seconds Habilite esta opção para forçar o Driver a se desconectar
se nenhum byte chegou à interface de I/O no time-out
especificado, em segundos. Este time-out deve ser maior
que o time-out configurado na opção Timeout

Opções para o grupo Logging Options

OPÇÃO DESCRIÇÃO
Log to File Habilite esta opção e configure o nome do arquivo onde o
log é escrito. Arquivos de log podem ser bem extensos,
portanto utilize esta opção por curtos períodos de tempo,
apenas para o propósito de testes e depurações.
Caso se utilize a macro %PROCESS% no nome do arquivo
de log, esta é substituída pelo ID do processo atual. Esta
opção é particularmente útil ao se utilizar várias instâncias
do mesmo Driver no E3, permitindo assim que cada
instância gere um arquivo separado de log. Por exemplo,
ao configurar esta opção como c:\e3logs\drivers\sim_%
PROCESS%.log, gera-se o arquivo c:
\e3logs\drivers\sim_00000FDA.log para o processo
0FDAh.
Pode-se também utilizar a macro %DATE% no nome do
arquivo. Neste caso é gerado um arquivo de log por dia
(no formato aaaa_mm_dd). Por exemplo, ao configurar
esta opção como c:\e3logs\drivers\sim_%DATE%.log,
gera-se o arquivo c:\e3logs\drivers\sim_2005_12_31.log
no dia 31 de dezembro de 2005 e o arquivo c:
\e3logs\drivers\sim_2006_01_01.log no dia primeiro de
janeiro de 2006

Aba Serial
Utilize esta aba para configurar os parâmetros da Interface Serial.

Driver DNP 3.0 Slave v4.0.36


Aba Serial

Opções gerais da aba Serial

OPÇÃO DESCRIÇÃO
Port Selecione a porta serial a partir da lista, de COM1 até
COM4, ou digite o nome da porta serial no formato
COMn, como por exemplo "COM15". Ao digitar o nome
da porta manualmente, a caixa de diálogo aceita apenas
nomes de portas começando com a expressão "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, como por exemplo 600
Data bits Selecione 7 (sete) ou 8 (oito) bits de dados a partir da lista
Parity Selecione a paridade a partir da lista. As opções
disponíveis são None, Even, Odd, Mark ou List
Stop bits Selecione o número de stop bits a partir da lista. As
opções disponíveis são 1, 1.5 ou 2 stop bits
Enable 'ECHO' supression Habilite esta opção para remover o eco recebido após a
Interface de Comunicação enviar dados pela porta serial.
Se o eco não é igual aos bytes recém enviados, a Interface
de Comunicação aborta a comunicação
Inter-byte delay (microseconds) Define uma espera entre cada byte transmitido pela
Interface de Comunicação, em milionésimos de segundo,
ou seja, 1000000 é igual a um segundo. Esta opção deve
ser utilizada com esperas pequenas de menos de um
milissegundo
Inter-frame delay (milliseconds) Define uma espera entre pacotes enviados ou recebidos
pela Interface de Comunicação, em milésimos de segundo,
ou seja, 1000 é igual a um segundo. Esta espera é

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
aplicada caso a Interface de Comunicação envie dois
pacotes consecutivos, ou entre um pacote recebido e o
próximo envio

O grupo Handshaking configura o uso dos sinais RTS, CTS e DTR no processo de handshaking ou seja, controlar
quando o dado pode ser enviado ou recebido através da linha serial. Na maioria das vezes, configurar a opção DTR
control para ON e a opção RTS control para Toggle funciona tanto com linhas seriais RS232 quanto com linhas seriais
RS485.

Opções disponíveis no grupo Handshaking

OPÇÃO DESCRIÇÃO
DTR control Selecione ON para deixar o sinal DTR sempre ligado
enquanto a porta serial está aberta. Selecione OFF para
desligar o sinal DTR enquanto a porta serial está aberta.
Alguns equipamentos exigem que o sinal DTR esteja
ligado para permitir a comunicação
RTS control Selecione ON para deixar o sinal RTS sempre ligado
enquanto a porta serial está aberta. Selecione OFF para
desligar o sinal RTS enquanto a porta serial está aberta.
Selecione Toggle para ligar o sinal RTS enquanto se envia
os bytes através da porta serial, e desligá-lo quando não
se está enviando bytes e, portanto, habilitando a recepção
Wait for CTS before send Disponível apenas quando a opção RTS control está
configurada para Toggle. Utilize esta opção para forçar o
Driver a verificar o sinal CTS antes de enviar os bytes
através da porta serial, após ligar o sinal de RTS. Neste
modo o sinal CTS é tratado como um flag de permissão
para envio
CTS timeout Determina o tempo máximo, em milissegundos, que o
Driver aguarda pelo sinal de CTS depois de ligar o sinal
de RTS. Se o sinal de CTS não é levantado dentro deste
time-out, o Driver falha a comunicação 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 é
ligado. Configure esta opção para aguardar uma
determinada quantidade de milissegundos depois de ligar
o sinal 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 sistema se
degrada conforme este valor aumenta
Delay after send Tem o mesmo efeito que a opção Delay before send, mas
neste caso a espera é efetuada depois que o último byte é
enviado, antes de desligar o sinal RTS

Aba Ethernet
Utilize esta aba para configurar os parâmetros da Interface Ethernet. Estes parâmetros, exceto as configurações da
porta, devem ser também configurados para uso na Interface RAS.

Driver DNP 3.0 Slave v4.0.36


Aba Ethernet

Opções disponíveis na aba Ethernet

OPÇÃO DESCRIÇÃO
Transport Selecione TCP/IP para um socket TCP (stream) ou selecione
UDP/IP para utilizar um socket UDP (connectionless
datagram)
Listen for connections on port Utilize esta opção para aguardar por novas conexões em
uma porta IP específica, comum em Drivers Escravos. Caso
esta opção permaneça desmarcada, o Driver se conecta ao
endereço e porta especificados na opção Connect to
Share listen port with other processes Selecione esta opção para compartilhar a porta de escuta
com outros Drivers e processos
Interface Selecione a interface de rede local, identificada por seu
endereço IP, que o Driver utiliza para efetuar e receber
conexões, ou selecione o item (All Interfaces) para permitir
conexões em qualquer interface de rede
Use IPv6 Selecione esta opção para forçar o Driver a utilizar
endereços no formato IPv6 em todas as conexões Ethernet.
Deixe esta opção desmarcada para utilizar o formato IPv4
Enable 'ECHO' suppression Habilite esta opção para eliminar o eco dos dados
recebidos. O eco é uma cópia dos dados que foram
enviados, que pode ser retornada antes da mensagem de
resposta
IP Filter Lista de endereços IP restringidos ou permitidos de onde o
Driver aceita conexões (Firewall). Consulte a propriedade
IO.Ethernet.IPFilter para mais informações
PING before connecting Habilite esta opção para executar um comando ping, ou
seja, verificar se o dispositivo pode ser encontrado na rede,

Driver DNP 3.0 Slave v4.0.36


OPÇÃO DESCRIÇÃO
no dispositivo antes de tentar uma conexão com o socket.
Esta é uma maneira rápida de determinar uma conexão
bem sucedida antes de tentar abrir um socket com o
dispositivo. O time-out de uma conexão com um socket
pode ser bem alto. As opções disponíveis são:
· Timeout: Especifique o número de milissegundos de
espera por uma resposta do comando ping. Deve-se
usar o comando ping para verificar o tempo normal de
resposta, configurando esta opção para um valor acima
desta média. Normalmente pode-se configurar um valor
entre 1000 e 4000 milissegundos, ou seja entre um e
quatro segundos
· Retries: Número de retentativas do comando ping, sem
contar a tentativa inicial. Se todos as tentativas falharem,
então a conexão com o socket é abortada

Opções disponíveis no grupo Connect to

OPÇÃO DESCRIÇÃO
Main IP Digite o endereço IP do dispositivo remoto. Pode-se usar
tanto o endereço IP separado por pontos quanto uma
URL. No caso de uma URL, o Driver usa o serviço de DNS
disponível para mapear a URL para um endereço IP, como
por exemplo "192.168.0.13" ou "Server1"
Port Digite a porta IP do dispositivo remoto, entre 0 (zero) e
65535
Local port Selecione esta opção para utilizar uma porta IP local fixa
ao conectar ao dispositivo remoto
Backup IP 1, 2 e 3 Indique o endereço IP, a porta IP e a porta IP local fixa de
até 3 (três) endereços de backup do dispositivo remoto

Aba Modem
Utilize esta aba para configurar os parâmetros da Interface Modem. Algumas opções da aba Serial afetam a
configuração do modem, portanto é interessante não esquecer de configurar a Interface Serial.

Driver DNP 3.0 Slave v4.0.36


Aba Modem

A Interface Modem utiliza os modems TAPI instalados no computador.

Opções disponíveis na aba Modem

OPÇÃO DESCRIÇÃO
Select the modem to use Selecione um modem a partir da lista de modems
disponíveis no computador. Caso selecione-se a opção
Default modem, então o primeiro modem disponível é
utilizado. Selecionar esta opção é recomendado
especialmente quando a aplicação é utilizada em outro
computador
Modem settings Clique para abrir a janela de configuração do modem
selecionado
Dial Number Digite o número padrão para discagem. Este valor pode
ser modificado em tempo de execução. Pode-se utilizar o
caractere w para representar uma pausa ou espera pelo
tom de discagem. Por exemplo, "0w33313456" disca o
número 0 (zero), espera e então disca o número
"33313456"
Accept incoming calls Habilite esta opção para que o Driver atenda o telefone
quando receber uma chamada externa. Para utilizar esta
opção é necessário configurar a opção Connection
management na aba Setup para Manual

Aba RAS
Use esta aba para configurar os parâmetros da Interface RAS. É necessário também configurar a aba Ethernet.

Driver DNP 3.0 Slave v4.0.36


A Interface RAS abre uma conexão socket com um dispositivo RAS. O dispositivo RAS é um servidor de modems acessível
através de TCP/IP, aguardando por conexões socket em uma porta IP. Para cada conexão aceita nesta porta tem-se
acesso a um modem.

Ao conectar-se a um dispositivo RAS, primeiramente a Interface de Comunicação conecta ao socket no endereço IP e na


porta configurados na aba Ethernet. Depois que o socket é aberto, os seguintes passos de inicialização ou de conexão
são efetuados:

1. Limpeza do socket, ou seja, remove qualquer mensagem de saudação TELNET recebida do dispositivo RAS.

2. Envio do comando de discagem AT (em ASCII) no socket.

3. Aguarda pela recepção de uma resposta CONNECT.

4. Caso o time-out expire, a conexão é abortada.

5. Se a resposta CONNECT é recebida dentro do time-out, o socket está disponível para comunicação com o
dispositivo, ou seja, a conexão foi estabelecida.

Se o passo 5 é efetuado com sucesso, então 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 são recebidos pelo
dispositivo RAS e enviados para o dispositivo de destino utilizando um modem. Os bytes recebidos pelo dispositivo RAS
do modem são enviados de volta ao Driver utilizando o mesmo socket.

Depois que a conexão é estabelecida, a Interface RAS monitora os dados recebidos pelo Driver. Caso uma String "NO
CARRIER" seja encontrada, o socket é fechado. Se o dispositivo RAS não envia o sinal NO CARRIER, a Interface RAS não
consegue detectar quando a conexão modem entre o dispositivo RAS e o dispositivo final de I/O falha. Para recuperação
de tal falha é fortemente recomendado que seja habilitada a opção Disconnect if non-responsive na aba Setup.

Aba RAS

Driver DNP 3.0 Slave v4.0.36


Opções disponíveis na aba RAS

OPÇÃO DESCRIÇÃO
AT command Uma String com o comando AT completo usado para
discar para o dispositivo de destino. Por exemplo,
"ATDT33313456" disca por tom para o número "33313456"
Connection timeout Número de segundos a aguardar por uma resposta
CONNECT do modem, após o envio do comando AT

Configurações Gerais
Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades gerais das
Interfaces de Comunicação.

Tags de Comunicação
Tags gerais das Interfaces de Comunicação (N2/B2 = 0)

Os Tags descritos a seguir são fornecidos para todas as Interfaces de I/O suportadas.

IO.IOKitEvent

Tipo de Tag Tag Bloco


Tipo de Acesso Somente Leitura
Parâmetro B1 -1 (menos um)
Parâmetro B2 0 (zero)
Parâmetro B3 0 (zero)
Parâmetro B4 1 (um)

Propriedade Size 4 (quatro)


Propriedade ParamItem IO.IOKitEvent

Este Bloco retorna eventos de Driver gerados por várias fontes nas Interfaces de Comunicação. A propriedade
TimeStamp do Bloco representa o momento em que o evento ocorreu. Os Elementos de Bloco são os seguintes:

· Elemento 0: Tipo de evento. Os valores possíveis são 0: Informação, 1: Advertência ou 2: Erro

· Elemento 1: Fonte do evento. Os valores possíveis são 0: Driver (específico do Driver), -1: IOKit (eventos genéricos
da Interface de Comunicação), -2: Interface Serial, -3: Interface Modem, -4: Interface Ethernet ou -5: Interface RAS

· Elemento 2: Número do erro, específico de cada fonte de evento

· Elemento 3: Mensagem do evento, uma String específica de cada evento

NOTA
O Driver mantém um número máximo de 100 eventos internamente. Se eventos adicionais são reportados, os eventos
mais antigos são descartados.

Driver DNP 3.0 Slave v4.0.36


IO.PhysicalLayerStatus

Tipo de Tag Tag de Comunicação

Tipo de Acesso Somente Leitura


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 2 (dois)

Configuração por String IO.PhysicalLayerStatus

Este Tag indica o estado da camada física. Os possíveis valores são os seguintes:

· 0: Camada física parada, ou seja, o Driver está em modo Offline, a camada física falhou ao inicializar ou excedeu o
número máximo de tentativas de reconexão

· 1: Camada física iniciada mas não conectada, ou seja, o Driver está em modo Online, mas a camada física não está
conectada. Se a opção Connection management estiver configurada para Automatic, a camada física pode estar
conectando, desconectando ou esperando por uma tentativa de reconexão. Se a opção Connection management
estiver configurada para Manual, então a camada física permanece neste estado até ser forçada a conectar

· 2: Camada física conectada, ou seja, a camada física está pronta para ser usada. Isto NÃO significa que o
equipamento esteja conectado, apenas que a camada de acesso está funcionando

IO.SetConfigurationParameters

Tipo de Tag Tag Bloco


Tipo de Acesso Somente Leitura
Parâmetro B1 -1 (menos um)

Parâmetro B2 0 (zero)
Parâmetro B3 0 (zero)
Parâmetro B4 3 (três)
Propriedade Size 2 (dois)
Propriedade ParamItem IO.SetConfigurationParameters

Use este Tag para modificar qualquer propriedade da caixa de diálogo de configuração do Driver em tempo de
execução.

Este Tag funciona somente enquanto o Driver estiver em modo Offline. Para iniciar o Driver em modo Offline, selecione
a opção Start driver OFFLINE na caixa de diálogo de configuração do Driver. Pode-se tanto escrever em um Tag PLC ou
em um Tag Bloco contendo os parâmetros a serem modificados. As escritas de Elementos de Bloco individuais não são
suportadas, o Bloco inteiro precisa ser escrito de uma vez só.

No Elipse SCADA é necessário usar um Tag Bloco. Cada parâmetro a ser configurado utiliza dois Elementos de Bloco.
Por exemplo, caso seja necessário configurar três parâmetros, então o tamanho do Bloco deve ser 6 (3 × 2). O primeiro
Elemento é o nome da propriedade, como uma String, e o segundo Elemento é o valor da propriedade, conforme o
exemplo a seguir.

Driver DNP 3.0 Slave v4.0.36


// 'Block' deve ser um Tag Bloco com leitura automática,
// leitura por varredura e escrita automática desabilitadas.
// Configura os parâmetros
Block.element001 = "IO.Type" // Parâmetro 1
Block.element002 = "Serial"
Block.element003 = "IO.Serial.Port" // Parâmetro 2
Block.element004 = 1
Block.element005 = "IO.Serial.BaudRate" // Parâmetro 3
Block.element006 = 19200
// Escreve o Bloco inteiro
Block.Write()

Ao usar o E3, a habilidade de criar arrays em tempo de execução permite o uso tanto de um Tag de Comunicação
quanto de um Tag Bloco. Pode-se utilizar o método Write do Driver para enviar os parâmetros diretamente para o
Driver, sem a necessidade de criar um Tag, conforme o exemplo 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
' Há dois métodos de enviar os parâmetros
' Método 1: Usando um Tag de Comunicação
tag.WriteEx arr
' Método 2: Sem utilizar um Tag
Driver.Write -1, 0, 0, 3, arr

Uma variação do exemplo anterior usa um array bidimensional.


Dim arr(10)
' Configura os elementos do array. Note que o array foi redimensionado
' para 10 elementos. Elementos vazios são 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 não valida nomes de parâmetros ou valores passados, por isto tenha cuidado ao escrever parâmetros e
valores. O comando Write falha se o array de configuração é criado incorretamente. Pode-se consultar o log do Driver
ou usar o parâmetro writeStatus do método WriteEx para descobrir 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 ao configurar os parâmetros do Driver: " + strError
End If

IO.WorkOnline

Tipo de Tag Tag de Comunicação


Tipo de Acesso Leitura ou Escrita
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 4 (quatro)
Configuração por String IO.WorkOnline

Driver DNP 3.0 Slave v4.0.36


Este Tag informa o estado atual do Driver e permite iniciar ou parar a camada física. Os valores possíveis são os
seguintes:

· 0 - Driver Offline: A camada física está fechada ou parada. Este modo permite uma configuração dinâmica dos
parâmetros do Driver através do Tag IO.SetConfigurationParameters

· 1 - Driver Online: A camada física está aberta ou em execução. Enquanto estiver em modo Online, a camada física
pode ser conectada ou desconectada e seu estado atual pode ser conferido no Tag IO.PhysicalLayerStatus

No exemplo a seguir, utilizando o E3, o Driver é colocado em modo Offline, a porta COM é modificada e então é
colocado em modo Online novamente.
'Configura o Driver em modo Offline
Driver.Write -1, 0, 0, 4, 0
'Muda a porta para COM2
Driver.Write -1, 0, 0, 3, Array("IO.Serial.Port", 2)
'Configura o Driver em modo Online
Driver.Write -1, 0, 0, 4, 1

O método Write pode falhar quando estiver configurando o Driver em modo Online , ou seja, escrevendo o valor 1
(um). Neste caso, o Driver permanece em modo Offline. A causa da falha pode ser:

· Tipo de camada física configurada incorretamente, provavelmente um valor inválido foi configurado para a
propriedade IO.Type

· O Driver pode ter ficado sem memória

· A camada física pode ter deixado de criar seu thread de trabalho. Procure no arquivo de log pela mensagem "Failed
to create physical layer thread!"

· A camada física não conseguiu inicializar. A causa da falha depende do tipo de camada física. Pode ser um número
de porta serial inválida, falha ao inicializar o Windows Sockets ou falha ao inicializar o TAPI (modem), entre outras. A
causa é gravada no arquivo de log

IMPORTANTE
Mesmo que a configuração do Driver para o modo Online seja bem sucedida, isto não significa necessariamente que a
camada física esteja pronta para uso, ou seja, pronta para executar operações de entrada e saída com um
equipamento externo. O Tag IO.PhysicalLayerStatus deve ser verificado para assegurar que a camada física esteja
conectada e preparada para a comunicação.

Propriedades
Estas são as propriedades gerais de todas as Interfaces de I/O suportadas.

IO.ConnectionMode
Controla o modo de gerenciamento da Conexão. Os valores possíveis são 0: Modo automático, em que o Driver
gerencia a conexão ou 1: Modo manual, em que a aplicação gerencia a conexão.

IO.GiveUpEnable

Quando configurada para Verdadeiro, define um número máximo de tentativas de reconexão. Se todas as reconexões
falharem, o Driver entra em modo Offline. Se configurada para Falso, o Driver tenta até que uma reconexão seja bem-
sucedida.

Driver DNP 3.0 Slave v4.0.36


IO.GiveUpTries
Número de tentativas de reconexão antes que esta seja abortada. Por exemplo, se o valor desta propriedade é igual a
1 (um), o Driver tenta apenas uma reconexão quando a conexão é perdida. Se esta falhar, o Driver entra em modo
Offline.

IO.InactivityEnable
Configure em Verdadeiro para habilitar e em Falso para desabilitar a detecção de inatividade. A camada física é
desconectada se estiver inativa por um certo período de tempo. A camada física é considerada inativa apenas se é capaz
de enviar dados mas não de recebê-los de volta.

IO.InactivityPeriodSec

Número de segundos para a verificação de inatividade. Se a camada física estiver inativa por este período de tempo,
então é desconectada.

IO.RecoverEnable
Configure em Verdadeiro para habilitar o Driver a recuperar conexões perdidas e em Falso para deixar o Driver em
modo Offline quando uma conexão é perdida.

IO.RecoverPeriodSec
Tempo de espera entre duas tentativas de conexão, em segundos.

NOTA
A primeira reconexão é executada imediatamente após a conexão ser perdida.

IO.StartOffline

Configure em Verdadeiro para iniciar o Driver em modo Offline e em Falso para iniciar o Driver em modo Online.

NOTA
Não faz sentido modificar esta propriedade em tempo de execução, já que esta só pode ser modificada quando o
Driver já estiver em modo Offline. Para configurar o Driver em modo Online em tempo de execução, escreva o valor 1
(um) no Tag IO.WorkOnline.

IO.TimeoutMs
Define o time-out da camada física, em milissegundos. Um segundo equivale a 1000 milissegundos.

IO.Type
Define o tipo de interface física utilizada pelo Driver. Os valores possíveis são os seguintes:

· N ou None: Não utiliza uma interface física, ou seja, o Driver deve fornecer uma interface personalizada

· S ou Serial: Utiliza uma porta serial local (COMn)

· M ou Modem: Utiliza um modem local, interno ou externo, acessado via TAPI (Telephony Application Programming
Interface)

Driver DNP 3.0 Slave v4.0.36


· E ou Ethernet: Utiliza um socket TCP/IP ou UDP/IP

· R ou RAS: Utiliza uma Interface RAS (Remote Access Server). O Driver conecta-se ao equipamento RAS através da
Interface Ethernet e então emite um comando AT (dial)

Configuração de Estatísticas
Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades das estatísticas das
Interfaces de Comunicação.

Tags de Comunicação
Tags de estatísticas das Interfaces de Comunicação (N2/B2 = 0)

Os Tags descritos a seguir mostram estatísticas para todas as Interfaces de Comunicação.

IO.Stats.Partial.BytesRecv

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1101

Configuração por String IO.Stats.Partial.BytesRecv

Este Tag retorna a quantidade de bytes recebidos na conexão atual.

IO.Stats.Partial.BytesSent

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1100
Configuração por String IO.Stats.Partial.BytesSent

Este Tag retorna a quantidade de bytes enviados na conexão atual.

Driver DNP 3.0 Slave v4.0.36


IO.Stats.Partial.TimeConnectedSeconds

Tipo de Tag Tag de Comunicação

Tipo de Acesso Somente Leitura


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1102

Configuração por String IO.Stats.Partial.TimeConnectedSeconds

Este Tag retorna o número de segundos que o Driver está conectado na conexão atual ou 0 (zero) se o Driver está
desconectado.

IO.Stats.Partial.TimeDisconnectedSeconds

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1103

Configuração por String IO.Stats.Partial.TimeDisconnectedSeconds

Este Tag retorna o número de segundos que o Driver está desconectado desde o término da última conexão ou 0 (zero)
se o Driver está conectado.

IO.Stats.Total.BytesRecv

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1001
Configuração por String IO.Stats.Total.BytesRecv

Este Tag retorna a quantidade de bytes recebidos desde que o Driver foi carregado.

Driver DNP 3.0 Slave v4.0.36


IO.Stats.Total.BytesSent

Tipo de Tag Tag de Comunicação

Tipo de Acesso Somente Leitura


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1000

Configuração por String IO.Stats.Total.BytesSent

Este Tag retorna a quantidade de bytes enviados desde que o Driver foi carregado.

IO.Stats.Total.ConnectionCount

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1004

Configuração por String IO.Stats.Total.ConnectionCount

Este Tag retorna a quantidade de conexões que o Driver já estabeleceu, com sucesso, desde que foi carregado.

IO.Stats.Total.TimeConnectedSeconds

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1002
Configuração por String IO.Stats.Total.TimeConnectedSeconds

Este Tag retorna o número de segundos que o Driver permaneceu conectado desde que foi carregado.

Driver DNP 3.0 Slave v4.0.36


IO.Stats.Total.TimeDisconnectedSeconds

Tipo de Tag Tag de Comunicação

Tipo de Acesso Somente Leitura


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 0 (zero)
Parâmetro N4 1003

Configuração por String IO.Stats.Total.TimeDisconnectedSeconds

Este Tag retorna o número de segundos que o Driver permaneceu desconectado desde que foi carregado.

Propriedades
Atualmente, não existem propriedades definidas especificamente para mostrar as estatísticas das Interfaces de
Comunicação em tempo de execução.

Configuração da Interface Ethernet


Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades da Interface
Ethernet.

Tags de Comunicação
Tags da Interface Ethernet (N2/B2 = 4)

Os Tags descritos a seguir permitem controlar e identificar a Interface Ethernet em tempo de execução e também são
válidos quando a Interface RAS estiver selecionada.

IMPORTANTE
Estes Tags estão disponíveis SOMENTE enquanto o Driver estiver em modo Online.

IO.Ethernet.IPSelect

Tipo de Tag Tag de Comunicação


Tipo de Acesso Leitura ou Escrita
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 4 (quatro)
Parâmetro N4 0 (zero)
Configuração por String IO.Ethernet.IPSelect

Driver DNP 3.0 Slave v4.0.36


Indica o endereço IP ativo. Os valores possíveis são 0: O endereço principal de IP está selecionado, 1: O primeiro
endereço IP alternativo ou de backup está selecionado, 2: O segundo endereço IP alternativo ou de backup está
selecionado ou 3: O terceiro endereço IP alternativo ou de backup está selecionado.

Se a Interface Ethernet ou RAS está conectada, este Tag indica qual dos quatro endereços IP configurados está em uso.
Se a Interface está desconectada, este Tag indica qual endereço IP é usado primeiro na próxima tentativa de conexão.

Durante o processo de conexão, se o endereço IP ativo não está disponível, a Interface de Comunicação tenta conectar-
se usando o outro endereço IP. Se a conexão com o endereço IP alternativo funcionar, este é configurado como o
endereço IP ativo (switchover automático).

Para forçar um switchover manual, escreva valores de 0 (zero) a três (3) neste Tag. Isto força a reconexão com o
endereço IP especificado (0: Endereço principal, 1, 2, 3: Endereços alternativos) se o Driver está atualmente conectado.
Se o Driver está desconectado, este Tag configura o endereço IP ativo para a próxima tentativa de conexão.

IO.Ethernet.IPSwitch

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Escrita
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 4 (quatro)
Parâmetro N4 1 (um)

Configuração por String IO.Ethernet.IPSwitch

Qualquer valor escrito neste Tag força um switchover manual. Se o endereço principal de IP está ativo, então o primeiro
endereço IP alternativo ou de backup é ativado, e assim por diante passando por todos os endereços IP alternativos e
voltando para o endereço principal até estabelecer uma conexão.

Se o Driver estiver desconectado, este Tag configura o endereço IP ativo para a próxima tentativa de conexão.

Propriedades
Estas propriedades controlam a configuração da Interface Ethernet.

NOTA
A Interface Ethernet também é usada pela Interface RAS.

IO.Ethernet.AcceptConnection

Configure em Falso se o Driver não deve aceitar conexões externas, ou seja, o Driver se comporta como mestre, ou
configure em Verdadeiro para habilitar a recepção de conexões, ou seja, o Driver se comporta como escravo.

IO.Ethernet.BackupEnable[2,3]
Configure em Verdadeiro para habilitar o endereço IP alternativo ou de backup. Se a tentativa de reconectar com o
endereço IP principal falhar, o Driver tenta utilizar um endereço IP alternativo ou de backup. Configure em Falso para
desabilitar sua utilização.

Driver DNP 3.0 Slave v4.0.36


IO.Ethernet.BackupIP[2,3]
Endereço IP alternativo ou de backup do equipamento remoto. Pode-se utilizar tanto o endereço numérico como o
nome de host do equipamento, como por exemplo "192.168.0.7" ou "SERVER2".

IO.Ethernet.BackupLocalPort[2,3]
Número da porta local a ser utilizada na conexão ao endereço IP alternativo ou de backup do equipamento remoto.
Usado apenas se a propriedade IO.Ethernet.BackupLocalPortEnable está configurada para Verdadeiro.

IO.Ethernet.BackupLocalPortEnable[2,3]
Configure em Verdadeiro para forçar o uso de uma porta local específica ao conectar ao endereço IP alternativo ou de
backup ou configure em Falso para utilizar qualquer porta local disponível.

IO.Ethernet.BackupPort[2,3]
Número da porta do endereço IP alternativo ou de backup do equipamento remoto, usado juntamente com a
propriedade IO.Ethernet.BackupIP.

IO.Ethernet.IPFilter
Lista de endereços IPv4 ou IPv6 separados por vírgula, que define de quais endereços o Driver aceita ou bloqueia
conexões. Pode-se utilizar asteriscos, como por exemplo "192.168.*.*", ou intervalos, como por exemplo "192.168.0.41-
50", em qualquer parte dos endereços IP. Para bloquear um endereço IP ou um intervalos de endereços IP, use o
caractere til ("~") no início do endereço. Exemplos:

· 192.168.0.24: Aceita apenas conexões do endereço IPv4 192.168.0.24

· 192.168.0.41-50: Aceita conexões dos endereços IPv4 no intervalo entre 192.168.0.41 e 192.168.0.50

· 192.168.0.*: Aceita conexões dos endereços IPv4 no intervalo entre 192.168.0.0 e 192.168.0.255

· fe80:3bf:877::*:* (expande para fe80:03bf:0877:0000:0000:0000:*:*): Aceita conexões de endereços IPv6 no


intervalo entre fe80:03bf:0877:0000:0000:0000:0000:0000 e fe80:03bf:0877:0000:0000:0000:ffff:ffff

· 192.168.0.10, 192.168.0.15, 192.168.0.20: Aceita conexões dos endereços IPv4 192.168.0.10, 192.168.0.15 e
192.168.0.20

· ~192.168.0.95, 192.168.0.*: Aceita conexões dos endereços IPv4 no intervalo entre 192.168.0.0 e 192.168.0.255,
exceto o endereço IPv4 192.168.0.95

Quando o Driver recebe uma tentativa de conexão, a lista de filtros é percorrida sequencialmente da esquerda para a
direita, procurando por uma autorização ou bloqueio específico para o endereço IP de onde veio a conexão. Se nenhum
elemento da lista corresponder ao endereço IP, a autorização ou bloqueio são ditados pelo último elemento da lista:

· Se o último elemento da lista é uma autorização, como por exemplo "192.168.0.24", então todos os endereços IP
não encontrados na lista são bloqueados

· Se o último elemento da lista é um bloqueio, como por exemplo "~192.168.0.24", então todos os endereços IP não
encontrados na lista são autorizados

Se um endereço IP aparecer em mais de um filtro da lista, o filtro mais à esquerda tem precedência. Por exemplo, no
caso de "~192.168.0.95, 192.168.0.*", o endereço IP 192.168.0.95 se encaixa nas duas regras, mas a regra que vale é a
mais à esquerda, "~192.168.0.95", e portanto o endereço IP é bloqueado.

Driver DNP 3.0 Slave v4.0.36


Quando o IOKit bloqueia uma conexão, a mensagem "Blocked incoming socket connection from {IP}!" é logada.

No caso de conexões UDP em modo escuta em broadcast, onde o Driver pode receber pacotes de diferentes endereços
IP, o bloqueio ou permissão é realizado a cada pacote recebido. Se um pacote é recebido de um endereço IP
bloqueado, a mensagem "Blocked incoming packet from {IP} (discarding {N} bytes)!" é logada.

IO.Ethernet.ListenIP
Endereço IP da interface local de rede por onde o Driver efetua e aceita conexões. Deixe esta propriedade vazia para
efetuar e aceitar conexões por qualquer interface local de rede.

IO.Ethernet.ListenPort
Número da porta IP utilizada pelo Driver para escutar conexões.

IO.Ethernet.MainIP

Endereço IP do equipamento remoto. Pode-se utilizar tanto o endereço numérico como o nome de host do
equipamento, como por exemplo "192.168.0.7" ou "SERVER2".

IO.Ethernet.MainLocalPort
Número da porta local a ser utilizada na conexão ao endereço IP principal do equipamento remoto. Este valor é usado
apenas se a propriedade IO.Ethernet.MainLocalPortEnable é igual a Verdadeiro.

IO.Ethernet.MainLocalPortEnable
Configure em Verdadeiro para forçar o uso de uma porta local específica ao conectar ao endereço IP principal ou
configure em Falso para utilizar qualquer porta local disponível.

IO.Ethernet.MainPort

Número da porta IP no equipamento remoto, usado em conjunto com a propriedade IO.Ethernet.MainIP.

IO.Ethernet.PingEnable
Configure em Verdadeiro para habilitar o envio de um comando ping para o endereço IP do equipamento remoto,
antes de tentar conectar-se ao socket. O time-out de conexão do socket não pode ser controlado, por isto o envio de um
comando ping antes de conectar-se é uma maneira rápida de detectar se a conexão vai falhar. Configure em Falso para
desabilitar o comando ping.

IO.Ethernet.PingTimeoutMs
Tempo de espera por uma resposta de um comando ping, em milissegundos.

IO.Ethernet.PingTries

Número máximo de tentativas de comandos ping. O valor mínimo é 1 (um), incluindo o primeiro comando ping.

IO.Ethernet.ShareListenPort
Configure em Verdadeiro para compartilhar a porta de escuta com outros Drivers e processos ou Falso para abrir a
porta de escuta em modo exclusivo. Para compartilhar uma porta de escuta com sucesso, todos os Drivers e processos
envolvidos devem abrir esta porta em modo compartilhado. Quando uma porta de escuta é compartilhada, cada nova
conexão é distribuída para um dos processos que estão escutando. Desta forma, se um Driver Escravo só suporta uma

Driver DNP 3.0 Slave v4.0.36


conexão por vez, pode-se utilizar várias instâncias deste Driver escutando na mesma porta, portanto simulando um
Driver com suporte a múltiplas conexões.

IO.Ethernet.SupressEcho

Configure em Verdadeiro para eliminar o eco presente em uma comunicação. O eco é a recepção indesejada de uma
cópia exata de todos os pacotes de dados que o Driver enviou para o equipamento.

IO.Ethernet.Transport
Define o protocolo de transporte. Os valores possíveis são T ou TCP: Utiliza o protocolo TCP/IP ou U ou UDP: Utiliza o
protocolo UDP/IP.

IO.Ethernet.UseIPv6

Configure em Verdadeiro para utilizar endereços IPv6 em todas as conexões Ethernet ou configure em Falso para
utilizar endereços IPv4 (padrão).

Configuração da Interface Modem


Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades da Interface
Modem (TAPI).

Tags de Comunicação
Tags da Interface Modem (N2/B2 = 3)

Os Tags descritos a seguir permitem controlar e diagnosticar a Interface Modem (TAPI) em tempo de execução.

IMPORTANTE
Estes Tags estão disponíveis SOMENTE enquanto o Driver estiver em modo Online.

IO.TAPI.ConnectionBaudRate

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 5 (cinco)
Configuração por String IO.TAPI.ConnectionBaudRate

Indica o valor de baud rate da conexão atual. Se o modem não estiver conectado, retorna o valor 0 (zero).

Driver DNP 3.0 Slave v4.0.36


IO.TAPI.Dial

Tipo de Tag Tag de Comunicação

Tipo de Acesso Somente Escrita


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 1 (um)

Configuração por String IO.TAPI.Dial

Escreva qualquer valor neste Tag para forçar a Interface Modem a iniciar uma chamada. Este comando é assíncrono,
apenas iniciando o processo de chamada. Pode-se monitorar o Tag IO.TAPI.IsModemConnected para detectar quando
a chamada é estabelecida.

IO.TAPI.HangUp

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Escrita
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 4 (quatro)

Configuração por String IO.TAPI.HangUp

Qualquer valor escrito neste Tag desliga a chamada atual.

NOTA
Use este comando apenas quando estiver gerenciando a camada física manualmente ou se estiver explicitamente
tentando forçar um Driver a reiniciar a comunicação. Se a camada física estiver configurada para reconexão automática,
o Driver imediatamente tenta restabelecer a conexão.

IO.TAPI.IsModemConnected

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 3 (três)
Configuração por String IO.TAPI.IsModemConnected

Driver DNP 3.0 Slave v4.0.36


Este Tag indica o estado da conexão do modem. Os valores possíveis são 0: O modem não está conectado, mas pode
estar realizando ou recebendo uma chamada externa ou 1: O modem está conectado e o Driver completou ou recebeu
uma chamada externa com sucesso. Enquanto estiver neste estado, a camada física consegue enviar ou receber dados.

IO.TAPI.IsModemConnecting

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)

Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 6 (seis)
Configuração por String IO.TAPI.IsModemConnecting

Este Tag indica o estado de conexão do modem, com mais detalhes do que o Tag IO.TAPI.IsModemConnected. Os
valores possíveis são 0: O modem não está conectado, 1: O modem está conectando, ou seja, realizando ou recebendo
uma chamada externa, 2: O modem está conectado. Enquanto estiver neste estado, a camada física consegue enviar ou
receber dados ou 3: O modem está desconectando a chamada atual.

IO.TAPI.ModemStatus

Tipo de Tag Tag de Comunicação


Tipo de Acesso Somente Leitura
Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)

Parâmetro N3 3 (três)
Parâmetro N4 2 (dois)
Configuração por String IO.TAPI.ModemStatus

Retorna uma String com o estado atual do modem. Os valores possíveis são os seguintes:

· "No status!": A Interface Modem ainda não foi aberta ou já foi fechada

· "Modem initialized OK!": A Interface Modem foi inicializada com sucesso

· "Modem error at initialization!": O Driver não conseguiu inicializar a linha do modem. Confira o arquivo de log do
Driver para maiores detalhes

· "Modem error at dial!": O Driver não conseguiu começar ou aceitar uma chamada

· "Connecting...": O Driver iniciou uma chamada com sucesso, e está atualmente processando esta chamada

· "Ringing...": Indica que o modem está recebendo uma chamada externa, mas ainda não a aceitou

· "Connected!": O Driver conectou-se com sucesso, ou seja, completou ou aceitou uma chamada externa

Driver DNP 3.0 Slave v4.0.36


· "Disconnecting...": O Driver está desligando a chamada atual

· "Disconnected OK!": O Driver desligou a chamada atual

· "Error: no dial tone!": O Driver abortou a chamada porque o sinal de linha disponível não foi detectado

· "Error: busy!": O Driver abortou a ligação porque a linha estava ocupada

· "Error: no answer!": O Driver abortou a chamada porque não recebeu resposta do outro modem

· "Error: unknown!": A chamada atual foi abortada por um erro desconhecido

IO.TAPI.PhoneNumber

Tipo de Tag Tag de Comunicação

Tipo de Acesso Leitura ou Escrita


Parâmetro N1 -1 (menos um)
Parâmetro N2 0 (zero)
Parâmetro N3 3 (três)
Parâmetro N4 0 (zero)
Configuração por String IO.TAPI.PhoneNumber

Este Tag é uma String que lê ou modifica o número do telefone utilizado pelo Tag IO.TAPI.Dial. Ao modificar este Tag,
o novo valor é usado apenas no próximo comando Dial.

Propriedades
Estas propriedades controlam a configuração da Interface Modem (TAPI).

IO.TAPI.AcceptIncoming

Configure em Falso se o modem não pode aceitar chamadas externas, ou seja, o Driver se comporta como mestre, e
configure em Verdadeiro para habilitar a recepção de chamadas, ou seja, o Driver se comporta como escravo.

IO.TAPI.ModemID
É o número de identificação do modem. Este ID é criado pelo Windows e é usado internamente para identificar o
modem dentro de uma lista de equipamentos instalados no computador. Este ID pode não permanecer válido caso o
modem seja reinstalado ou a aplicação seja executada em outro computador.

NOTA
Recomenda-se que esta propriedade seja configurada em 0 (zero), indicando que o Driver deve utilizar o primeiro
modem disponível.

IO.TAPI.PhoneNumber
O número de telefone utilizado em comandos Dial, como por exemplo "0w01234566", em que o caractere "w" força o
modem a esperar por um sinal de chamada.

Driver DNP 3.0 Slave v4.0.36


Configuração da Interface RAS
Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades da Interface RAS.

Tags de Comunicação
Tags da Interface RAS (N2/B2 = 5)

Atualmente, não existem Tags definidos especificamente para gerenciar a Interface RAS em tempo de execução.

Propriedades
Estas propriedades controlam a configuração da Interface RAS.

NOTA
A Interface RAS utiliza a Interface Ethernet, que por este motivo também deve ser configurada.

IO.RAS.ATCommand
Comando AT a ser enviado através do socket para forçar o equipamento RAS a realizar uma ligação usando o canal
RAS atual, como por exemplo "ATDT6265545".

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

Configuração da Interface Serial


Esta seção contém informações sobre a configuração dos Tags de Comunicação e as Propriedades da Interface Serial.

Tags de Comunicação
Tags da Interface Serial (N2/B2 = 2)

Atualmente, não existem Tags definidos especificamente para gerenciar a Interface Serial em tempo de execução.

Propriedades
Estas propriedades controlam a configuração da Interface Serial.

IO.Serial.Baudrate
Especifica a taxa de bauds da porta serial, como por exemplo 9600.

IO.Serial.CTSTimeoutMs
Tempo de espera pelo sinal CTS, em milissegundos. Após o sinal RTS ser ligado (ON), um temporizador é iniciado
para esperar pelo sinal CTS. Se este temporizador expirar, o Driver aborta o envio de bytes através da porta serial.
Disponível apenas quando a propriedade IO.Serial.RTS está configurada em Toggle e a propriedade IO.Serial.WaitCTS
está configurada em Verdadeiro.

Driver DNP 3.0 Slave v4.0.36


IO.Serial.DataBits
Especifica o número de bits de dados para a configuração da porta serial. Os valores possíveis são 5: Cinco bits de
dados, 6: Seis bits de dados, 7: Sete bits de dados ou 8: Oito bits de dados.

IO.Serial.DelayAfterMs
Número de milissegundos de atraso após o último byte ter sido enviado através da porta serial, mas antes de desligar
(OFF) o sinal RTS. Disponível apenas quando a propriedade IO.Serial.RTS está configurada em Toggle e a propriedade
IO.Serial.WaitCTS está configurada em Falso.

IO.Serial.DelayBeforeMs
Número de milissegundos de atraso após o sinal RTS ter sido ligado (ON), mas antes dos dados serem enviados.
Disponível apenas quando a propriedade IO.Serial.RTS está configurada em Toggle e a propriedade IO.Serial.WaitCTS
está configurada em Falso.

IO.Serial.DTR
Indica o modo como o Driver lida com o sinal DTR. Os valores possíveis são OFF: Sinal DTR sempre desligado ou ON:
Sinal DTR sempre ligado.

IO.Serial.InterbyteDelayUs
Tempo de espera, em milissegundos (1/1000000 de um segundo), para cada dois bytes enviados pela Interface Serial.

IO.Serial.InterframeDelayMs
Tempo de espera, em milissegundos, antes de enviar um pacote após o último pacote enviado ou recebido.

IO.Serial.Parity
Especifica a paridade para a configuração da porta serial. Os valores possíveis são E ou Even: Paridade par, N ou
None: Sem paridade, O ou Odd: Paridade ímpar, M ou Mark: Paridade de marca ou S ou Space: Paridade de espaço.

IO.Serial.Port
Número da porta serial local. Os valores possíveis são 1: Utiliza a porta COM1, 2: Utiliza a porta COM2, 3: Utiliza a
porta COM3 ou n: Utiliza a porta COMn.

IO.Serial.RTS
Indica como o Driver lida com o sinal RTS:. Os valores possíveis são OFF: Sinal RTS sempre desligado, ON: Sinal RTS
sempre ligado ou Toggle: Liga (ON) o sinal RTS quando estiver transmitindo dados e desliga (OFF) o sinal RTS quando
não estiver transmitindo dados.

IO.Serial.StopBits
Especifica o número de bits de parada para a configuração da porta serial. Os valores possíveis são 1: Um bit de
parada, 2: Um bit e meio de parada ou 3: Dois bits de parada.

IO.Serial.SupressEcho
Utilize um valor diferente de 0 (zero) para habilitar a supressão de eco ou 0 (zero) para desabilitá-la.

Driver DNP 3.0 Slave v4.0.36


IO.Serial.WaitCTS
Configure em Verdadeiro para forçar o Driver a esperar pelo sinal CTS antes de enviar bytes quando o sinal RTS
estiver ligado (ON). Disponível apenas quando a propriedade IO.Serial.RTS está configurada em Toggle.

Histórico de Revisões do Driver


VERSÃO DATA AUTOR COMENTÁRIOS
4.0.36 18/03/2021 M. Salvador · Adicionado suporte para
operações em UDP/IP (Case
27693).

C. Mello · Driver portado para o


Visual Studio 2017 (Case
27509).
4.0.17 14/02/2019 M. Salvador · Implementado suporte ao
comando Direct Operate
No Ack no Tag com o
parâmetro N2 igual a seis
(Case 26212).
4.0.16 16/10/2018 M. Salvador · Definido um valor padrão
(um) para o número de
conexões DNP (Case 25520).
4.0.15 08/10/2018M M. Salvador · Implementado o parâmetro
Item "DBR:valor" para
especificar uma banda
morta relativa (Case 24431).
· Corrigida a resposta de
requisições com um
qualificador 27h, ou 39 em
decimal (Case 24291).
· Adicionado um novo
Elemento no bloco de
leitura de comandos
(Control Block) para
identificar o Mestre que
enviou o comando (Case
22800).
· Adicionada uma opção para
desabilitar a reinicialização
via comandos Cold Restart
e Warm Restart (Case
22328).
· Corrigido um problema
com mensagens não
solicitadas após uma
desconexão (Case 21757).
· Adicionado suporte a
múltiplos canais (Case
21616).
· Corrigido um erro de
arredondamento no objeto
41v03 (Case 21162).

Driver DNP 3.0 Slave v4.0.36


VERSÃO DATA AUTOR COMENTÁRIOS
· Implementadas melhorias
nos logs da camada de
Data Link (Case 20168).
· Adicionada uma opção para
definir a banda morta
individualmente por Tag
(Case 20161).
· Modificada a banda morta
de pontos analógicos e
contadores para utilizar
casas decimais (Case
19337).
· Implementado um evento
para escrita de valores
nulos (Case 19117).
· Melhorias no sistema de
controle e tratamento de
sequenciamento de
mensagens (Case 18783).
· Implementadas funções
callback para Tags Bloco
(Case 18782).
4.0.1 20/02/2015 M. Salvador · Removidos os objetos de
comando da resposta de
classe zero (Case 18274).
· Adicionada uma opção para
gerar eventos na primeira
escrita de cada ponto (Case
18273).
· Melhorias nos logs de
comandos (Case 18176).
· Implementado um Tag com
o parâmetro N2 igual a -30
para invalidar todos os
Tags existentes na base de
dados (Case 18175).
· Adicionadas opções para
definir a pilha de eventos
das Classes um, dois e três
(Case 18085).
· Melhorias no
processamento de
mensagens não solicitadas
(Case 17836).
· Implementado suporte para
funções de callback (Case
17835).
· Implementado o tipo de
dados String (Case 16921).
· Driver portado para o IOKit
v2.00 (Case 15635).

Driver DNP 3.0 Slave v4.0.36


VERSÃO DATA AUTOR COMENTÁRIOS
3.2.1 22/02/2013 M.Salvador Mudança do ID de proteção.
3.1.1 31/05/2012 M. Salvador · Beta 1, 2: Modificações no
Bloco Único de Eventos.
· Beta 3: Correção no teste
de banda morta.
· Beta 4: Suporte à leitura do
Objeto 50 Variação 1 e
correção dos qualificadores
7 (sete) e 8 (oito).
· Beta 6: Implementação do
Objeto 1 Variação 1.
· Beta 11: Confirmação de
aplicação não pode ser
desmarcada, suporte a
mensagens de classe com
qualificador 7, suporte aos
Objetos 1 Variação 1
Qualificador 6 e Objeto 1
Variação 0.
· Beta 12, 13: Correções na
banda morta.
· Beta 14, 15: A função de
ordenação na resposta
estava invertendo a ordem
de pontos sem estampa de
tempo.
· Beta 16: Correção do Tag
OnOff.
· Beta 17: Limitação do
tamanho máximo da
camada de aplicação em
2048 bytes.
· Beta 18: Correção no
suporte a pontos duplos
nos Objetos 3 e 4.
· Beta 20: Implementação do
comando Cancel e
verificação de comando
Select sobre Select.
· Beta 22: Correção de
escrita do Objeto 10
Variação 1.
· Beta 23: Correção na
propagação de qualidade
na escrita de valores para
os eventos.
· Beta 24: Opção de
tratamento de pontos
analógicos se
desconectado.

Driver DNP 3.0 Slave v4.0.36


VERSÃO DATA AUTOR COMENTÁRIOS
· Beta 25: Opção de espera
pelo Reset of Remote Link
(anteriormente sempre
esperava).
· Beta 26: Opção Sort
Analog by Index.
· Beta 27: Opção Respond
Link Status estava
utilizando código incorreto.
· Beta 28: Mensagens de
Data Link de NACK não
estavam sendo tratadas.
Eventos de Objeto e
Variação diferentes na
mesma classe não eram
transmitidos ao mesmo
tempo.
· Beta 29: Opção de limitar
as mensagens de classe a
um fragmento de Data Link.
· Beta 30: Suporte a pedido
de evento com Variação 0 e
Qualificador 6.
· Beta 31: Suporte a
estampas de tempo
convertidas para GMT.
3.0.1 20/01/2010 M. Salvador · Reimplementada a camada
de aplicação (Case 8270).
1.1.1 31/08/2004 M. Salvador · Todas as publicações
anteriores ao controle de
revisões.

Driver DNP 3.0 Slave v4.0.36


Matriz Filial em São Paulo
Rua Mostardeiro, 322/Cj. 902, 1001 e Rua dos Pinheiros, 870/Cj. 141 e 142
1002 05422-001 — São Paulo — SP
90430-000 — Porto Alegre — RS Fone: (+55 11) 3061-2828
Fone: (+55 51) 3346-4699 Fax:(+55 11) 3086-2338
Fax: (+55 51) 3222-6226 E-mail: elipse-sp@elipse.com.br
E-mail: elipse-rs@elipse.com.br
Filial no Paraná Filial em Minas Gerais
Av. Sete de Setembro, 4698/1708 Rua Antônio de Albuquerque, 156/705
80240-000 — Curitiba — PR 30112-010 — Belo Horizonte — MG
Fone: (+55 41) 4062-5824 Fone: (+55 31) 4062-5824
E-mail: elipse-pr@elipse.com.br E-mail: elipse-mg@elipse.com.br

Filial no Rio de Janeiro Filial em Taiwan


Av. José Silva de A. Neto, 200/Bl. 4/Sl. 9F., No.12, Beiping 2nd St., Sanmin Dist.
109B 807 — Kaohsiung City — Taiwan
22250-044 — Rio de Janeiro — RJ Fone: (+886 7) 323-8468
Fone: (+55 21) 2430-5912 Fax: (+886 7) 323-9656
Suporte Técnico: (+55 21) 2430-5963 E-mail: evan@elipse.com.br
E-mail: elipse-rj@elipse.com.br

Consulte nosso website para informações sobre o representante do seu estado.

www.elipse.com.br
kb.elipse.com.br
forum.elipse.com.br
www.youtube.com/elipsesoftware
elipse@elipse.com.br

Gartner, Cool Vendors in Brazil 2014, April 2014.


Gartner does not endorse any vendor, product or service depicted in its research
publications, and does not advise technology users to select only those vendors
with the highest ratings. Gartner research publications consist of the opinions of
Gartner’s research organization and should not be construed as statements of fact.
Gartner disclaims all warranties, expressed or implied, with respect to this research,
including any warranties of merchantability of fitness for a particular purpose.

Copyright © 1998-2021 Elipse Software Ltda. Todos os direitos reservados.

Você também pode gostar