WGATE_MAN
Este bloco implementa uma interface de dados com o Portal de Telemetria.
O bloco implementa uma cache de mensagens em um vetor de registros exportados como Holding Registers. Qualquer dos tipos nativos de dados suportados pelo HIstudio pode ser inserido nesta cache de mensagens e o Portal de Telemetria é responsável por ler as mensagens e gerenciar a remoção das mesmas quando obtidas com sucesso.
Através da função WGATE_SEND a aplicação insere as mensagens na cache de mensagens para serem posteriormente lidas e removidas pelo Portal de Telemetria.
Importante
Para que o Portal de Telemetria possa acessar as informações armazenadas na cache de mensagens, é necessário que esta seja declarada como uma variável global exportada (com endereço explícito).
Para operação correta do bloco é necessário que a cache de mensagens tenha capacidade de no mínimo 15 mensagens ou seja, o buffer de inteiros passado como parâmetro deverá possuir no mínimo 151 elementos.
Nota
Este bloco é uma evolução do bloco TEL_BUF que passou a ser obsoleto. Inclui suporte para mensagens do tipo STRING e saídas adicionais com funcionalidades que eram normalmente implementadas no programa de aplicação.
Bloco
WGATE_MAN
+--------------+
BOOL ----|CLR EMPTY|---- BOOL
| |
USINT ----|COMM FULL|---- BOOL
| |
TIME ----|TMO LOST|---- BOOL
| |
| MSGS|---- INT
| |
| TOTAL|---- INT
| |
| PERC|---- UINT
| |
| RESULT|---- INT
| |
INT ----|CACHE ------- |----
+--------------+
Este bloco, é responsavel por gerenciar o armazenamento e envio de mensagens para o Portal de Telemetria da HI Tecnologia.
Quando necessário, aplicação corrente pode criar mensagens associadas a variáveis da aplicação e inserí-las em uma cache de mensagens para que, posteriormente sejam coletadas pelo Portal de Telemetria.
Estas mensagens, contém além do identificador do dado na aplicação do portal, o valor do dado associado, e a data/hora em que a mensagem foi gerada, permitido que, eventos identificados pelo programa de aplicação sejam reportados para o Portal de Telemetria com a informação correta do instante que o mesmo ocorreu, independentemente do momento em qua esta mensagem foi coletada pelo portal.
Parâmetros
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
CLR |
Entrada |
BOOL |
FALSE |
Limpa o conteudo da cache de dados |
|
COMM |
Entrada |
USINT |
9 |
Identificador do canal de comunicação conectado ao portal de telemetria. Ex: SOCK1_PORT_ID |
|
TMO |
Entrada |
TIME |
T#1m |
Timeout para indicar desconexão com o portal de telemetria |
|
EMPTY |
Saída |
BOOL |
FALSE |
Cache de mensagens vazia |
|
FULL |
Saída |
BOOL |
FALSE |
Cache de mensagens cheia |
|
LOST |
Saída |
BOOL |
FALSE |
Quando ativo, indica que o equipamento perdeu conexão com o portal de telemetria |
|
MSGS |
Saída |
INT |
0 |
Nro. de mensagens presentes na cache de mensagens |
|
TOTAL |
Saída |
INT |
0 |
Nro total de mensagens suportados pela cache de mensagens |
|
PERC |
Saída |
UINT |
0 |
Percentual de utilização da cache de mensagens (0..100%) |
|
RESULT |
Saída |
INT |
0 |
Código de retorno da última interação |
|
CACHE |
Entrada/Saída |
INT |
[*] |
0 |
Vetor de inteiros reservados para armazenar as mensagens a serem enviadas para o portal |
Entradas
CLR
Quando ativo, limpa a cache de mensagens removendo todas as mensagens presentes que não foram ainda coletadas pelo Portal de Telemetria.
COMM
Identificador do canal de comunicação conectado ao portal de telemetria. Esta informação é utilizada apenas quando o equipamento estiver conectado ao Portal de Telemetria através de uma porta ethernet. Neste caso, o bloco avalia o estado de conexão TCP/IP do canal e utiliza esta informação para indicar perda de conexão com o Portal de Telemetria. Caso o equipamento esteja conectado ao portal através de um canal serial (ex: módulo de modem interno) o mecanismo para detectar perda de conexão é baseado no parâmetro TMO.
Este canal de comunicação é especificado por um identificador (valor númerico) conforme indicado na tabela a seguir:
Nome |
Ident. |
Descrição |
HILS.COM1_PORT_ID |
0 |
Canal serial COM1 |
HILS.COM2_PORT_ID |
1 |
Canal serial COM2 |
HILS.COM3_PORT_ID |
2 |
Canal serial COM3 |
HILS.COM4_PORT_ID |
3 |
Canal serial COM4 |
HILS.COM5_PORT_ID |
4 |
Canal serial COM5 |
HILS.COM6_PORT_ID |
5 |
Canal serial COM6 |
HILS.COM7_PORT_ID |
6 |
Canal serial COM7 |
HILS.COM8_PORT_ID |
7 |
Canal serial COM8 |
HILS.SOCK0_PORT_ID |
8 |
Controlador Ethernet 1: Socket 0 |
HILS.SOCK1_PORT_ID |
9 |
Controlador Ethernet 1: Socket 1 |
HILS.SOCK2_PORT_ID |
10 |
Controlador Ethernet 1: Socket 2 |
HILS.SOCK3_PORT_ID |
11 |
Controlador Ethernet 1: Socket 3 |
HILS.SOCK4_PORT_ID |
12 |
Controlador Ethernet 1: Socket 4 |
HILS.SOCK5_PORT_ID |
13 |
Controlador Ethernet 1: Socket 5 |
HILS.SOCK6_PORT_ID |
14 |
Controlador Ethernet 1: Socket 6 |
HILS.SOCK7_PORT_ID |
15 |
Controlador Ethernet 1: Socket 7 |
HILS.ETH2_SOCK0_PORT_ID |
16 |
Controlador Ethernet 2: Socket 0 |
HILS.ETH2_SOCK1_PORT_ID |
17 |
Controlador Ethernet 2: Socket 1 |
HILS.ETH2_SOCK2_PORT_ID |
18 |
Controlador Ethernet 2: Socket 2 |
HILS.ETH2_SOCK3_PORT_ID |
19 |
Controlador Ethernet 2: Socket 3 |
HILS.ETH2_SOCK4_PORT_ID |
20 |
Controlador Ethernet 2: Socket 4 |
HILS.ETH2_SOCK5_PORT_ID |
21 |
Controlador Ethernet 2: Socket 5 |
HILS.ETH2_SOCK6_PORT_ID |
22 |
Controlador Ethernet 2: Socket 6 |
HILS.ETH2_SOCK7_PORT_ID |
23 |
Controlador Ethernet 2: Socket 7 |
Este texto pode ser utilizado como parâmetro pois esta definido no tipo COMM_CHAN_ID disponível na biblioteca HI_STD. |
|
Cada equipamento possui um sub-conjunto dos recursos de comunicação indicados na tabela acima. Para identificar quais recursos estão disponíveis em um dado equipamento, consulte o manual do mesmo. |
TMO
Timeout para indicar desconexão com o portal de telemetria. Quando existir pelo menos uma mensagem disponível para coleta pelo Portal de Telemetria, este parâmetro define o tempo máximo para que esta mensagem seja coletada. Se este tempo for ultrapassado, a saída LOST será ativada indicando falha na conexão do equipamento com o Portal de Telemetria.
Saídas
CACHE
Este parâmetro deve receber um vetor de variáveis do tipo INT que que será utilizado como uma cache de mensagens bloco. O nro. de mensagens disponíveis para utilzação é calculado da seguinte forma:
MSGS = (TV - 1) / 10 onde:
MSGS = nro de mensagens suportadas pela cache
TV = nro de elementos do vetor fornecido para o bloco
Através da função WGATE_SEND a aplicação insere mensagens na cache. O Portal de Telemetria, quando configurado para tal, irá periodicamente, ler as mensagens da cache e removê-las quando a operação for realizada com sucesso.
EMPTY
Quando ativa indica que não existem mensagens na cache de mensagens para serem coletadas pelo Portal de Telemetria.
FULL
Quando ativa indica que o número máximo de mensagens suportadas pela cache de mensagens foi atingido. Nova inserções de mensagens através da função WGATE_SEND retornarão erro indicando que não existe mais espaço.
LOST
Quando ativo, indica que o equipamento perdeu conexão com o Portal de Telemetria. Existem 2 estratégias utilizadas pelo bloco para definir o estado desta saída. A primeira monitora se o tempo gasto para que uma mensagem seja coletada pelo Portal de Telemetria é inferior ao valor de TMO. Quando este tempo for superior considera que a conexão como o Portal de Telemetria foi perdida e ativa a saída LOST.
A segunda só é utilizada quando o equipamento se conecta ao Portal de Telemetria através de um socket ethernet. Este caso o bloco monitora internamente o estado da conexão do socket especificado e caso detecte que a conexão “caiu”, ativa a saída LOST.
MSGS
Indica o número de mensagens presentes na cache de mensagens para coleta pelo Portal de Telemetria.
TOTAL
Indica o número máximo de mensagens disponível na cache de mensagens.
PERC
Especifica o percentual da cache de mensagens ocupado com mensagens a serem coletadas pelo Portal de Telemetria. Este parâmetro pode ser útil quando a aplicação deseja alterar os crítérios para inserção de mensagens quando a cache de mensagens se aproxima de limite de mensagens.
RESULT
Tipo Dado |
Descrição |
INT |
Código de retorno na execução da função, do tipo RET_CODE, onde:
|
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Dimensão |
Valor Inicial |
Opções |
Descrição |
|---|---|---|---|---|---|
MY_EV |
BOOL |
FALSE |
Flag para inserção de dado na cache |
||
MY_DATA |
UDINT |
1234 |
valor a ser inserido na cache de mensagens |
||
MY_ID |
INT |
1000 |
identificador do dado no portal de telemetria |
||
RET |
INT |
código de retorno da função de envio de dados para o portal |
|||
WCACHE |
INT |
[0..200] |
rent |
Cache do portal com capacidade de 20 mensagens. Tamanho mínimo. |
|
WEB_GATE |
HILS.WGATE_MAN |
Gerenciador de mensagens do portal de telemetria. |
Código ST
(* --- Gerencia das mensagens reportadas para o portal de telemetria -----
*
* ATENCAO: Este bloco deve obrigatóriamente ser chamado no início do ciclo
* da aplicação corrente, antes de qualquer chamada do bloco
* WGATE_SEND.
*
*)
WEB_GATE( // WGATE_MAN
//CLR := , // [BOOL] Limpa o conteudo da cache de dados
COMM := HILS.SOCK1_PORT_ID, // [USINT] Identificador do canal de comunicação conectado ao portal de telemetria. Ex: SOCK1_PORT_ID
TMO := T#40s, // [TIME] Timeout para indicar desconexão com o portal de telemetria
CACHE := WCACHE // [INT] FIFO - área onde serão armazenados os registros
);
(* Quando MY_EV for true e a cache estiver com menos de 50% envia MY_DATA para o portal *)
if (MY_EV AND (WEB_GATE.PERC < 50)) THEN
RET := HILS.WGATE_SEND(ID := MY_ID, DATA := MY_DATA, MSGS := WCACHE);
IF RET = 0 THEN
MY_EV := FALSE;
END_IF;
END_IF;
(* ... *)