Vous êtes sur la page 1sur 20

DNPMaster.DLL Driver DNP 3.0 Verso 3.

02 Manual do Usurio

DNP Driver

Ficha Tcnica Arquivo Fabricante Protocolos Suportados Plataforma DNPMaster.DLL Protocolo DNP 3.0 DNP 3.0 Win32

Verso do Driver V3.02 Dependncias IOKit v1.15

1 Introduo sobre o Protocolo DNP 3.0


Este driver implementa o protocolo DNP 3.0 no modo mestre, de acordo com os nveis 2 e 3. O DNP (Distributed Network Protocol) um protocolo de comunicaes aberto e no-proprietrio, baseado nas especificaes do IEC (International Eletrotechnical Commission), adaptado para ser utilizado em aplicaes altamente seguras, velocidade e quantidade de dados moderada. extremamente flexvel 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 fsica, data link e aplicao somente. Tal modelo chamado EPA (Enhanced Performance Architecture). A figura abaixo mostra a estrutura da EPA e seu sistema de comunicao.

User Layer Application Layer Data Link Layer Physical Layer Communication Media

A camada do usurio (User Layer) pode ser definida como o local que o usurio manipular os dados, depois de todas as comunicaes. Nos softwares da Elipse, ela representada pela aplicao do usurio. A camada do usurio faz uso da camada de aplicao do driver para enviar/receber mensagens completas para ou de uma estao. A camada de aplicao responsvel por especificar em detalhes os pedidos da camada do usurio, e de volta ela quando a mensagem vem da camada de Data Link. Em outras palavras, ela junta as mensagens da camada do usurio, chamadas de fragmentos, numa mensagem de mltiplos fragmentos com informao completa para ser processada e enviada para uma estao pela camada de Data Link.

DNP Driver

A camada de Data Link usada para passar as mensagens entre as estaes primria (originadora) e secundria (recebedora). Ela tambm empacota os dados, os checa contra erros de transmisso e os envia para a rede TCP/IP. O protocolo DNP pode ser configurado para trocas de mensagens via polling (comunicao constante), ou via Integridade Mudanas (mais eficiente). O envio das mudanas tambm conhecido como RBE (Report by Exception) pode ocorrer de forma espontnea (No Solicitada) ou no espontnea atravs da solicitao explcita do lado mestre pelas mudanas.

1.1 Cdigos de Funo


O cdigo de funo identifica o propsito da mensagem. Existem dois grupos de funes; um para pedidos e outro para as respostas. H vrios tipos de funes para pedidos, como mostrado abaixo. As funes de resposta so usadas internamente e no so abertas ao usurio. Tabela 1 Cdigos de Funo
Code Funo Descrio

1 2 3

Read Write Select

4 5 6 7 9 10 11 13 14 20 21 22 23

Operate Direct Operate Direct Operate NO ACK Immediate Freeze Freeze and Clear Freeze and Clear No ACK

Freeze with Time

Cold Restart Warm Restart Enable Unsolicited Messages Disable Unsolicited Messages Assign Classes Delay Measurement

Solicita os objetos especificados da remota; responde com os objetos pedidos que esto disponveis. Armazena os objetos especificados na remota; responde com o status da operao. Seleciona ou arma pontos de sada mas no seta ou produz qualquer ao (controles, setpoints ou sadas analgicas); responde com o status da operao. A funo Operate deve ser usada para ativar estas sadas. Seta ou produz aes nas sadas ou pontos previamente selecionados com a funo Select. Seleciona e Opera as sadas especificadas; respond com o status dos pontos de controle. Seleciona e Opera as sadas especificadas mas no envia resposta (porm leva menos tempo); Copia os objetos especificados para um buffer de congelamento. Copia os objetos especificados para um buffer de congelamento, depois zera os objetos. Copia os objetos especificados para um buffer de congelamento, depois zera os objetos, mas no envia resposta de confirmao. Copia os objetos especificados para um buffer de congelamento no instante especificado, repondendo com o status da operao. Realiza uma sequencia de reset Realiza uma sequencia parcial de reset. Habilita a notificao espontnea dos objetos especificados. Desabilita a notificao espontnea dos objetos especificados Associa os objetos especificados para uma classe. Permite aplicao calcular o atraso (tempo de propagao) para uma estao em particular.

1.2 Cabealho de Objeto (Object Header)


O cabealho de objeto de uma mensagem identifica os objetos de dados que esto contidos na mensagem ou que sero utilizados na resposta para a mensagem. composto basicamente de:
Objeto + Variao Qualificador Faixa

DNP Driver

1.3 Objetos
Os dispositivos inteligentes que usam a camada de Aplicao do protocolo DNP so capazes de monitorar, controlar e/ou produzir um grande nmero de dados. Estes dados, chamados de elementos de informao, so processados e armazenados como objetos de informao, que so padronizados de forma a atingir meios de descrev-los e represent-los de forma nica. Existem quatro tipos de categorias de objetos de dados: Objetos Estticos (Static Objects): So os objetos que refletem o valor atual de uma varivel de campo ou interna. Objetos de Evento (Event Objects): So os objetos que so gerados como o resultado de uma mudana de valor ou outro estimulante. So objetos histricos, ou seja, refletem o valor de um dado em algum instante no passado. Objetos Estticos Congelados (Frozen Static Objects): Refletem o valor congelado atual de uma varivel de campo ou interna. Dados so congelados como o resultado de um pedido de congelamento de dados. Objetos de Evento Congelados (Frozen Event Objects): So os objetos resultantes da mudana de um valor congelado ou outro estmulo. So objetos histricos, ou seja, refletem o valor de um dado em algum instante no passado. Cada categoria representada com um objeto diferente, a saber:
Objeto Descrio

Entradas Digitais Sadas Digitais Contadores Entradas Analgicas Sadas Analgicas Tempo Classes Arquivos Dispositivos Aplicaes Numricos alternativos

O grupo de entradas digitais contm todos os objetos que representam entradas binrias (status ou atributos booleanos). Vo de 1 a 9. O grupo de sadas digitais contm todos os objetos que representam sadas binrias ou informao de controle de rels. Vo de 10 a 19. Este grupo contm todos os objetos contadores. 20 a 29. Contm todas as entradas analgicas, e vo de 30 a 39. Contm todas as sadas analgicas, e vo de 40 a 49. Contm todos os objetos que representam tempo em forma absoluta ou relativa, e vo de 50 a 59. Este grupo contm todos os objetos que representam classes de dados ou prioridade de dados. De 60 a 69. Arquivos ou sistema de arquivos. De 70 a 79. De 80 a 89. Objetos que representam aplicaes de software ou processos do sistema operacional. De 90 a 99. Representaes numricas customizadas. De 100 a 109.

importante observar que um objeto esttico quando sofre variao capaz de gerar um objeto de evento indicando esta mudana - entretanto ambos representam o mesmo objeto.

1.4 Variao
So modificaes ou sub-tipos que podem ocorrer nos objetos. Como exemplo, uma entrada digital pode ser representada apenas por um nico bit (0 ou 1), por uma palavra de status (um byte) ou ainda conter ou no a informao de tempo (timestamp). Sendo assim, a combinao do objeto mais a variao descrevem completamente uma informao. Exemplos: Objeto 01 Variao 01 representa uma entrada digital sem status (apenas um bit); Objeto 01 Variao 02 representa uma entrada digital com status (um byte); Objeto 02 Variao 01 representa uma mudana de entrada digital sem a informao de tempo;
DNP Driver 4

Objeto 02 Variao 02 representa uma mudana de entrada digital com a informao de tempo. Apesar de ambos objetos estarem relacionados mesma entrada digital, esta informao pode ser simbolizada de maneiras diferentes.

1.5 Qualificador
Especifica o significado do campo Faixa (Range).

1.6 Faixa (Range)


Indica a quantidade de objetos, ndices iniciais e finais ou identificadores para os objetos em questo.

1.7 Classes
Os objetos declarados em um sistema/equipamento que implementa o protocolo DNP modo escravo podem ser agrupados em classes. O protocolo DNP define 4 classes padronizadas, definidas a seguir: Classe 0: Significa todos os objetos. Ou seja, o driver (lado mestre) na inicializao pode realizar um pedido de classe 0, e na resposta o lado escravo enviar o valor corrente de todos os objetos declarados. Classe 1 a 3: So entidades que armazenam temporariamente listas de eventos (mudanas) nos objetos. Cada objeto precisa estar configurado no lado escravo para gerar eventos quando h mudanas, e geralmente h um padro entre os usurios de DNP para reservar a classe 1 para eventos digitais, classe 2 para eventos analgicos e classe 3 para contadores.

2 Introduo sobre o Driver Elipse DNP 3.0


O Driver Elipse DNP 3.0 implementa o comportamento Mestre do protocolo DNP, de acordo com a especificao de nvel 2 e algumas das funcionalidades de nvel 3. Recomenda-se a utilizao das seguintes configuraes: - Habilitao da Classe 0 na inicializao e a intervalos regulares (veja pgina seguinte) : Desta forma todos os tags tero um valor ao iniciar a aplicao; - Utilizao de Mensagens no solicitadas OU Scan de eventos a intervalos regulares: A atualizao dos dados (conforme ocorrem mudanas) poder ser enviada de forma no solicitada pelo lado escravo OU atravs de solicitaes de eventos (Classes 1,2 e 3) automaticamente pelo driver. - Configurao dos tags utilizando objetos de eventos ao invs de objetos estticos : Tags configurados como objetos estticos geram comunicao por polling (troca constante de mensagens) o que gera trfego desnecessrio. Tags configurados como eventos no fazem comunicao e so atualizados automaticamente conforme chegam mensagens de integridade ou de mudanas conforme exposto acima.

3 - Configurao do Driver
3.1 Parmetros [P] de configurao do driver
P1 No usado (manter o valor em zero) P2 No usado (manter o valor em zero) P3 No usado (manter o valor em zero) P4 Deixar em zero. Caso esteja utilizando o equipamento Toshiba Regulator, configurar para 1.

DNP Driver

3.2 Configuraes extras


Aba DNP

Figura 1: Configuraes extras - DNP

App Timeout (ms): o tempo mximo que a camada de aplicao esperar por uma resposta completa da camada de Data Link. Se o recebimento do pedido est em andamento pela camada de DataLink, este tempo estendido automaticamente at o termino da recepo pela camada de DataLink. Valor Padro: Depende da taxa de comunicao utilizada, mas recomenda-se que este valor seja igual ou superior ao valor de timeout do IOKIT (aba Setup). O valor de timeout do IOKIT representa o timeout byte a byte da mensagem, enquanto que o App Timeout representa uma ou mais mensagens completas de data link. App Read Retries: Nmero de retentativas de comunicao feitas pela camada de aplicao no caso de erro de Leitura. Valor Padro: 0. App Write Retries: Nmero de retentativas de comunicao feitas pela camada de aplicao no caso de erro de Escrita. Valor Padro: 0. Master Address: Este o endereo da estao mestre (PC). Control Relay Off-Time: Quando so enviados comandos de rels (Control Relay Commands) com tags individuais, este campo indica o tempo normal de desligado ou off -time para os comandos de Pulso On/Off ou Latch On/Off Control Relay On-Time: Quando so enviados comandos de rels (Control Relay Commands) com tags individuais, este campo indica o tempo normal de ligado ou on-time para os comandos de Pulso On/Off ou Latch On/Off. Default Slave Address: Endereo DNP padro do Dispositivo, a ser utilizando quando o campo N1 de cada tag estiver em 0 (zero). Delay Between Messages: Tempo de atraso a ser aplicado entre cada mensagem enviada pelo driver, em milisegundos. Error Count for Inactive State: Indica quantos erros consecutivos o driver deve considerar para colocar o dispositivo em estado INATIVO. O Driver tentar comunicar novamente com este dispositivo no prximo scan de qualquer tag do mesmo endereo ou somente no tempo informado na propriedade Demotion Time, caso este recurso seja utilizado. Extra Sync Offset: Tempo adicional (positivo ou negativo) a ser adicionado aos comandos de sincronismo.

DNP Driver

Control Block Qualifier: Ao realizar um comando de escrita de bloco de controle (comando de sada digital, como Direct Operate, Select, Operate, etc..) necessrio o envio de um qualificador que pode variar de equipamento para equipamento. Os valores possveis neste campo so 39 (ou 27h) para o campo range com 1 byte e objeto prefixado com 2 bytes, ou 40 (ou 28h) para o campo range com 2 bytes e objeto prefixado com 2 bytes. Consulte o device profile de seu equipamento para descobrir o qualificador correto. IIN Qualifier: Quando o dispositivo escravo informa uma reinicializao, o driver realiza uma escrita para o objeto de indicao interna (Internal Indications Object), informando o reconhecimento do evento. Use este campo para informar o qualificador (presente no documento Slave Device Profile do dispositivo escravo). Os valores mais comuns so 0 ( 1 byte de indice de inicio e fim) e 1 ( 2 bytes de indice de inicio e fim). Perform Class 0 Integrity On Startup: Realiza um pedido de Classe 0 ao iniciar o driver, que obtem toda a base de dados do equipamento, fazendo com que todos os tags sejam atualizados. Os Tags de eventos, neste caso, tero a Propriedade TimeStamp como sendo o horrio da recepo dos dados, e a Propriedade Qualidade ser 216. Enable Unsolicited on Startup: Indica se o driver deve enviar o comando de habilitao de mensagens no solicitadas ao iniciar a comunicao. Initialize Upon Receiving Device Restart: Indica se o driver deve enviar os comandos de inicializao do dispositivo (reset link, classe 0 e enable unsolicited caso habilitados) quando receber uma mensagem que o dispositivo foi reiniciado. Scan for Events Every X ms: Envia um comando de leitura de classes 1, 2 ou 3 no intuito de verificar se existem eventos no equipamento. Indique o intervalo de tempo que o comando ser repetido. Perform Class 0 Integrity every X ms: Realiza um pedido de Classe 0 ciclicamente, com o objetivo apenas de checar a base de dados do driver, verificando se a base do equipamento est idntica. O tempo padro para isso de 10 ou 15 minutos. Aba Other

Figura 2: Demais Configuraes DNP

Counter DeadBand (units): Banda Morta em unidades, a serem checadas na verificao de novos eventos para os contadores.

DNP Driver

Analog DeadBand (units): Banda Morta em unidades, a serem checadas na verificao de novos eventos para os pontos analgicos. Select/Operate Message Timeout: Tempo mximo para o bloqueio de outras mensagens exceto o operate, logo aps um comando de select. Use Auto Demotion: Habilita o sistema de auto-demotion que retira e insere automaticamente de comunicao os escravos que estiverem INATIVOS, ou seja, com erro de comunicao. Este procedimento utilizado quando dois ou mais escravos utilizam o mesmo canal, evitando assim que um escravo nesse estado monopolize a utilizao do canal. Demotion Time: Tempo em segundos que o driver tentar comunicar com cada escravo INATIVO, a fim de verificar se a comunicao est ok, colocando-o de volta no estado ATIVO. Use Local Time Zone as Sync/Event Time Offset: Instrui o driver a considerar o a diferena de horrio oficial do Windows em relao ao UTC/GMT para todos os eventos e solicitaes de sincronismo de horrio. Esta funo til quando o lado DNP Servidor tem o horrio UTC mas se deseja informar o horrio relativo local para a aplicao. Use Callbacks: Caso esteja usando a verso do IOKIT 1.15 ou superior, o driver pode ser configurado para utilizar callbacks ou chamadas assncronas para o Elipse E3, fazendo com que este ltimo receba imediatamente os valores dos objetos que chegam na comunicao (Neste caso a taxa de scan no utilizada). Caso esta opo estiver desabilitada, ou se estiver usando uma verso do IOKIT anterior ao 1.15, os tags levaro mais tempo para serem atualizados (em mdia mais o tempo de scan definido). Check Select/Operate Message Sequence: Permite a utilizao de comandos de operate controlando o numero de sequncia da mensagem para que seja imediatamente subsequente ao comando de select. Marcando esta opo o driver no enviar nenhum comando exceto o de operate at que um tempo mximo para a operao seja excedido. Select/Operate Timeout: Caso o item anterior estiver setado, este campo indica o tempo mximo esperado entre a mensagem de operate aps o select conforme exposto. Aps esse perodo, caso no seja enviada a mensagem de operate, o driver permitir o envio de outras mensagens. Driver in Listen Mode: Neste modo, o driver no transmitir nada, mas pode interpretar respostas, recebidas de um sniffer da comunicao entre outros mestres e um escravo. Use Single Block Read for All Events: Atravs desta opo, todos os eventos que forem enviados pelo dispositivo sero reportados num nico Tag Bloco. Esta opo til para concentrar todos os eventos a fim de gerar logs especficos de eventos, por exemplo. Discard Events out of Order (by TimeStamp Info): Para os objetos que possuem informao de TimeStamp, esta opo faz com que eventos cujo timestamp for mais antigo do que o ltimo processado sejam descartados. Scan for Files: Indica que o driver deve tentar realizar transferncias de arquivos do dispositivo. Deve ser escolhido o perfil de coleta, sendo que nesta verso s suportado o perfil Pextron. Wait for Unsolicited Messages after Startup (ms): Indica quanto tempo o driver deve esperar por mensagens no solicitadas aps se conectar, com o objetivo de obter eventos recentes antes de realizar o pedido de integridade (Classe 0). Desta forma, os pontos que tiverem eventos ficaro com qualidade 192 e o timestamp correto, visto que na resposta da integridade os objetos no possuem timestamp.

DNP Driver

Aba Private Objects

Figura 3: Configuraes extras Private Objects

Os objetos proprietrios so declaraes que podem ser criadas entre cada fabricante, e refletem estruturas de dados compostas de tipos bsicos de dados do DNP. A janela acima apresenta duas listas: a da direita so declarados os objetos, compostos de um ndice (number), um cdigo de at quatro caracteres para o fabricante ( vendor), um nmero de identificao do objeto para o fabricante (obj ID), e o tamanho em bytes total do objeto (bytes). A lista pode ser editada pelos botes [Add], [Update] e [Del]. Ao clicar sobre cada uma das linhas, podem ser inseridos os objetos DNP que faro parte de cada um dos PROs (Private Registration Objects). Devem ser informados o cdigo do objeto, variao e quantidade. A ordem na qual os objetos aparece tambm importante, logo, isso pode ser modificado pelas setas, ou editados pelos botes [Add], [Update] e [Del]. Ao utilizar a declarao de objetos de tempo (tipo 50), este ser usado como TimeStamp do PRO. A opo Return All PRO Instances as one indexed block tag faz com que todos os PROs sejam enviados ao mesmo tag bloco, desde que possua o mesmo endereo DNP. Nesse caso, o bloco dever ser criado com um elemento a mais do que a declarao do PRO, pois o primeiro elemento do mesmo conter o ndice do PRO, e em seguida viro os outros elementos, cada um com uma das variveis declaradas no PRO.

3.3 Parmetros [N] de endereamento de tags PLC


N1 Endereo do escravo ou 0 para usar o Default Slave Adress N2 Cdigo de funo a realizar (ver tabela 1) N3 Cdigo do objeto e variao (ver tabela 2) N4 Endereo da varivel ou nmero N3 deve ser informado como um parmetro, com a seguinte frmula: Objeto * 100 + Variao. Object Code o tipo de objeto (por exemplo, Binary Inputs) e Variation um subtipo. Consulte a tabela 2 para saber dos objetos e variaes suportados. N4 o endereo da varivel ou nmero, no importando se um ponto fsico ou lgico.

DNP Driver

Tabela 1 Cdigos de funes suportadas


N2 R/W Operao

-34

-33

R/W

-32 -31 -30 -22

R/W R/W R/W R

-21 -20 -14 -13

R R/W W R/w

-11 -10 -7 -6 0

R/W R W W R

Dados para canais analgicos do arquivo comtrade (perfil Pextron). N3 indica o canal, de 0 a 7. Deve ser usado um bloco com at 8 elementos. Index=0 Nome do Canal Index =1 Constante A Index =2 Constante B Index =3 Valor Mximo do Canal Index =4 Valor Mnimo do Canal Index =5 Constante RPV Index =6 Constante RSV Index =7 Circuito Primrio ou Secundrio (deve ser p, P, s ou S) Dados para a transferencia do perfil Pextron N3=0 Indica que um arquivo acabou de ser gravado (pulso em 1) N3=1 Numero de arquivos que faltam para transmitir N3=2 (Write) Solicita a coleta de arquivo Pextron (instantneo) N3=3 (Write) Solicita o incio de contagem randomica para coleta de arquivo Pextron (vai contar o tempo para solicitar a coleta) Nome base do arquivo comtrade Nome do circuito para arquivos comtrade Diretorio para armazenamento de arquivos Retorna uma WORD contendo os Internal Indications, IIN1 no byte LOW e IIN2 no byte HIGH Bit 0: All stations message received Bit 1: Class 1 data available Bit2: Class 2 data available Bit3: Class 3 data available Bit 4: Time sync required Bit 5: Points in local state Bit 6:Device Trouble Bit 7:Device Restart Bit 8:Not implemented Bit 9:Requested objects unknown Bit 10:Parameters not valid Bit 11:Buffer overflow Bit 12:operation already executing Bit 13:Configuration Corrupted Bit 14:Not used Bit 15:Not used Endereo indicado em N1 ativo/inativo (0=INATIVO,1=ATIVO) On/Off do endereo indicado em N1 (0=OFF,1=ON) Solicita reinicio de inicializao (reset link, Classe 0, etc...) Estatsticas de Comunicao N4=0 (Write Only) Zera Estatsticas N4=1 Frames Enviados N4=2 Frames sem Resposta N4=3 Erros de CRC no formato da Resposta N4=4 Erros de Envio N4=5 Retentativas de Transmisso N4=6 Frames Recebidos N4=7 Bytes Enviados N4=8 Bytes Recebidos Solicita Classe 0 (Integridade) LinkStatus Sincronizao de tempo (procedimento Ethernet) Sincronizao de tempo (escreve o horrio do PC na remota) READ FROM CACHE: Remove todos os eventos que estiverem disponveis para o Tag deixando o ltimo evento como o valor atual para o tag. Para os objetos estticos faz uma comunicao de leitura antes (funo READ).
10

DNP Driver

1 2 3 4 5 6 7 9 10 11 13 14 20 21 22 23 50 51 101

R W W W W W W W W W W W W W W R R R R

READ EVENTS: Retorna todos os eventos que estiverem disponveis para o Tag. Para os objetos estticos faz uma comunicao de leitura antes (funo READ). Write Select Operate Direct Operate Direct Operate No ACK Immediate Freeze Freeze and Clear Freeze and Clear No ACK Freeze with Time Cold Restart Warm Restart Enable Unsolicited Messages Disable Unsolicited Messages Assign Classes Delay Measurement Single Block Event AutoZero Bad Read: Funo usada quando o Tag recebe um evento de mudana apenas de subida (0 para 1), e nunca de descida (1 para 0). Neste caso o driver insere um evento de valor 0 antes de retornar cada evento em 1. READ (INTEGRIDADE) - Faz uma integridade solicitando todos os pontos que houverem do tipo de objeto*100 + variao declarado em N3. Pode ser tambm usada a variao 0, correspondendo qualquer objeto informado no importando a variao. Esta funo realiza uma comunicao (integridade) cada vez que o tag for lido.

Tabela 2 Objetos/variaes/qualificadores/funes suportadas


Obj Var Nome do objeto Cdigo de funo no pedido (N2)

1 1 2 2 2 3 3 4 4 10 10 12 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21
DNP Driver

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

Binary Input w/o Status Binary Input w/ Status Binary Input Change w/o Time Binary Input Change w/ Time Binary Input Change w/ Relative Time Double bit binary Input w/o Status Double bit binary Input w/ Status Double bit binary Input Change w/o Time Double bit binary Input Change w Time Binary Output Binary Output Status Control Relay Output Block 32-bit Counter 16-bit Binary Counter 32-bit Delta Counter 16-bit Delta Counter 32-bit Counter w/o Flag 16-bit Counter w/o Flag 32-bit Delta Counter w/o Flag 16-bit Delta Counter w/o Flag 32-bit Frozen Counter 16-bit Frozen Counter 32-bit Frozen Delta Counter 16-bit Frozen Delta Counter 32-bit Frozen Counter w/ Time Of Freeze 16-bit Frozen Counter w/ Time Of Freeze 32-bit Frozen Delta Counter w/ Time Of Freeze 16-bit Frozen Delta Counter w/ Time Of Freeze

1 1 1 1 1 1 1 1 1 1 1 3,4,5,6 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11
11

Obj

Var

Nome do objeto

Cdigo de funo no pedido (N2)

21 21 21 21 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 30 30 30 30 30 31 31 31 31 31 31 31 32 32 32 32 32 32 33 33 33 33 33 33 34 34 34 40 40 40 41 50 51 51 52 60 60 60 60 80 83

9 10 11 12 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2 3 4 5 6 7 1 2 3 4 5 7 1 2 3 4 5 7 1 2 3 1 2 3 2 1 1 2 2 1 2 3 4 1 1

32-bit Frozen Counter w/o Flag 16-bit Frozen Counter w/o Flag 32-bit Frozen Delta Counter w/o Flag 16-bit Frozen Delta Counter w/o Flag 32-bit Counter Change Event w/o Time 16-bit Counter Change Event w/o Time 32-bit Delta Counter Change Event w/o Time 16-bit Delta Counter Change Event w/o Time 32-bit Counter Change Event w/ Time 16-bit Counter Change Event w/ Time 32-bit Delta Counter Change Event w/ Time 16-bit Delta Counter Change Event w/ Time 32-bit Counter Change Event w/o Time 16-bit Frozen Counter Event w/o Time 32-bit Frozen Delta Counter Event w/o Time 16-bit Frozen Delta Counter w/o Time 32-bit Frozen Counter Event w/ Time 16-bit Frozen Counter Event w/ Time 32-bit Frozen Delta Counter Event w/ Time 16-bit Frozen Delta Counter Event w/ Time 32-bit Analog Input 16-bit Analog Input 32-bit Analog Input w/o Flag 16-bit Analog Input w/o Flag 32-bit Analog Input Floating Point 32-bit Frozen Analog Input 16-bit Frozen Analog Input 32-bit Frozen Analog Input w/ Time Of Freeze 16-bit Frozen Analog Input w/ Time Of Freeze 32-bit Frozen Analog Input w/o Flag 16-bit Frozen Analog Input w/o Flag 32-bit Frozen Analog Input Floating Point 32-bit Change Event w/o Time 16-bit Change Event w/o Time 32-bit Analog Change w/ Time 16-bit Analog Change Event w/ Time 32-bit Analog Change Floating Point w/o Time 32-bit Analog Change Floating Point with Time 32-bit Frozen Analog Event w/o Time 16-bit Frozen Analog Event w/o Time 32-bit Frozen Analog Event w/ Time 16-bit Frozen Analog Event w/ Time 32-bit Frozen Analog Floating Point w/o Time 32-bit Frozen Analog Floating Point with Time 16-bit Analog Input Deadband 32-bit Analog Input Deadband 32-bit Analog Input Floating Point DeadBand 32-bit Analog Output Status 16-bit Analog Output Status 32-bit Analog Output Status Floating Point 16-bit Analog Output Block Time and Date Time and Date CTO Unsynchronized Time and CTO Time Delay Fine Class 0 Data Class 1 Data Class 2 Data Class 3 Data Internal Indications Pro

1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1,7,9,10,11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2,3,4,5,6 1,2 1 1 1 1 1 1 1 1, 2 1

Obj = Cdigo de Objeto; Var = Variao; CTO = Common Time of Occurrence

DNP Driver

12

OBS: Objetos Estticos em VERMELHO, Eventos em AZUL

Tabela 3 Qualificadores utilizados


Objeto / Variao Objetos Estticos em Geral (READ) Obj 34 (WRITE) Obj 60 (Classes) ou Pedidos Gerais de Integridade (READ) Obj 50 (WRITE) Obj 80 (WRITE) Obj 12, Obj 41 (SELECT,OPERATE, etc.) Qualificador Envio 1 1 6 7 Definido pelo usurio Definido pelo usurio Qualificador Recepo 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 0, 1, 7, 8, 17, 18, 27, 28, 47, 58 0, 1, 7, 8, 17, 18, 27, 28, 47, 58

3.4 Parmetros [B] de endereamento de tags bloco


B1 Endereo do escravo B2 Cdigo de funo a realizar (ver tabela 1) B3 Cdigo do objeto e variao (Objeto * 100 + Variao) B4 Endereo inicial da varivel ou nmero A utilizao de blocos para leitura de eventos no permitida pois todos os elementos do bloco compartilham um nico timestamp, o que no pode ser aceito pois cada evento tem seu prprio instante de ocorrncia. Por isto, para leitura o parmetro B2 deve ser igual a 0 (READ FROM CACHE). A exceo o uso do Bloco nico de eventos pois neste caso, o timestamp de cada evento ser reportado em um elemento fixo do bloco.

3.5 Exemplos de Configurao de Tags


Supondo um equipamento configurado com o endereo DNP=3, seguem exemplos dos parmetros N1, N2, N3 e N4 no padro N1.N2.N3.N4: Entrada Digital 100, Objeto 1 Variao 2: 3.1.102.100 (configurado como objeto esttico) Entrada Digital 100, Objeto 2 Variao 2: 3.1.202.100 (configurado como evento) No exemplo acima, ambos os tags referenciam a mesma varivel (Entrada digital 100). Porm o primeiro tag fica continuamente perguntando o valor atual (polling) enquanto que o segundo apenas recebe notificaes quando o ponto mudou de valor. Alm disso, na forma de evento o timestamp de mudana originado no equipamento mantido, j no modo esttico (como no existe timestamp) este gerado com o horrio do computador na chegada do evento.

4. Comentrios Gerais

DNP Driver

13

4.1 Integridade dos Dados e Eventos


O comando de integridade realiza um pedido de todos os dados configurados no escravo, para todos os objetos (Classe 0) ou para objetos especficos. Devido particularidade do protocolo DNP enviar na integridade o valor atual das variveis (portanto como objetos estticos) e no como eventos, faz-se necessrio que o Driver Elipse DNP processe estas informaes de forma a unificar o valor esttico com o valor de evento, de forma que a aplicao possua apenas um nico tag para o ponto. Desta forma, se a aplicao utiliza os tags como eventos (conforme recomendado neste manual) ento durante a inicializao, ao receber uma integridade (classe 0) com o valor esttico de um ponto, ser gerado um evento provisrio com a propriedade de qualidade (Quality) igual a 216, indicando que o timestamp utilizado no foi gerado pelo equipamento, mas sim pelo horrio local do computador, devido ausncia desta informao na integridade. Assim que houver a recepo de um evento para o tag em questo, ento a sua qualidade passar a 192 e a propriedade Timestamp refletir o timestamp recebido no evento, caso o objeto o contenha. Obs: Os valores de qualidade expostos acima pressupem que os status do objeto estejam informando uma situao normal, caso contrrio os valores de qualidade refletiro o status ruim do ponto conforme exposto no item 4.5 (informao de qualidade).

4.2 Leitura de Eventos


A recepo de eventos pelo driver fundamental para que os tags configurados como eventos recebam seus valores. O driver s descobrir que existem dados disponveis para uma das classes de eventos (1,2 ou 3) se o sistema utilizar pelo menos uma das opes abaixo: A opo Scan for Events Every X ms na configurao do driver estiver habilitada. Isto vai instruir o driver a solicitar as classes 1,2 ou 3 a intervalos fixos, recebendo a indicao de eventos. O Equipamento envia eventos espontaneamente atravs de mensagens no solicitadas. A aplicao possui ao menos um tag configurado para a leitura de uma varivel esttica qualquer. (Ex: entrada/sada digital ou analgica, contador, etc.)

4.3 Comando de Rels (Control Relay Output Block)


Ao utilizar o comando de rels (Objeto 12, Variao 1) enviada uma srie de dados pelo driver, como vemos seguir. Byte 0: Control Code O valor do tag atribudo no Elipse ser copiado para este byte, que especifica detalhes sobre a operao do comando. Este campo subdividido da seguinte maneira:
Bit Significado 7 6 5 Clear 4 Queue 3 2 Code 1 0

Trip/Close

Trip/Close: Este campo determina que rel de controle ser ativado num sistema onde um par de rels trip e close usado para energizar e desenergizar os pontos no campo. Os valor possveis so (em binrio): 00 = NUL, 01 = Close, 10 = Trip. O valor NUL pode ser usado para ativar o rel de seleo sem ativar os rels de trip ou close. Num sistema sem rels de seleo, o valor NUL no realizar nenhuma operao. J num sistema sem rels trip/close, este campo deve ser sempre NUL para indicar uma operao normal de controle digital onde o ponto exato de controle implcito ou totalmente conhecido. Este campo no suporta os comandos de Trip e Close simultaneamente, sendo esta uma operao ilegal.
DNP Driver 14

Clear: Se o comando possui este campo em 1 (ligado), todas as operaes de controle so removidas da fila incluindo o comando que estiver sendo executado e esta operao de controle realizada. Queue (Fila): Indica a colocao do comando numa fila de comandos no equipamento. Se este campo 0 (NUL) ento nenhuma operao 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 funo de controle executada e completada removida da fila. Se o comando em questo tiver o atributo Queue ligado, ento a operao enfileirada novamente (posicionada no fim da fila) para aquele ponto. Code: Este campo especifica o tipo de operao 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 questo. No segundo, cada controle realizado at ser completado antes do prximo comando ser aceito para aquele ponto. Valores possveis para CODE (em binrio)
Valor Operao Descrio

0000 NUL 0001 PULSE ON 0010 PULSE OFF 0011 LATCH ON 0100 LATCH OFF

Nenhuma operao realizada. O(s) ponto(s) (so) ligado(s) pelo tempo especificado em on-time, desligado(s) pelo tempo off-time e deixado no estado OFF. O(s) ponto(s) (so) desligado(s) pelo tempo especificado em off-time, ligado(s) pelo tempo on-time e deixado no estado ON. Mantm o(s) ponto(s) no estado ON. Mantm o(s) ponto(s) no estado OFF.

Outros valores fora desta tabela no so definidos. Byte 1: Count Este byte indica quantas vezes a operao ser executada. Este valor mantido fixo em 1 (um) pelo driver. Bytes 2 a 5: On Time Tempo on-time em milisegundos. definido na configurao Extra do driver, e fixo para todos os comandos. Bytes 6 a 9: Off Time Tempo off-time em milisegundos. definido na configurao Extra do driver, e fixo para todos os comandos.

DNP Driver

15

Byte 10: Status Status da operao, retornando pelo driver se a operao foi concluda com sucesso. O Status s interpretado na resposta, e pode ser usado pela aplicao para verificar se o comando foi executado com sucesso. Os cdigos so: 0 : Comando executado corretamente (incluindo operaes de Select e Operate) 1: Operate enviado aps o tempo mximo de select definido no escravo 2:O Operate foi enviado sem um Select prvio 3:Erros de Formatao na mensagem 4:Operao no suportada para o ponto em questo 5:Fila cheia ou ponto j est ativo 6:Problemas de Hardware Outros: Cdigos de erro no padronizados

O valor do campo Status pode ser obtido no Elipse E3 atravs do parmetro WStatus do mtodo WriteEx dos Tags ou Blocos (Veja exemplo abaixo). Para envio dos comandos, pode ser utilizado tanto um tag PLC (ou IOtag) quanto um tag Bloco. Ao usar um tag PLC, deve ser atribudo ao tag um nmero de 0 a 255 correspondendo ao Control Code (Byte 0 da mensagem). Os bytes restantes so obtidos das configuraes padro do driver, definidas na janela de extras. Para o tag bloco deve ser usado um script que execute a funo Write() do bloco. Para isso, o bloco dever possuir apenas quatro elementos, que devem possuir a propriedade de escrita individual desabilitada, com os seguintes elementos: Elemento 0 = Control Code Elemento 1 = Count Elemento 2 = Relay OnTime Elemento 3 = Relay OffTime Este recurso poder ser utilizado caso sejam necessarias programacoes individuais de comandos para cada ponto, desprezando as configuraes default de temporizao OnTime e OffTime. Exemplo de script (Elipse E3) usando um tag de comando simples

DNP Driver

16

Valor = 65 // Cdigo da Operao msg = MsgBox(Quer enviar comando?, 292, "Comando") If msg = 7 Then MsgBox Comando abortado, 48, "Desistncia" ElseIf msg = 6 Then If MsgBox(Confirma o envio do comando?, 292, "Ateno") = 6 Then Set Tag = Application.GetObject(DriverDNP.NomedoTag) IF Tag.WriteEx(Valor,,,WStatus) = false Then MsgBox Erro no envio do comando, 48, "Erro" Else If WStatus <> 0 Then MsgTrack = Comando no Executado," EndText = "" select case WStatus case 1 Endtext = " Operate recebido depois do Timeout de Seleo" case 2 Endtext = " Sem Mensagem de Seleo anterior" case 3 Endtext = " Erro de Formatao no Comando" case 4 Endtext = " Operao no 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 no definido" end select MsgBox MsgTrack & EndText, 48, Erro End If End If End If

Exemplo de script (Elipse SCADA) usando um bloco com quatro elementos Configuraes: B2=5 (DIRECT OPERATE), B3 = 1201
Block1.Element0 Block1.Element1 Block1.Element2 Block1.Element3 Block1.Write() = = = = 65 // operation code 1 // count 500 // on time 500 // off time

4.4 Bloco nico de Eventos


Caso a opo Use Single Block Read for All Events estiver setada, voce poder utilizar um bloco para receber todos os eventos de forma concentrada. O bloco tem a configurao: N1 = Endereo DNP N2 = 50 N3,N4 = no utilizados Tamanho: pode possuir at 7 elementos, sendo eles: Elemento 0: Objeto Elemento 1: Variao Elemento 2: ndice Elemento 3: Status Elemento 4: Valor Elemento 5: TimeStamp Elemento 6: Qualidade

DNP Driver

17

OBS: O Bloco nico de eventos no pode ser usado em conjunto com outros tags de evento em uma aplicao.

4.5 Informao de Qualidade


Para os objetos que possuem indicao de status (a grande maioria) o driver realiza um mapeamento do status para o padro OPC que utilizado no Elipse E3, exposto a seguir:

Para objetos 1,2 e 10:


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

OL (ONLINE): em 0, Q = 12 (BAD, DEVICE FAILURE) CL (COMM LOST): em 1, Q = 12 (BAD, DEVICE FAILURE) RS (RESTART): em 1, Q = 68 (UNCERTAIN) CF (CHATTER FILTER) em 1, Q = 80 (UNCERTAIN) RF (REMOTE FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE) LF (LOCAL FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE)

Para o objeto 40:


Bit Siginficado 7 0 6 RE 5 OR 4 LF 3 RF 2 CL 1 RS 0 OL

OL (ONLINE): em 0, Q = 12 (BAD, DEVICE FAILURE) CL (COMM LOST): em 1, Q = 12 (BAD, DEVICE FAILURE) RS (RESTART): em 1, Q = 68 (UNCERTAIN) RE (REFERENCE ERROR): em 1, Q = 80 (UNCERTAIN) OR (OVER RANGE): em 1, Q = 66 (UNCERTAIN) RF (REMOTE FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE) LF (LOCAL FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE)

Para demais objetos:


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

OL (ONLINE): em 0, Q = 12 (BAD, DEVICE FAILURE) CL (COMM LOST): em 1, Q = 12 (BAD, DEVICE FAILURE)


DNP Driver 18

RS (RESTART): em 1, Q = 68 (UNCERTAIN) Bits 5 ou 6 em 1, Q = 80 (UNCERTAIN) RF (REMOTE FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE) LF (LOCAL FORCED): em 1, Q = 216 (GOOD, LOCAL OVERRIDE)

Obs: Vale lembrar que de acordo com o padro OPC, se a qualidade for maior ou igual a 192 considerada BOA (GOOD).

4.6 Coleta de Arquivos e gravao no padro COMTRADE


Caso a coleta de arquivos no Perfil Pextron esteja habilitado, o driver seguir os seguintes passos: 1. Ao iniciar o driver, contado um tempo randmico entre 0 e 13 minutos, aps o qual ser feita uma tentativa de coleta. Caso a coleta tenha sucesso, o arquivo ser salvo e sua existncia ser indicada pelo tag DNPADD.-33.0.X . O nmero de arquivos que faltam ser transferidos indicado pelo tag DNPADD.-33.1.X. 2. A aplicao poder escrever no tag DNPADD.-33.2.X para solicitar uma nova coleta imediata, o no tag DNPADD.-33.3.X para solicitar uma nova coleta aps o tempo randmico. Em ambos os casos a coleta ser feita independentemente se o tag DNPADD.-33.1.X indicar 0 ou mais coletas a serem transferidas. 3. Caso nenhum tag seja escrito, o driver no far novas coletas. 4. A configurao dos canais, diretorio e nome do arquivo devem ser definidas antes do incio da coleta.

Histrico das revises do driver


Verso Data Autor Comentrios

3.02

2012-05-31

M. Salvador

Inclui as seguintes alteraes disponveis em verses Beta: Beta 1: Correes no Bloco nico de Eventos Beta 2: Suporte Leitura objeto 50 Var 01 Correo Qualificadores 7 e 8 Ao conectar, a solicitao de eventos feita antes da Classe 0 Beta 3: Correo verificao de eventos fora de ordem Beta 4: Tempo de espera por Mensagens no solicitadas em ms Beta 5: Verificao de eventos fora de ordem individual por tag Beta 6: Correo de mensagem de Log quando h erro de CRC Beta 7: Correo na informao de qualidade do Bloco nico de Eventos Beta 8,9: Correo no numero de sequencia esperado na camada de aplicao Beta 10: Correo pontos duplos objetos 3 e 4 Beta 11: Tag indicando numero de frames recebidos Beta 12: Comando de Write Objeto 10 Variao 1 Beta 13: Diminuio tempo de espera de transmisso quando no est conectado Beta 14: Tag N2=-21 s informa ATIVO aps ter recebido a resposta de um RESET OF REMOTE LINK do escravo Beta 15: Tratamento de 05 duplicado no inicio do frame (ex: 05 05 64)
19

DNP Driver

3.01

2009-12-14

M. Salvador

3.00

2009-11-30

M. Salvador

2.29

2008-11-30

M. Salvador

2.28

2006-10-29

M. Salvador

2.20

2005-12-20

M. Salvador

2.19

2005-10-11

M. Salvador

2.18 v2.17 v1.00

2005-09-30 2005.06.24 2004.08.03

M.Salvador M.Salvador M.Salvador

Beta 16: Separados os processos de Envio, Recepo e Verificao Beta 17: Processo de Envio agora sncrono com a camada de aplicao; Beta 18: Opo de aplicar o Local Time Zone a eventos e sincronismo Beta 19: Opo de descartar eventos fora de ordem estava sendo sempre aplicada Beta 20: Estatsticas de Bytes Enviados e Recebidos Beta 21: Melhorias de desempenho com utilizao de muitos tags com callbacks Beta 22: Correo tratamento objeto 10 variao 1 Beta 23: Liberao de confirmao de mensagens de aplicao mesmo sem um reset of remote link, para permitir o processamento de mensagens no solicitadas recebidas imediatamente aps a conexo Beta 24: Adio do tag de indicao de IIN (-22) - Correo case 11020. A conexo era considerada inativa assim que entrava em estado ativo, devido um erro de digitao interno. - Mudana de nome da dll para DNPMaster.dll - Implementao das opes de Read from Cache e Read Events, tornando o comportamento do driver similar ao do driver IEC 60870101/104. - Reviso da documentao - Correo Sincronismo para mais de um escravo no mesmo link. - Correo revalidao dos pontos aps queda de conexo - Correo de Leitura de Blocos com tipo Float - Correo na mensagem de verificao de eventos (a mesma classe solicitada mais de uma vez na mesma mensagem) - Correo competio entre processos quando em Select. - Opo de Inicializao no Device Restart - Coleta de Arquivos - Retentativas de Leitura e Escrita Independentes - Bloco nico de Eventos - Habilitao de Msg No Solicitadas ao Iniciar - Controle On/Off para cada endereo - Controle de Ativo/Inativo para cada endereo - Controle de Demotion automtico - Melhorias no processo de atualizao da base de dados - Leitura de eventos baseada em solicitao de classes ao invs do comando de leitura de relgio - Sistema de Integridades e Pollings Internos. - Correo de Congelamento dos valores. - Adicionado suporte ao equipamento Toshiba Regulator (case 5768) - Todas as publicaes anteriores ao controle de revises.

DNP Driver

20

Vous aimerez peut-être aussi