跳到主要內容

AI 驅動文件

您想了解什麼?

PLC User Data

User Data 是 PLC 通過 Industrial Ethernet 寫入相機的最多 464 位元組 的資料塊。相機本身不會解釋這些位元組。您通過在位元組偏移位置新增變數來賦予它們含義,例如在位元組 0 到 15 處放置一個 16 字元的序列號。

User Data 偏移量範圍是 0 到 463。這就是您在新增變數時在 Offset (byte) 中輸入的數字。所有 464 位元組是否都能到達相機,取決於協議,在 PROFINET 上還取決於您 PLC 專案中的模組。

哪些位元組會到達​

您的 PLC 專案相機接收到的 User Data 位元組
EtherNet/IP全部,0 到 463。連線大小是固定的,無需選擇
PROFINET 使用 User Data 464 模組全部,0 到 463
PROFINET 使用 User Data 64 模組僅 0 到 63
PROFINET 未使用 User Data 模組無

在 PROFINET 上,User Data 是一個可選模組,在您的工程工具(例如 TIA Portal)中放在相機的槽位 14。GSDML 檔案提供兩種大小:

模組大小適用場景
User Data 6464 位元組您的變數可以放在前 64 位元組內。較小的迴圈資料
User Data 464464 位元組您需要使用第 64 位元組及以後的任何位元組,例如長字串或多個變數

當您在 PROFINET 相機上於偏移量 64 或更大位置新增變數時,Add variable 表單會提示:Arrives only with the User Data 464 module.

PLC 未傳送的位元組會讀取為零,而不是空值

如果變數位於 PLC 未傳送的位元組上(例如在 User Data 64 模組下偏移量 100 處),相機不會將其保留為空。它會將這些位元組讀取為零,因此變數會變成 0、false 或空字串,並且每次捕獲都會儲存該值。使用檢查缺失值(null)的程式指令碼無法捕獲這種情況。請插入 User Data 464 模組,或將變數移到位元組 64 以下。

位元組在 PLC 中的位置​

User Data 從相機自身的控制位元組之後開始,因此第一個 User Data 位元組不是 PLC 輸出資料的位元組 0:

協議User Data 位元組 n 對應
EtherNet/IP,使用 EDS 新增相機標籤 UserData[n]
EtherNet/IP,作為 Generic Ethernet Module輸出元件的 DATA[32 + n]。User Data 位元組 0 為 DATA[32]
PROFINET槽位 14 中 User Data 模組的位元組 n

在 Industrial Ethernet 下選擇協議後,Add variable 表單會在 Where the PLC writes it 下顯示您所選偏移量對應的這些地址,因此無需手動計算。在 EtherNet/IP 上,會同時列出 Rockwell UDT 標籤和 Generic Ethernet Module 地址。

位元組順序​

超過一個位元組的數值(INT、DINT、REAL 等)按現場匯流排自身的位元組順序讀取。相機不會進行任何交換:

協議位元組順序
EtherNet/IP小端序:最低位元組在前
PROFINET大端序:最高位元組在前

按 PLC 的常規格式寫入數值,它們就會正確到達。只有在您逐位元組構建值時(例如在 BYTES 陣列中),位元組順序才重要。

相機何時讀取這些位元組​

  • 相機每次有位元組發生變化時都會解碼 User Data,因此變數始終與 PLC 最後寫入的位元組保持同步。
  • 每次檢測都會在其工具完成時儲存變數的當前值。請讓 PLC 在發出觸發之前寫入 User Data。
  • 當沒有 PLC 連線時,不會進行解碼,每個變數都保留其上一次的值。

檢查 PLC 正在傳送的內容​

開啟 Integration > I/O Live Monitor。Fieldbus User Bytes 會實時顯示相機正在接收的位元組。如果變數讀取為 0 或錯誤值,請先檢查那裡的位元組,然後再檢查模組大小和偏移量。

下一步​