SCPHI_SERVER
A função deste bloco é receber de um cliente remoto um pacote de dados no protocolo SCP-HI, validar o pacote e executar o comando associado, retornando ao cliente o resultado deste procesamento com eventuais dados que foram solicitados. Este bloco pode operar com qualquer um dos canais de comunicação disponíveis no equipamento.
O bloco quando ativado, inicialmente aguarda no canal de comunicação especificado pela recepção de um pacote de dados enviado pelo equipamento cliente utilizando o protocolo de comunicação SCP-HI. Uma vez recebido o pacote de dados, o CRC do pacote é validado e caso correto é validado se o endereço de comunicação especificado no pacote coincide com o endereço especificado no bloco ou com 255 (endereço global do protocolo). Validado o endereço, o comando especificado no pacote é interpretado e executado. O retorno deste processo é incluido no pacote de resposta do protocolo e enviado para o cliente remoto.
Importante
Para operação correta, o canal de comunicação utilizado deve ser previamente configurado para operação com protocolo ASCII (sem SOF e EOF).
Bloco
SCPHI_SERVER
+-----------------------+
BOOL ----|EN ENO|---- BOOL
| |
BOOL ----|START EVT|---- BOOL
| |
UINT ----|COMM_SRC LAST_RESULT|---- INT
| |
UINT ----|COMM_ADDR GOOD_PACKS|---- UDINT
| |
| BAD_PACKS|---- UDINT
+-----------------------+
Parâmetros
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
EN |
Entrada |
BOOL |
TRUE |
Habilita operaçao do bloco |
|
START |
Entrada |
BOOL |
FALSE |
Inicia ou reseta operacao do bloco |
|
COMM_SRC |
Entrada |
UINT |
0 |
Identificador do canal de comunicacao utilizado |
|
COMM_ADDR |
Entrada |
UINT |
1 |
Endereço de comunicacao do equipamento para o protocolo SCP-HI |
|
ENO |
Saída |
BOOL |
FALSE |
Saída de habilitação do bloco |
|
EVT |
Saída |
BOOL |
FALSE |
Gera um pulso ao final de toda transaçao de comunicaçao endereçada ao equipamento |
|
LAST_RESULT |
Saída |
INT |
0 |
Código de retorno da última transação |
|
GOOD_PACKS |
Saída |
UDINT |
0 |
Contador de pacotes com sucesso |
|
BAD_PACKS |
Saída |
UDINT |
0 |
Contador de pacotes com falha |
COMM_SRC
O canal de comunicação utilizado é especificado por um identificador (valor númerico) conforme indicado na tabela a seguir:
ID |
LABEL [3] |
Tipo de canal de comunicação [4] |
0 |
HILS.COM1_PORT_ID |
Identificador do canal COM1 |
1 |
HILS.COM2_PORT_ID |
Identificador do canal COM2 |
2 |
HILS.COM3_PORT_ID |
Identificador do canal COM3 |
3 |
HILS.COM4_PORT_ID |
Identificador do canal COM4 |
4 |
HILS.COM5_PORT_ID |
Identificador do canal COM5 |
5 |
HILS.COM6_PORT_ID |
Identificador do canal COM6 |
6 |
HILS.COM7_PORT_ID |
Identificador do canal COM7 |
7 |
HILS.COM8_PORT_ID |
Identificador do canal COM8 |
8 |
HILS.SOCK0_PORT_ID |
Identificador do socket 0 |
9 |
HILS.SOCK1_PORT_ID |
Identificador do socket 1 |
10 |
HILS.SOCK2_PORT_ID |
Identificador do socket 2 |
11 |
HILS.SOCK3_PORT_ID |
Identificador do socket 3 |
12 |
HILS.SOCK4_PORT_ID |
Identificador do socket 4 |
13 |
HILS.SOCK5_PORT_ID |
Identificador do socket 5 |
14 |
HILS.SOCK6_PORT_ID |
Identificador do socket 6 |
15 |
HILS.SOCK7_PORT_ID |
Identificador do socket 7 |
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. |
COMM_ADDR
Especifica qual o endereço de comunicacão associado ao equipamento corrente para o protocolo SCP-HI. Os endereços válidos estão na faixa de 1 a 254. O pacote de dados enviado pelo cliente será validado se o endereço fornecido for igual a COMM_ADDR ou for 255 (endereço global do protocolo).
EVT
Gera um pulso ao final de toda transaçao de comunicaçao endereçada ao equipamento. Os pacotes de dados recebidos CRR ou endereço de comunicação inválido são ignorados pelo bloco.
LAST_RESULT
Código de retorno da última transação de comunicação endereçada ao equipamento. Este valor é atualizado quando for gerado o evento EVT.
GOOD_PACKS
Contador de pacotes com sucesso endereçados ao equipamento. Este valor é atualizado quando for gerado o evento EVT.
BAD_PACKS
Contador de pacotes com falha endereçados ao equipamento. Este valor é atualizado quando for gerado o evento EVT.
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Valor Inicial |
Opções |
Descrição |
|---|---|---|---|---|
MY_START |
BOOL |
Flag de inicialização do processo |
||
SCPHI |
SCPHI_SERVER |
Instancia do bloco servidor SCP-HI SCPHI_SERVER |
||
MY_COM_ADDR |
USINT |
1 |
const |
end. de comunicacao do equipamento |
Código ST
(* ... *)
(* aguarda recepção do pacote SCP-HI e trata o mesmo *)
SCPHI(
EN := TRUE, // Habilitação de entrada
START := MY_START, // Inicia uma transacao de comunicação (ativa na transição de subida)
COMM_SRC := HILS.COM1_PORT_ID, // Identificador do canal de comunicacação (COM1)
COMM_ADDR := MY_COM_ADDR, // Endereço de comunicacao
);
IF (SCPHI.EVT) THEN
// Gerada transação de comunicacao com o equipamento
IF (SCPHI.LAST_RESULT = HILS.SUCCESS) THEN
// Transaçao realizada com sucesso
END_IF;
END_IF;
(* ... *)