You are on page 1of 12

MKM PROTOCOLO MODBUS

KRON INSTRUMENTOS ELÉTRICOS

MKM

PROTOCOLO MODBUS – MANUAL DO CLIENTE


Rev. 1.4

Características
A comunicação baseada no protocolo MODBUS possibilita a conexão com até 247 módulos MKM
numa linha RS-485.

Especificações:

• Baud Rate = 9600 ou 19200 bps


• Parity = nenhuma
• Stop Bit = 2
• Data Bit = 8
• RTU (Remote Terminal Unit) - Modo de transmissão no qual os dados são transmitidos como
caracteres de 8 bits.

MASTER (PC) SLAVE (MKM)


Endereço do Slave Endereço do Slave
8 bits 8 bits
Código da Função Código da Função
8 bits 8 bits
Dado Dado
N * 8 bits N * 8 bits
Error check Error Check
16 bits 16 bits
Intervalo de Silêncio Intervalo de Silêncio
T1 T2 T3 T1 T2 T3

A interface de comunicação é do padrão RS-485, a dois fios, half-duplex, baudrate de 9600 ou 19200,
1 start bit, 8 bits de dados, 2 stop bits e sem paridade. Com exceção da velocidade, os demais
parâmetros são fixos. A especificação da velocidade é feita na especificação do pedido e, uma vez
definida, esta não mais poderá ser alterada.

Apenas o master pode começar um diálogo com os slaves, sendo este diálogo do tipo question/reply
(endereço de apenas um slave) ou endereçando a mensagem para todos os slaves (endereço 0 =
broadcast) sem obter um reply.

No protocolo MODBUS, o instrumento sai de fábrica com apenas o número de série programado,
ficando a cargo do usuário definir um endereço na rede para o dispositivo que vai de 1 até 247.

\eng\mkm\doc\protocolo modbus - cliente \rev1_4\modbus_c.doc MEDIDORES KRON - 1/12


MKM PROTOCOLO MODBUS

Algoritmo
Uma mensagem é iniciada com um intervalo de silêncio de no mínimo 3,5 vezes a velocidade de
comunicação de um caracter. Por exemplo, a 9600 bps, um caracter leva 1,15ms para ser transmitido
(8N2 = 11 bits), portanto deve haver um silêncio na rede de 4 ms antes de uma mensagem ser
transmitida. O número máximo de caracteres numa mensagem é 29.

A rede é monitorada continuamente pelo slave, incluindo durante o intervalo de silêncio. Quando o
1o. caracter é recebido, cada dispositivo decodifica-o para verificar se é o seu endereço. Se não for, o
dispositivo deve aguardar que a rede fique em silêncio ( sem transmissão ) por 3,5 vezes a velocidade
de comunicação de um caracter. Se o endereço for o do dispositivo, o mesmo deve receber todo o resto
do frame. O fim do frame é indicado pelo intervalo de silêncio. Uma mensagem deve ser transmitida
como uma cadeia continua de bytes.

Quando ocorrer erro de comunicação, uma retransmissão (retry) para o mesmo slave deve esperar no
mínimo 3 segundos.

Procedimento para cálculo do CRC


No modo RTU, é incluído na mensagem um error-checking baseado no método CRC que verifica se a
mensagem recebida está correta.

O CRC contém dois bytes e é calculado pelo dispositivo transmissor, que anexa o CRC na mensagem.
O dispositivo receptor recalcula o CRC após a recepção da mensagem e compara o valor calculado
com o valor recebido. Se os valores não são iguais, a mensagem é descartada.

O algoritmo para cálculo do CRC é:

1. Preencha um registro de 16 bits com 1s (0xFFFF)


2. Faça um OR EXCLUSIVE entre o registro (lsb) e o byte de transmissão
3. Desloque o registro obtido 1 bit à direita
4. Se o bit menos significativo do registro for igual a 1, faça um OR EXCLUSIVE com os seguintes
16 bits:
10100000 00000001
MSB LSB
5. Repita os passos 3 e 4 oito vezes
6. Repita os passos 2,3,4 e 5 para todos os bytes da mensagem
7. O conteúdo final do registro é o valor do CRC que é transmitido no final da mensagem começando
com o byte menos significativo.

A seguir uma função para cálculo do CRC escrita em C:

void main()
{
unsigned char buf_485[30];
union CRC
{ unsigned char c_crc[2];
unsigned int i_crc;
} crc;

crc.i_crc = 0;
buf_485[0] = 0x1B; // Endereço do Slave
buf_485[1] = 0x04; // Função MODBUS: Read Input Register
buf_485[2] = 0x00; // Registro inicial para ler (MSB)

MEDIDORES KRON - 2/12


MKM PROTOCOLO MODBUS

buf_485[3] = 0x14; // Registro inicial para ler (LSB)


buf_485[4] = 0x00; // Total de registros para ler (MSB)
buf_485[5] = 0x02; // Total de registros para ler (LSB)
crc.i_crc = MB_CalcCRC (6, buf_485, 0xFFFF);
buf_485[6] = crc.c.crc[0]; // CRC (LSB)
buf_485[7] = crc.c_crc[1]; // CRC (MSB)
}

#define NUM_SHIFT 8
#define POLINOMIAL 0xA001 // Polinomial constant (RTU mode)

unsigned int MB_CalcCRC (unsigned char num_of_char, unsigned char *ptr_num,


register unsigned int checksum)
{
char i,j;

// for all char


for (i=0; i < num_of_char; i++)
{
// execute XOR
checksum ^= *ptr_num;
ptr_num++;

// shift checksum 1 bit right


for (j=1; j < NUM_SHIFT+1; j++)
{
// if LSBit = 0
if ((checksum & 0x01) == 0)
checksum >>= 1;
else
checksum = (checksum >> 1) ^ POLINOMIAL;
}
}
return(checksum);
}

Código do Dispositivo
Este documento apresenta as funções MODBUS disponíveis para toda a linha de dispositivos MKM.
Para distinguir as características conforme o modelo do MKM, é fornecido um código que indica
quais funções MODBUS estão disponíveis para um instrumento em particular. Consulte mais adiante
neste manual a função “Report Slave ID (17)” para obter o código do dispositivo.

Os códigos válidos são:

DISP. CÓDIGO DESCRIÇÃO


MKM 0x60 “MKM-120”

MKM 0x72 MKM-01 sem Demanda


MKM 0x73 MKM-01 com Demanda Ativa
MKM 0x74 MKM-01 com Demanda Ativa e Aparente

MKM 0x80 MKM-01 com Memória de Massa

MEDIDORES KRON - 3/12


MKM PROTOCOLO MODBUS

Funções MODBUS
As funções MODBUS para o MKM são:

• Read Input Status (2)


• Read Holding Register (3)
• Read Input Register (4)
• Force Single Coil * (5)
• Preset Single Register * (6)
• Read Exception Status (7)
• Preset Multiple Register * (16)
• Report Slave ID (17)
• Exception Response (ERROR)

* Broadcast - funções que podem ser endereçadas para todos os slaves (endereço 0)

Read Input Status (2)

Esta função permite ler o estado das portas de entrada e saída digitais do instrumento. Os seguintes
registros estão disponíveis:

ENDEREÇO REGISTRO DESCRIÇÃO TIPO RANGE


10001 EDP-1 Entrada Digital de Pulso 1 BIT 0=0FF / 1=ON
10002 EDP-2 Entrada Digital de Pulso 2 BIT 0=0FF / 1=ON
10003 SD-1 Saída 1 BIT 0=0FF / 1=ON
10004 SD-2 Saída 2 BIT 0=0FF / 1=ON

O código do MKM e os registros válidos para esta função são:

REGISTROS VÁLIDOS 0x60 0x72 0x73 0x74 0x80


10001 à 10004 √

Os frames desta função para o master e slave são:

Função
MASTER
Endereço 0x02 0x00 0x00 0x00 0x04 CRC
do Slave 8 bit – 8 bit

(1) Registro
inicial para ler Total de
registros para ler

(1) O registro inicial para ler é obtido removendo o indicativo (número 1) e subtraindo o resultado por
1. No exemplo, o registro 10001 (decimal) é transmitido como 0x0000 (hexadecimal): 10001 = 0001
= (0001 - 1) = 0000 = 0x0000 hexadecimal.

SLAVE
Endereço 0x02 0x01 ESTADO CRC
do Slave 8 bit 8 bit - 8 bit

Byte Count Estado das Entradas e Saídas

MEDIDORES KRON - 4/12


MKM PROTOCOLO MODBUS

O estado das entradas e saídas digitais deve ser interpretado conforme tabela abaixo, onde bit 1 indica
porta ligada e bit 0 indica porta desligada.

BIT D7 D6 D5 D4 D3 D2 D1 D0
REGISTRO --- --- --- --- SD-2 SD-1 EDP-2 EDP-1

Read Holding Register (3)

Esta função permite ler os registros de configuração do instrumento. Os seguintes registros estão
disponíveis:

REGISTRO DESCRIÇÃO TIPO RANGE


TP Relação do Transformador de Potência IEEE754 32-bit floating point ----
TC Relação do Transformador de Corrente IEEE754 32-bit floating point ----
KE Relação Watt-horas por pulso unsigned int 16-bit 0 à 65535
TL Tipo de Ligação unsigned int 8-bit 0 à 255
TI Tempo de Integração em minutos unsigned int 8-bit 0 à 60

Os registros TP e TC indicam a relação do transformador de potência ou corrente, o registro KE


indica quantos Wh eqüivale um pulso (caso o dispositivo não possua saída de pulsos, KE deve ser
igual a zero). TI é o tempo de integração em minutos para o cálculo da Demanda e da Máxima
Demanda. Para o tipo de ligação (TL) siga a tabela abaixo:

TIPO DE LIGAÇÃO TL
4 FIOS - 3 ELEMENTOS 0
4 FIOS - 2 ELEMENTOS 1
4 FIOS - 1 ELEMENTO 2
3 FIOS - 3 ELEMENTOS 16
3 FIOS - 2 ELEMENTOS 17
3 FIOS - 1 ELEMENTO 18
3 FIOS - 2 ELEMENTOS (Delta TL48) 48
3 FIOS - 2 ELEMENTOS (Delta TL80) 80

Os registros são endereçados da seguinte forma:

ENDEREÇO REGISTRO DESCRIÇÃO


40001 TP IEEE 32-bit fp 1a. parte (F2,F1)
40002 TP IEEE 32-bit fp 2a. parte (F0,EXP)
40003 TC IEEE 32-bit fp 1a. parte (F2,F1)
40004 TC IEEE 32-bit fp 2a. parte (F0,EXP)
40005 KE unsigned int 16-bit (LSB,MSB)
40006 TL / TI unsigned int 8-bit (LSB) / unsigned int 8-bit (MSB)

Observe que para cada registro temos dois bytes. Os frames desta função para o master e slave são:
Função
MASTER
Endereço 0x03 0x00 0x02 0x00 0x02 CRC
do Slave 8 bit - 8 bit

(1) Registro
inicial para ler Total de
registros para ler

MEDIDORES KRON - 5/12


MKM PROTOCOLO MODBUS

(1) O registro inicial para ler é obtido removendo o indicativo (número 4) e subtraindo o resultado por
1. No exemplo, o registro 40003 (decimal) é transmitido como 0x0002 (hexadecimal): 40003 = 0003
= (0003 - 1) = 0002 = 0x0002 hexadecimal.

SLAVE
Endereço 0x03 0x04 0x00 0x80 0x89 0x44 CRC
do Slave 8 bit - 8 bit

Byte Count

Reg. 40004 = 0x8944


Reg. 40003 = 0x0080

O registro byte count é igual ao total de registros para ler vezes 2, pois cada registro possui 2 bytes.

No exemplo anterior o master pediu uma leitura dos registros referentes ao TC (40003 e 40004) e
obteve como resposta o valor 0x00808944 (IEEE 32-bit floating point). Convertendo este valor para
decimal temos que TC = 1100,0.

MEDIDORES KRON - 6/12


MKM PROTOCOLO MODBUS

Read Input Register (4)

Esta função permite ler os registros no qual as grandezas elétricas estão armazenadas. Os seguintes
registros estão disponíveis no MKM:

ENDEREÇO REG. DESCRIÇÃO TIPO RANGE


30001, 30002 NS Número de Série Unsigned int 32-bit (MSB,LSB)
30003, 30004 U Tensão Trifásica (V) IEEE 32-bit fp (F2,F1,F0,EXP)
30005, 30006 I Corrente Trifásica (A) IEEE 32-bit fp (F2,F1,F0,EXP)
30007, 30008 FP Fator de Potência Trifásico IEEE 32-bit fp (F2,F1,F0,EXP)
30009, 30010 S Potência Aparente Trifásica (VA) IEEE 32-bit fp (F2,F1,F0,EXP)
30011, 30012 Q Potência Reativa Trifásica (VAr) IEEE 32-bit fp (F2,F1,F0,EXP)
30013, 30014 P Potência Ativa Trifásica (W) IEEE 32-bit fp (F2,F1,F0,EXP)
30015, 30016 F Freqüência (Hz) IEEE 32-bit fp (F2,F1,F0,EXP)
30017, 30018 U1 Tensão Linha 1 (V) IEEE 32-bit fp (F2,F1,F0,EXP)
30019, 30020 U2 Tensão Linha 2 (V) IEEE 32-bit fp (F2,F1,F0,EXP)
30021, 30022 U3 Tensão Linha 3 (V) IEEE 32-bit fp (F2,F1,F0,EXP)
30023, 30024 I1 Corrente Linha 1 (A) IEEE 32-bit fp (F2,F1,F0,EXP)
30025, 30026 I2 Corrente Linha 2 (A) IEEE 32-bit fp (F2,F1,F0,EXP)
30027, 30028 I3 Corrente Linha 3 (A) IEEE 32-bit fp (F2,F1,F0,EXP)
30029, 30030 P1 Potência Ativa Linha 1 (W) IEEE 32-bit fp (F2,F1,F0,EXP)
30031, 30032 P2 Potência Ativa Linha 2 (W) IEEE 32-bit fp (F2,F1,F0,EXP)
30033, 30034 P3 Potência Ativa Linha 3 (W) IEEE 32-bit fp (F2,F1,F0,EXP)
30035, 30036 Q1 Potência Reativa Linha 1 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP)
30037, 30038 Q2 Potência Reativa Linha 2 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP)
30039, 30040 Q3 Potência Reativa Linha 3 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP)
30041, 30042 S1 Potência Aparente Linha 1 (VA) IEEE 32-bit fp (F2,F1,F0,EXP)
30043, 30044 S2 Potência Aparente Linha 2 (VA) IEEE 32-bit fp (F2,F1,F0,EXP)
30045, 30046 S3 Potência Aparente Linha 3 (VA) IEEE 32-bit fp (F2,F1,F0,EXP)
30047, 30048 FP1 Fator de Potência Linha 1 IEEE 32-bit fp (F2,F1,F0,EXP)
30049, 30050 FP2 Fator de Potência Linha 2 IEEE 32-bit fp (F2,F1,F0,EXP)
30051, 30052 FP3 Fator de Potência Linha 3 IEEE 32-bit fp (F2,F1,F0,EXP)
30053, 30054 EA+ Energia Ativa Positiva (KWh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 99.999.999,0
30055, 30056 ER+ Energia Reativa Positiva (KVArh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 99.999.999,0
30057, 30058 EA- Energia Ativa Negativa (KWh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à -99.999.999,0
30059, 30060 ER- Energia Reativa Negativa (KQh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à -99.999.999,0
30061, 30062 MDA Máx. Demanda Ativa (KW) IEEE 32-bit fp (F2,F1,F0,EXP)
30063, 30064 DA Demanda Ativa (KW) IEEE 32-bit fp (F2,F1,F0,EXP)
30065, 30066 MDS Máx. Demanda Aparente (KVA) IEEE 32-bit fp (F2,F1,F0,EXP)
30067, 30068 DS Demanda Aparente (KVA) IEEE 32-bit fp (F2,F1,F0,EXP)

O código do MKM e os registros válidos para esta função são:

REGISTROS VÁLIDOS 0x60 0x72 0x73 0x74 0x80


30001 à 30060 √
30001 à 30064 √ √
30001 à 30068 √ √

O MKM código 0x60 difere no tratamento dos seguintes registros:

ENDEREÇO REG. DESCRIÇÃO TIPO RANGE


30057, 30058 EDP-1 Contador da EDP-1 IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 9.999.999,0
30059, 30060 EDP-2 Contador da EDP-2 IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 9.999.999,0

MEDIDORES KRON - 7/12


MKM PROTOCOLO MODBUS

Os frames desta função para o master e slave são:


Função
MASTER
Endereço 0x04 0x00 0x0E 0x00 0x02 CRC
do Slave 8 bit - 8 bit

(1) Registro
inicial para ler (2) Total de
registros para ler

(1) O registro inicial para ler é obtido removendo o indicativo (número 3) e subtraindo o resultado
por 1. No exemplo, o registro 30015 (decimal) é transmitido como 0x000E (hexadecimal): 30015
= 0015 = (0015 - 1) = 00014 = 0x000E hexadecimal.

(2) No máximo podem ser lidos 12 registros (6 grandezas elétricas) para cada requisição.

SLAVE
Endereço 0x04 0x04 0x00 0x00 0x70 0x42 CRC
do Slave 8 bit - 8 bit

Byte Count

Reg. 30016 = 0x7042


Reg. 30015 = 0x0000
O registro byte count é igual ao total de registros para ler vezes 2, pois cada registro possui 2 bytes.

No exemplo anterior o master pediu uma leitura dos registros que contém a frequência (30015 e
30016) e obteve como resposta o valor 0x00007042 (IEEE 32-bit floating point). Convertendo este
valor para decimal temos que Frequência = 60,0 Hz.

Force Single Coil (5)

Esta função permite executar os seguintes comandos no MKM:

COMANDO DESCRIÇÃO 0x60 0x72 0x73 0x74 0x80


001 Zera Demanda Ativa (DA) √ √ √ √
002 Zera Demanda Aparente (DS) √ √
003 Zera Máxima Demanda Ativa (MDA) √ √ √ √
004 Zera Máxima Demanda Aparente (MDS) √ √
005 Zera Energia Ativa Positiva (EA+) √ √ √ √ √
006 Reinicializa Dispositivo √ √ √ √ √
007 Sincroniza Cálculo da Demanda √ √ √ √
021 Zera Contador EDP-1 √
022 Zera Contador EDP-2 √
031 Liga / Desliga SD-1 √
032 Liga / Desliga SD-2 √
040 Zera Energias, Demandas e Contadores EDPs √ √ √ √
050 Zera Energia Reativa Positiva (ER+) √ √ √ √ √
051 Zera Energia Ativa Negativa (EA-) √ √ √ √
052 Zera Energia Reativa Negativa (ER-) √ √ √ √
080 Zera Conteúdo da Memória de Massa √

MEDIDORES KRON - 8/12


MKM PROTOCOLO MODBUS

Os frames desta função para o master e slave são:

Função
MASTER
Endereço 0x05 0x00 0x04 0xFF 0x00 CRC
do Slave 8 bit - 8 bit

(1) Comando (2) 0xFF00 = ON


0x0000 = OFF

(1) Este registro é obtido subtraindo 1 do comando desejado. No exemplo o comando 005 é enviado
como 0x0004.

(2) Utilizado para ligar (0xFF00) ou desligar (0x0000) as saídas digitais. Ignorado pelos outros
comandos

O Slave retorna uma cópia do frame recebido. Para o exemplo acima:

SLAVE
Endereço 0x05 0x00 0x04 0xFF 0x00 CRC
do Slave 8 bit - 8 bit

Preset Single Register (6)

Esta função serve para programar um dos registros de configuração do instrumento (“Holding
Registers”). Para saber quais são estes registros consulte a função “Read Holding Register (3)”. Os
frames desta função para o master e slave são:
Função
MASTER
Endereço 0x06 0x00 0x05 0x00 0x01 CRC
do Slave 8 bit - 8 bit

(1) Registro para Valor para ser


programar programado

(1) O registro para programar é obtido removendo o indicativo (número 4) e subtraindo o resultado
por 1. No exemplo, o registro 40006 (decimal) é transmitido como 0x0005 (hexadecimal): 40006 =
0006 = (0006 - 1) = 0005 = 0x0005 hexadecimal.
Função
SLAVE (echo of the command received)
Endereço 0x06 0x00 0x05 0x00 0x01 CRC
do Slave 8 bit - 8 bit

(1) Registro para Valor para ser


programar programado
Para esta função o slave retorna uma cópia do comando recebido. No exemplo anterior o master
programou o registro 40006 (TL - Tipo de Ligação) com o valor 01: 4 fios - 2 elementos.

MEDIDORES KRON - 9/12


MKM PROTOCOLO MODBUS

Read Exception Status (7)

Permite checar a integridade do dispositivo. Os códigos retornados pelo instrumento são:

CÓDIGO DESCRIÇÃO
0x00 Funcionamento correto
0x01 Inversão de Fase ou falta de Fase
0x02 Erro matemático
0x04 Overflow na geração do Pulso de Energia
0x08 Excedido o limite permitido para Urms e/ou Irms
0x10 Sistema reinicializado incorretamente
0x80 Falha Memória de Massa

Observe que o código é binário, ou seja, pode haver uma combinação de códigos. Assim, um código de
erro 09 identifica um código de erro 01 mais código 08.

Os frames desta função para o master e slave são:

MASTER
Endereço 07 CRC
do Slave 8 bit - 8 bit

SLAVE
Endereço 07 Código CRC
do Slave 8 bit - 8 bit

Preset Multiple Register (16)

Esta função serve para programar vários registros de configuração do instrumento (“Holding
Registers”). Para saber quais são estes registros consulte a função “Read Holding Register (3)”.

Os frames desta função para o master e slave são:


Função
MASTER
Endereço 0x10 0x00 0x00 0x00 0x02 0x04 0x00 0x80 0xBB 0x44 CRC
do Slave 8 bit - 8 bit

(1) Registro inicial


para programar Reg 40001 = Reg 40002 =
Quantidade 0x0080 0xBB44
Byte Count
de registros

(1) O registro inicial para programar é obtido removendo o indicativo (número 4) e subtraindo o
resultado por 1. No exemplo, o registro 40001 (decimal) é transmitido como 0x0000 (hexadecimal):
40001 = 0001 = (0001 - 1) = 0000 = 0x0000 hexadecimal.

Função
SLAVE
Endereço 0x10 0x00 0x00 0x00 0x02 CRC
do Slave 8 bit - 8 bit

(1) Registro inicial Quantidade


para programar

MEDIDORES KRON - 10/12


MKM PROTOCOLO MODBUS

No exemplo acima o master programou os registros referentes ao TP (40001 e 40002) como 1500
(IEEE 32-bit float pointing = 0x0080BB44).

Atenção: O frame transmitido pelo master não deve exceder 29 bytes.

Report Slave Id ( 17)

Esta função permite identificar um dispositivo na rede através de um código conhecido.

MASTER
Slave 0x11 CRC
Address 8 bit - 8 bit

SLAVE
Endereço 0x11 Byte CÓDIGO ON / XX XX CRC
do Slave Count OFF

Onde:
• Byte Count = Sempre 0x04
• CÓDIGO = Código do Dispositivo
• ON / OFF = Sempre ON → 0xFF
• XX XX = Reservado

Exception Response (ERROR)

Os erros de comunicação detectados pelo slave são manipulados de duas maneiras:

1. “No reply”: Caso o slave detecte um erro no formato dos dados, CRC, etc, ele ignorará a
mensagem não gerando um reply (resposta).

2. Exception Response: O slave enviará um frame com um código de erro

SLAVE
Endereço 0x80 + Função Código CRC
do Slave de Erro 8 bit - 8 bit

Número da
função enviada
pelo master com
o bit 7 = 1

Os possíveis códigos de erro são:

Código de Erro Descrição


01 Ilegal Function
02 Ilegal Data Address
03 Ilegal Data Value

MEDIDORES KRON - 11/12


MKM PROTOCOLO MODBUS

Funções Especiais MODBUS para o MKM


As funções especiais MODBUS para o MKM são:

• ConfigAddress (0 / 0x42)

ConfigAddress ( 0 / 0x42)

Esta função, embora seja especial, é compatível com os dispositivos Electrex e TKE-01. O slave não
deverá gerar reply e, no caso do MKM, este não necessita estar com o jumper CONFIGURAÇÃO.

Esta função permite configurar o endereço de um dispositivo através de seu número de série. Os
endereços válidos vão de 1 até 247, sendo que cada dispositivo deve possuir um endereço único na
rede. Para certificar-se que o endereço desejado já não está cadastrado em outro dispositivo, antes de
executar esta função envie, por exemplo, a função 07 com o endereço desejado para a rede. Caso você
não obtenha resposta, significa que nenhum dispositivo foi configurado com este endereço.

MASTER
0x00 0x42 Número de Série do Dispositivo Novo Endereço CRC
8 bit - 8 bit - 8 bit - 8 bit 8 bit 8 bit - 8 bit

Por exemplo, supondo um dispositivo com número de série 21000, para configurá-lo para o endereço
100:
MASTER
0x00 0x42 0x00 0x00 0x52 0x08 0x64 CRC

Observe que o dispositivo não gera reply.

Timing
Os seguintes tempos devem ser respeitados na comunicação entre o Master e o Slave:

Ação Equate
Retry para um mesmo slave DELAY_RETRY_SEND_FRAME
Delay para iniciar a transmissão de um frame DELAY_SEND_FRAME
Aguardar a recepção de um frame TIMEOUT_RECEIVE_FRAME
Delay para transmitir um byte do frame DELAY_SEND_BYTE
Aguardar a recepção de um byte do frame TIMEOUT_RECEIVE_BYTE
Tempo para confirmar silêncio na rede CONFIRM_SILENT

Independente da velocidade de comunicação, os seguintes tempos do master são sempre os mesmos:

DELAY_RETRY_SEND_FRAME 3 segundos
DELAY_SEND_FRAME > 10 ms
TIMEOUT_RECEIVE_FRAME 1 segundo

Para 9600 bps, o master e o slave devem possuir os seguintes tempos:

DELAY MASTER SLAVE


DELAY_SEND_FRAME > 10 ms 4 ms
TIMEOUT_RECEIVE_FRAME 1 segundo ∞
DELAY_SEND_BYTE < 3 ms 1 ms
TIMEOUT_RECEIVE_BYTE - 3 ms
CONFIRM_SILENT - 3 ms

MEDIDORES KRON - 12/12

You might also like