¿Buscas alguna otra cosa?
Detalles del escenario:
- Se dispone de una pantalla especial con entrada serie RS232 con la cual es posible
comunicarse mediante protocolo Modbus. Es decir, es posible visualizar caracteres en la
pantalla escribiendo en los registros modbus de la misma a través de su puerto serie RS232. - Para controlar la pantalla remotamente vía 4G se utilizará un un módem MTX con MTX-Tunnel
- Para evitar problemas de conectividad (SIMs con IPs privadas) se utilizará el protocolo MQTT, por lo que el módem MTX se conectará automáticamente al bróker MQTT configurado
- Una vez el módem MTX está conectado al bróker, éste (el módem MTX) enviará periódicamente su estado (IP, cobertura, etc) a un topic MQTT
- Para poder escribir y leer los registros modbus de la pantalla, se enviarán al módem los
comandos AT^MTXTUNNEL=GETMODBUS… y AT^MTXTUNNEL=SETMODBUS vía MQTT
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_autocts: 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_model: 199801421 MTX_mode: none MTX_urc: off MTX_ping: 30 MTX_pingIP: 8.8.8.8 MTX_invertedCom: on MTX_portAux: modbusmaster SMS_allPhones: on SMS_ATEnabled: on SMS_ATResponse: on MQTT_enabled: on MQTT_server: tcp://test.mosquitto.org:1883 MQTT_id: [IMEI] MQTT_attopic1: [IMEI]/AT1 MQTT_atrtopic: [IMEI]/ATR MQTT_qos: 1 MQTT_keepalive: 300 MQTT_persistent: off DNS_enabled: on DNS_mode: mqtt DNS_mqttTopic: [IMEI]/mqtt DNS_extended: off DNS_period: 120 |
Serial port baud rate 8 bit data No flow control No flow control 1 stop bit No parity GPRS APN from your network operator GPRS Login GPRS Password MTX-Tunnel is always connected If SIM card has no PIN security, use 0000 value MTX-Terminal modem model used Gategay disabled URC messages will not be sent Minutes for connectivity supervision ping Connectivity supervision IP address RS232 port used as secondary Secondary port as modbus master All phones are authorized AT commands enabled by SMS Replies to AT commands enabled by SMS MQTT service enabled Broker IP/DNS specified, including identifying port Identifier Subscribed to this topic to receive commands Topic to send replies to commands to Service quality Connection keep alive (300 seconds) Not relevant Sending status periodically Sending mode Topic to send status data to Won’t send extended information (GPIOs) Sending status every 120 seconds |
Detalles:
- Recuerde que módem substituirá los tags [IMEI] por su IMEI (identificador único)
- El módem se subscribirá al topic MQTT “[IMEI]/AT1”, por lo que todos los comandos AT que se envíen a dicho topic MQTT, serán recibidos por el módem y ejecutados
- Las respuestas a los comandos AT ejecutados se enviarán al topic MQTT: “[IMEI]/ATR”
- Imaginemos que la pantalla permite visualizar 10 caracteres. Y los registros modbus donde escribir en la pantalla para que se visualicen los caracteres son del registro @10 al @19. Supongamos que basta con escribir el código ASCII en esos registros para que éstos sean visualizados. La pantalla tendrá la dirección modbus @7
Queremos escribir la palabra “HOLA” en la pantalla, que corresponde con los ASCII: 72, 79, 76 y 65. Para ello tendremos que escribir esos valores en la posición modbus 10,11,12 y 13, por lo que enviaremos el siguiente comando vía MQTT al topic [IMEI]/AT1:
AT^MTXTUNNEL=SETMODBUS,7;10;72;79;76;65
Este comando escribe en el dispositivo modbus con dirección @7, desde el registro número @10, los valores 72, 79, 76 y 65 - Si queremos leer los registros modbus de la pantalla, bastará con utilizar el comando
AT^MTXTUNNEL=GETMODBUS. Imaginemos que queremos leer los mismos registros modbus del apartado anterior. El comando AT a enviar vía MQTT sería:
AT^MTXTUNNEL=GETMODBUS,7;10;3;4
Este comando lee el dispositivo modbus con dirección @7, a partir del registro número @10, utilizando el comando modbus 3 y leerá 4 registros. El resultado de dicho comando AT que el módem enviará al topic “[IMEI]/ATR” será algo como:
AT^MTXTUNNEL=GETMODBUS,7;10;3;4
72,79,76,65
OK