|
<< Clique para Mostrar o Sumário >>
Configuração de Gateway |
Para aplicações de gateway, em que é necessário o envio dos dados deste Driver para outros protocolos, tais como DNP 3.0 ou IEC 104, podem ocorrer situações em que, em caso de reinício de uma aplicação ou chaveamento para uma aplicação redundante, ou em Hot-Standby, há uma perda ou duplicação de eventos. Isto pode ocorrer quando um evento foi recebido por este Driver e repassado, mas ainda não foi recebido pelo Mestre remoto do outro protocolo, conforme o exemplo da figura a seguir.

Configuração de Gateway
A imagem anterior mostra que podem existir eventos transferidos e pendentes de transmissão nos diversos componentes, tais como IEC 61850 Server, IEC 61850 Client, DNP Slave ou DNP Master. Esta fila de eventos pendentes pode ser maior ou menor dependendo das configurações destes componentes e da arquitetura de rede, dentre outros fatores.
Quando ocorre um chaveamento do Gateway A para o Gateway B, por exemplo, os eventos que estavam pendentes de transmissão podem tanto serem perdidos ou duplicados, dependendo da configuração de uma aplicação. Isto porque o protocolo 61850 permite que sejam recebidas novamente as mensagens de Buffered Reports, a partir da programação do campo EntryID de cada Report, que é um identificador único de cada mensagem enviada.
Este Driver já possui um recurso de geração de arquivos com o último EntryID de cada Report, que é utilizado para habilitação dos Reports quando este Driver inicia novamente. Entretanto, estes EntryIDs são atualizados com base no instante de recepção das mensagens por este Driver, e não pela recepção de fato de um dado em um elemento externo. No caso do exemplo anterior, no Centro de Controle (Control Center).
Desta forma, ao habilitar o recurso de Gateway na opção Wait for Gtw Ref on Startup, este Driver espera que uma aplicação Elipse Power informe uma String que representa o endereço de um Tag em um outro Driver, como por exemplo DNP ou IEC 104 Escravo. Quando este outro Driver recebe a confirmação que um evento foi entregue ao Centro de Controle, DNP ou IEC 104 Mestre, que pode informar este Driver sobre este evento, e desta forma este Driver pode posicionar os controles de EntryID à frente para que, caso haja um novo chaveamento, o fluxo de eventos continue a partir deste último ponto, evitando assim ao máximo a perda ou repetição de eventos.

Gerenciamento de EntryIDs
Os passos para a configuração deste recurso são os seguintes:
1.Habilite as opções Check BRCB Entry ID, R/W Entry ID File (.EID) e Wait for Gtw Ref on Startup na aba Reports. Além disto, caso um IED utilize os mesmos Reports para os dois gateways, deve-se avaliar o uso de uma lista fixa de Reports na opção User Defined Report List, evitando assim que uma aplicação redundante tente habilitar outros Reports que não são os esperados.
2.Neste Driver, crie um Tag chamado "FinishedGtwRef" e dois Tags Bloco chamados "GatewayRef" e "GatewayEventOK. Estes Tags estão descritos no tópico Referência de Tags - Tags Internos.
3.Tomando o Driver DNP Escravo como exemplo, crie um Tag Bloco com o parâmetro N2 igual a -22, que recebe no evento OnRead uma lista com todos os eventos confirmados por um DNP Mestre. Consulte a documentação do Driver DNP Escravo e Mestre para mais informações.
4.Os Tags no Driver DNP Escravo devem receber Associações dos Tags deste Driver. Por exemplo, um Tag para um objeto DNP 3205 com índice 0 (zero) é alimentado por uma corrente de fase A vinda este Driver.
5.Uma aplicação, ao iniciar, deve inicializar as referências passando um texto que representa o endereço DNP para cada Tag deste Driver necessário para realizar o controle de EntryIDs. Porém esta escrita só pode ser realizada no momento em que este Driver está com os Logical Devices criados, caso contrário esta escrita falha. Para solucionar este problema, o exemplo a seguir mostra um Tag Interno que tenta enviar a configuração a cada 5 (cinco) segundos. A partir do momento que esta escrita é bem-sucedida, não há mais nenhuma tentativa. Ao final deste processo, o Tag FinishedGtwRef é escrito.
6.Também neste exemplo, a String de referência foi obtida através da união do objeto e variação do Tag DNP mais o índice. No Driver DNP Escravo, estes valores são obtidos nos parâmetros N3 e N4, respectivamente.
•Valor inicial do Tag InitGateway: True (Boolean)
•Evento WhileNotOK: Expressão: Value Repetir o Evento a cada 5000 ms
Sub InitGateway_WhileNotOK()
Set DNPSlave = Application.GetObject("DNPSlave")
Set Ref = Application.GetObject("IEC61850").Item("GatewayRef")
bFirst = FALSE
For Each tag in DNPSlave
If TypeName(tag) = "IOTag" Then
If tag.N2 = 1 Then
Source = tag.Links.Item("Value").Source
Set s = Application.GetObject(Source)
arr = Split(s.ParamDevice,":")
Ref.Item("IEDName").Value = arr(0)
Ref.Item("LDName").Value = arr(1)
Ref.Item("Object").Value = s.ParamItem
Ref.Item("Ref").Value = CStr(tag.N3) + ";" + CStr(tag.N4)
If NOT bFirst Then
bFirst = Ref.Write(1) 'sync
If NOT bFirst Then Exit Sub
Else
Ref.Write 2 'async unconfirmed
End If
End If
End If
Next
res = Application.GetObject("IEC61850").Item("FinishedGtwRef").WriteEx(2) 'async unconfirmed
If res Then Value = FALSE
End Sub
7.Quando o Tag Bloco EventOK é lido no Driver DNP Escravo, isto significa que um novo evento foi recebido pelo Driver DNP Mestre. O script a seguir obtém as informações deste evento e repassa a este Driver. No caso específico do Driver DNP Escravo, este Tag Bloco retorna algumas informações sobre este evento, como objeto e variação, índice, classe DNP, valor, estampa de tempo válida e estampa de tempo. Todos estes parâmetros são enviados para este Driver via escrita no Tag Bloco GatewayEventOK, exceto a classe DNP, que não é relevante.
Sub EventOK_OnRead()
Set IECBlock = Application.GetObject("IEC61850.GatewayEventOK")
IECBlock.Item("Ref").Value = CStr(Item("ObjVar").Value) + ";" + CStr(Item("Index").Value)
IECBlock.Item("Value").Value = Item("Value").Value
IECBlock.Item("TSValid").Value = Item("TSValid").Value
IECBlock.Item("Time").Value = Item("Time").Value
IECBlock.Write 2 'async
End Sub
8.Neste momento, este Driver posiciona os EntryIDs para o próximo evento pendente. Para sincronizar os EntryIDs com o computador redundante, é necessário seguir os passos indicados no tópico Redundância - Utilizando Arquivos EID.
9.Para posicionar os EntryIDs, este Driver utiliza a seguinte metodologia:
•Quando um novo Report é recebido, verifica se algum objeto teve uma variação de valor ou qualidade. Caso positivo, um evento é adicionado à uma lista interna individual por objeto.
•Quando um evento é quitado por um Driver externo e recebido pelo Tag Bloco GatewayEventOK, a lista interna é comparada com o evento removido da seguinte forma:
•Se a estampa de tempo não é válida, ou seja, um Tag nos Drivers DNP ou IEC 104 não está usando estampa de tempo, todos os eventos são removidos desta lista
•Se a estampa de tempo é válida, os eventos são removidos se são iguais ou mais antigos que o evento recebido
Para evitar processamentos desnecessários, recomenda-se que apenas sejam adicionadas referências de Tags que não podem ter mudanças perdidas ou duplicadas, tipicamente Tags digitais ou de estados simples ou duplos com estampa de tempo. Também recomenda-se que, neste caso, os Datasets associados aos Reports sejam separados por tipo de Tag, como por exemplo não colocar no mesmo Dataset Tags Digitais e Analógicos, de forma a evitar a recepção de valores analógicos antigos sem necessidade.