STR_SEND_REC

A função deste bloco é enviar o conteúdo de uma string pelo canal de comunicação especificado e opcionalmente receber do equipamento uma resposta também no formato de string.

O bloco quando ativado, envia pelo canal de comunicação especificado para o equipamento remoto, o conteúdo da string presente em SEND_STR. Uma vez enviada, a aplicação é notificada e pode aguardar um pacote de resposta retornado pelo equipamento remoto. Esta resposta é opcional e é possível apenas aguardar o término do envio e terminar o tratamento.

Importante

Para operação correta, o canal de comunicação utilizado deve ser previamente configurado para operação com protocolo ASCII, com ou sem SOF e EOF.

Bloco

              STR_SEND_REC
           +-----------------+
  BOOL ----|START       READY|---- BOOL
           |                 |
  BOOL ----|REPLY      RESULT|---- INT
           |                 |
  UINT ----|COMM_SRC         |
           |                 |
STRING ----|SEND_STR ------- |----
           |                 |
STRING ----|REC_STR -------- |----
           +-----------------+

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

START

Entrada

BOOL

FALSE

Inicia uma transação de comunicação (ativa na transição de subida)

REPLY

Entrada

BOOL

FALSE

Se true indica que o bloco deve aguardar uma resposta do equipamento remoto

COMM_SRC

Entrada

UINT

0

Identificador do canal de comunicacação (0: COM1, 1:COM2, 11: SOCKET 1 … )

SEND_STR

Entrada/Saída

STRING

String a ser enviada pelo canal de comunicação especificado

REC_STR

Entrada/Saída

STRING

String a ser recebida pela transação (se habilitada recepção)

READY

Saída

BOOL

FALSE

Quando igual a TRUE indica transação de comunicação concluída

RESULT

Saída

INT

0

Código de retorno da ultima transação executada. É atualizado quando a saída READY for para TRUE.

REC_STR e SEND_STR

Os parâmetros REC_STR e SEND_STR são as strings definidas para recepção e envio dos dados. Cabe ressaltar que, o pacote de dados recebido no parâmetro REC_STR, quando configurado SOF ou EOF não irá incluir estes caracteres. Caso a aplicação necessite enviar o pacote de dados com SOF e/ou EOF é de responsabilidade da aplicação inserir estes caracteres na string SEND_STR.

COMM_SRC

O canal de comunicação utilizado é especificado por um identificador (valor numérico) 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.

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

Descrição

MY_TRANS

STR_SEND_REC

Instancia do bloco de comunicação STR_SEND_REC

MY_SEND

BOOL

Inicia um transação

MY_S_STR

STRING

:5

‘hello’

String que sera enviada do equipamento remoto

MY_R_STR

STRING

:100

String que receberá a resposta

Clique aqui para baixar a tabela de variáveis

Código ST

(* ... *)

(* Ative a variavel MY_SEND quando desejar iniciar uma transação *)
(* ... *)

(* aguarda envio do pacote e a resposta do equipamento remoto *)
MY_TRANS(
  START      := MY_SEND,           // Inicia uma transação de comunicação (ativa na transição de subida)
  REPLY      := TRUE,              //
  COMM_SRC   := HILS.COM1_PORT_ID, // Identificador do canal de comunicacação (COM1)
  REC_STR    := MY_R_STR,          // buffer para receber o pacote de resposta do equipamento remoto
  SEND_STR   := MY_S_STR           // buffer utilizado para montar o pacote a ser enviado
  );

(* aguarda final da transação *)
IF (MY_TRANS.READY) THEN

  IF (MY_TRANS.RESULT = 0) THEN
    (* transação realizada com sucesso. Trata o conteudo recebido em MY_R_STR *)
    (* ... *)

  ELSE
    (* transação realizada com falha *)
    (* ... *)

  END_IF;

  MY_SEND := FALSE; // prepara para proxima transação

END_IF;
(* ... *)