<< Clique para Mostrar o Sumário >>
Comandos no Protocolo IEC 870-5-101 e 104 Escravo |
Tag Bloco de tratamento de comandos de seleção ou execução nos protocolos IEC 870-5-101 e 104 Escravo
Opção |
Descrição |
---|---|
Protocolos |
IEC 870-5-101 Escravo Não-Balanceado, IEC 870-5-101 Escravo Balanceado e IEC 870-5-104 Escravo |
Parâmetros Numéricos |
B1: Número da estação, B2: 4 (quatro, leitura de dados da memória cache), B3: ASDU (de 45 a 51 e de 58 a 64, consulte a tabela a seguir) e B4: Endereço do objeto |
Parâmetros no formato String |
Não disponível |
Tamanho do Bloco |
Quatro Elementos |
Escrita |
Envia para o Mestre a resposta do comando Select ou Execute |
Leitura |
Recebe os comandos Select ou Execute enviados pelo Mestre |
O significados dos valores possíveis para o parâmetro B3 (ASDUs) estão descritos na tabela a seguir.
Valores possíveis para ASDUs
Valor |
Nome |
Descrição |
---|---|---|
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 um Driver recebe um dos comandos descritos anteriormente, este Tag Bloco recebe um bloco com informações sobre o 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 o Driver. Desta forma o Driver pode enviar uma resposta ao Mestre. Os Elementos deste Tag Bloco são os seguintes:
•Elemento 0: Valor do comando, dependendo do tipo de comando
•Elemento 1: Cause of Transmission, 6: Activate ou 8: Deactivate
•Elemento 2: 1: Select ou 0: Execute
•Elemento 3: Quality of Command, 0: Undefined, 1: Short pulse duration, 2: Long duration pulse ou 3: Persistent output
Quando uma indicação de comando de ativação é recebida, ou seja, o Elemento 1 (um) igual a 6 (seis), a aplicação deve responder imediatamente com um comando ACTCON (Activation Confirmation) positivo se o comando pode prosseguir, ou seja, o Elemento 1 (um) igual a 7 (sete), ou um comando ACTCON negativo se o comando não pode prosseguir, ou seja, o Elemento 1 (um) igual a 135.
Se um comando ACTCON positivo é enviado, a aplicação deve então verificar o Elemento 2 (dois, Select ou Execute) e executar a ação apropriada.
Se um comando Execute é requisitado, a aplicação deve executar o comando e, depois de terminado, enviar um comando ACTTERM (Activation Termination) para indicar que o comando foi executado, ou seja, o Elemento 1 (um) igual a 10.
O exemplo a seguir contém um evento OnRead para este Tag Bloco.
' CMDIndication é um Tag Bloco de tamanho 4
' Os parâmetros deste Tag são os seguintes
' 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
COT = Item(2).Value ' COT
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
' Execute aqui o comando, provavelmente
' uma escrita em outro Driver
' Envia um ACTTERM(10)
WriteEx Array(CMD, 10, SE, QU), TimeStamp
End If
Case 8
' DEACT(8) deve ser respondido com DEACTCON(9)
WriteEx Array(CMD, 9, SE, QU), TimeStamp
End Select
End Sub