Protocolo MODBUS - Família MKM (Portugues)
April 29, 2018 | Author: Anonymous |
Category:
Documents
Description
MKM PROTOCOLO MODBUS MEDIDORES KRON - 1/12 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 8 bits Endereço do Slave 8 bits Código da Função 8 bits Código da Função 8 bits Dado N * 8 bits Dado N * 8 bits Error check 16 bits Error Check 16 bits Intervalo de Silêncio T1 T2 T3 Intervalo de Silêncio 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 MKM PROTOCOLO MODBUS MEDIDORES KRON - 2/12 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: 1010000000000001 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) MKM PROTOCOLO MODBUS MEDIDORES KRON - 3/12 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 MKM PROTOCOLO MODBUS MEDIDORES KRON - 4/12 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 1BIT 0=0FF / 1=ON 10002 EDP-2 Entrada Digital de Pulso 2BIT 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: MASTER Endereço do Slave 0x02 0x00 0x00 0x00 0x04 CRC 8 bit â 8 bit (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 do Slave 0x02 0x01 ESTADO 8 bit CRC 8 bit - 8 bit (1) Registro inicial para ler Total de registros para ler Função Byte Count Estado das Entradas e SaÃdas MKM PROTOCOLO MODBUS MEDIDORES KRON - 5/12 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ênciaIEEE754 32-bit floating point- - - - TC Relação do Transformador de CorrenteIEEE754 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 minutosunsigned 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: MASTER Endereço do Slave 0x03 0x00 0x02 0x00 0x02 CRC 8 bit - 8 bit (1) Registro inicial para ler Total de registros para ler Função MKM PROTOCOLO MODBUS MEDIDORES KRON - 6/12 (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 do Slave 0x03 0x04 0x00 0x80 0x89 0x44 CRC 8 bit - 8 bit 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. Byte Count Reg. 40003 = 0x0080 Reg. 40004 = 0x8944 MKM PROTOCOLO MODBUS MEDIDORES KRON - 7/12 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, 30002NS Número de Série Unsigned int 32-bit (MSB,LSB) 30003, 30004U Tensão Trifásica (V) IEEE 32-bit fp (F2,F1,F0,EXP) 30005, 30006I Corrente Trifásica (A) IEEE 32-bit fp (F2,F1,F0,EXP) 30007, 30008FP Fator de Potência Trifásico IEEE 32-bit fp (F2,F1,F0,EXP) 30009, 30010S Potência Aparente Trifásica (VA)IEEE 32-bit fp (F2,F1,F0,EXP) 30011, 30012Q Potência Reativa Trifásica (VAr) IEEE 32-bit fp (F2,F1,F0,EXP) 30013, 30014P Potência Ativa Trifásica (W) IEEE 32-bit fp (F2,F1,F0,EXP) 30015, 30016F Freqüência (Hz) IEEE 32-bit fp (F2,F1,F0,EXP) 30017, 30018U1 Tensão Linha 1 (V) IEEE 32-bit fp (F2,F1,F0,EXP) 30019, 30020U2 Tensão Linha 2 (V) IEEE 32-bit fp (F2,F1,F0,EXP) 30021, 30022U3 Tensão Linha 3 (V) IEEE 32-bit fp (F2,F1,F0,EXP) 30023, 30024I1 Corrente Linha 1 (A) IEEE 32-bit fp (F2,F1,F0,EXP) 30025, 30026I2 Corrente Linha 2 (A) IEEE 32-bit fp (F2,F1,F0,EXP) 30027, 30028I3 Corrente Linha 3 (A) IEEE 32-bit fp (F2,F1,F0,EXP) 30029, 30030P1 Potência Ativa Linha 1 (W) IEEE 32-bit fp (F2,F1,F0,EXP) 30031, 30032P2 Potência Ativa Linha 2 (W) IEEE 32-bit fp (F2,F1,F0,EXP) 30033, 30034P3 Potência Ativa Linha 3 (W) IEEE 32-bit fp (F2,F1,F0,EXP) 30035, 30036Q1 Potência Reativa Linha 1 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP) 30037, 30038Q2 Potência Reativa Linha 2 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP) 30039, 30040Q3 Potência Reativa Linha 3 (VAr) IEEE 32-bit fp (F2,F1,F0,EXP) 30041, 30042S1 Potência Aparente Linha 1 (VA)IEEE 32-bit fp (F2,F1,F0,EXP) 30043, 30044S2 Potência Aparente Linha 2 (VA)IEEE 32-bit fp (F2,F1,F0,EXP) 30045, 30046S3 Potência Aparente Linha 3 (VA)IEEE 32-bit fp (F2,F1,F0,EXP) 30047, 30048FP1 Fator de Potência Linha 1 IEEE 32-bit fp (F2,F1,F0,EXP) 30049, 30050FP2 Fator de Potência Linha 2 IEEE 32-bit fp (F2,F1,F0,EXP) 30051, 30052FP3 Fator de Potência Linha 3 IEEE 32-bit fp (F2,F1,F0,EXP) 30053, 30054EA+ Energia Ativa Positiva (KWh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 99.999.999,0 30055, 30056ER+ Energia Reativa Positiva (KVArh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 99.999.999,0 30057, 30058EA- Energia Ativa Negativa (KWh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à -99.999.999,0 30059, 30060ER- Energia Reativa Negativa (KQh) IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à -99.999.999,0 30061, 30062MDA Máx. Demanda Ativa (KW) IEEE 32-bit fp (F2,F1,F0,EXP) 30063, 30064DA Demanda Ativa (KW) IEEE 32-bit fp (F2,F1,F0,EXP) 30065, 30066MDS Máx. Demanda Aparente (KVA)IEEE 32-bit fp (F2,F1,F0,EXP) 30067, 30068DS 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, 30058EDP-1 Contador da EDP-1IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 9.999.999,0 30059, 30060EDP-2 Contador da EDP-2IEEE 32-bit fp (F2,F1,F0,EXP) 0,0 à 9.999.999,0 MKM PROTOCOLO MODBUS MEDIDORES KRON - 8/12 Os frames desta função para o master e slave são: MASTER Endereço do Slave 0x04 0x00 0x0E 0x00 0x02 CRC 8 bit - 8 bit (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 do Slave 0x04 0x04 0x00 0x00 0x70 0x42 CRC 8 bit - 8 bit 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 à (1) Registro inicial para ler (2) Total de registros para ler Função Byte Count Reg. 30015 = 0x0000 Reg. 30016 = 0x7042 MKM PROTOCOLO MODBUS MEDIDORES KRON - 9/12 Os frames desta função para o master e slave são: MASTER Endereço do Slave 0x05 0x00 0x04 0xFF 0x00 CRC 8 bit - 8 bit (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 do Slave 0x05 0x00 0x04 0xFF 0x00 CRC 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: MASTER Endereço do Slave 0x06 0x00 0x05 0x00 0x01 CRC 8 bit - 8 bit (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. SLAVE (echo of the command received) Endereço do Slave 0x06 0x00 0x05 0x00 0x01 CRC 8 bit - 8 bit 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. Função (1) Registro para programar (1) Registro para programar (1) Comando Valor para ser programado Valor para ser programado Função Função (2) 0xFF00 = ON 0x0000 = OFF MKM PROTOCOLO MODBUS MEDIDORES KRON - 10/12 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 do Slave 07 CRC 8 bit - 8 bit SLAVE Endereço do Slave 07 Código CRC 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: MASTER Endereço do Slave 0x10 0x00 0x00 0x00 0x02 0x04 0x00 0x80 0xBB 0x44 CRC 8 bit - 8 bit (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. SLAVE Endereço do Slave 0x10 0x00 0x00 0x00 0x02 CRC 8 bit - 8 bit (1) Registro inicial para programar (1) Registro inicial para programar Byte Count Quantidade Função Função Quantidade de registros Reg 40001 = 0x0080 Reg 40002 = 0xBB44 MKM PROTOCOLO MODBUS MEDIDORES KRON - 11/12 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 Address 0x11 CRC 8 bit - 8 bit SLAVE Endereço do Slave 0x11 Byte Count CÃDIGO ON / OFF XX XX CRC 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 do Slave 0x80 + FunçãoCódigo de Erro CRC 8 bit - 8 bit 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 Número da função enviada pelo master com o bit 7 = 1 MKM PROTOCOLO MODBUS MEDIDORES KRON - 12/12 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 8 bit - 8 bit - 8 bit - 8 bit Novo Endereço 8 bit CRC 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 frameDELAY_SEND_FRAME Aguardar a recepção de um frame TIMEOUT_RECEIVE_FRAME Delay para transmitir um byte do frameDELAY_SEND_BYTE Aguardar a recepção de um byte do frameTIMEOUT_RECEIVE_BYTE Tempo para confirmar silêncio na redeCONFIRM_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
Comments
Copyright © 2024 UPDOCS Inc.