¿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 FTP
- 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 FTP 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 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
Ejemplo de configuración (fichero config.txt) para el escenario indicado:
Configuración | Observaciones |
COMM2_baudrate: 9600 COMM2_bitsperchar: 8 COMM2_autorts: off COMM2_autorts: 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: 199801393 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.8 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_port: 20023 LOGGER_enabled: on LOGGER_password: ID00001 LOGGER_server: ftp.myFTPServer.com LOGGER_serverLogin: myUsername LOGGER_serverPassword: myPassword LOGGER_registerSize: 300 LOGGER_numRegistersFlash: 1500 LOGGER_mode: ftp MODBUS_address: 1 MODBUS_start: 20 MODBUS_numwords: 4 MODBUS_readCommand: 3 MODBUS_period: 900 |
Serial port (where internal GPS is connected) rate Number of bits No flow control No flow control 1 stop bit No parity APN GPRS provided by the GSM 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 AWe activate the MTX-65i coverage led 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 Use TCP port 20023 We enable the MTX Logger, to store the records Password field can be used as ID device FTP server address FTP server username FTP server password Register size Maximum number of records in MTX Sending mode: ftp Modbus address of the computer to read Address of the initial register modbus to read Number of records to be read from the beginning Comando de lectura Every few seconds a reading is made |
Detalles:
- En este ejemplo se utiliza un MTX-3G-JAVA-IOT 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 FTP (a la dirección especificada en el parámetro LOGGER_server). En caso de no poder enviar el registro (por no haber cobertura 3G/2G 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 al servidor FTP 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”,”ST”:20,”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: por motivos de compatibilidad se escribe un fichero diferente para registro
enviado al servidor FTP. El nombre del fichero es IMEI-fechaUTCdeEnvio. En caso de
tener múltiples módems podrá gestionar fácilmente los ficheros en su servidor FTP al
contener el IMEI (número identificativo de cada módem) en el nombre de cada fichero.
En “fechaHoraUTCdeEnvio” dispone de la hora UTC que tenía el módem (esté la hora
sincronizada o no) en el momento del envío al servidor FTP.
Ejemplo de nombre de fichero: 357042064802888-17-09-17-19-42-29.