Sei sulla pagina 1di 19

Módulos F MODBUS Mestre Escravo AL-2712

Cód. Doc.: CT104812 Revisão: C

Descrição do Produto
O pacote AL-2712 permite que os CPs PL104, PL105 e QK801 comuniquem no protocolo MODBUS RTU nos modos mestre e
escravo com outros equipamentos ou entre si. Esta comunicação é realizada através dos canais auxiliares (COM2 e COM3 no
PL104 e PL105 e COM2 no QK801).

Dados para Compra


Itens Integrantes
O AL-2712 é fornecido através de CD-ROM contendo os seguintes itens:

• Módulos de função F-MESTMB.010 e F-SLAVMB.011 a serem carregadas no controlador programável


• Características Técnicas (CT) das funções
• Contrato de licença

Código do Produto
O seguinte código deve ser usado para compra do produto:

Código Denominação
AL-2712 Módulos F MODBUS Mestre Escravo

Produtos Relacionados

Código Denominação
Mastertool Programming
MT4000 / MT4100
Software para a programação dos CPs Altus.
Cabo Programação Piccolo, para comunicação serial da UCP Piccolo com
AL-1330
microcomputador com conector RS232 de 9 pinos.
Cabo CMDB9-CFDB9, para comunicação serial da UCP AL ou QK com
AL-1390
microcomputador com conector RS232 de 9 pinos.
Cabo CMDB9-CFDB25, para comunicação serial do QK801 com microcomputador
AL-1383
com conector de 25 pinos.
Cabo CFDB9 – CMDB9, para conexão do conversor AL-1413 com o PC para
AL-1349
programação.
AL-1413 Conversor isolado de padrão RS485 para RS232 e vice-versa.
Cabo RJ45 – Anilhas, para ligação entre a UCP PL104/PL105 (COM2) ou
AL-1717
PO3145(COM2) e o derivador PO8525 ou AL-2600.
Cabo RJ45 e DB9 para conexão do canal serial 3 (RS232) do Piccolo ao conversor
AL-1718
AL-1413.
AL-1740 Cabo para comunicação entre COM3 (RS232) do Piccolo e COM1 da IHM Série H.
AL-1743 Cabo para comunicação entre COM3 (RS232) do Piccolo e COM2 da IHM Série H.
AL-2305 Cabo DB9 para conexão do canal serial 2 (RS485) do QK801 ao derivador AL-2600.
Cabo RJ45 – RJ45, extensor de barramento, para ligação entre a UCP PL104/PL105
PO8500
(COM2) ou PO3145 (COM2) e o derivador PO8525.
PO8525 Terminador/Derivador para rede EIA-485 com dois bornes parafusados e um RJ45.

AL-2600 Derivador e terminador para padrão RS485.

AL-2703 Pacote de Módulos F de Comunicação.

Altus S. A. 1
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Características
O pacote de módulos F AL-2712 tem as seguintes características.
• Velocidade de comunicação entre 300bps e 38400bps
• Sinais de modem configuráveis em: SEM SINAIS DE MODEM; COM RTS/CTS
• “Timeout” de resposta de 100ms até 25,4 segundos
• Paridade: SEM PARIDADE, PARIDADE PAR, PARIDADE IMPAR
• “Stop-bits”: 1 ou 2 “stop-bits”

Os comandos suportados pelo AL-2712 são:

• Comando 01 – “Read Coil Status”


• Comando 02 – “Read Input Status”
• Comando 03 – “Read Holding Registers”
• Comando 04 – “Read Input Registers”
• Comando 05 – “Force Single Coil”
• Comando 06 – “Preset Single Register”
• Comando 15 – “Force Multiple Coils”
• Comando 16 – “Preset Multiple Registers”

ATENÇÃO:
Os módulos F MODBUS Mestre e Escravo devem ser executados em controladores
programáveis PL104 ou PL105 com versão 1.04 ou superior do programa executivo ou em QK801
com versão 1.22 ou superior.

ATENÇÃO:
É possível utilizar o AL-2703 juntamente com o AL-2712 no mesmo canal, desde que a alocação
do canal seja feita corretamente no programa aplicativo, de modo que somente o AL-2703 utilize o
canal e depois somente o AL-2712 utilize o canal. Para que ocorra esse compartilhamento da
serial, as alocações são feitas com as chamadas de configuração de cada pacote (AL-2703 e
AL-2712). Chamadas simultâneas dos módulos F-TX.077, F-RX.078, F-MESTMB.010 e F-
SLAVMB.011 podem comprometer o canal serial e fazer ele não funcionar.

Programação
O módulo função F-MESTMB.010 poder ser usado de duas formas:
• Modo Configuração que possui 6 parâmetros de entrada. (OPER1)
• Modo Comunicação que possui 7 parâmetros de entrada (OPER1)
Abaixo será visto a parametrização de cada modo de chamada.

F-MESTMB.010 - Modo Configuração

Parâmetros de Configuração
OPER1 – Especifica o número de parâmetros que são passados para a função em OPER3. Este operando deverá ser
obrigatoriamente uma constante memória com valor 6 (%KM+0006).

Altus S. A. 2
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C
OPER2 – Deve ser um operando do tipo constante com o valor 0 (%KM+00000). Determina o número de parâmetros possíveis
de serem programados na janela de edição de OPER4. Como esta função não necessita de nenhum parâmetro em OPER4, o
valor de OPER2 é 0.

OPER3 – Contém os parâmetros que são passados para a função, declarados através de uma janela do programador quando
a instrução CHF for editada. O número de parâmetros editáveis é especificado em OPER1, sendo fixo em 6 para este modo:

Parâmetro 0:
%KMxxxx - Constante memória com o número do canal auxiliar a ser configurado.
%KM+00002 – Canal de comunicação COM2
%KM+00003 – Canal de comunicação COM3 (Apenas para UCPs da Série Piccolo)

Parâmetro 1:
%KMxxxx - Constante memória que define o “baud rate” da comunicação.
%KM+00038 – 38400 bps
%KM+19200 – 19200 bps
%KM+09600 – 9600 bps
%KM+04800 – 4800 bps
%KM+02400 – 2400 bps
%KM+01200 – 1200 bps
%KM+00600 – 600 bps
%KM+00300 – 300 bps

ATENÇÃO:
Não recomenda-se o uso de “baud rates” superiores a 9600 bps caso a UCP possua E-*.018 e/ou
E-*.020, bem como equipamentos comunicando nas outras seriais. Caso essa recomendação não
seja atendida, erros de “overrun” poderão ocorrer comprometendo a comunicação MODBUS.

Parâmetro 2:
%KMxxxx – Constante memória que define a paridade do caracter a ser utilizado na comunicação.
%KM+00000 – sem paridade
%KM+00001 – paridade ímpar
%KM+00002 – paridade par

Parâmetro 3:
%KMxxxx – Constante memória que define o número de “stop-bits” do caracter.
%KM+00001 – um “stop-bit”
%KM+00002 – dois “stop-bits”

Parâmetro 4:
%KMxxxx – Constante memória que define a configuração de sinais de modem do canal.
%KM+00000 – Sem RTS/CTS
%KM+00001 – Com RTS/CTS

ATENÇÃO:
Quando configurado o canal com sinais de modem, o timeout de espera do CTS é de 1,5
segundos.

ATENÇÃO:
A COM2 das UCPs é no padrão RS485 e não é aplicável configurar o canal com sinais de
modem. Configurar a COM2 Com ou Sem sinais de modem não irá alterar nenhuma
característica de funcionamento do canal.

Parâmetro 5:
%KMxxxx – Constante memória que define o tempo timeout de espera da resposta do escravo.
%KM+xxxx – Valores em décimos de segundo, sendo o mínimo 100ms e o máximo 25,4segundos.

Altus S. A. 3
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

OPER4 – Não utilizado.

ATENCÃO:
As chamadas de função F-MESTMB.010 não devem ser executadas a partir de um módulo de
programa E-*.018. A saída erro de parâmetros será ativada caso isso seja efetuado.

Entradas e Saídas

Descrição das entradas

Habilita - quando energizada a função é chamada, sendo analisados os parâmetros programados na instrução CHF. Caso os
mesmos estejam incorretos, a respectiva saída de erro de parâmetros da função é energizada. Se estiverem corretos, a serial
selecionada será configurada com os parâmetros e a saída Sucesso será energizada.
Mantendo a chamada de configuração sempre habilitada não será possível comunicar pois a chamada de configuração
reinicializa o canal de comunicação para o estado inicial sempre que chamada impedindo que a comunicação ocorra.

ATENÇÃO:
A chamada de configuração é necessária para configurar o canal serial conforme as
especificações da rede. Normalmente é necessária somente uma chamada de configuração da
F-MESTMB.010 por canal auxiliar. Esta chamada não deve ser executada simultaneamente com
as chamadas de comunicação, pois uma interfere na outra.

Comunica – não tem funcionalidade para a função quando operando em modo configuração.

Descrição das saídas

Sucesso – é ativada para indicar sucesso na configuração do canal serial auxiliar.

Erro de Execução – não tem funcionalidade para a função quando operando em modo configuração.

Erro de Parâmetros – é ativada para indicar que algum ou mais parâmetros estão inválidos e o canal não foi configurado
como especificado.

Exemplo de programação

Pode-se ver no exemplo abaixo o método utilizado para se efetuar a configuração do canal serial na inicialização da UCP.
Colocando uma chamada de configuração no módulo E-*.001 na lógica 000 da forma como mostrado abaixo, a configuração
será efetuada somente uma vez.
Na inicialização o %A6.0 inicia desligado, uma tentativa de configuração do canal será efetuada. Se tudo estiver correto a saída
sucesso é energizada setando o operando auxiliar %A6.0, o qual impede novas configurações do canal. Em caso de algum
parâmetro estar incorreto, o operando auxiliar %A6.1 ficará energizado até que os parâmetros inválidos sejam corrigidos.

Altus S. A. 4
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

De acordo com os parâmetros a serem passados para a função:

• Parâmetro 0: Canal 3.
• Parâmetro 1: Velocidade de comunicação 9600bps.
• Parâmetro 2: Sem paridade.
• Parâmetro 3: 2 “stop-bits”.
• Parâmetro 4: Sem CTS/RTS.
• Parâmetro 5: “Timeout” de resposta 1 segundo.

ATENÇÃO:
Pode-se configurar a chamada de configuração no módulo E-*.000 de forma a ser executado
somente uma vez. Mas como forma de segurança, sugere-se realizar a chamada de configuração
no módulo E-*.001, pois caso haja a necessidade de reinicializar o canal serial, pode-se
desenergizar o operando auxiliar %A6.0 para que o canal seja reconfigurado.

Altus S. A. 5
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

F-MESTMB.010 - Modo Comunicação


Cada chamada do módulo F-MESTMB.010 corresponde a uma relação MODBUS. Não há limites na F-MESTMB.010 pela
quantidade de relações possíveis de serem declaradas ao UCP. As limitações serão de operandos e de memória de programa.

Parâmetros de Comunicação
OPER1 – Especifica o número de parâmetros que são passados para a função em OPER3. Este operando deverá ser
obrigatoriamente uma constante memória com valor 7 (%KM+0007).

OPER2 – Deve ser um operando do tipo constante com o valor 0 (%KM+00000). Determina o número de parâmetros possíveis
de serem programados na janela de edição de OPER4. Como esta função não necessita de nenhum parâmetro em OPER4, o
valor de OPER2 é 0.

OPER3 – Contém os parâmetros que são passados para a função, declarados através de uma janela do programador quando
a instrução CHF for editada. O número de parâmetros editáveis é especificado em OPER1, sendo fixo em 7 para o modo de
comunicação:

Parâmetro 0:
%KMxxxx - Constante memória com o número do canal auxiliar a ser configurado.
%KM+00002 – Canal de comunicação COM2
%KM+00003 – Canal de comunicação COM3 (Apenas para UCPs da Série Piccolo)

Parâmetro 1:
%KMxxxx – Constante memória que define o endereço do equipamento escravo destino da comunicação. São válidos os
endereços de 0 até 255 (0 para mensagens broadcast).

Parâmetro 2:
%KMxxxx – Constante memória que define o tipo da função MODBUS desta comunicação. Esta constante poderá ter os
seguintes valores/funções:
%KM+00001 – Função 1 – “Read Coil Status”
%KM+00002 – Função 2 – “Read Input Status”
%KM+00003 – Função 3 – “Read Holding Registers”
%KM+00004 – Função 4 – “Read Input Registers”
%KM+00005 – Função 5 – “Force Single Coil”
%KM+00006 – Função 6 – “Preset Single Register”
%KM+00015 – Função 15 – “Force Multiple Coils”
%KM+00016 – Função 16 – “Preset Multiple Registers”

Parâmetro 3:
%Axxxx, %Exxxx, %Sxxxx, %Mxxxx, %TMxxxx ou %KMxxxx – Primeiro operando do CP, origem/destino da comunicação com o
equipamento escravo, que terá seu conteúdo copiado ou atualizado pela função.

Parâmetro 4:
%KMxxxx – Constante memória que define o endereço MODBUS do primeiro ponto/operando no equipamento escravo.

Parâmetro 5:
%KMxxxx – Constante memória que define o número de operandos do equipamento escravo e, consequentemente, do
equipamento mestre, associados a esta chamada de comunicação.

Parâmetro 6:

Altus S. A. 6
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C
%Mxxxx – Operando memória utilizado pela função para controle interno do seu processamento e para indicações de estado da
função.

ATENÇÃO:
O operando de controle não deve ter seu conteúdo alterado em nenhuma parte do programa
aplicativo, sob pena de prejudicar a execução da função ou até de impedir a comunicação do
canal até que uma reconfiguração seja efetuada. O operando de controle não deve ser retentivo.

OPER4 – Não utilizado.

ATENCÃO:
As chamadas de função F-MESTMB.010 não devem ser executadas a partir de um módulo de
programa E-*.018. A saída erro de parâmetros será ativada caso isso seja efetuado.

Entradas e Saídas

Descrição das entradas

Habilita - quando esta entrada está energizada a função é chamada, sendo analisados os parâmetros programados na
instrução CHF. Caso os mesmos estejam incorretos, a respectiva saída de erro de parâmetros da função é energizada.

ATENÇÃO:
A entrada Habilita deve sempre estar energizada. O acionamento das comunicações deve ser
feito através da entrada Comunica. Desenergizar a entrada Habilita durante processos de
comunicação podem fazer o canal serial trancar e somente será reabilitado com uma nova
configuração.

Comunica – quando energizada efetua as requisições de Mestre MODBUS para o escravo com os parâmetros configurados.
Um pulso de uma varredura de duração somente é necessário para que a comunicação seja inicializada.

ATENÇÃO:
Somente uma relação é disparada por vez. Se o canal estiver ocupado por outra relação, este
aguarda até que a relação anterior libere o canal para a relação atual.

Descrição das saídas

Sucesso – é ativada para indicar sucesso na execução de uma requisição MODBUS efetuada. Essa fica com a saída
habilitada durante uma varredura.

Erro de Comunicação – é ativada para indicar um erro na execução de uma requisição MODBUS efetuada. Essa fica com a
saída habilitada durante uma varredura. Pode-se analisar o byte 0 do operando de controle para verificar qual o erro que
ocorreu.

Erro de Parâmetros – é ativada para indicar que algum ou mais parâmetros estão inválidos.

Operando de controle

No operando %Mxxxx de controle da função, são armazenadas as seguintes informações: código do estado da função, código
de diagnóstico (erro ou sucesso). Cada uma destas informações utiliza um byte e estão distribuídos no operando da seguinte
forma:

Byte 1 Byte 0
Estado da função Diagnóstico

O operando de controle não deve ter seu conteúdo alterado. Porém no caso de um “Erro de Execução” o byte 0 pode ser
consultado para se saber qual o erro que causou o acionamento desta saída e a falha na comunicação.

Altus S. A. 7
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Os códigos válidos para o byte Estado da função são os seguintes:

Código Descrição do Estado da Função


00h Operando de controle não inicializado:
Ainda não foi realizada nenhuma chamada ao módulo de função.
Aguardando outra relação terminar.
20h Aguardando resposta: a função está aguardando uma resposta,
referente a uma comunicação disparada.
40h Bytes recebidos, aguardando timeout entre frames para validar o
frame.
60h Aguardando silêncio na linha para sincronizar os escravos.

ATENÇÃO:
O tempo de silêncio na linha para re-sincronizar o escravo é de 400ms. Recomenda-se configurar
o timeout do mestre com valores iguais ou maiores que 400ms. Para que a função entre neste
estado, erros de paridade ou erros de “framing” ocorreram.

Os códigos de Diagnóstico, válidos quando as saídas Sucesso ou Erro de Execução estiverem acionadas:

Código Descrição do Diagnóstico


00h Nenhuma indicação.
Serial desconfigurada: a serial está aguardando por um comando de
12h
configuração, para ser configurada.
Conflito: a função que estava aguardando a resposta quando detectou
que o estado de ocupado foi liberado por outra função. Só pode ser
13h utilizada uma função de cada vez. Este erro pode ocorrer em caso de
envio de uma nova configuração (módulo C) ou se outra função que
utilize o mesmo módulo foi chamada como modo configuração.
“Time-out” de sinal de modem. O canal foi configurado para trabalhar
20h com sinais de modem e o sinal de CTS não foi recebido após
1.5segundos.
“Time-out” de comunicação: o tempo limite para a chegada da resposta
21h
foi atingido e nenhuma resposta válida foi recebida neste tempo.
Resposta inválida: a resposta recebida difere da função de
22h comunicação disparada, quanto ao endereço do dispositivo MODBUS
escravo.
Resposta inválida: a resposta recebida difere da função de
23h
comunicação disparada, quanto ao número da função MODBUS.
Resposta inválida: a resposta recebida difere da função de
24h
comunicação disparada, quanto à quantidade de bytes de dados.
Resposta inválida: a resposta recebida possui uma quantidade de
25h bytes de dados inferior a 5 bytes que é o tamanho mínimo de um frame
MODBUS.
26h Resposta inválida: o CRC da resposta não confere com o esperado.
Comando “broadcast” transmitido: uma função sem resposta
30h (“broadcast”) foi disparada e, depois de transmitida é retornada como
executada.
Resposta recebida: foi recebida uma resposta válida para a função
31h
disparada.
Resposta de exceção / “Exception Code”: 01 - “Illegal Function”.
41h
(Função não implementada no escravo)
Resposta de exceção / “Exception Code”: 02 - “Illegal Data Address”.
42h
(Operando MODBUS não existente no escravo)
43h Resposta de exceção / “Exception Code”: 03 - “Illegal Data Value”.
44h Resposta de exceção / “Exception Code”: 04 - “Slave Device Failure”.
45h Resposta de exceção / “Exception Code”: 05 - “Acknowledge”.
46h Resposta de exceção / “Exception Code”: 06 - “Slave Device Busy”.

Altus S. A. 8
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Resposta de exceção / “Exception Code”: 07 - “Negative


47h
Acknowledge”.
48h Resposta de exceção / “Exception Code”: 08 - “Memory Parity Error”.
Respostas de exceção : o nibble menos significativo deste byte indica o
49h a 4Fh código de exceção (“Exception Code”) retornado pelo equipamento
escravo. Disponível para uso futuro.
Erro de “Overrun”.
52h (Provavelmente processamento elevado de interrupções, tente reduzir o
“baud rate” do Mestre e do Escarvo).
Erro de Paridade.
54h (Provavelmente o Escravo está configurado com uma paridade
diferente da do Mestre).
Erro de “Framing”, não foi detectado o “stop-bit” do byte recebido pela
serial.
58h (Provavelmente o Escravo está configurado com um “baud rate”
diferente do Mestre, ou a quantidade de “stop-bits” difere entre o
Mestre e o Escravo).
5Ch Erro de “Framing” e Erro de Paridade.

ATENÇÃO:
Para outros erros MODBUS o escravo deverá ser consultado.

Características de Software

Cada função possui limitações que podem ser vistas abaixo, sendo estas relativas à quantidade máxima de operandos
MODBUS a serem lidos ou escritos, viabilidade de se efetuar comandos broadcast, etc.
Se alguma das irregularidades abaixo acorrer, a função F-MESTMB.010 não será executada e a saída Erro de Parâmetros
será energizada.

Suporta BROADCAST Suporta origem Quantidade de Quantidade de


Função como %KM+xxxx operandos mínimo operandos máximo
(Parâmetro 1) (Parâmetro 3) (Parâmetro 4) (Parâmetro 5)
Read Coil Status
NÃO NÃO %KM+00001 %KM+00255
Função 1
Read Input Status
NÃO NÃO %KM+00001 %KM+00255
Função 2
Read Holding Registers
NÃO NÃO %KM+00001 %KM+00120
Função 3
Read Input Registers
NÃO NÃO %KM+00001 %KM+00120
Função 4
Force Single Coil
SIM SIM %KM+00001 %KM+00001
Função 5
Preset Single Register
SIM SIM %KM+00001 %KM+00001
Função 6
Force Multiple Coils
SIM NÃO %KM+00001 %KM+00255
Função 15
Preset Multiple Registers
SIM NÃO %KM+00001 %KM+00120
Função 16

ATENÇÃO:
Coils e Input Status são operandos MODBUS de tamanho de 1bit. Quando configurada uma
relação com essas funções, os dados de resposta do escravo serão armazenados no operando
%Yxxxx.0 de destino em diante. Não é possível definir como operando de destino um do tipo com
subdivisão. (Exemplo: %A5.4)

Altus S. A. 9
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

ATENÇÃO:
A função 5 (Force Single Coil) suporta operandos de origem do tipo %KM+xxxx. O valor a ser
forçado no Coil depende do bit 0 deste operando %KM+xxxx origem. Se o operando for Impar,
será forçado o valor 1 (Um), se for Par, será forçado para 0 (Zero). Normalmente utiliza-se os
valores %KM+0001 ou %KM+0000, mas são aceitos quaisquer valores.

Performance da F-MESTMB.010

A função F-MESTMB.010 tem a capacidade de processar uma Relação MODBUS em aproximadamente 200ms, ou no valor
do tempo de ciclo, caso este seja maior que 200ms.

Altus S. A. 10
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Programação – F-SLAVMB.011

O módulo função F-SLAVMB.011 poder ser usado de duas formas:


• Modo Configuração que possui 5 parâmetros de entrada. (OPER1)
• Modo Comunicação que possui 4 parâmetros de entrada (OPER1)
Abaixo será visto a parametrização de cada modo de chamada.

F-SLAVMB.011 - Modo Configuração

Parâmetros de Configuração
OPER1 – Especifica o número de parâmetros que são passados para a função em OPER3. Este operando deverá ser
obrigatoriamente uma constante memória com valor 5 (%KM+0005).

OPER2 – Deve ser um operando do tipo constante com o valor 0 (%KM+00000). Determina o número de parâmetros possíveis
de serem programados na janela de edição de OPER4. Como esta função não necessita de nenhum parâmetro em OPER4, o
valor de OPER2 é 0.

OPER3 – Contém os parâmetros que são passados para a função, declarados através de uma janela do programador quando
a instrução CHF for editada. O número de parâmetros editáveis é especificado em OPER1, sendo fixo em 6 para este modo:

Parâmetro 0:
%KMxxxx - Constante memória com o número do canal auxiliar a ser configurado.
%KM+00002 – Canal de comunicação COM2
%KM+00003 – Canal de comunicação COM3 (Apenas para UCPs da Série Piccolo)

Parâmetro 1:
%KMxxxx - Constante memória que define o “baud rate” da comunicação.
%KM+00038 – 38400 bps
%KM+19200 – 19200 bps
%KM+09600 – 9600 bps
%KM+04800 – 4800 bps
%KM+02400 – 2400 bps
%KM+01200 – 1200 bps
%KM+00600 – 600 bps
%KM+00300 – 300 bps

ATENÇÃO:
Não recomenda-se o uso de “baud rates” superiores a 9600 bps caso a UCP possua E-*.018 e/ou
E-*.020, bem como equipamentos comunicando nas outras seriais. Caso essa recomendação não
seja atendida, erros de “overrun” poderão ocorrer comprometendo a comunicação MODBUS.

Parâmetro 2:
%KMxxxx – Constante memória que define a paridade do caracter a ser utilizado na comunicação.
%KM+00000 – sem paridade
%KM+00001 – paridade ímpar
%KM+00002 – paridade par

Altus S. A. 11
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C
Parâmetro 3:
%KMxxxx – Constante memória que define o número de “stop-bits” do caracter.
%KM+00001 – um “stop-bit”
%KM+00002 – dois “stop-bits”

Parâmetro 4:
%KMxxxx – Constante memória que define a configuração de sinais de modem do canal.
%KM+00000 – Sem RTS/CTS
%KM+00001 – Com RTS/CTS

ATENÇÃO:
Quando configurado o canal com sinais de modem, o timeout de espera do CTS é de 1,5
segundos.

ATENÇÃO:
A COM2 das UCPs é no padrão RS485 e não é aplicável configurar o canal com sinais de
modem. Configurar a COM2 Com ou Sem sinais de modem não irá alterar nenhuma
característica de funcionamento do canal.

OPER4 – Não utilizado.

ATENÇÃO:
Não deve ser feita a configuração do canal serial com as funções trocadas. Se o canal for utilizado
como escravo MODBUS, deve configurá-lo com a chamada F-SLAVMB.011 (modo configuração)
e se for utilizado como mestre MODBUS, deve-se configurá-lo com a chamada F-MESTMB.010
(modo configuração).

ATENCÃO:
As chamadas de função F-MESTMB.010 não devem ser executadas a partir de um módulo de
programa E-*.018. A saída erro de parâmetros será ativada caso isso seja efetuado.

Entradas e Saídas

Descrição das entradas

Habilita - quando energizada a função é chamada, sendo analisados os parâmetros programados na instrução CHF. Caso os
mesmos estejam incorretos, a respectiva saída de erro de parâmetros da função é energizada. Se estiverem corretos, a serial
selecionada será configurada com os parâmetros e a saída Sucesso será energizada.
Mantendo a chamada de configuração sempre habilitada não será possível comunicar pois a chamada de configuração
reinicializa o canal de comunicação para o estado inicial sempre que chamada impedindo que a comunicação ocorra.

ATENÇÃO:
A chamada de configuração é necessária para configurar o canal serial conforme as
especificações da rede. Normalmente é necessária somente uma chamada de configuração da
F-SLAVMB.011 por canal auxiliar. Esta chamada não deve ser executada simultaneamente com
as chamadas de comunicação, pois uma interfere na outra.

Descrição das saídas

Sucesso – é ativada para indicar sucesso na configuração do canal serial auxiliar.

Erro de Comunicação – não tem funcionalidade para a função quando operando em modo configuração.

Erro de Parâmetros – é ativada para indicar que algum ou mais parâmetros estão inválidos e o canal não foi configurado
como especificado.

Altus S. A. 12
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

F-SLAVMB.011 - Modo Comunicação

Parâmetros de Comunicação
OPER1 – Especifica o número de parâmetros que são passados para a função em OPER3. Este operando deverá ser
obrigatoriamente uma constante memória com valor 4 (%KM+0004).

OPER2 – Deve ser um operando do tipo constante com o valor 0 (%KM+00000). Determina o número de parâmetros possíveis
de serem programados na janela de edição de OPER4. Como esta função não necessita de nenhum parâmetro em OPER4, o
valor de OPER2 é 0.

OPER3 – Contém os parâmetros que são passados para a função, declarados através de uma janela do programador quando
a instrução CHF for editada. O número de parâmetros editáveis é especificado em OPER1, sendo fixo em 4 para o modo de
comunicação:

Parâmetro 0:
%KMxxxx - Constante memória com o número do canal auxiliar a ser configurado.
%KM+00002 – Canal de comunicação COM2
%KM+00003 – Canal de comunicação COM3 (Apenas para UCPs da Série Piccolo)

Parâmetro 1:
%KMxxxx ou %Mxxxx – Constante memória ou Operando memória que define o endereço do equipamento escravo destino da
comunicação. São válidos os endereços de 1 até 255.

ATENÇÃO:
Para utilizar %Mxxxx no parâmetro 1, deve-se utilizar a função F-SLAVMB.011 de versão 1.01 ou
superior.

Parâmetro 2:
%Mxxxx ou %TMxxxx – Operando memória ou tabela memória onde são definidos os operandos MODBUS em conjunto com a
tabela de relações que relaciona os mesmos com operandos Altus. Ver formato da tabela no item “Tabela de relações” deste
documento.
Para o caso de operando %Mxxxx este parâmetro define a primeira posição da tabela, sendo os operandos subseqüentes as
próximas posições da tabela.
A tabela deve possuir no mínimo 21 posições declaradas, ou no caso de %Mxxxx, deve existir o %Mxxxx + 0 até %Mxxxx + 20.

Parâmetro 3:
%Mxxxx – Operando memória utilizado pela função para controle interno do seu processamento e para indicações de estado da
função.

ATENÇÃO:
O operando de controle não deve ter seu conteúdo alterado em nenhuma parte do programa
aplicativo, sob pena de prejudicar a execução da função ou até de impedir a comunicação do
canal até que uma reconfiguração seja efetuada. O operando de controle não deve ser retentivo.

OPER4 – Não utilizado.

Altus S. A. 13
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

ATENÇÃO:
As chamadas de função F-SLAVMB.011 não devem ser executadas a partir de um módulo de
programa E-*.018. A saída erro de parâmetros será ativada caso isso seja efetuado.

Entradas e Saídas

Descrição das entradas


Habilita - quando esta entrada está energizada a função é chamada, sendo analisados os parâmetros programados na
instrução CHF. Caso os mesmos estejam incorretos, a respectiva saída de erro de parâmetros da função é energizada.

Descrição das saídas

Recepção concluída – é ativada para indicar sucesso na execução de uma requisição MODBUS recebida. Essa fica com a
saída habilitada durante uma varredura.

Erro de Comunicação – é ativada para indicar um erro na execução da requisição MODBUS recebida. Essa fica com a saída
habilitada durante uma varredura. Pode-se analisar o byte 0 do operando de controle para verificar qual o erro que ocorreu.

Erro de Parâmetros – é ativada para indicar que algum ou mais parâmetros estão inválidos.

Operando de controle

No operando %Mxxxx de controle da função são armazenadas as seguintes informações: código do estado da função, código
de diagnóstico (erro ou sucesso). Cada uma destas informações utiliza um byte e estão distribuídos no operando da seguinte
forma:

Byte 1 Byte 0
Estado da função Diagnóstico

O operando de controle não deve ter seu conteúdo alterado. Porém no caso de um “Erro de Execução” o byte 0 pode ser
consultado para se saber qual o erro que causou o acionamento desta saída e a falha na comunicação.

Os códigos válidos para o byte Estado da função são os seguintes:

Código Descrição do Estado da Função


00h Operando de controle não inicializado:
Ainda não foi realizada nenhuma chamada ao módulo de função.
Aguardando requisição do mestre.
20h Bytes recebidos, aguardando timeout entre frames para validar o
frame.
40h Aguardando silêncio na linha para re-sincronizar.
60h Aguardando final da transmissão dos bytes da resposta.

ATENÇÃO:
O tempo de silêncio na linha para re-sincronizar o escravo é de 400ms. Recomenda-se configurar
o timeout do mestre com valores iguais ou maiores que 400ms. Para que a função entre neste
estado, erros de paridade ou erros de “framing” ocorreram.

Altus S. A. 14
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Os códigos de Diagnóstico, válidos quando as saídas Sucesso ou Erro de Execução estiverem acionadas:

Código Descrição do Diagnóstico


00h Nenhuma indicação.
Serial desconfigurada: a serial está aguardando por um comando de
12h
configuração, para ser configurada.
Conflito: a função perdeu a ocupação do canal. Este erro pode ocorrer
em caso de envio de uma nova configuração (módulo C) ou se outra
13h
função que utilize o mesmo módulo foi chamada como modo
configuração.
“Time-out” de sinal de modem. O canal foi configurado para trabalhar
20h com sinais de modem e o sinal de CTS não foi recebido após
1.5segundos.
Requisição inválida: a requisição recebida possui uma quantidade de
25h bytes de dados inferior a 5 bytes que é o tamanho mínimo de um frame
MODBUS.
26h Requisição inválida: o CRC da requisição não confere com o esperado.
Comando “broadcast” recebido: um comando sem resposta
30h (“broadcast”) foi recebido e, depois de recebido é retornada como
executado.
31h Requisição recebida: foi recebida uma requisição válida.
41h Requisição de exceção / “Exception Code”: 01 - “Illegal Function”.
42h Requisição de exceção / “Exception Code”: 02 - “Illegal Data Address”.
43h Requisição de exceção / “Exception Code”: 03 - “Illegal Data Value”.
44h Requisição de exceção / “Exception Code”: 04 - “Slave Device Failure”.
45h Requisição de exceção / “Exception Code”: 05 - “Acknowledge”.
46h Requisição de exceção / “Exception Code”: 06 - “Slave Device Busy”.
Requisição de exceção / “Exception Code”: 07 - “Negative
47h
Acknowledge”.
48h Requisição de exceção / “Exception Code”: 08 - “Memory Parity Error”.
Requisição de exceção: o “nibble” menos significativo deste byte indica
49h a 4Fh o código de exceção (“Exception Code”) retornado pelo equipamento
escravo. Disponível para uso futuro.
Erro de “Overrun”.
52h (Processamento elevado de interrupções, tente reduzir o “baud rate” do
Mestre e do Escravo).
Erro de Paridade.
54h (Provavelmente o Escravo está configurado com uma paridade
diferente da do Mestre).
Erro de “Framing”, não foi detectado o “stop-bit” do byte recebido pela
serial.
58h (Provavelmente o Escravo está configurado com um “baud rate”
diferente do Mestre, ou a quantidade de “stop-bits” difere entre o
Mestre e o Escravo).
5Ch Erro de “Framing” e Erro de Paridade.
Erro na quantidade de relações declaradas.
60h
O número ou é maior do que 4 ou é igual a 0.
61h Erro encontrado na primeira relação.
62h Erro encontrado na segunda relação.
63h Erra encontrado na terceira relação.
64h Erro encontrado na quarta relação.

Altus S. A. 15
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Tabela de Relações

Pos. Nome do campo Descrição da posição


0 Número de Relações Número de relações configuradas por esta tabela.
1 Área de dados 1ª Relação Descreve o tipo de dado MODBUS acessado por esta relação.
2 Operando MODBUS 1ª Relação Endereço do Operando MODBUS desta relação.
3 Quantidade 1ª Relação Quantidade de operandos MODBUS.
4 Tipo Operando 1ª Relação Tipo do operando desta relação.
5 Endereço Operando 1ª Relação Endereço do operando desta relação.
6 Área de dados 2ª Relação Descreve o tipo de dado MODBUS acessado por esta relação.
7 Operando MODBUS 2ª Relação Endereço do Operando MODBUS desta relação.
8 Quantidade 2ª Relação Quantidade de operandos MODBUS.
9 Tipo Operando 2ª Relação Tipo do operando desta relação.
10 Endereço Operando 2ª Relação Endereço do operando desta relação.
... ... ...
16 Área de dados 4ª Relação Descreve o tipo de dado MODBUS acessado por esta relação.
17 Operando MODBUS 4ª Relação Endereço do Operando MODBUS desta relação.
18 Quantidade 4ª Relação Quantidade de operandos MODBUS.
19 Tipo Operando 4ª Relação Tipo do operando desta relação.
20 Endereço Operando 4ª Relação Endereço do operando desta relação.

No campo Número de Relações deve ser escrita à quantidade de relações MODBUS configurados por esta tabela. Uma
relação define quais os operandos MODBUS que possui este escravo, além do tipo do operando MODBUS sua quantidade,
assim como o operando Altus relacionado. Cada relação configurada ocupa cinco posições da tabela.
O módulo F utiliza como referência o valor declarado na primeira posição da tabela para efeito de controle do número de
relações. Sendo assim, se o usuário declarar esta tabela como uma TM com 255 posições, e na primeira posição da mesma
escrever o valor 2, somente as duas primeiras relações(primeiras 11 posições) serão interpretadas.
O número de relações está limitado a um máximo de 4 relações.
O campo Área de Dados nª Relação deve conter o tipo de dados acessado via MODBUS e que está configurado nesta
relação. Este tipo de dado deve ser configurado da seguinte forma:

Tipo Área de Dado CÓDIGO DECIMAL CÓDIGO HEXADECIMAL CÓDIGO MODBUS


Input 00 00 10000
Coil 01 01 00000
Input Register 02 02 30000
Holding Register 03 03 40000

ATENÇÃO:
Para configuração do tipo MODBUS nas relações do módulo F, deve-se utilizar os valores
indicados na coluna "CÓDIGO DECIMAL" ou “CÓDIGO HEXADECIMAL”. A coluna "CÓDIGO
MODBUS" serve apenas como referência ao tipo do operando segundo a norma MODBUS.

ATENÇÃO:
Não é permitido declarar duas áreas MODBUS de mesmo tipo de operando MODBUS. Exemplo,
se for declarada uma relação MODBUS de operandos do tipo HOLDING REGISTERS, não será
possível declarar outra relação de HOLDING REGISTERS. O sintoma, se for declarada duas
relações de mesmo tipo de operandos MODBUS, será que a segunda relação de mesmo tipo não
será executada.

O campo Operando MODBUS nª Relação deve conter o número do primeiro operando MODBUS desta relação. Por exemplo,
se for configurado uma relação de Coil e se este deve ser o operando MODBUS 10, escreve-se 10 neste campo. Os outros
operandos desta relação irão ter os números que seguem o que estiver declarado neste campo.

Altus S. A. 16
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

ATENÇÃO:
O AL-2712 segue a norma MODBUS quanto a declaração do primeiro operando MODBUS, sendo
este o valor 0001.

O campo Quantidade nª Relação deve conter o número de operandos MODBUS desta relação. Por exemplo, se for
configurado uma relação de Input e esta deve ter 20 operandos, então este campo deve conter o valor 20. Este valor também é
utilizado pelo módulo para testar a existência dos operandos do CP.
Já o campo Tipo Operando nª Relação deve conter o código ALNET I do operando configurado, que pode ser visualizado na
tabela a seguir:

OPERANDO CODIGO DECIMAL CODIGO HEXADECIMAL


%EXXXX 08 08
%SXXXX 08 08
%AXXXX 09 09
%MXXXX 00 00
%TMXXX 32 20

No campo Endereço Operando nª Relação deve ser colocado o endereço do operando do CP para o qual serão
copiados/lidos os dados trocados pela serial. Por exemplo, caso queira-se usar o operando M0008, escreve-se 08 neste campo
da tabela.

Características de Software

Cada relação possui limitações que podem ser vistas abaixo, sendo estas relativas à quantidade máxima de operandos
MODBUS.
Mesmo com os dados inválidos na tabela de relações, a função F-SLAVMB.010 funciona perfeitamente até que o mestre
MODBUS efetue alguma requisição, neste momento as relações da tabela serão analisadas e se durante a varredura for
encontrado algum erro na tabela, o processamento é interrompido e o código de erro da relação inválida é retornado ao usuário
e a saída Erro de Comunicação será energizada.

Função Quantidade de operandos mínimo Quantidade de operandos máximo


Relação 00: Input 001 255
Relação 01: Coil 001 255
Relação 02: Input Registers 001 120
Relação 03: Holding Registers 001 120

ATENÇÃO:
Coils e Input Status são operandos MODBUS de tamanho de 1bit. Quando configurada uma
relação com essas funções, os dados de resposta do escravo serão armazenados no operando
%Yxxxx.0 de destino em diante. Não é possível definir como operando de destino um do tipo com
subdivisão. (Exemplo: %A5.4)

ATENÇÃO:
Não é permitido declarar duas áreas MODBUS de mesmo tipo de operando MODBUS. Exemplo,
se for declarada uma relação MODBUS de operandos do tipo HOLDING REGISTERS, não será
possível declarar outra relação de HOLDING REGISTERS. O sintoma, se for declarada duas
relações de mesmo tipo de operandos MODBUS, será que a segunda relação de mesmo tipo não
será executada.

Chamadas da F-SLAVMB.011

Não é possível chamar a função F-SLAVMB.011 em modo comunicação mais de uma vez dentro do programa aplicativo. A
tentativa de chamar a F-SLAVMB.011 para que o escravo fique mais rápido ou até mesmo para tentar obter um maior número
de relações irá fazer com que a F-SLAVMB.011 fique instável podendo causar erros não esperados ao processo de execução
da UCP. Nestes casos, nem uma melhor performance e nem mais relações serão obtidas.

Altus S. A. 17
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Desabilitando relações na F-SLAVMB.011

É possível na função F-SLAVMB.011 desabilitar alguma relação. Isto pode ser bastante útil caso o usuário queria proteger
alguma relação de ser escrita durante algum período.
No campo Área de Dados nª Relação defini-se o tipo de dado MODBUS da relação n. Se durante a execução do programa for
setado o bit 7 deste operando, a relação não será analisada, mas todas as outras continuarão funcionando.
A função F-SLAVMB.011 responderá, caso receba uma requisição que seria interpretada naquela relação desabilitada, o
código de erro ILLEGAL_DATA_ADDRESS (Código de erro MODBUS 02).

Exemplo:

Relação de Holding Registers com endereço MODBUS 40001 até 40100 a partir do %M0000 - HABILITADA
Pos. Nome posição
0 0001 hex
1 0003 hex
2 0001 hex
3 0064 hex
4 0000 hex
5 0000 hex
... ...

Relação de Holding Registers com endereço MODBUS 40001 até 40100 a partir do %M0000 - DESABILITADA
Pos. Nome posição
0 0001 hex
1 0083 hex
2 0001 hex
3 0064 hex
4 0000 hex
5 0000 hex
... ...

ATENÇÃO:
Deve-se alterar somente o byte 0 do operando de Área de Dados nª Relação, caso apareça um
valor diferente de 00 no byte 1 desta área, a função F-SLAVMB.011 irá parar de analisar a tabela
e erro da relação será retornado pelo operando de controle.

ATENÇÃO:
Não é possível efetuar forçamento de bits em operandos do tipo tabela. Caso a tabela de relações
seja declarada em um %TMxxxx, deve-se utilizar instruções MOT para desabilitar e habilitar
relações.

Performance da F-SLAVMB.011

A função F-SLAVMB.011 tem a capacidade de processar uma Relação MODBUS em aproximadamente 200ms, ou no valor do
tempo de ciclo, caso este seja maior que 200ms.

Legenda:
<1> Requisição do Mestre
<2> Resposta do F-SLAVMB.011

Altus S. A. 18
Módulos F MODBUS Mestre Escravo AL-2712
Cód. Doc.: CT104812 Revisão: C

Pode ser visto acima que a função F-SLAVMB.011 necessita de um tempo entre frames de 200ms para que seja detectado um
frame MODBUS válido. Devido a isso a performance da função é de no máximo 5 comunicações por segundo.
Veja que essa performance se deve ao mestre também, que neste caso, detecta o frame MODBUS válido num tempo muito
inferior ao da função F-SLAVMB.011 (valor desprezado).

ATENÇÃO:
Se o tempo de 200ms entre frames não for obedecido, a função F-SLAVMB.011 não irá
considerar um frame válido e o seu buffer serial poderá lotar. E então, quando for detectado o
timeout entre frames: ou a função detectará que a requisição não é para ela ou a função retornará
um erro de CRC. Após isso, já estará pronta para receber um novo frame MODBUS.

ATENÇÃO:
A arquitetura do diagrama acima representa um mestre MODBUS seguindo as normas de Tempo
entre frames que é de 3,5 caracteres (Exemplo: PO3X42). Caso fosse um mestre
F-MESTMB.010, o Tempo entre frames seria de 200ms.

Configurando outros mestres MODBUS utilizando-os com a F-SLAVMB.011

Para a função F-SLAVMB.011 validar um frame MODBUS recebido, ela necessita perceber um silêncio de 200ms na linha
após já ter recebido os bytes do frame em questão.

Utilizando a função F-SLAVMB.011 com outros tipos de escravos MODBUS, deve ser configurado no mestre MODBUS (se
possível) algumas opções:

• Timeout: Superior a 400ms.


• Tempo entre frames: 200ms (no mínimo).
• Retentativas: 1 (no mínimo).

As opções “Tempo entre frames” e “Retentativas” afetam diretamente na performance do sistema, ou seja, não devem ter
valores muito elevados, mas são demasiadamente importantes. As configurações devem ser seguidas de acordo com este
manual. Não é necessário configurar o “Tempo entre frames” com valores maiores do que 200ms e “Retentativas” com valores
maiores do que 1.

ATENÇÃO:
O tempo entre frames é relativo a comunicação entre Resposta do escravo e uma nova requisição
do mestre. Este tempo deve ser 200ms ou superior. Não deve ser confundido com “Polling” de
requisições.

ATENÇÃO:
O mestre MODBUS F-MESTMB.010 possui um tempo mínimo de 200ms entre frames. Para
configurar esse tempo com um valor maior, deve-se efetuar o controle de disparo das requisições
pela lógica de diagramas através de instruções TEE.

Sugestão para melhoria da performance da rede

Caso a arquitetura que o F-SLAVBM.011 seja usado tenha um número elevado de escravos MODBUS que não necessitem de
um tempo de 200ms de intervalo entre os frames, recomenda-se a seguinte configuração do mestre MODBUS para que não se
tenha uma grande perda de performance da rede.

• Timeout: Em torno, mas superior á 400ms.


• Tempo entre frames: Mínimo possível, seguindo a recomendação dos outros escravos MODBUS (geralmente 15ms).
• Retentativas: 1 (no mínimo).

Altus S. A. 19