RS485即Modbus RTU協(xié)議,,是一種主從式點(diǎn)對(duì)點(diǎn)的通訊協(xié)議,允許一臺(tái)主機(jī)和多臺(tái)從機(jī)之間進(jìn)行數(shù)據(jù)通信。NB模塊為主機(jī),,電磁水表為從機(jī),。通信方式為NB模塊提出命令請(qǐng)求,電磁水表響應(yīng)接收數(shù)據(jù)后作數(shù)據(jù)分析,,如果滿足Modbus通信規(guī)約,,則作數(shù)據(jù)響應(yīng),。NB模塊通過(guò)RS485 數(shù)字接口來(lái)實(shí)現(xiàn)對(duì)電磁水表的數(shù)據(jù)采集,,包括瞬時(shí)流量、瞬時(shí)流速,、正向總量,、反向總量、累計(jì)總量,、流量百分比,、電流、頻率,、報(bào)警等數(shù)據(jù),。
RS485通信的每一幀數(shù)據(jù)包含從機(jī)地址、命令字,、信息字,、校驗(yàn)字,NB模塊命令請(qǐng)求報(bào)文為地址,、命令,、數(shù)據(jù)地址、數(shù)據(jù)長(zhǎng)度,、校驗(yàn)碼,,電磁水表數(shù)據(jù)響應(yīng)報(bào)文為地址、命令,、數(shù)據(jù)長(zhǎng)度,、數(shù)據(jù)信息、校驗(yàn)碼,。以讀取電磁水表的瞬時(shí)流速為例,,電磁水表通信地址為1,讀取命令字為03H,,瞬時(shí)流速的寄存器地址為0,,數(shù)據(jù)類型是浮點(diǎn)型,即4個(gè)字節(jié)2個(gè)寄存器,。NB模塊向電磁水表發(fā)送命令請(qǐng)求:01H 03H 00H 00H 00H 02H C4H 0BH,,表示讀取通信地址為1,寄存器地址從0開(kāi)始的4個(gè)字節(jié)數(shù)據(jù),,即電磁水表的瞬時(shí)流速,,命令請(qǐng)求的校驗(yàn)碼為C4H 0BH,。電磁水表響應(yīng)數(shù)據(jù)為:01H 03H 04H 00H 00H C1H 48HABH 95H,04H表示4個(gè)字節(jié),,則 00H 00H C1H 48H 表示瞬時(shí)流速,,將高、低位寄存器位置交換后,,通過(guò) IEEE- 754 標(biāo)準(zhǔn)計(jì)算可得知瞬時(shí)流速為-12.5,。當(dāng)讀取更多數(shù)據(jù)或其他數(shù)據(jù)時(shí),依據(jù)實(shí)際情況修改命令請(qǐng)求,。