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