西門子內(nèi)存卡6ES7953-8LM32-0AA0當(dāng)天發(fā)貨
西門子內(nèi)存卡6ES7953-8LM32-0AA0
西門子PLC如何modbus?你知道怎么用嗎?詳細教程
2018年12月30日14:33:34 發(fā)表評論 247 閱讀
(1)Modbus通訊
S7-200的Modbus通訊:
S7-200只支持Modbus RTU協(xié)議,不支持Modbus ASCII協(xié)議;
Modbus是一種單主站的主/從通信模式。一條Modbus網(wǎng)絡(luò)上同時只能有一臺主站,從站可以有若干個(如下圖所示)。從站的地址范圍為1-247;
一個Modbus通訊的傳輸字符應(yīng)包括一個起始位,8個數(shù)據(jù)位,1個或0個校驗位(奇偶校驗或無校驗可選擇),以及一個停止位。
在S7-200 CPU通信口上實現(xiàn)的是RS485半雙工通信,使用的是S7-200的自由口功能。
西門子內(nèi)存卡6ES7 953-8LJ20-0AA0
上圖是一個典型的主站和從站的網(wǎng)絡(luò)結(jié)構(gòu),對于Modbus主站而言可以對從站進行讀或者寫的操作,其中它所支持的功能碼(FC,F(xiàn)unction Code)包括主站左側(cè)表格中所述功能,例如功能碼為'01'時表示讀取單個/多個線圈(DO)狀態(tài)或功能碼為'04'時表示讀取單個/多個輸入寄存器(AI)狀態(tài)。
而對于從站,我們只需要把Modbus的標(biāo)準(zhǔn)地址和從站的地址對應(yīng)關(guān)系建立好就可以了,S7-200的從站與Modbus標(biāo)準(zhǔn)的對應(yīng)關(guān)系如從站右側(cè)表格所示。
表中左側(cè)是Modbus標(biāo)準(zhǔn)地址碼,其中1-128對應(yīng)于S7-200的Q0.0-Q15.7,10001-10128對應(yīng)于S7-200的I0.0-I15.7,30001-30032對應(yīng)于AIW0-AIW62,40001-4xxx對應(yīng)的是S7-200的保持寄存器(V區(qū)),它的范圍是T-T+2*(xxxx-1),T表示的是V區(qū)的起始地址,這一點由Modbus從站的指令所決定的。
Modbus的主站指令叫做MBUS_MSG,通過這條指令可以將Modbus的標(biāo)準(zhǔn)報文發(fā)給從站,例如在上圖例子當(dāng)中從站的*個字節(jié)是03,表示的是從站的地址,F(xiàn)C功能碼為03,表示的是讀取單個/多個保存寄存器,Modbus標(biāo)準(zhǔn)地址是40001,長度是10。隨著功能碼的不同,報文的格式會發(fā)生相應(yīng)的變化,具體的報文格式需要去參閱Modbus的通訊手冊。
從站的指令時MBUS _SLAVE,在接到主站發(fā)給它的報文后會根據(jù)報文的需求返回報文,比如在上圖例子中返回的格式是*個字節(jié)為從站的地址,第二個為功能碼,第三個是數(shù)據(jù)返回給主站,這樣就完成了一次Modbus通訊的請求與應(yīng)答的過程。
(2)Modbus庫文件的安裝和調(diào)用
如果想要應(yīng)用Modbus指令庫,那么首先需要到因特網(wǎng)上或者向西門子的客服人員申請名稱為'Toolbox_V32-STEP 7-Micro WIN' 的指令庫,將它解壓并且安裝到Micro WIN當(dāng)中就可以使用了,安裝后會在Micro WIN的庫文件當(dāng)中出現(xiàn)上圖標(biāo)記的三個庫,其中Port0和Port1都可以做Modbus Master,而Slave只有Port0口可以做。
西門子內(nèi)存卡6ES7 953-8LJ20-0AA0
(3)Modbus庫文件的使用
使用方法很簡單,打開Modbus主站指令庫會有相應(yīng)的指令塊出現(xiàn),直接把指令塊拖拽到程序當(dāng)中進行調(diào)用就可以了。
在調(diào)用Modbus庫指令的時候,需要注意一定記得為Modbus庫文件分配庫存儲區(qū)。具體的方法是右鍵單擊庫,然后選擇庫存儲區(qū),在彈出來的對話框當(dāng)中可以選擇建議地址,自動分配一個程序里面不會用到的地址區(qū)間,也可以人為地手動填寫起始地址,這個區(qū)間在程序當(dāng)中不可以和其他的數(shù)據(jù)區(qū)相沖突,否則Modbus功能將不正常。
所謂的庫存儲區(qū)其實就是Modbus指令庫能夠正常工作所必須的一部分背景數(shù)據(jù),只要給它分配好區(qū)間并保證不與程序當(dāng)中其他的地址相沖突就可以了。
(4)Modbus從站指令
從站指令一共有兩條,*條是從站的初始化指令(MBUS_INIT),另一條是MBUS_SLAVE從站指令,在Modbus從站的初始化指令當(dāng)中涉及哪些內(nèi)容呢?
首先,*個引腳Mode表示等于1的時候是啟動Modbus,等于0的時候是關(guān)閉Modbus,Addr表示的是這個從站的從站地址,Baud表示波特率,Parity是奇偶校驗,0是無校驗,1是奇校驗,2是偶校驗,Delay是附加字符之間的延遲,MaxIQ表示的是大I/Q地址(默認(rèn)128),MaxAI表示的是大AI長度(默認(rèn)32),MaxHold表示的是大的V存儲區(qū)(VW),關(guān)鍵的是HoldStart,表示的是V區(qū)起始地址(對應(yīng)40001),在之前已經(jīng)提到過S7-200作為從站的時候,它的V區(qū)地址對應(yīng)于Modbus標(biāo)準(zhǔn)地址的起始地址是可更改的,那么就在這里進行設(shè)定,在本例中如果HoldStart寫的是VB0,那么40001對應(yīng)的地址就是VW0,40002對應(yīng)的地址是VW2,40003對應(yīng)的地址是VW4,以此類推,每一個標(biāo)準(zhǔn)的Modbus地址碼對應(yīng)的是一個Word,以字為單位,同樣如果這里設(shè)的是VB100,那么40001對應(yīng)的就是VW100,40002對應(yīng)的是VW102
右鍵點擊可執(zhí)行文件(Start.exe) ,在彈出菜單中打開“Properties"。
在“Start.exe 屬性"對話框中選擇“Digital Signatures(數(shù)字簽名)"選項卡,在這里,可以看到該文件是否有數(shù)字簽名。其它關(guān)于簽名和證書的信息可通過標(biāo)記簽名列表中的名稱,點擊“詳細信 息"按鈕獲取。
關(guān)閉"Start.exe屬性"對話框。
圖01
來自西門子的數(shù)字簽名(證書)可以確保STEP 7 (TIA Portal) 經(jīng) Windows 測試過,并在測試后沒有被修改。如果你是互聯(lián)網(wǎng)在線,服務(wù)器使用的有效和安全的證書在開始安裝前被自動檢查。
證書在不具安全性或不再有效的情況下將被。這個選項可以使你避免發(fā)送保密數(shù)據(jù)到一個可能是不安全的頁面。證書發(fā)行者可以對仍然有效 的證書宣布無效,并吊銷證書的頒發(fā)。為此CRL(證書吊銷列表)存儲的證書通過“https" 被請求和評估。CRL是簡單的文本文件,通過它頒發(fā)證書可以被吊銷。如果在這個列表中當(dāng)前的證書被標(biāo)記為吊銷的,Internet Explorer (IE 瀏覽器)將處理該證書為無效證書。如果防火墻阻塞了到CRL的連接且沒有出錯消息,Internet Explorer 要在超時(例如30秒)時間后創(chuàng)建頁面。
為了禁用選項,在Internet Explorer 中打開“Tools > Internet Options"對話框。
選擇“Advanced"選項卡,在“Settings"選項向下滑動右邊的滑塊,直到看到“Security"部分。
禁用選項“檢查發(fā)行者的證書撤銷"。
點擊“應(yīng)用"通過OK按鈕關(guān)閉對話框。
圖02
注意:
只有當(dāng)防火墻不再阻塞到CRL的連接,建議重新啟用“檢查出版商證書吊銷"選項。
創(chuàng)建環(huán)境
此FAQ中涉及的圖片是在STEP 7 (TIA Portal) V12中創(chuàng)建的