跳到主要內容

AI 驅動文件

您想了解什麼?

PLC 使用者資料

使用者資料是 PLC 通過工業乙太網寫入相機的一塊最大 464 位元組的資料。相機本身並不解釋這些位元組。您通過在某個位元組偏移處新增變數來賦予它們含義,例如在位元組 0 到 15 處放置一個 16 字元的序列號。

使用者資料偏移範圍為 0 到 463。新增變數時,您在偏移量 (byte) 中輸入的就是這個數字。全部 464 位元組是否都能到達相機,取決於所使用的協議;在 PROFINET 上,還取決於您 PLC 專案中所使用的模組。

哪些位元組會到達​

您的 PLC 專案相機接收的使用者資料位元組
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 或更大的變數時,新增變數表單會提示:僅在使用 User Data 464 模組時到達。

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

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

位元組在 PLC 中的位置​

使用者資料在相機自身的控制位元組之後開始,因此第一個使用者資料位元組並非 PLC 輸出資料的第 0 位元組:

協議使用者資料位元組 n 的位置
EtherNet/IP,使用從 EDS 新增的相機標籤 UserData[n]
EtherNet/IP,作為通用乙太網模組 (Generic Ethernet Module)輸出元件的 DATA[32 + n]。使用者資料位元組 0 為 DATA[32]
PROFINET槽位 14 中 User Data 模組的位元組 n

在工業乙太網下選擇協議後,新增變數表單會在PLC 寫入位置下顯示您所選偏移量對應的這些地址,因此您無需手動計算。在 EtherNet/IP 上,它會同時列出 Rockwell UDT 標籤和通用乙太網模組地址。

位元組順序​

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

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

從 PLC 按其正常格式寫入數值,即可正確到達。只有當您逐位元組構建數值時(例如在 BYTES 陣列中),位元組順序才會有影響。

相機讀取位元組的時機​

  • 每當位元組發生變化時,相機就會解碼使用者資料,因此變數始終與 PLC 最後寫入的位元組保持同步。
  • 每次檢測會儲存各工具完成時變數所持有的值。請讓 PLC 在拉起 trigger 之前寫入使用者資料。
  • 未連線 PLC 時不會進行解碼,每個變數會保留其上一次的值。

檢查 PLC 傳送的內容​

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

後續步驟​