Medidor de combustível LLS Manual de integração Redação #5 LLS Manual Manual de integração Medidor de nível de combustível LLS Conteúdo 1 INTRODUÇÃO .............................................................................................. 3 2 DESCRIÇÃO DO MEDIDOR DE NÍVEL DE COMBUSTÍVEL LLS............... 3 3 REQUISITOS DE DISPOSITIVO EXTERNO ................................................ 4 4 DESCRIÇÃO DO PROTOCOLO DE TROCA DE DADOS ........................... 4 4.1 DESCRIÇÃO DE COMANDOS DE PROTOCOLO DE TROCA DE DADOS BINÁRIO ............................................................................................................... 5 4.1.1 Leitura de dados (comando 06h) ................................................................................6 4.1.2 Entrega periódica de dados (comando 07h) ................................................................7 4.1.3 Configuração de intervalo de entrega periódica de dados (comando 13h) .................8 4.1.4 Regime de entrega de dados por padrão (comando 17h) ............................................8 4.2 DESCRIÇÃO DE COMANDOS PARA O PROTOCOLO DE TRANSFERENCIA SIMBÓLICO ..................................................................................... 9 4.2.1 Leitura de dados ..........................................................................................................9 4.2.2 Entrega periódica de dados .......................................................................................10 Anexo A Algoritmo de cálculo de soma de controle ....................................... 11 2 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração 1 Medidor de nível de combustível LLS INTRODUÇÃO Este manual fornece orientação para a integração da aplicação do medidor de nível de combustível LLS (medidor LLS) fabricado pela Omnicomm em sistemas de monitoramento e controle de veículos de vários fabricantes (dispositivo externo/rastreador). O manual contém os requisitos para configuração de dispositivos externos funcionar junto com o medidor de nível de combustível LLS fabricado pela Omnicomm. Os dispositivos externos devem ter uma interface serial digital RS-232 e/ou RS-485 para transmissão de dados de medição de nível de combustível. Estes requisitos não se aplicam aos medidores LLS com canal de transferencia de dados analógico ou de freqüência com interface digital ajustável. A configuração do medidor deve ser feita por profissionais especializados em instalação de rastreadores e outros equipamentos e por meio do programa grátis LLS Monitor. Lista de documentos relacionados: 2 Manual de instrução LLS «MI LLS 20160», «MI LLS 20230»; Manual de usuário LLS Monitor «MU LLS Monitor»; Manual de instalação «MdI LLS 20160, LLS 20230». DESCRIÇÃO DO MEDIDOR DE NÍVEL DE COMBUSTÍVEL LLS A troca de informações é realizada com o medidor via interface RS-232 ou via RS-485. O sensor suporta velocidades de comunicação de 1200 até 115200 bytes/seg. Como padrão, o sensor é configurado para 19200 bytes/seg. O medidor de nível de combustível funciona em dois modos: slave (dirigido) и master (conduzido). O modo Master pode ser acionado somente quando o medidor de nível de combustível é conectado a um dispositivo externo. Neste modo, o próprio medidor LLS, sem receber comando de pedido do dispositivo externo, envia pacotes de dados de temperatura e de nível de combustível (veja a descrição do protocolo de comando 07h e descrição do protocolo de transferencia de símbolos). Neste modo o endereço da rede do medidor pode ser ajustado. Para ligar o modo Master precisa-se: Escolher o valor “binário” ou “simbólico” em modo de “Regime de entrega independente de dados" (ou com o comando 17h. Veja 4.1.4). Definir o intervalo de entrega de dados em parâmetro “Entrega de dados” em programa LLS Monitor (ou com o comando 17h. Veja.0). O modo Slave pode ser realizado ao conectar um ou vários medidores de nível de combustível ao dispositivo externo. Cada medidor de nível de combustível deve ter endereço da rede único e configurado (mesmo no caso de um medidor instalado via interface RS-232). Neste modo o medidor responde a todos os comandos de pedidos recebidos de dispositivo geral da rede (master). Os dois dispositivos devem ter o mesmo endereço de rede. 3 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS Para ligar o modo Slave precisa-se: Escolher em modo de “Regime de entrega independente de dados” NÃO. Definir o endereço da rede do medidor de nível de combustível LLS. O medidor LLS faz medição de nível de combustível de 1 em 1 segundo. Recomendamos perguntá-lo com tempo maior a 0,5 segundos, pois o medidor vai passar os valores iguais. 3 REQUISITOS DE DISPOSITIVO EXTERNO O dispositivo externo deve possuir interface serial RS-485 ou RS-232. O dispositivo externo também deve suportar o protocolo do medidor de nível de combustível LLS (Veja 4). 4 DESCRIÇÃO DO PROTOCOLO DE TROCA DE DADOS Protocolo de troca de dados entre o medidor LLS e dispositivo externo tem duas partes: a parte de uso aberto e a parte de uso fechado. A parte de uso fechado é utilizada para configurar os parâmetros do medidor LLS por meio de programa LLS Monitor. Os comandos da parte de uso fechado podem ser alterados e não são suportados por alguns tipos de medidores LLS, mas são suportáveis por programa LLS Monitor. A parte de uso aberto é suportável por todos os tipos de medidores LLS que tem interface digital. Os comandos não podem ser alterados e são suportados em todos os tipos de medidor LLS produzidos recentemente. A parte de uso aberto do protocolo suporta dois tipos de protocolo de troca de dados: em modo binário (HEX) ou em modo simbólico (transmissão de sequencias ASCII). Recomenda-se utilizar o protocolo de troca de dados binário. Veja a descrição de comandos da parte aberta do protocolo em 4.1 e 4.2). Após ligar o medidor LLS e antes do primeiro comando precisa-se aguardar por 100 mseg. Comandos enviados durante os primeiros 100 mseg serão ignorados pelo medidor LLS. A troca de dados começa somente após os primeiros 100 mseg. de silencia em canal de troca de dados. Em modo de Slave, após o envio do primeiro comando, é necessário aguardar a primeira resposta do medidor LLS. O tempo de atraso de resposta depende da velocidade de transferência de dados e do tipo de protocolo utilizado, mas não excede 100 mseg. Em caso de não recebimento de resposta, tente mandar o comando novamente. Os dados entre o medidor LLS e o dispositivo externo são transferidos em modo de mensagens, em formato comum. A mensagem é transferida por pacotes de bytes. A transferência de cada byte começa com o byte START e termina com o byte STOP (Desenho 1). Os dados devem ser transmitidos com o bit menor em frente. O intervalo entre os bytes seguintes em pacote (Тт) deve ser ou menos de duração de 35 1 ms . transferência de 35 bits, ou menos de 1 ms, se e velocidade (b / s ) 4 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS Desenho 1 Тbit – tempo de transferência de um bit de informação; Тт – timeout entre bytes de sequência em pacote. Fim de pacote de bit é a situação quando o byte seguinte não é recebido dentro do tempo (Тp) maior do que o intervalo máximo permitido (Тт) + 1 ms. (Desenho 2). Desenho 2 Este procedimento aplica-se ao medidor LLS e dispositivo externo. 4.1 DESCRIÇÃO DE COMANDOS DE PROTOCOLO DE TROCA DE DADOS BINÁRIO Formato de mensagens para o protocolo de troca de dados binário Todos os comandos de protocolo binário tem o mesmo formato padrão. Veja embaixo (Tabela 1). 5 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS Tabela 1 Número de sequencia Nome de campo 1 Prefixo Tamanho de campo, bit 1 2 Endereço de rede 1 3 Código de operação 1 4 Dados 5 Soma de controle Depende do código de operação 1 Descrição O campo é o marcador de início de mensagem. As mensagens recebidas devem ter o prefixo 31h. As mensagens enviadas devem ser exibidos por programo com o prefixo 3Eh. O campo inclui: - para o prefixo 31h endereço de rede de destinatário de mensagem; - para o prefixo 3Eh endereço de rede de remitente de mensagem. O campo inclui: - para o prefixo 31h código de operação que o programa deve executar; - para o prefixo 3Eh código de operação em que o programa deve responder. Conteúdo de dados e formato do campo dependem-se do código de operação. O campo é utilizado para controle de integridade de dados. O algoritmo de cálculo veja em Anexo. 4.1.1 LEITURA DE DADOS (COMANDO 06H) Este comando é utilizado para leitura de dados atuais: nível relativo, temperatura, frequência. Nível relativo é mostrado pelo medidor LLS dentro do intervalo configurado em parâmetros de “Indicação mínima” e "Indicação máxima". Os dados são transferidos com bit menor em frente. Formato de comando: Tabela 2 Deslocamento, bit 0 +1 +2 +3 Tamanho de campo, bit 1 1 1 1 Valor Descrição 31h 00h…FFh 06h 00h…FFh Prefixo Endereço de rede Código de operação Soma de controle Valor Descrição 3Eh 00h…FFh 06h -128…127 0000h…FFFFh 0000h…FFFFh 00h…FFh Prefixo Endereço de rede Código de operação Temperatura, em C Nível relativo Valor da frequência Soma de controle Formato de resposta: Tabela 3 Deslocamento, bit 0 +1 +2 +3 +4 +6 +8 Tamanho de campo, i 1 1 1 1 2 2 1 Após ligar o medidor LLS e antes da estabilização do indicador de medição (tempo varia conforme o tipo do medidor LLS e não ultrapassa alguns segundos) os resultados de medição não são confiáveis. Neste caso, o medidor LLS retorna os dados com o valor superior a 0FFFh (ou 4095d). Recebendo pacote com este valor de nível de combustível, recomenda-se parar de configurar o medidor LLS e esperar por 1-2 segundos. Depois repita o comando para o medidor LLS novamente. 6 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS 4.1.2 ENTREGA PERIÓDICA DE DADOS (COMANDO 07H) Este comando é utilizado para iniciar a entrega de dados periódica. Após o processamento deste comando, o medidor LLS começa a fornecer entrega periódica de dados: nível, temperatura, frequência, com intervalos de tempo configurado pelo comando 13h. Com valor zero de período a entrega de dados não será possível. A desativação de entrega periódica de dados pode ser efetuada somente após o recebimento de qualquer comando válido, reset de processador ou desligamento de alimentação se não foi configurado o regime de entrega periódica de dados por padrão. (Veja em 4.1.4). Formato de mensagens de dados veja abaixo em tabela (Tabela 4). Os dados são transferidos com bit menor em frente Formato de comando: Tabela 4 Deslocamento, bit 0 +1 +2 +3 Tamanho de campo, bit 1 1 1 1 Valor Descrição 31h 00h…FFh 07h 00h…FFh Prefixo Endereço de rede Código de operação Soma de controle Valor Descrição 3Eh 00h…FFh 07h 00h Prefíxo Endereço de rede Código de operação Comando executado com êxito 01h 00h…FFh Comando não executado Soma de controle Formato de resposta: Tabela 5 Deslocamento, bit 0 +1 +2 +3 Tamanho de campo, bit 1 1 1 1 +4 1 Formato de entrega periódica de dados: Tabela 6 Deslocamento, bit 0 +1 +2 +3 +4 +6 +8 Tamanho de campo, bit 1 1 1 1 2 2 1 Valor Descrição 3Eh 00h…FFh 07h -128…127 0000h…FFFFh 0000h…FFFFh 00h…FFh Prefixo Endereço de rede de remetente Código de operação Temperatura, em C Nível relativo LVL Valor da frequência F Soma de controle 7 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS 4.1.3 CONFIGURAÇÃO DE INTERVALO DE ENTREGA PERIÓDICA DE DADOS (COMANDO 13H) Este comando é utilizado para configuração de intervalo de entrega periódica de dados. Por ordem de comando o medidor LLS salva novo valor de intervalo de entrega de dados em memória não-volátil. Com valor de período de zero, a entrega de dados não será possível. Formato de comando: Tabela 7 Deslocamento, bit Tamanho de campo, bit 1 1 1 1 1 0 +1 +2 +3 +4 Valor Descrição 31h 00h…FFh 13h 0…255 00h…FFh Prefixo Endereço de rede de remetente Código de operação Intervalo de entrega periódica de dados, em seg. Soma de controle Valor Descrição 3Eh 00h…FFh 13h 00h Prefixo Endereço de rede de remetente Código de operação Comando executado com êxito. 01h 00h…FFh Comando não executado Soma de controle Formato de resposta: Tabela 8 Deslocamento, bit 0 +1 +2 +3 Tamanho de campo, bit 1 1 1 1 +4 1 4.1.4 REGIME DE ENTREGA DE DADOS POR PADRÃO (COMANDO 17H) Este comando determina a ordem de entrega de dados após a ligação da alimentação ou reset do processador. Por ordem de comando (Tabela 9), o programa salva o parâmetro em memória não-volátil e envia resposta (Tabela 10) com os resultados de processamento do comando. Após a ligação ou reset, o programa enviará os dados via interface com intervalo determinado por comando 13h. Com valor de período zero, a entrega de dados não será possível. Formato de comando: Tabela 9 Deslocamento, bit 0 +1 +2 +3 +4 Tamanho de campo, bit 1 1 1 1 1 Valor Descrição 31h 00h…FFh 17h 00h Prefixo Endereço de rede de destinatário. Código de operação Dados não entregados 01h Dados entregados em modo binário 02h Dados entregados em modo simbólico 00h…FFh Soma de controle 8 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS Formato de resposta: Tabela 10 Deslocamento, bit 0 +1 +2 +3 Tamanho de campo, bit 1 1 1 1 +4 1 4.2 Valor Descrição 3Eh 00h…FFh 17h 00h 01h 00h…FFh Prefixo Endereço de rede de remetente Código de operação Comando executado com êxito Comando não executado Soma de controle DESCRIÇÃO DE COMANDOS PARA O PROTOCOLO DE TRANSFERENCIA SIMBÓLICO A troca de dados por protocolo simbólico consiste em recebimento e envio de sequencias ASCII de símbolos recebidos como comandos de pedidos e respostas. 4.2.1 LEITURA DE DADOS O comando é utilizado para leitura de dados atuais: nível relativo, temperatura, frequência. O comando é uma sequência de símbolos «D» e «O» ASCII. Após o recebimento do comando «DO», o programa responderá em modo de sequência de símbolos ASCII. Exemplo, F=0AF9 t=1A N=03FF.0 <CR><LF>, onde F – valor da frequência atual, t – valor de temperatura atual, em C, N – valor de nível. Todos os valores em hexadecimal. Em caso de o valor da frequência ultrapassar o valor FFFh, os dados são inválidos. 9 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS 4.2.2 ENTREGA PERIÓDICA DE DADOS O comando é utilizado para ligação de entrega periódica de dados. Após o processamento o medidor LLS começa a gerar os dados em modo simbólico (ASCII códigos) de dados seguintes: nível relativo, temperatura, frequência. Os dados são entregues com o intervalo determinado durante a configuração do medidor LLS por meio do programa LLS Monitor. Com o intervalo de 0 segundos, a entrega de dados não será possível. A ligação de entrega periódica de dados é efetuada por envio do comando «DO». Após o processamento do comando, você receberá uma linha de símbolos: Exemplo, F=0AF9 t=1A N=03FF.0 <CR><LF>, onde F – valor da frequência atual, t – valor de temperatura, em C, N – valor de nível. O desligamento de entrega periódica de dados é efetuada após de recebimento de qualquer comando válido, reset do processador ou desligamento da alimentação. 10 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw Manual de integração Medidor de nível de combustível LLS Anexo A Algoritmo de cálculo de soma de controle Soma de controle é calculada por método tabelado Dallas APPLICATION NOTE 27: Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButton Products. Para calcular a soma de controle polinomial a^8 + a^5 + a^4 + 1, também pode ser utilizado o seguinte algoritmo (linguagem С): Opção 1: U8 CRC8(U8 data, U8 crc) { U8 i = data ^ crc; crc = 0; if(i & 0x01) crc ^= 0x5e; if(i & 0x02) crc ^= 0xbc; if(i & 0x04) crc ^= 0x61; if(i & 0x08) crc ^= 0xc2; if(i & 0x10) crc ^= 0x9d; if(i & 0x20) crc ^= 0x23; if(i & 0x40) crc ^= 0x46; if(i & 0x80) crc ^= 0x8c; return crc; } Opção 2: U8 CRC8 (U8 b, U8 crc) { U8 i = 8; do { if ( (b ^ crc) & 0x01) { crc = ( (crc ^ 0x18) >> 1 ) | 0x80; } else { crc >>= 1; } b >>= 1; } while (--i); return crc; } 11 Omnicomm LTDA. ul. Butirsky Val, d. 68/70, str. 1 127055, Moscou, Rússia 0-800-888-1170, [email protected] , http://www.omnicomm-online.comw