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

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

Clique aqui para baixar a tabela de variáveis

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;

(* ... *)