哪里有賣西門子SM321模塊
![]() | 6ES7321-1BL00-0AA0 SIMATIC S7-300,數字量輸入M 321,光電隔離,32DI,24 V DC,40針 |
1 概述
S7-1200 與 S7-300 之間的以太網通信方式比較多,可以采用ISO on TCP、TCP和 S7 的方式進行通信。在S7-1200 CPU 中采用ISO on TCP和TCP這兩種協議進行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV ) 指令編程。S7-300 CPU一側如果使用的是CPU集成的PN接口,連接不在STEP7的NetPro中建立連接,而是使用西門子提供的OPEN IE 的方式來實現。
本文主要介紹了如何實現在S7-1200 和S7-300 CPU集成PN口之間的ISO on TCP通信,包括通信的基本步驟、配置及編程等內容。具體的實現方法有多種,比如在S7-1200中可以使用不帶連接的通信指令(TCON, TDISCON, TSEN, TRCV),也可以使用帶連接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能塊編程的方式來實現,也可以使用Open Communication Wizard工具(OPEN IE向導)的方式來建立OPEN IE的通信。
為了方便理解,本文在S7-1200中使用不帶連接的通信指令TCON, TDISCON, TSEN, TRCV,在S7-300側通過功能塊編程的方式來實現。
關于S7-1200和S7-300 OPEN IE通信的文檔可以登錄西門子自動化與驅動集團的下載中心,:http://www.ad.siemens.com.cn/download/ ,根據如表1提供的文檔編號搜索并下載相關文檔。
文檔編號 | 中文標題 |
A0426 | 西門子 S7-1200 PLC 技術參考Version 1.5 |
A0416 | S7-1200與S7-300 的以太網TCP 及ISO on TCP通信 |
A0421 | 如何實現兩個S7-1200 CPU之間的以太網通信 |
A0415 | 通過S7協議實現S7-1200 與S7-300的通信 |
A0414 | S7-1200基本以太網通信使用指南 |
A0284 | 使用西門子PLC集成的PN口實現S5 兼容通信使用入門 |
A0345 | 使用 Open Communication Wizard 建立開放式 ISO on TCP 通信 |
A0346 | 使用 Open Communication Wizard 建立開放式 UDP 通信 |
A0347 | 使用 Open Communication Wizard 建立開放式 TCP 通信 |
A0344 | S7-300和S7-400集成PN口的S7通信 |
A0334 | PN CPU/CP的開放式通訊-Open IE |
表1 下載中心文檔列表
2 軟硬件及所要完成的通信任務
2.1硬件設備
實驗的硬件設備:
1、S7-1200 CPU,CPU1212 AC/DC/RLY(6ES7 212-1BD30-0XB0)
2、S7-300 PN CPU,CPU317-2PN/DP(6ES7 317-2EH13-0AB0 V2.6.7)
3、PC機(帶以太網卡)
4、SCALANCE X216交換機,S7-1200、S7-300和PC通過交換機互連起來
5、TP以太網電纜
2.2 軟件環境
1、STEP7 Basic V10.5 SP2
2、STEP7 V5.4 SP5
3、通信所需的功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔:《A0284 使用西門子PLC集成的PN口實現S5 兼容通信使用入門》提供的程序。下載鏈接:80490650
2.3 所要完成的通信任務
本例中所要完成的通信任務定義為:
1、 將S7-1200的發送數據塊DB3里的8個字節數據發送到S7-300的DB3中。
2、 將S7-300 DB3里接收到的8個字節數據再發送到S7-1200的接收數據塊DB4中。
3 S7-1200 CPU的組態編程
3.1創建新項目
1、打開STEP 7 Basic 軟件并新建項目
在STEP 7 Basic 的 “Portal View”中選擇“Create new project”創建一個新項目,項目名稱為“GS_ISO”。
2、添加硬件并命名PLC
然后進入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU(6ES7 212-1BD30-0XB0)添加到機架上,設備名為 PLC_1,如圖1所示。
圖1 添加新的PLC站
為了編程方便,我們使用 CPU 屬性中定義的時鐘位,定義方法如下:
在“Project tree> PLC_1 > Device configuration” 中,選中 CPU ,然后在下面的屬性窗口中,“Properties > System and clock memory” 下,將系統位定義在MB1,時鐘位定義在MB0,如圖2所示。程序中我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個位,可以使用它去自動激活發送任務。
圖2 系統和時鐘存儲器
3、為 S7-1200 CPU的PROFINET 通信口分配以太網地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.2 ,子網掩碼為255.255.255.0,如圖3所示。
圖3為 S7-1200 CPU的PROFINET 接口分配IP地址
3.2調用并配置通信指令
1、在 PLC_1 的 OB1 中調用 “TCON”通信指令
進入“Project tree > PLC_1 > Program blocks > OB1” 主程序中,從右側窗口 “Instructions > Extended Instructions > Communications” 下調用 “TCON” 指令,并選擇 “Single Instance” 生成背景 DB塊,如圖4所示。
圖4 調用TCON指令
2、定義PLC_1 的 “TCON” 連接參數
PLC_1 的 TCON 指令的連接參數需要在指令下方的屬性窗口“Properties > Configuration > Connection parameter”中設置,如圖5所示。
連接參數說明:
End point | :選擇通信伙伴,這里選擇“unspecified” |
Address | :通信伙伴S7-300站的IP地址“192.168.0.3” |
Connection type | :選擇通信協議為ISO on TCP |
Connection ID | :連接的地址 ID 號,這個 ID 號在后面的編程里會用到 |
Connection data | :創建連接時,系統會自動生成本地的連接 DB 塊,所有的連 接數據都會存在這個 DB 塊中。 |
| :選擇本地 PLC_1作為主動連接,S7-300 CPU作為被動連接 |
Address details | :設定 TSAP 地址這里本地設置成“PLC_1”, TSAP ID自動為“50.4C.43.5F.31”,伙伴方設置成不設置TSAP(ASCII),設置TSAP ID 為“E0.02.50.4C.43.5F.31”。 |
圖5 “TCON” 指令的連接參數
3、分配 “TCON” 的塊參數
在指令下方的屬性窗口“Properties > Configuration > block parameter”中設置,可以根據需要自己為“TCON” 塊相應的輸入輸出參數。好參數的塊,如圖6所示。其中M8.0作為啟動連接的觸發位,連接ID = 1與連接參數里面的設置相同。
圖6 “TCON” 的塊參數
4、在 PLC_1 的 OB1 中調用 “TSEND” 發送通信指令
首先創建一個發送數據塊,通過 “Project tree > PLC_1 > Program blocks > Add new block”,選擇 “Data block” 創建 DB 塊,選擇尋址,點擊“OK”鍵,如圖7所示。
圖7 創建一個發送數據塊DB3
打開創建的發送數據塊,在數據塊中定義發送數據區為 8個字節的數組,如圖8所示。
圖8 創建發送數據區
然后在OB1 中調用“TSEND”發送通信指令,并為“TSEND”參數。使用M0.3( 2Hz 的時鐘脈沖)上升沿激活發送任務,發送數據區為P# DB3.DBX0.0 BYTE 8,連接 ID = 1與連接參數里面的設置相同,發送長度LEN=8。分配好參數的“TSEND”塊如圖9所示。
圖9 調用“TSEND”發送通信塊
5、在 PLC_1 的 OB1 中調用“TRCV”接收通信指令
同樣,先創建一個接收數據塊DB4 ,如圖10所示。“TRCV”接收通信指令的調用方法與“TSEND” 發送通信指令的調用方法相同,M8.1作為接收指令的使能位,如圖11所示。
圖10創建接收數據區
圖11 調用“TRCV”接收通信塊
6、在 PLC_1 的 OB1 中調用 “TDISCON”通信指令
zui后,為了斷開通信鏈接,我們需要調用“TDISCON”通信指令,如圖12所示。
圖12 調用“TDISCON”通信塊
3.3下載程序
至此,S7-1200側的組態和編程都已經完成,可以在項目編譯無錯誤后,直接下載到S7-1200 CPU中,并啟動CPU的運行。
4 S7-300 CPU的組態編程
S7-300帶PN接口的CPU支持ISO on TCP通信功能,通過該集成以太網接口組態ISO on TCP通信時,只能使用開放式通信的功能塊,這些的功能塊可以在STEP7 “ 通訊塊”的 “標準庫 ”中找到,如圖13所示。
圖13 S7-300 CPU通信指令庫
庫中提供了下列通信功能塊:
´> FB 65 "TCON",用于建立連接,連接時需要UDT65來提供參數
> FB 66 "TDISCON",用于終止連接
> FB 63 "TSEND",用于發送數據到S7站點、S5站點、PC站或者第三方設備
> FB 64 "TRCV" 用于從S7站點、S5站點、PC站或者第三方設備接收數據
要通過CPU 的 集成PN 接口實現開放的ISO on TCP通信,不能在Netpro網絡組態中直接建立連接,必須通過程序每個連接的參數。用于通信的FB標準功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔《A0284 使用西門子PLC集成的PN口實現S5 兼容通信使用入門》提供的例程。下載鏈接:80490650
從附件提供的例程 ”Sample_1 ( 50 KB ) ” 中將把需要的程序塊拷貝到新建的項目中,包括:
> UDT 65 "TCON_PAR",存放用戶通信參數
> FB420 "SET_ISO_ENDPOINT" ,用于修改UDT65內通信對象參數
> FC21, 被FB420調用
隨后,使用通信功能塊 FB65 "TCON"、FB66 "TDISCON"、FB63 "TSEND" 和 FB64 "TRCV" 完成程序的編寫。
4.1創建新項目
1、打開STEP7,新建一個項目
2、在項目中插入一個SIMATIC 300的站
3、組態硬件,插入一個CPU317-2PN/DP的CPU,并為PN接口分配IP地址“192.168.0.3”,如圖14所示。同時,在CPU的“Cycle/Clock Memory”屬性頁中MB0為時鐘存儲器,在程序中可以使用M0.3(2Hz 的時鐘脈沖)去自動激活發送任務,如圖15所示。
圖14為PN接口分配IP地址
圖15設置時鐘存儲器字節
4.2編寫通信程序
1、從樣例程序中拷貝通信所需的塊
從附件提供的sample_1 ( 50 KB ) 例程中把需要的FB420、FC21與UDT65程序塊拷貝到新創建的項目中,如圖16所示。
圖 16
2、生成數據塊
在程序中創建一個DB塊,塊號不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65,如圖17所示。
圖17
3、生成并調用FB塊
首成一個FB塊(本例為FB400),在FB400靜態變量區建立一個結構“T_TSAP“,包含如下變量,并為變量分配初始值,如圖18所示。
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有兩個前導字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP規定)和 0x02(CPU槽號)
2) LOC_TSAP(STRING14)= 本地用戶定義的ASCII字符'PLC_1' (注意要與S7-1200側設置保持*)。
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用兩個前導符。
4) REM_TSAP (STRING16)= 遠程用戶定義的ASCII字符'PLC_1' (注意要與S7-1200側設置保持*)。
圖18
然后在生成的FB400中調用FB420,如圖19所示。
圖19
其中參數的含義如下:
1)ID: 連接ID,與S7-1200里的設置保持*
2)DEV_ID:用于本PLC型號(注意不是通信對方)
DEV_ID = B#16#1本PLC型號為 IM151-8 PN/DP CPU
DEV_ID = B#16#2本PLC型號為CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3本PLC型號為CPU319-3PN/DP
DEV_ID = B#16#5本PLC型號為CPU41x-3PN/DP
3)ACTIVE: 主動或是被動建立連接,通信雙方必須一個主動,一個被動,本例中S7-300側為被動方。
4)T_TSAP: 靜態變量區的結構變量,用于ISO ON TCP 通信的TSAP地址
5)IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址,即S7-1200的IP地址192.168.0.2
6)CON_DB: 用UDT65生成的變量,即DB101
4、在OB1中調用發送和接收功能塊
在OB1中先調用FB400功能塊,為其背景數據塊DB400,如圖20所示。
圖20
然后再在OB1中依次調用通信功能塊FB65、FB64、FB63、FB66。其中發送和接收功能塊FB64、FB63的數據區都為DB3,建立DB3如圖21所示。關于塊的使用請參考STEP7的在線幫助或相關文檔說明。
圖21
FB65 “TCON”,建立連接功能塊,如圖22所示。通過輸入參數 "REQ"一個上升沿來建立連接。 “ID” 為連接ID,“CONNECT” 參數填寫用 UDT65 生成的變量, 連接建立后會一直保持,直到調用FB66 "TDISCON" 斷開連接、CPU停止或者斷電。其中CONNECT為通過UDT65生成的DB塊,即DB101, ID = 1。通過M8.0啟動作業,執行連接的建立。
圖22
FB64 “TRCV”,接收功能塊,如圖23所示。"TRECV" EN_R始終為TRUE, ID 填寫連接ID,”DATA” 填寫接收數據區,輸出參數 "NDR" 用于表示新的數據已經收到,輸出參數 "LEN" 表示接收的數據長度。本例中連接ID = 1。DB3作為接收數據塊,接收數據的字節長度為8,接收作業通過M8.1使能。
圖23
FB63 “TSEND”,發送功能塊,如圖24所示。連接ID = 1。DB3為發送數據塊,發送字節長度為8,發送作業通過M0.3觸發。"TSEND" 發送請求依靠輸入參數"REQ"的上升沿來實現,如果“BUSY”位為true時不要觸發"REQ"。輸出參數 "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。
圖24
FB66 “TDISCON”,取消連接功能塊,如圖25所示。可以根據需要取消ID=W#16#1的連接,作業通過M8.2使能。
圖25
4.3下載程序
S7-300側的組態和編程都完成后,直接下載到S7-300 CPU中,并啟動CPU的運行。
5 監控通信結果
對S7-1200和S7-300都組態和編程后,下載所有組態及程序并搭建好網絡后,首先在在S7-1200中將M8.0置位為1,然后再在S7-300中將M8.0置位為1,兩個站的“TCON” 被激活,建立兩個站之間的ISO on TCP連接。
連接正常建立后,即可以進行數據的交換。在S7-1200和S7-300站中將 ”TRCV” 功能塊的EN_R置位為1,使能接收,監控通信結果如圖26所示。
通過監控結果可以看到,S7-1200中發送數據塊DB3的8個字節數據被發送到S7-300站的DB3中,同時,S7-300的DB3中接收到的數據又被發送到S7-1200的接收數據塊DB4中。
圖26 在線監控通信結果
3. 硬件列表和接線
3.1 硬件列表
S7-300從站 | CPU315-2DP | 6ES7 315-2AG10-0AB0 |
CP341 RS422/485 | 6ES7 341-1CH01-0AE0 | |
Dongle | 6ES7 870-1AB01-0YA0 | |
PC 適配器(USB) | 6ES7 972-0CB20-0XA0 | |
S7-200主站 | CPU 224XP | 6ES7 214-2BD23-0XB0 |
表1 硬件設備
3.2 硬件接線
3.2.1 接口定義
S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設備的接口引腳的示意圖如下所示,更詳細的信息可以參考CP341及S7-200通信接口的手冊。
圖1 S7-200 CPU通信口引腳定義
圖2 S7-300 CP341 RS422/485 通訊口引腳定義
3.2.2 接線示意圖
圖3 硬件結構和接線示意圖
哪里有賣西門子SM321模塊
4. 組態設置和編程
4.1 S7-200做Modbus主站的設置
S7-200 CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數據位;1位奇/偶/無校驗;1停止位。通信波特率可以設置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設備可以和S7-200進行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現的。
4.1.1 Modbus RTU主站庫
使用Modbus 主站指令庫時需要注意的幾點:
- 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;
- Modbus RTU 主站庫對CPU的版本有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*);
- Modbus主站可讀/寫的zui大數據量為120個字(指每一個 MBUS_MSG 指令);
- Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;
- 使用Modbus 庫時必須對庫存儲區進行分配,見下圖設置,而且分配的空間不能和程序中其它空間沖突,否則編譯調用會報錯。
圖4 庫存儲區設置
- Modbus主站庫支持的功能碼和地址對應關系:
Modbus 地址 讀 / 寫 Modbus 從站須支持的功能 00001~09999 讀 功能1:讀輸出點 數字量輸出 寫 功能5:寫單個輸出點 功能15:寫多個輸出點 10001~19999 讀 功能2:讀輸入點 數字量輸入 30001~39999 讀 功能4:讀輸入寄存器 輸入寄存器 40001~49999 讀 功能3:讀保持寄存器 保持寄存器 寫 功能6:寫單個寄存器 功能16:寫多個寄存器 表2需要從站支持的功能
4.1.2 S7-200 Modbus主站編程
編程時,使用SM0.0調用MBUS_CTRL完成主站的參數初始化,詳細見下表,參數的說明也可以從子程序的局部變量表中找到。
圖5 Modbus RTU 主站初始化
圖中各參數含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 必須保證每一掃描周期都被使能(使用SM0.0)。 |
b | Mode / 模式 | 為1時使能為Modbus協議;為0時恢復為PPI協議。 |
c | Baud / 波特率 | 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 |
d | Parity / 校驗 | 校驗方式選擇:0=無校驗;1=奇校驗,2=偶校驗。 |
e | Timeout / 超時 | 主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000毫秒,允許設置的范圍為1-32767。這個值必須設置足夠大以保證從站有時間響應。 |
f | Done / 完成位 | 初始化完成,此位會自動置1。 |
g | Error / 錯誤位 | 初始化錯誤代碼。 |
表3
調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求。
圖6 調用Modbus RTU 主站讀寫子程序
圖中各參數含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 同一時刻只能有一個讀寫功能使能。 |
b | First / 讀寫請求位 | 每一個新的讀寫請求必須使用脈沖觸發。 |
c | Slave / 從站地址 | 可選擇的范圍1–247。 |
d | RW / 讀寫操作位 | 0=讀, 1=寫。 |
e | Addr / 讀寫從站的數據地址 | 選擇讀寫的數據類型: |
00001 至 0xxxx - 開關量輸出 | ||
10001 至 1xxxx - 開關量輸入 | ||
30001 至 3xxxx - 模擬量輸入 | ||
40001 至 4xxxx - 保持寄存器。 | ||
f | Count / 數據的個數 | 通訊的數據個數(位或字的個數)。 |
g | DaptPtr / 數據指針 | 如果是讀指令,讀回的數據放到這個數據區中; |
如果是寫指令,要寫出的數據放到這個數據區中。 | ||
h | Done / 完成位 | 讀寫功能完成位。 |
i | Error / 錯誤代碼 | 只有在Done位為1時,錯誤代碼才有效。 |
表4
從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是3,數據存儲區為VB2000開始的區域。
4.2 CP341 做Modbus 從站的硬件組態
4.2.1 硬件組態
圖7 S7-300側硬件組態
4.2.2 設置Modbus參數
圖8 消息楨字符結構
按照上述操作設置參數,從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數據位,偶校驗位,1位停止位,從站站地址是3,主從通訊設備的字符幀格式和波特率等參數設置需要*。
圖9 RS422/485 接口組態
RS422/485接口只能一個有效,接口的選擇只需要組態而不需要在硬件上短接。
4.2.3 Modbus驅動的下載
當配置好Modbus通信的參數后,保存前需要向CP341下載Modbus Slave的驅動,一旦下載完成后無需再次下載。
需要注意的是,在下載驅動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示。
圖10 下載Dongle時,需要CPU停機
圖11 從站驅動下載后結果
4.2.4 CP341做Modbus從站的編程
從Step7 軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。
圖12 Modbus Slave 例程打開路徑
OB1中調用FB80編程如下:
圖13 FB80程序塊調用
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態中在線后的CP341的診斷緩沖區察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考
《S7-300以用于PtP CP Modbus 協議RTU格式S7的可裝載驅動程序為從站》的手冊。
FB80的各參數含義如下
LADDR | 硬件組態中CP341的起始邏輯地址,本例中為256 |
START_TIMER | 初始化超時定時器,本例中為T120 |
START_TIME | 初始化定時器時間,本例中為5S |
OB_MASK | I/O訪問錯誤屏蔽位,本例中為True(I/O訪問錯誤已屏蔽) |
CP_START | FB初始化使能位,本例中為M0.0 |
CP_START_FM | CP_START 初始化的上升沿位,本例中為M0.1 |
CP_NDR | 從CP卡寫操作位,本例中為m0.2 |
CP_START_OK | 初始化完成且無錯誤,本例中為M0.3 |
CP_START_ERROR | 初始化完成,但有錯誤,本例中為M0.4 |
ERROR_NR | 錯誤號,本例中為MW2 |
ERROR_INFO | 錯誤信息,本例中為MW4 |
表5
5. 通訊測試
Modbus RTU格式通信協議是以主從的方式進行數據傳輸的,在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站,從站返回響應報文。Modbus 系統間的數據交換是通過功能碼來控制的,以下對現場常用的功能碼進行分類測試,關于功能碼的詳細信息請參考手冊。
5.1 FC01/05/15功能碼
CP341從站的通訊區域配置
圖14 FC01/05/15 參數組態界面
FC01、FC05、FC15對應的數據區為位輸出,數據的傳遞以位為單位,可以讀寫操作,用戶地址區為0xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為00001 ~ 00008,對應S7-300的M10.0 ~ M10.7,并且以此為例說明FC01功能碼的通訊。
S7-200主站程序調用
圖15 功能碼FC01使用
S7-200主站,用功能碼FC01讀取從站8點數字量輸出,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
圖16 FC01功能碼數據交換
5.2 FC02功能碼
CP341從站的通訊區域配置
圖17 FC02 參數組態界面
FC02對應的數據區為位輸出,數據的傳遞以位為單位,只讀操作,用戶地址區為1xxxx,Modbus地址在信息傳遞中從0開始,如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為10001 ~ 10008,對應S7-300的M20.0 ~ M20.7,并且以此為例說明FC02功能碼的通訊。
S7-200主站程序調用
圖18 功能碼FC02使用
S7-200主站,用功能碼FC02讀取從站8點數字量輸入,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
圖19 FC02功能碼數據交換
5.3 FC03/06/16 功能碼
CP341從站的通訊區域配置
圖20 FC03/06/16參數組態界面
FC03/06/16 對應的數據區為寄存器,數據的傳遞以字為單位,可以讀寫操作,用戶地址區為4xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址
區為40001 ~ 40004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
FC03功能碼的通訊。
S7-200主站程序調用
圖21功能碼FC03使用
S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
圖22 FC03功能碼數據交換
5.4 FC04 功能碼
CP341從站的通訊區域配置
圖23 FC04參數組態界面
FC04對應的數據區為寄存器輸入,數據的傳遞也以字為單位,只讀操作,用戶地址區3xxxx,Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為30001 ~ 30004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明FC04功能碼的通訊。
S7-200主站程序調用
圖24功能碼FC04使用
S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
圖25 FC04功能碼數據交換
5.5 Limits 欄
圖26 Limits 參數組態界面
對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關S7-300存儲區,即使用這些功能碼時,S7-300存儲區需要在設定的zui小和zui大的范圍之間,如果訪問的區域超出這個范圍,則訪問會被拒絕,同時輸出報錯誤信息。
6. 總結
本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關于通訊的組態設置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。
1 G120控制單元CU240
2 CU240E 6SL3244-0BA10-0BA0
3 CU240S 6SL3244-0BA20-1BA0
4 CU240S DP 6SL3244-0BA20-1PA0
5 CU240S PN 6SL3244-0BA20-1FA0
6 CU240S DP-F 6SL3244-0BA21-1PA0
7 CU240S PN-F 6SL3244-0BA21-1FA0
8 PM240(不帶內置濾波器)380-480V 3AC 重載
9 1.3A/0.37KW 6SL3224-0BE13-7UA0
10 1.7A/0.55KW 6SL3224-0BE15-5UA0
11 2.2A/0.75KW 6SL3224-0BE17-5UA0
12 3.1A/1.1KW 6SL3224-0BE21-1UA0
13 4.1A/1.5KW 6SL3224-0BE21-5UA0
14 5.9A/2.2KW 6SL3224-0BE22-2UA0
15 7.7A/3KW 6SL3224-0BE23-0UA0
16 10.2A/4KW 6SL3224-0BE24-0UA0
17 18A/5.5KW 6SL3224-0BE25-5UA0
18 25A/7.5KW 6SL3224-0BE27-5UA0
19 32A/11KW 6SL3224-0BE31-1UA0
20 38A/15KW 6SL3224-0BE31-5UA0
21 45A/18.5KW 6SL3224-0BE31-8UA0
22 60A/22KW 6SL3224-0BE32-2UA0
23 75A/30KW 6SL3224-0BE33-0UA0
24 90A/37KW 6SL3224-0BE33-7UA0
25 110A/45KW 6SL3224-0BE34-5UA0
26 145A/55KW 6SL3224-0BE35-5UA0
27 178A/75KW 6SL3224-0BE37-5UA0
28 205A/90KW 6SL3224-0BE38-8UA0
29 250A/110KW 6SL3224-0BE41-1UA0
30 302A/132KW 6SL3224-0XE41-3UA0
31 370A/160KW 6SL3224-0XE41-6UA0
32 477A/200KW 6SL3224-0XE42-0UA0
33 PM240(不帶內置濾波器)380-480V 3AC 輕載
34 1.3A/0.37KW 6SL3224-0BE13-7UA0
35 1.7A/0.55KW 6SL3224-0BE15-5UA0
36 2.2A/0.75KW 6SL3224-0BE17-5UA0
37 3.1A/1.1KW 6SL3224-0BE21-1UA0
38 4.1A/1.5KW 6SL3224-0BE21-5UA0
39 5.9A/2.2KW 6SL3224-0BE22-2UA0
40 7.7A/3KW 6SL3224-0BE23-0UA0
41 10.2A/4KW 6SL3224-0BE24-0UA0
42 18A/7.5KW 6SL3224-0BE25-5UA0
43 25A/11KW 6SL3224-0BE27-5UA0
44 32A/15KW 6SL3224-0BE31-1UA0
45 38A/18.5KW 6SL3224-0BE31-5UA0
46 45A/22KW 6SL3224-0BE31-8UA0
47 60A/30KW 6SL3224-0BE32-2UA0
48 75A/37KW 6SL3224-0BE33-0UA0
49 90A/45KW 6SL3224-0BE33-7UA0
50 110A/55KW 6SL3224-0BE34-5UA0
51 145A/75KW 6SL3224-0BE35-5UA0
52 178A/90KW 6SL3224-0BE37-5UA0
53 205A/110KW 6SL3224-0BE38-8UA0
54 250A/132KW 6SL3224-0BE41-1UA0
55 302A/160KW 6SL3224-0XE41-3UA0
56 370A/200KW 6SL3224-0XE41-6UA0
57 477A/250KW 6SL3224-0XE42-0UA0
58 PM240(帶內置濾波器)380-480V 3AC重載
59 5.9A/2.2KW 6SL3224-0BE22-2AA0
60 7.7A/3KW 6SL3224-0BE23-0AA0
61 10.2A/4KW 6SL3224-0BE24-0AA0
62 18A/5.5KW 6SL3224-0BE25-5AA0
63 25A/7.5KW 6SL3224-0BE27-5AA0
64 32A/11KW 6SL3224-0BE31-1AA0
65 38A/15KW 6SL3224-0BE31-5AA0
66 45A/18.5KW 6SL3224-0BE31-8AA0
67 60A/22KW 6SL3224-0BE32-2AA0
68 75A/30KW 6SL3224-0BE33-0AA0
69 90A/37KW 6SL3224-0BE33-7AA0
70 110A/45KW 6SL3224-0BE34-5AA0
71 145A/55KW 6SL3224-0BE35-5AA0
72 178A/75KW 6SL3224-0BE37-5AA0
73 PM240(帶內置濾波器)380-480V 3AC輕載
74 5.9A/2.2KW 6SL3224-0BE22-2AA0
75 7.7A/3KW 6SL3224-0BE23-0AA0
76 10.2A/4KW 6SL3224-0BE24-0AA0
77 18A/7.5KW 6SL3224-0BE25-5AA0
78 25A/11KW 6SL3224-0BE27-5AA0
79 32A/15KW 6SL3224-0BE31-1AA0
80 38A/18.5KW 6SL3224-0BE31-5AA0
81 45A/22KW 6SL3224-0BE31-8AA0
82 60A/30KW 6SL3224-0BE32-2AA0
83 75A/37KW 6SL3224-0BE33-0AA0
84 90A/45KW 6SL3224-0BE33-7AA0
85 110A/55KW 6SL3224-0BE34-5AA0
86 145A/75KW 6SL3224-0BE35-5AA0
87 178A/90KW 6SL3224-0BE37-5AA0
88 PM250(帶內置濾波器)380-480V 3AC重載
89 18A/5.5KW 6SL3225-0BE25-5AA0
90 18A/5.5KW 6SL3225-0BE25-5AA1
91 25A/7.5KW 6SL3225-0BE27-5AA0
92 25A/7.5KW 6SL3225-0BE27-5AA1
93 32A/11KW 6SL3225-0BE31-1AA0
94 32A/11KW 6SL3225-0BE31-1AA1
95 38A/15KW 6SL3225-0BE31-5AA0
96 45A/18.5KW 6SL3225-0BE31-8AA0
97 60A/22KW 6SL3225-0BE32-2AA0
98 75A/30KW 6SL3225-0BE33-0AA0
99 90A/37KW 6SL3225-0BE33-7AA0
100 110A/45KW 6SL3225-0BE34-5AA0
101 145A/55KW 6SL3225-0BE35-5AA0
102 178A/75KW 6SL3225-0BE37-5AA0
103 PM250(帶內置濾波器)380-480V 3AC輕載
104 18A/7.5KW 6SL3225-0BE25-5AA0
105 18A/7.5KW 6SL3225-0BE25-5AA1
106 25A/11KW 6SL3225-0BE27-5AA0
107 25A/11KW 6SL3225-0BE27-5AA1
108 32A/15KW 6SL3225-0BE31-1AA0
109 32A/15KW 6SL3225-0BE31-1AA1
110 38A/18.5KW 6SL3225-0BE31-5AA0
111 45A/22KW 6SL3225-0BE31-8AA0
112 60A/30KW 6SL3225-0BE32-2AA0
113 75A/37KW 6SL3225-0BE33-0AA0
114 90A/45KW 6SL3225-0BE33-7AA0
115 110A/55KW 6SL3225-0BE34-5AA0
116 145A/75KW 6SL3225-0BE35-5AA0
117 178A/90KW 6SL3225-0BE37-5AA0
118 進線電抗器(僅用于PM240)
119 0.37KW 6SE6400-3CC00-2AD3
120 0.55KW 6SE6400-3CC00-2AD3
121 0.75KW 6SE6400-3CC00-4AD3
122 1.1KW 6SE6400-3CC00-4AD3
123 1.5KW 6SE6400-3CC00-6AD3
124 2.2KW 6SL3203-0CD21-0AA0
125 3KW 6SL3203-0CD21-0AA0
126 4KW 6SL3203-0CD21-4AA0
127 7.5KW 6SL3203-0CD22-2AA0
128 11KW 6SL3203-0CD22-2AA0
129 15KW 6SL3203-0CD23-5AA0
130 18.5KW 6SL3203-0CJ24-5AA0
131 22KW 6SL3203-0CJ24-5AA0
132 30KW 6SL3203-0CD25-3AA0
133 37KW 6SL3203-0CJ28-6AA0
134 45KW 6SL3203-0CJ28-6AA0
135 55KW 6SE6400-3CC11-2FD0
136 75KW 6SE6400-3CC11-2FD0
137 90KW 6SE6400-3CC11-7FD0
138 110KW 6SL3000-0CE32-3AA0
139 132KW 6SL3000-0CE32-8AA0
140 160KW 6SL3000-0CE33-3AA0
141 200KW 6SL3000-0CE35-1AA0
142 250KW 6SL3000-0CE35-1AA0
143 輸出電抗器
144 0.37KW 6SE6400-3TC00-4AD2
145 0.55KW 6SE6400-3TC00-4AD2
146 0.75KW 6SE6400-3TC00-4AD2
147 1.1KW 6SE6400-3TC00-4AD2
148 1.5KW 6SE6400-3TC00-4AD2
149 2.2KW 6SL3202-0AE21-0CA0
150 3KW 6SL3202-0AE21-0CA0
151 4KW 6SL3202-0AE21-0CA0
152 7.5KW 6SL3202-0AJ23-2CA0
153 11KW 6SL3202-0AJ23-2CA0
154 15KW 6SL3202-0AJ23-2CA0
155 18.5KW 6SE6400-3TC05-4DD0
156 22KW 6SE6400-3TC03-8DD0
157 30KW 6SE6400-3TC05-4DD0
158 37KW 6SE6400-3TC08-0ED0
159 45KW 6SE6400-3TC07-5ED0
160 55KW 6SE6400-3TC14-5FD0
161 75KW 6SE6400-3TC15-4FD0
162 90KW 6SE6400-3TC14-5FD0
163 110KW 6SL3000-2BE32-1AA0
164 132KW 6SL3000-2BE32-6AA0
165 160KW 6SL3000-2BE33-2AA0
166 200KW 6SL3000-2BE33-8AA0
167 250KW 6SL3000-2BE35-0AA0
168 制動電阻
169 0.37KW 6SE6400-4BD11-0AA0
170 0.55KW 6SE6400-4BD11-0AA0
171 0.75KW 6SE6400-4BD11-0AA0
172 1.1KW 6SE6400-4BD11-0AA0
173 1.5KW 6SE6400-4BD11-0AA0
174 2.2KW 6SL3201-0BE12-0AA0
175 3KW 6SL3201-0BE12-0AA0
176 4KW 6SL3201-0BE12-0AA0
177 7.5KW 6SE6400-4BD16-5CA0
178 11KW 6SE6400-4BD16-5CA0
179 15KW 6SE6400-4BD16-5CA0
180 18.5KW 6SE6400-4BD21-2DA0
181 22KW 6SE6400-4BD21-2DA0
182 30KW 6SE6400-4BD21-2DA0
183 55KW 6SE6400-4BD24-0FA0
184 75KW 6SE6400-4BD24-0FA0
185 90KW 6SE6400-4BD24-0FA0
186 110KW 6SE6400-4BD26-0FA0
187 132KW 6SE6400-4BD26-0FA0
188 160KW 6SL3000-1BE31-3AA0
189 200KW 6SL3000-1BE32-5AA0
190 250KW 6SL3000-1BE32-5AA0