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:

  • Se for igual a 0: Função executada com sucesso - código HILS.SUCCESS

  • Se for diferente de 0: Falha na execução da função indica o respectivo código de erro. [2]

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.

Clique aqui para baixar a tabela de variáveis

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;
(* ... *)