軟件版本:S7-200 SMART V2.2 注意:一個CPU支持兩個通信端口同時做MODBUS RTU主站 一、背景知識普及概述 1、S7-200 SMART CPU上的通信口0(Port0)通過指令庫支持Modbus RTU從站模式。 2、S7-200 SMART CPU 上的通訊口0和1(Port0和Port1)通過指令庫支持Modbus RTU主站模式。 3、S7-200 SMART CPU 上的通訊口0和1(Port0和Port1)不能同時作為Modbus RTU主站或從站。 S7-200 SMART CPU 本體集成通信口(Port 0)、可選信號板(Port 1)可以支持Modbus RTU協(xié)議,成為Modbus RTU主站站。此功能是通過 S7-200 SMART的自由口通信模式實現(xiàn),因此可以通過無線數(shù)據(jù)電臺等慢速通信設(shè)備傳輸。 注:SB CM01(RS485/RS232) 訂貨號:6ES7 288-5CM01-0AA0 S7-200 SMART 軟件的幫助有明確說明 打開軟件 找到庫 選擇初始化主站 或者從站程序塊 然后按F1 從站 參數(shù)“端口”(Port) 設(shè)置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可選信號板上的 RS-485 或 RS-232)。 主站 參數(shù)“端口”(Port)設(shè)置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可選 CM01 信號板上的 RS-485 或 RS-232)。 清晰的寫著他們都可以既做主又可以做從 ? 而且兩個口是獨立的 既可以同時做主 可以同時做從 還可以向你說的 一個做主一個做從 關(guān)鍵詞 “獨立的” Modbus RTU 主站協(xié)議 Modbus 主站指令使用以下 CPU 資源: 執(zhí)行 MBUS_CTRL 會初始化 Modbus 主站協(xié)議,并使分配的 CPU 端口(0 或 1)專用于 Modbus 主站通信。 CPU 端口用于 Modbus 通信時,無法再將其用于任何其它用途,包括與 HMI 的通信。 Modbus 主站指令會影響所有與由 MBUS_CTRL 指令分配的端口上的自由端口通信相關(guān)聯(lián)的 SM 位置。 Modbus 主站指令使用中斷執(zhí)行某些功能。 用戶程序不得禁用這些中斷。 Modbus 主站指令程序大小 3 個子例程和 1 個中斷例程 1942 個字節(jié)的程序空間用于存儲兩個主站指令和支持例程 Modbus 主站指令的變量需要 286 個字節(jié)的 V 存儲器塊。該區(qū)域的起始地址由用戶指定,保留給 Modbus 變量。 說明 要將 CPU 通信端口從 Modbus 改回 PPI,以便可與 HMI 設(shè)備通信,應(yīng)將 MBUS_CTRL 指令的模式參數(shù)設(shè)置為零 (0)。 Modbus RTU 從站協(xié)議 Modbus 從站協(xié)議指令使用以下 CPU 資源: MBUS_INIT 指令會初始化 Modbus 從站協(xié)議,并使分配的 CPU 端口(0 或 1)專用于 Modbus 從站通信。 CPU 端口用于 Modbus 通信時,無法再將其用于任何其它用途,包括與 HMI 的通信。 Modbus 從站指令會影響所有與由 MBUS_INIT 指令分配的端口上的自由端口通信相關(guān)聯(lián)的 SM 位置。 Modbus 從站指令程序大小 Modbus 從站指令使用 3 個子例程和 2 個中斷。 Modbus 從站指令需要 2113 個字節(jié)的程序空間來存儲兩個從站指令和支持例程。 Modbus 從站指令的變量需要 786 個字節(jié)的 V 存儲器塊。該區(qū)域的起始地址由用戶指定,保留給 Modbus 變量。 說明 要將 CPU 通信端口從 Modbus 改回 PPI,以便可與 HMI 設(shè)備通信,應(yīng)將 MBUS_INIT 指令的模式參數(shù)設(shè)置為零 (0)。 二、配置辦法基本步驟 1.打開 Micro/WIN SMART軟件,在“庫”中調(diào)用“MBUS_CTRL”和“MBUS_MSG“兩個子程序; 使用 SM0.0 調(diào)用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制 各參數(shù)意義如下: 1 EN 使能: 必須保證每一掃描周期都被使能(使用 SM0.0) 2 Mode 模式: 為 1 時,使能 Modbus 協(xié)議功能;為 0 時恢復為系統(tǒng) PPI 協(xié)議 3 Baud 波特率: 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 4 Parity 校驗: 校驗方式選擇 0=無校驗 1=奇較驗 2=偶較驗 5Port 端口號:0 = CPU 集成的 RS 485 通訊口 ; 1 = 可選 CM 01 信號板 。 6 Timeout 超時: 主站等待從站響應(yīng)的時間,以毫秒為單位,典型的設(shè)置值為 1000 毫秒(1 秒),允許設(shè)置的范圍為 1 – 32767。 注意: 這個值必須設(shè)置足夠大以保證從站有時間響應(yīng)。 7 Done 完成位: 初始化完成,此位會自動置1??梢杂迷撐粏?MBUS_MSG 讀寫操作(見例程) 8 Error 初始化錯誤代碼(只有在 Done 位為1時有效): 0= 無錯誤 1= 校驗選擇非法 2= 波特率選擇非法 3= 超時無效 4= 模式選擇非法 9= 端口無效 10= 信號板端口 1 缺失或未組態(tài) 2.調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個Modbus 請求; 各參數(shù)意義如下: 1 EN 使能: 同一時刻只能有一個讀寫功能(即 MBUS_MSG)使能 注意:建議每一個讀寫功能(即 MBUS_MSG)都用上一個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環(huán)進行(見例程)。 2 First 讀寫請求位: 每一個新的讀寫請求必須使用脈沖觸發(fā) 3 Slave 從站地址: 可選擇的范圍 1 – 247 4 RW 讀寫請求: 0 = 讀, 1 = 寫 注意: 1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 2. 開關(guān)量輸入和模擬量輸入只支持讀功能 5 Addr 讀寫從站的 選擇讀寫的數(shù)據(jù)類型 數(shù)據(jù)地址: 00001 至 0xxxx – 開關(guān)量輸出 10001 至 1xxxx – 開關(guān)量輸入 30001 至 3xxxx – 模擬量輸入 40001 至 4xxxx – 保持寄存器 6 Count 數(shù)據(jù)個數(shù) 通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù)) 注意: Modbus主站可讀/寫的最大數(shù)據(jù)量為120個字(是指每一個 MBUS_MSG 指令) 7 DataPtr 數(shù)據(jù)指針: 1. 如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 2. 如果是寫指令,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 8 Done 完成位 讀寫功能完成位 9 Error 錯誤代碼: 只有在 Done 位為1時,錯誤代碼才有效 0 = 無錯誤 1 = 響應(yīng)校驗錯誤 2 = 未用 3 = 接收超時(從站無響應(yīng)) 4 = 請求參數(shù)錯誤(slave address, Modbus address, count, RW) 5 = Modbus/自由口未使能 6 = Modbus正在忙于其它請求 7 = 響應(yīng)錯誤(響應(yīng)不是請求的操作) 8 = 響應(yīng)CRC校驗和錯誤 – 101 = 從站不支持請求的功能 102 = 從站不支持數(shù)據(jù)地址 103 = 從站不支持此種數(shù)據(jù)類型 104 = 從站設(shè)備故障 105 = 從站接受了信息,但是響應(yīng)被延遲 106 = 從站忙,拒絕了該信息 107 = 從站拒絕了信息 108 = 從站存儲器奇偶錯誤
|
|