商鋪名稱:上海斌勤電氣技術(shù)有限公司
聯(lián)系人:康奎(先生)
聯(lián)系手機(jī):
固定電話:
企業(yè)郵箱:192061030@qq.com
聯(lián)系地址:上海市松江區(qū)三新北路1800弄(松江電子商務(wù)園區(qū))
郵編:201501
聯(lián)系我時(shí),請(qǐng)說是在線纜網(wǎng)上看到的,謝謝!
6ES7221-3BD3O-OXBO技術(shù)參數(shù)
SIMATIC S7-1200,數(shù)字輸入 SB 1221,4DI,24V DC 200kHz, 漏型輸入(M lesend)
|
CPU自帶的以太網(wǎng)接口可以使用OPEN IE的方式實(shí)現(xiàn)如下協(xié)議,分別介紹如下:
? TCP
? UDP
? ISO-on-TCP
注意:以下內(nèi)容任何用戶可以免費(fèi)使用,復(fù)制和傳遞他人,程序的作者及擁有者不負(fù)責(zé)軟件的功能性和兼容性,使用者須自己承擔(dān)責(zé)任,由于內(nèi)容免費(fèi),所以不保證錯(cuò)誤的更正和熱線支持!
1. TCP通信
1.1通信程序塊的準(zhǔn)備
如下的通信塊可以用來建立TCP通信,您需要把這些程序塊拷貝到您的項(xiàng)目中:
1) FB65 "TCON" 用于建立連接,連接時(shí)需要UDT65來提供參數(shù)
2) FB66 "TDISCON" 用于斷開連接
3) FB63 "TSEND" 用于發(fā)送數(shù)據(jù)到S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備
4) FB64 "TRCV" 用于從S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備接收數(shù)據(jù)
5) UDT65 "TCON_PAR"存放用戶通信參數(shù)
6) FC97 "SET_TCP_ENDPOINTx" 用于修改UDT65類型變量?jī)?nèi)通信對(duì)象參數(shù)
FB63,64,65,66這四個(gè)功能塊可以在Standard Library -> Communication Blocks里得到:
圖 01: FB63,64,65,66
FC97與UDT65需要從如下項(xiàng)目中打開獲得:
圖 02: FC97與UDT65
首先建立一個(gè)S7-300或者S7-400站,拷貝如上程序塊到項(xiàng)目中。
1.2通信程序編寫
1.2.1 生成數(shù)據(jù)塊
在程序中生成一個(gè)DB塊,塊號(hào)不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 03: 生成UDT65類型變量
1.2.2在OB1中編程
首先調(diào)用FC97 "SET_TCP_ENDPOINTx"
圖 04: 調(diào)用FC97
FC97參數(shù)說明如下:
? ID: 連接ID
? DEV_ID
DEV_ID = B#16#1 用于本PLC型號(hào)(注意不是通信對(duì)方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(hào)(注意不是通信對(duì)方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(hào)(注意不是通信對(duì)方)為 CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(hào)(注意不是通信對(duì)方)為 CPU41x-3PN/DP
? ACTIVE: 主動(dòng)或是被動(dòng)建立連接,通信雙方必須一個(gè)主動(dòng),一個(gè)被動(dòng)
? LOC_PORT: CPU本地的TCP端口
? REM_PORT: 通信伙伴的TCP遠(yuǎn)程端口
? IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
? V23:本機(jī)是否是CPU31x-2PN/DP FIRMWARE 版本為2.3或以下版本
? CON_DB:用UDT65生成的變量
圖05: 調(diào)用FB65 "T_CON"
調(diào)用FB65 ,通過提供給FB65的輸入?yún)?shù)"REQ"一個(gè)上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數(shù)填寫用UDT65生成的變量, 連接建立后會(huì)一直保持,直到調(diào)用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
1.2.3 調(diào)用發(fā)送和接收程序
圖06: 調(diào)用 FB63,64發(fā)送接收數(shù)據(jù)
FB63 "TSEND" 發(fā)送請(qǐng)求依靠輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn),如果“BUSY”位為true時(shí)不要觸發(fā)"REQ"。輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于評(píng)估工作的情況。
FB64 "TRECV" 用于接收數(shù)據(jù),EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數(shù)據(jù)區(qū),輸出參數(shù)"NDR" 用于表示新的數(shù)據(jù)已經(jīng)收到,輸出參數(shù)"LEN" 表示接收的數(shù)據(jù)長(zhǎng)度。
1.2.4斷開連接
調(diào)用FB66 "TDISCON",“ID “填寫連接ID,輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn)斷開連接操作。
圖 07: 調(diào)用FB66 "TDISCON"
2. UDP通信
2.1通信程序塊的準(zhǔn)備
如下的通信塊可以用來建立UDP通信,您需要把這些程序塊拷貝到您的項(xiàng)目中:
1) FB65 "TCON" 用于建立連接,連接時(shí)需要UDT65來提供參數(shù)
2) FB66 "TDISCON" 用于斷開連接
3) FB67 "TUSEND"用于發(fā)送數(shù)據(jù)到S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備
4) FB68 "TURCV"用于從S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備接收數(shù)據(jù)
5) UDT65 "TCON_PAR"存放用戶通信參數(shù)
6) UDT66 "TADDR_PAR"存放用戶通信參數(shù)
7) FC95"SET_UDP_ENDPOINT"用于建立本地UDP通信參數(shù)
8) FC96"SET_UDP_REMOTE"用于建立遠(yuǎn)程UDP通信參數(shù)
FB65,66,67,68這四個(gè)功能塊可以在Standard Library -> Communication Blocks里得到:
圖 08: FB65,66,67,68
FC95,96與UDT65,66需要從如下項(xiàng)目中打開獲得:
圖 09: FC95,96與UDT65,66
首先建立一個(gè)S7-300或者S7-400站,拷貝如上程序塊到項(xiàng)目中。
2.2通信程序編寫
2.2.1 生成數(shù)據(jù)塊
然后在程序中生成一個(gè)DB塊,塊號(hào)不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 10: 生成UDT65類型變量
然后在程序中生成另一個(gè)DB塊,塊號(hào)不限(本例為db102),在塊中建立變量DB_VAR,類型為UDT66
圖 11: 生成UDT66類型變量
2.2.2在OB1中編程
首先調(diào)用FC95,96
圖 12:調(diào)用FC95,96
定義的本地UDP端點(diǎn)連接參數(shù):
通過FC95 "SET_UDP_ENDPOINT"設(shè)置,下列參數(shù)需要考慮:
? ID: 連接ID
? DEV_ID
DEV_ID = B#16#1 用于本PLC型號(hào)(注意不是通信對(duì)方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(hào)(注意不是通信對(duì)方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(hào)(注意不是通信對(duì)方)為CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(hào)(注意不是通信對(duì)方)為CPU41x-3PN/DP
? LOC_PORT: CPU本地的TCP端口
通過FC96 "SET_UDP_REMOTE"定義遠(yuǎn)端的UDP端點(diǎn). 下列參數(shù)需要考慮:
REM_PORT: 通信方端口號(hào)
IP_ADDR1 ... IP_ADDR4: 通信方IP地址
圖 13: 調(diào)用FB65 "T_CON"
調(diào)用FB65 ,通過提供給FB65的輸入?yún)?shù)"REQ"一個(gè)上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數(shù)填寫用UDT65生成的變量, 連接建立后會(huì)一直保持,直到調(diào)用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
2.2.3 調(diào)用發(fā)送和接收程序
圖 14: 調(diào)用FB67,68接收和發(fā)送數(shù)據(jù)
FB67 "TUSEND"發(fā)送請(qǐng)求依靠輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn),如果“BUSY”位為true時(shí)不要觸發(fā)"REQ"。輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于評(píng)估工作的情況。"ADDR"填寫UDT66生成的變量。
FB68 "TURCV" 用于接收數(shù)據(jù),EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數(shù)據(jù)區(qū),輸出參數(shù)"NDR" 用于表示新的數(shù)據(jù)已經(jīng)收到,輸出參數(shù)"LEN" 表示接收的數(shù)據(jù)長(zhǎng)度。"ADDR"填寫UDT66生成的變量。
2.2.4斷開連接
調(diào)用FB66 "TDISCON",“ID “填寫連接ID,輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn)斷開連接操作。
圖 15: 調(diào)用FB66 "TDISCON"
3. ISO ON TCP通信
3.1通信程序塊的準(zhǔn)備
如下的通信塊可以用來建立ISO ON TCP通信,您需要把這些程序塊拷貝到您的項(xiàng)目中:
1) FB65 "TCON" 用于建立連接,連接時(shí)需要UDT65來提供參數(shù)
2) FB66 "TDISCON" 用于斷開連接
3) FB63 "TSEND" 用于發(fā)送數(shù)據(jù)到S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備
4) FB64 "TRCV" 用于從S7站點(diǎn)、S5站點(diǎn)、PC站或者第三方設(shè)備接收數(shù)據(jù)
5) UDT65 "TCON_PAR"存放用戶通信參數(shù)
6) FB420 "SET_ISO_ENDPOINT" 用于修改UDT65內(nèi)通信對(duì)象參數(shù)
7) FC21 被FB420調(diào)用
FB63,64,65,66這四個(gè)功能塊可以在Standard Library -> Communication Blocks里得到:
圖 16: FB63,64,65,66
FB420 FC21與UDT65需要從如下項(xiàng)目中打開獲得:
圖 17: FB420 FC21與UDT65
首先建立一個(gè)S7-300或者S7-400站,拷貝如上程序塊到項(xiàng)目中。
3.2通信程序編寫
3.2.1 生成數(shù)據(jù)塊
在程序中生成一個(gè)DB塊,塊號(hào)不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 18: 生成UDT65類型變量
3.2.2在OB1中編程
首先生成一個(gè)FB塊,本例為FB400:
在靜態(tài)變量區(qū)建立一個(gè)結(jié)構(gòu)“T_TSAP“,包含如下變量:
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有兩個(gè)前導(dǎo)字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP規(guī)定)和 0x02(CPU槽號(hào))
本地 TSAP | 遠(yuǎn)程TSAP | |
ASCII | TCP-1 | TCP-1 |
Hexadecimal | E0.02.54.43.50.2D.31 | 54.43.50.2D.31 |
2) LOC_TSAP(STRING14)= 本地用戶定義的ASCII字符 (默認(rèn) -> 'TCP-1')
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用兩個(gè)前導(dǎo)符,只適用于第三方設(shè)備!如果是西門子PLC作為通信對(duì)象,則需要根據(jù)實(shí)際情況填寫CPU 槽號(hào),例如B#16#2
4) REM_TSAP (STRING16)= 遠(yuǎn)程用戶定義的ASCII字符(默認(rèn) -> 'TCP-1'):
圖 19: 生成T_TSAP結(jié)構(gòu)
調(diào)用FB420
圖 20: 調(diào)用FB420
? ID: 連接ID
? DEV_ID
DEV_ID = B#16#1 用于本PLC型號(hào)(注意不是通信對(duì)方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(hào)(注意不是通信對(duì)方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(hào)(注意不是通信對(duì)方)為CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(hào)(注意不是通信對(duì)方)為CPU41x-3PN/DP
? ACTIVE: 主動(dòng)或是被動(dòng)建立連接, 通信雙方必須一個(gè)主動(dòng),一個(gè)被動(dòng)
? T_TSAP: 靜態(tài)變量區(qū)的結(jié)構(gòu)變量,用于ISO ON TCP 通信的TSAP地址
? IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
? CON_DB:用UDT65生成的變量
圖21: 調(diào)用FB65 "T_CON"
調(diào)用FB65 ,通過提供給FB65的輸入?yún)?shù)"REQ"一個(gè)上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數(shù)填寫用UDT65生成的變量, 連接建立后會(huì)一直保持,直到調(diào)用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
3.2.3 調(diào)用發(fā)送和接收程序
圖22: 調(diào)用 FB63,64發(fā)送接收數(shù)據(jù)
FB63 "TSEND" 發(fā)送請(qǐng)求依靠輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn),如果“BUSY”位為true時(shí)不要觸發(fā)"REQ"。輸出參數(shù) "DONE", "ERROR" 和 "STATUS" 用于評(píng)估工作的情況。
FB64 "TRECV" 用于接收數(shù)據(jù),EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數(shù)據(jù)區(qū),輸出參數(shù)"NDR" 用于表示新的數(shù)據(jù)已經(jīng)收到,輸出參數(shù)"LEN" 表示接收的數(shù)據(jù)長(zhǎng)度。
3.2.4斷開連接
調(diào)用FB66 "TDISCON",“ID “填寫連接ID,輸入?yún)?shù)"REQ"的上升沿來實(shí)現(xiàn)斷開連接操作。
圖 23: 調(diào)用FB66 "TDISCON"
關(guān)鍵詞
S5兼容通信、 TCP、 UDP、 ISO ON TCP 、PN 、OPEN IE