Encuesta de medidores en el canal GSM
Tarea: interrogar según la programación el dispositivo de medición de electricidad utilizando un módem GSM.No elegí el hierro, fue elegido antes que yo, y pude crear un sistema de sondeo remoto a partir de esto. Entonces, la fuente de información sobre el desperdicio de electricidad fue Diris A40 fabricado por Socomec (en adelante, el medidor).
El dispositivo sabe cómo medir muchas cosas, dejé de leer cientos de registros, comenzando desde la dirección decimal 1792 hasta 1891. Como interfaz, tampoco seleccioné una pieza de hardware: el módulo de comunicación de puerta de enlace RS485 que utiliza el protocolo JBUS / MODBUS®. Protocolo tipo Modbus con honores en la numeración de registros.Los módems GSM de Siemens son MC35i (en adelante denominados simplemente módems). Estos son los siguientes:
hay muchos artículos sobre ellos, es fácil encontrar documentación. Está controlado por equipos AT. Ya no está disponible Fue reemplazado por el terminal Cinterion MC52iT. Aún puedes comprarlo. Fuente de alimentación y antena incluidas. Para convertir RS232 a RS485, se eligió este hardware generalmente barato. Ella esta haciendo su trabajo.
El diagrama estructural del sistema concebido se verá de la siguiente manera:
nombré un cable como cable directo, donde todos los pines se corresponden entre sí al principio y al final. Por ejemplo, el pin 2 está conectado al pin 2. Puse un nombre a un cable con un cable, donde el pin 2 está conectado al pin 3 y el pin 3 está conectado al pin 2.Para el sondeo, se suponía que debía usar el Servidor Universal Modbus MasterOPC, que funcionaaquí es gratis si desea sondear no más de 32 etiquetas (algunos dicen "etiquetas", me gustan más "etiquetas"). Su encanto es que tiene configuraciones que le permiten usar un módem para sondeo. Tal dos en uno. Este es el único programa que he encontrado con tales características. Por ejemplo, no encontré tales oportunidades en ibaPDA.El servidor MasterOPC Universal Modbus falló. Más bien, resultó a la mitad: cuando se conecta al medidor por cable: todo está bien, cuando se conecta a través de un módem, los paquetes recibidos por alguna razón (para mí todavía hay un misterio, quién sabe, escriba) se ven así:Solicitud: 13-05-2016 14 : 12: 56.408 Portátil :: DirisA40 (adr5) :( COM5) Tx: [0008] 05 03 07 0A 00 01 A4 F8Respuesta: 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 puede ver en la respuesta, la información necesaria está ahí : 05 03 02 13 86 C5 16. También está claro que también hay un extraño: F1 EB FF FD B7 00.A quién le importa, puede usar el analizador para descifrar los paquetes. Por ejemplo, uso CAS_Modbus_RTU_Parser. Es gratis y es genial. También hay analizadores en línea. Por ejemplo: http://modbus.rapidscada.net/ .No sabía cómo deshacerme de esta "basura", así que escribí un programa en LabView (quizás sería más correcto decir "pintado"). Corta bits innecesarios del paquete recibido y luego descifra el paquete Modbus. ¿Qué es este LabView que puedes leer aquí?. En general, en Habrahabr, para mi sorpresa, se encontraron muchos artículos sobre LabView. El resultado es una interfaz de este tipo: el
texto de ayuda es el siguiente. El programa está destinado a interrogar a los contadores DirisA40. Antes de ejecutar el archivo ejecutable, debe instalar LabVIEW Run-Time Engine (una vez). El programa puede funcionar en dos modos:1) sondeo directo2) sondeo mediante módemModo de sondeo predeterminado: sondeo de 100 registros a partir del registro 1792.Formato de datos de registros de palabras.La dirección de Modbus predeterminada es 5.El sondeo directo se inicia presionando el botón INICIO.El sondeo a través del módem está programado (por defecto 5 minutos) y comienza después de presionar los botones "INICIAR" y "Guardar". El horario de la encuesta no debe ser inferior a 1 minuto y superior a 60 minutos. En el estado presionado, el botón "INICIAR" se firma como "Encuesta en curso". En el estado presionado, el botón "Grabar" se firma como "Grabación en curso".La casilla de verificación "Tener en cuenta los factores de conversión" está diseñada para escalar el valor de lectura del registro de acuerdo con la fórmula X * Factor + Offset. Los valores de Factor y Offset se registran en las columnas de la misma tabla de la tabla de configuración y en la selección de registros para escritura. La escritura se lleva a cabo en un archivo de texto en el mismo directorio donde se encuentra el archivo ejecutable del siguiente formato: fecha hora hora data.txt (por ejemplo: 21/05/2016 22_12 data.txt). Si la grabación se realizó con un módem, el nombre del archivo de datos se verá así: 06/08/2016 9_47 data__modem.txt. La primera vez que intente escribir un archivo, puede cambiar el nombre del archivo. La grabación se realiza en el mismo archivo hasta que se presiona el botón "Grabación en curso". Los registros con casillas marcadas en la tabla de configuración se escriben en el archivo. Puede cambiar el estado de la casilla de verificación en la tabla de configuración con un doble clic.Los valores de registro recibidos se muestran en la tabla de configuración con la columna "Valor". En la pestaña "Gráficos", puede configurar la visualización de cualquier valor de registro desde la tabla de configuración. El color de la curva del gráfico corresponde al color del marco alrededor de la etiqueta seleccionada. Las etiquetas que deben deshabilitarse desde la compilación deben colocarse en la posición "guardar" o en cualquier otro registro con un valor de 0. La interfaz web del dispositivo se publica _http: // computername: 8000 / DirisA40.html y solo se puede acceder a través del explorador si está instalado LabVIEW Run-Time Motordebe colocarlo en la posición "guardar" o en cualquier otro registro con un valor de 0. La interfaz web del dispositivo se publica _http: // computername: 8000 / DirisA40.html y solo se puede acceder a través del explorador si LabVIEW Run-Time Engine está instalado.debe colocarlo en la posición "guardar" o en cualquier otro registro con un valor de 0. La interfaz web del dispositivo se publica _http: // computername: 8000 / DirisA40.html y solo se puede acceder a través del explorador si LabVIEW Run-Time Engine está instalado.En el proceso de escritura / dibujo, se utilizaron los siguientes programas auxiliares.Para emular el funcionamiento del contador, se utilizó el programa gratuito DevEmu. Me enteré de ella en el blog de Alexei , quien describió bien su trabajo y su aplicación. Por lo cual muchas gracias a él.Para emular la conexión con el contador, se utilizaron versiones de prueba de varios programas llamados Serial Port Splitter. Son bastante diferentes, el período de prueba de dos de estos divisores fue suficiente para que yo escribiera el programa anterior.PD: Mientras escribía esta obra, aparentemente un colega, escribí un artículo sobre el mismo tema: geektimes.ru/post/277358 . Source: https://habr.com/ru/post/es395421/
All Articles