RUT955 MQTT Gateway

Product

RUT955

Brand

Teltonika

Highlight Information

MQTT Gateway

Author

@Lakkhanaphon Saengchinda

Importance

hight

Publish Doc

NO

Years

2021

MQTT Gateway

RUT ใน mode MQTT Gateway ทำหน้าที่ตัวกลางในการแปลง MQTT message ให้กลายเป็น Modbus request และส่งต่อไปยัง Modbus TCP slave ในขณะเดียวกัน เมื่อได้รับ response จาก slave ก็จะทำหน้าที่แปลงไปเป็น MQTT message และ publishes ไปยัง RESPONSE topic ต่อไป

MQTT Gateway เป็น function หนึ่งของ RUT ที่ใช้ในการ transfer Modbus data (send requests, receive responses) ด้วย MQTT Protocol เมื่อเปิดใช้งาน RUT955 จะต้อง subscribes REQUEST topic และ publishes ข้อมูลกลับไปยัง RESPONSE topic บน MQTT broker ที่ระบุ

Configuration MQTT Broker

Modbus request data จะต้อง sent ส่ง MQTT message ลงใน payload ด้วย format ดังต่อไปนี้

0 <COOKIE> <IP_TYPE> <IP> <PORT> <TIMEOUT> <SLAVE_ID> <MODBUS_FUNCTION> <REGISTER_NUMBER> <REGISTER_COUNT/VALUE>

คำอธิบาย

Explanation:

  • 0 - must be 0, which signifies a textual format (currently the only one implemented).

  • Cookie - a 64-bit unsigned integer in range [0..264]). A cookie is used in order to distinguish which response belongs to which request, each request and the corresponding response contain a matching cookie: a 64-bit unsigned integer.

  • IP type - host IP address type. Possible values:

    • 0 - IPv4 address;

    • 1 - IPv6 address;

    • 2 - hostname that will be resolved to an IP address.

  • IP - IP address of a Modbus TCP slave. IPv6 must be presented in full form (e.g., 2001:0db8:0000:0000:0000:8a2e:0370:7334).

  • Port - port number of the Modbus TCP slave.

  • Timeout - timeout for Modbus TCP connection, in seconds. Range [1..999].

  • Slave ID - Modbus TCP slave ID. Range [1..255].

  • Modbus function - Modbus task type that will be executed. Possible values are:

    • 3 - read holding registers;

    • 6 - write to a single holding register;

    • 16 - write to multiple holding registers.

  • Register number - number of the first register (in range [1..65536]) from which the registers will be read/written to.

  • Register count/value - this value depends on the Modbus function:

    • 3 - register count (in range [1..125]); must not exceed the boundary (first register number + register count <= 65537);

    • 6 - register value (in range [0..65535]);

    • 16 - register count (in range [1..123]); must not exceed the boundary (first register number + register count <= 65537); and register values separated with commas, without spaces (e.g., 1,2,3,654,21,789); there must be exactly as many values as specified (with register count); each value must be in the range of [0..65535].

Response messages

สามารถเป็นได้ดังนี้

<COOKIE> OK - for functions 6 and 16 <COOKIE> OK <VALUE> <VALUE> <VALUE>... - for function 3, where <VALUE> <VALUE> <VALUE>... are read register values <COOKIE> ERROR: ... - for failures, where ... is the error description

 Examples: controlling/monitoring internal Modbus TCP Slave on RUT955

Reboot the device

  • Request:

    0 65432 0 192.168.250.1 502 5 5 6 206 1
  • Response:

    65432 OK

Retrieve uptime

  • Request:

  • Response:

Set Relay Output ON

  • Request:

  • Response:

Set Relay Output OFF

  • Request:

  • Response:

Check Relay Status

  • Request:

  • Response: