開放式用戶通信
CPU 的集成 PROFINET 端口支持多種以太網網絡上的通信標準:
● 傳輸控制協議 (TCP)
● ISO on TCP (RFC 1006)
● 用戶數據報協議 (UDP)
TCP 和 ISO on TCP
傳輸控制協議 (TCP) 是由 RFC 793 描述的一種標準協議:傳輸控制協議。TCP 的主要用途是在過程對之間提供可靠、安全的連接服務。該協議有以下特點:
● 由于它與硬件緊密相關,因此它是一種高效的通信協議
● 它適合用于中等大小或較大的數據量(最多 8192 字節)
● 它為應用帶來了更多的便利,特別是對于錯誤恢復、流控制和可靠性。
● 它是一種面向連接的協議
● 它可以非常靈活地用于只支持 TCP 的第三方系統
● 有路由功能
● 只能應用靜態數據長度。
● 消息會被確認。
● 使用端口號對應用程序尋址。
● 大多數用戶應用協議(例如 TELNET 和 FTP)都使用 TCP。
● 由于使用 SEND/RECEIVE 編程接口的緣故,需要編程來進行數據管理。
基于傳輸控制協議 (TCP) 的國際標準組織 (ISO) (RFC 1006) (ISO on TCP) 是一種能夠將 ISO 應用移植到 TCP/IP 網絡的機制。該協議有以下特點:
● 它是與硬件關系緊密的高效通信協議
● 它適合用于中等大小或較大的數據量(最多 8192 字節)
● 與 TCP 相比,它的消息提供了數據結束標識符并且它是面向消息的。
● 具有路由功能;可用于 WAN
● 可用于實現動態數據長度。
● 由于使用 SEND/RECEIVE 編程接口的緣故,需要編程來進行數據管理。
通過傳輸服務訪問點 (TSAP, Transport Service Access Point),TCP 協議允許有多個連接訪問單個 IP 地址(最多 64K 個連接)。借助 RFC 1006,TSAP 可唯一標識連接到同一個 IP 地址的這些通信端點連接。
開放式用戶通信指令的連接 ID
將 TSEND_C、TRCV_C 或 TCON PROFINET 指令插入到用戶程序中時,STEP 7 會創建一個背景數據塊,以組態設備之間的通信通道(或連接)。使用指令的“屬性”(Properties) 組態連接的參數。這些參數中有該連接的連接 ID。
● 連接 ID 對于 CPU 必須是唯一的。創建的每個連接必須具有不同的 DB 和連接 ID。
● 本地 CPU 和伙伴 CPU 都可以對同一連接使用相同的連接 ID 編號,但連接 ID 編號不需要匹配。連接 ID 編號只與各 CPU 用戶程序中的 PROFINET 指令相關。
● CPU 的連接 ID 可以使用任何數字。但是,從“1”開始按順序組態連接 ID 可以很容易地跟蹤特定 CPU 使用的連接數。
用戶程序中的每個 TSEND_C、TRCV_C 或 TCON 指令都創建一個新連接。為每個連接使用正確的連接 ID 非常重要。
兩個 CPU 之間的通信,這兩個 CPU 使用 2 個單獨的連接來發送和接收數據。
①CPU_1 上的 TSEND_C 創建一個連接并為該連接分配一個連接 ID(CPU_1 的連接 ID 1)。
②CPU_2 上的 TRCV_C 為 CPU_2 創建連接并分配連接 ID(CPU_2 的連接 ID 1)。
③CPU_1 上的 TRCV_C 為 CPU_1 創建第二個連接并為該連接分配不同的連接 ID(CPU_1 的連接 ID 2)。
④CPU_2 上的 TSEND_C 創建第二個連接并為該連接分配不同的連接 ID(CPU_2 的連接 ID 2)。
以下示例顯示了兩個 CPU 之間的通信,這兩個 CPU 使用 1 個連接來發送和接收數據。
● 每個 CPU 都使用 TCON 指令來組態兩個 CPU 之間的連接。
● CPU_1 中的 TSEND 指令通過由 CPU_1 中的 TCON 指令組態的連接 ID(“連接 ID 1”)鏈接到 CPU_2 中的 TRCV 指令。CPU_2 中的 TRCV 指令通過由 CPU_2 中的 TCON 指令組態的連接 ID(“連接 ID 1”)鏈接到 CPU_1 中的 TSEND 指令。
● CPU_2 中的 TSEND 指令通過由 CPU_2 中的 TCON 指令組態的連接 ID(“連接 ID 1”)鏈接到 CPU_1 中的 TRCV 指令。CPU_1 中的 TRCV 指令通過由 CPU_1 中的 TCON 指令組態的連接 ID(“連接 ID 1”)鏈接到 CPU_2 中的 TSEND 指令。
①CPU_1 上的 TCON 創建一個連接并在 CPU_1 上為該連接分配連接 ID (ID=1)。
②CPU_2 上的 TCON 創建一個連接并在 CPU_2 上為該連接分配連接 ID (ID=1)。
③CPU_1 上的 TSEND 和 TRCV 使用 CPU_1 上的 TCON 創建的連接 ID (ID=1)。
CPU_2 上的 TSEND 和 TRCV 使用 CPU_2 上的 TCON 創建的連接 ID (ID=1)。
如以下示例所示,還可以使用單個 TSEND 和 TRCV 指令通過由 TSEND_C 或 TRCV_C 指令創建的連接進行通信。TSEND 和 TRCV 指令本身不會創建新連接,因此必須使用由 TSEND_C、TRCV_C 或 TCON 指令創建的 DB 和連接 ID。
①CPU_1 上的 TSEND_C 創建一個連接并為該連接分配連接 ID (ID=1)。
②CPU_2 上的 TRCV_C 創建一個連接并在 CPU_2 上為該連接分配連接 ID (ID=1)。
③CPU_1 上的 TSEND 和 TRCV 使用 CPU_1 上的 TSEND_C 創建的連接 ID (ID=1)。CPU_2 上的 TSEND 和 TRCV 使用 CPU_2 上的 TRCV_C 創建的連接 ID (ID=1)。
組態 DNS
必須組態域名系統 (DNS) 才能使用安全 OUC。網絡中必須至少存在一個 DNS 服務器,并且必須為 S7-1200 CPU 組態至少一個 DNS 服務器。
按以下步驟組態 DNS 服務器:
1. 導航到 S7-1200 CPU 的設備視圖。
2. 轉到“屬性”(Properties) 頁面和“常規”(General) 選項卡。
3. 單擊 DNS 組態以顯示組態頁面。
4. 在“服務器列表”(Server list) 表格中 DNS 服務器地址下的第一行,單擊“<添加新地址>”() 并輸入 DNS 服務器的 IP 地址。
TSEND_C 和 TRCV_C 指令
從 S7-1200 CPU V4.1 或更高版本開始,與 STEP 7 V13 SP1 或更高版本一起使用時,CPU 可以擴展 TSEND_C 和 TRCV_C 指令的功能,以便使用結構符合 TCON_IP_V4 和 TCON_IP_RFC 的連接參數。
選擇 TSEND_C 和 TRCV_C 指令的版本
在 STEP 7 中提供了兩種版本的 TSEND_C 和 TRCV_C 指令:
● V2.5 和 V3.1 可用于 STEP 7 Basic/Professional V13 或更早版本。
● 版本 4.0 在 STEP 7 Basic/Professional V13 SP1 或新版本中提供。
可以從兼容性和移植便利性方面考慮,選擇將相應的指令版本插入用戶程序中。不要在同一個 CPU 程序中使用不同版本的指令。
單擊指令樹任務卡上的圖標可啟用指令樹的標題和列。
要更改 TSEND_C 和 TRCV_C 指令的版本,請從下拉列表中選擇相應版本。可以選擇一組指令或分別選擇各個指令。
使用指令樹將 TSEND_C 或 TRCV_C 指令放入程序時,將根據所選的 TSEND_C 或 TRCV_C 指令在項目樹中創建新的 FB 或 FC 實例。在項目樹的“PLC_x > 程序塊 > 系統塊 > 程序資源”(PLC_x > Program blocks > System blocks > Program resources) 下可看到新的
FB 或 FC 實例。
要檢驗程序中 TSEND_C 或 TRCV_C 指令的版本,必須檢查項目樹的屬性而不是程序編輯器中所顯示框的屬性。選擇項目樹的 TSEND_C 或 TRCV_C FB 或 FC 實例,單擊右鍵,選擇“屬性”(Properties),然后選擇“信息”(Information) 頁查看 TSEND_C 或 TRCV_C 指令的版本號。
TSEND_C 和 TRCV_C(使用以太網發送和接收數據)
TSEND_C 指令兼具 TCON、TDISCON 和 TSEND 指令的功能。TRCV_C 指令兼具TCON、TDISCON 和 TRCV 指令的功能。
最少可傳送 (TSEND_C) 或接收 (TRCV_C) 一個字節的數據,最多 8192 字節。TSEND_C 不支持傳送布爾位置的數據,TRCV_C 也不會在布爾位置中接收數據。有關使用這些指令傳送數據的信息,請參見數據一致性部分。
TSEND_C
TSEND_C 可與伙伴站建立 TCP 或 ISO on TCP 通信連接、發送數據,并且可以終止該連接。設置并建立連接后,CPU 會自動保持和監視該連接。
TRCV_C
TRCV_C 可與伙伴 CPU 建立 TCP 或 ISO on TCP 通信連接,可接收數據,并且可以終止該連接。設置并建立連接后,CPU 會自動保持和監視該連接。
TSEND_C 指令需要通過 REQ 輸入參數的上升沿來啟動發送作業。然后,BUSY 參數在處理期間會設置為 1。發送作業完成時,將通過 DONE 或 ERROR 參數被設置為 1 并持續一個掃描周期進行指示。在此期間,將忽略 REQ 輸入參數的上升沿。
TCON、TDISCON、TSEND 和 TRCV 指令
TCON
TCP 和 ISO on TCP:TCON 啟動從 CPU 到通信伙伴的通信連接。
TDISCON
TCP 和 ISO on TCP:TDISCON 終止從 CPU 到通信伙伴的通信連接。
TSEND
TCP 和 ISO on TCP:TSEND 通過從 CPU 到伙伴站的通信連接發送數據。
TRCV
TCP 和 ISO on TCP:TRCV 通過從伙伴站到 CPU 的通信連接接收數據。
編輯:jq
-
TCP
+關注
關注
8文章
1351瀏覽量
78989
原文標題:S7_1200 開放式用戶通信TCP-IP
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論