西門子6ES7313-5BG04-0AB0
6ES7313-5BG04-0AB0 SIMATIC S7-300,CPU 313C, 緊湊型 CPU mit MPI, 24 DE/16 DA,4AE,2AA,1 Pt100, 3 schnelle 計數(shù)器(30 kHz), integr. 電源 DC 24V, 工作存儲器 128 KByte, 前連接器(2x 40極)和 微型存儲卡 需要 |
一、S7 Open IE通訊概述
可以通過S7-300/400 PLC集成的 PROFINET 接口使用基于工業(yè)以太網(wǎng)的開放式通信與Simotion設(shè)備進行數(shù)據(jù)交換,下列通信協(xié)議支持開放式通訊:
• TCP
• UDP
PLC 通過工業(yè)以太網(wǎng) OPEN IE 通信方式下的 UDP 協(xié)議進行數(shù)據(jù)交換,需要使用以下程序塊:
• FB65 "TCON" 用于建立 UDP 端點
• FB66 "TDISCON" 用于斷開 UDP 端點
• FB67 "TUSEND" 用于發(fā)送數(shù)據(jù)
• FB68 "TURCV" 用于接收數(shù)據(jù)
這些通信功能塊可以在函數(shù)庫 Standard Library -> Communication Blocks 中找到。 用于連接 UDP 端點的參數(shù)存儲于一個數(shù)據(jù)結(jié)構(gòu)體中。在這個例子中,數(shù)據(jù)結(jié)構(gòu)體 UDT65 "TCON_PAR" 將被使用,用戶將對這個數(shù)據(jù)結(jié)構(gòu)體進行參數(shù)化。不需要在 NetPro 中配置通信連接。
S7-300/400 CPU 集成工業(yè)以太網(wǎng)口以 OPEN IE 的通信方式實現(xiàn)UDP 連接的通信程序示例請從下述鏈接中下載 :31938422
二、S7 Open IE通訊下載示例程序描述
從上述鏈接中下載的例程中,S7 程序中包括 FB65 "TCON" 的調(diào)用及帶有 UDP 連接端點參數(shù)的數(shù)據(jù)結(jié)構(gòu)體 UDT65 "TCON_PAR"。S7 程序中還包含函數(shù)庫 Standard Library -> Communication Blocks 中函數(shù) FB67 "TUSEND" and FB68 "TURCV" 的調(diào)用,F(xiàn)B67 "TUSEND" 用于將數(shù)據(jù)發(fā)送給一個 S7 站,一個 PC 站或第三方系統(tǒng)。FB68 "TURCV" 用于接收一個 S7 站,一個 PC 站或第三方系統(tǒng)發(fā)送的數(shù)據(jù)。
首先在硬件配置中生成 S7-300 站,在這里將 MB10 作為脈沖時鐘,通過脈沖時鐘發(fā)送數(shù)據(jù)。存盤編譯并將硬件配置下載到 CPU 中。
STEP 7 程序包含程序塊 OB100、OB1、 FB500 、 DB500、 FC95、 FC96、 UDT65、 UDT66 、 FB63、 FB64、 FB67 和 FB68。
OB100:
OB100 在 CPU 重新運行時執(zhí)行一次(暖起動)。在這個 OB 塊中*次的通信通過 M0.3 "START-UP" 觸發(fā)。
OB1:
OB1 循環(huán)執(zhí)行,F(xiàn)B500 (背景數(shù)據(jù)塊:DB500) 在 OB1 中調(diào)用,使用 M0.3 "START-UP" 對 INIT_COM 賦值.,在 OB1 結(jié)束前將 M0.3 "START-UP" 復位。
圖. 01: OB1
FB500:
FB500 在 OB1 中循環(huán)調(diào)用。在這個 FB 中調(diào)用 FC95 "SET_UDP_REMOTE" ,F(xiàn)C96 "SET_UDP_ENDPOINT" 及 FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" 和 FB66 "TDISCON"。
通過 FC95 "SET_UDP_ENDPOINT" 定義本地 UDP 端點連接參數(shù),下列參數(shù)需要考慮:
• ID: 連接 ID
• DEV_ID:
DEV_ID = B#16#2 用于 CPU 31x-2PN/DP
DEV_ID = B#16#3 用于 CPU 319-3PN/DP
DEV_ID = B#16#5 用于 CPU 41x-3PN/DP
• LOC_PORT: CPU 中的本地端口號
圖. 02: 調(diào)用 FC95
通過 FC96 "SET_UDP_REMOTE" 定義遠端的 UDP 端點連接參數(shù)。下列參數(shù)需要考慮:
• REM_PORT: 通信方的端口號
• IP_ADDR1 ... IP_ADDR4: 通信方的 IP 地址
圖. 03: 調(diào)用 FC96
在 FB65 "TCON" 輸入?yún)?shù) "REQ" 施加一個上升沿觸發(fā)本地 UDP 端點連接的建立。數(shù)據(jù)結(jié)構(gòu)體 UDT65 "TCON_PAR" 中的本地端點參數(shù)包含在 FB500 的背景數(shù)據(jù)塊中。在 FB65 "TCON" 的輸入?yún)?shù) "CONNECT" 定義了本地端點參數(shù)的數(shù)據(jù)區(qū),本地端點連接在系統(tǒng)啟動時建立并保持,通過 FB66 "TDISCON" 或 CPU 停止及斷電可以斷開通信連接。
圖. 04: 調(diào)用 FB65 "T_CON"
在 FB67 "TUSEND" 輸入?yún)?shù) "REQ" 施加上升沿觸發(fā)發(fā)送請求,發(fā)送請求通過脈沖時鐘 M10.6 及變量 "C1.SEND_BUSY" 控制。如果發(fā)送請求正在運行,"C1.SEND_BUSY" 被置位,新的發(fā)送不能執(zhí)行 ( 參考圖05 )。
在輸入?yún)?shù) "DATA" 中定義數(shù)據(jù)發(fā)送區(qū)。在輸入?yún)?shù) "LEN" 中定義發(fā)送的字節(jié)數(shù)。
在輸入?yún)?shù) ADDR 定義接收方的 IP 地址,在示例程序中,通信方的地址參數(shù)存儲于數(shù)據(jù)結(jié)構(gòu) UDT66 "TADDR_PAR" 中,數(shù)據(jù)結(jié)構(gòu)包含于背景數(shù)據(jù)塊 DB500 中。
通過輸出參數(shù) "DONE", "ERROR" 及 "STATUS" 可以查詢請求狀態(tài)。
圖. 05: 調(diào)用 FB67 "TUSEND"
如果發(fā)送請求成功完成, "C1.SEND_BUSY" 被復位。新的發(fā)送請求可以被再次觸發(fā)。
如果發(fā)送請求完成但是有錯誤,"C1.SEND_BUSY" 同樣被復位,F(xiàn)B67 的輸出參數(shù) "STATUS" 存儲故障代碼用于故障分析。
圖. 06: 上升沿觸發(fā)發(fā)送請求/復位 "C1.SEND_BUSY"
圖. 07: FB67 "TUSEND" 的輸出參數(shù) STATUS 存儲發(fā)送狀態(tài)
一旦 UDP 端點被連接即可接收數(shù)據(jù)。在輸入?yún)?shù) "DATA" 定義接收的數(shù)據(jù)區(qū)的地址和長度用于存儲接收數(shù)據(jù)。在 ADDR 中定義的數(shù)據(jù)用于存儲發(fā)送方的 IP 地址。在這個示例中,通信方的地址參數(shù)存儲于數(shù)據(jù)結(jié)構(gòu) UDT66 "TADDR_PAR" 中,數(shù)據(jù)結(jié)構(gòu)包含于背景數(shù)據(jù)塊 DB500 中。
圖. 08: 調(diào)用 FB68 "TURECV"
輸出參數(shù) "NDR" 用于顯示接收新的數(shù)據(jù)。輸出參數(shù) "LEN" 指示接收數(shù)據(jù)的長度。
如果接收數(shù)據(jù)不成功,可以評估輸出參數(shù) "STATUS" 的存儲的狀態(tài)字。
圖. 09: FB68 "TURECV" 的輸出參數(shù) STATUS 的存儲發(fā)送狀態(tài)
可以調(diào)用 FB66 "TDISCON" 斷開 UDP 本地端點的連接。通過賦值 FB66 "TDISCON" 的輸入?yún)?shù) "REQ" 一個上升沿觸發(fā)斷開本地端點連接。
圖. 10: 調(diào)用 FB66 "TDISCON"
下載 STEP 7 項目:
STEP 7 項目包含一個調(diào)用 FB500 及 FC95 "SET_UDP_ENDPOINT"、FC96 "SET_UDP_REMOTE" 的例子程序、FB65 "TCON"、FB66 "TDISCON"、FB67 "TUSEND" 和 FB68 "TURECV" 用于狀態(tài)評估,例子程序使用 STEP 7 V5.4 SP3 生成。
配置 UDP 連接:
為了發(fā)送 UDP 數(shù)據(jù)包到多個通信方,需要配置額外的本地和遠程的 UDP 端點。 可以復制 FB500 以便得到更多的功能塊 (例如 FB501)。修改本地和遠程的 UDP 端點的參數(shù),可以生成新的背景數(shù)據(jù)塊:
本地 UDP 端點的 ID 可以選擇的值范圍從 1 到 4095。
本地和遠程端口可以選擇的值范圍從 2000 到 5000。
對于每一個本地的 UDP 端點,ID 和端口必須是*的。即必須定義一個不同的 ID 和一個不同的端口對于每個本地 UDP 端點。
根據(jù)通訊方的配置,定義遠程端口和 IP 地址。
下表顯示了如何配置多個本地和遠程 UDP 端點。在這個示例中,相同的 ID 和 同一端口被用于本地和遠程終端。
本地/遠程 UDP 端點 | 1 | 2 | 3 |
ID | 1 | 2 | 3 |
LOC_PORT | 2000 | 2001 | 2002 |
REM_PORT | 2000 | 2001 | 2002 |
通訊方的 IP 地址 | 140.80.0.50 | 140.80.0.51 | 140.80.0.52 |
三、S7-300/400 CPU 集成工業(yè)以太網(wǎng)口以 OPEN IE 的通信方式與Simotion間實現(xiàn) UDP 連接的通信
附帶文件中提供了通過317-2PN/DP集成工業(yè)以太網(wǎng)口以 OPEN IE 的通信方式與Simotion間實現(xiàn) UDP 連接的通信的示例。
1.PLC側(cè)的編程及設(shè)置
將鏈接 31938422 中的示例程序下載后打開,將程序拷貝至用戶程序中。
打開FB500功能塊,做如下參數(shù)修改:
西門子6ES7313-5BG04-0AB0
圖. 11
圖. 12
圖. 13
圖. 14
圖. 15
2.Simotion側(cè)的編程
(1)在Simotion的命令庫中,包含UDP通訊函數(shù),如圖16所示:
圖. 16
(2)發(fā)送數(shù)據(jù)
圖. 17
SourcePort:本方的端口號
DestinationAddress:對方的IP地址
DestinationPort:對方的端口號
CommunicationMode :通信完成后是否釋放通信資源
DataLength:發(fā)送的數(shù)據(jù)長度,zui大長度1400字節(jié)
Data:發(fā)送數(shù)據(jù)區(qū),ARRAY [0..1399] OF BYTE
Return value:狀態(tài)返回值
(3)接收數(shù)據(jù)
圖. 18
Port:定義本方的端口號,與發(fā)送方的端口號對應
CommunicationMode:通信完成后是否釋放通信資源
NextCommand :同步執(zhí)行或異步執(zhí)行
ReceiveVariable:數(shù)據(jù)接收區(qū)ARRAY [0..1399] OF BYTE
Return value:狀態(tài)返回值
在S7-300或S7-400的本地機架或遠程I/O站點(DP)中的I/O模塊,可以通過調(diào)用SFC 55(WR_PARM) 系統(tǒng)功能在系統(tǒng)運行時修改模塊參數(shù)。SFC 55只修改信號模塊的參數(shù)數(shù)據(jù),不能修改CPU裝載存儲區(qū)中關(guān)于目的模塊系統(tǒng)組態(tài)數(shù)據(jù)(SDB),因此系統(tǒng)重啟后,SFC 55修改的模塊參數(shù)將被CPU裝載的系統(tǒng)數(shù)據(jù)所覆蓋,恢復下載的組態(tài)參數(shù)。SFC 55(WR_PARM)不適用于Profinet I/O。
1 參考手冊
對于S7-300/400的信號模塊,參數(shù)可編程模塊及參數(shù)的數(shù)據(jù)記錄格式請參考手冊:
S7-300 模塊數(shù)據(jù)手冊
8859629
S7-400模板數(shù)據(jù)手冊
1117740
對于系統(tǒng)功能SFC 55(WR_PARM)使用請參考手冊:
用于 S7300/400系統(tǒng)和 標準功能的系統(tǒng)軟件
1214574
2 S7-300/400參數(shù)可編程信號模塊
當前S7-300參數(shù)可編程信號模塊(表1):
類型 | MLFB | 備 注 |
SM321 | 6ES7 321-7BH01-0AB0 | DI 16 x DC 24 V |
6ES7 327-1BH00-0AB0 | DI 8/DX 8 x DC 24 V/0.5 A | |
SM322 | 6ES7 322-8BF00-0AB0 | DO 8 x DC 24 V/0.5 A |
6ES7 322-5FF00-0AB0 | DO 8 x AC120/230 V /2A ISOL | |
6ES7 322-5HF00-0AB0 | DO 8 x Rel. AC230V / | |
SM331 | 6ES7331-7NF00-0AB0 | AI 8 x 16 Bit |
6ES7331-7NF10-0AB0 | AI 8 x 16 Bit | |
6ES7331-7HF0x-0AB0 | AI 8 x 14 Bit High Speed; isochrone | |
6ES7331-1KF02-0AB0 | AI 8 x 13 Bit | |
6ES7 331-7KF02-0AB0 | AI 8 x 12 bit | |
6ES7331-7KB02-0AB0 | AI 2 x 12 Bit | |
6ES7331-7PF01-0AB0 | AI 8 x RTD | |
6ES7331-7PF11-0AB0 | AI 8 x TC | |
6ES7331-7PE10-0AB0 | AI 6 x TC isolated | |
SM332 | 6ES7332-7ND02-0AB0 | AO 4 x 16 bit |
SM334 | 6ES7334-0KE00-0AB0 | AI 4/AO 2 x 12 bit |
表1 S7-300參數(shù)可編程信號模塊
當前S7-400參數(shù)可編程信號模塊(表2):
類型 | MLFB | 備 注 |
SM421 | 6ES7 421-7BH01-0AB0 | DI 16 x DC 24 V |
6ES7 421-7DH00-0AB0 | DI 16 x UC 24/60 V | |
SM422 | 6ES7 422-5EH10-0AB0 | DO 16 x DC 20-125 V/1.5 A |
6ES7 422-7BL00-0AB0 | DO 32 x DC 24 V/0.5 A | |
6ES7 422-5EH00-0AB0 | DO 16 x AC 20-120 V/2 A | |
SM431 | 6ES7 431-7QH00-0AB0 | AI 16 x 16 Bit |
6ES7 431-7KF10-0AB0 | AI 8 x RTD x 16 Bit | |
6ES7 431-7KF00-0AB0 | AI 8 x 16 Bit |
表2 S7-400參數(shù)可編程信號模塊
3 SM331 AI8 x12bit模塊的參數(shù)
以SM331 AI8 x12bit (6ES7331-7KF02-0AB0,下略寫為SM331(7KF02))為例,說明如何編程修改信號參數(shù)。
3.1 可修改參數(shù)
參考手冊《S7-300 模塊數(shù)據(jù)》A.4小節(jié),表A-4列出SM331(7KF02)模塊參數(shù)是否可組態(tài),可編程修改為(表3):
參數(shù) | 參數(shù)數(shù)據(jù)記錄號 | 可編程… | |
… SFC55 | … PG | ||
診斷:組診斷 | 0 | 不支持 | 支持 |
診斷:使用斷線監(jiān)控 | |||
溫度單位 | |||
溫度系數(shù) | |||
濾波 | |||
啟用診斷中斷 | 1 | 支持 | |
超*硬件中斷 | |||
啟用周期結(jié)束中斷 | |||
噪聲抑制 | |||
測量方法 | |||
測量范圍 | |||
上限 | |||
下限 |
表3 SM331(7KF02)參數(shù)組態(tài)編程特性
3.2 參數(shù)數(shù)據(jù)記錄1
通過數(shù)據(jù)記錄1可以進行修改SM331(7KF02)參數(shù),參數(shù)數(shù)據(jù)記錄1一共是14個字節(jié),結(jié)構(gòu)為:
?字節(jié)0(圖1):
圖1參數(shù)數(shù)據(jù)記錄1字節(jié)0
?字節(jié)1(圖2):
噪聲抑制 | 積分時間 | 代碼 |
400 Hz | 2.5 ms | 2#00 |
60 Hz | 16.7 ms | 2#01 |
50 Hz | 20 ms | 2#10 |
10 Hz | 100 ms | 2#11 |
圖2參數(shù)數(shù)據(jù)記錄1字節(jié)1
?字節(jié)2至字節(jié)5(圖3)
圖3參數(shù)數(shù)據(jù)記錄1字節(jié)2至字節(jié)5
部分測量方法與量程代碼(表4):
測量方法 | 代碼 | 測量范圍 | 代碼 |
… | … | … | … |
電壓 | 2#0001 | ± 80 mV | 2#0001 |
± 250 mV | 2#0010 | ||
± 500 mV | 2#0011 | ||
±1 V | 2#0100 | ||
±2.5 V | 2#0101 | ||
±5 V | 2#0110 | ||
1 V到5 V | 2#0111 | ||
0 V到10 V | 2#1000 | ||
±10 V | 2#1001 | ||
± 25 mV | 2#1010 | ||
± 50 mV | 2#1011 | ||
… | … | … | … |
(上表僅列出本文示例所涉及測量方法及量程代碼,其余代碼請參考《S7-300模塊數(shù)據(jù)手冊》)
表4 SM331(7KF02)部分測量方法與量程代碼
?字節(jié)6至字節(jié)13(圖4)
圖4參數(shù)數(shù)據(jù)記錄1字節(jié)6至字節(jié)13
4 編程SM331 AI8 x12bit參數(shù)
組態(tài)SM331(7KF02) 0通道為0~10V電壓測量,組態(tài)報警上限為9V,下限為1V,示例將報警的上限編程修改為8V,下限修改為2V。
4.1 組態(tài)SM331(7KF02)
圖5 組態(tài)SM331(7KF02)在主機架
圖6 SM331 參數(shù)組態(tài)
4.2 編程SM331(7KF02)寫參數(shù)
OPN "DB1" | //要求DB1長度 >= 14 字節(jié) | ||
L 2#10000100 | // 使能OB40 | ||
T DBB 0 | |||
L 2#10101010 | // 4個通道組的干擾抑制時間, 50Hz | ||
T DBB 1 | |||
L 2#11001 | // 4個通道組的量程,電壓測量,+/-10V | ||
T DBB 2 | |||
T DBB 3 | |||
T DBB 4 | |||
T DBB 5 | |||
L 22118 | // 通道0上限報警值, 8V | ||
T DBW 6 | // 22118= 27648 / 10V * 8V | ||
L 5530 | // 通道0下限報警值, 2V | ||
T DBW 8 | // 5530 = 27648 / 10V * 2V | ||
L 26266 | // 通道2上限報警值,原組態(tài)的9.5V | ||
T DBW 10 | // 26266= 27648 / 10V * 9.5V | ||
L 1382 | // 通道2下限報警值,原組態(tài)的0.5V | ||
T DBW 12 | // 1382= 27648 / 10V * 0.5V | ||
CALL "WR_PARM" | // SFC 55 | ||
REQ | :=M0.0 | // M0.0觸發(fā)寫入?yún)?shù) | |
IOID | :=B#16#54 | // 輸入地址 | |
LADDR | :=W#16#110 | // 模塊邏輯起始地址272 | |
RECNUM | :=B#16#1 | // 數(shù)據(jù)記錄號 1 | |
RECORD | :="DB1".DR | // 將寫入模塊的參數(shù)數(shù)據(jù) | |
RET_VA | :=MW2 | // RET_VAL = 0,無錯誤 | |
BUSY | :=M0.1 | // M0.1 True -> False,寫完成 | |
AN M 0.1 | |||
R M 0.0 |
關(guān)鍵詞
S7-300,S7-400,系統(tǒng)功能, 模塊參數(shù)
西門子6ES7313-5BG04-0AB0