主要軟體:labview modules>>labview dsc module
主要軟體版本:2011 sp1
主要軟體修正版本:n/a
次要軟體:driver software>>comedi drivers
問題:我有幾台自動化裝置,通過modbus通訊的,我可以用labview來做上位機程式控制嗎?
解答:這是完全可以的,本篇文件主要用於對dsc模組中的modbus的使用做乙個詳述,以plc為例來說明基於modbus協議怎樣與自動化工業現場中的各類裝置交換資料,從而簡化和擴大labview的使用。
1. modbus通訊協議詳述
和485-a;tcp/ip上的標準rfc793和rfc791。
modbus協議以簡單而雅觀著稱,是乙個請求/應答協議,並且提供功能碼規定的服務。乙個通用的幀結構如下圖所示:
那麼對於使用modbus來進行通訊和傳遞資料的工程師來說,就關注幾個部分即可,位址域、功能碼和資料。
先說資料
再來看看功能碼
至於位址,則需要根據具體裝置的說明書或者廠家定義來確定,
以西門子公司的plc為例。
以某公司全自動溫控箱為例
我們清楚了通用的資料幀之後,就可以進行一次簡單的modbus通訊了,因為客戶機/伺服器的機制,在乙個正確接收的通訊過程,不出現與請求功能相關的差錯,伺服器就將向客戶機相應資料域包括請求的資料本身。
至此,我已經將厚厚一本的modbus規範和標準抽絲剝繭,對於我們應用工程師來說,了解了以上內容就可以開始應用了。
2. ni dsc模組中的modbus特點
ni的labview從8.0開始引入了本地modbustcp和modbusserial對任何乙太網或串列埠的支援,通過dsc模組,採用視窗配置的方式就能建立modbus的伺服器或者客戶端,並能指定不同的暫存器用於讀寫。如果客戶使用的較早版本的labview或者沒有安裝dsc模組,依然可以使用labview的modbus庫在任意乙太網或者串列埠上建立modbus主從裝置應用。
3. 連線例項(以西門子plc s7-200 cpu221為例)
1) 先為plc正確連線電源,設定好通訊引數,並燒錄程式
2) 在labview中建立好乙個modbus的主裝置
進行相應的配置,需要關注的幾個引數為模式(serial或者tcp/ip)、位址(根據裝置手冊)、報文格式(rtu或者ascii)這幾個。
3) 建立相應的變數,根據本文之前的西門子plc的位址列表,000001就代表了plc中的q0.0,400001就代表了vb0,但是我們可以看到有些差別,中間會多出乙個零,原因可以參考
4) 做完這些設定就可以開始程式設計了,編寫乙個簡單的測試程式來監控和改寫plc中q0.0、q0.1以及vb0和vb1的值,可以正常讀寫和監測。
附件:
Snort預處理器之 Modbus
modbus 預處理器是乙個對 modbus 協議進行解碼的 snort 模組。它還提供了訪問某些協議欄位的規則選項。這允許使用者為 modbus 包編寫規則,而不用使用一系列 content 和 byte test 選項對協議進行解碼。modbus 是一種在 scada 網路中使用的協議。如果您的...
RS485通訊和Modbus通訊協議彙總
rs 485上的軟體層協議modbus主要依賴於主從模式。主從模式是指在半雙工通訊方式上,2個或者2個以上的裝置組成的通訊系統中 特別提醒,rs 485硬體協議決定,對於每乙個位元組資料的傳輸是先發高位,再發地位,所以假設陣列u8型陣列revarr 2 存放著接收到的資料,那麼接收端解析資料應該是u...
模組之shutil模組模組詳解
shutil模組是高階的 檔案 資料夾 壓縮包 處理模組 shutil.copyfileobj fsrc,fdst length 將檔案內容拷貝到另乙個檔案中 shutil.copyfile src,dst 拷貝檔案 shutil.copymode src,dst 僅拷貝許可權。內容 組 使用者均不...