Tag Bloco de Tratamento do Comando de Seleção ou Execução

<< Clique para Mostrar o Sumário >>

 

Tag Bloco de Tratamento do Comando de Seleção ou Execução

Protocolos

IEC 870-5-104 SLAVE

Parâmetros Numéricos

B1: Número da Estação, B2: 4 (quatro, leitura de dados da memória cache), B3: ASDU (45 a 51, 58 a 64) e B4: Endereço do Objeto

Parâmetros por String

Não disponível

Tamanho do Bloco

Quatro Elementos

Escrita

Envia para um Mestre a resposta do Comando de Seleção ou Execução

Leitura

Recebe os Comandos de Seleção ou Execução enviados por um Mestre

ASDUs

C_SC_NA_1 (45), C_DC_NA_1 (46), C_RC_NA_1 (47), C_SE_NA_1 (48), C_SE_NB_1 (49), C_SE_NC_1 (50), C_BO_NA_1 (15), C_SC_TA_1 (58), C_DC_TA_1 (59), C_RC_TA_1 (60), C_SE_TA_1 (61), C_SE_TB_1 (62), C_SE_TC_1 (63) e C_BO_TA_1 (64)

 

O parâmetro B3 pode ser um dos seguintes valores:

45 (C_SC_NA_1): Single command

46 (C_DC_NA_1): Double command

47 (C_RC_NA_1): Regulating step command

48 (C_SE_NA_1): Set point command, normalized value

49 (C_SE_NB_1): Set point command, scaled value

50 (C_SE_NC_1): Set point command, short floating point number

51 (C_BO_NA_1): Bitstream of 32 bits

58 (C_SC_TA_1): Single command (with 7-octet timestamp)

59 (C_DC_TA_1): Double command (with 7-octet timestamp)

60 (C_RC_TA_1): Regulating step command (with 7-octet timestamp)

61 (C_SE_TA_1): Set point command, normalized value (with 7-octet timestamp)

62 (C_SE_TB_1): Set point command, scaled value (with 7-octet timestamp)

63 (C_SE_TC_1): Set point command, short floating point number (with 7-octet timestamp)

64 (C_BO_TA_1): Bitstream of 32 bits (with 7-octet timestamp)

 

Quando este Driver recebe um dos Comandos descritos anteriormente, este Tag Bloco recebe um Bloco com informações sobre este Comando. No evento OnRead deste Tag Bloco, a aplicação deve tratar a informação recebida, alterando os Elementos de Bloco necessários e escrevendo o Bloco de volta para este Driver, de forma que este Driver possa enviar uma resposta a um Mestre. Os Elementos do Tag Bloco são os seguintes:

0: Valor do Comando, dependendo do tipo de Comando

1: Causa da Transmissão (6: Ativar ou 8: Desativar)

2: Seleção ou Execução (0: Execução ou 1: Seleção)

3: Qualidade do Comando (0: Indefinido, 1: Pulso de Curta Duração, 2: Pulso de Longa Duração ou 3: Saída Persistente)

 

Quando uma indicação de Comando de Ativação, ou seja, o Elemento 1 (um) igual a 6 (seis), é recebida, a aplicação deve responder imediatamente com um dos seguintes valores:

Uma Causa de Transmissão ACTCON positiva se este Comando pode prosseguir, ou seja, o Elemento 1 (um) igual a 7 (sete)

Uma Causa de Transmissão ACTCON negativa se este Comando não pode prosseguir, ou seja, o Elemento 1 (um) igual a 135 (128 + 7)

 

Se uma Causa de Transmissão ACTCON positiva é enviada, a aplicação deve então verificar o Elemento 2 (dois, Seleção ou Execução) e executar a ação apropriada.

Se um Comando de Execução é requisitado, a aplicação deve executar este Comando e depois enviar uma Causa de Transmissão ACTTERM, ou seja, o Elemento 1 (um) igual a 10 (activation termination), para indicar que este Comando foi executado. O exemplo a seguir mostra um evento OnRead para este Tag Bloco no E3 ou Elipse Power.

' CMDIndication é um Tag Bloco de tamanho 4. Os parâmetros deste Tag são:
' AdviseType     = 0 (AlwaysInAdvise)
' AllowRead      = True
' AllowWrite     = False
' B1             = <endereço da estação>
' B2             = 4
' B3             = 45 a 51, 58 a 64
' B4             = <endereço do ponto de comando>
' EnableDeadband = False
' Size           = 4
 
Sub CMDIndication_OnRead()
  Dim CMD, SE, COT, QU
  CMD = Item(1).Value ' Valor do comando (depende do comando)
  COT = Item(2).Value ' COT (cause of transmission)
  SE  = Item(3).Value ' 1=Select, 0=Execute
  QU  = Item(4).Value ' Quality of command
 
  Select Case COT
    Case 6
      ' ACT(6) deve ser respondido com ACTCON(7)
      WriteEx Array(CMD, 7, SE, QU), TimeStamp
 
      If SE = 0 Then
        ' TODO: Execute aqui o comando, provavelmente vai
        ' ser uma escrita em outro Driver
 
        ' Envia um ACTTERM(10)
        WriteEx Array(CMD, 10, SE, QU), TimeStamp 'ACTTERM
      End If
    Case 8
      ' DEACT(8) deve ser respondido com um DEACTCON(9)
      WriteEx Array(CMD, 9, SE, QU), TimeStamp
  End Select
End Sub

 

NOTAS

As escritas neste Tag Bloco falham se o modo de tratamento de Comandos de Seleção ou Execução não está configurado como Pass to the Application.

Os Comandos de Bitstring (51 e 64) não suportam o envio dos qualificadores de Pulso de Curta Duração, Pulso de Longa Duração ou Saída Persistente. Nestes casos, o quarto Elemento deste Bloco (QU) tem sempre o valor 0 (zero), ou seja, o qualificador de um Comando Normal.

Os Comandos de Bitstring (51 e 64) não possuem informação de Seleção ou de Execução. Nestes casos, o terceiro Elemento deste Bloco (SE) recebe sempre o valor 0 (zero, Execução).

Esta página foi útil?