西門子S7-1200 PLC系列由于其設(shè)計(jì)緊湊、成本低廉、穩(wěn)定性好且編程簡(jiǎn)便,被中小型自動(dòng)化系統(tǒng)中廣泛使用。而雷賽作為國產(chǎn)品牌中的佼佼者,其步進(jìn)驅(qū)動(dòng)產(chǎn)品性價(jià)比高,而被廣泛使用。本文就介紹西門子S7-1200 PLC與雷賽步進(jìn)驅(qū)動(dòng)器使用Modbus RTU通信的應(yīng)用。
關(guān)鍵詞:S7-1200;步進(jìn)驅(qū)動(dòng)器;西門子;雷賽;Modbus RTU
一 硬件
序號(hào) |
名稱 |
型號(hào) |
1 |
PLC |
1215c |
2 |
通信模塊 |
CM 1241 RS422_485 |
3 |
步進(jìn)驅(qū)動(dòng)器 |
DM2C RS522 |
4 |
步進(jìn)電機(jī) |
57CM23 |
5 |
串口通信線 |
RJ45轉(zhuǎn)485串口 |
6 |
網(wǎng)線 |
6類網(wǎng)線 |
7 |
軟件 |
博圖V16 |
二 功能描述
S7-1200 PLC做Modbus主站,步進(jìn)驅(qū)動(dòng)器做從站。PLC通過輪詢的方式讀取步進(jìn)驅(qū)動(dòng)器的當(dāng)前位置,并能實(shí)現(xiàn)點(diǎn)動(dòng)驅(qū)動(dòng)器功能。
三 功能實(shí)現(xiàn)
步驟1 步進(jìn)驅(qū)動(dòng)器參數(shù)設(shè)置
波特率:38400
奇偶校驗(yàn):None
數(shù)據(jù)位:8位
停止位:1
以上參數(shù)為默認(rèn),如需修改可查看相關(guān)手冊(cè)更改。
步驟2 組態(tài)Modbus RTU通信模塊
在硬件目錄里找到“通信模塊”→“點(diǎn)對(duì)點(diǎn)”→“CM1241(RS422/485)”,雙擊或拖拽此模塊至CPU左側(cè)即可,如下圖所示:
圖1 組態(tài)通信模塊
步驟3 啟用系統(tǒng)存儲(chǔ)器
在項(xiàng)目樹中選中PLC_1,左擊選擇“屬性”,在彈出窗口找到“系統(tǒng)和時(shí)鐘存儲(chǔ)器”,勾選啟用系統(tǒng)給存儲(chǔ)器字節(jié)。
圖2 啟用系統(tǒng)存儲(chǔ)器
步驟4 調(diào)用MB_COMM_LOAD指令
打開Main(OB1)組織塊,依次打開“指令”→“通信”→“通信處理器”→“Modbus” ,將MB_COMM_LOAD拖拽到程序段中,如圖所示:
圖3 調(diào)用MB_COMM_LOAD指令
在MB_COMM_LOAD指令中,觸發(fā)使用系統(tǒng)存儲(chǔ)器位FirstScan,在PLC啟動(dòng)時(shí)打開端口。通信端口的硬件標(biāo)識(shí)選擇CM422/485模塊,波特率使用38400,奇偶校驗(yàn)選擇0-無,背景數(shù)據(jù)塊使用MB_MASTER_DB。
步驟5 創(chuàng)建數(shù)據(jù)發(fā)送和接收緩存區(qū)
在項(xiàng)目樹中,依次選擇“添加新塊”→“DB數(shù)據(jù)塊”→“確定”,如圖所示:
圖4 添加DB數(shù)據(jù)塊
添加數(shù)據(jù)塊之后,需要去掉“優(yōu)化的塊訪問”選項(xiàng),并添加數(shù)據(jù)發(fā)送和接收緩存區(qū),如圖所示:
圖5 去掉“優(yōu)化的塊訪問”
圖6 添加DATA_PTR收緩存區(qū)
步驟6 調(diào)用MB_MASTER指令
打開Main(OB1)組織塊,依次打開“指令”→“通信”→“通信處理器”→“Modbus” ,將MB_MASTER拖拽到程序段中,如圖所示:
圖7 調(diào)用MB_MASTER指令
在該指令中,MB_ADDR從站地址選擇1,MODE模式選擇0,DATA_ADDR起始地址40003,DATA_LEN數(shù)據(jù)長(zhǎng)度為2,DATA_PTR數(shù)據(jù)指針為數(shù)據(jù)塊_1的Read_DATA。
由于西門子Modbus RTU通訊的特殊性,關(guān)于MODE、DATA_ADDR、DATA_LEN規(guī)定如下表所示:
步驟7 輪詢參數(shù)程序
由于Modbus RTU通訊本身的特性,在工業(yè)領(lǐng)域中我們使用輪詢的機(jī)制對(duì)Modbus從站進(jìn)行讀寫操作。具體如圖所示:
在這個(gè)輪詢的程序中,我們使用的是上一個(gè)參數(shù)的參數(shù)的完成或者是錯(cuò)誤信號(hào)作為下一個(gè)的啟動(dòng)信號(hào),這種方式,需要我們提前確定好通訊的框架,對(duì)一個(gè)參數(shù)執(zhí)行類似的操作。當(dāng)我們最后一個(gè)參數(shù)讀寫完成,則返回第一步進(jìn)行循環(huán)操作。
值得注意的是程序中,我們程序中使用的參數(shù)和地址需要各位查看相關(guān)的手冊(cè)靈活使用。
四 總結(jié)
此程序是西門子S7-1200與雷賽DM2C步進(jìn)驅(qū)動(dòng)器的Modbus RTU通訊的簡(jiǎn)單案例,為1200 PLC與第三方設(shè)備的Modbus RTU通訊提供了一種方法,對(duì)于步進(jìn)/伺服驅(qū)動(dòng)器、其它第三方儀表設(shè)備Modbus RTU通訊具有參考價(jià)值,對(duì)于多個(gè)從站的Modbus RTU通訊同樣具有參考意義。
由于篇幅有限和本人水平有限,難免有錯(cuò)誤和遺漏的地方,本文僅供用作參考學(xué)習(xí)使用。
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。