1.雷達(dá)流量計(jì)介紹
雷達(dá)流量計(jì)是一種很常用的非接觸測流流量計(jì),一般采用RS485通訊接口,SCJ-LL21雷達(dá)流量計(jì)采用標(biāo)準(zhǔn)的Modbus-RTU協(xié)議;
設(shè)備采用標(biāo)準(zhǔn)RS485接口,波特率9600,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無校驗(yàn),協(xié)議默認(rèn)為標(biāo)準(zhǔn)Modbus-RTU協(xié)議,功能碼03H;
設(shè)備默認(rèn)的從機(jī)地址為1,地址可以通過將設(shè)備連接電腦,使用配置助手進(jìn)行修改;
2.雷達(dá)流量計(jì)寄存器說明

注意:一般建議讀取寄存器3002空高(設(shè)備到水面高度),由采集器來計(jì)算水深(安裝高度-空高=水深),如果需要使用設(shè)備內(nèi)水深,請通過RS485連接電腦后,使用“ 配置助手.exe”設(shè)置水位計(jì)安裝高度,之后才能輸出準(zhǔn)確的水深;
3.讀取雷達(dá)流量計(jì)示例:
讀取空高與流速
主機(jī)發(fā)送:01 03 0B BA 00 02 E7 CA
設(shè)備返回:01 03 04 03 9F 02 2C CA E4
解釋: 03 9F 0x039F => 927 空高:927mm,也就是0.927m
02 2C 0x022C => 556 流速:556mm/s,也就是0.556m/s
②讀取空高
主機(jī)發(fā)送:01 03 0B BA 00 01 A7 CB
設(shè)備返回:01 03 02 03 9D 79 1D
解釋: 03 9D 0x039D => 925 空高:925mm,也就是0.925m
③讀取流速
主機(jī)發(fā)送:01 03 0B BB 00 01 F6 0B
設(shè)備返回:01 03 02 09 E9 7F 9A
解釋: 09 E9 0x09E9 => 2537 流速:2537mm/s,也就是2.537m/s
4.編寫程序讀取SCJ-LL21雷達(dá)流量計(jì)的數(shù)據(jù)。
首先進(jìn)行modbus-rtu主機(jī)接口初始化

實(shí)現(xiàn)uart串口底層接口
//RS485發(fā)送接口
static bool RS485_CH1_SendData(u8 DataBuff[], u16 DataLen)
{
UARTx_EnableRx(RS485_CH1_UART_CH, FALSE); //RS485發(fā)送數(shù)據(jù)前關(guān)閉接收
UARTx_SendData(RS485_CH1_UART_CH, DataBuff, DataLen); //串口發(fā)送數(shù)據(jù)
UARTx_EnableRx(RS485_CH1_UART_CH, TRUE); //發(fā)送完成后啟動接收
return TRUE;
}
//RS485接收數(shù)據(jù)接口
static int RS485_CH1_ReadData(u8** pDataBuff, u8 ByteTimeOutMs, u16 TimeOutMs, u16* pReceiveDelayMs)
{
u32 cnt = 0;
u16 TempTime;
if (ByteTimeOutMs < 1) ByteTimeOutMs = 1; ? ? ? ? ?//字節(jié)超時(shí)時(shí)間,2個(gè)幀之間的間隔最小時(shí)間
TimeOutMs /= ByteTimeOutMs;
TimeOutMs += 1;
TempTime = TimeOutMs;
while (TimeOutMs--)
{
cnt = UARTx_GetRxCnt(RS485_CH1_UART_CH);
OSTimeDlyHMSM(0, 0, 0, ByteTimeOutMs);
if ((cnt > 0) && (cnt == UARTx_GetRxCnt(RS485_CH1_UART_CH)))
{
if (pReceiveDelayMs != NULL) //需要返回延時(shí)
{
*pReceiveDelayMs = (TempTime - TimeOutMs) * ByteTimeOutMs;
}
*pDataBuff = sg_RS485_CH1_Buff; //接收緩沖區(qū)
return cnt;
}
}
return 0;
}
//RS485清除接收緩沖區(qū)
static void RS485_CH1_ClearData(void)
{
UARTx_ClearRxCnt(RS485_CH1_UART_CH); //清除串口緩沖區(qū)
}
//通過modbus-rtu協(xié)議讀取雷達(dá)流量計(jì)數(shù)據(jù)
/*************************************************************************************************************************
* 函數(shù) : SENSORS_ERROR FL_SCJ_LL21_Coll(MODBUS_HANDLE* pModbusHandle, u8 num, FL_SENSOR_DATA* pSensorData)
* 功能 : 采集流量計(jì)數(shù)據(jù)
* 參數(shù) : pModbusHandle:modbus句柄;num:流速計(jì)編號0-1;pSensorData:采集的傳感器數(shù)據(jù)
* 返回 : 采集狀態(tài) SENSORS_ERROR
* 依賴 : 底層通信驅(qū)動
* 作者 : http://www.scj-water.com/
* 時(shí)間 : 2022-07-11
* 最后修改時(shí)間 : 2022-07-11
* 說明 :
*************************************************************************************************************************/
SENSORS_ERROR FL_SCJ_LL21_Coll(MODBUS_HANDLE* pModbusHandle, u8 num, FL_SENSOR_DATA* pSensorData)
{
u32 temp;
MRTU_ERROR m_error;
u8 retry;
u16 RegDataBuff[8];
if(num > (FL_SENSOR_COUNT -1)) return SENSORS_NON_ERROR;
FL_SensorData_SetInvalidValue(pSensorData); //傳感器數(shù)據(jù)初始化為無效
for (retry = 0; retry < 3; retry++)
{
m_error = MODBUS_HOST_ReadMultReg(pModbusHandle, HOLD_REG_03H, GetFlowmeterSensorAddr(num), 3000+2, 7, RegDataBuff); //主機(jī)讀取從機(jī)多個(gè)指定寄存器
if (m_error == MRTU_OK)
{
pSensorData->FlowVelocity = abs((s16)RegDataBuff[1]); //水流速度,單位mm/s-取絕對值
pSensorData->WaterDepth = RegDataBuff[0]; //空高,單位mm
pSensorData->FlowDirection = RegDataBuff[6] ? 1 : 0; //平均流向
return SENSORS_OK;
}
else
{
SYS_DelayMS(150);
}
}
return SENSORS_COMM_ERROR;
}
————————————————
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
原文鏈接:https://blog.csdn.net/WTRExpert/article/details/146973163;
-
單片機(jī)
+關(guān)注
關(guān)注
6071文章
45259瀏覽量
660151 -
雷達(dá)
+關(guān)注
關(guān)注
51文章
3201瀏覽量
122082 -
流量計(jì)
+關(guān)注
關(guān)注
10文章
1589瀏覽量
57056
發(fā)布評論請先 登錄
電磁流量計(jì)
管道式電磁流量計(jì)簡介
渦街流量計(jì)安裝步驟
蒸汽流量計(jì)的選型對比
流量計(jì)
流量計(jì)基礎(chǔ)知識——流量概念和流量計(jì)的分類
轉(zhuǎn)子流量計(jì)數(shù)據(jù)采集說明
玻璃轉(zhuǎn)子流量計(jì)的原理是什么?
電磁流量計(jì)流量波動大的原因
金屬轉(zhuǎn)子流量計(jì)的精度
小型測量流量計(jì)如何選型
雷達(dá)流量計(jì)介紹
雷達(dá)流量計(jì)的應(yīng)用場景有哪些
非接觸式雷達(dá)流量計(jì)監(jiān)測系統(tǒng)詳解

評論