¿Buscas alguna otra cosa?
Detalles del escenario:
- 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 MTX-Tunnel 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 MTX-Tunnel 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 2G/3G/4G, de almacenar en memoria flash hasta 1500 lecturas que enviará cuando se restauren las comunicaciones
- Debe poderse acceder al MTX-Tunnel 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: MTX-Tunnel firmware + MTX-Java-IoT/MTX-Java-T/MTX-Java-T2
Archivo de configuración config.txt:
Configuración | Observaciones |
COMM2_baudrate: 9600 COMM2_bitsperchar: 8 COMM2_autorts: off COMM2_autocts: off COMM2_stopbits: 1 COMM2_parity: none GPRS_apn: movistar.es GPRS_login: MOVISTAR GPRS_password: MOVISTAR GPRS_timeout: 0 MTX_PIN: 0000 MTX_mode: none MTX_model: MTX-4G-JAVA-IOT-STD-N MTX_portAux: modbusmaster MTX_TPProtocol: ntp MTX_TPServer: ntp.roa.es MTX_TPServer2: es.pool.ntp.org MTX_ping: 35 MTX_pingIP: 8.8.8.8MODBUS_period: 900 MTX_rssiLevel: 10 SMS_allPhones: on SMS_sendIP: on SMS_ATEnabled: on SMS_ATResponse: on FIREWALL_enabled: off TELNET_enabled: on TELNET_login: user TELNET_password: 1234 TELNET_firewall: off LOGGER_enabled: on LOGGER_password: ID00001 LOGGER_server: www.miservidorWeb.com/json.asp?data= LOGGER_registerSize: 300 LOGGER_numRegistersFlash: 1500 LOGGER_httpMode: getjson MODBUS_address: 1 MODBUS_start: 20 MODBUS_numwords: 4 MODBUS_readCommand: 3 MODBUS_period: 900 |
Serial port baud rate Number of bits No flow control No flow control 1 stop bit No parity APN GPRS from your network operator GPRS Login GPRS Password Modem is always GPRS connected SIM Card PIN MTX-Tunnel mode MTX modem model AUXILIAR COM port used as master modbus Time synch. protocol Time server Backup time server Ping every 35 minutes without comms IP address to ping Coverage LED activated All phone numbers are authorized IP sent to phone which called or “on” SM Remote AT commands by SMS enabled Modem response to AT command with SMS Any IP will be able to connect to the modem Telnet is activated Telnet login Telnet password Telnet port 20023 We enable the MTX Logger, to store the records Password field can be used as ID device Server URL, will receive JSON data Register size Maximum number of records in MTX HTTP GET (JSON) mode ModBus equipment address ModBus register address to be read Number of registers read Reading command Timing -seconds- read is repeated |
Detalles:
- En este ejemplo se utiliza un MTX-4G-JAVA-T usando el puerto RS485, pero podría usarse el puerto RS232 sin problemas (para usar el puerto RS232 debería introducirse el parámetro MTX_invertedCom: on). Al final del manual encontrará cómo configurar el microswitch interno para activar el bus RS485
- 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”,”TYPE”:”MODB”,”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 leído los datos
modbus, la dirección inicial leída (ST) y V1,V2, … con cada una de las variables leídas
NOTA: tenga presente que si lo que necesita es una simple pasarela modbusTCP / modbusRTU
también puede hacerlo, simplemente consulte el ejemplo de configuración 2.15 del presente
manual