日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

温湿度设备开发总结

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 温湿度设备开发总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

溫濕度設備是S200HT型號,基于RS-485通信接口,報文格式如下:

發送例文:01 03 00 03 00 24 34 0b

接受例文:01 03 04 01 3b 02 d3 ca ff

?

溫度值計算:0x013b/10=315/10=31.5();

濕度值計算:0x02d3/10=723/10=72.3%.

?

思路:使用.net的串口進行開發,但是在這之前使用google進行查詢是否有現成的代碼或者類庫。

?

使用.net串口進行開發,模擬相應的發送報文,在標簽為2的時候可以成功發送,并接受到相應的報文,但是按照計算,結果不正確。

使用NModbus類庫,進行多次測試和應用,結果正確。

總結:第一,遇到問題的首要是不要慌張,告訴自己一定能解決,結果就是能解決的。第二,多使用類庫或者別人的經驗,這樣做的原因主要能快速解決問題,當然如果是學習,可以自己來寫,但是工作呢還是快速結束為好,畢竟公司需要你多產出。第三,多思考,結合整體來進行思考。報文的傳輸,二進制數據傳輸,如何解析等等。第四,做項目并不是所有的問題都要解決才開始動手,先將大致的框架搭好,然后逐步解決程序中的各個問題,遇到花1-2小時不能解決或者解決無望的情況下,趕緊跳過,進行下一個功能點的開發,將最復雜的放到后面,這樣進度就不會受到影響。

?

以下是核心代碼:

using (SerialPort serialPort = new SerialPort())

??????????? {

??????????????? serialPort.PortName = Util.GetAppSettings("PortName");

??????????????? serialPort.BaudRate = int.Parse(Util.GetAppSettings("BaudRate"));

??????????????? //以下配置不需要進行手工配置 遵守 RS-485通信協議

??????????????? serialPort.Parity = Parity.None;

??????????????? serialPort.StopBits = StopBits.One;

??????????????? serialPort.DataBits = 8;

??????????????? serialPort.Open();

?

??????????????? // create Modbus RTU Master by the comport client

??????????????? //document->Modbus.Device.Namespace->ModbusSerialMaster Class->CreateRtu Method

??????????????? ModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort);

?

??????????????? // read the input register 0~9 (30001~300010) of the device slave ID 1

??????????????? //document->Modbus.Device.Namespace->ModbusMaster Class->ReadInputRegisters Method

???????????? //?? byte slaveID = 1;

??????????????? //開始地址為0

??????????????? ushort startAddress = 0;

????? ??????????ushort numOfPoints = 9;

??????????????? master.Transport.ReadTimeout = 300;

??????????????? try

??????????????? {

??????????????????? ushort[] register = master.ReadHoldingRegisters(slaveID, startAddress, numOfPoints);

?

??????????????????? float temperatureValue = Convert.ToSingle(register[3]) / 10;

??????????????????? float humidityValue = Convert.ToSingle(register[4]) / 10;

?

轉載于:https://www.cnblogs.com/XiaoKiss/archive/2011/07/04/2097066.html

總結

以上是生活随笔為你收集整理的温湿度设备开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。