Comunicação Remota¶
| Bloco de Controle Padrão | |
| Função | Comunicação Remota |
| Nro. da Função | 235 |
| Caminho | Programa/Editor Ladder/Elementos/Especiais/Bloco de controle Padrão |
| Grupo | Especiais |
| Ícone | ![]() |
| Tabela de compatibilidade de firmwares | |
| Geração de Firmware | [GII, GII-DUO, G3, G3S, G3R |
A função deste bloco é viabilizar a comunicação remota com outros controladores ou dispositivos remotos que possuem o protocolo SCP-HI ou MODBUS-RTU.
Para utilizar o elemento no programa deve-se posicionar o cursor do editor
ladder na posição onde o elemento será inserido, selecionar no menu à
esquerda o grupo Especiais e clicar no botão associado
.
Nota
A execução deste comando pode levar vários ciclos de scan para ser concluído. Portanto, verifique a condição da saída do bloco para certificar-se que o processo está terminado e, avalie o valor para parâmetro P4 para identificar possíveis falhas.
Parâmetros¶
| Parâmetros | |||
|---|---|---|---|
| Parâmetros | Tipos | Valores | Descrição |
| P1 | K | 0..Max(K) | Função do bloco SCB de comunicação com dispositivos remotos. Deve ser uma constante inteira com valor igual a 235. |
| P2 | M | M[x + 0] | Identificador do canal de comunicação
serial mestre do controlador. Obs ![]() |
| M[x + 1] | Identificador do dispositivo remoto a ser
acessado (1..255). Obs ![]() |
||
| M[x + 2] | Código da função de comunicação a ser executada, vide Códigos para o protocolo SCP-HI ou Códigos para o protocolo MODBUS para mais informações sobre este parâmetro. | ||
| M[x + 3] | Se leitura; número da primeira variável Rxx, Mxx ou Dxx na baselocal do controlador, onde serão transferidos os valores obtidos do dispositivo remoto. Se escrita, número da primeira variável Rxx, Mxx, Lxx ou Dxx na base local do controlador, que será enviada para o dispositivo remoto. | ||
| M[x + 4] | Quantidade de variáveis Rxx, Mxx, Lxx ou Dxx a
serem escritas ou lidas no/do dispositivo
remoto. Obs ![]() |
||
| M[x + 5] | Se leitura, número da primeira variável na base do dispositivo remoto, onde serão obtidos os valores a serem lidos. Se escrita, número da primeira variável na base dispositivo remoto, onde serão escritos os valores enviados. | ||
| P3 | M | M[y + 0] | Parâmetro não utilizado para esta função (parâmetro dummy). |
| P4 | M | M[z + 0] | Código de retorno da execução da função, onde: Igual a 0 Indica função executada com sucesso Diferente de 0 - Indica condição de falha. Vide Tabela de códigos de retorno do controlador . |
Obs.:
Códigos para o protocolo SCP-HI¶
| Código dec[hexa] | R/W | Descrição |
| 0 [00] | R | Leitura de variáveis remotas do tipo R |
| 128 [80] | W | Escrita de variáveis remotas do tipo R |
| 1 [01] | R | Leitura de variáveis remotas do tipo M |
| 129 [81] | W | Escrita de variáveis remotas do tipo M |
| 2 [02] | R | Leitura de variáveis remotas do tipo D |
| 130 [82] | W | Escrita de variáveis remotas do tipo D |
| 3 [03] | R | Leitura de variáveis remotas do tipo L |
| 131 [83] | W | Escrita de variáveis remotas do tipo L |
| 11 [11] | R | Leitura de variáveis remotas do tipo F (Variáveis de Sistema) |
| 139 [8B] | W | Escrita de variáveis remotas do tipo F (Variáveis de Sistema) |
Códigos para o protocolo MODBUS¶
| Código dec[hexa] | R/W | Descrição |
| 0 [00] | R | Leitura de variáveis remotas do tipo COIL |
| 128 [80] | W | Escrita de variáveis remotas do tipo COIL |
| 1 [01] | R | Leitura de variáveis remotas do tipo HOLDING REGISTER |
| 129 [81] | W | Escrita de variáveis remotas do tipo HOLDING REGISTER |
| 2 [02] | R | Leitura de duplas de variáveis remotas do tipo HOLDING REGISTER |
| 130 [82] | W | Escrita de duplas de variáveis remotas do tipo HOLDING REGISTER |
| 5 [05] | R | Leitura de variáveis remotas do tipo INPUT REGISTER |
| 6 [06] | R | Leitura de variáveis remotas do tipo DISCRETE INPUTS |
Códigos para o funções especiais¶
| Código dec[hexa] | Descrição |
| 108 [6C] | Obtem status de conexão TCP com o equipamento remoto. |
| 109 [6D] | Obtem o IP e porta corrente do socket cliente |
| 110 [6E] | Abre conexão TCP com o equipamento remoto no IP especificado. |
| 111 [6F] | Fecha conexão do socket cliente |
Códigos de Erros de P4¶
| Códigos de Erros de P4 - Sistema Operacional do CLP | |
|---|---|
| Código de erro | Descrição |
| 0 | Função executada com sucesso. Nenhuma falha identificada no processo. |
| 5 | Parâmetro(s) inválido(s). Por exemplo, código da função de comunicação inválido, etc. |
| 10 | Excedido tempo de espera para execução da função de comunicação. |
| 12 | Driver de comunicação não está instalado no controlador. |
| 74 | Identificador do canal de comunicação inválido. |
| 206 | Variável R, M ou D acessada na base de dados do PLC pelo programa de aplicação não está alocada. No caso, pode ser uma variável R, M ou D especificada como origem ou destino para a função de troca de dados que excede a base de dados do PLC. |
| Códigos de Erros de P4 - Protocolo MODBUS-RTU/TCP | |
|---|---|
| Código de erro | Descrição |
| 1 | Illegal Function: Função solicitada não está implementada no dispositivo remoto. |
| 2 | Illegal Data Address: O endereço do dado acessado (registrador ou bit) não existe no dispositivo remoto. |
| 3 | Illegal Data Value: O valor inválido especificado para o dado, por exemplo, fora da escala permitida, dado não permite escrita, etc. |
| 4 | Slave Device Failure. |
| 5 | Acknowledge. |
| 6 | Slave Device Busy. |
Para mais informações sobre os códigos de erro consulte a Tabela de códigos de retorno do controlador .
Entradas¶
| Descrição das Entradas | |||
|---|---|---|---|
| Entrada | Função | Estado | Descrição |
| A1 | Ativação | Inativo | Neste estado o bloco não executa nenhuma ação, repassando apenas o estado inativo para a saída B1. |
| Ativo | Neste estado o bloco executa a funcionalidade associada ao mesmo. OBS: Cabe ressaltar que, para o bloco SCB, esta entrada opera por transição ou seja, o bloco é executado apenas quando a entrada A1 muda do estado inativo para o estado ativo. Uma vez ativada, a entrada A1 deverá permanecer ativa até o término da execução da função que é sinalizado através da ativação da saída B1 do bloco. | ||
Saída¶
| Descrição das Saídas | |||
|---|---|---|---|
| Saída | Função | Estado | Descrição |
| B1 | Ativação/Falha | Inativo | A saída B1 sempre estará inativa se a entrada A1 estiver inativa. Quando a entrada A1 for ativada a saída B1 permanecerá inativa enquando o bloco estiver executando o comando associado indicando que o processo ainda não terminou. |
| Ativo | Indica fim de execução do processo associado ao bloco. Para identificar se a função foi executada com sucesso é necessário examinar o parâmetro P4, que contém o código indicando o resultado da execução do processo associado. Para mais informações sobre os códigos disponíveis para esta função consulte a Tabela de códigos de retorno do controlador . | ||
Os controladores podem operar em modo Mestre ou Escravo, ou se o mesmo possuir dois canais seriais de comunicação, pode-se configurar um canal para operar em modo Mestre e outro para operar em modo Escravo, bem como uma serial configurada para o protocolo SCP-HI e a outra configurada com o protocolo MODBUS. O controlador mestre é responsável por iniciar uma comunicação com o equipamento escravo, tanto para solicitar dados como para enviar dados. O equipamento escravo apenas responde às solicitações de comunicação provenientes do mestre.
No caso do controlador possuir mais de um canal de comunicação serial disponível, pode-se operar com mais de um canal de comunicação em modo mestre, e assim realizar a troca de dados com mais de um dispositivo remoto simultaneamente.
Comunicação Remota Via Protocolo SCP-HI¶
São os seguintes as funções de comunicação disponíveis para utilização quando utilizando o protocolo SCP-HI:
- Função de comunicação 0: Através desta função, o controlador mestre pode ler variáveis do tipo “R” de outro controlador escravo e armazenar os valores lidos em variáveis do tipo “R” no controlador mestre.
- Função de comunicação 128: Através desta função, o controlador mestre pode escrever um conjunto de variáveis do tipo “R” em outro conjunto de variáveis do tipo “R” de um controlador escravo.
- Função de comunicação 1: Através desta função, o controlador mestre pode ler variáveis do tipo “M” de outro controlador escravo e armazenar os valores lidos em variáveis do tipo “M” do controlador mestre.
- Função de comunicação 129: Através desta função, o controlador mestre pode escrever um conjunto de variáveis do tipo “M” em outro conjunto de variáveis do tipo “M” de um controlador escravo.
- Função de comunicação 2: Através desta função, o controlador mestre pode ler variáveis do tipo “D” de outro controlador escravo e armazenar os valores lidos em variáveis do tipo “D” do controlador mestre.
- Função de comunicação 130: Através desta função, o controlador mestre pode escrever um conjunto de variáveis do tipo “D” em outro conjunto de variáveis do tipo “D” de um controlador escravo.
Comunicação Remota Via Protocolo MODBUS-RTU/TCP¶
São os seguintes as funções de comunicação disponíveis para utilização quando utilizando o protocolo MODBUS-RTU/TCP:
| Função | Código | Descrição |
| 0 | READ_COIL | Através desta função, o controlador pode ler variáveis do tipo “coil” do dispositivo remoto e armazenar os valores lido em variáveis do tipo R do controlador mestre. Neste caso, cada variável do tipo “coil” lida do dispositivo remoto é mapeada em uma variável do tipo R do controlador mestre. |
| 128 | WRITE_MULTIPLE_COIL | Através desta função, o controlador pode escrever o valor de uma variável do tipo R em uma variável do tipo “Coil” do dispositivo remoto. Neste caso, cada variável do tipo R do controlador mestre é mapeada em uma variável do tipo “Coil” do dispositivo remoto. No caso dos controladores a utilização do código de função de comunicação é comum para mapear as funções “Write Single Coil” e “Write Multiple Coils”. Se a quantidade de variáveis a ser escrita for igual a 1 (um), será utilizada a função “Write Single Coil”, caso contrário, para quantidades maiores que 1, será utilizada a função “Write Multiple Coils”. Assim, a configuração dos parâmetros no bloco SCB difere apenas no parâmetro associado à quantidade de variáveis “Coil” a serem escritas no dispositivo remoto. |
| 1 | READ_HOLDING_REGISTERS | Através desta função, o controlador pode ler variáveis do tipo “holding register” do equipamento remoto e armazenar os valores lidos em variáveis do tipo M do controlador mestre. Neste caso, cada variável do tipo “holding register” especificada para leitura no dispositivo remoto é mapeada em uma variável do tipo M do controlador mestre. |
| 129 | WRITE_MULTIPLE_REGISTERS | Através desta função, o controlador pode escrever uma única variável do tipo M do controlador mestre em uma variável do tipo “register” do equipamento remoto. Neste caso, cada variável do tipo M do controlador mestre é mapeada em uma variável do tipo “register” no dispositivo remoto. No caso dos controladores, a utilização do código de função é comum para mapear as funções “Write Single Register” e “Write Multiple Registers”. Se a quantidade de variáveis a ser escrita for igual a 1 (um), utiliza-se a função “Write Single Register”, caso contrario, para quantidades maiores que 1, utiliza-se a função “Write Multiple Registers”. Assim, a configuração dos parâmetros no bloco SCB difere apenas no parâmetro associado à quantidade de variáveis “register” a serem escritas no dispositivo remoto. |
| 130 | WRITE_MULTIPLE_REGISTERS | (DUPLO). Através desta função, o controlador pode escrever o conteúdo de variáveis do tipo D em variáveis do tipo “register” do equipamento remoto. Neste caso, cada variável do tipo D do controlador HI mestre é mapeada em duas variáveis do tipo “register” no dispositivo remoto, de forma seqüencial. |
| 5 | READ_INPUT_REGISTERS | Através desta função, o controlador pode ler o conteúdo de variáveis do tipo “input register” e armazenar os valores lidos em variáveis do tipo M do controlador mestre. No caso, cada “input register” lido do dispositivo remoto é mapeado em uma variável do tipo M do controlador mestre. |
| 6 | READ_DISCRETE_INPUTS | Através desta função, o controlador pode ler variáveis do tipo “discrete inputs” do dispositivo remoto, e armazenar os valores lidos em variáveis do tipo M do controlador mestre. No caso, cada “discrete input” lido do dispositivo remoto é mapeado em um bit de uma variável do tipo M do controlador mestre. |
Nota
Dispositivos que disponibilizam o protocolo MODBUS, geralmente apresentam o seu mapa de endereços composto por um número indicativo, gerando um valor de OFFSET no respectivo endereço. Neste caso, deve-se subtrair este OFFSET para determinar o endereço da variável a ser acessada no dispositivo.


