0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCON、TDISCON、TSEND和TRCV的編程示例

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2023-07-08 17:16 ? 次閱讀

簡(jiǎn)介

在以下示例中,將在 S7-1500 系列的兩個(gè) CPU 間創(chuàng)建一個(gè)編程連接,并將數(shù)據(jù)記錄從 CPU 1 發(fā)送到 CPU 2 中。

要求

兩個(gè) S7-1500 系列的 CPU 通過(guò) PROFINET 進(jìn)行互連,它們之間的連接尚未組態(tài)。

823717ae-1cba-11ee-962d-dac502259ad0.png

基于“屬性 > 保護(hù)”(Properties > Protection) 中的低保護(hù)級(jí)別,可確保每個(gè) CPU 都可進(jìn)行讀寫(xiě)訪問(wèn)。

CPU 1 中的程序:數(shù)據(jù)的存儲(chǔ)

為數(shù)據(jù)記錄,創(chuàng)建以下 PLC 數(shù)據(jù)類(lèi)型。

824f46ee-1cba-11ee-962d-dac502259ad0.png

要進(jìn)行數(shù)據(jù)傳送,需基于所創(chuàng)建的 PLC 數(shù)據(jù)類(lèi)型,創(chuàng)建以下數(shù)據(jù)塊(“SLI_plcDB_sendData_TSEND”)。

82673c36-1cba-11ee-962d-dac502259ad0.png

要對(duì)該數(shù)據(jù)進(jìn)行存儲(chǔ),需使用以下結(jié)構(gòu)和變量,創(chuàng)建一個(gè)全局?jǐn)?shù)據(jù)塊(“SLI_gDB_TSEND”)。

827ea13c-1cba-11ee-962d-dac502259ad0.png

CPU 1 中的程序:參數(shù)互連

創(chuàng)建函數(shù)塊“SLI_FB_TSEND”,并在該數(shù)據(jù)塊中創(chuàng)建以下局部變量。

82b2d8da-1cba-11ee-962d-dac502259ad0.png

程序段 1:互連“TCON”指令的參數(shù),如下所示:

82d98872-1cba-11ee-962d-dac502259ad0.png

程序段 2:如果 TCON 出錯(cuò),則保存狀態(tài)信息,如下所示。

82f29542-1cba-11ee-962d-dac502259ad0.png

程序段 3:互連“TSEND”指令的參數(shù),如下所示:

831373ac-1cba-11ee-962d-dac502259ad0.png

程序段 4:如果 TSEND 出錯(cuò),則保存狀態(tài)信息,如下所示。

833acb96-1cba-11ee-962d-dac502259ad0.png

程序段 5:互連“TDISCON”指令的參數(shù),如下所示:

8352e06e-1cba-11ee-962d-dac502259ad0.png

程序段 6:如果 TDISCON 出錯(cuò),則保存狀態(tài)信息,如下所示。

83771754-1cba-11ee-962d-dac502259ad0.png

CPU 1 中的程序:TCON 的組態(tài)

要互連輸入?yún)?shù) CONNECT,可通過(guò)“屬性 > 組態(tài)”(Properties > Configuration) 打開(kāi)指令“TCON”的向?qū)А?/p>

對(duì) TCON 的組態(tài)進(jìn)行如下設(shè)置:

輸入字段 條目
端點(diǎn) 在下拉列表中,選擇作為發(fā)送方和接收方的 CPU。
系統(tǒng)將自動(dòng)輸入接口、子網(wǎng)和地址。
連接數(shù)據(jù) 在下拉列表中選擇“新建”(New),為每個(gè) CPU 創(chuàng)建一個(gè)數(shù)據(jù)塊。
該數(shù)據(jù)塊用于存儲(chǔ)連接數(shù)據(jù)。數(shù)據(jù)塊的名稱(chēng)可任意設(shè)置。
為 CPU 1(本地 CPU)建立主動(dòng)連接。
連接類(lèi)型 選擇條目“ISO-on-TCP”。
這意味著,建立連接時(shí)將使用“ISO-on-TCP”協(xié)議的以太網(wǎng)連接。
連接 ID 在該通信連接中,輸入任意一個(gè)選定的連接 ID。
該連接 ID 在項(xiàng)目中尚未分配。確保數(shù)值與所用變量“connectionID”中的值相同。
TSAP ID 在選擇“ISO-on-TCP”連接類(lèi)型時(shí),系統(tǒng)將自動(dòng)輸入詳細(xì)的地址信息。

839a4828-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:數(shù)據(jù)的存儲(chǔ)

為數(shù)據(jù)記錄,創(chuàng)建以下 PLC 數(shù)據(jù)類(lèi)型。

824f46ee-1cba-11ee-962d-dac502259ad0.png

要進(jìn)行數(shù)據(jù)傳送,需基于所創(chuàng)建的 PLC 數(shù)據(jù)類(lèi)型,創(chuàng)建以下數(shù)據(jù)塊(“SLI_plcDB_rcvData_TRCV”)。

83cab7ce-1cba-11ee-962d-dac502259ad0.png

要對(duì)該數(shù)據(jù)進(jìn)行存儲(chǔ),需使用以下結(jié)構(gòu)和變量,創(chuàng)建一個(gè)全局?jǐn)?shù)據(jù)塊(“SLI_gDB_TRCV”)。

83e8faae-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:參數(shù)互連

創(chuàng)建函數(shù)塊“SLI_FB_TRCV”,并在該數(shù)據(jù)塊中創(chuàng)建以下局部變量。

841d790a-1cba-11ee-962d-dac502259ad0.png

程序段 1:互連“TCON”指令的參數(shù),如下所示:

84472e80-1cba-11ee-962d-dac502259ad0.png

程序段 2:如果 TCON 出錯(cuò),則保存狀態(tài)信息,如下所示。

846dad44-1cba-11ee-962d-dac502259ad0.png

程序段 3:互連“TRCV”指令的參數(shù),如下所示:

8486d04e-1cba-11ee-962d-dac502259ad0.png

程序段 4:如果 TRCV 出錯(cuò),則保存狀態(tài)信息,如下所示。

849aa8d0-1cba-11ee-962d-dac502259ad0.png

程序段 5:互連“TDISCON”指令的參數(shù),如下所示:

84e4d9e6-1cba-11ee-962d-dac502259ad0.png

程序段 6:如果 TDISCON 出錯(cuò),則保存狀態(tài)信息,如下所示。

850bfad0-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:TCON 的組態(tài)

根據(jù) CPU 1 / TCON 的示例,對(duì) CPU 2 / TCON 連接進(jìn)行以下設(shè)置:

說(shuō)明
連接數(shù)據(jù)
完成 CPU 1 / TCON 的組態(tài)之后,已創(chuàng)建了一個(gè)數(shù)據(jù)塊(“PLC_Tsend_Connection_DB”,“PLC_Trcv_Connection_DB”),并帶有為各 CPU 存儲(chǔ)的連接數(shù)據(jù)。如果不希望創(chuàng)建新的數(shù)據(jù)塊并輸入連接數(shù)據(jù),則可直接使用創(chuàng)建的數(shù)據(jù)塊(“PLC_Tsend_Connection_DB”,“PLC_Trcv_Connection_DB”)。
如果要選擇已創(chuàng)建的數(shù)據(jù)塊,則這些數(shù)據(jù)塊必須位于“項(xiàng)目樹(shù)”(project tree) 的“程序塊 > 系統(tǒng)塊”(Program blocks > System blocks) 中。

8535196a-1cba-11ee-962d-dac502259ad0.png

建立連接的操作步驟

請(qǐng)遵循相關(guān)操作步驟的順序:

1.對(duì)于 CPU 2 / TCON,將參數(shù) REQ 更改為“TRUE”。

2.對(duì)于 CPU 1 / TCON,將參數(shù) REQ 更改為“TRUE”。

3.對(duì)于 CPU 2 / TCON,將參數(shù) REQ 更改為“FALSE”。

4.對(duì)于 CPU 1 / TCON,將參數(shù) REQ 更改為“FALSE”。

終止連接的操作步驟

請(qǐng)遵循相關(guān)操作步驟的順序:

1.對(duì)于 CPU 1 / TDISCON,將參數(shù) REQ 更改為“TRUE”。

2.對(duì)于 CPU 2 / TDISCON,將參數(shù) REQ 更改為“TRUE”。

3.對(duì)于 CPU 1 / TDISCON,將參數(shù) REQ 更改為“FALSE”。

4.對(duì)于 CPU 2 / TDISCON,將參數(shù) REQ 更改為“FALSE”。

CPU 1 的行為

程序段 1 (TCON):

輸入?yún)?shù) REQ(“TCON.start”)的信號(hào)狀態(tài)為“TRUE”時(shí),啟動(dòng)指令“TCON”。多次調(diào)用時(shí),指令“TCON”將創(chuàng)建與伙伴 CPU 的通信連接。為此,可通過(guò)輸入?yún)?shù) CONNECT(或數(shù)據(jù)塊“PLC_Trcv_Connection_DB”)檢索該連接數(shù)據(jù)。

連接設(shè)置成功時(shí),輸出參數(shù) DONE(“#doneCON”)的信號(hào)狀態(tài)為“TRUE”,且輸出參數(shù) STATUS(“TCON.status”)的值為“0000”。由于輸出參數(shù)的值僅在有效時(shí)才顯示,因此成功狀態(tài)將保存在變量“TCON.done”中。復(fù)位所有之前連接終止的成功狀態(tài)(“TDISCON.done”)。

輸出參數(shù) ERROR(“TCON.error”)或變量“TCON.memErrStatus”)可用于指示本示例中的執(zhí)行過(guò)程是否出錯(cuò)。

85527bfe-1cba-11ee-962d-dac502259ad0.png

程序段 2 (TCON):

如果 TCON 發(fā)出信號(hào)指示錯(cuò)誤(“TCON.error”為“TRUE”),則所報(bào)告的狀態(tài)(“TCON.status”)將進(jìn)行永久性存儲(chǔ)(“TCON.memErrStatus”)。

程序段 3 (TSEND):

根據(jù)輸入?yún)?shù) ID(“connectionID”),指令“TSEND”可確定待使用的通信連接。

輸入?yún)?shù) REQ(“TSEND.start”)的信號(hào)狀態(tài)為“TRUE”時(shí),啟動(dòng)指令“TSEND”。進(jìn)行多次調(diào)用時(shí),“TSEND”指令將傳送輸入?yún)?shù) DATA(“SLI_plcDB_sendData_TSEND”)處檢測(cè)到的數(shù)據(jù)記錄。

數(shù)據(jù)記錄傳送成功時(shí),輸出參數(shù) DONE(“#doneSEND”)的信號(hào)狀態(tài)為“TRUE”,且輸出參數(shù) STATUS(“TSEND.status”)的值為“0000”。由于輸出參數(shù)的值僅在有效時(shí)才顯示,因此成功狀態(tài)將保存在變量“TSEND.done”中。

輸出參數(shù) ERROR(“TSEND.error”)或變量“TSEND.memErrStatus”)可用于指示本示例中的執(zhí)行過(guò)程是否出錯(cuò)。

85739c3a-1cba-11ee-962d-dac502259ad0.png

程序段 4 (TSEND):

如果 TSEND 發(fā)出信號(hào)指示錯(cuò)誤(“TSEND.error”為“TRUE”),則所報(bào)告的狀態(tài)(“TSEND.status”)將進(jìn)行永久性存儲(chǔ)(“TSEND.memErrStatus”)。

程序段 5 (TDISCON):

輸入?yún)?shù) REQ(“TDISCON.start”)的信號(hào)狀態(tài)為“TRUE”時(shí),啟動(dòng)指令“TDISCON”。多次調(diào)用時(shí),指令“TDISCON”將終止該通信連接。為此,需檢索輸入?yún)?shù) ID(“connectionID”)中使用的通信連接。

連接終止成功時(shí),輸出參數(shù) DONE(“#doneDISC”)的信號(hào)狀態(tài)為“TRUE”,且輸出參數(shù) STATUS(“TDISCON.status”)的值為“0000”。由于輸出參數(shù)的值僅在有效時(shí)才顯示,因此成功狀態(tài)將保存在變量“TDISCON.done”中。復(fù)位連接設(shè)置(“TCON.done”)和數(shù)據(jù)傳送(“TSEND.done”)的成功消息。

輸出參數(shù) ERROR(“TDISCON.error”)或變量“TDISCON.memErrStatus”)可用于指示本示例中的執(zhí)行過(guò)程是否出錯(cuò)。

858a7b4e-1cba-11ee-962d-dac502259ad0.png

程序段 6 (TDISCON):

如果 TDISCON 發(fā)出信號(hào)指示錯(cuò)誤(“TDISCON.error”為“TRUE”),則所報(bào)告的狀態(tài)(“TDISCON.status”)將進(jìn)行永久性存儲(chǔ)(“TDISCON.memErrStatus”)。

CPU 2 的行為

TCON 和 TDISCON 的運(yùn)行與 CPU 1 中的相同。

85b22716-1cba-11ee-962d-dac502259ad0.png

85cbe6f6-1cba-11ee-962d-dac502259ad0.png

程序段 3 (TRCV):

根據(jù)輸入?yún)?shù) ID(“connectionID”),指令“TRCV”可確定待使用的通信連接。

輸入?yún)?shù) EN_R(“TRCV.start”)的信號(hào)狀態(tài)為“TRUE”時(shí),啟動(dòng)指令“TRCV”。進(jìn)行多次調(diào)用時(shí),“TRCV”指令將接收所傳送的數(shù)據(jù)記錄。并檢查輸入?yún)?shù) DATA(“SLI_plcDB_rcvData_TRCV”)處的該數(shù)據(jù)記錄。

85ea9d08-1cba-11ee-962d-dac502259ad0.png

并通過(guò)輸出參數(shù) LEN(“#length”),確定 BYTE 中實(shí)際傳送的數(shù)據(jù)記錄長(zhǎng)度。僅當(dāng)傳送成功時(shí),才顯示該值。之后,將檢查“0”。數(shù)據(jù)記錄接收成功時(shí),輸出參數(shù) DONE(“#doneRCV”)的信號(hào)狀態(tài)為“TRUE”,且輸出參數(shù) STATUS(“TRCV.status”)的值為“0000”。

由于輸出參數(shù)的值僅在有效時(shí)才顯示,因此請(qǐng)進(jìn)行以下操作步驟:

成功狀態(tài)保存在變量“TRCV.done”中。

BYTE 長(zhǎng)度保存在變量“TRCV.readLength”中。

輸出參數(shù) ERROR(“TRCV.error”)或變量“TRCV.memErrStatus”)可用于指示本示例中的執(zhí)行過(guò)程是否出錯(cuò)。

8607eda4-1cba-11ee-962d-dac502259ad0.png

程序段 4 (TRCV):

如果 TRCV 發(fā)出信號(hào)指示錯(cuò)誤(“TRCV.error”為“TRUE”),則所報(bào)告的狀態(tài)(“TRCV.status”)將進(jìn)行永久性存儲(chǔ)(“TRCV.memErrStatus”)。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電源管理
    +關(guān)注

    關(guān)注

    115

    文章

    6183

    瀏覽量

    144509
  • 西門(mén)子
    +關(guān)注

    關(guān)注

    94

    文章

    3039

    瀏覽量

    115881
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    362

    瀏覽量

    21588
  • Profinet
    +關(guān)注

    關(guān)注

    6

    文章

    1183

    瀏覽量

    23411
  • S7-1500
    +關(guān)注

    關(guān)注

    3

    文章

    300

    瀏覽量

    6408

原文標(biāo)題:西門(mén)子博途:TCON、TDISCON、TSEND 和 TRCV 的編程示例

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S7-1200與S7-1200/S7-1500不同項(xiàng)目下UDP通信

    S7-1200 與 S7-1200 之間的以太網(wǎng)通信可以通過(guò) UDP 協(xié)議來(lái)實(shí)現(xiàn)。本列中使用TSEND_C,TRCV_C指令建立雙方的UDP通訊。TSEND_C,TRCV_C指令在兩臺(tái)
    的頭像 發(fā)表于 01-10 09:19 ?5968次閱讀

    S71200 CPU通過(guò)ETHERNET與S7300 PN口之間TCP通信的方式

    S7-1200與S7-300PN口之間的以太網(wǎng)通信可以通過(guò)TCP協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在雙方CPU 調(diào)用T-block(TSEND_C,TRCVC,TCON,TDISCON,TSEND
    發(fā)表于 12-02 08:00 ?4次下載
    S71200 CPU通過(guò)ETHERNET與S7300 PN口之間TCP通信的方式

    通信協(xié)議之間的建立連接以及數(shù)據(jù)傳輸

    無(wú)連接管理功能的通訊塊 1. ? TCON ? 建立連接 2.?TDISCON“ 斷開(kāi)連接 3. ?TSEND“ & ?TRCV “ 發(fā)送和接收數(shù)據(jù)(TCP 和ISO
    的頭像 發(fā)表于 06-04 16:18 ?3262次閱讀

    TCP, ISO- on- TCP, UDP連接

    TSEND“ & ?TRCV “ 發(fā)送和接收數(shù)據(jù)(TCP 和ISO - on- TCP)?TUSEND“ & ?TURCV“ 發(fā)送和接收數(shù)據(jù)(UDP) 自動(dòng)連接管理的通訊塊( 僅用于S7- 1200)
    的頭像 發(fā)表于 06-12 15:11 ?5118次閱讀
    TCP, ISO- on- TCP, UDP連接

    S7-1200與S7-300 PN口之間的以太網(wǎng)通信方法

    S7-1200 與 S7-300 PN 口之間的以太網(wǎng)通信可以通過(guò) UDP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用通信-開(kāi)放式用戶(hù)通信TSEND_C,TRCV_C(1200支持,300
    的頭像 發(fā)表于 04-11 09:44 ?7085次閱讀

    S7-1200與S7-300 PN/S7-400 PN UDP STEP7通信

    S7-1200 與 S7-300 PN 口之間的以太網(wǎng)通信可以通過(guò) UDP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用通信-開(kāi)放式用戶(hù)通信TSEND_C,TRCV_C(1200支持,300不支持)或TCON
    的頭像 發(fā)表于 04-11 10:15 ?4571次閱讀

    西門(mén)子1200PLC之間的TCP通訊組態(tài)編程教程

    S7-1200 與 S7-1200 之間的以太網(wǎng)通信可以通過(guò) TCP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用 T-block (TSEND_C,TRCV_C,TCONTDISCON
    的頭像 發(fā)表于 02-13 13:52 ?8853次閱讀
    西門(mén)子1200PLC之間的TCP通訊組態(tài)<b class='flag-5'>編程</b>教程

    運(yùn)動(dòng)編程示例:定時(shí)按壓操作

    運(yùn)動(dòng)編程示例:定時(shí)按壓操作
    的頭像 發(fā)表于 03-14 14:42 ?877次閱讀
    運(yùn)動(dòng)<b class='flag-5'>編程</b><b class='flag-5'>示例</b>:定時(shí)按壓操作

    運(yùn)動(dòng)編程示例:重復(fù)運(yùn)動(dòng)的循環(huán)功能

    運(yùn)動(dòng)編程示例:重復(fù)運(yùn)動(dòng)的循環(huán)功能
    的頭像 發(fā)表于 03-13 16:59 ?1255次閱讀
    運(yùn)動(dòng)<b class='flag-5'>編程</b><b class='flag-5'>示例</b>:重復(fù)運(yùn)動(dòng)的循環(huán)功能

    UDP和調(diào)試助手介紹

    S7-1200支持UDP單播和UDP廣播,不支持UDP組播。UDP是一種無(wú)連接的通信協(xié)議,通過(guò)調(diào)用TSEND_C、TRCV_C、TCON等指令可以與其他設(shè)備或軟件進(jìn)行UDP通信。
    的頭像 發(fā)表于 03-20 11:22 ?9385次閱讀

    S7-1200 CPU與S7-300 CP STEP7 UDP通信

    S7-1200 與 S7-300 CP 之間的以太網(wǎng)通信可以通過(guò) UDP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在S7-1200 CPU 側(cè)調(diào)用通信-開(kāi)放式用戶(hù)通信TSEND_C,TRCV_C指令或TCON
    的頭像 發(fā)表于 04-08 10:48 ?2058次閱讀

    S7-1200 CPU與S7-300 CP TIA UDP通信

    S7-1200 與 S7-300 CP 之間的以太網(wǎng)通信可以通過(guò) UDP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在S7-1200 CPU 側(cè)調(diào)用通信-開(kāi)放式用戶(hù)通信TSEND_C,TRCV_C指令或TCON
    的頭像 發(fā)表于 04-08 10:49 ?2410次閱讀

    移動(dòng)數(shù)據(jù)的編程示例

    編程示例 在此編程示例中,將移動(dòng)在生產(chǎn)班次期間為示例收集的數(shù)據(jù)值以作進(jìn)一步處理。收集的數(shù)據(jù)放在 ARRAY 中。通過(guò)“MOVE_BLK_VA
    的頭像 發(fā)表于 08-23 10:10 ?1409次閱讀
    移動(dòng)數(shù)據(jù)的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>

    開(kāi)放式用戶(hù)通訊TCP,ISO- on- TCP,UDP介紹

    TSEND“ & ?TRCV “ 發(fā)送和接收數(shù)據(jù)(TCP 和ISO - on- TCP)
    的頭像 發(fā)表于 09-08 09:55 ?2183次閱讀
    開(kāi)放式用戶(hù)通訊TCP,ISO- on- TCP,UDP介紹

    掃描模塊的編程示例和調(diào)試策略

    電子發(fā)燒友網(wǎng)站提供《掃描模塊的編程示例和調(diào)試策略.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 09:38 ?0次下載
    掃描模塊的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>和調(diào)試策略