應(yīng)用領(lǐng)域 | 醫(yī)療衛(wèi)生,環(huán)保,化工,石油,能源 |
---|
SIMATIC S7-300,CPU 313C-2 DP 帶 MPI 的緊湊型 CPU, 16 DE/16 DA, 3 個快速計數(shù)器(30 kHz), 集成 DP 接口, 集成電源 24V DC, 工作存儲器 128 KB, 前連接器(1x 40 極)和 需要微型存儲卡
參考價 | 面議 |
更新時間:2021-03-08 11:09:22瀏覽次數(shù):157
聯(lián)系我們時請說明是化工儀器網(wǎng)上看到的信息,謝謝!
西門子CPU 317-2PN/DP
說明
為了通過在NetPro中組態(tài)的TCP連接傳送數(shù)據(jù)到S7-300,必須在S7程序中調(diào)用如下功能:
通過TCP協(xié)議的數(shù)據(jù)傳輸是采用數(shù)據(jù)流的方式,沒有傳送任何關(guān)于消息長度或起始的任何信息,發(fā)送程序填充數(shù)據(jù)到TCP連接,數(shù)據(jù)通過TCP協(xié)議以字節(jié)為單位以透明數(shù)據(jù)流來傳送。
接收程序必須評估數(shù)據(jù)流來確定在數(shù)據(jù)流中消息的起止。
發(fā)送方定義可被接收方解釋的消息結(jié)構(gòu),消息結(jié)構(gòu)包含用戶數(shù)據(jù),本例中為ASCII字符和后的控制字符(比如回車),后的控制字符標(biāo)志著消息的結(jié)束。
S7程序說明
本例子程序說明了一個S7-300 站通過TCP協(xié)議如何接收可變消息長度的數(shù)據(jù),功能塊FB103 "AG_RECV_TCP_xVAR"實(shí)現(xiàn)此功能。
FB103 "AG_RECV_TCP_xVAR" 內(nèi)部調(diào)用了FC6 "AG_RECV"以便通過TCP協(xié)議來接收可變消息長度的數(shù)據(jù)。
FB103 "AG_RECV_TCP_xVAR"功能塊對于時間做了優(yōu)化,可在一個OB循環(huán)中接收可變字節(jié)數(shù)的數(shù)據(jù),特別是包含了把ASCII 字符作為消息結(jié)束標(biāo)志,可根據(jù)需要調(diào)整FC6 "AG_RECV"在一個OB1循環(huán)周期中接收的大字節(jié)數(shù)。
CPU 運(yùn)行需要 SIMATIC 微存儲卡(MMC)
可參數(shù)化的特性
可以使用 STEP 7 對 S7 的組態(tài)、屬性以及CPU的響應(yīng)進(jìn)行參數(shù)設(shè)置:
顯示功能與信息功能
集成的通訊功能
系統(tǒng)功能
CPU 具有廣泛的系統(tǒng)功能特性,諸如:診斷、參數(shù)賦值、報警、定時和測量等。
CPU 317-2 PN/DP 裝配有:
字節(jié) | 參數(shù) | 數(shù)據(jù)類型 | 描述 |
0 to 1 | block_length | WORD | "OUCW_2" 數(shù)據(jù)結(jié)構(gòu)長度 |
2 to 3 | id | BYTE | 連接標(biāo)識 值范圍: w#16#0001 至 w#16#0FFF 必須在相關(guān)塊ID中該參數(shù)。 |
4 | connection_type | BYTE | TCP 協(xié)議版本: B#16#11 |
5 | active_est | BOOLEAN | 建立連接標(biāo)識
|
6 | local_device_id | BYTE | 通過CPU 315-2 PN/DP集成PN接口通信:B#16#02 |
7 | local_tsap_id_len | BYTE | local_tsap_id 長度 connection_type = B#16#11時可行值:0或2 (主動端:0或2,被動端:2) |
8 | rem_subnet_id_len | BYTE | 當(dāng)前不可用,參數(shù)值B#16#00 |
9 | rem_staddr_len | BYTE | 遠(yuǎn)程連接端點(diǎn)地址長度
|
10 | rem_tsap_id_len | BYTE | rem_tsap_id parameter參數(shù) connection_type = B#16#11時的可行值:0或2 |
11 | next_staddr | BYTE | next_staddr 長度 |
12 to 27 | local_tsap_id | ARRAY [1..16] of BYTE | 本地端口號:2000,例如 local_tsap_id[1] = B#16#7 (十六進(jìn)制端口號高字節(jié)) local_tsap_id[2] = B#16#D0 (十六進(jìn)制端口號低字節(jié)) local_tsap_id[3-16] = B#16#00 |
28 to 33 | rem_subnet_id | ARRAY [1..6] of BYTE | 當(dāng)前不可用,參數(shù)值B#16#00 |
34 to 39 | rem_staddr | ARRAY [1..6] of BYTE | 遠(yuǎn)程連接端點(diǎn)IP地址: 192.168.0.30 rem_staddr[1] = B#16#C0 rem_staddr[2] = B#16#A8 rem_staddr[3] = B#16#00 rem_staddr[4] = B#16#1E rem_staddr[5-6] = B#00(保留) |
40 to 55 | rem_tsap id | ARRAY [1..16] of BYTE | 遠(yuǎn)程連接端點(diǎn)端口號: 2000,例如 local_tsap_id[1] = B#16#7 (十六進(jìn)制端口號高字節(jié)) local_tsap_id[2] = B#16#D0 (十六進(jìn)制端口號低字節(jié)) local_tsap_id[3-16] = B#16#00 |
56 to 61 | next_staddr | ARRAY [1..6] of BYTE | next_staddr[1-6] = B#16#00 |
62-63 | spare | WORD | 保留,值W#16#0000. |
表 01
例程描述:
S7 程序中包含了對 FB65 "TCON" 的調(diào)用和帶有建立 TCP 連接的連接參數(shù)數(shù)據(jù)結(jié)構(gòu)"OUCW_2" 創(chuàng)建的DB1 。也包含了來自于 Standard Library -> Communication Blocks 下的 FB63 "TSEND" 和 FB64 "TRCV" 的調(diào)用。 FB63 "TSEND" 用于發(fā)送數(shù)據(jù)到 S7 站或 S5 站,以及到 PC 站或到第三方系統(tǒng). FB64 "TRCV" 用于接收來自其他 S7 站,S5 站,PC 站和第三方系統(tǒng)的數(shù)據(jù)。
首先為 S7-300 站創(chuàng)建硬件組態(tài)。注意配置 MB100 作為時鐘存儲器。 發(fā)送請求由該時鐘存儲器觸發(fā)。保存編譯 S7-300 站的硬件組態(tài),下載到 CPU。
STEP 7 程序由 OB100,OB1,F(xiàn)B1, DB11,DB1,DB100,DB200 , FB63,F(xiàn)B64,F(xiàn)B65 和 FB66。
OB100:
OB100 是重啟 OB 塊,當(dāng) CPU 重新啟動時 (暖啟動) 執(zhí)行一次.在 OB100 中,通信由 M0.3 觸發(fā)。
OB1:
OB1 循環(huán)調(diào)用。 FB1 在 OB1 中被調(diào)用 (背景數(shù)據(jù)塊: DB11) , M0.3作為 INIT_COM 參數(shù),M10.0作為ABORT參數(shù)。在 OB1 中調(diào)用 FB1結(jié)束后, 復(fù)位M0.3。
西門子CPU317-2PN/DP模塊
圖. 01
FB1:
在 OB1 中調(diào)用 FB1。該 FB1 中調(diào)用以下功能塊:
定義連接ID
你可以隨意修改連接ID。修改FB1 network2中的連接ID和你的組態(tài)保持*。連接ID保存在DB11的靜態(tài)變量中。
本例中定義連接ID為 "2"。
圖. 02 連接建立
通過 FB65"TCON" 的輸入?yún)?shù) "REQ" 的上升沿觸發(fā)來建立連接。數(shù)據(jù)塊DB11 的背景數(shù)據(jù)塊中集成了帶有連接參數(shù)的數(shù)據(jù)結(jié)構(gòu) "OUCW_2"。
FB65 "TCON" 的輸入?yún)?shù) "CONNECT" 需要一個含有連接參數(shù)的存儲區(qū)。
在系統(tǒng)啟動時連接建立并保持,直到調(diào)用 FB66 "TDISCON" 來斷開連接,或讓CPU 進(jìn)入停止模式或關(guān)閉電源來斷開連接。
圖. 03
在 "FB63 "TSEND" 的輸入?yún)?shù) "REQ" 上施加上升沿以觸發(fā)發(fā)送請求。發(fā)送任務(wù)的觸發(fā)是由時鐘標(biāo)志 M100.6 和變量 "SEND_BUSY" 來控制的。如果發(fā)送任務(wù)運(yùn)行, "C1.SEND_BUSY" 則被置位,無法再觸發(fā)新的發(fā)送請求。
可以為輸入?yún)?shù) "DATA" 包含要發(fā)送數(shù)據(jù)的存儲區(qū)。
并在輸入?yún)?shù) "LEN" 填寫要發(fā)送的字節(jié)數(shù)。
本例中發(fā)送數(shù)據(jù)保存在DB100中,向通信伙伴發(fā)送100個字節(jié)。
輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于任務(wù)評價。
圖. 04
如果發(fā)送任務(wù)成功完成, "SEND_BUSY" 被復(fù)位。這時新的發(fā)送任務(wù)才可以被觸發(fā)。
如果發(fā)送任務(wù)執(zhí)行出錯,那么 "SEND_BUSY" 變量同樣被復(fù)位,F(xiàn)B63 的輸出參數(shù) "STATUS" 的值被保存用于錯誤分析。
西門子CPU317-2PN/DP模塊
圖. 05
圖. 06
一旦 TCP 連接建立了,就能接收數(shù)據(jù)。
用輸入?yún)?shù) "DATA" 保存接收數(shù)據(jù)的存儲的地址和長度。
本例中接受100個字節(jié)并保存在DB200中。
圖. 07
輸出參數(shù) "NDR" 用于表示已接收到新數(shù)據(jù)。輸出參數(shù) "RCVD_LEN" 表明接收數(shù)據(jù)的長度,如果數(shù)據(jù)接收成功,保存參數(shù) "RCVD_LEN"。
圖. 08
如果數(shù)據(jù)未被成功接收,那么輸出參數(shù) "STATUS" 可以保存下來并用于評估狀態(tài)。
圖. 09
可以通過 FB66 "TDISCON" 有目的地結(jié)束 TCP 連接。在 FB66 "TDISCON" 的輸入?yún)?shù)"REQ" 上施加上升沿以請求結(jié)束 TCP 連接。
圖. 10
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(不帶內(nèi)置濾波器)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(不帶內(nèi)置濾波器)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(帶內(nèi)置濾波器)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(帶內(nèi)置濾波器)380-480V 3AC輕載
74 5.9A/2.2KW 6SL3224-0BE22-2AA0
75 7.7A/3KW 6SL3224-0BE23-0AA0
西門子CPU 317-2PN/DP