說明:
如果您要使用 S7-300 工業以太網模板作為 PROFINET IO 控制器或者 PROFINET IO 設備, 那么您必須調用一下通訊功能塊在用戶程序中:
FC11 "PNIO_SEND"
FC12 "PNIO_RECV"
通訊塊 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的特性:
FC11 和 FC12 是同步通訊塊。
塊被包含在 S7-300 控制器“SIMATIC_NET_CP” 庫中。
塊必須被調用在 OB1 中
功能調用結束通過 “DONE”, “NDR” 或 “ERROR” 表示。
FC11 “ PNIO_SEND” 通訊功能塊的特性 :
作為 PROFINET IO 控制器
功能塊通過通訊處理器傳送指定輸出范圍內的過程數據 (輸出) 到 PROFINET IO 設備并且提供同樣的狀態給 PROFINET IO 設備的輸出。
作為 PROFINET IO 設備
功能塊讀取 PROFINET IO 設備 CPU 的過程映像輸入區并且傳送它們到 PROFINET IO 控制器 (被組態的輸入地址);提供同樣的狀態給 PROFINET IO 控制器。
FC12“ PNIO_RECV” 通訊功能塊的特性 ::
作為 PROFINET IO 控制器
功能塊接受 PROFINET IO 設備的過程數據(輸入) 并且提供來自于 PROFINET IO 設備的指定輸入區的狀態。
作為 PROFINET IO 設備
功能塊接受 PROFINET IO 控制器發送的數據 (被組態的輸出地址) 并把 PROFINET IO 控制器的傳送數據的狀態寫到 PROFINET IO 設備以組態好的數據區中。
組態描述:
STEP 7 項目包括以下被組態成 PROFINET IO 控制器的 S7-300 站:
CPU 319-3PN/DP
STEP 7 項目包括以下被組態成 PROFINET IO 設備的 S7-300 站:
CPU 315-2DP 和 CP343-1 Lean (6GK7 343-1CX10-0XE0)
ET 200S

圖. 01: 組態
接下來的輸入/輸出模塊被組態到 PROFINET IO 設備 CP343-1 Lean中:
地址是 0-15 的 16 字節輸入模塊
地址是 16-23 的 8 字節輸入模塊
地址是 0-15 的 16 字節輸出模塊
地址是 16-19的 4 字節輸出模塊
這表明輸入地址區和輸出地址區分別是 24 字節 (0-23) 和 20 字節 (0-19)。 輸入和輸出首地址可以不是"0".
圖. 02: PROFINET IO 設備 CP343-1 Lean 的輸入/輸出地址區:
接下來的輸入/輸出模塊被組態到 ET 200S 中:
地址是 20.0-20.1 的 2 位輸出模塊
圖. 03: PROFINET IO 設備 ET 200S 的輸入/輸出地址區:
最終的地址區是:
輸入: 0-23 = 24 字節
輸出: 0-20 = 21 字節
用戶程序描述:
在這個例子中, 一個 CP343-1 Lean 被用作連接一個作為 PROFINET IO 設備的S7-300 站到一個 PROFINET IO 系統中。字節 MB0 被定義成 S7-300 CPU 時鐘位。STEP 7 程序包括 OB1, FB100, DB30, DB31, DB12, FC11 and FC12.
OB1
OB1 被循環調用。 在這個OB中, FB100 (實例 DB: DB100)被調用。
圖. 06: 調用 FC12 "PNIO_RECV"
輸入參數 MODE=0, 因為通訊處理器僅被用作 PROFINET IO 設備。如果通訊處理器被同時用作 PROFINET IO 控制器和 PROFINET IO 設備,那么輸入參數 MODE=1。
輸入通訊功能參數 CPLADDR 是你指定的 PROFINET IO 設備的模塊地址。你從硬件組態中可以得到它,在工業以太網通訊模塊 -> “ 地址” 標簽 (參看 圖. 06)。在這個例子中, CP343-1 Lean 模塊地址是 256dec = 100hex.。
FC11 “ PNIO_SEND” 的輸入參數 LEN 是你組態的 CP343-1 Lean (24 字節) 的輸入地址區的長度。 這段數據長度被指定為 FC11 “PNIO_SEND” 發送數據的 LEN 參數。這段數據必須與已組態的的輸入 (24 字節) 保持一致。
FC12 “ PNIO_RECV” 的輸入參數 LEN 是你組態的 CP343-1 Lean (20 字節) 的輸出地址區的長度。 這段數據長度被指定為 FC12 “PNIO_RECV” 發送數據的 LEN 參數。這段數據必須與已組態的的輸出 (20字節) 保持一致。
發送接收緩沖區 (例如 數據塊) 包含了被發送和接收的數據,長度至少要和被定義的發送和接收數據一樣長。在這個例子中,DB 包含的發送數據長度必須大于等于 24 字節并且 DB 包含的接收數據長度必須大于等于 20 字節。
圖. 07: CP343-1 Lean 的屬性對話框-> “ 地址” 標簽
FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的輸出參數 “DONE”、“NDR”、“ERROR” 和 “STATUS”是通訊功能塊的工作標示位。
如果發送任務成功完成,那么 FC11 “PNIO_SEND”的 “DONE”將被置位。
如果接收任務成功完成 (例如:數據被接收到) ,那么 FC12 “PNIO_RECV”的 “NDR”將被置位。
如果 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 由于錯誤而結束,可通過狀態字進行錯誤分析。
PROFINET IO 控制器的用戶程序描述:
在這個例子中,一個帶有集成以太網接口的 S7-300 CPU 被用作 PROFINET IO 控制器。 字節 MB0 被定義成 S7-300 CPU時鐘位。
STEP 7 程序包括 OB1, FB100 和 DB20。
在用戶程序中沒有必要調用通訊功能塊。可以通過裝載和傳送命令來訪問輸入/輸出區,例如,讀出輸入值和寫值到輸出。讀到的輸入值被保存到數據塊 (DB20)中。