首页

添加工单

工单列表

登录注册

用户中心

<<<<<<

技术交流论坛

扬尘检测仪

蓝天保卫战

话题发布时间:2020-07-02 10:41:20

话题浏览量:375

    

我可以用贵公司的主机通过485口去读取扬尘的数据吗?

最多可以读取几台?

等会我ID我不催你 2020-07-02 18:28:24

通信协议

通讯基本参数

编 码

8位二进制

数据位

8位

奇偶校验位

停止位

1位

错误校验

CRC(冗余循环码)

波特率

2400bit/s、4800bit/s、9600 bit/s可设,出厂默认为9600bit/s

 数据帧格式定义

采用Modbus-RTU 通讯规约,格式如下: 

初始结构 ≥4 字节的时间 

地址码 = 1 字节 

功能码 = 1 字节 

数据区 = N 字节 

错误校验 = 16 位CRC 码 

结束结构 ≥4 字节的时间 

地址码:为变送器的起始地址,在通讯网络中是唯一的(出厂默认0x01)。

功能码:主机所发指令功能指示。

数据区:数据区是具体通讯数据,注意16bits数据高字节在前! 

CRC码:二字节的校验码。

主机问询帧结构:

地址码

功能码

寄存器起始地址

寄存器长度

校验码低位

校验码高位

1字节

1字节

2字节

2字节

1字节

1字节

从机应答帧结构:

地址码

功能码

有效字节数

数据一区

第二数据区

第N数据区

校验码

1字节

1字节

1字节

2字节

2字节

2字节

2字节

通讯寄存器地址说明

设备的地址为起始地址,当702寄存器数值为1时设备可虚拟多地址,若起始地址为1,则问询1-8地址都应答,连续8个地址分别代表8种不同的设备。当702寄存器数值为0时,虚拟多地址功能则无效,若起始地址为1,既询问2-8号设备不会再有应答,此时只可使用1号地址询问500-512号寄存器;

虚拟多地址说明:

例如起始地址为1,则不同的地址代表的设备及0号和1号寄存器存放的内容如下表所示:

地址

代表设备

0号寄存器

1号寄存器

1

风速设置

风速值(实际值10倍)

风力值(实际值)

2

风向设备

风向值0-7档(实际值)

风向值0-360(实际值)

3

温湿度设备

湿度值(实际值10倍)

温度值(实际值10倍)

4

噪声设备

噪声值(实际值10倍)

 

5

PM2.5和PM10设备

PM2.5值(实际值)

PM10值(实际值)

6

大气压力设备

大气压值(实际值10倍)

 

7

光照设备

20万光照值高位(实际值)

20万光照值(实际值)

8

TSP设备

TSP设备(实际值)

 


另外500到512号寄存器中的内容如下表所示(支持03/04功能码):

寄存器地址

PLC或组态地址

内容

操作

500

40501

风速值(实际值10倍)

只读

501

40502

风力值(实际值)

只读

502

40503

风向值0-7

只读

503

40504

风向值0-360

只读

504

40505

湿度值(实际值10倍)

只读

505

40506

温度值(实际值10倍)

只读

506

40507

噪声值(实际值10倍)

只读

507

40508

PM2.5值(实际值)

只读

508

40509

PM10值(实际值)

只读

509

40510

TSP值(实际值)

只读

510

40511

气压值(实际值10倍)

只读

511

40512

20W的Lux值高16位值(实际值)

只读

512

40513

20W的Lux值低16位值(实际值)

只读

此外700-702寄存器为控制寄存器,(支持03/04/06/16功能码)

寄存器地址

PLC或组态地址

内容

操作

700

40701

控制继电器1

写1闭合  写0断开

读写

701

40702

控制继电器2

写1闭合  写0断开

读写

702

40703

设备虚拟多地址使能

写1:设备可虚拟成多地址  

写0:多地址功能禁用

读写

 通讯协议示例以及解释

假设起始地址为1,通过0x00 00号和0x00 01号寄存器读取数据

通过不同地址问询0号和1号寄存器

问询风速值

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x01

0x03

0x00 0x00

0x00 0x02

0xC4

0x0B

应答帧(例如读到风速为1.2m/s,风力为1级风)

地址码

功能码

有效字节数

风速

风力

校验码低位

校验码高位

0x01

0x03

0x04

0x00 0x0C

0x00 0x01

0xFB

0xF0

风速:

0x000C (十六进制)= 12 =>风速= 1.2m/s

风力:

0x0001(十六进制)=1=> 风力 = 1级风

 问询风向

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x02

0x03

0x00 0x00

0x00 0x02

0xC4

0x38

应答帧(例如读到风向为西南风)

地址码

功能码

有效字节数

风向(0-7)

风向(0-360)

校验码低位

校验码高位

0x02

0x03

0x04

0x00 0x05

0x00 0xE1

0x19

0x7A

风向计算:

风向值:0x0105(十六进制)= 5=> 风向值 = 5(西南风)

风向值:0x00E1(十六进制)=225=>风向值225度(西南风)

采集值对应换算关系:

采集值(0-7档)

采集值(0-360°)

对应方向

0

北风

1

45°

东北风

2

90°

东风

3

135°

东南风

4

180°

南风

5

225°

西南风

6

270°

西风

7

315°

西北风

 问询温湿度值

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x03

0x03

0x00 0x00

0x00 0x02

0xC5

0xE9

应答帧(例如读到温度为-10.1℃,湿度为65.8%RH)

地址码

功能码

有效字节数

湿度值

温度值

校验码低位

校验码高位

0x03

0x03

0x04

0x02 0x92

0xFF 0x9B

0x79

0xFD

温度:当温度低于0℃时以补码形式上传

0xFF9B(十六进制)= -101 => 温度 = -10.1℃

湿度:

0x0292(十六进制)=658=> 湿度 = 65.8%RH

 问询噪声

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x04

0x03

0x00 0x00

0x00 0x01

0x84

0x5F

应答帧(例如读到噪声值为50.8dB)

地址码

功能码

有效字节数

噪声

校验码低位

校验码高位

0x04

0x03

0x02

0x01 0xFC

0x75

0x95

噪声计算:

噪声值:0x01FC(十六进制)= 508=> 噪声值 = 50.8dB

问询PM10和PM2.5

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x05

0x03

0x00 0x00

0x00 0x02

0xC5

0x8F

应答帧(例如读到PM2.5为85ug/m3,PM10为156ug/m3)

地址码

功能码

有效字节数

PM10

PM2.5

校验码低位

校验码高位

0x05

0x03

0x04

0x00 0x9C

0x00 0x55

0xAF

0x8A

PM10计算:

PM10:0x009C (十六进制)= 156 => PM10 = 156ug/m3

PM2.5计算:

PM2.5:0x0055(十六进制)= 85=> PM2.5 = 85ug/m3

  问询大气压力值

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x06

0x03

0x00 0x00

0x00 0x01

0x85

0xBD

应答帧(例如读到大气压力值为15.1Kpa)

地址码

功能码

有效字节数

大气压力

校验码低位

校验码高位

0x06

0x03

0x02

0x00 0x97

0x4C

0x2A

气压计算:

气压值值:0x0097(十六进制)= 151=> 大气压力值 = 15.1Kpa

 问询光照

问询帧

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x07

0x03

0x00 0x00

0x00 0x02

0xC4

0x6D

应答帧(例如读到光照度为132808Lux)

地址码

功能码

有效字节数

20万光照

20万光照

校验码低位

校验码高位

0x07

0x03

0x04

0x00 0x02

0x06 0xC8

0x3F

0xC5

产品为0~20万量程变送器,单位为1Lux

0x00 02 06 C8(十六进制) = 132808=> 光照度=132808Lux

问询TSP

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x08

0x03

0x00 0x00

0x00 0x01

0x84

0x93

应答帧(例如读到TSP值为50.8ug/m3)

地址码

功能码

有效字节数

TSP

校验码低位

校验码高位

0x08

0x03

0x02

0x01 0xFC

0x65

0x94

TSP计算:

TSP值:0x01FC(十六进制)= 508=> TSP值 = 50.8ug/m3

问询500号以上寄存器

例如问询温湿度值:设备地址为01

地址码

功能码

起始地址

数据长度

校验码低位

校验码高位

0x01

0x03

0x01 0xF8

0x00 0x02

0x44

0x06

应答帧(例如读到温度为-10.1℃,湿度为65.8%RH)

地址码

功能码

有效字节数

湿度值

温度值

校验码低位

校验码高位

0x01

0x03

0x04

0x02 0x92

0xFF 0x9B

0x5A

0x3D

温度:当温度低于0℃时以补码形式上传

0xFF9B(十六进制)= -101 => 温度 = -10.1℃

湿度:

0x0292(十六进制)=658=> 湿度 = 65.8%RH

控制继电器及设置虚拟多设备使能

1.  关闭虚拟多设备

写入数据帧

地址码

功能码

寄存器地址

写入内容

校验码低位

校验码高位

0x01

0x06

0x02 0xBE

0x00 0x00

0xE8

0x56

应答帧

地址码

功能码

寄存器地址

写入内容

校验码低位

校验码高位

0x01

0x06

0x02 0xBE

0x00 0x00

0xE8

0x56

2.  控制继电器1闭合

写入数据帧

地址码

功能码

寄存器地址

写入内容

校验码低位

校验码高位

0x01

0x06

0x02 0xBC

0x00 0x01

0x88

0x56

应答帧

地址码

功能码

寄存器地址

写入内容

校验码低位

校验码高位

0x01

0x06

0x02 0xBC

0x00 0x01

0x88

0x56

 

使用03功能码,可查询当前的设置值


由此可知,用我们的主机则最多可同时读取4台扬尘

1 楼
请登录后发布您的看法! 去登陆 发表内容为本站会员交流之用,不代表网站立场,且不支持任何商业行为!
  • 波浪
  • 波浪
  • 波浪
  • 波浪

您有

0 条新回复