zhengf1989
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 142 個(gè)
工控威望: 273 點(diǎn)
下載積分: 686 分
在線(xiàn)時(shí)間: 485(小時(shí))
注冊(cè)時(shí)間: 2012-11-28
最后登錄: 2024-09-18
查看zhengf1989的 主題 / 回貼
樓主  發(fā)表于: 2018-10-27 16:01
最近一直在研究通訊,突然感覺(jué)懂了一點(diǎn),寫(xiě)寫(xiě)自己對(duì)于modbus 通訊的體會(huì):
1.    經(jīng)常聽(tīng)說(shuō)的485,232,422,是指的是物理端口,modbus是通訊協(xié)議,也就是通訊的規(guī)則,就好象社會(huì)上有很多潛規(guī)則,服從這些規(guī)則才能混下去。
2.    modbus通訊分為主站和很多編了號(hào)的從站,例如主站對(duì)從站說(shuō),3號(hào)從站你家的第三個(gè)房間里住著誰(shuí)?話(huà)音剛落,1號(hào),2號(hào),4號(hào)從站心里想:反正沒(méi)有喊我,不關(guān)我的事,就通通裝          死,3號(hào)從站聽(tīng)到后,回答說(shuō),我家的第三個(gè)房間里住著一條狗,這樣一個(gè)通訊過(guò)程就完成了,跟主站讀取從站某個(gè)寄存器的內(nèi)容很類(lèi)似。如果是廣播命令,就是每個(gè)從站都要聽(tīng)著,不需要作出回答。
3.   通訊主要是通過(guò) 報(bào)文發(fā)送出去執(zhí)行的。 地址+功能碼。。。。。。西門(mén)子plc中有通訊庫(kù),三菱臺(tái)達(dá)plc有通訊的方便指令,我通過(guò)串口調(diào)試工具測(cè)試,最終還是發(fā)出來(lái)標(biāo)準(zhǔn)的 報(bào)文,只是方便大家使用的。通訊的具體地址要看每種設(shè)備原件的廠家是怎樣定義的,會(huì)應(yīng)用就可以了。
4.   crc校驗(yàn)就是為了防止在通訊過(guò)程中會(huì)出現(xiàn)數(shù)據(jù)的丟失或者出錯(cuò)。就好象在生活中,甲對(duì)乙說(shuō):我還你5個(gè)硬幣你數(shù)一數(shù),乙收到錢(qián)后數(shù)了一下硬幣,只有四個(gè),乙就說(shuō)你給的不對(duì)。
如果有能力用plc自己寫(xiě)個(gè)自由口通訊的塊,或者單片機(jī)開(kāi)發(fā)個(gè)通訊那就是大神了。
zhangqi_1234
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 342 個(gè)
工控威望: 493 點(diǎn)
下載積分: 4015 分
在線(xiàn)時(shí)間: 250(小時(shí))
注冊(cè)時(shí)間: 2013-03-22
最后登錄: 2024-11-04
查看zhangqi_1234的 主題 / 回貼
1樓  發(fā)表于: 2018-10-27 17:55
你的理解正確、形象。MODBUS通信程序不是你想像得那樣復(fù)雜。PLC的梯形圖程序,單片機(jī)的C語(yǔ)言程序、上位機(jī)的C#或VB程序等等都能實(shí)現(xiàn)。我個(gè)人認(rèn)為,最簡(jiǎn)單的MODUBS程序是使用西門(mén)子的庫(kù),根本不用考慮CRC校驗(yàn)碼,以及報(bào)文的排列順序。最復(fù)雜的MODBUS程序是用C#或VB編寫(xiě)的程序(不考慮別人編寫(xiě)好的現(xiàn)成的方法)。另外,MODBUS-TCP的通信速率優(yōu)于MODBUS-RTU。MODBUS-ASCII通信用得很少,可以不考慮。
zhengf1989
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 142 個(gè)
工控威望: 273 點(diǎn)
下載積分: 686 分
在線(xiàn)時(shí)間: 485(小時(shí))
注冊(cè)時(shí)間: 2012-11-28
最后登錄: 2024-09-18
查看zhengf1989的 主題 / 回貼
2樓  發(fā)表于: 2018-10-27 18:54
引用
引用第1樓zhangqi_1234于2018-10-27 17:55發(fā)表的  :
你的理解正確、形象。MODBUS通信程序不是你想像得那樣復(fù)雜。PLC的梯形圖程序,單片機(jī)的C語(yǔ)言程序、上位機(jī)的C#或VB程序等等都能實(shí)現(xiàn)。我個(gè)人認(rèn)為,最簡(jiǎn)單的MODUBS程序是使用西門(mén)子的庫(kù),根本不用考慮CRC校驗(yàn)碼,以及報(bào)文的排列順序。最復(fù)雜的MODBUS程序是用C#或VB編寫(xiě)的程序(不考慮別人編寫(xiě)好的現(xiàn)成的方法)。另外,MODBUS-TCP的通信速率優(yōu)于MODBUS-RTU。MODBUS-ASCII通信用得很少,可以不考慮。

現(xiàn)在網(wǎng)上有很多的串口調(diào)試工具,CRC計(jì)算器,調(diào)試起來(lái)方便多了?丛骷氖褂檬謨(cè),找modbus通訊地址很關(guān)鍵。
tingfenghu
級(jí)別: 工控俠客

精華主題: 0
發(fā)帖數(shù)量: 2844 個(gè)
工控威望: 3616 點(diǎn)
下載積分: 3515 分
在線(xiàn)時(shí)間: 3798(小時(shí))
注冊(cè)時(shí)間: 2007-11-04
最后登錄: 2024-11-10
查看tingfenghu的 主題 / 回貼
3樓  發(fā)表于: 2018-10-28 12:14
單片機(jī)采用查詢(xún)或者中斷方式,
PLC就更加簡(jiǎn)單,
ASCII轉(zhuǎn)換成ASCII再發(fā)送,校驗(yàn)加起來(lái)丟棄高位就可以。
CRC也沒(méi)有多復(fù)雜,無(wú)非就邏輯運(yùn)算加移位。

單片機(jī)資源比較緊張時(shí),
有人用普通端口模擬串口使用。
二手PLC,觸摸屏,伺服驅(qū)動(dòng),各類(lèi)氣動(dòng)設(shè)備
http://shop58129605.taobao.com/
stackdog
級(jí)別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 472 個(gè)
工控威望: 8656 點(diǎn)
下載積分: 7421 分
在線(xiàn)時(shí)間: 452(小時(shí))
注冊(cè)時(shí)間: 2015-10-01
最后登錄: 2024-11-02
查看stackdog的 主題 / 回貼
4樓  發(fā)表于: 2018-10-30 10:40
受教了
受不了了
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 599 個(gè)
工控威望: 727 點(diǎn)
下載積分: 1673 分
在線(xiàn)時(shí)間: 397(小時(shí))
注冊(cè)時(shí)間: 2015-06-17
最后登錄: 2024-11-07
查看受不了了的 主題 / 回貼
5樓  發(fā)表于: 2018-10-30 11:05
單片機(jī)寫(xiě)MODBUS-RTU其實(shí)很簡(jiǎn)單的,現(xiàn)在的工具這么多,隨便找個(gè)觸摸屏,設(shè)置到MODBUS-RTU模式,用電腦去抓通訊數(shù)據(jù),看別人怎么寫(xiě)的,依葫蘆畫(huà)瓢照著標(biāo)準(zhǔn)協(xié)議很容易寫(xiě)出來(lái),不說(shuō)半天,兩三天應(yīng)該很容易搞定的。我七八年前寫(xiě)的通訊部分,一直就沒(méi)修改過(guò),常見(jiàn)品牌的觸摸屏連上去,比絕大部分PLC反應(yīng)快太多了
zhengf1989
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 142 個(gè)
工控威望: 273 點(diǎn)
下載積分: 686 分
在線(xiàn)時(shí)間: 485(小時(shí))
注冊(cè)時(shí)間: 2012-11-28
最后登錄: 2024-09-18
查看zhengf1989的 主題 / 回貼
6樓  發(fā)表于: 2018-10-30 21:35
技術(shù)這個(gè)東西就是搞會(huì)了就感覺(jué)簡(jiǎn)單,搞不懂就感覺(jué)很難,正所謂“聞道有先后,術(shù)業(yè)有專(zhuān)攻”