通訊材料:
1)、PLC2臺,分別是200SMART 的CR60和SR20;
2)、2個DP插頭(6ES7972-0BX12-0XA0)
3)、連接導線若干(plc電源及通訊)
驗證內容:
令:CR60 PLC為主站,發(fā)送PLC系統(tǒng)時鐘(8個字節(jié)的信息)給SR20從站;SR20從站發(fā)送一個雙字的循環(huán)移位數(shù)據(jù)給主站,并由通訊數(shù)據(jù)VD100接收輸出到QD0。
主站程序:
在驗證過程中曾經出現(xiàn)一個錯誤,使MSG指令始終顯示為6,表示從站無響應。我驗證時,由于連接2臺plc之間的3+、8-沒有確認,造成接線錯誤,使MSG的error錯誤信息為6,檢查后找到原因,重新接線后仍然報警6。最后檢查為控制程序不完整,主要原因是沒有給MB0一個初始化操作,造成錯誤值沒有得到有效的刷新。于是,在程序段1中加入初始化操作得到解決。
主站MSG指令主要理解Addr地址的應用,下面有描述。
從站程序:從站通訊地址設置為1#
從站自VB31開始為讀取主站VB11開始的8個字節(jié)主站系統(tǒng)時鐘數(shù)據(jù),指定VB31的起始地址是由Addr地址40011定義的,從站循環(huán)指令VD11運行結果,將由Mbus_init的Holdstart定義的起始地址發(fā)送和接收。
編寫小結:
自簡而深進行編寫Modbus RTU通訊程序,相對從站通訊程序比較簡單,僅僅只是指定通訊種類由
Mbus_init
管腳指定maxIQ/maxAI/maxHOLD/Holdstart定義,其它管腳根據(jù)主站定義匹配進行,相對主站需要根據(jù)從站地址偏移量來確定。
通訊數(shù)據(jù):
Modbus通訊程序相對的難點是通訊映射的地址關系。
主站讀取從站的數(shù)據(jù),起始地址是根據(jù)從站Holdstart管腳定義的起始地址開始算,而不是指從站的V區(qū)物理地址。在驗證程序中,從站的Mbus_init起始地址為VB11,那么,主站MSG指令的Addr 40001,應該是指從站的VB11地址。
同理,從站讀取主站系統(tǒng)時鐘,主站的MSG指令的Addr 40011,對應到從站的地址相當于偏移了10個字(偏移量10word + 11byte = 31byte) ,即為VB31開始的8個字節(jié)中存放,Modbus通訊地址計算是40001開始的。
審核編輯:劉清
-
plc
+關注
關注
5010文章
13271瀏覽量
463053 -
西門子
+關注
關注
94文章
3034瀏覽量
115779 -
S7-200
+關注
關注
13文章
408瀏覽量
50380 -
RTU
+關注
關注
0文章
412瀏覽量
28668 -
modbus通訊
+關注
關注
0文章
13瀏覽量
1700
原文標題:兩臺西門子S7-200 SMART PLC如何通過Modbus RTU協(xié)議進行通訊?
文章出處:【微信號:PLC與自控設備,微信公眾號:PLC與自控設備】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論