如何使用LabVIEW OPC將2D數據陣列傳輸到Siemens PLC

更新 Apr 21, 2021

產品資訊

軟體

  • OPC Servers

其他

Hardware:
SIEMENS S7-1500
 

問題敘述

我目前正在使用SIEMENS S7-1500 PLC作為自動化組裝線的控制單元以及以PC作為監督單元的項目。兩個設備之間的通訊是通過OPC伺服器建立的。我能夠使用 (所有類型的) 單變數傳輸數據,但是,在嘗試從/向PLC傳輸2D陣列時遇到了問題。如何定義特定類型的變數陣列?

解決方案

可以將變數陣列 (Boolean類型除外) 讀/寫到PLC儲存器。某些內存類型 ( I,Q,M,SM,V,AI和AQ) 支援對陣列的操作,其中不允許Boolean陣列。

要指定陣列地址,請在地址末尾附加[rows] [cols]。如果僅指定[cols],則[rows]將默認為1。使用陣列類型,可以一次讀取和寫入200個字節的block。

Word和Short類型的最大陣列大小為100,而DWord,Long和Float類型的最大陣列大小為50。陣列大小由rows和cols的乘積決定。

請注意:最大陣列大小還取決於所使用設備的最大block大小。

例子:
  1. 要讀寫以V10開頭的10個變數記憶體Variable Memory (Float) 值的陣列,請宣告一個地址,如下所示:V10 [1] [10],其中Float為數據類型。請注意:該陣列將讀取和寫入值到暫存器V10,V14,V18,V22 ... V46。
  2. 要讀寫內部記憶體Internal Memory (Long) M20的位元23,請宣告一個地址,如下所示:M20.23。為數據類型選擇Long。

有關更多訊息,請參考位於下方路徑的NI OPC Server 幫助資料\Program Files(x86)\National Instruments\Shared\NI OPC Servers\V5\Help

相關資訊

DATA AHEAD還有一個名為SP7的LabVIEW工具包,可與SIEMENS PLC的多個設備 (包括S7-1500系列) 界面連接。
可以從下方鏈接下載該工具包以進行評估: 論壇社區中還有S7 Communication的參考範例: