西門(mén)子S7-200CN擴(kuò)展模塊6ES7277-0AA22-0XA0西門(mén)子S7-200CN擴(kuò)展模塊6ES7277-0AA22-0XA0
s7200 PLC MOdbus rtu通訊基礎(chǔ)
1.Modbus RTU主站指令庫(kù)的功能是通過(guò)在用戶程序中調(diào)用預(yù)先編好的程序功能塊實(shí)現(xiàn)的,該庫(kù)對(duì)Port0和Port1有效。該指令庫(kù)將設(shè)置通信口工作在自由口模式下。
2.Modbus RTU主站指令庫(kù)使用了一些用戶中斷功能,編其他程序時(shí)不能在用戶程序中禁止中斷。
3.Modbus RTU主站庫(kù)對(duì)CPU的版本有要求。CPU的版本必須為2.00或者2.01(即訂貨號(hào)為6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200 CPU不支持。
使用Modbus RTU主站指令庫(kù),可以讀寫(xiě)Modbus RTU從站的數(shù)字量、模擬量I/O以及保持寄存器。
要使用Modbus RTU主站指令庫(kù),須遵循下列步驟:
安裝西門(mén)子標(biāo)準(zhǔn)指令庫(kù);
按照要求編寫(xiě)用戶程序調(diào)用 Modubs RTU 主站指令庫(kù) ;
二、主站和從站功能塊
1、主站控制功能塊和數(shù)據(jù)讀寫(xiě)功能塊可以參見(jiàn)幫助文件,寫(xiě)的非常詳細(xì)!
三、注意及常見(jiàn)問(wèn)題
1、MODBUS通訊是一種輪詢的方式,即一次只能讀取一個(gè)站的數(shù)據(jù)。所以在觸發(fā)讀取數(shù)據(jù)的時(shí)候要用脈沖觸發(fā),而非長(zhǎng)期為1去觸發(fā)。
2、在讀取多個(gè)從站的時(shí)候,要注意每個(gè)站的輪詢,輪詢程序沒(méi)做好,將導(dǎo)致通訊超時(shí)得錯(cuò)誤,從而無(wú)法讀取數(shù)據(jù)。
3、參數(shù)設(shè)計(jì)的時(shí)候,奇偶校驗(yàn),通訊速率得一致,站地址不能有沖突。
4、主站與從站的數(shù)據(jù)區(qū)必須一致。
5、詳細(xì)故障可以通過(guò)程序塊得故障代碼查詢。
S7-200 PLC比較300 plc實(shí)現(xiàn)Modbus的優(yōu)點(diǎn):
雖然s7-200在實(shí)現(xiàn)modbus通訊時(shí)使用的是s7-200的自由口功能,借口采用rs485,或通過(guò)適配器轉(zhuǎn)換成rs232接口類型不如cp341的豐富,但其實(shí)現(xiàn)modbus功能上無(wú)需組態(tài)和額外購(gòu)買(mǎi)組件,所以實(shí)現(xiàn)起來(lái)既簡(jiǎn)單而且成本低廉,在比較低端的場(chǎng)合是不錯(cuò)的選擇.
S7-300plc+cp341的優(yōu)點(diǎn):
1.由于cp341可以安裝在etm200站上通過(guò)profibus方式與主站相通,此方案適合于較大型系統(tǒng)進(jìn)行modbus通信設(shè)計(jì)和改造.
2.cp341的接口類型多,包含rs232,rs422/rs485.
從MODBUS RTU庫(kù)中調(diào)用MODBUS子程序后需要給其分配庫(kù)存儲(chǔ)區(qū)。即選擇項(xiàng)目目錄樹(shù)下的“程序塊"->“庫(kù)",點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“庫(kù)存儲(chǔ)區(qū)(M)...",在彈出的對(duì)話框中分配庫(kù)存儲(chǔ)區(qū)地址,此地址不要與其他程序使用的存儲(chǔ)區(qū)重疊。
1.地址選擇:由于指令庫(kù)占用一定地址空間,編程時(shí)要注意,可以使用建議地址,不會(huì)有沖突(注意:間接接尋址檢測(cè)不到)。
2.STEP 7-Micro/WIN V4.0以上版內(nèi)部已經(jīng)帶有新的指令庫(kù),但在未安裝西門(mén)子Instruction Library軟件包的情況下,不能顯示出來(lái)使用。
要使用西門(mén)子的標(biāo)準(zhǔn)指令庫(kù),必須先安裝西門(mén)子的指令庫(kù)軟件包Instruction Library。安裝了Instruction Library之后,只要安裝的STEP7-Micro/WIN版本是新的,就能獲得相應(yīng)版本的新指令庫(kù)。安裝Micro/WIN的升級(jí)包(Service Pack)也會(huì)更新指令庫(kù)的版本。