S7-1200 TCP 通信

    S7-1200 與 S7-1200 之間的以太網(wǎng)通信可以通過(guò) TCP 協(xié)議來(lái)實(shí)現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用 T-block (TSEND_C,TRCV_C,TCON,TDISCON,TSEND,TRCV) 指令來(lái)實(shí)現(xiàn)。通信方式為雙邊通信,因此 TSEND 和 TRCV 必須成對(duì)出現(xiàn)。

    此外本文也可用于S7-1200和S7-1500 TCP 通信。

    硬件和軟件需求及所完成的通信任務(wù)

    硬件:

    ① 兩臺(tái)S7-1200 CPU(PLC_1:CPU1215C DC/DC/DC,固件版本V4.4和PLC_2:CPU1214C DC/DC/DC,固件版本V4.4)

    ② PC(帶以太網(wǎng)卡)

    ③ TP電纜(以太網(wǎng)電纜)

    軟件:

    TIA PORTAL STEP7 V16

    所完成的通信任務(wù):

    ① 將PLC_1 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個(gè)字節(jié)的數(shù)據(jù)發(fā)送到 PLC_2 的接收數(shù)據(jù)區(qū) DB4 塊中。

    ② 將PLC_2 的通信數(shù)據(jù)區(qū) DB3 塊中的 100 個(gè)字節(jié)的數(shù)據(jù)發(fā)送到 PLC_1 的接收數(shù)據(jù)區(qū) DB4 塊中。

    S7-1200之間 TCP 通訊,可以分2種情況來(lái)操作,具體如下:

      **種情況:兩個(gè) S7-1200 在一個(gè)項(xiàng)目中操作

      *二種情況:兩個(gè) S7-1200 不在一個(gè)項(xiàng)目中的操作

    一. **種情況(同一項(xiàng)目中操作)

    使用 STEP 7 V16 在同一個(gè)項(xiàng)目中,新建兩個(gè)S7-1200站點(diǎn),然后做 TCP 通訊。

    1.1 通信的編程,連接參數(shù)及通信參數(shù)的配置

    1. 打開(kāi) STEP7 V16 軟件并新建項(xiàng)目

    在 STEP7 V16 的 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目” 創(chuàng)建一個(gè)新項(xiàng)目

    2. 添加硬件并命名PLC

    然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹(shù)” 下雙擊 “添加新設(shè)備”,在對(duì)話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1,如圖1所示。

    同樣方法再添加通信伙伴的S7-1200 CPU ,命名為 PLC_2。

    圖1. 添加新設(shè)備

    為了編程方便,使用 CPU 屬性中定義的時(shí)鐘位,定義方法如下:

    在 “項(xiàng)目樹(shù)” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時(shí)鐘存儲(chǔ)器” 下,將系統(tǒng)位定義在MB1,時(shí)鐘位定義在MB0,如圖2所示。

    時(shí)鐘位我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個(gè)位,可以使用它去自動(dòng)激活發(fā)送任務(wù)。

    圖2. 系統(tǒng)位與時(shí)鐘位

    3. 為 PROFINET 通信口分配以太網(wǎng)地址

    在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn)PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0,如圖3所示。

    圖3. 分配IP 地址

    同樣方法,在同一個(gè)項(xiàng)目里添加另一個(gè)新設(shè)備S7-1200 CPU 并為其分配 IP 地址為192.168.0.2

    4. 創(chuàng)建 CPU之間的邏輯網(wǎng)絡(luò)連接

    在項(xiàng)目樹(shù) “項(xiàng)目樹(shù)”>“設(shè)備和網(wǎng)絡(luò)” >“網(wǎng)絡(luò)視圖” 視圖下,創(chuàng)建兩個(gè)設(shè)備的連接。用鼠標(biāo)點(diǎn)中 PLC_1 上的PROFINET通信口的綠色小方框,然后拖拽出一條線,到另外一個(gè)PLC_2 上的PROFINET通信口上,松開(kāi)鼠標(biāo),連接就建立起來(lái)了,如圖4所示。

    圖4. 建立兩個(gè) CPU的邏輯連接

    1.2 在 PLC_1 中調(diào)用并配置“TCON”、“TSEND”、“TRCV” 通信指令

    1.在 PLC_1 的 OB1 中調(diào)用“TCON” 通信指令

    ① 在**個(gè) CPU 中調(diào)用通信指令,進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖5所示。


    圖5. 調(diào)用“TCON”通信指令

    ② 點(diǎn)擊“開(kāi)始組態(tài)”按鈕(如圖5中紅色方框所示),分配連接參數(shù),在伙伴“端點(diǎn)”的下拉菜單中選擇伙伴為“PLC_2”,在本地“連接數(shù)據(jù)”的下拉菜單中選擇“新建”,如圖6所示:

    圖6. 分配連接參數(shù)

    ③ 定義PLC_1的 “TCON”連接參數(shù)

    PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“屬性”> “組態(tài)”>“連接參數(shù)”中設(shè)置,同樣使用“新建”,創(chuàng)建伙伴方的“連接數(shù)據(jù)”,"PLC_2_Connection_DB",如圖7所示。

    圖7. 定義 TCON 連接參數(shù)

    連接參數(shù)說(shuō)明:

    端點(diǎn)
    :可以通過(guò)點(diǎn)擊選擇按鈕選擇伙伴 CPU :PLC_2
    連接類型
    :選擇通信協(xié)議為 TCP(
    連接ID
    :連接的地址 ID 號(hào),這個(gè) ID 號(hào)在后面的編程里會(huì)用到
    連接數(shù)據(jù)
    :創(chuàng)建連接時(shí),點(diǎn)擊“新建”(見(jiàn)圖6所示),創(chuàng)建本地和伙伴的連接數(shù)據(jù)。
    主動(dòng)連接設(shè)置
    :選擇本地 PLC_1作為主動(dòng)連接
    地址詳細(xì)信息
    :定義通信伙伴方的端口號(hào)為:2000;

    ④ 組態(tài)完成后 “TCON” 指令如圖8所示。

    圖8 “TCON”通信指令

    2.定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù)

    ① 調(diào)用 “TSEND” 在OB1內(nèi)調(diào)用 發(fā)送100個(gè)字節(jié)數(shù)據(jù)到PLC2中


    進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TSEND” 指令,如圖9所示。

    圖9. 調(diào)用 TSEND

    ② 創(chuàng)建并定義PLC_1的發(fā)送數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個(gè)字節(jié)的數(shù)組,如圖10及圖11所示。

    圖10. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊

    注意:對(duì)于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號(hào)尋址,也可以定義成**尋址。使用指針尋址方式,必須創(chuàng)建**尋址的 DB 塊。

    圖11. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組

    ③ 定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù),如圖12所示。

    圖12. 定義 TSEND 接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    REQ
    := M0.3
    // 使用 2Hz 的時(shí)鐘脈沖,上升沿激活發(fā)送任務(wù)
    ID
    := 1
    // 創(chuàng)建連接ID
    LEN
    := 100
    //發(fā)送數(shù)據(jù)長(zhǎng)度
    DATA
    := P#DB3.DBX0.0 BYTE 100
    // 發(fā)送數(shù)據(jù)區(qū)的數(shù)據(jù),使用指針尋址時(shí),DB塊要選用**尋址

    輸出接口參數(shù):

    DONE
    := M2.5
    //任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    := M2.6
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M2.7
    //通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW10
    //有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)位信息號(hào)

    3.在 PLC_1 的OB1中調(diào)用接收指令T_RCV 并配置基本參數(shù)


    為了實(shí)現(xiàn) PLC_1 接收來(lái)自 PLC_2 的數(shù)據(jù),則在 PLC_1 中調(diào)用接收指令T_RCV 并配置基本參數(shù)。

    ① 創(chuàng)建并定義PLC_1的接收數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 100個(gè)字節(jié)的數(shù)組,如圖13及圖14所示。

    圖13. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊

    注意:對(duì)于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號(hào)尋址,也可以定義成**尋址。使用指針尋址方式,必須創(chuàng)建**尋址的 DB 塊。

    圖14. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組

    ② 調(diào)用 “TRCV” 在OB1內(nèi)調(diào)用

    進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TRCV” 指令,配置接口參數(shù),如圖15所示。

    圖15. 調(diào)用 TRCV 指令并配置接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    EN_R
    := TRUE
    // 準(zhǔn)備好接收數(shù)據(jù)
    ID
    := 1
    // 連接號(hào),使用的是 TCON 的連接參數(shù)中 ID號(hào)
    LEN
    := 100
    // 接收數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    ADHOC
    := FALSE
    // TCP協(xié)議選項(xiàng)未使用Ad-hoc模式
    DATA
    := P#DB4.DBX0.0 BYTE 100
    // 接收數(shù)據(jù)區(qū)的地址

    輸出接口參數(shù):

    NDR
    := M3.2
    // 該位為 1,接收任務(wù)成功完成
    BUSY
    := M3.3
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M3.4
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW16
    // 有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)
    RCVD_LEN
    := MD18
    // 實(shí)際接收數(shù)據(jù)的字節(jié)數(shù)

    注意:ADHOC設(shè)置為 TRUE 可以接收變長(zhǎng)數(shù)據(jù)。

    1.3 在 PLC_2 中調(diào)用并配置“TCON”、“TSEND”、“TRCV” 通信指令

    1.在 PLC_2 的 OB1 中調(diào)用“TCON” 通信指令

    ① 在**個(gè) CPU 中調(diào)用通信指令,進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_2” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖16所示。


    圖16. 調(diào)用“TCON”通信指令

    ② 點(diǎn)擊“開(kāi)始組態(tài)”按鈕(如圖16中紅色方框所示),分配連接參數(shù),在伙伴“端點(diǎn)”的下拉菜單中選擇伙伴為“PLC_1”,在本地“連接數(shù)據(jù)”的下拉菜單中選擇已經(jīng)建立的連接數(shù)據(jù)“PLC_2_Connection_DB”。如圖17所示:

    圖17. 分配連接參數(shù)

    ③ 定義 PLC_2的 連接參數(shù) “TCON”

    PLC_2 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“屬性”> “組態(tài)”>“連接參數(shù)”中設(shè)置,在伙伴“連接數(shù)據(jù)”的下拉菜單中選擇已經(jīng)建立的連接數(shù)據(jù)“PLC_1_Connection_DB”,如圖18所示。

    圖18. 定義 TCON 連接參數(shù)

    連接參數(shù)說(shuō)明:

    端點(diǎn)
    :可以通過(guò)點(diǎn)擊選擇按鈕選擇伙伴 CPU :PLC_1
    連接類型
    :選擇通信協(xié)議為 TCP(也可以選擇 ISO on TCP 或UDP協(xié)議)
    連接ID
    :連接的地址 ID 號(hào),這個(gè) ID 號(hào)在后面的編程里會(huì)用到
    連接數(shù)據(jù)
    :選擇已創(chuàng)建完成的連接數(shù)據(jù)
    主動(dòng)建立連接
    :選擇通信伙伴 PLC_1作為主動(dòng)連接
    地址詳細(xì)信息
    :定義通信本地端口號(hào)為:2000;

    ④ 組態(tài)完成后 “TCON” 指令如圖19所示。

    圖19 “TCON”通信指令

    2. 在 PLC_2 中在OB1調(diào)用“TRCV”通信指令

    接收從PLC_1 發(fā)送到 PLC_2的100個(gè)字節(jié)數(shù)據(jù)

    ① 創(chuàng)建并定義接收數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“ PLC_2”>“程序塊”>“添加新塊” ,選擇 “數(shù)據(jù)塊”創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵定義接收數(shù)據(jù)區(qū)為 100 個(gè)字節(jié)的數(shù)組,圖20及圖21所示。

    圖20. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊

    圖21. 定義接收區(qū)為 100 個(gè)字節(jié)的數(shù)組

    ② 定義調(diào)用 “TRCV” 程序

    圖22. TRCV 塊參數(shù)配置

    參數(shù)配置:

    輸入接口參數(shù):

    EN_R
    := TRUE
    // 準(zhǔn)備好接收數(shù)據(jù)
    ID
    := 1
    // 建立連接并一直保持連接
    LEN
    := 100
    // 接收的數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    ADHOC
    := FALSE
    // TCP協(xié)議選項(xiàng)未使用Ad-hoc模式
    DATA
    := P#DB4.DBX0.0 BYTE 100
    //接收數(shù)據(jù)區(qū),DB 塊選用的是符號(hào)尋址

    輸出接口參數(shù):

    DONE
    := M3.2
    // 任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    := M3.3
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M3.4
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW16
    // 有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)
    RCVD_LEN
    := MD18
    // 實(shí)際接收數(shù)據(jù)的字節(jié)數(shù)

    3. 在 PLC_2 中調(diào)用并配置“TSEND”通信指令

    PLC_2 將 發(fā)送100個(gè)字節(jié)數(shù)據(jù) 到 PLC_1 中,如何創(chuàng)建發(fā)送數(shù)據(jù)塊DB3,與創(chuàng)建接收數(shù)據(jù)塊方法相同,不再詳述。在 PLC_2 中調(diào)用發(fā)送指令并配置塊參數(shù),發(fā)送指令與接收指令使用同一個(gè)連接,如圖23所示。

    圖23. 調(diào)用TSEND 指令并配置塊接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    REQ
    := M0.3
    // 使用 2Hz 的時(shí)鐘脈沖,上升沿激活發(fā)送任務(wù)
    ID
    := 1
    // 連接ID號(hào),通過(guò)TCON創(chuàng)建的連接
    LEN
    := 100
    // 發(fā)送數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    DATA
    := P#DB3.DBX0.0 BYTE 100
    // 發(fā)送數(shù)據(jù)區(qū)的符號(hào)地址


    輸出接口參數(shù):

    DONE
    :M2.5
    // 任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    :M2.6
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    :M2.7
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    :MW10
    //有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)

    1.4 下載硬件組態(tài)及程序并監(jiān)控通信結(jié)果

    下載兩個(gè) CPU 中的所有硬件組態(tài)及程序,從監(jiān)控表中可以看到,PLC_1 的 TSEND 指令發(fā)送數(shù)據(jù):“1”,“2”,“3”,“4”,“5”,“6”,PLC_2 接收到數(shù)據(jù):“1”,“2”,“3”,“4”,“5”,“6”。而 PLC_2 發(fā)送數(shù)據(jù)“7”,“8”,“9”,“10”,“11”,“12”,PLC_1接收數(shù)據(jù)是“7”,“8”,“9”,“10”,“11”,“12”,如圖24所示。

    圖24. PLC_1 及 PLC_2 的監(jiān)控表

    二. *二種情況(不在同一項(xiàng)目中操作)

    使用 STEP 7 V16 不在一個(gè)項(xiàng)目中,新建兩個(gè)S7-1200站點(diǎn),然后做 TCP 通訊。

    2.1 通信的編程,連接參數(shù)及通信參數(shù)的配置

    1. 打開(kāi) STEP7 V16 軟件并新建項(xiàng)目

    在 STEP7 V16 的 “Portal 視圖” 中選擇 “創(chuàng)建新項(xiàng)目” 創(chuàng)建一個(gè)新項(xiàng)目

    2. 添加硬件并命名PLC

    然后進(jìn)入 “項(xiàng)目視圖”,在“項(xiàng)目樹(shù)” 下雙擊 “添加新設(shè)備”,在對(duì)話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1,如圖25所示。

    同樣方法,再次打開(kāi)STEP7 V16,新建另一個(gè)項(xiàng)目并添加通信伙伴的S7-1200 CPU ,命名為 PLC_2。

    圖25. 添加新設(shè)備

    為了編程方便,使用 CPU 屬性中定義的時(shí)鐘位,定義方法如下:

    在 “項(xiàng)目樹(shù)” > “PLC_1” > “設(shè)備組態(tài)” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統(tǒng)和時(shí)鐘存儲(chǔ)器” 下,將系統(tǒng)位定義在MB1,時(shí)鐘位定義在MB0,如圖26所示。

    時(shí)鐘位我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個(gè)位,可以使用它去自動(dòng)激活發(fā)送任務(wù)。

    圖26. 系統(tǒng)位與時(shí)鐘位

    3. 為 PROFINET 通信口分配以太網(wǎng)地址

    在 “設(shè)備視圖”中點(diǎn)擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會(huì)出現(xiàn)PROFINET 接口的屬性,在 “以太網(wǎng)地址” 下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0,點(diǎn)擊“添加新子網(wǎng)”,增加子網(wǎng)“PN/IE_1”,如圖27所示。

    圖27. 分配IP 地址

    同樣方法,在另一個(gè)項(xiàng)目里添加另一個(gè)新設(shè)備S7-1200 CPU 并為其分配 IP 地址為192.168.0.2

    2.2 在 PLC_1 中調(diào)用并配置“TCON”、“TSEND”、“TRCV” 通信指令

    1.在 PLC_1 的 OB1 中調(diào)用“TCON” 通信指令

    ① 在**個(gè) CPU 中調(diào)用通信指令,進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖28所示。


    圖28. 調(diào)用“TCON”通信指令

    ② 點(diǎn)擊“開(kāi)始組態(tài)”按鈕(如圖28中紅色方框所示),分配連接參數(shù),由于PLC_2是在不同項(xiàng)目中,因此伙伴方“端點(diǎn)”選擇“未*”,在本地“連接數(shù)據(jù)”的下拉菜單中選擇“新建”。如圖29所示:

    圖29. 分配連接參數(shù)

    ③ 定義PLC_1的 “TCON”連接參數(shù)

    PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“屬性”> “組態(tài)”>“連接參數(shù)”中設(shè)置,設(shè)置伙伴方的IP地址為“192.168.0.2”,如圖30所示。

    圖30. 定義 TCON 連接參數(shù)

    連接參數(shù)說(shuō)明:

    端點(diǎn)
    :可以通過(guò)點(diǎn)擊選擇按鈕選擇伙伴 CPU :未*
    連接類型
    :選擇通信協(xié)議為 TCP(
    連接ID
    :連接的地址 ID 號(hào),這個(gè) ID 號(hào)在后面的編程里會(huì)用到
    連接數(shù)據(jù)
    :創(chuàng)建連接時(shí),點(diǎn)擊“新建”(見(jiàn)圖29所示),創(chuàng)建本地連接數(shù)據(jù)。
    主動(dòng)連接設(shè)置
    :選擇本地 PLC_1作為主動(dòng)連接
    地址詳細(xì)信息
    :定義通信伙伴方的端口號(hào)為:2000;

    ④ 組態(tài)完成后 “TCON” 指令如圖31所示。

    圖31 “TCON”通信指令

    2.定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù)

    ① 調(diào)用 “TSEND” 在OB1內(nèi)調(diào)用 發(fā)送100個(gè)字節(jié)數(shù)據(jù)到PLC2中


    進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TSEND” 指令,如圖32所示。

    圖32. 調(diào)用 TSEND

    ② 創(chuàng)建并定義PLC_1的發(fā)送數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個(gè)字節(jié)的數(shù)組,如圖33及圖34所示。

    圖33. 創(chuàng)建發(fā)送數(shù)據(jù)區(qū) DB 塊

    注意:對(duì)于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號(hào)尋址,也可以定義成**尋址。使用指針尋址方式,必須創(chuàng)建**尋址的 DB 塊。

    圖34. 定義發(fā)送數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組

    ③ 定義 PLC_1 的“TSEND”發(fā)送通信塊接口參數(shù),如圖35所示。

    圖35. 定義 TSEND 接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    REQ
    := M0.3
    // 使用 2Hz 的時(shí)鐘脈沖,上升沿激活發(fā)送任務(wù)
    ID
    := 1
    //創(chuàng)建連接ID
    LEN
    := 100
    //發(fā)送數(shù)據(jù)長(zhǎng)度
    DATA
    := P#DB3.DBX0.0 BYTE 100
    // 發(fā)送數(shù)據(jù)區(qū)的數(shù)據(jù),使用指針尋址時(shí),DB塊要選用**尋址

    輸出接口參數(shù):

    DONE
    := M2.5
    //任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    := M2.6
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M2.7
    //通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW10
    //有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)位信息號(hào)

    3.在 PLC_1 的OB1中調(diào)用接收指令T_RCV 并配置基本參數(shù)


    為了實(shí)現(xiàn) PLC_1 接收來(lái)自 PLC_2 的數(shù)據(jù),則在 PLC_1 中調(diào)用接收指令T_RCV 并配置基本參數(shù)。

    ① 創(chuàng)建并定義PLC_1的接收數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“PLC_1”>“程序塊”>“添加新塊”,選擇“數(shù)據(jù)塊” 創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵,定義接收數(shù)據(jù)區(qū)為 100個(gè)字節(jié)的數(shù)組,如圖36及圖37所示。

    圖36. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊

    注意:對(duì)于雙邊編程通信的 CPU ,如果通信數(shù)據(jù)區(qū)使用 DB 塊,既可以將 DB 塊定義成符號(hào)尋址,也可以定義成**尋址。使用指針尋址方式,必須創(chuàng)建**尋址的 DB 塊。

    圖37. 定義接收數(shù)據(jù)區(qū)為字節(jié)類型的數(shù)組

    ② 調(diào)用 “TRCV” 在OB1內(nèi)調(diào)用

    進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_1” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TRCV” 指令,配置接口參數(shù),如圖38所示。

    圖38. 調(diào)用 TRCV 指令并配置接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    EN_R
    := TRUE
    // 準(zhǔn)備好接收數(shù)據(jù)
    ID
    := 1
    // 連接號(hào),使用的是 TCON 的連接參數(shù)中 ID號(hào)
    LEN
    := 100
    // 接收數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    ADHOC
    := FALSE
    // TCP協(xié)議選項(xiàng)未使用Ad-hoc模式
    DATA
    := P#DB4.DBX0.0 BYTE 100
    // 接收數(shù)據(jù)區(qū)的地址

    輸出接口參數(shù):

    NDR
    := M3.2
    // 該位為 1,接收任務(wù)成功完成
    BUSY
    := M3.3
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M3.4
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW16
    // 有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)
    RCVD_LEN
    := MD18
    // 實(shí)際接收數(shù)據(jù)的字節(jié)數(shù)

    注意:ADHOC設(shè)置為 TRUE 可以接收變長(zhǎng)數(shù)據(jù)。

    2.3 在 PLC_2 中調(diào)用并配置“TCON”、“TSEND”、“TRCV” 通信指令

    1.在 PLC_2 的 OB1 中調(diào)用“TCON” 通信指令

    ① 在**個(gè) CPU 中調(diào)用通信指令,進(jìn)入 “項(xiàng)目樹(shù)” > “ PLC_2” > “程序塊” > “OB1” 主程序中,從右側(cè)窗口 “指令” > “通信” > “開(kāi)放式用戶通信”下調(diào)用 “TCON” 指令,創(chuàng)建連接,如圖39所示。


    圖39. 調(diào)用“TCON”通信指令

    ② 點(diǎn)擊“開(kāi)始組態(tài)”按鈕(如圖39中紅色方框所示),分配連接參數(shù),由于PLC_1是在不同項(xiàng)目中,因此伙伴方“端點(diǎn)”選擇“未*”,在本地“連接數(shù)據(jù)”的下拉菜單中選擇“新建”。如圖40所示:

    圖40. 分配連接參數(shù)

    ③ 定義 PLC_2 的 連接參數(shù) “TCON”

    PLC_2 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“屬性”> “組態(tài)”>“連接參數(shù)”中設(shè)置,設(shè)置伙伴方的IP地址為“192.168.0.1”,如圖41所示。

    圖41. 定義 TCON 連接參數(shù)

    連接參數(shù)說(shuō)明:

    端點(diǎn)
    :可以通過(guò)點(diǎn)擊選擇按鈕選擇伙伴 CPU :未*
    連接類型
    :選擇通信協(xié)議為 TCP(
    連接ID
    :連接的地址 ID 號(hào),這個(gè) ID 號(hào)在后面的編程里會(huì)用到
    連接數(shù)據(jù)
    :創(chuàng)建連接時(shí),點(diǎn)擊“新建”(見(jiàn)圖40所示),創(chuàng)建本地連接數(shù)據(jù)。
    主動(dòng)建立連接
    :選擇通信伙伴 PLC_1作為主動(dòng)連接
    地址詳細(xì)信息
    :定義通信本地端口號(hào)為:2000;

    ④ 組態(tài)完成后 “TCON” 指令如圖42所示。

    圖42 “TCON”通信指令

    2. 在 PLC_2 中在OB1調(diào)用“TRCV”通信指令

    接收從PLC_1 發(fā)送到 PLC_2的100個(gè)字節(jié)數(shù)據(jù)

    ① 創(chuàng)建并定義接收數(shù)據(jù)區(qū) DB 塊。

    通過(guò)“項(xiàng)目樹(shù)”>“ PLC_2”>“程序塊”>“添加新塊” ,選擇 “數(shù)據(jù)塊”創(chuàng)建 DB 塊,在DB塊的“屬性->常規(guī)->屬性”中,取消勾選“優(yōu)化的塊訪問(wèn)”,點(diǎn)擊“確定”鍵定義接收數(shù)據(jù)區(qū)為 100 個(gè)字節(jié)的數(shù)組,圖43及圖44所示。

    圖43. 創(chuàng)建接收數(shù)據(jù)區(qū) DB 塊

    圖44. 定義接收區(qū)為 100 個(gè)字節(jié)的數(shù)組

    ② 定義調(diào)用 “TRCV” 程序

    圖45. TRCV 塊參數(shù)配置

    參數(shù)配置: 輸入接口參數(shù):

    EN_R
    := TRUE
    // 準(zhǔn)備好接收數(shù)據(jù)
    ID
    := 1
    // 建立連接并一直保持連接
    LEN
    := 100
    // 接收的數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    ADHOC
    := FALSE
    // TCP協(xié)議選項(xiàng)未使用Ad-hoc模式
    DATA
    := P#DB4.DBX0.0 BYTE 100
    // 接收數(shù)據(jù)區(qū),DB 塊選用的是符號(hào)尋址

    輸出接口參數(shù):

    DONE
    := M3.2
    // 任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    := M3.3
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    := M3.4
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    := MW16
    // 有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)
    RCVD_LEN
    := MD18
    // 實(shí)際接收數(shù)據(jù)的字節(jié)數(shù)

    3. 在 PLC_2 中調(diào)用并配置“TSEND”通信指令

    PLC_2 將 發(fā)送100個(gè)字節(jié)數(shù)據(jù) 到 PLC_1 中,如何創(chuàng)建發(fā)送數(shù)據(jù)塊DB3,與創(chuàng)建接收數(shù)據(jù)塊方法相同,不再詳述。在 PLC_2 中調(diào)用發(fā)送指令并配置塊參數(shù),發(fā)送指令與接收指令使用同一個(gè)連接,如圖46所示。

    圖46. 調(diào)用TSEND 指令并配置塊接口參數(shù)

    參數(shù)說(shuō)明:

    輸入接口參數(shù):

    REQ
    := M0.3
    // 使用 2Hz 的時(shí)鐘脈沖,上升沿激活發(fā)送任務(wù)
    ID
    := 1
    // 連接ID號(hào),通過(guò)TCON創(chuàng)建的連接
    LEN
    := 100
    // 發(fā)送數(shù)據(jù)長(zhǎng)度為 100 個(gè)字節(jié)
    DATA
    := P#DB3.DBX0.0 BYTE 100
    // 發(fā)送數(shù)據(jù)區(qū)的符號(hào)地址

    輸出接口參數(shù):

    DONE
    :M2.5
    // 任務(wù)執(zhí)行完成并且沒(méi)有錯(cuò)誤,該位置 1
    BUSY
    :M2.6
    // 該位為 1,代表任務(wù)未完成,不能激活新任務(wù)
    ERROR
    :M2.7
    // 通信過(guò)程中有錯(cuò)誤發(fā)生,該位置 1
    STATUS
    :MW10
    // 有錯(cuò)誤發(fā)生時(shí),會(huì)顯示錯(cuò)誤信息號(hào)

    2.4 下載硬件組態(tài)及程序并監(jiān)控通信結(jié)果

    下載兩個(gè) CPU 中的所有硬件組態(tài)及程序,從監(jiān)控表中可以看到,PLC_1 的 TSEND 指令發(fā)送數(shù)據(jù):“1”,“2”,“3”,“4”,“5”,“6”,PLC_2 接收到數(shù)據(jù):“1”,“2”,“3”,“4”,“5”,“6”。而 PLC_2 發(fā)送數(shù)據(jù)“7”,“8”,“9”,“10”,“11”,“12”,PLC_1接收數(shù)據(jù)是“7”,“8”,“9”,“10”,“11”,“12”,如圖47所示。

    圖47. PLC_1 及 PLC_2 的監(jiān)控表



    上海騰希電氣技術(shù)有限公司專注于西門子PLC,V90伺服,V20變頻器等, 歡迎致電 13681875601

  • 詞條

    詞條說(shuō)明

  • S7-1500(T)+V90 PN不組態(tài)軸工藝對(duì)象時(shí)轉(zhuǎn)矩限幅及附加轉(zhuǎn)矩給定功能的實(shí)現(xiàn)

    從V90PN固件版本V1.3開(kāi)始,增加了750附加轉(zhuǎn)矩報(bào)文,可以通過(guò)PLC實(shí)現(xiàn)V90伺服的附加轉(zhuǎn)矩給定及轉(zhuǎn)矩限幅控制。下面給大家介紹一下PLC中不使用工藝對(duì)象對(duì)V90 PN進(jìn)行轉(zhuǎn)矩限幅控制的實(shí)現(xiàn)方法。1.1? ? 概述在許多實(shí)際應(yīng)用中,不僅需要對(duì)軸進(jìn)行位置及速度控制,有時(shí)還會(huì)需要對(duì)電機(jī)的轉(zhuǎn)矩進(jìn)行限制,比如在收放卷的應(yīng)用中采用速度環(huán)飽和加轉(zhuǎn)矩限幅的控制方式。如果在收放卷應(yīng)用中使用

  • 為 PROFINET IO 設(shè)備*路由器

    為 PROFINET?IO 設(shè)備*路由器簡(jiǎn)介如果 PROFINET 設(shè)備與一個(gè) IP 地址不在本地 IP 子網(wǎng)內(nèi)的節(jié)點(diǎn)進(jìn)行通信,常需要使用一個(gè)路由器(也稱為“標(biāo)準(zhǔn)網(wǎng)關(guān)”)。如果 PROFINET 設(shè)備將 IP 包發(fā)送到本地 IP 子網(wǎng)之外的某個(gè) IP 地址處,則 IP 包將先發(fā)送到所組態(tài)的路由器處。之后,路由器將檢查該 IP 地址。如果該地址位于本地子網(wǎng)之外,則路由器將該 IP 包轉(zhuǎn)發(fā)

  • 監(jiān)視(模擬)

    監(jiān)視(模擬)說(shuō)明您可以在此打開(kāi)和關(guān)閉過(guò)程值、目標(biāo)臨近和目標(biāo)范圍監(jiān)視。目標(biāo)范圍選中“目標(biāo)范圍”(Target range) 按鈕后,將監(jiān)視傳動(dòng)裝置在達(dá)到該目標(biāo)位置之后是保持在鄰近的目標(biāo)位置還是移開(kāi)。如果已為“目標(biāo)臨近”(Target approach) 自定義了一個(gè) 0 ms 的監(jiān)視時(shí)間,則不能打開(kāi)目標(biāo)范圍監(jiān)視。當(dāng)觸發(fā)了監(jiān)視裝置時(shí),將返回一個(gè)外部錯(cuò)誤消息。 您必須通過(guò) ERR_A 確認(rèn)此外部錯(cuò)誤。監(jiān)

  • “插件”(Add-Ins) 任務(wù)卡概覽

    “插件”(Add-Ins) 任務(wù)卡概覽“插件”(Add-Ins) 任務(wù)卡的功能在“插件”(Add-Ins) 任務(wù)卡中,可對(duì)相關(guān)插件進(jìn)行管理。“插件”(Add-Ins) 任務(wù)卡的布局“插件”(Add-Ins) 任務(wù)卡由以下部分組成:①“插件”窗格②“詳細(xì)信息”窗格③“插件”(AddIns) 文件夾④“狀態(tài)”(Status) 菜單⑤“證書(shū)”(Certificates) 區(qū)域⑥“權(quán)限”(Memory)

標(biāo)簽:S7-1200 TCP 通信

聯(lián)系方式 聯(lián)系我時(shí),請(qǐng)告知來(lái)自八方資源網(wǎng)!

公司名: 上海騰希電氣技術(shù)有限公司

聯(lián)系人: 田禮科

電 話: 021-37660026

手 機(jī): 13681875601

微 信: 13681875601

地 址: 上海松江上海市松江區(qū)廣富林路4855弄星月大業(yè)**88號(hào)4樓

郵 編:

網(wǎng) 址: shtxjd.cn.b2b168.com

八方資源網(wǎng)提醒您:
1、本信息由八方資源網(wǎng)用戶發(fā)布,八方資源網(wǎng)不介入任何交易過(guò)程,請(qǐng)自行甄別其真實(shí)性及合法性;
2、跟進(jìn)信息之前,請(qǐng)仔細(xì)核驗(yàn)對(duì)方資質(zhì),所有預(yù)付定金或付款至個(gè)人賬戶的行為,均存在詐騙風(fēng)險(xiǎn),請(qǐng)?zhí)岣呔瑁?
    聯(lián)系方式

公司名: 上海騰希電氣技術(shù)有限公司

聯(lián)系人: 田禮科

手 機(jī): 13681875601

電 話: 021-37660026

地 址: 上海松江上海市松江區(qū)廣富林路4855弄星月大業(yè)**88號(hào)4樓

郵 編:

網(wǎng) 址: shtxjd.cn.b2b168.com

    相關(guān)企業(yè)
    商家產(chǎn)品系列
  • 產(chǎn)品推薦
  • 資訊推薦
關(guān)于八方 | 八方幣 | 招商合作 | 網(wǎng)站地圖 | 免費(fèi)注冊(cè) | 一元廣告 | 友情鏈接 | 聯(lián)系我們 | 八方業(yè)務(wù)| 匯款方式 | 商務(wù)洽談室 | 投訴舉報(bào)
粵ICP備10089450號(hào)-8 - 經(jīng)營(yíng)許可證編號(hào):粵B2-20130562 軟件企業(yè)認(rèn)定:深R-2013-2017 軟件產(chǎn)品登記:深DGY-2013-3594
著作權(quán)登記:2013SR134025
Copyright ? 2004 - 2024 b2b168.com All Rights Reserved