Posted on

รูปแบบข้อความ MQTT ที่GENESIS64อ่านได้

MQTT Message ที่ GENESIS64 SCADA สามารถอ่านได้มีดังนี้

โครงสร้างข้อความMQTTที่GENESIS64สามารถอ่านเขียนข้อมูลไปยังMQTT Broker จะต้องเป็นไปตามรูปแบบดังนี้

1. Simple Message Format (one value per message)

เป็นรูปแบบง่ายๆ สำหรับข้อความ JSON ที่สามารถอ่านเขียนระหว่างGENESIS64 กับ MQTT Broker และยอมรับโดยGENESIS64 แม้ว่าอาจส่งผลให้มีจำนวนข้อความรวมจำนวนมากและไม่มีประสิทธิภาพมากนัก แต่ง่ายและอาจเหมาะสำหรับอุปกรณ์ที่มีการเปลี่ยนแปลงข้อมูลไม่บ่อยนัก โดยจะเอาข้อมูลแบบใดขึ้นก่อนก็ไดด้ เช่น เอาTimeStampขึ้นก่อน ตามด้วยชื่อtagและValueเป็นต้น

ตัวอย่างข้อความ

{

     “id”:   “tag1”,

      “v”:  “7”

      “q”:  “true”,

      “t”:    “1580413177050”

}

2. Standard Message Format (multiple values per message)

เป็นรูปแบบทั่วไปสำหรับข้อความที่มีแท็กหลายรายการในข้อความเดียว รูปแบบนี้คล้ายกับรูปแบบธรรมดาข้างต้น แต่จัดกลุ่มข้อมูลหลายรายการไว้ในข้อความเดียว ซึ่งจะมีประสิทธิภาพมากกว่า และเหมาะอย่างยิ่งสำหรับอุปกรณ์ที่มีอัตราการเผยแพร่คงที่ ซึ่งจะช่วยให้สามารถเผยแพร่ค่าหลายค่าในช่วงเวลานั้นได้ สามารถขยายรูปแบบเพื่อรวมข้อมูลอื่น ๆ ที่เกี่ยวข้องได้ตามต้องการ

ตัวอย่างข้อความ

{
   "TIMESTAMP": "2023/12/21 16:31:30.380" ,
   "VALUES":
   [

      {
      "TAGNAME":"SYSTEM.r1",
       "VALUE":65
      }
       ,
      {
      "TAGNAME":"SYSTEM.r2",
      "VALUE":88
      }
      ,
      {
      "TAGNAME":"SYSTEM.Random1",
      "VALUE":6
      }

   ]
}

3. Standard Message Format (multiple values with common attributes)

รูปแบบนี้คล้ายกับรูปแบบมาตรฐานของการอัปเดตหลายรายการต่อข้อความ แต่ยอมให้จัดกลุ่มข้อมูลในแต่ละข้อความได้โดยการเผยแพร่ข้อความในรูปแบบนี้ จะถือว่าข้อมูลแต่ละชุดทั้งหมดภายในอาร์เรย์ใช้คุณสมบัติบางอย่างร่วมกัน เว้นแต่จะมีการแทนที่อย่างชัดเจนภายในค่านั้น อาจเป็นรูปแบบที่มีประสิทธิภาพในแง่ของปริมาณข้อมูลต่อข้อความ เนื่องจากจะกำจัดข้อมูลที่ซ้ำซ้อนในข้อความ JSON

ตัวอย่างข้อความ

{

     “devicename”    :    “RTU1” ,

     “t”    :   “1605751173871” ,

     “quality”    :   “true” ,

     values”    :

     [

          {

             “id”    :    “Temp1” ,   

             “v”   :   “-5.256”          

           } , {

             “id”    :   “Temp2” ,

             “v”    :   “-4.159”

           }

     ]

}