S7200地MODBUS詳細(xì)應(yīng)用示例_第1頁
S7200地MODBUS詳細(xì)應(yīng)用示例_第2頁
S7200地MODBUS詳細(xì)應(yīng)用示例_第3頁
S7200地MODBUS詳細(xì)應(yīng)用示例_第4頁
S7200地MODBUS詳細(xì)應(yīng)用示例_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)用標(biāo)準(zhǔn)文案PLC200 MODBUS議配置使用方法文檔實(shí)用標(biāo)準(zhǔn)文案修訂歷史記錄日期版本說明(修改、補(bǔ)充、刪除)作者審核1A版(已完)研發(fā)部孫寶東研發(fā)部王振岳5.13庫存儲(chǔ)區(qū)補(bǔ)充說明(36 頁)注釋:紅色字體為注意點(diǎn); 藍(lán)色為修改補(bǔ)充; 紫色為問題總結(jié); 茶色為暫時(shí)刪除; 綠色為住宿文檔目錄前言 錯(cuò)誤!未定義書簽。第一章 使用 Modbus協(xié)議庫 錯(cuò)誤!未定義書簽。前言 61 .使用Modbus主設(shè)備協(xié)議的要求 62 .使用Modbus從站設(shè)備協(xié)議的要求 73 .Modbus主設(shè)備協(xié)議的初始化和執(zhí)行時(shí)間 74 .Modbus從站協(xié)議的初始化和執(zhí)行時(shí)間 85 .Modbus主設(shè)備尋址 86 .M

2、odbus從站尋址 87 .Modbus主設(shè)備MBUS_MSG行錯(cuò)誤代碼 108 .Modbus從站協(xié)議執(zhí)行錯(cuò)誤代碼 119 .Modbus主設(shè)備高級(jí)用戶信息 11第二章 使用Modbus主設(shè)備指令 1410 141 .MBUS_CTRL旨令(初始化主設(shè)備) 152 .MBUS_MS指令 16第三章 使用Modbus從站指令 錯(cuò)誤!未定義書簽。3 言 221 .MBUS_INIT指令(初始化從站) 錯(cuò)誤!未定義書簽。2 .MBUS_SLAVE旨令 錯(cuò)誤!未定義書簽。3 .常見問題 26第四章 下載與通訊測試 錯(cuò)誤!未定義書簽。1 .編譯、下載 錯(cuò)誤!未定義書簽。2 .通訊 31附表主從站指令配

3、置表 37S7200 Modbus 主從協(xié)議版本(09年初稿版)制作:研發(fā)部前言:Modbus從站協(xié)議指令可以配置 S7-200 ,將其用作 Modbus RTU從站,與 Modbus主設(shè)備 通訊。Modbus主設(shè)備協(xié)議指令可以配置S7-200 ,將其用作ModbusRTU主設(shè)備,與一個(gè)或多個(gè)Modbus從站通訊。Modbus指令安裝在 STEP 7 Micro/WIN 指令樹的協(xié)議庫文件夾中。有了這些新指令, 您可以將S7-200用作Modbus設(shè)備。當(dāng)您在程序中加入 Modbus指令時(shí),會(huì)在項(xiàng)目中自動(dòng)增 加一個(gè)或多個(gè)相關(guān)子程序。Modbus主設(shè)備協(xié)議庫有兩個(gè)版本。一個(gè)版本使用CPU的端口

4、0,另一個(gè)則使用CPU的端 口 1。端口 1協(xié)議庫的POU中帶有_P1(MBUS_CTRL_P1)表示 POI#用CPU的端口 1。 在其它方面,這兩個(gè) Modbus主設(shè)備協(xié)議庫完全一致。Modbus從站協(xié)議庫僅支持端口 0通訊。在STEP 7 Micro/WIN 中,Modbus RTU協(xié)議和USS協(xié)議操作庫位于操作樹的“庫”文 件夾中。MODBUS1數(shù)庫要求 STEP 7 Micro/WIN 為V3.2 或更高版本。FAWflllH曲 1 LO0C dwk Ctnmjw-otauu-dWeE * ftwRsni1 Mdh ill k4eiger W-jMj n-MEri jtJ U3*E4

5、fl DorJteiHfl iMHebg RE CwMrf d SW/R(uieUaMg* TZLew-I一 lAxfaMB M靜工J*說邛力3ln MBUSJZTHLj_T MB4, MrsG三| Medbwi%l 1 加1.田o HWS_CTRt_PI MBU5_&5_IFI MLdtus Slae Pa*0|m1 Ol MBUS即n MBUS&L0VrUSSjETRLU55 firn W圖1:添加函數(shù)庫nunonounIn-oununUSS-WM.*! US5_WFM_W uss.wmu USS_WFM,H 5li 加工 J|y55_wrT_pi USSjETaLpi US5_WM_W_

6、m U55_W*i_C_M LIS5_1=ffRrt_fR_PI USSWFhLWJM UISJWRhUBjFI Uss 曰 pi第一章使用Modbus協(xié)議庫前言:這些庫是附加函數(shù)庫,并非組態(tài)軟件STEP 7 Micro/WIN 的組成部分。您如果需要使用 Modbus RTU協(xié)議,必須先安裝“ STEP7 Micro/WIN 32 Toolbox V1.0(包 括庫),然后安裝運(yùn)行“ STEP 7 Micro/WIN 。就會(huì)出現(xiàn)如圖1的庫。注意:這個(gè)函數(shù)庫包含可以在STEP 7 Micro/WIN V3.2中使用的 Modbus RTU協(xié)議庫和 USS協(xié)議庫。如果您安裝了 STEP 7 Mi

7、cro/WIN V4.0SP5或者更高版本,那么操作庫中就會(huì)包含下列函數(shù): Modbus RTU Master V1.2 對(duì)應(yīng)端口 0 和端口 1 Modbus RTU Slave V1.0 對(duì)應(yīng)端口 0 USS protocol V2.3對(duì)應(yīng)端口 0 和端口 1下面我對(duì)Modbus RTU各指令功能與使用方法分別加以講解:1 .使用Modbus主設(shè)備協(xié)議的要求Modbus主設(shè)備協(xié)議指令使用下列S7-200資源:初始化Modbus主設(shè)備協(xié)議可以為 Modbus主設(shè)備協(xié)議通訊指定專用 CP聞口。當(dāng)CPU 端口被用于Modbus主設(shè)備協(xié)議通訊時(shí),就無法用于任何其它用途,包括寫 STEP 7-Mic

8、ro/WIN 通訊。MBUS_CTRL令控制將端口 0分配給 Modbus協(xié)議或PPI, Mode為1 時(shí)分配給Modbus協(xié)議,為0是分配給PPI。將S7-200上的模式開關(guān)設(shè)為“ STOP ,端 口零也會(huì)被復(fù)位為 PPI協(xié)議模式。MBUS_CTRL_P1令(來自端口 1協(xié)議庫)控制將端口 1分配給Modbus主設(shè)備協(xié)議或 PPI。 Modbus主設(shè)備協(xié)議指令影響與CPU通訊端口中自由端口通訊相關(guān)的所有SM位置。 Modbus主設(shè)備協(xié)議指令使用 3個(gè)子程序和1個(gè)中斷例程。 Modbus主設(shè)備協(xié)議指令要求兩個(gè)Modbus主設(shè)備指令和支持例程有1620個(gè)字節(jié)的程序空間。 Modbus主設(shè)備協(xié)議指

9、令的變量要求 284個(gè)字節(jié)的V存儲(chǔ)器程序塊。該程序塊的起始地 址由用戶指定,專門保留用于Modbus變量。 S7-200 CPU必須是固化程序修訂版2.00或最好支持 Modbus主設(shè)備協(xié)議庫(CPU MLFB21x-2xx23-0XB0)。 Modbus主設(shè)備協(xié)議庫為某些功能使用用戶中斷。用戶中斷不能被用戶程序禁用。提示:欲將CPU!訊端口操彳更換回 PPI以便與STEP7-Micro/WIN 通訊,將MBUS_CTRL 指令的模式參數(shù)設(shè)置為零 (0)。您還可以將S7-200上的模式開關(guān)設(shè)置到 STOP莫式麗。這些方法中的任一個(gè)將設(shè)置CPU!訊端口與STEP 7-Micro/WIN通訊。2

10、.使用Modbus從站協(xié)議的要求Modbus從站協(xié)議指令使用下列S7-200資源: 初始化Modbus從站協(xié)議為 Modbus從站協(xié)議通訊指定端口 0。當(dāng)端口 0被用于Modbus 從站協(xié)議通訊時(shí),就無法用于任何其它用途,包括與STEP7-Micro/WIN通訊。MBUS_INIT 指令控制將端口 0指定給Modbus從站協(xié)議或PPI。 Modbus從站協(xié)議指令影響與端口0中自由端口通訊相關(guān)的所有SM位置。 Modbus從站協(xié)議指令使用 3個(gè)子程序和2個(gè)中斷例程。Modbus從站協(xié)議指令要求兩個(gè) Modbus主設(shè)備指令和支持例程有1857個(gè)字節(jié)的程序空間。該程序塊的起始地址 Modbus從站協(xié)

11、議指令的變量要求779個(gè)字節(jié)的V存儲(chǔ)器程序塊。由用戶指定,專門保留用于Modbus變量。一定要設(shè)置 V存儲(chǔ)區(qū),不然編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤信息,設(shè)置過程很簡單:擊“文件” 一 “庫存儲(chǔ)區(qū)”,出現(xiàn)如下畫面(進(jìn)行設(shè)置即可):提示:欲將端口 0操作更換回PPI以便與STEP7-Micro/WIN 通訊,用另一條 MBUS_INIT指令重新指定端口 0。您還可以將 S7-200上的模式開關(guān)設(shè)為 STOP莫式。這樣會(huì)將參數(shù) 復(fù)原為端口 0。3. Modbus主設(shè)備協(xié)議的初始化和執(zhí)行時(shí)間Modbus主設(shè)備協(xié)議每次掃描都需要少量的時(shí)間來執(zhí)行MBUS_CTRL令。MBUS_CTRL始化Modbus主設(shè)備(首次掃描)需

12、要大約1.11毫秒的時(shí)間,以后掃描需要大約 0.41毫秒。Modbus CRC 的當(dāng)MBUS_MSG程序執(zhí)行請(qǐng)求時(shí),將執(zhí)行掃描時(shí)間。大多數(shù)時(shí)間用于計(jì)算 請(qǐng)求和應(yīng)看。CRC (循環(huán)冗余檢驗(yàn))確保通訊消息的完整性。對(duì)于請(qǐng)求和應(yīng)答中的每個(gè)字,掃描時(shí)間會(huì)延長約1.85毫秒。最大請(qǐng)求/應(yīng)答(讀取或?qū)懭?20個(gè)字)使掃描時(shí)間延長約 222毫秒。當(dāng)在從站中接收應(yīng) 答并至少發(fā)出請(qǐng)求時(shí),主要是讀取請(qǐng)求在延長掃描時(shí)間。當(dāng)將數(shù)據(jù)發(fā)送到從站并至少收 到應(yīng)答時(shí),主要是寫入請(qǐng)求在延長掃描時(shí)間。4. Modbus從站協(xié)議的初始化和執(zhí)行時(shí)間Modbus通訊使用CRC (循環(huán)冗余檢驗(yàn))確保通訊消息的完整性。Modbus從站協(xié)議

13、使用預(yù) 先計(jì)算數(shù)值的表格減少處理消息的時(shí)間。該CRCB1初始化約需240毫秒。初始化在MBUS_INIT子程序中進(jìn)行,通常在進(jìn)入RUN莫式后用戶程序首次掃描時(shí)執(zhí)行。如果MBUS_INIT子程序和任何其它初始化程序要求的時(shí)間超過500微秒掃描監(jiān)視時(shí)間,您需要復(fù)原監(jiān)視定時(shí)器,并將車出保持在啟用狀態(tài)(如果擴(kuò)展模塊要求)。輸出模塊監(jiān)視定時(shí)器可用向模塊輸出寫入的方法復(fù)原。請(qǐng)參閱監(jiān)視復(fù)原指令。當(dāng)MBUS_SLAVE程序執(zhí)行請(qǐng)求時(shí),掃描時(shí)間會(huì)延長。由于 大多數(shù)時(shí)間用于計(jì)算 Modbus CRC對(duì)于請(qǐng)求中和應(yīng)答中的每個(gè)字節(jié), 掃描時(shí)間會(huì)延長約 420微秒。最大請(qǐng)求/應(yīng)答(讀 取或?qū)懭?20個(gè)字)使掃描時(shí)間延長

14、約100毫秒。5. Modbus主設(shè)備尋址Modbus地址通常寫作包含數(shù)據(jù)類型和偏移量的 5個(gè)字符的數(shù)值。第一個(gè)字符決定數(shù)據(jù)類 型,最后四個(gè)字符在數(shù)據(jù)類型中選擇適當(dāng)?shù)臄?shù)值。然后,Modbus主設(shè)備指令將地址映射至正確的功能,以便發(fā)送到從站。Modbus主設(shè)備指令支持下列 Modbus地址:00001至09999是離散輸出(線圈)10001至19999是離散輸入(觸點(diǎn))30001至39999是輸入寄存器(通常是模擬量輸入)40001至49999是保持寄存器所有Modbus地址均以1為基位,表示第一個(gè)數(shù)據(jù)值從地址1開始。有效地址范圍將取決于從站。不同的從站將支持不同的數(shù)據(jù)類型和地址范圍。6. Mo

15、dbus從站尋址Modbus地址通常被寫為包含數(shù)據(jù)類型和偏移量的5個(gè)字符的數(shù)值。第一個(gè)字符決定數(shù)據(jù)類型,最后四個(gè)字符在數(shù)據(jù)類型中選擇適當(dāng)?shù)臄?shù)值。然后,Modbus主設(shè)備將地址映射至正確的功能。Modbus從站指令支持下列地址:00001至00128是映射至 Q0.0 - Q15.7 的離散輸出10001至10128是映射至I0.0 - I15.7 的離散輸入30001至30032是映射至 AIW0至AIW62的模擬輸入寄存器40001至4xxxx是映射至V存儲(chǔ)器的保持寄存器。所有Modbus地址均以1為基位。下表顯示映射至S7-200地址的Modbus地址。Modbus地址 S7-200地址

16、00001Q0.000002Q0.100003Q0.2.00127Q15.600128Q15.710001I0.010002I0.110003I0.2.10127I15.610128I15.730001AIW030002 AIW2 30003AIW4.30032AIW6240001Hold Start40002HoldStart+240003HoldStart+4.4xxxxHoldStart+2 x (xxxx-1)Modbus從站協(xié)議允許您限制 Modbus主設(shè)備可存取的輸入、輸出、模擬輸入和保持寄存 器(V存儲(chǔ)器)數(shù)量。MBUS_INIT指令的MaxIQ參數(shù)指定Modbus主設(shè)備允許存取

17、的離散輸入或輸出(I或Q)的最大數(shù)目。MBUS_INIT指令的MaxAI參數(shù)指定Modbus主設(shè)備允許存取的輸入寄存器 (AIW)的最大數(shù) IMBUS_INIT指令的MaxHold參數(shù)指定Modbus主設(shè)備允許存取的保持寄存器 (V存儲(chǔ)器字) 的最大數(shù)目。請(qǐng)參閱MBUS_INIT指令說明,了解有關(guān)為 Modbus從站設(shè)定存儲(chǔ)器限制的進(jìn)一步詳情。7. Modbus主設(shè)備MBUS_MSG亍錯(cuò)誤代碼MBUS_MSG錯(cuò)誤而說明0 無錯(cuò)誤1 應(yīng)答時(shí)奇偶校驗(yàn)錯(cuò)誤: 僅當(dāng)使用偶校驗(yàn)或奇校驗(yàn)時(shí)才會(huì)發(fā)生。 傳輸被干擾,可能會(huì) 收到不正確的數(shù)據(jù)。 該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲 )引 起

18、的。2 未使用3 接收超時(shí):在超時(shí)時(shí)間內(nèi),沒有來自從站的應(yīng)答??赡苡幸韵乱恍┰颍号c從站的電氣連接有問題、主設(shè)備和從站設(shè)置為不同的波特率/奇偶校驗(yàn)設(shè)置,以及錯(cuò)誤的從站地址。4 請(qǐng)求參數(shù)出錯(cuò):一個(gè)或多個(gè)輸入?yún)?shù)(從站、讀寫、地址或計(jì)數(shù))被設(shè)置為非法值。檢查文檔中輸入?yún)?shù)的允許值。5 Modbus主設(shè)備未啟用:在調(diào)用 MBUS_MSG,每次掃描時(shí)都調(diào)用MBUS_CTRL6 Modbus忙于處理另一個(gè)請(qǐng)求:一次只能激活一條MBUS_MSG令。7 應(yīng)答時(shí)出錯(cuò):收到的應(yīng)答與請(qǐng)求不相關(guān)。這表示從站中出現(xiàn)了某些錯(cuò)誤,或者錯(cuò)誤的從站應(yīng)答了請(qǐng)求。8 應(yīng)答時(shí)CRC音誤: 傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤

19、通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲)引起的。101從站不支持在該地址處所請(qǐng)求的功能:請(qǐng)參閱 使用Modbus主設(shè)備指令幫助主題 中的所需Modbus從站功能支持表。102從站不支持?jǐn)?shù)據(jù)地址:地址加上計(jì)數(shù)”所要求的地址范圍超出了從站所允許的地 址范圍。103從站不支持?jǐn)?shù)據(jù)類型:該 地址”類型不被從站支持。104從站故障105從站已接受消息但應(yīng)答延遲:這是MBUS_MSG錯(cuò)誤,用戶程序應(yīng)在稍后重新發(fā)送請(qǐng)求。106從站忙,因此拒絕消息:可以再次嘗試相同的請(qǐng)求,以獲得應(yīng)答。107從站因未知原因而拒絕消息108從站存儲(chǔ)器奇偶校驗(yàn)錯(cuò)誤:從站中有錯(cuò)誤。8. Modbus從站協(xié)議執(zhí)行錯(cuò)誤代碼錯(cuò)

20、誤代碼說明0 無錯(cuò)誤1 內(nèi)存范圍錯(cuò)誤2 非法波特率或奇偶校驗(yàn)3 非法從屬地址4 非法Modbus參數(shù)值5 保持寄存器與Modbus從屬符號(hào)重疊6 收到奇偶校驗(yàn)錯(cuò)誤7 收至ij CRC錯(cuò)誤8 非法功能請(qǐng)求/功能不受支持9 請(qǐng)求中的非法內(nèi)存地址10 從屬功能未啟用9. Modbus主設(shè)備高級(jí)用戶信息返回的功能與請(qǐng)求不匹配 (錯(cuò)誤代碼7)。Modbus主設(shè)備將在設(shè)置完成和錯(cuò)誤”輸出參數(shù)前,重新發(fā)送請(qǐng)求兩個(gè)附加時(shí)間。通過查找Modbus主設(shè)備符號(hào)表中的符號(hào) mModbusRetries然后在執(zhí)行MBUS_CTRL改變 該值,可以更改重試次數(shù)。mModbusRetries值是字節(jié)類型,重試范圍是 0至2

21、55。內(nèi)部字符超時(shí)如果應(yīng)答中字符之間的時(shí)間超出了指定的時(shí)間限制,Modbus主設(shè)備將中止來自從站的應(yīng)答。缺省時(shí)間設(shè)置為 100毫秒,可允許 Modbus主設(shè)備協(xié)議用于大多數(shù)有線或電話調(diào)制 解調(diào)器聯(lián)網(wǎng)的從站。如果檢測到該錯(cuò)誤,MBUS CTRL錯(cuò)誤參數(shù)將設(shè)置為錯(cuò)誤代碼 3。當(dāng)字符之間需要較長的時(shí)間時(shí),可能是因?yàn)閭魉徒橘|(zhì)(例如電話調(diào)制解調(diào)器)或者因?yàn)閺恼咀陨硇枰嗟娜臻g。通過查找Modbus主設(shè)備符號(hào)表中的符號(hào) mModbusCharTimeout然后在執(zhí)行MBUS_CTRL后改變?cè)撝?,可以延長該超時(shí)時(shí)間。mModbusCharTimeout值是整型類型,范圍是1至少30000毫秒。單個(gè)對(duì)多個(gè)位

22、/字寫入功能某些Modbus從站不支持 Modbus功能寫入單個(gè)離散輸出位 (Modbus功能5)或?qū)懭雴蝹€(gè)保 持寄存器(Modbus功能6)。這些設(shè)備僅支持多個(gè)位寫入(Modbus功能15)或多個(gè)寄存器寫入(Modbus功能16)。如果從站不支持單個(gè)位 /字Modbus功能,則MBUS_MSG令將返回錯(cuò) 誤代碼101。Modbus主設(shè)備協(xié)議允許強(qiáng)制 MBUS_MSG令,以使用多個(gè)位/字Modbus功能來取代單個(gè) 的位/字Modbus功能。通過查找 Modbus主設(shè)備符號(hào)表中的符號(hào) mModbusForceMulti然后在執(zhí)行 MBUS_CTRL后改變?cè)撝担梢詮?qiáng)制執(zhí)行多個(gè)位/字指令。mMod

23、busForceMulti值是布爾數(shù)據(jù)類型,應(yīng)該設(shè)置為1以在寫入單個(gè)位/寄存器時(shí)強(qiáng)制使用多個(gè)位/字功能。累加器用途累加器(AC0、AC1、AC2, AC3)由Modbus主設(shè)備指令使用,并在“交叉參考”列表中顯示。 累加器中的數(shù)值被 Modbus主設(shè)備指令保存和恢復(fù)。當(dāng)執(zhí)行 Modbus主設(shè)備指令時(shí),保存 累加器中的所有用戶數(shù)據(jù)。保持寄存器地址大于 9999Modbus保持地址通常在40001到49999的范圍內(nèi)。該范圍對(duì)大多數(shù)應(yīng)用程序來說足夠了, 但是某些數(shù)據(jù)映射到保持寄存器的Modbus從站所具有的地址超過 9999。這些設(shè)備不適合常規(guī)的Modbus尋址方案。Modbus主設(shè)備指令支持通過

24、可選的尋址方法對(duì)大于9999的保持寄存器進(jìn)行尋址。MBUS_MSG令允許參數(shù)地址”具有附加范圍以支持保持寄存器地址的擴(kuò)充范圍。400001至465536用于保持寄存器例如:要訪問保持寄存器 16768, MBUS_MSG地址參數(shù)應(yīng)該設(shè)置為 416768。擴(kuò)充尋址允許訪問 Modbus協(xié)議支持的65536個(gè)可能地址的全部范圍。該擴(kuò)充尋址僅支持保持寄存器。第二章 使用Modbus主設(shè)備指令前言:欲在S7-200程序中使用 Modbus主設(shè)備指令,請(qǐng)執(zhí)行以下步驟:1. 在程序中插入MBUS_CTRL令,并在每次掃描時(shí)執(zhí)行 MBUS_CTR您可以使用 MBUS_CTRL 指令初始化或更改 Modbus

25、通訊參數(shù)。當(dāng)您插入MBUS_CTRL令時(shí),會(huì)在程序中自動(dòng)增加幾 個(gè)受保護(hù)的子程序和中斷例程。2. 使用協(xié)議庫存儲(chǔ)器命令,為Modbus主設(shè)備協(xié)議指令需要的V存儲(chǔ)器指定一個(gè)起始地址。3. 將一條或多條MBUS_MSG令放入程序中??梢愿鶕?jù)需要將盡可能多的 MBUS_MSG令放 入程序中,但 每次只能激活這些指令中的一條。4. 連接S7-200 CPU上的端口 0 (或?qū)Χ丝?1協(xié)議庫是端口 1)和Modbus從站之間的通訊電 纜。當(dāng)心:帶有不同參考電位的互連裝置會(huì)引起互連電纜中出現(xiàn)意外電流。這些意外電流會(huì)引起通訊錯(cuò)誤或損壞裝置。確保所有用通訊電纜連接的設(shè)備共享一個(gè)共用電路參考或單獨(dú)隔離, 以防不

26、需要的電流通過。Modbus主設(shè)備指令使用如下顯示的Modbus功能讀取或?qū)懭胩囟ǖ?Modbus地址。Modbus從站必須支持所需的 Modbus功能才能讀取或?qū)懭胩囟ǖ?Modbus地址。所需的Modbus從站功能支持讀取或?qū)懭胨璧腗odbus從站功能Modbus地址00001 09999 離散輸出讀取功能1寫入功能5用于單個(gè)輸出點(diǎn)功能15用于多個(gè)輸出點(diǎn)10001 19999 離散輸出讀取功能2寫入不能30001 39999 輸入寄存器讀取功能4寫入不能40001 49999 保持寄存器讀取功能3寫入功能6用于單個(gè)寄存器功能16用于多個(gè)寄存器輸入/輸出操作數(shù)數(shù)據(jù)類型模式I, Q, M,

27、S, SM, T, C, V, L布爾波特VD, ID, QD, MD, SD, SMD, LD, AC, Constant, *VD, *AC, *LD雙字奇偶校驗(yàn)VB, IB, QB, MB, SB, SMB, LB, AC, Constant, *VD, *AC, *LD超時(shí)VW, IW, QW, MW, SW, SMW, LW, AC, Constant, *VD, *AC, *LD字完成I, Q, M, S, SM, T, C, V, L布爾錯(cuò)誤VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *L打用于S7-200端口 0的MBUS_CT而令(或

28、用于端口 1的MBUS_CTRL_P1令)可初始 化、監(jiān)視或禁用 Modbus通訊。在使用 MBUS_MSG令之前,必須正確執(zhí)行 MBUS_CTRL 令。指令完成后立即設(shè)定完成”位,才能繼續(xù)執(zhí)行下一條指令。在每次掃描且EN輸入打開時(shí)執(zhí)行該指令。MBUS_CTRL令必須在每次掃描時(shí)(包括首次掃描)被調(diào)用,以允許監(jiān)視隨MBUS_MSG令啟動(dòng)的任何突出消息的進(jìn)程。除非每次調(diào)用MBUS_CTRL否則Modbus主設(shè)備協(xié)議將不能正確運(yùn)行。1.MBUS_CTRL令(初始化主設(shè)備)模式輸入數(shù)值選擇通訊協(xié)議。輸入值1將CPU分配給 Modbus協(xié)議并啟用該協(xié)議。輸入值0將CPU分配給PPI系統(tǒng)協(xié)議并禁用 Mo

29、dbus協(xié)議。波特參數(shù)將波特率設(shè)為 1200、2400、4800、9600、19200、38400、57600 或 115200 波特。奇偶校驗(yàn)”參數(shù)被設(shè)為與 Modbus從站奇偶校驗(yàn)相匹配。所有設(shè)置使用一個(gè)起始位 和一個(gè)停止位??山邮艿臄?shù)值為:0 -無奇偶校驗(yàn)1 -奇校驗(yàn) 2 -偶校驗(yàn)超時(shí)”參數(shù)設(shè)為等待來自從站應(yīng)答的毫秒時(shí)間數(shù)。超時(shí)數(shù)值可以設(shè)置的范圍為 1毫秒到32767毫秒。典型值是1000毫秒(1秒)。超時(shí)參數(shù)應(yīng)該設(shè)置的足夠大, 以便從 站有時(shí)間對(duì)所選的波特率作出應(yīng)答。 超時(shí)”參數(shù)用于確定 Modbus從站是否對(duì)請(qǐng)求做出應(yīng)答。超時(shí)值確定Modbus主設(shè)備在發(fā)送了請(qǐng)求的最后一個(gè)字符后,將要

30、等待多長時(shí) 間才會(huì)有應(yīng)答的第一個(gè)字符。 如果在超時(shí)規(guī)定的時(shí)間內(nèi)至少收到應(yīng)答的一個(gè)字符, Modbus主設(shè)備將從Modbus從站接收到整個(gè)應(yīng)答。MBUS_CTRL令完成時(shí),完成輸出打開。錯(cuò)誤”輸出包含執(zhí)行該指令的結(jié)果。下表定義了在執(zhí)行 MBUS_CTRL令時(shí)會(huì)產(chǎn)生的錯(cuò)誤條件。MBUS_CTRL錯(cuò)誤代碼說明0無錯(cuò)誤1 奇偶校驗(yàn)選擇無效2 波特率選擇無效3 超時(shí)選擇無效4 模式選擇無效2. MBUS_MS盼輸入/輸出數(shù)據(jù)類型操作數(shù)首次I, Q, M, S, SM, T, C, V, L (以上升沿檢測兀素為條件的功率流)布爾從站VB, IB, QB, MB, SB, SMB, LB, AC, Con

31、stant, *VD, *AC, *LD讀寫VB, IB, QB, MB, SB, SMB, LB, AC, Constant, *VD, *AC, *LD地址VD, ID, QD, MD, SD, SMD, LD, AC, Constant, *VD, *AC, *LD雙字計(jì)數(shù)VW, IW, QW, MW, SW, SMW, LW, AC, Constant, *VD, *AC, *LD整型DataPtr&VB雙字完成I, Q, M, S, SM, T, C, V, L布爾錯(cuò)誤VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LDMBUS_MSG令(或用

32、于端口 1的MBUS_MSG_P1)T啟動(dòng)對(duì) Modbus從站的請(qǐng)求并處 理應(yīng)答。當(dāng)EN輸入和首次輸入打開時(shí),BUS_MSGf令啟動(dòng)對(duì) Modbus從站的請(qǐng)求。發(fā) 送請(qǐng)求、等待應(yīng)答、并處理應(yīng)答通常需要多次掃描 。EN輸入必須打開以啟用請(qǐng)求的發(fā)送, 并應(yīng)該保持打開直到完成位被置位。注釋:一次只能激活一條 MBUS_MSG令。如果啟用了多條MBUS_MSG令,則將處理所執(zhí)行的第一條MBUS_MSG令,之后的所有MBUS_MSG令將中止并產(chǎn)生錯(cuò)誤代碼6。首次”參數(shù)應(yīng)該在有新請(qǐng)求要發(fā)送時(shí)才打開以進(jìn)行一次掃描。首次”輸入應(yīng)當(dāng)通過一個(gè)邊沿檢測元素(例如上升沿)打開,這將導(dǎo)致請(qǐng)求被傳送一次。從站參數(shù)是Mod

33、bus從站的地址。允許的范圍是0到247。地址0是廣播地址,只 能用于寫請(qǐng)求。不存在對(duì)地址 0的廣播請(qǐng)求的應(yīng)答。并非所有的從站會(huì)支持廣播地址。 S7-200 Modbus從站協(xié)議庫不支持廣播地址。讀寫參數(shù)指定是否要讀取或?qū)懭朐撓ⅰWx寫參數(shù)允許使用下列兩個(gè)值:0 -讀,1-寫。離散輸出(線圈)和保持寄存器支持讀取和寫入請(qǐng)求。離散輸入(觸點(diǎn))和輸入寄存器僅支持讀取請(qǐng)求。地址參數(shù)是起始的 Modbus地址。允許使用下列取值范圍:00001至09999是離散 輸出(線圈);10001至19999是離散輸入(觸點(diǎn));30001至39999是輸入寄存器;40001 至49999是保持寄存器地址的指定取值

34、范圍基于 Modbus從站支持的地址。計(jì)數(shù)”參數(shù)指定在該請(qǐng)求中讀取或?qū)懭氲臄?shù)據(jù)元素的數(shù)目。計(jì)數(shù)值是位數(shù)(對(duì)于位數(shù)據(jù)類型)和字?jǐn)?shù)(對(duì)于字?jǐn)?shù)據(jù)類型)。地址0xxxx -計(jì)數(shù)是要讀取或?qū)懭氲奈粩?shù)。地址1xxxx -計(jì)數(shù)是要讀取的位數(shù)。地址3xxxx -計(jì)數(shù)是要讀取的輸入寄存器的字?jǐn)?shù)。地址4xxxx -計(jì)數(shù)是要讀取或?qū)懭氲谋3旨拇嫫鞯淖謹(jǐn)?shù)。MBUS_MSG令將 讀取或?qū)懭胱畲?20個(gè)字或1920個(gè)位(240字節(jié)的數(shù)據(jù))。計(jì)數(shù) 的實(shí)際限值將取決于 Modbus從站中的限制。DataPtr”參數(shù)是指向S7-200 CPU的V存儲(chǔ)器中與讀取或?qū)懭胝?qǐng)求相關(guān)的數(shù)據(jù)的間 接地址指針。對(duì)于讀取請(qǐng)求,DataPtr應(yīng)

35、該指向用于存儲(chǔ)從 Modbus從站讀取的數(shù)據(jù)的第 一個(gè)CPU儲(chǔ)器位置。對(duì)于寫入請(qǐng)求,DataPtr應(yīng)該指向要發(fā)送到 Modbus從站的數(shù)據(jù)的 第一個(gè)CPU儲(chǔ)器位置。DataPtr值作為間接地址指針傳遞到MBUS_MSG例如,如果要寫入 Modbus從站的數(shù)據(jù)從 S7-200 CPU中的地址 VW200FF始,則DataPtr 的數(shù)值將會(huì)是&VB200(VB200的地址)。指針必須始終是 VB類型,即使它們指向字?jǐn)?shù)據(jù)。 保持寄存器(地址4xxxx)和輸入寄存器(地址3xxxx)的值是字(2個(gè)字節(jié)或16位)。S7-200 CPU?的格式與Modbus寄存器相同。低位編號(hào)的V存儲(chǔ)器地址是寄存器的最高

36、有效字節(jié)。 高位編號(hào)的V存儲(chǔ)器地址是寄存器的最低有效字節(jié)。下表顯示了 S7-200字節(jié)和字尋址如何與Modbus寄存器格式相對(duì)應(yīng)。S7-200 CPU存儲(chǔ)器字節(jié)地址S7-200 CPU 彳地址十六進(jìn)制數(shù)據(jù)地址VB20012VW200VB20134VB20256VW202VB20378VB2049AVW204VB205BC存儲(chǔ)器字地址Modbus保持寄存命地址十六進(jìn)制數(shù) 據(jù)地址十六進(jìn)制數(shù) 據(jù)12 34400112 3456 78400256 789A BC40039A BC位數(shù)據(jù)(地址0xxxx和1xxxx)區(qū)域作為壓縮字節(jié)被讀取和寫入,也就是說,每個(gè)數(shù)據(jù)字節(jié)內(nèi)壓縮8位。第一個(gè)數(shù)據(jù)字節(jié)的最低有效

37、位是尋址的位號(hào)(參數(shù)“地址)。如果僅寫入單個(gè)的位,則該位必須處于指向DataPtr的字節(jié)的最低有效位字節(jié)。壓縮字節(jié)的格式(顯示離散輸入地址)Vx.7-Vx.01000810007100061000510004100031000210001對(duì)于未在偶數(shù)字節(jié)邊界上開始的位數(shù)據(jù)地址,與起始地址相關(guān)的位必須處于字節(jié)的最低有效位。參見如下在 Modbus地址10004處開始的3位壓縮字節(jié)格式實(shí)例。壓縮字 節(jié)的格式(在地址10004處開始的離散輸入)Vx.7Vx.0L 10口04u1000510006當(dāng)寫入到離散輸出數(shù)據(jù)類型 (線圈)時(shí),用戶必須在數(shù)據(jù)通過 DataPtr傳遞到 MBUS_MSG令之前,將

38、壓縮字節(jié)內(nèi)的位放置到正確的位位置中。完成”輸出在發(fā)送請(qǐng)求和接收應(yīng)答時(shí)關(guān)閉。完成”輸出在應(yīng)答完成或 MBUS_MSG令因錯(cuò)誤而中止時(shí)打開。錯(cuò)誤輸出僅當(dāng)完成輸出打開時(shí)有效。 請(qǐng)參閱Modbus主設(shè)備MBUS_MSG行錯(cuò)誤 通過MBUS_MSG令返回。低位編號(hào)的錯(cuò)誤代碼(1到8)是由MBUS_MSG令檢測到的錯(cuò)誤。這些錯(cuò)誤代碼通常指示與 MBUS_MSG令的輸入?yún)?shù)有關(guān)的問題,或接收來自從站的應(yīng)答時(shí)出現(xiàn)的問題。奇偶校驗(yàn)和CRC昔誤指示存在應(yīng)答但是數(shù)據(jù)未正確接收。這通常是由電氣故障(例如連接有問題或者電噪聲 )引起的。高位編號(hào)的錯(cuò)誤代碼(從101開始) 是由Modbus從站返回的錯(cuò)誤。這些錯(cuò)誤指示從站

39、不支持所請(qǐng)求的功能,或者所請(qǐng)求的 地址(或數(shù)據(jù)類型或地址范圍)不被Modbus從站支持。程序舉例該實(shí)例程序顯示了在每次輸入 I0.0打開時(shí),如何使用Modbus主設(shè)備指令將4個(gè)保 持寄存器寫入 Modbus從站然后再從中讀取。 S7-200 CPU將把自VW10所始的4個(gè)字寫 入Modbus從站。數(shù)據(jù)將寫入從站中自地址 40001開始的4個(gè)保持寄存器。S7-200 CPU 于是將從Modbus從站讀取4個(gè)保持寄存器。數(shù)據(jù)將來自保持寄存器 40010 40013, 并放置到S7-200 CPU的V存儲(chǔ)器中自VW20訓(xùn)始的地址。實(shí)例程序數(shù)據(jù)傳送S7-2QO CPU 存儲(chǔ)短幀聰口汕姑 保持雷春恁如果

40、從MBUS_MSG令返回一個(gè)錯(cuò)誤,則程序?qū)⒋蜷_輸出Q0.1和Q0.2。Network 1swaoSMO.O9E00-0-10CU-MBUS_CTRLENModeBaud DoneParity ErrnTimetut-MO-。MB1Nerwoik 5MO/MB100.1KelHork 6M2.1MBUS MSGNetwork 2SM0,1M20T I-(R)2Network 3MBUS_MSGEN40001 4- &VB100-FiistSI川DonsRV/ErmAddrCounl M0.1-MB1M2.1P4D01C-卸B2QC-ENSlave ConeRW EgAddrCoLntDd用Ri-

41、MC.2Network 7通過每次掃描時(shí)調(diào)用 MBUS_CTRL初始化和監(jiān)視 Modbus主設(shè)備。Modbus主設(shè)備設(shè)置為9600波特,無奇偶校3軟。從站允許1000毫秒(1秒)的應(yīng)答時(shí)間。在首次掃描時(shí),重設(shè)用于兩條MBUS_MSG令的啟用標(biāo)記(M2.0和M2.1)。當(dāng)I0.0從關(guān)閉切換到打開時(shí),為第一條 MBUS_MSG令(M2.0)設(shè)置啟用標(biāo)記。當(dāng)?shù)谝粋€(gè)啟用標(biāo)記(M2.0)打開時(shí),調(diào)用MBUS_MSG令。首次參數(shù)必須僅為啟用 指令時(shí)的首次掃描而設(shè)置。該指令將4個(gè)保持寄存器寫入(RW = 1)從站2。要寫入的數(shù)據(jù)取自 CPU中的 VB100-VB107 (4個(gè)字)并寫入 Modbus從站中的

42、地址 40001 -40004 。當(dāng)?shù)谝粭lMBUS_MSG令完成后(完成從0變?yōu)?),清除對(duì)第一條 MBUS_MSG令 的啟用,并為第二條 MBUS_MSG令設(shè)定啟用。如果錯(cuò)誤(MB1)不為零,則設(shè)置Q0.1以顯示錯(cuò)誤。當(dāng)?shù)诙€(gè)啟用標(biāo)記(M2.1)打開時(shí),調(diào)用第二條 MBUS_MSG令。首次參數(shù)必須僅 為啟用指令時(shí)的首次掃描而設(shè)置。該指令從從站2讀?。≧W = 0) 4個(gè)保持寄存器。數(shù)據(jù)從 Modbus從站的地址 40010 ?40013 讀取并復(fù)制到 CPU中的 VB200 ?VB207 (4 字)。當(dāng)?shù)诙lMBUS_MSG令完成(完成從0變?yōu)?)后,清除對(duì)第二條 MBUS_MSG令 的啟用

43、。如果錯(cuò)誤(MB1)不為零,則設(shè)置 Q0.2以顯示錯(cuò)誤。第三章 使用Modbus從站指令前言:編程時(shí)使用SM0.1調(diào)用子程序MBUS_INIT進(jìn)行初始化,使用 SM0.0調(diào)用 MBUS_SLAVE并指定相應(yīng)參數(shù)。關(guān)于參數(shù)的詳細(xì)說明,可在子程序的局部變量 表中找到;欲在 S7-200程序中使用 Modbus從站指令,請(qǐng)執(zhí)行以下步驟:1. 在程序中插入MBUS_INIT指令,并僅限為一次掃描執(zhí)行MBUS_INIT指令。您可以使用MBUS_INIT指令初始化或更改 Modbus通訊參數(shù)。當(dāng)您插入MBUS_INIT指令時(shí),會(huì)在程序中自動(dòng)增加幾個(gè)隱藏的子程序和中斷例行程序。2. 使用協(xié)議庫存儲(chǔ)器命令,為

44、Modbus從站協(xié)議指令需要的 V存儲(chǔ)器指定個(gè)起始地址。3. 僅將一條MBUS_SLAVE令放入程序中。每次掃描時(shí)均調(diào)用該指令,為所 有收到的請(qǐng)求提供服務(wù)。4. 連接S7-200上的端口。和Modbus主設(shè)備之間的通訊電纜。=當(dāng)心:帶有不同參考電位的互連裝置會(huì)使不需要的電流從互連電纜中通 過。這些不需要的電流會(huì)引起通訊錯(cuò)誤或損壞裝置。確保所有用通訊電纜連接 的設(shè)備共享一個(gè)共用電路參考或單獨(dú)隔離,以防不需要的電流通過。累加器(AC0、AC! AC2、AC3)被Modbus從站指令使用,在“交叉參考”列表中顯 示。執(zhí)行之前,Modbus從站指令累加器中的數(shù)值被保存,并在Modbus從站指令完成之前

45、還原至累加器,以確保在執(zhí)行Modbus從站指令時(shí)累加器中的所有用戶數(shù)據(jù)被保留。Modbus從站協(xié)議指令支持 Modbus RTU協(xié)議。這些指令使用S7-200的自由端口實(shí)用程序支 持最常用的Modbus功能。詳情見附表 2從站功能碼與說明。MBUSjNfTADFB DB4 附d口力力AidrBrerMudParityel? hxlQ MaxiW ruxbMdl1.MBUS_INIT指令(初始化從站)Hokl Start輸入/輸出操作數(shù)數(shù)據(jù)類型模式、地址、奇 偶校驗(yàn)VB, IB, QB, MB, SB, SMB, LB, AC, Constant, *VD, *AC, *LD波特、HoldSta

46、rtVD, ID, QD, MD, SD, SMD, LD, AC, Constant, *VD, *AC, *LD雙字延時(shí)、MaxIQMaxAI、MaxHoldVW, IW, QW, MW, SW, SMW, LW, AC, Constant,*VD, *AC, *LD 字字完成I, Q, M, S, SM, T, C, V, L布爾誤 錯(cuò)VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC,*LDCALL MB USNIT; Mod*. Ndr,Parity B Dielay JktoclQ, 岫工地 MawHcid.HcW&tari. Ow*. BwMBUS

47、_INIT指令被用于啟用和初始化或禁止Modbus通訊。在使用MBUS_SLAVE令之前,必須正確執(zhí)行 MBUS_INIT指令。指令完成后立即設(shè)定 完成位,才能繼續(xù)執(zhí)行下一條指 令。在每次掃描且 EN輸入打開時(shí)執(zhí)行該指令。應(yīng)當(dāng)在每次通訊狀態(tài)改變時(shí)執(zhí)行 MBUS_INIT指令。因此,EN輸入應(yīng)當(dāng)通過一個(gè)邊緣檢測元素用脈沖打開,或者僅在首次 掃描時(shí)執(zhí)行。模式”輸入數(shù)值選擇通訊協(xié)議:輸入數(shù)值1將端口 0指定給Modbus協(xié)議并啟用協(xié)議;將輸入數(shù)值0則將端口 0指定給PPI,并禁用Modbus協(xié)議。波特參數(shù)將波特率設(shè)為 1200、2400、4800、9600、19200、38400、57600 或 1

48、15200。地址參數(shù)將地址設(shè)為1和247之間(包才1和247)的數(shù)值。奇偶校驗(yàn)”參數(shù)被設(shè)為與 Modbus主設(shè)備奇偶校驗(yàn)相匹配??山邮艿臄?shù)值為:0-無奇偶校驗(yàn)1-奇數(shù)校驗(yàn)2-偶數(shù)校驗(yàn)延時(shí)參數(shù)通過將指定的毫秒數(shù)增加至標(biāo)準(zhǔn)Modbus信息超時(shí)的方法延長標(biāo)準(zhǔn)Modbus信息結(jié)束超時(shí)條件。該參數(shù)的典型數(shù)值在有線網(wǎng)絡(luò)上應(yīng)為0。如果您在使用帶有糾錯(cuò)功能的調(diào)制解調(diào)器,將延時(shí)設(shè)為 50至100毫秒的數(shù)值。如果您在使用擴(kuò)展頻譜無線電,將 延時(shí)設(shè)為10至100毫秒的數(shù)值。延時(shí)數(shù)值可以是0至32767毫秒。MaxIQ參數(shù)將供Modbus地址0xxxx和1xxxx使用的I和Q點(diǎn)數(shù)設(shè)為0至128之間的數(shù)值。 數(shù)彳1 0

49、禁止所有向輸入和輸出的讀取。建議使用的MaxIQ數(shù)值是128,該數(shù)值可在S7-200中存取所有的I和Q點(diǎn)。MaxAI參數(shù)將供Modbus地址3xxxx使用的字輸入(AI)寄存器數(shù)目設(shè)為 0至32之間的數(shù) 值。數(shù)值0禁止模擬輸入的讀數(shù)。建議使用的MaxAI數(shù)值如下,這些數(shù)值可允許存取所有的S7-200模擬輸入:0 用于 CPU 22116 用于 CPU 22232 用于 CPU 224、224XP、226 和 226XMMaxHold參數(shù)設(shè)定供Modbus地址4xxxx使用的V存儲(chǔ)器中的字保持寄存器數(shù)目。例如, 為了允許主設(shè)備存取 2000個(gè)字節(jié)的V存儲(chǔ)器,將 MaxHold設(shè)為1000個(gè)字的數(shù)

50、值(保持 奇存器)HoldStart參數(shù)是V存儲(chǔ)器中保持寄存器的起始地址。該數(shù)值一般被設(shè)為 VB0,因此HoldStart參數(shù)被設(shè)為&VB0 (VB0地址)。其它V存儲(chǔ)器地址可指定為保持寄存器的起始 地址,以便在項(xiàng)目的其它地方使用VB0。Modbus主設(shè)備可存取 V內(nèi)存MaxHold個(gè)字?jǐn)?shù),從 HoldStart 開始。注意:你選用的 CPU的V存儲(chǔ)區(qū)大??! CPU號(hào)不同V數(shù)據(jù)存儲(chǔ)區(qū)大小不同。應(yīng)根據(jù)需 要選擇Modbus保持寄存器區(qū)域的大小。MBUS_INIT指令完成時(shí),完成”輸出打開。錯(cuò)誤輸出字節(jié)包含執(zhí)行指令的結(jié)果。請(qǐng)參 閱Modbus從站協(xié)議執(zhí)行錯(cuò)誤代碼中可能因執(zhí)行指令而產(chǎn)生的錯(cuò)誤條件。包

51、含Modbus RTU從站指令庫的項(xiàng)目編譯、 下載到CPU中后,在編程計(jì)算機(jī)(PG/P。 上運(yùn)行一些Modbus測試軟件可以檢驗(yàn) S7-200的ModbusRTU!信是否正常,這對(duì)查找故 障點(diǎn)很有用。測試軟件通過計(jì)算機(jī)串口(RS-232)和PC/PPI電纜連接CPU如果必要,須將PC/PPI電纜設(shè)置在自由口通信方式。可到一些軟件下載網(wǎng)站尋找類似軟件,如 ModScan32 等。 - - 110024028326 1 + 9+H-100U-M6USJNITENModeDoneAddrErrorBaudParityDelayM鼠Q MaxAJ MaxHdd 匕世J 1OBMM網(wǎng)絡(luò)2SM0.0MBU

52、S_SLWEENDane -M0.2Error -MB25TLNETWORK 1 首次掃描時(shí)初始化 Modbus從站協(xié)議/將從站地址設(shè)為1,將端口 0設(shè)為9600波特,將奇偶校驗(yàn)設(shè)為偶數(shù),/允許存取所有的I、Q和AI數(shù)值,允許存取1000臺(tái)保存寄存器(2000個(gè)字節(jié))/從VB0開始。LD SM0.1CALL MBUS_INIT, 1, 1,9600, 2, +0, +128, +32, +1000, &VB0, M0.1, MB1NETWORK 2/每次掃描時(shí)執(zhí)行Modbus從站協(xié)議LD SM0.0CALL MBUS SLAVE, M0.2, MB22.MBUS_SLAVE 令輸入/輸出操作數(shù)

53、數(shù)據(jù)類型完成I, Q, M, S, SM, T, C, V, L布爾錯(cuò)誤VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LDMBUS_SLAVE令被用于為Modbus主設(shè)備發(fā)出的請(qǐng)求服務(wù),并且必須在每次掃描時(shí)執(zhí)行, 以便允許該指令檢查和回答Modbus請(qǐng)求。在每次掃描且 EN輸入開啟時(shí)執(zhí)行該指令。MBUS_SLAVE令無輸入?yún)?shù)。當(dāng)MBUS_SLAVE令對(duì)Modbus請(qǐng)求作出應(yīng)答時(shí),完成”輸出打開。如果沒有需要服務(wù)的 請(qǐng)求時(shí),完成”輸出關(guān)閉。錯(cuò)誤”輸出包含執(zhí)行該指令的結(jié)果。該輸出只有在“完成打開時(shí)才有效。如果完成關(guān)閉,錯(cuò)誤參數(shù)不會(huì)改變。請(qǐng)參閱Modbus從站協(xié)議執(zhí)行錯(cuò)誤代碼中可能因執(zhí)行該指令而導(dǎo)致的錯(cuò)誤條件。3.常問問題Modbus從站的網(wǎng)絡(luò)地址與 S7-200的CPU網(wǎng)絡(luò)地址有什么關(guān)系?沒有關(guān)系。支持網(wǎng)絡(luò)通信的通信協(xié)議必須有其自己的網(wǎng)絡(luò)尋址規(guī)定。Modbus從站的地址只是它在Modbus網(wǎng)絡(luò)上的地址,而通常所說的 S7-200 CPU地址是CPU在西門子的PPI網(wǎng) 絡(luò)上的站地址。S7-200 CPU的大部分通信功能都通過PPI網(wǎng)絡(luò)完成,例如編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論