Detalles del escenario ejemplo:

  • Disponemos de un PLC Modbus RTU. Este PLC dispone en su memoria interna de una serie de variables/registros (por ejemplo, una temperatura y 3 contadores, …) las cuales deben leerse y enviarse periódicamente a un servidor Web.
  • Por ello, el MTXTunnel debe interrogar periódicamente, cada 15 minutos, por un puerto serie, al PLC para leer dichos registros.  Los registros a leer son, para la temperatura el registro nº20, y los contadores están en los registros 21,22 y 23 respectivamente.
  • El MTXTunnel debe enviar tras cada lectura el valor de los registros a un servidor web vía HTTP GET usando un objeto JSON, pero debe ser capaz, en caso de fallo de comunicaciones GPRS, de almacenar en memoria flash hasta 1500 lecturas que enviará cuando se restauren las comunicaciones.
  • Debe poderse acceder al MTXTunnel en cualquier momento para, de esa manera poder leer en tiempo real los registros del PLC, así como para poder escribir en ellos y modificar registros de configuración del PLC.

Solución propuesta con  MTX-65i + MTXTunnel

Archivo de configuración del MTXTunnel para la solución anteriormente propuesta:

Esta configuración es la que hay que introducir en el fichero de configuración del módem para poder realizar la aplicación descrita en el escenario:


 COMM2_baudrate: 9600 Velocidad del puerto serie de comunicación con el PLC
 COMM2_bitsperchar: 8 Número de bits de datos
 COMM2_autorts: off No hay control de flujo
 COMM2_autocts: off No hay control de flujo
 COMM2_stopbits: 1 Configuramos 1 bit de stop
 COMM2_parity: none No hay bit de paridad
   
 GPRS_apn: movistar.es APN GPRS proporcionado por el operador GSM
 GPRS_login: MOVISTAR Login GPRS proporcionado por el operador GSM
 GPRS_password: MOVISTAR Password GPRS proporcionado por el operador GSM
 GPRS_timeout: 0 El módem estará conectado permanentemente
   
 MTX_PIN: 0000 El PIN de la tarjeta SIM
 MTX_mode: none Modo de trabajo de pasarela gprs/serie. A none pq no las usamos
 MTX_model: MTX65i Modelo de MTX65i donde está instalado el MTXTunnel
 MTX_portAux: modbusmaster El puerto aux se va a autilizar como master modbus
 MTX_TPServer: time-a.timefreq.bldrdoc.gov Servidor de hora (el MTX debe sincronizar la hora)
 MTX_TPServer2: ptbtime1.ptb.de Servidor de hora de backup
 MTX_ping: 35 Cada 35 minutos sin comunicaciones, haremos un ping
 MTX_pingIP: 8.8.8.8 Dirección donde se realiza el ping
 MTX_radioBand: europe No necesario. Se indica Europe si el MTX se instala en Europa
 MTX_rssiLevel: 10 Activamos el led de cobertura del MTX65i
   
 SMS_allPhones: on Se pueden enviar SMS con comandos desde cualquier móvil
 SMS_sendIP: on El módem responderá con su IP a una llamada perdida o SMS
 SMS_ATEnabled: on  Se pueden enviar comados al MTX por SMS
 SMS_ATResponse: on El MTX responderá con un SMS a un SMS de comando enviado
   
 FIREWALL_enabled: off Se podrán conectar al módem (para el Telnet) desde cualquier IP
   
 TELNET_enabled: on Habilitamos el Telnet del módem
 TELNET_login: user Login para el Telnet
 TELNET_password: 1234 Password para el Telnet
 TELNET_firewall: off Se podrán conectar por Telnet desde cualquier IP al MTX
   
 LOGGER_enabled: on Activamos el Logger del MTX, para almacenar las lecturas
 LOGGER_password: ID00001 Campo que nos permitirá identificar de donde vienen las tramas
 LOGGER_server: www.miservidorWeb.com/json.asp?data= URL donde se enviará el JSON con datos
 LOGGER_registerSize: 300 El tamaño del registro interno del MTX
  LOGGER_numRegistersFlash: 1500 El número máximo de registros dentro del MTX
   
 MODBUS_address: 1 Dirección modbus del equipo a leer
 MODBUS_start: 20 Dirección del registro inicial modbus a leer
 MODBUS_numwords: 4 Número de registros a leer a partir del inicial
 MODBUS_period: 900 MODBUS_period: 900

     

DETALLES:

  • En este ejemplo se utiliza un MTX65i con comunicación RS232 para comunicación MODBUS contra un PLC, pero podría ser RS485 sin problemas. Para ello podría usarse un modelo MTX-65iRS485 (con comunicación RS485 incorporada).
  • El resumen de este ejemplo es el siguiente:  el módem va leyendo periódicamente, cada 15 minutos una serie de registros ModBus del PLC y los va enviando mediante un objeto JSON a un servidor web (a la url especificada en el parámetro LOGGER_server). En caso de no poder enviar el registro (por no haber cobertura gprs en ese momento o estar el servidor caído) almacena los datos en memoria para enviarlos posteriormente. Mediante Telnet es posible conectarse al equipo directamente y consultar/cambiar en tiempo real los registros del PLC (para ello buscar en este manual los comandos AT^MTXTunnel=getmodbus y AT^MTXTUNNEL=setmodbus)
  • El objeto JSON enviado a la URL especificada en LOGGER_server está codificado de la siguiente manera, a modo de ejemplo:{“IMEI”:353234028103206,”P”:”ID00001″,”A”:1,”TS”:”20/08/12 08:31:44″,”V1″:23,”V2″:275,”V3″:274,”V4″:32765}
    Es decir, el servidor web recibe un objeto JSON con el IMEI (IMEI) del módem, un campo password (P) que también puede utilizarse para identificar el equipo (si no se quiere usar el IMEI), la dirección modbus del equipo (A), el time stamp (TS) de cuando se han leido los datos modbus, y V1,V2, … con cada una de las variables leídas.

Comments