前言:
在工業(yè)通信領(lǐng)域,Modbus通信是一種使用非常廣泛的通信協(xié)議,Modbus一般有三種,分別為ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是應(yīng)用于串行鏈路上的協(xié)議,通俗一點(diǎn)就是說它是走串口的,ModbusTCP通俗點(diǎn)說就是它是走網(wǎng)口的,作者在自動化領(lǐng)域耕耘多年,做過的Modbus項(xiàng)目無數(shù),靠Modbus通信的兼職也賺過數(shù)萬,畢竟讓我徒手?jǐn)]一個(gè)ModbusSlave這種Modbus調(diào)試工具對我而言也不在話下,比如上圖你看到的Modbus調(diào)試助手就是我寫的。古人云讀萬卷書不如行萬里路,行萬里路不如名師指路,所以入門最快的方法一定是找個(gè)前輩模仿他,年輕的時(shí)候一定要投資自己!買書、買課程學(xué)習(xí)都是你提升自己最快的方法,成為高手別無他法,努力學(xué)習(xí)+模仿高手,他日一定有所成就!一本書、一個(gè)課程幾十塊錢,但是在未來為你賺到的錢一定是這些成本的幾十倍、幾百倍、上千倍,甚至更多!如果你是一個(gè)普通人,沒有強(qiáng)大的背景,一定要持續(xù)學(xué)習(xí),持續(xù)學(xué)習(xí)是普通人逆襲唯一的方法!如果想精通Modbus編程,c#基礎(chǔ)的語法知識必不可少,訂閱我的專欄《C# Modbus通信從入門到精通》就送《C#本質(zhì)論》、《C#圖解教程》電子書??傊?strong>只要跟我學(xué)了Modbus通信,一定能打變Modbus無敵手,如果我問你以下幾個(gè)問題,你都能答上來,才算是一個(gè)高手,不然怎么輕松拿三十萬+年薪,當(dāng)然這些知識我都會在我的專欄《C# Modbus通信從入門到精通》中進(jìn)行詳細(xì)介紹。
問題1:Modbus總共有幾種?
問題2:Modbus RTU是走串口還是網(wǎng)口?
問題3、Modbus RTU需要校驗(yàn)嗎?
問題4、Modbus TCP需要校驗(yàn)嗎?
問題5、Modbus支持哪些功能碼?每一種功能碼的具體含義是啥?
問題6、怎么解決ModbusRTU通信中多線程通信問題?
問題7、怎么解決ModbusTCP通信中掉線重連問題?
如果我問的上面幾問題你不能全部掌握的話,我建議你還是來我的專欄《C# Modbus通信從入門到精通》系統(tǒng)學(xué)習(xí)一下吧!
本專欄將會詳細(xì)對這三種協(xié)議如何在C#程序開發(fā)上的應(yīng)用進(jìn)行詳細(xì)講解,包含協(xié)議原理、報(bào)文格式、C#源碼實(shí)現(xiàn)。
專欄剛推出就上了csdn熱銷榜,由此可見該專欄內(nèi)容有多超值!
一、《C# Modbus通信從入門到精通》專欄文章目錄
點(diǎn)擊下面的文章鏈接即可轉(zhuǎn)到該文章:
1、C# Modbus通信從入門到精通(1)——虛擬串口調(diào)試工具的使用
2、C# Modbus通信從入門到精通(2)——Modbus RTU協(xié)議原理
3、C# Modbus通信從入門到精通(3)——Modbus RTU(0x01功能碼)
4、C# Modbus通信從入門到精通(4)——Modbus RTU(0x02功能碼)
5、C# Modbus通信從入門到精通(5)——Modbus RTU(0x03功能碼)
6、C# Modbus通信從入門到精通(6)——Modbus RTU(0x04功能碼)
7、C# Modbus通信從入門到精通(7)——Modbus RTU(0x05功能碼)
8、C# Modbus通信從入門到精通(8)——Modbus RTU(0x06功能碼)
9、C# Modbus通信從入門到精通(9)——Modbus RTU(0x0F功能碼)
10、C# Modbus通信從入門到精通(10)——Modbus RTU(0x10功能碼)
11、C# Modbus通信從入門到精通(11)——調(diào)試軟件Modbus Slave和Modbus Poll的使用
12、C# Modbus通信從入門到精通(12)——Modbus ASCII協(xié)議原理
13、C# Modbus通信從入門到精通(13)——Modbus ASCII(0x01功能碼)
14、C# Modbus通信從入門到精通(14)——Modbus ASCII(0x02功能碼)
15、C# Modbus通信從入門到精通(15)——Modbus ASCII(0x03功能碼)
16、C# Modbus通信從入門到精通(16)——Modbus ASCII(0x04功能碼)
17、C# Modbus通信從入門到精通(17)——Modbus ASCII(0x05功能碼)
18、C# Modbus通信從入門到精通(18)——Modbus ASCII(0x06功能碼)
19、C# Modbus通信從入門到精通(19)——Modbus ASCII(0x0F功能碼)
20、C# Modbus通信從入門到精通(20)——Modbus ASCII(0x10功能碼)
21、C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理
22、C# Modbus通信從入門到精通(22)——Modbus TCP(0x01功能碼)
23、C# Modbus通信從入門到精通(23)——Modbus TCP(0x02功能碼)
24、C# Modbus通信從入門到精通(24)——Modbus TCP(0x03功能碼)
25、C# Modbus通信從入門到精通(25)——Modbus TCP(0x04功能碼)
26、C# Modbus通信從入門到精通(26)——Modbus TCP(0x05功能碼)
27、C# Modbus通信從入門到精通(27)——Modbus TCP(0x06功能碼)
28、C# Modbus通信從入門到精通(28)——Modbus TCP(0x0F功能碼)
29、C# Modbus通信從入門到精通(29)——Modbus TCP(0x10功能碼)
二、為何要學(xué)習(xí)本專欄?
我為何推薦學(xué)習(xí)《C# Modbus通信從入門到精通》專欄?有以下幾點(diǎn)原因:
1)掌握Modbus協(xié)議是一個(gè)上位機(jī)軟件工程師必備的技能,在招聘要求上都會要求掌握Modbus協(xié)議,做上位機(jī)軟件開發(fā)不掌握Modbus協(xié)議很難拿到高薪!
2)本專欄非常系統(tǒng)的介紹了Modbus RTU、Modbus ASCII、Mobus TCP三種協(xié)議的原理與C#實(shí)現(xiàn),你從市面上找不到同時(shí)介紹這三種協(xié)議的C#教程,絕大部分都是講述原理的,如果有那也會是在一些培訓(xùn)班,培訓(xùn)班的價(jià)格你懂得。
3)本專欄提供了本人開發(fā)的Modbus調(diào)試助手的源碼(支持Modbus RTU、Modbus ASCII、Mobus TCP三種協(xié)議),不僅方便您做Modbus項(xiàng)目時(shí)候的調(diào)試,而且也利于您掌握本人開發(fā)的Modbus通信類庫如何使用。
4)本人開發(fā)的Modbus類庫支持常用的讀輸入線圈、讀輸出線圈、讀保持寄存器、讀輸入寄存器、寫單個(gè)線圈、寫多個(gè)線圈、寫多個(gè)保持寄存器等多個(gè)功能碼。
5)本人開發(fā)的Modbus類庫支持多種數(shù)據(jù)類型的讀寫,支持int16有符號整數(shù)、uint16無符號整數(shù)、float小數(shù)。
6)本人開發(fā)的Modbus類庫支持超時(shí)設(shè)置、讀取次數(shù)設(shè)置、異常原因返回、掉線重連、可應(yīng)用于多線程等功能
7)本人開發(fā)的Modbus類庫穩(wěn)定,已在多個(gè)項(xiàng)目中應(yīng)用,避免新手走彎路
8)有人說市面上有一些第三方的庫可以用,為啥還要學(xué)呢?作為一名高級工程師的經(jīng)驗(yàn)就是掌握底層代碼是你進(jìn)階高手的必經(jīng)之路,出了問題你知道怎么排查,用別人寫的有問題你也改不了,還有就是你去面試,人家問你懂Modbus通信嗎,一個(gè)面試者說自己封裝過Modbus協(xié)議,另一個(gè)面試者說我會用某個(gè)別人寫的庫,你作為面試官,你選擇錄取誰?
三、Modbus調(diào)試助手介紹
為了方便學(xué)員快速學(xué)習(xí)Modbus,我也開發(fā)了支持ModbusRTU、ModbusASCII、ModbusTCP這三種協(xié)議的Modbus主站調(diào)試工具,如下:
3.1 Modbus調(diào)試助手界面
3.1.1 協(xié)議選擇界面
軟件啟動時(shí)彈出協(xié)議選擇界面,根據(jù)選擇的協(xié)議不同,主界面將會出現(xiàn)不同的界面
3.1.2 調(diào)試界面
3.1.2.1 ModbusRTU調(diào)試界面
3.1.2.2 ModbusASCII調(diào)試界面
3.1.2.3 ModbusTCP調(diào)試界面
3.2 Modbus調(diào)試助手支持的功能
該工具支持的功能碼有:
0x01(讀輸出線圈)
0x02(讀輸入線圈)
0x03(讀多個(gè)/單個(gè)保持寄存器)
0x04(讀多個(gè)/單個(gè)輸入寄存器)
0x05(寫單個(gè)線圈)
0x06(寫單個(gè)保持寄存器)
0x0F(寫多個(gè)線圈)
0x10(寫多個(gè)保持寄存器)
以上功能碼是我們在開發(fā)中常用的功能碼,當(dāng)然Modbus也支持其他的功能碼,如果學(xué)員在學(xué)習(xí)過程中發(fā)現(xiàn)需要支持更多的功能碼,也可以向我提出,我也會完善它的功能。
3.3 Modbus調(diào)試助手部分源碼展示
由于ModbusRTU、ModbusASCII、ModbusTCP報(bào)文的部分結(jié)構(gòu)是類似的,所以我在設(shè)計(jì)時(shí)聲明了一個(gè)抽象類Modbus類,然后在抽象類中定義好很多功能碼操作的方法,然后針對ModbusRTU、ModbusASCII、ModbusTCP這三種協(xié)議去實(shí)現(xiàn)抽象類中定義好的方法即可。上圖中ModbusRTU、ModbusASCII、ModbusTCP這三個(gè)類都實(shí)現(xiàn)了Modbus抽象類中定義的方法,Modbus抽象類部分代碼如下:
四、ModbusRTU
ModbusRTU系列的文章目錄如下(點(diǎn)擊鏈接可轉(zhuǎn)到文章):
1、C# Modbus通信從入門到精通(1)——虛擬串口調(diào)試工具的使用
2、C# Modbus通信從入門到精通(2)——Modbus RTU協(xié)議原理
3、C# Modbus通信從入門到精通(3)——Modbus RTU(0x01功能碼)
4、C# Modbus通信從入門到精通(4)——Modbus RTU(0x02功能碼)
5、C# Modbus通信從入門到精通(5)——Modbus RTU(0x03功能碼)
6、C# Modbus通信從入門到精通(6)——Modbus RTU(0x04功能碼)
7、C# Modbus通信從入門到精通(7)——Modbus RTU(0x05功能碼)
8、C# Modbus通信從入門到精通(8)——Modbus RTU(0x06功能碼)
9、C# Modbus通信從入門到精通(9)——Modbus RTU(0x0F功能碼)
10、C# Modbus通信從入門到精通(10)——Modbus RTU(0x10功能碼)
11、C# Modbus通信從入門到精通(11)——調(diào)試軟件Modbus Slave和Modbus Poll的使用
五、ModbusASCII
ModbusASCII系列的文章目錄如下(點(diǎn)擊鏈接可轉(zhuǎn)到文章):
12、C# Modbus通信從入門到精通(12)——Modbus ASCII協(xié)議原理
13、C# Modbus通信從入門到精通(13)——Modbus ASCII(0x01功能碼)
14、C# Modbus通信從入門到精通(14)——Modbus ASCII(0x02功能碼)
15、C# Modbus通信從入門到精通(15)——Modbus ASCII(0x03功能碼)
16、C# Modbus通信從入門到精通(16)——Modbus ASCII(0x04功能碼)
17、C# Modbus通信從入門到精通(17)——Modbus ASCII(0x05功能碼)
18、C# Modbus通信從入門到精通(18)——Modbus ASCII(0x06功能碼)
19、C# Modbus通信從入門到精通(19)——Modbus ASCII(0x0F功能碼)
20、C# Modbus通信從入門到精通(20)——Modbus ASCII(0x10功能碼)文章來源:http://www.zghlxwxcb.cn/news/detail-619579.html
六、ModbusTCP
ModbusTCP系列的文章目錄如下(點(diǎn)擊鏈接可轉(zhuǎn)到文章):
21、C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理
22、C# Modbus通信從入門到精通(22)——Modbus TCP(0x01功能碼)
23、C# Modbus通信從入門到精通(23)——Modbus TCP(0x02功能碼)
24、C# Modbus通信從入門到精通(24)——Modbus TCP(0x03功能碼)
25、C# Modbus通信從入門到精通(25)——Modbus TCP(0x04功能碼)
26、C# Modbus通信從入門到精通(26)——Modbus TCP(0x05功能碼)
27、C# Modbus通信從入門到精通(27)——Modbus TCP(0x06功能碼)
28、C# Modbus通信從入門到精通(28)——Modbus TCP(0x0F功能碼)
29、C# Modbus通信從入門到精通(29)——Modbus TCP(0x10功能碼)文章來源地址http://www.zghlxwxcb.cn/news/detail-619579.html
到了這里,關(guān)于手把手教你從入門到精通C# Modbus通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!