-Begin-
經(jīng)常會有一些學員會問到上位機與單片機之間通信的問題,而我們經(jīng)常會講上位機與PLC之間通信,那么其實對上位機開發(fā)來說,不管是和PLC通信,還是和單片機通信,通信原理都是一樣的。PLC的本質(zhì)就是單片機,在單片機的基礎(chǔ)上添加一些外圍電路并形成產(chǎn)品化,即構(gòu)成了PLC控制器。今天在這里給大家分享一個上位機與單片機通信的實例,希望對大家開發(fā)上位機有所啟發(fā)。
1. 單片機硬件介紹
只要做上位機開發(fā),就離不開通信協(xié)議。一般來說,單片機可以與上位機之間以串口通信為主,當然也不排除現(xiàn)在有的單片機也集成了以太網(wǎng)口。就串口通信而言,常用的幾種通信方式,包括串口自定義協(xié)議、Modbus協(xié)議、CAN總線,接下來介紹的這個單片機是某個鋰電池的核心板,它主要是支持Modbus協(xié)議和CAN總線的方式。
2. 通信分析
(1)這里我們選擇的是基于485總線的ModbusRTU通信協(xié)議,如果要實現(xiàn)上位機開發(fā),需要單片機開發(fā)人員提供一份通信變量表,如果讀取變量較多或者不連續(xù),需要進行分組讀取。
(2)通信變量表一般包含參數(shù)名稱、Modbus地址、存儲區(qū)、數(shù)據(jù)類型、換算公式等內(nèi)容,能夠?qū)⑼ㄐ抛兞勘砜疵靼撞⑼瓿赏ㄐ艤y試,是能夠完成上位機開發(fā)的前提。
(3)這里,我截取部分變量表跟大家做一個分析:
上表中,以電芯總電壓為例,Modbus地址為0x1003,對應(yīng)十進制即為4099,寄存器地址即為44100,讀取類型為ushort類型,換算公式為讀取之后乘以0.01,比如讀取值為5630,即為5.63V。
分析明白之后,我們就可以先用ModbusPoll軟件來一波初步測試,如果需要Modbus軟件資料的,可以通過本公眾號獲取,Modbus軟件代號:201。
這里我們需要通過485轉(zhuǎn)USB連接到電腦中,然后通過設(shè)備管理器,看到端口號為COM4。
3. 通信測試
(1)打開ModbusPoll軟件,通信參數(shù)選擇COM4、9600、N、8、1,具體配置如下圖所示:
(2)讀取寄存器起始地址為4099,讀取長度為10,具體配置如下圖所示:
(3)配置完成后,即可讀取到單片機的數(shù)據(jù),具體如下圖所示:
(4)實現(xiàn)讀取之后,我們分析一下結(jié)果,4099讀取到的值為4206,說明當前電池的電壓為42.06V。我們可以用實際開發(fā)完成的上位機軟件做下對比,驗證一下數(shù)據(jù)是否正確:
4. 整體總結(jié)
本文主要針對單片機的Modbus通信實例做了較為詳盡的描述,由于篇幅有限,僅僅介紹了通信測試部分,對于后續(xù)的項目實戰(zhàn)部分,會通過后續(xù)的文章進行進一步的闡述。
-END-
-
單片機
+關(guān)注
關(guān)注
6043文章
44623瀏覽量
638798 -
控制器
+關(guān)注
關(guān)注
112文章
16461瀏覽量
179562 -
plc
+關(guān)注
關(guān)注
5016文章
13389瀏覽量
465543
發(fā)布評論請先 登錄
相關(guān)推薦
LabVIEW串口通信實例:PC機與51單片機串口通信實例
《電子DIY》之《單片機實踐項目》之基于51單片機的打地鼠設(shè)計與制作
單片機的串口和上位機的串口進行通信
STM32 USART串口通信實踐
《電子DIY》之《單片機實踐項目》之基于單片機的三路搶答器設(shè)計與制作
![《電子DIY》<b class='flag-5'>之</b>《<b class='flag-5'>單片機</b><b class='flag-5'>實踐</b>項目》<b class='flag-5'>之</b>基于<b class='flag-5'>單片機</b>的三路搶答器設(shè)計與制作](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)——雙單片機串口通信實驗
![<b class='flag-5'>單片機</b>應(yīng)用系統(tǒng)設(shè)計技術(shù)——雙<b class='flag-5'>單片機</b>串口<b class='flag-5'>通信實</b>驗](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機與上位機的串行通信
![<b class='flag-5'>單片機</b>與<b class='flag-5'>上位</b><b class='flag-5'>機</b>的串行<b class='flag-5'>通信</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《電子DIY》之《單片機實踐項目》之基于單片機的簡易數(shù)字秒表的設(shè)計(Proteus仿真與實物制作)
![《電子DIY》<b class='flag-5'>之</b>《<b class='flag-5'>單片機</b><b class='flag-5'>實踐</b>項目》<b class='flag-5'>之</b>基于<b class='flag-5'>單片機</b>的簡易數(shù)字秒表的設(shè)計(Proteus仿真與實物制作)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《電子DIY》之《單片機實踐項目》之基于單片機的電子時鐘設(shè)計與制作(基于單片機的萬年歷的設(shè)計與制作)
![《電子DIY》<b class='flag-5'>之</b>《<b class='flag-5'>單片機</b><b class='flag-5'>實踐</b>項目》<b class='flag-5'>之</b>基于<b class='flag-5'>單片機</b>的電子時鐘設(shè)計與制作(基于<b class='flag-5'>單片機</b>的萬年歷的設(shè)計與制作)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
上位機開發(fā)之西門子PLC-S7通信實踐
![<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b>西門子PLC-S7<b class='flag-5'>通信實踐</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于LabVIEW的單片機串口通信實現(xiàn)
![基于LabVIEW的<b class='flag-5'>單片機</b>串口<b class='flag-5'>通信實</b>現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論