ข้อมูลจำเพาะ Modbus Function

by อาฮิม เฮาก์ (Achim Haug)

ขอบเขต

ข้อมูลในหน้านี้ใช้ได้กับเครื่องวัด AirGradient ONE รุ่น Modbus (8PSLM) และ AirGradient ONE รุ่นมีหน้าจอพร้อม Modbus (8PSLM-DE) โปรดทราบว่า Modbus ไม่รองรับในรุ่นมาตรฐาน (Standard model)

ใช้ได้กับเฟิร์มแวร์เวอร์ชัน 9.2.6 เป็นต้นไป.

ข้อมูลทั่วไป

  • Protocol:
    Modbus RTU / RS-485

  • Number of addresses: 1 .. 247
    ค่าเริ่มต้นจากโรงงาน: 1

  • Transmission format: 8 บิต, none / odd / even parity, 1 หรือ 2 stop bits
    ค่าเริ่มต้นจากโรงงาน; 8-E-1

  • Baudrate: 1200 .. 256000
    ค่าเริ่มต้นจากโรงงาน: 19200

การกำหนดเวลา (Timings)

อัตราการสแกน (Scan Rate)

Dเครื่องวัดจะทำการวัดค่าต่าง ๆ เป็นรอบ ๆ ทุก ๆ สองถึงสามนาที (ขึ้นอยู่กับการตั้งค่า) และจะส่งค่าที่วัดได้ใหม่ผ่านทางอินเทอร์เฟซ Modbus เมื่อครบรอบการทำงานที่สมบูรณ์ ตัวอย่างเช่น หากตั้งค่าอัตราการสแกนไว้ที่ 10 วินาที ค่าความหน่วง (latency) สูงสุดที่อาจเกิดขึ้นคือ 10 วินาที.

เวลารอการตอบสนอง (Response Timeout)

โดยทั่วไปเครื่องวัดจะตอบสนองภายใน 50 .. 60 มิลลิวินาที (ms) ดังนั้นจึงแนะนำให้ตั้งค่าเวลารอการตอบสนองไว้ที่ 100 มิลลิวินาที (ms) สำหรับ baudrate ที่ต่ำกว่า 9600 การตั้งค่าให้สูงขึ้นอาจให้ผลลัพธ์ที่ดีกว่า

การหน่วงเวลาระหว่างการเรียกข้อมูล (Delay between Polls)

แนะนำให้ตั้งค่าการหน่วงเวลา > 50ms ระหว่างการเรียกข้อมูล (poll) จาก slave แต่ละครั้ง

การจัดเรียงขาพิน (Pinout)

การจัดเรียงขาของคอนเนคเตอร์เป็นดังนี้ (ดังแสดงในภาพ)

แรงดันไฟฟ้า (Voltage)

รองรับช่วงแรงดันไฟฟ้าตั้งแต่ 12V .. 32V

Function 04 Read Registers

นี่คือ register ที่ Master สามารถอ่านค่าได้

Register

ค่า (Parameter)

ประเภทข้อมูล (Data Type)

ช่วง (Range)

หน่วย (Unit)

ข้อสังเกต (Comment)

3x0000

current CO2

signed 16 bit

-1 .. 10,000

ppm

ค่าดิบ (raw value)
-1 บ่งชี้สภาวะมีข้อผิดพลาด

3x0001

current PM2.5

signed 16 bit

-1 .. 1,000

ppm

ค่าดิบ (raw value) -1 บ่งชี้สภาวะมีข้อผิดพลาดหรือเซนเซอร์ยังไม่พร้อมใช้งาน

3x0002

current PM10

signed 16 bit

-1 .. 1,000

ppm

ค่าดิบ (raw value)
-1 บ่งชี้สภาวะมีข้อผิดพลาดหรือเซนเซอร์ยังไม่พร้อมใช้งาน

3x0003

current temperature

signed 16 bit

-10001
-400 .. 900

หนึ่งส่วนสิบของ °C เช่น 126 จะเท่ากับ 12.6°C

ค่าดิบ (raw value)
-10001 บ่งชี้สภาวะมีข้อผิดพลาด

3x0004

current relative humidity

signed 16 bit

-1 .. 100

%

ค่าดิบ (raw value)
-1 บ่งชี้สภาวะมีข้อผิดพลาด

3x0005

current TVOC

signed 16 bit

-1 .. 30,000

หรือ

-1 .. 500

ppb (SGP 30)

หรือ
SGP 40 index, ดู https://sensirion.com/products/catalog/SGP40/

อุณหภูมิและความชื้นชดเชย
--1 บ่งชี้สภาวะมีข้อผิดพลาด, ในกรณี SPG30 จะแสดงค่า ppb, ในกรณี SGP40 จะแสดงค่าดัชนี (index)

 

 

 

 

 

 

 

 

 

 

 

 

3x0010

sensorId byte #1

16 bit

0x00 .. 0xff

 

MSB

3x0011

sensorId byte #2

16 bit

0x00 .. 0xff

 

 

3x0012

sensorId byte #3

16 bit

0x00 .. 0xff

 

 

3x0013

sensorId byte #4

16 bit

0x00 .. 0xff

 

 

3x0014

sensorId byte #5

16 bit

0x00 .. 0xff

 

 

3x0015

sensorId byte #6

16 bit

0x00 .. 0xff

 

LSB

3x0020

friendly name char #1

8 bit char

ASCII

 

a user friendly name, up to 24 chars

..

 

 

 

 

 

3x0038

friendly name char #24

 

 

 

 

Function 05 Write Single Coil

นี่คือ single bit register ที่ Master สามารถเขียนค่าได้

Register

ค่า (Parameter)

ประเภทข้อมูล (Data Type)

ช่วง (Range)

หน่วย (Unit)

ข้อสังเกต (Comment)

Register

ค่า (Parameter)

ประเภทข้อมูล (Data Type)

ช่วง (Range)

หน่วย (Unit)

ข้อสังเกต (Comment)

0x0000

calibrate CO2 to 400ppm

bit 0

1 / 0

 

การสอบเทียบจะดำเนินการในรอบการวัดครั้งถัดไป โดยปกติแล้วภายในไม่กี่นาที

0x0000

led test mode

bit 1

1 / 0

 

ยังไม่ได้นำมาใช้งาน (not implemented yet)

0x0000

 

 

 

 

 

 

Function 16 Write Multiple Registers

นี่คือ register ที่ Master สามารถเขียนค่าได้

Register

ค่า (Parameter)

ประเภทข้อมูล (Data Type)

ช่วง (Range)

หน่วย (Unit)

ข้อสังเกต (Comment)

0x0000

friendly name char #1

8 bit char

ASCII

 

ชื่อเล่น สูงสุด 24 อักขระ

..

 

 

 

 

 

0x0018

friendly name char #24

 

 

 

 

 

 

 

 

 

 



Your are being redirected to AirGradient Dashboard...