關(guān) PUT/GET 指令的基本信息
使用 PUT 和 GET 指令通過(guò) S7 連接在兩個(gè) CPU 之間交換數(shù)據(jù)。
GET 指令用于讀取某個(gè)伙伴 CPU 的數(shù)據(jù)。通信伙伴通過(guò)用戶(hù)程序使用 PUT 指令控制變量的寫(xiě)入。除了 PUT 和 GET 指令外,未提供用于讀取和寫(xiě)入變量的其它通信功能。
為簡(jiǎn)化這兩個(gè)指令的使用,可在程序編輯器的巡視窗口中指定所有需要的連接參數(shù)以及所有塊參數(shù)。
要求
必須滿(mǎn)足以下要求方可使用 PUT 和 GET 指令:
必須在項(xiàng)目中創(chuàng)建至少一個(gè) S7-1200/1500 CPU 或 S7-300/400 CPU。必須在 S7-1200 CPU 上安裝固件 2.0 或更高版本。如果尚未在項(xiàng)目中創(chuàng)建第二個(gè) CPU,則最初可以建立到未指定伙伴的連接。
兩個(gè) CPU 之間必須存在 S7 連接。如果尚未在兩個(gè) CPU 之間建立連接,則會(huì)在組態(tài)指令期間自動(dòng)建立連接。
對(duì)于這兩個(gè)指令,需要一個(gè)背景數(shù)據(jù)塊,用來(lái)存儲(chǔ)指令使用的所有數(shù)據(jù)。在程序編輯器中將 PUT 或 GET 指令拖動(dòng)到網(wǎng)絡(luò)中后,將立即自動(dòng)創(chuàng)建該背景數(shù)據(jù)塊。要正確執(zhí)行該程序,請(qǐng)確保背景數(shù)據(jù)塊不能發(fā)生變化;因此,這些數(shù)據(jù)塊將設(shè)為受專(zhuān)有技術(shù)保護(hù)的。只能讀取這些背景數(shù)據(jù)塊。
許借助 PUT/GET 通信從遠(yuǎn)程伙伴訪(fǎng)問(wèn)
默認(rèn)情況下,禁用“允許借助 PUT/GET 通信從遠(yuǎn)程伙伴訪(fǎng)問(wèn) (...) ”(Permit access with PUT/GET communication from remote partners (...)) 選項(xiàng)。如果激活該選項(xiàng),則只能在本地 CPU 和通信伙伴間需要通過(guò)組態(tài)或編程建立的通信連接中對(duì) CPU 數(shù)據(jù)進(jìn)行讀寫(xiě)訪(fǎng)問(wèn)。例如,可以通過(guò) BSEND/BRCV 指令進(jìn)行訪(fǎng)問(wèn)。
本地 CPU 僅作為服務(wù)器的連接(即表示本地 CPU 上不存在使用通信伙伴進(jìn)行的通信組態(tài)/編程),因此無(wú)法在操作 CPU 時(shí)進(jìn)行。例如,
在通過(guò)通信模塊進(jìn)行 PUT/GET、FETCH/WRITE 或 FTP 訪(fǎng)問(wèn)時(shí)
在從其它 S7 CPU 進(jìn)行 PUT/GET 訪(fǎng)問(wèn)時(shí)
在通過(guò) PUT/GET 通信實(shí)現(xiàn) HMI 訪(fǎng)問(wèn)時(shí)
如果要允許從客戶(hù)端訪(fǎng)問(wèn) CPU 數(shù)據(jù),也就是不希望限制 CPU 的通信服務(wù),則激活“允許借助 PUT/GET 通信從遠(yuǎn)程伙伴訪(fǎng)問(wèn)”(Permit access with PUT/GET communication from remote partners) 選項(xiàng)。
可以在 PUT/GET 指令的連接參數(shù)分配期間創(chuàng)建 S7 連接并為這些連接分配參數(shù)。連接參數(shù)分配將立即檢查更改后值是否存在輸入錯(cuò)誤。
要求
CPU 中存在 PUT 或 GET 通信指令。
步驟
要使用 PUT/GET 指令組態(tài) S7 連接,請(qǐng)按以下步驟操作:
在程序編輯器中,選擇 PUT 或 GET 指令的調(diào)用。 在巡視窗口中,打開(kāi)“屬性 > 組態(tài)”(Properties > Configuration) 選項(xiàng)卡。 選擇“連接參數(shù)”(Connection parameters) 組。在選擇連接伙伴之前,只啟用了伙伴端點(diǎn)的空下拉列表。其它所有輸入選項(xiàng)均被禁用。 同時(shí)顯示一些已知的連接參數(shù): 本地端點(diǎn)的名稱(chēng) 本地端點(diǎn)的接口 本地端點(diǎn)的 IP 地址 從伙伴端點(diǎn)的下拉列表框中,選擇一個(gè)連接伙伴??梢赃x擇項(xiàng)目中未指定的設(shè)備或 CPU 作為通信伙伴。 選擇連接伙伴后,將立即自動(dòng)輸入以下參數(shù): 伙伴端點(diǎn)的接口 伙伴端點(diǎn)的接口。如果有多個(gè)接口可用,則可根據(jù)需要更改接口。 伙伴端點(diǎn)的接口類(lèi)型 兩個(gè)端點(diǎn)的子網(wǎng)名稱(chēng) 伙伴端點(diǎn)的 IP 地址 用于通信的連接的名稱(chēng)。如果尚不存在連接,則將自動(dòng)創(chuàng)建連接。 根據(jù)需要,在“連接名稱(chēng)”(Connection name) 輸入框中更改連接名稱(chēng)。如果要?jiǎng)?chuàng)建新連接或編輯現(xiàn)有連接,可單擊“創(chuàng)建新連接”(Create new connection) 圖標(biāo)。
|
PUT:設(shè)置寫(xiě)入和發(fā)送區(qū)域的參數(shù) |
使用 PUT 指令進(jìn)行通信時(shí),必須指定數(shù)據(jù)待寫(xiě)入的伙伴 CPU 的存儲(chǔ)區(qū)。此外,還必須指定本地 CPU 中數(shù)據(jù)讀取的存儲(chǔ)區(qū)。
要求
程序編輯器已打開(kāi)。
已插入一個(gè) PUT 指令。
已在 2 個(gè)通信伙伴之間建立連接。
步驟
要指定該指令的讀取和存儲(chǔ)區(qū)域,請(qǐng)遵循以下操作步驟:
在程序編輯器中選擇 PUT 指令。 在巡視窗口中打開(kāi)“組態(tài)”(Configuration) 選項(xiàng)卡。 在區(qū)域?qū)Ш街羞x擇“塊參數(shù)分配”(Block parameter assignment) 條目。 在“輸入/輸出 > 寫(xiě)入?yún)^(qū)域 (ADDR_1) > 開(kāi)始”(In/Outputs > Write area (ADDR_1) > Start) 字段中,選擇一個(gè)“REMOTE”數(shù)據(jù)類(lèi)型指針,指向數(shù)據(jù)待寫(xiě)入的伙伴 CPU 區(qū)域。 只能使用絕對(duì)尋址。 示例:P#DB10.DBX5.0 Byte 10 在“長(zhǎng)度”(Length) 字段中,輸入寫(xiě)入?yún)^(qū)域的長(zhǎng)度并從下拉列表中選擇存儲(chǔ)區(qū)的數(shù)據(jù)類(lèi)型。 在“輸入/輸出 > 發(fā)送區(qū)域 (SD_1) > 開(kāi)始”(In/Outputs > Send area (SD_1) > Start) 區(qū)域中,選擇一個(gè)指針,指向包含待發(fā)送數(shù)據(jù)的本地 CPU 區(qū)域。 在“長(zhǎng)度”(Length) 字段中,輸入待讀取存儲(chǔ)區(qū)的長(zhǎng)度并從下拉列表中選擇數(shù)據(jù)類(lèi)型。 只能使用數(shù)據(jù)類(lèi)型 BOOL(對(duì)于位數(shù)組,必須將“0”用作地址,將字節(jié)的整數(shù)倍用作長(zhǎng)度)、BYTE、CHAR、WORD、INT、DWORD、DINT、REAL、COUNTER、TIMER。 如果 VARIANT 指針訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)塊,那么必須指定該數(shù)據(jù)塊(例如:P#DB10.DBX5.0 Byte 10)。 |
GET:設(shè)置讀取和存儲(chǔ)區(qū)的參數(shù) |
使用 GET 指令進(jìn)行通信時(shí),必須指定數(shù)據(jù)待寫(xiě)入的本地 CPU 的存儲(chǔ)區(qū)。此外,還必須指定伙伴 CPU 中數(shù)據(jù)讀取的存儲(chǔ)區(qū)。
要求
程序編輯器已打開(kāi)。
已插入一個(gè) GET 指令。
已在 2 個(gè)通信伙伴之間建立連接。
步驟
要指定該指令的讀取和存儲(chǔ)區(qū)域,請(qǐng)遵循以下操作步驟:
在程序編輯器中選擇 GET 指令。 在巡視窗口中打開(kāi)“組態(tài)”(Configuration) 選項(xiàng)卡。 在區(qū)域?qū)Ш街羞x擇“塊參數(shù)分配”(Block parameter assignment) 條目。 在“輸入/輸出 > 讀取區(qū)域 (ADDR_1) > 開(kāi)始”(In/Outputs > Read area (ADDR_1) > Start) 字段中,選擇一個(gè)“REMOTE”數(shù)據(jù)類(lèi)型指針,指向數(shù)據(jù)待讀取的伙伴 CPU 區(qū)域。 只能使用絕對(duì)尋址。 示例:P#DB10.DBX5.0 Byte 10 在“長(zhǎng)度”(Length) 字段中,輸入寫(xiě)入?yún)^(qū)域的長(zhǎng)度并從下拉列表中選擇存儲(chǔ)區(qū)的數(shù)據(jù)類(lèi)型。 在“輸入/輸出 > 存儲(chǔ)區(qū) (RD_1) > 開(kāi)始”(In/Outputs > Memory area (RD_1) > Start) 區(qū)域中,選擇一個(gè)指針,指向存儲(chǔ)所讀取數(shù)據(jù)的本地 CPU 區(qū)域。 在“長(zhǎng)度”(Length) 字段中,輸入存儲(chǔ)區(qū)的長(zhǎng)度并從下拉列表中選擇數(shù)據(jù)類(lèi)型。 只能使用數(shù)據(jù)類(lèi)型 BOOL(對(duì)于位數(shù)組,必須將“0”用作地址,將字節(jié)的整數(shù)倍用作長(zhǎng)度)、BYTE、CHAR、WORD、INT、DWORD、DINT、REAL、COUNTER、TIMER。 |
審核編輯:劉清
-
cpu
+關(guān)注
關(guān)注
68文章
10824瀏覽量
211140 -
HMI
+關(guān)注
關(guān)注
9文章
584瀏覽量
48454 -
S7-1200
+關(guān)注
關(guān)注
11文章
331瀏覽量
17909
原文標(biāo)題:西門(mén)子博途有關(guān)通過(guò) PUT/GET 指令通信的基本信息
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論