




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、其實很早就想寫寫關(guān)于 Modbus的開發(fā)歷程,但牽扯工程較多,不同語言版 本較多,頭緒繁雜,一時不知從何寫起.最近的醫(yī)療工程的通信局部,重新調(diào)整為Modbus協(xié)議,并且內(nèi)容幾乎涵蓋了Modbus的方方面面Rtu/Tcp, Slave/Client 相關(guān)開發(fā),所以目為綱,把Modbus相關(guān)更堅決了寫Modbus信心,今天忙里偷閑,以時間為序,以項 開發(fā)經(jīng)歷一一道來.、焦?fàn)t四大車通信系統(tǒng)20222022焦?fàn)t四大機(jī)車自劫化系統(tǒng)組成硬件平臺:西門子 PLC200操作系統(tǒng):Win2000/XP1、 主PLC與PC機(jī)的通信最早主PLC與PC機(jī)通信,采用自定義的協(xié)議,主 PLC中做了一個類似木 馬的程序 來
2、響應(yīng)PC機(jī)下發(fā)的讀寫V變M區(qū)的指令.這樣就完成了 PLC的讀寫 操作.后來西門子PLC的開發(fā)軟件進(jìn)行了升級,提供了 Modbus Rtu Slave 庫,這 樣只要上 位機(jī)實現(xiàn)Modbus Rtu Client就可以宜接讀寫 PLC變M區(qū)了,之后用 VB開發(fā)了 Modbus相應(yīng)的組件,這樣很長一段內(nèi),該系統(tǒng) PC與主PLC就采用了 Modbus的通信.前兩年開發(fā)組態(tài)軟件,所以西門子 PPI協(xié)議順禮成旗也就知道了,當(dāng)然 PC與西門子 采用PPI協(xié)議是最棒的,由于 PLC中不需要寫一行代碼,也無需占用 程序和變M空間.所 以之后Modbus被放棄了,轉(zhuǎn)而采用了 PPI通信協(xié)議.2、主PLC與從PL
3、C的通信無線電臺通信剛開始主PLC與從PLC采用自定義協(xié)議,最早在首鋼做實驗的時候,只有 四個從 站,并且個數(shù)是唯一確定的,所以自定義協(xié)議用的很好,效率也很高;但是工程推廣后,在其它現(xiàn)場有 7個從站的,也有8個,9個的,不確定,并且從 站要分 組,此外通信傳遞內(nèi)容也更多了,不光位置信息、推焦電流、推焦、平煤 信號、連鎖信號 都要傳遞,最后選擇了Modbus協(xié)議.但是使用Modbus有幾個問題,第一西門子提供的 Modbus Slave 不支持播送 命 令,第二只提供了 Modbus Slave 程序,從PLC沒有什么問題,但是主 PLC卻沒有 Modbus Client 程序.對第一個問題,沒
4、有方法,不支持就算了,只要一個個來寫.注:后來的莫一天,西門子 MicroWIN 開發(fā)環(huán)境忽然出bug 了,竟然看到了局部的西門子 Modbus Slave源碼,我在此根底上實現(xiàn)了可支持播送的Modbus Slave 代碼.對第二個問題,只好老老實實的用西門子PLC語句表命令開發(fā) ModbusClient ?只要實現(xiàn)3號和16號命令就可以了,還好, Modbus Client 本身協(xié)議不 難,難在 PLC的運行機(jī)制和PC程序不同,PLC是大循環(huán)掃描的,等待數(shù)據(jù)返 回時,不能宜接等 待,否那么運行看門狗會超時,總之克服重重困難,終于開發(fā)出穩(wěn)定可靠的Modbus Client程序,宜到現(xiàn)在,現(xiàn)場的
5、 PLC通信仍采用該方式.附記:有人會問,為什么沒有采用PPI協(xié)議,PLC本身就支持主和從協(xié)議啊?但太讓人遺憾的是,PPI協(xié)議通信節(jié)奏太快,目前還沒有無線電臺普通工業(yè)用可以正常實現(xiàn)PPI協(xié)議通信.該焦?fàn)t四大機(jī)車相關(guān)介紹,可以參見我以前寫的文革: :/ g ongkon g /tech/example/detail_1.asp?id=4055 相關(guān)專利 :/ cpsfu /C10B/2022/1456635.shtml我開發(fā)的Modbus控件介紹 :/blog.csd n.n et/yefa nqiu/archive/2022/11/20/533315.aspx我開發(fā)的PPI控件介紹 :/blo
6、g.csd n.n et/yefa nqiu/archive/2022/11/18/532256.aspx二、AB PLC 擴(kuò)展模塊 ProSoft MVI56通信模塊2022年11月在做濟(jì)鋼四車工程的時候,由于 PLC采用的是AB RsLogix5000 系列的PLC,上面的 端口不支持自由口編程,無法讀取我們定位標(biāo)尺的數(shù)據(jù),所以購置了與其合作的ProSoft公司專門生產(chǎn)第三方模塊.ProSoft生產(chǎn)的模塊有很多 種,由于沒有經(jīng)驗,很不幸,我們 選擇的是MVI56的模塊,而這個模塊卻是全部自由編程,不含有任何默認(rèn)協(xié)議.該模塊典型的就是一個嵌入式系統(tǒng),相當(dāng)一個帶三個串口的386的電腦,操作系統(tǒng)
7、為小型的DOS系統(tǒng)TINY DOS ,用C + +為其開發(fā)程序.在開發(fā)完我們的紅外定位標(biāo)尺的讀取程序后,順便也開發(fā)一個Modbus Rtu Client 的程序,這樣AB的PLC可以宜接和Modbus的設(shè)備進(jìn)行通信了. :/blog.csd n.n et/yefa nqiu/archive/2022/11/20/533440.aspx、隧道廣告影像系統(tǒng)20222022 主 站光柱4眄總建光 if ( TCF/IT 隧道廣告影像系統(tǒng)的通信系統(tǒng),采用12個通信子站(NetBoxll ),剛開始并沒有任何Modbus協(xié)議,宜到有一天,客尸提出要限制節(jié)目播放的次序、次數(shù) 和播放時 間,最后決定在地鐵隧
8、道里,添加一個西門子PLC200系統(tǒng),由于設(shè)備早已安裝完成,不可能為 PLC布一個五六百米的通信線路,只好利用原通信線路,而最上層的通信為TCP, NetBoxII下一層才是485總線,所以NetBoxll當(dāng)仁不讓的成了通信橋 的設(shè)備.但是,問題來了,上位機(jī) PC如何通過TCP與基于485的PLC進(jìn)行通信?最后,決定西門子 PLC中安裝Modbus Rtu Slave 程序,實現(xiàn)一個標(biāo)準(zhǔn) Modbus 設(shè) 備,NetBoxll實現(xiàn) Modbus Tcp 到Modbus Rtu 的協(xié)議轉(zhuǎn)換.也就是說,在 NetBoxII中 實現(xiàn) Modbus Tcp Slave 和 Modbus Rtu Cli
9、ent 代碼.這樣用BC3.0 , DOS平臺下實現(xiàn)了 Modbus Tcp/Rtu協(xié)議轉(zhuǎn)換功能,實現(xiàn)了 上位機(jī)PC與PLC的通信的要求.隧道廣告的相關(guān)介紹,可以參見我以前寫的文革: :/blog.csd n.n et/yefa nqiu/archive/2022/08/16/1074382.aspx四、嵌入式組態(tài)系統(tǒng)(2022年1月至今)所以Modbus協(xié)議開發(fā)組態(tài)系統(tǒng),自然而然的要實現(xiàn)各種通信協(xié)議的驅(qū)動,的開發(fā)不在話下.分別用EVC和VC實現(xiàn)了 Modbus Rtu/Ascll/Tcp 的Client通信協(xié)議驅(qū)動.嵌入式組態(tài)系統(tǒng)的相關(guān)介紹,可以參見我以前寫的文革: :/blog.csd n
10、.n et/yefa nqiu/archive/2022/11/29/1419479.aspx :/blog.csd n.n et/yefa nqiu/archive/2022/11/19/1396827.aspx :/blog.csd n.n et/yefa nqiu/archive/2022/10/24/1348840.aspx五、LED影像系統(tǒng)2022年12月至今目前關(guān)于通信這塊代碼還沒有做,不過已決定用C#開發(fā)Modbus Rtu Client程序和單片機(jī)開發(fā)的硬件設(shè)備進(jìn)行通信單片機(jī)中實現(xiàn)Modbus Rtu Slave,這部 分有專門的硬件工程師實現(xiàn),通過 Modbus的通信實現(xiàn)LE
11、D大屏各種參數(shù)的 配置.LED系統(tǒng)相關(guān)介紹 :/blog.csd n.n et/yefa nqiu/archive/2022/05/28/1627782.aspx六、醫(yī)療系統(tǒng)2022年6月至今目前這局部正在做,除紅外通信板的Modbus Rtu Slave用匯編實現(xiàn)外,其它 的都用C#語言實現(xiàn).七、Modbus Rtu通信協(xié)議3,16號命令1、讀取保持存放器單個和多個,以字為最小單位發(fā)送命令幀:設(shè)備地址功能碼地址H地址L數(shù)據(jù)量H數(shù)據(jù)量LCRC HCRC LAddr03 HHoldStartDataNumCRC高位CRC低位幀長度:8個字節(jié)設(shè)備地址:1? 247功能碼:3H數(shù)據(jù)地址:0? 655
12、35具體范圍與相關(guān)設(shè)備有關(guān)數(shù)1? 65535 2的16次具體范圍與相關(guān)設(shè)備有關(guān)校驗碼:CRC1校驗返回命令幀:設(shè)備地址功能碼數(shù)據(jù)量數(shù)據(jù)1數(shù)據(jù)NCRC HCRC LAddr13 H返回數(shù)據(jù)白字節(jié)數(shù)NData (1 ? N )CRC高位CRC低位幀長度:5+ N個字節(jié)設(shè)備地址:1? 247功能碼:3H數(shù)據(jù)M:實際的讀取數(shù)據(jù)數(shù)Mn = DataNum 1數(shù)據(jù):返回數(shù)據(jù)的意義a= HoldStartVW a (VB a)VWa (VB a+ 1)VW a+n (VB a+n )VWa+n (VB a+n + 1)Data (1)Data(2)Data(N-1)Data(N)校驗碼:CRC1校驗命令有誤
13、:1) 沒有任何返回2) 返回異議幀設(shè)備地址功能碼錯誤信息CRC HCRC LAddr183 H一個字節(jié)的錯誤信息CRC高位CRC低位2、設(shè)置保持存放器(多個,以字為最小單位)發(fā)送命令幀:設(shè)備地址功能碼地址H地址L數(shù)據(jù)量H數(shù)據(jù)量L數(shù)據(jù)字節(jié)數(shù)具體數(shù)據(jù)CRC HCRC LAddr010 HHoldStartDataNumbytN1 ? bytNCRC高位CRC低位幀長度:9+ bytN個字節(jié)設(shè)備地址:1? 247功能碼:10H數(shù)據(jù)地址:0? 65535具體范圍與相關(guān)設(shè)備有關(guān) 數(shù)1? 122 具體范圍與相關(guān)設(shè)備有關(guān)字節(jié)數(shù):設(shè)置的字節(jié)個數(shù)bytN= DataNum x 2數(shù) 據(jù):具體的字節(jié)數(shù)據(jù)校驗碼:CRC1校驗 返回命令幀:設(shè)備地址功能碼地址H地址L數(shù)據(jù)量H數(shù)據(jù)量LCRC HCRC LAddr110 HHoldStartDataNumCRC高位CRC低位幀長度:8個字節(jié)設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能制造企業(yè)生產(chǎn)管理人才招聘與智能制造協(xié)議
- 二零二五年度立體停車設(shè)備研發(fā)與委托運營管理合同
- 二零二五年度航空航天就業(yè)勞動合同
- 二零二五年度叉車安全風(fēng)險評估與整改合同
- 圍城深度解讀與評析征文
- 新產(chǎn)品市場推廣策略及執(zhí)行方案
- 工業(yè)自動化控制系統(tǒng)設(shè)計與維護(hù)服務(wù)協(xié)議
- 《天文觀測與天體物理學(xué)習(xí)計劃》
- 行業(yè)市場深度調(diào)研分析
- 互聯(lián)網(wǎng)+三農(nóng)營銷模式創(chuàng)新案例集
- 七年級歷史下冊 第一單元 隋唐時期繁榮與開放的時代 第1課 隋朝的統(tǒng)一與滅亡說課稿1 新人教版
- 2025年春人教版九年級英語下冊 2025年中考模擬測試卷
- DB4117T 245.1-2019 主要林業(yè)有害生物調(diào)查與防控技術(shù)規(guī)范 第1部分 總則
- 加油站事故隱患排查清單(主要負(fù)責(zé)人級)
- 《醫(yī)療事故處理條例》解讀
- 四年級下冊綜合實踐活動課件- 用身體說話|長春版
- 廣西版五年級下冊美術(shù)全冊教案【完整版】
- 農(nóng)村勞動力資源調(diào)查工作方案
- 《中國人民站起來了》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修上冊
- 3輸變電工程施工質(zhì)量驗收統(tǒng)一表式(變電工程電氣專業(yè))-2024年版
- 新人教版一年級數(shù)學(xué)下冊全冊教案(表格式)
評論
0/150
提交評論