LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

上位機(jī)和工控必備!用.NET快速搞定Modbus通信的方法

freeflydom
2024年5月30日 15:54 本文熱度 947

modbus通信在當(dāng)前的工業(yè)領(lǐng)域、制造業(yè)自動(dòng)化以及各類控制系統(tǒng)內(nèi),都屬于繞不開的話題。接下來介紹一個(gè)可以簡(jiǎn)單快速實(shí)現(xiàn)modbus通信讀寫的方式,供參考。


安裝nuget包:Wesky.Net.OpenTools 

使用 1.0.8或以上版本。支持.net framework 4.6以上,以及所有.net core以及以上所有.net環(huán)境項(xiàng)目引用。


開發(fā)一個(gè)簡(jiǎn)單的Winform界面,用來測(cè)試使用。如需該winform的demo,可以在公眾號(hào)【Dotnet Dancer】后臺(tái),回復(fù) modbus 即可獲取。

通信連接之前,可能存在多個(gè)客戶端。可以寫一個(gè)modbus客戶端的靜態(tài)數(shù)組存儲(chǔ)。例如有五個(gè)客戶端:

連接操作解析:假設(shè)有5個(gè)連接,此處都使用同一個(gè)服務(wù)端地址,實(shí)際情況請(qǐng)根據(jù)自己需要進(jìn)行調(diào)整。連接后的客戶端,存儲(chǔ)到靜態(tài)變量里面?zhèn)溆茫@樣可以自己根據(jù)modbus連接序號(hào),來操作不同連接進(jìn)行通信。

讀取測(cè)試。

例如連接的第一個(gè)客戶端讀取bool類型的值。說明:IModbusReadWriteService接口如果你是使用依賴注入的形式,可以把它注入進(jìn)來使用。此處沒有使用依賴注入,則直接實(shí)例化出來使用。

IModbusReadWriteService接口一共提供了以下幾種方法。其中,讀取類型除了字符串以外,默認(rèn)都是支持讀取批量數(shù)據(jù),而不是只讀取一個(gè)。寫入除了bool類型(線圈)和字符串,其他都支持批量寫入。

例如第二個(gè)連接客戶端,用來讀取short類型數(shù)據(jù)(C# 的short類型,而不是PLC的short類型,某些plc對(duì)short的定義不太一樣,請(qǐng)?zhí)崆白隽私?

其他以此類推,都是實(shí)例化后的讀寫對(duì)象,使用讀取不同的函數(shù)來實(shí)現(xiàn)不同的寫入數(shù)據(jù)類型的效果。例如下面示例:ReadInt32代表讀取Int32類型的數(shù)據(jù)。參數(shù)里面,address是設(shè)備地址,或者PLC的寄存器地址等;length是讀取的長(zhǎng)度,長(zhǎng)度單位為byte的長(zhǎng)度,而不是地址個(gè)數(shù)。第三個(gè)參數(shù),里面包括了modbus客戶端信息,包括socket客戶端、連接配置信息等。

IModbusReadWriteService rwService = new ModbusReadWriteService();

var result = rwService.ReadInt32(address, length, modbusTcpClients[2]);


客戶端參數(shù)實(shí)體類如下。MessageCode是消息碼頭部,如果是同一個(gè)PLC或者服務(wù)端,客戶端連接該服務(wù)端進(jìn)行讀寫消息時(shí)候,必須不一樣,否則會(huì)導(dǎo)致modbus服務(wù)端不知道是誰請(qǐng)求的。這個(gè)也可以當(dāng)做是唯一標(biāo)識(shí)符,modbus服務(wù)端用來識(shí)別是哪個(gè)客戶端發(fā)的消息的。

如果想了解modbus的一些細(xì)節(jié),可以參考我之前的文章《Modbus TCP協(xié)議解析、仿真環(huán)境以及基于.NET實(shí)現(xiàn)基礎(chǔ)通信》,該文章講解了協(xié)議規(guī)則、通信上的避坑說明、仿真環(huán)境使用,以及bool線圈的讀寫操作。鏈接地址:

https://mp.weixin.qq.com/s/VLlwYCaxwqyhv2Os0hPS5g

寫入操作。寫入線圈操作:

寫入操作,方法為Write開頭,后面接寫入什么類型的值。第一個(gè)參數(shù)是寫入地址,第二個(gè)參數(shù)是寫入的值,第三個(gè)參數(shù)代表傳入連接的客戶端。

例如寫入,寫入支持批量寫入,傳入對(duì)應(yīng)類型的數(shù)組,地址提供第一個(gè)地址即可,批量寫入會(huì)自動(dòng)在后面的地址累計(jì)寫入。以下是簡(jiǎn)單參考,例如循環(huán)里面寫入數(shù)據(jù)每次累加1,然后傳入方法里面進(jìn)行寫入。

如果只寫入一個(gè),那就傳一個(gè)數(shù)組元素即可:

使用以上方式,測(cè)試一款使用modbus協(xié)議的某品牌系列PLC期間的讀寫效率日志,供參考:




轉(zhuǎn)自微信公眾號(hào)Dotnet Dancer



該文章在 2024/5/30 15:54:22 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲国产最新AV首片 | 日本女v片一区二区 | 中文字字幕在线中文字在线看 | 日本三级香港三级a视频在线 | 天天噜天天视频在线高清 | 亚洲人成网线在线播放va |