Pesquisa de medidores no canal GSM
Tarefa: interrogar de acordo com o cronograma o dispositivo de medição de eletricidade usando um modem GSM.Não escolhi o ferro, ele foi escolhido antes de mim e, a partir disso, criei um sistema de votação remota. Portanto, a fonte de informação sobre eletricidade desperdiçada foi o Diris A40 fabricado pela Socomec (a seguir denominado medidor).
O dispositivo sabe medir muitas coisas; parei de ler centenas de registros, começando no endereço decimal 1792 a 1891. Como interface, também não selecionei um pedaço de hardware: o módulo de comunicação do gateway RS485 usando o protocolo JBUS / MODBUS®. Protocolo tipo Modbus com honras na numeração de registros.Os modems GSM da Siemens são MC35i (a seguir denominados simplesmente modems). Aqui estão estes: Existem
muitos artigos sobre eles, é fácil encontrar documentação. É controlado pelas equipes da AT. Não está mais disponível. Ele foi substituído pelo terminal Cinterion MC52iT. Você ainda pode comprá-lo. Fonte de alimentação e antena incluídas. Para converter RS232toRS485, esse hardware geralmente barato foi escolhido. Ela está fazendo o trabalho dela.
O diagrama estrutural do sistema concebido terá a seguinte aparência:
Eu nomeei um cabo como um cabo direto, onde todos os pinos correspondem um ao outro no início e no final. Por exemplo, o pino 2 está conectado ao pino 2. Chamei o cabo de cabo cruzado, onde o pino 2 está conectado ao pino 3 e o pino 3 está conectado ao pino 2.Para a pesquisa, era suposto usar o MasterOPC Universal Modbus Server, que funcionaaqui é grátis se você deseja pesquisar no máximo 32 tags (alguns dizem "tags", eu gosto mais de "tags"). Seu charme é que ele possui configurações que permitem o uso de um modem para pesquisas. Que dois em um. Este é o único programa que encontrei com esses recursos. Por exemplo, não encontrei essas oportunidades no ibaPDA.O MasterOPC Universal Modbus Server falhou. Em vez disso, acabou sendo a metade: quando conectado ao medidor por cabo - está tudo bem, quando conectado via modem, os pacotes recebidos por algum motivo (para mim ainda há um mistério, quem sabe - escreve) ficam assim:Pedido: 13/05/2016 14 : 12: 56.408 Notebook :: DirisA40 (adr5) :( COM5) Tx: [0008] 05 03 07 0A 00 01 A4 F8Resposta: 13-05-2016 14: 12: 56.401 Notebook :: DirisA40 (adr5) :( COM5) Rx: [0013] F1 EB FF FD B7 00 05 03 02 13 86 C5 16Como você pode ver na resposta, as informações necessárias estão disponíveis : 05 03 02 13 86 C5 16. Também está claro que também existealguém de fora: F1 EB FF FD B7 00. Quem se importa, você pode usar o analisador para descriptografar os pacotes. Por exemplo, eu uso o CAS_Modbus_RTU_Parser. É grátis e é ótimo. Também existem analisadores online. Por exemplo: http://modbus.rapidscada.net/ .Como eu não sabia como me livrar desse “lixo”, escrevi um programa no LabView (talvez fosse mais correto dizer “pintado”). Ele corta bits desnecessários do pacote recebido e descriptografa o pacote Modbus. O que é este LabView que você pode ler aqui. Em geral, no Habrahabr, para minha surpresa, foram encontrados muitos artigos sobre o LabView. O resultado é essa interface: O
texto da Ajuda é o seguinte. O programa é destinado ao interrogatório dos contadores DirisA40. Antes de executar o arquivo executável, você deve instalar o LabVIEW Run-Time Engine (uma vez). O programa pode funcionar em dois modos:1) polling direto2) polling através de um modemPoll mode por padrão: polling 100 registros a partir do registro 1792.Formato de dados dos registros de palavras.O endereço Modbus padrão é 5.O polling direto é iniciado pressionando o botão START.A pesquisa através do modem está dentro do cronograma (por padrão, 5 min.) E começa depois de pressionar os botões "INICIAR" e "Salvar". O cronograma da pesquisa não deve ser inferior a 1 minuto e superior a 60 minutos. No estado pressionado, o botão "INICIAR" é assinado como "Pesquisa em andamento". No estado pressionado, o botão "Gravar" é assinado como "Gravação em andamento".A caixa de seleção "Considerar fatores de conversão" foi projetada para dimensionar o valor de leitura do registro de acordo com a fórmula X * Fator + Deslocamento. Os valores de Fator e Deslocamento são registrados nas colunas da mesma tabela da tabela de configuração e na seleção de registros para gravação. A gravação ocorre em um arquivo de texto no mesmo diretório em que o arquivo executável do seguinte formato está localizado - data e hora data.txt (por exemplo: 21/05/2016 22_12 data.txt). Se a gravação foi feita usando um modem, o nome do arquivo de dados será semelhante a: 06/08/2016 9_47 data__modem.txt. Na primeira vez que você tenta escrever um arquivo, pode alterar o nome do arquivo. A gravação é feita no mesmo arquivo até que o botão "Gravação em andamento" seja pressionado. Registros com caixas de seleção marcadas na tabela de configurações são gravados no arquivo. Você pode alterar o estado da caixa de seleção na tabela de configurações com um clique duplo.Os valores de registro recebidos são exibidos na tabela de configurações com a coluna "Valor". Na guia "Gráficos", você pode configurar a exibição de qualquer valor de registro na tabela de configurações. A cor da curva do gráfico corresponde à cor do quadro ao redor da marca selecionada. Tags que precisam ser desativadas a partir da compilação devem ser configuradas para salvar ou qualquer outro registro com um valor 0. A interface da web do dispositivo é publicada _http: // computername: 8000 / DirisA40.html e só pode ser acessada através do explorer se o LabVIEW Run-Time estiver instalado Enginevocê precisa colocá-lo na posição "salvar" ou em qualquer outro registro com o valor 0. A interface da web do dispositivo é publicada _http: // nomedocomputador: 8000 / DirisA40.html e é acessível apenas através do explorer se o LabVIEW Run-Time Engine estiver instalado.você precisa colocá-lo na posição "salvar" ou em qualquer outro registro com o valor 0. A interface da web do dispositivo é publicada _http: // nomedocomputador: 8000 / DirisA40.html e é acessível apenas através do explorer se o LabVIEW Run-Time Engine estiver instalado.No processo de escrever / desenhar, foram utilizados os seguintes programas auxiliares.Para emular a operação do contador, foi utilizado o programa gratuito DevEmu. Eu a descobri no blog de Alexei , que descreveu bem seu trabalho e aplicação. Pelo qual muito obrigado a ele.Para emular a conexão com o contador, foram usadas versões de avaliação de vários programas chamados Serial Port Splitter. Eles são bem diferentes, o período de teste de dois desses divisores foi suficiente para eu escrever o programa acima.PS: Enquanto escrevia este artigo, aparentemente um colega, escrevi um artigo sobre o mesmo tópico: geektimes.ru/post/277358 . Source: https://habr.com/ru/post/pt395421/
All Articles