CONFIGURAÇÃO DE PONTOS - Iccp
Geral
Os pontos podem ser de entrada ou de saída.
Os pontos de entrada para o cliente, que são distribuídos pelo servidor pelo protocolo, são configurados basicamente com três parâmetros principais: O tipo de ponto, o nome do ponto (constituído de um nome de domínio e um nome de variável) e opcionalmente o nome de data set, se o ponto pertence a um data set.
Os pontos de saída, utilizados para enviar telecomandos pelo Cliente e recepção dos mesmos pelo Servidor, possuem além do tipo e do endereço alguns parâmetros para detalhar a operação de controle.
Os endereços dos pontos, isto é, o par domínio/nome da variável, devem ser unívocos.
Tipos de Pontos
O módulo de comunicação ICCP no modo Servidor implementa tipos de pontos de leitura para o cliente, para:
STATE - Estado (assumindo os valores 0,1, 2 ou 3)
STATE_SUPPLEMENTAL - Suplemento de estado.
DISCRET - valores inteiros de até 32bits.
REAL – Valores em ponto flutuante em 32 bits.
Também pontos para comandos:
Comandos digitais
Pontos de ajuste discretos
Pontos de ajuste reais.
Tags (Cartões) para pontos de controle
Mensagens de Informação (IM)
E pontos para a definição de:
Data sets e
Data sets Transfer sets
A figura mostra parte da lista apresentada ao se clicar no tipo de ponto, na coluna Address da tabela POINTS.
Os tipos de pontos, incluem variações nas quais são adicionados além do valor, ou estado, flags de qualidade e timestamp. Na tabela, ICCP Validity é a qualidade, Time Stamp é a data e hora da ultima mudança do valor com discriminaçõa de segundos. Extended Time stamp é a data e hora incluindo sedgundos e millisegundos. COV é o numero de vezes que houve mudança de valor (Change Of Value).
São portanto os seguintes:
Sigla | Nome do tipo de dado | Conteúdo do objeto de dados |
ST | State | Discrete 2-bit value |
STQ | StateQ | Discrete 2-bit value + ICCP Validity |
STQT | StateQTimeTag | Discrete 2-bit value + ICCP Validity + Time stamp |
STEX | StateExtended | Discrete 2-bit value + ICCP Validity + COV + time stamp |
STQTEX | StateQTimeTagExtended | Discrete 2-bit value + ICCP Validity + COV + Extended time stamp |
SS | StateSupplement | Discrete 2-bit value |
SSQ | StateSupplementQ | Discrete 2-bit value + ICCP Validity |
SSQT | StateSupplementQTimeTag | Discrete 2-bit value + ICCP Validity + Time stamp |
SSEX | StateSupplementExtended | Discrete 2-bit value + ICCP Validity + COV + time stamp |
SSQTEX | StateSupplementQTimeTagExtended | Discrete 2-bit value + ICCP Validity + Extended time stamp |
DC | Discrete | Integer 32-bit value signed |
DCQ | DiscreteQ | Integer 32-bit signed value + ICCP Validity |
DCQT | DiscreteQTimeTag | Integer 32-bit signed value + ICCP Validity + Time stamp |
DCEX | DiscreteExtended | Integer 32-bit signed value + ICCP Validity + Current Source + time stamp |
RL | Real | Float 32 |
RLQ | RealQ | Float 32 + ICCP Validity |
RLQT | RealQTimeTag | Float 32 + ICCP Validity + Time stamp |
RLEX | RealExtended | Float 32 + ICCP Validity + Current Source + time stamp + COV |
CMD | Command discrete | Command para controle on/off de device |
DCSP | Discrete set point | Saida de valor Discreto 32bis |
RLSP | Real Set Point | Saida de valor float 32 bits |
DSET | DataSet | Ponto Action.NET para definir um data set |
DSTS | DataSet TransferSet | Ponto para definir um DS Transfer set |
IM | Information messages | Ponto para receber em seu atributo value o conteúdo de uma mensagem. |
TAG | Tag device service | Ponto Action.NET para manter e enviar um Cartão de Impedimento de equipamento |
Ajustes para Valores e Qualidade
No ICCP os valores, estados e a qualidade seguem um padrão próprio.
Assim estes estados e qualidades para serem definidos a partir dos estados e qualidades existentes no padrão do Action.NET, precisam ser ajuntados quando montando dados no Servidor para envio para o cliente com a codificação apropriada no protocolo.
Representação de Estados
BETWEEN = 0,
OFF = 1,
ON = 2,
INVALID = 3
No ICCP estes são sempre os estados. Mesmo que um disjuntor em dado projeto seja considerado somente com estados aberto e fechado, ao transmitir esta informação terá que ser na forma acima.
Mesmo o caso de representação de atuação de uma proteção o estado deverá ser 1 ou2;
Para contornar este problema., sempre que um ponto com tipo de estado for definido, o módulo usará como valor o atual do ponto, se o tag não tiver o campo Parameter > EnumerationSet.
Se o tag tiver o Parameter > EnumerationSet, usará o texto de ValueAsString atual para definir o valor atual, utilizando a lista parâmetro TextForValues existente no arquivo ICCPDual.XML, que pode ser alterada para o projeto em questão.
<TextsForValues>
<Texts P1="INDEFINIDA=3;FECHADA=2;ABERTA=1;EM CURSO=0; BLOQUEADO=0;DESLIGADO=1;LIGADO=2;INDEFINIDO=3;NORMAL=1;ATUADO=2"/>
</TextsForValues>
Representação de fonte de dados
TELEMETERED = 0,
CALCULATED = 1,
ENTERED = 2,
ESTIMATED = 3
Representação de Validade ICCP
VALID = 0,
HELD = 1,
SUSPECT = 2,
NOT_VALID = 3
Para a definição da qualidade OPC usada no Action.NET a partir da Validade ICCP no lado CLIENTE são utilizados os seguintes critérios:
Qualidade OPC | Validade recebida ICCP | Fonte de Dados ICCP |
GOOD | VALID | TELEMETERED |
Uncertain | SUSPECT | TELEMETERED |
GoodLocalOverride | HELD | ENTERED |
BadCommFailure, | NOT_VALID | TELEMETERED |
Para a definição de Validade ICCP no modo Servidor, são utilizados os seguintes critérios:
Qualidade atual OPC | Validade ICCP | Fonte de Dados ICCP |
GOOD | VALID | TELEMETERED |
UncertainSensorNotAccurate, UncertainHighLim, UncertainLastUsableValue | SUSPECT | TELEMETERED |
GoodLocalOverride, or tag Locked | HELD | ENTERED |
BadCommFailure, Uncertain, BadNotConnected ou Bad | NOT_VALID | TELEMETERED |
Endereço do ponto
O preenchimento de endereços de pontos é feito no ambiente de engenharia, em Edit>Devices>Points.
O campo Address a ser preenchido no cadastramento de pontos inclui o tipo de ponto o nome da variável no ICCP e alguma informação complementar, dependente do tipo de ponto.
Conforme a figura abaixo, um clique sobre a linha da coluna endereço abre uma janela para selecionar o tipo e o endereço do ponto. Um clique sobre o tipo abre uma janela com todos os tipos de pontos suportados.
A seguir são informados detalhes sobre o preenchimento deste campo para cada um dos diversos casos existentes.
Os nomes dos pontos de dados (ou variáveis), usados como endereços, podem consistir apenas em caracteres ASCII alfanuméricos (a-z, A-Z, 0-9) e o sinal de sublinhado ("_"). Todos os outros caracteres não são permitidos e podem causar problemas durante a operação. Os sufixos "_SBO" e "_TAG" também não são permitidos como nomes de pontos de dados (para pontos de indicação, dispositivos ou equipamentos de proteção), pois esses sufixos são reservados para variáveis internas de protocolo!
Indication Points
Para este tipo de pontos, de entrada, que incluem State, Discrete, Real e StateSuplemment. O formato do endereço é:
<data type>:<domain>/<Iccp point name>:<dataset name>
DataType: - deve ser escolhido na lista pressionando o botão à direita do campo.
DataName: Deve ser digitado o nome do domínio a barra "/" e o nome do ponto. Estes nomes são tratados como sensíveis ao case, maiúsculas e minúsculas. Nos pontos alocados no VCC somente usar o tipo e nome do ponto, sem o domínio.
Complemment: No lado Cliente não é necessária a definição de pertinência do data name ICCP no data set. Esta definição é feita no servidor e o Cliente apenas recebe os dados da forma que estiver definido no servidor.
DataSets
Para a definição de Data Sets será configurado como mostrado na figura seguinte:
DataType escolher a sigla DSET.
DataName – Preencher com o domínio e nome do data set.
Complemment - No Cliente, será utilizado para até dois parâmetros, separados por “:”
A sigla para um temporizador, T1, T2 ou T3 - Para definir a periodicidade de amostragem, no caso de leitura de data sets por amostragem, indicando um dos possíveis temporizadores, como mostrado na configuração de Nodes. Se não for definido aqui, será considerado o temporizador T1.
Somente se o data set deve ser criado dinamicamente, deve ser incluído o parâmetro DYN, com uma indicação:
DYN=ANA - Para que na criação do data set seja enviada ao servidor uma lista com todas as variáveis Analógicas (REAL e DISCRETE)
DYN=DIG - Para que na criação do data set seja enviada ao servidor uma lista com todas as variáveis Digitais (STATE e STATE SUPPLEMENTAL)
DYN= <texto de filtro> - Para que na criação do data set seja enviada ao servidor uma lista com todas as variáveis cujos nomes ICCP sejam adequados ao filtro.
Filtros
O <texto de filtro> poderá ter asteriscos, para indicar parte que pode ser qualquer e textos que devam ser coincidentes, isto é o nome deve conter. Assim um filtro igual à DAT*, indicará que se deseja todas as variáveis cujo endereço comece com DAT. Um filtro com *DAT, indicará que e se deseja incluir no data set todas as variáveis cujos nomes ICCP terminem com as letras DAT. Um filtro com o texto XXX, iniciado e seguido por asteriscos, indicaria que se quer todas as variáveis que o nome inclua o texto XXX em qualquer parte dele.
Na criação das lista para data sets dinâmicos, será utilizado o critério e filtro escolhido, não sendo incluídas as variáveis que mesmo atendendo estes critérios já estão definidas como integrantes de data sets pré-definidos no servidor.
DataSets Transfer sets
Para a definição de Data Sets Transfer Sets será configurado o seguinte:
DataType escolher a sigla DSTS.
DataName – Preencher com o domínio e nome do data set associado, para o qual será utilizado para as transferências.
Complemment - Opcionalmente podem ser definidas alternativas para a configuração padrão definida por falta no cliente. Estes parâmetros vão de tempos de ações a critérios de geração do report. Veja no item Configuração de Data Sets Transfer sets, a seguir nesta secção.
Device Control Point
No lado do Servidor, estas definições servem para o módulo de comunicação encontrar o tag Action.NET que será o objetivo do comando. No lado Cliente estas especificações são utilizadas para o envio do comando.
A figura mostra o preenchimento de um ponto de controle de dispositivos.
Para este tipo de pontos, de comando, CMD. O formato do endereço é:
CMD:<domain>/<Iccp control point name>:<parâmetros de comando>
DataType: - deve ser escolhido na lista pressionando o botão à direita do campo o tipo C MD
DataName: Deve ser digitado o nome do domínio a barra "/" e o nome do Control Point. Estes nomes são tratados como sensíveis ao case, maiúsculas e minúsculas. Nos pontos alocados no VCC somente usar o tipo e nome do ponto, sem o domínio, como em DC: DiscreteVcc.
Complemment: devem ser digitados os detalhes para o comando na forma:
<DIR/SBO>:<TAG/NOTAG>:<Check num>
Onde:
DIR – indica comando direto simples
SBO – Indica comando com Select Before Operate. Na execução será enviado pelo Cliente um comando de SELECT e logo após, se houver sucesso nesta operação, será enviado o comando propriamente.
TAG/NOTAG – indica se será incluída na criação deste ponto, a funcionalidade de ter uma etiqueta, como um cartão de impedimento, que poderá ser enviada para que seja associada ao device. NOTAG indica que esta funcionalidade não será utilizada.
CheckNum- É um número para distinguir um comando de outro, O mesmo número para o mesmo ponto, mas diferente para cada ponto. Pode ser escolhido qualquer um, mas será fixo para o ponto.
Set Points
No lado do Servidor, estas definições servem para o módulo de comunicação encontrar o tag Action.NET que será o objetivo do comando. No lado Cliente são utilizadas as especificações para o envio do comando.
Para este tipo de pontos, de comando, CMD. O formato do endereço é:
<data type>:<domain>/<Iccp point name>:<complemment>
DataType: - deve ser escolhido na lista pressionando o botão à direita do campo um dos tipos DCSP ou RLSP, conforme o tipo do valor.
DataName: Deve ser digitado o nome do domínio a barra "/" e o nome do ponto de saída. Estes nomes são tratados como sensíveis ao case, maiúsculas e minúsculas. Nos pontos alocados no VCC somente usar o tipo e nome do ponto, sem o domínio, como em DC: DiscreteVcc.
Complemment: devem ser digitados os detalhes para o comando na forma:
<TAG/NOTAG>:<Check num>
Onde:
TAG/NOTAG – indica se será incluída uma etiqueta, como um cartão de impedimento, que poderá ser enviada para que seja associada ao device. NOTAG indica que esta funcionalidade não será utilizada.
CheckNum- É um número para distinguir um comando de outro, o mesmo número para o mesmo ponto, mas diferente para cada ponto.
Tag attributes for devices (control points)
Na denominação do ICCP um tag é uma etiqueta associada a um ponto de controle (como um cartão de impedimento ou manutenção), que este protocolo define. Um cliente pode então enviar um cartão destes para o servidor, utilizando o nome do ponto de controle. Pode ser enviado um código com o tipo de cartão e um texto livre com a motivo do impedimento (reason). Deve ser usado um tag Action.NET (um objeto) para definir este ponto.
Para este tipo de ponto o formato do endereço é:
TAG:<domain>/<Iccp control point name>
TAG – É o tipo de ponto etiqueta para o módulo de comunicação ICCP.
Data Name –O domínio seguido de " / " e do nome ICCP do ponto de controle associado.
A operação de envio do tag é feita pelo Cliente da seguinte forma e sequencia, a partir de scripts do projeto:
Se for usado Password para o comando o campo EstimatedValue do tag Action.NET deste ponto tag (etiqueta) deve ser preenchido com o Password;
Se precisar enviar um texto com a razão da etiqueta, este texto deverá ser colocado em um outro tag com o mesmo nome do tag definido em POINTS, acrescido do sufixo _RS. Este texto será enviado pelo protocolo junto com o valor do tag: Exemplo Tag.DEV_CONTROL_OFF, é o tag para comando, Tag.DEV_CONTROL_TG é o ponto que conterá o número do cartão. Tag.DEV_CONTROL_TG_RS, conterá o texto da razão.
O valor do tag definido em POINTS, deve ser alterado para um dos códigos a seguir listados:
0 = NO_TAG - indica que o dispositivo não está etiquetado e pode ser usado normalmente
1 = OPEN_AND_CLOSE_INHIBIT - comandos de abertura e fechamento não são permitidos
2 = CLOSE_ONLY_INHIBIT - um fechamento não é permitido
3 = INVALID - Tag inválida. Pode indicar um problema de software.
Information Messages
São mensagens de texto ou de um conteúdo qualquer até mesmo binário, que podem ser enviadas de um servidor para um cliente. No lado do Cliente deve-se definir um tag do tipo texto, que receberá o buffer de dados da mensagem.
Para este tipo de dado o formato do endereço é:
IM:<domain>/IM:<complemment>
IM – Deve ser escolhido o tipo IM na lista de tipos
Domain - deve ser digitado o nome do domínio seguido de barra e do nome fixo IM. Se for para definir escopo VCC colocar somente o nome IM sem domínio e sem barra.
Complemment - será formado por dois números separados por ": " para a identificação da mensagem:
infoRef – referência para a mensagem
localRef- referência para o local de onde partiu a mensagem.
Estes números podem ser definidos por critério próprio, o importante é que sejam os mesmos no servidor e no cliente, para que seja feita a associação entre os pontos Action.NET.
A figura mostra exemplo de definição de pontos para mensagens:
Tanto no Cliente como no Servidor deve-se definir dois pontos para cada área de mensagem que se pretenda usar, por exemplo:
Tag.ICC1.MSG – Tag principal, que será usado para conter, em tempo real, o número de identificação da mensagem, que quando alterado pelo Servidor, causará o disparo do envio da mensagem. Este é o tag que deve ser cadastrado em POINTS para a definição dos campos infoRef e localRef.
Tag.ICC1.MSG_IM – Com o mesmo nome de tag acima, adicionado do sufixo _IM, com tipo TEXT, que conterá o texto da mensagem. O servidor coloca este texto no seu tag e o cliente recebe no dele, no atributo Value.
A operação de envio do tag é feita pelo Servidor da seguinte forma e ordem, a partir de scripts do projeto:
Se for usado Password para o comando o campo EstimatedValue do tag Action.NET deste ponto (no ex. Tag.ICC1.MSG) deve ser preenchido com o Password;
O texto a ser enviado deverá ser colocado no outro tag (com o sufixo _IM, no ex. Tag.ICC!.MSG_IM).
O valor do tag definido em POINTS, deve ser alterado para um novo valor, que poderá ser um número de sequência de mensagens. Isto faz o disparo do envio.
Configuração de Data Sets Transfer sets
Os Data sets Transfer Sets (DSTS) são o mecanismo mais importante e mais eficiente para enviar dados do servidor para o cliente. Eles podem ser usados para enviar dados do servidor para o cliente sem que o cliente envie solicitações.
No cliente é necessário que o mesmo use o nome de domínio correto que é atribuído pela BLT.
O DS Transfer Set é então criado, associado a um data set e pode ser configurado ajustando-se as propriedades de configuração do conjunto de transferência. As transferências serão feitas a partir da lista de variáveis do data set.
Em seguida, também outros parâmetros importantes podem ser configurados.
A tabela seguinte mostra os parâmetros que podem ser configurados e as escolha de parâmetros que é feita automaticamente pelo módulo Cliente por default. Caso sejam aceitáveis todos estes parâmetros como estão, não será preciso especificar parâmetros para o DS transfer set.
Parâmetros de configuração de DS Transfer Sets
Nome do parâmetro | Palavras Chaves usada em POINTS | Descrição e significado do parâmetro | Valor Default |
Start Time | STARTTIME | Hora de início – Intervalo de tempo para o servidor iniciar o monitoramento da condição a partir do recebimento de Start do cliente, em segundos (0 = imediatamente) | Zero |
Interval | INTERVAL | Intervalo de tempo entre relatórios consecutivos gerados pelo servidor (em segundos), quando estiver presente o critério INTERVAL_TIMEOUT | 15 |
TLE | TIMETLE | Limite de tempo TLE permitido para execução do relatório (em segundos) | 10 |
Buffer Time | BUFFERTIME | Intervalo de tempo máximo desde que chegou a primeira mudança até que seja enviada a mensagem com as mudanças enfileiradas. (em segundos) | 3 |
Integrity Check | TIMEINTEGRITY | Tempo limite entre dois envios consecutivos de Report quando não houver nenhuma mudança.(em segundos), quando estiver presente o critério INTEGRITY_TIMEOUT. | 60 |
DSConditions Requested | DSCONDITIONS com valores definidos por letras (veja coluna ao lado, e exemplo abaixo) | Especifica as condições de disparo para relatórios. São as razões para o relatório ser criado. | T - INTERVAL_TIMEOUT I - INTEGRITY_TIMEOUT C - OBJECT_CHANGE O - OPERATOR_REQUESTED X- OTHER_EXTERNAL_EVENT |
Block Data | BLOCKDATA | Ativar a codificação do relatório de transferência de bloco quando CB 3 é compatível (não é compatível com esta implementação) | FALSE |
Critical | CRITICAL | Controle se o relatório for crítico. Quando verdadeiro, o cliente deve enviar um "Acknowledment" ao receber o relatório | FALSE |
RBE | RBE | Criação do relatório por mecanismo de exceção. Verdadeiro significa que apenas os objetos alterados são incluídos no relatados | TRUE |
All Changes Reported | ALLCHANGES | Controle o número de alterações de um determinado ponto de dados que podem ser relatadas em um único relatório. Verdadeiro significa que todas as alterações são relatadas, falso significa que apenas a última alteração é relatada. | TRUE |
DS CONDITIONS
As Condições do DataSet controlam como os DSTS são enviados. Eles são configurados na tabela POINTs na linha de definição do DS Transfer Set.
Existem algumas regras importantes a seguir ao configurar DS Conditions para um DSTS:
Intervalo com RBE desligado funciona como Integridade com RBE ligado.
Um valor de tempo para StartTime de 0 significa enviar agora.
O sinalizador Interval Time Out controla o Interval Timer.
O intervalo é a frequência com que o relatório será enviado. Quando RBE é definido, apenas os pontos que mudam no intervalo são relatados por nome.
Sinalizador de tempo limite de integridade controla o temporizador de integridade.
A integridade é a frequência com que todo o DataSet é relatado.
O sinalizador de alteração de objeto controla o BufferTime.
BufferTime é o intervalo de tempo para as alterações do buffer antes de relatar ao cliente TASE.2.
BufferTime começa quando ocorre a primeira condição de mudança de objeto.
Se o RBE estiver desligado, todo o DataSet é relatado.
Se RBE estiver ligado, apenas o estado atual dos objetos no conjunto de dados que foram alterados são relatados
Se BufferTime for 0, um relatório será gerado para cada alteração.
Se várias alterações ocorrerem no mesmo objeto durante um BufferTime, apenas o último valor será relatado.
Como alterar os parâmetros
Na figura abaixo é mostrada a definição de dois Data Sets Transfer sets na tabela POINTS, com definições para alteração dos parâmetros de configuração.
No campo Complement deve-se digitar as Palavras Chaves dos parâmetros que se quer alterar (segunda coluna da tabela acima) seguidos do sinal = e do valor do parâmetro, separados pelo sinal de dois pontos: como em
Parametro1=xx : Parametro2=yy : Parametro3=zz
Os valores verdadeiro e falso serão usados em inglês TRUE e FALSE;
No exemplo mostrado, temos em Complement:
DSCONDITIONS = ITC:BUFFERTIME=1:ALLCHANGES=TRUE:INTERVAL=20
Neste caso:
DSCONDITION = ITC, está alterando o default para que somente sejam utilizados para a geração deste report os critérios de INTEGRIDADE, TIMEOUT e CHANGES ( alterações de estados e valores).
BUFFERTIME = 1, Alterando para que o tempo de espera por alterações seja de apenas 1 s.
ALLCHANGES=TRUE, está definindo All Changes Report, todas as mudanças sejam incluídas nos reports.
INTERVAL=20, impõe o tempo máximo de intervalo entre reports é de 20s.
Access Type
Cliente
Em modo cliente há a necessidade de algumas características próprias para a parametrização do campo Access Type da tabela Points:
Para pontos digitais e analógicos com tipos que são de leitura: (READ)
O Access Type deve ser definido com:
ReadOnStartup= on
ReadPooling= always;
ReadPoolingRate: 1000
Para pontos de comando Control Points e Information Messages e para Indication Points para escrita (WRITE)
O Access Type deve ser definido com:
ReadPooling = Never;
WriteEvent= Change
WriteEventEnable: on
Servidor
Em modo servidor há a necessidade de algumas características próprias para a parametrização do campo Access Type da tabela Points:
Para pontos digitais STATE e STATE_SUPPLEMENTAR com tipos que são de leitura:
O Access Type deve ser definido com:
ReadOnStartup= off
ReadPooling= never;
ReadPoolingRate: 0
WriteEvent= Changed;
AccepUnsolictited = On;
Para pontos com tipos de medida, usando Analog Samples e tipos de comandos:
O Access Type deve ser definido com:
ReadPooling = Never;
WriteEnable = disable
WriteEvent= disable;
Nesta página: