-Begin-
經常會有一些學員會問到上位機與單片機之間通信的問題,而我們經常會講上位機與PLC之間通信,那么其實對上位機開發來說,不管是和PLC通信,還是和單片機通信,通信原理都是一樣的。PLC的本質就是單片機,在單片機的基礎上添加一些外圍電路并形成產品化,即構成了PLC控制器。今天在這里給大家分享一個上位機與單片機通信的實例,希望對大家開發上位機有所啟發。
1. 單片機硬件介紹
只要做上位機開發,就離不開通信協議。一般來說,單片機可以與上位機之間以串口通信為主,當然也不排除現在有的單片機也集成了以太網口。就串口通信而言,常用的幾種通信方式,包括串口自定義協議、Modbus協議、CAN總線,接下來介紹的這個單片機是某個鋰電池的核心板,它主要是支持Modbus協議和CAN總線的方式。
2. 通信分析
(1)這里我們選擇的是基于485總線的ModbusRTU通信協議,如果要實現上位機開發,需要單片機開發人員提供一份通信變量表,如果讀取變量較多或者不連續,需要進行分組讀取。
(2)通信變量表一般包含參數名稱、Modbus地址、存儲區、數據類型、換算公式等內容,能夠將通信變量表看明白并完成通信測試,是能夠完成上位機開發的前提。
(3)這里,我截取部分變量表跟大家做一個分析:
上表中,以電芯總電壓為例,Modbus地址為0x1003,對應十進制即為4099,寄存器地址即為44100,讀取類型為ushort類型,換算公式為讀取之后乘以0.01,比如讀取值為5630,即為5.63V。
分析明白之后,我們就可以先用ModbusPoll軟件來一波初步測試,如果需要Modbus軟件資料的,可以通過本公眾號獲取,Modbus軟件代號:201。
這里我們需要通過485轉USB連接到電腦中,然后通過設備管理器,看到端口號為COM4。
3. 通信測試
(1)打開ModbusPoll軟件,通信參數選擇COM4、9600、N、8、1,具體配置如下圖所示:
(2)讀取寄存器起始地址為4099,讀取長度為10,具體配置如下圖所示:
(3)配置完成后,即可讀取到單片機的數據,具體如下圖所示:
(4)實現讀取之后,我們分析一下結果,4099讀取到的值為4206,說明當前電池的電壓為42.06V。我們可以用實際開發完成的上位機軟件做下對比,驗證一下數據是否正確:
4. 整體總結
本文主要針對單片機的Modbus通信實例做了較為詳盡的描述,由于篇幅有限,僅僅介紹了通信測試部分,對于后續的項目實戰部分,會通過后續的文章進行進一步的闡述。
-END-
-
單片機
+關注
關注
6022文章
44375瀏覽量
628268 -
控制器
+關注
關注
112文章
15874瀏覽量
175323 -
plc
+關注
關注
5001文章
12935瀏覽量
459178
發布評論請先 登錄
相關推薦
評論