說下這個項目:
某揚水站的5臺機組的遠程控制,有5臺智能表,檢測5臺機組的工作電壓,工作電流,有功功率,功率因數等參數
還有5臺軟起的參數讀取,因為怕用485控制軟起不可靠,所以只讀取軟起的工作狀態,不知道做過的,有沒有知道,用modbus控制好不好用
言歸正傳
1.jpg (62.22 KB)
下載附件
2018-4-17 17:39 上傳
PLC那邊是母頭,這邊準備一個9針的公頭就可以了 3腳是A 8腳是B 2or5是地線,也就是內部的M端子
如果距離近,可以不接地線,有關這個地線怎么的說法很多,有的說可以不接,有的說接地是消除共模電壓,打過西門子技術,說是和設備地連一起
度娘了下,也有的說接地了反而不好的,現場實際,我是把所有的地線(注意不是屏蔽哦,是GND )都連一起,不知那種做法好
另外說下,短距離通訊,只要從設備支持,用高點的波特率,提高反應速度 西門子技術說:s7200只支持50m的通訊距離,再遠了要加中繼器
設備上就不說了,就A B GND
還啰嗦一句,從設備的鏈接不能用星型解法,是一個一個的串聯的,手牽手鏈接
下面是程序了
說說我的方法:
按照官網的例程,是采用的輪詢,在初始化后,啟動modbus讀寫,啟動后要做循環,就是操作完最后一個讀寫塊后,要重新啟動第一個讀寫塊
也就是說,讀MBUS_MSG這個模塊要一個一個讀,官網上說,不能同時執行2個MBUS_MSG讀寫,啟動MBUS_MSG后,第一個讀完的完成位是第二個MBUS_MSG啟動的條件
第二個MBUS_MSG是后一個的啟動條件,最后一個讀完后,再啟動第一個MBUS_MSG
具體做法看程序,我這里是讀的一個從站的2個地址,還有另一個從站的一個地址
在最開始調試的時候,可以用sm0.5這個位作為啟動條件,測試一個MBUS_MSG 測試硬件是否正常,用狀態表監控收到的數據
2.jpg (59.71 KB)
下載附件
2018-4-17 17:40 上傳
重點說說這個模塊
EN 使能位,這個是模塊執行的條件,也是模塊的啟動條件
Fisrt 模塊觸發位,上升沿啟動模塊通訊
Slave 從站地址,這個不用說了吧
RW 讀寫控制 0讀 1寫
Addr 從站寄存器地址 可以參考官網的說明,實際這里如果是寄存器操作 40001 400001好像都可以 注意你的設備地址,數據
40001 400001是首地址
Count 要讀寫的數據個數 這個剛開始很糾結,后來才知道的,新手是不是都糾結這個呀??????
這個是你要讀寫的數據的個數,特別提醒,這個是字的個數,不是字節的個數,在485協議里可以看看
Dataptr 數據指針,你要讀出的數據,和要寫會的數據都放在這里
Done 模塊讀寫完成位,也是下一個模塊的執行條件,當一個模塊讀寫完成后,盡快的把要采集的數據讀出
Error 錯誤標志位,在程序里用來檢測錯誤,和錯誤處理
3.jpg (65 KB)
下載附件
2018-4-17 17:40 上傳
程序說明:
因為還沒有調試完,暫時只讀了6個從站
首先是初始化modbus 然后讀第一個MBUS_MSG 然后讀第二個,讀完最后一個后,根據條件把數據導出
注意數據導出條件 讀完標志位上升沿導出,不加條件,讀的數據會竄站
讀完數據后,更改從站地址,繼續下個從站的讀寫,一直把所有的都讀完。然后,在讀首從站 ,從站地址在程序里控制
然后是數據刷新,和總線故障處理
S7200的modbus通訊例程.rar
(32.47 KB, 售價: 1 E幣)
2018-4-17 17:41 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|