1. Introduction
86EVA (EVA,基於 EtherCAT 的虛擬 Arduino)是一款圖形化 EtherCAT 配置工具,它利用了 86Duino IDE 中的 ECAT 庫。
86Duino 開發套件之一是 QEC 主站,其功能包括:
- 自動產生 Arduino 語言(透過基於 EtherCAT 的虛擬 Arduino)
- 自動掃描網路設備
- EtherCAT 主站/主站設定:
- 設定主對象名稱
- 設定週期時間
- 設定冗餘選項
- 選用 ENI 文件
- EtherCAT 從站/輔助設定:
- 設定從站物件名稱
- 設定從站別名
- 可設定從站 I/O 映射
- 顯示輔助設備訊息
- 查看內部資訊包括:
- 電壓(伏特)
- 電流(安培)
- 溫度(℃)
86Duino IDE ECAT Library 是一個 Arduino 開發環境,具有實時作業系統 (RTOS) 庫,可與專用 EtherCAT 主設備進行通訊。
它是專用的EtherCAT主站通訊層解決方案,可以與EtherCAT從站設備進行即時通訊。 86Duino IDE 提供了豐富的 Arduino 應用開發設定檔和介面(API)用於程式設計操作。
2. Procedure
86EVA 為使用者提供低程式碼接口,透過簡單的按鍵和視覺化演示來開發 EtherCAT 網路匯流排組。
開啟86EVA → 選擇連接的COM口 → 尋找掃描EtherCAT網路的裝置 → EtherCAT裝置的個人化設定 → 產生Arduino風格的程式碼 → 上傳程式碼
2.1 Open 86EVA
方法一:點選右上角的快捷按鈕(以紅色突出顯示)。
Method 2: Click the 86EVA (EtherCAT) Configurator button in the “Tools” menu (highlighted in red).
2.2 Select the Connected COM Port
開啟86EVA後,預設自動選擇所連接的QEC主站的串口。 在此範例中,COM 連接埠為 COM13。
如果您連接了多個QEC主站,則需要按一下「選擇」旁的下拉式功能表(以紅色反白),然後選擇目前QEC主站使用的COM連接埠。
如果您是第一次使用COM口,不確定QEC主站COM口的位置,請參考此連結了解如何設定的說明。
2.3 Scan devices on the EtherCAT network
選擇正確的 COM 連接埠位置後,請按一下「連線」按鈕(以紅色反白顯示)。
點選「連線」按鈕後,將出現掃描畫面。
掃描過程完成後,您將看到一台 QEC 主站以及目前連接到 EtherCAT 網路的所有 EtherCAT 從站裝置。
注意:在 86EVA 中,掃描過程將自動識別 DMP QEC 系列的 EtherCAT 從站裝置並顯示其影像和相關設定。 如果連接第三方EtherCAT從站設備,會出現未知的EtherCAT從站模組資訊。 詳細內容請參閱第 3.2 章。
2.4 Personalize settings for EtherCAT devices
使用者可以點選EtherCAT設備的產品圖片進入該設備的設定頁面。
EtherCAT Master
點擊QEC master的圖片後,您可以透過該頁面進行個人化設定。 例如,您可以設定物件名稱、選擇 EtherCAT 週期時間、選擇冗餘選項和選擇 ENI 檔案功能。
如下圖所示,使用 QEC-M-01。
詳細內容請參閱第 3.1 章。
EtherCAT 從站
在EtherCAT從站設備的設定中,可以找到所連接的QEC EtherCAT從站設備的資訊如:供應商ID(Vendor ID)、產品識別號碼(Product Code)、內部電壓、電流、溫度等。也可以設定:物件名稱、別名位址和I/O 映射。
QEC EtherCAT 從站
QEC系列的EtherCAT從站設備都會有完整的產品圖片,使用者可以點選QEC EtherCAT從站設備圖片進入QEC從站。
QEC 從站模組的設定頁。
進入設定頁面後,使用者首先會看到 EtherCAT 從站設備的信息,如供應商 ID、產品代碼、可設定物件名稱、別名位址(別名位址詳細資料請參閱附錄 1)。
然後是來自從站設備的即時訊息,例如電壓、電流、溫度等(這有助於追蹤碳足跡)。
最後是可設定的虛擬Arduino引腳映射(虛擬Arduino概念介紹見附錄2)。
有關 QEC 從機設定的詳細信息,請參閱第 3.2.1 章。
非 QEC EtherCAT 從站
當86EVA掃描並偵測到非QEC EtherCAT從站設備時,會顯示未知的設備影像,並標有「不支援」標籤。
點擊未知 EtherCAT 從站裝置的影像後,您可以存取有關該特定裝置的資訊。
詳細內容請參閱第 3.2.2 章。
2.5 Generate Arduino code
配置完所有設定後,按一下「程式碼產生」按鈕(以紅色突出顯示)。
點擊後,將出現結果和完成螢幕,按一下「確定」退出程式; 如果您不按一下“確定”,您將在 10 秒後離開該程式。
完成後,86EVA會自動產生設定檔和Arduino程式碼,並在86Duino IDE.cpp中產生兩個程式檔案Myeva和Myeva.h(以紅色突出顯示),以便用戶存取並添加到自己的程式中。
2.6 Upload the code
請注意,產生的設定檔和使用者程式將使用「上傳」按鈕一起燒錄到 QEC 主站中。 必須按下“上傳”按鈕才能完成配置過程; 否則,86EVA 中所做的配置設定將被視為無效。
上傳之前,請先驗證「Board」和「Port」設定是否正確(以紅色反白)。
點擊“上傳”按鈕(以紅色突出顯示)上傳程式碼。
上傳完成。
上傳完成後,使用者可以重新開啟86EVA來掃描從設備,檢查設備是否按照先前的配置設定運作。
更詳細的EtherCAT圖形化開發流程
86Duino IDE為開發者提供了完整的低程式碼開發平台,讓使用者可以透過86EVA配置EtherCAT網路參數。
內建HMI編輯器(86HMI)是一款HMI開發軟體,結合積木式程式設計工具ArduBlock,讓使用者可以透過少量程式設計快速開發EtherCAT系統。
進一步的配置請參考其他工具的使用手冊。
3. EtherCAT Device Configuration
在設定過程中,會提到 EtherCAT 設備的個人化。 我們可以將EtherCAT設備分為:QEC主站和EtherCAT從站。
3.1 QEC Master Settings
86Duino IDE 開發環境專為 QEC Master 系列設計,包括 QEC-M-01、QEC-M-043T、QEC-M-070T、QEC-M-090T 和 QEC-M-150T。 在86EVA中連接並完成掃描過程後,使用者可以以圖形形式查看EtherCAT Master的資訊(以紅色突出顯示)以及產品圖像。
- QEC-M-01:
- QEC-M-043T:
常規設定:
您可以設定 EtherCAT 主站的物件名稱、套用 BIOS 設定、啟用 EtherCAT 電纜冗餘選項、設定 EtherCAT 循環時間,並根據需要選擇 ENI 檔案。
物件名稱
設定 EtherCAT 主站的物件名稱(以紅色突出顯示)。 配置完成後,當翻譯 Arduino 程式碼時,此設定將套用於程式碼中的物件名稱。
應用 BIOS 設定
選擇是否優先考慮 EtherCAT 主站 BIOS 中的預先配置設定(以紅色突出顯示)。
注意:選擇此選項將優先考慮 QEC Master 的 BIOS 中的預先配置設定。
啟用冗餘
選擇是否為 EtherCAT 主站啟用冗餘(以紅色突出顯示)。
設定 EtherCAT 主站週期時間
設定 EtherCAT 主站週期時間(以紅色突出顯示),週期時間選項為 125us、250us、500us、1ms、2ms 和 4ms。
如果使用此功能選單設定EtherCAT主站的週期時間,請勿選擇Apply BIOS Settings,否則將使用BIOS預設。
選擇 ENI 文件
使用者可以使用此功能選擇現有的 ENI 檔案(以紅色突出顯示)。 上傳程式碼時,所選的ENI檔案將自動上傳並套用到程式中。
虛擬Arduino:
您可以為虛擬 Arduino 配置最大數位引腳數 (Max Digital Pins)、連接埠數 (Max Serial Ports) 和 MPG 數 (Max MPG)。
注意:所有未列出的值均預設為 4。
最大數位引腳
在下拉式選單中設定最大數字引腳數,選項包括 32、64、128 和 256 個虛擬引腳(以紅色突出顯示)。
最大串口數
在下拉式選單中設定最大序列埠數,選項有 4、8、16、32 個虛擬連接埠(以紅色突出顯示)。
最多 MPG 端口
在下拉式選單中設定 MPG 連接埠的最大數量,選項有 4、8、16、32 個虛擬 MPG(以紅色突出顯示)。
3.2 EtherCAT Slave Information and Settings
在 EtherCAT 從站設備上方(以紅色突出顯示),指示了產品名稱以及連接的 EtherCAT 從站設備的順序。
在 EtherCAT 從站設備(以紅色突出顯示)下方,有別名位址和產品類型(如果是非 QEC 從站,將顯示供應商識別碼)。
3.2.1 QEC EtherCAT Slave
點擊左下角「查看」按鈕(紅色突出顯示),可查看即時監控數據,包括電壓、電流、溫度(黃色突出顯示)。
再次點選「檢視」可切換回「別名位址」概述。
QEC-RXXD系列(EtherCAT從站數位I/O模組)
QEC-RXXD 系列是 EtherCAT 從站數位 I/O 模組,具有 16 個數位通道,可配置為數位輸入或輸出。
點選進入QEC從設備後,會顯示產品名稱。
以下功能說明將以 QEC-R00DC4D-N 為例。
常規設定
您可以設定 QEC 從設備的物件名稱和別名位址,以及取得 QEC 從設備的供應商 ID 和產品代碼。
- 物件名稱:
設定 QEC 從裝置的物件名稱(以紅色反白)。 設定完成後,在實作 Arduino 程式碼時,此配置將套用於程式碼的物件名稱。
- 別名位址:
別名位址儲存在 EEPROM 中,可以透過從站裝置應用程式進行變更(配置站別名位址)。
設定 QEC 從站的別名位址(以紅色反白)。
設定別名位址後,程式將自動透過此編號識別 QEC 從機。 當使用者的QEC從設備因係統需求在EtherCAT網路中發生變化時,程式會自動適應,無需設定新的配置; 如果不設定別名位址,程式將不會自動適應新配置。 預設從站別名位址為 0,請設定 1 ~ 65535 之間的數字。
註:適應新配置是指切換從站位置(從站設備總數不增加或減少)。 如果新增或刪除設備,則需要重新配置程式。
86EVA 掃描從機裝置成功後,會自動讀取從機先前設定的別名位址並顯示在該欄位中。 如果數值輸入過程被取消或中斷,則該欄位將返回先前的值。
按下Set按鈕會將別名位址寫入EtherCAT從站的EEPROM中; 關閉86EVA後,請記得重新啟動EtherCAT設備。
- 供應商 ID:
QEC 從設備的供應商 ID(以紅色突出顯示)。
- 產品代碼:
QEC 從裝置產品識別號碼(以紅色反白)。
設備狀態
在設備狀態中,您將能夠查看即時內部監控數據,包括電壓、電流和溫度(以紅色突出顯示)。
虛擬Arduino
在虛擬Arduino中,您可以設定數位輸入/輸出引腳的數量。
以QEC-R00DC4D-N為例,有12個數位輸入接腳和4個數位輸出接腳。
使用者選擇虛擬引腳編號,最大數量不應超過 QEC 主設定頁面中的最大數字引腳數。
- 數位輸入引腳映射(以紅色突出顯示)
- 數位輸出引腳映射(以紅色突出顯示)
- Digital Input DQ11 pin and Digital Output DQ00 pin settings.
有關虛擬Arduino的詳細信息,請參閱附錄2。
QEC-RXXHU系列(EtherCAT從站閘道控制器(UART + MPG + 鍵盤+LCM))
QEC-RXXHU系列是EtherCAT從站模組,最多可支援2組UART(RS232/RS485)、1組手輪、1個鍵盤和1個LCM顯示器。 QEC-RXXHU產品功能齊全:
- QEC-R00HU5S-N (RS232 + MPG + Keypad + LCM)
- QEC-R00HU9S-N (RS232/485 + MPG + Keypad + LCM)
點選進入QEC從設備後,會呈現產品名稱。 以下功能說明將以 QEC-R00HU9S-N 為例。
常規設定
一般設定功能與QEC-RXXD系列相同。 請參閱QEC-RXXD系列的常規設定。
設備狀態
設備狀態區域與QEC-RXXD系列相同。 請參閱QEC-RXXD系列的設備狀態。
虛擬Arduino
在虛擬 Arduino 中,您可以設定序列埠、MPG 連接埠、LCM 映射、鍵盤映射和蜂鳴器引腳的編號。
以QEC-R00HU9S-N為例,您可以設定2個串列埠,其餘(MPG連接埠、LCM映射、鍵盤映射和蜂鳴器接腳)僅限於1組。
使用者可以選擇虛擬引腳數量,最大數量不會超過QEC Master設定頁面中設定的最大數量(Max Serial Ports和Max MPG Ports)。
- 序列埠映射(以紅色突出顯示),未選擇:
做出選擇後:
- MPG 連接埠對映(以紅色突出顯示),未選擇:
做出選擇後:
- LCM 映射(以紅色突出顯示)和鍵盤映射(以黃色突出顯示),未選擇:
做出選擇後:
- 蜂鳴器映射(以紅色突出顯示),未選擇:
做出選擇後:
有關虛擬Arduino的詳細信息,請參閱附錄2。
3.2.2 non-QEC EtherCAT Slave
86EVA 中的其他第三方 EtherCAT 從站設備呈現未知的 QEC 從站產品影像。
轉到設定頁面,您將看到“不支援”(以紅色突出顯示)。
常規設定
一般設定功能與QEC-RXXD系列相同。 請參閱QEC-RXXD系列的常規設定。
4. Advanced settings
在86EVA中,除了常規設定外,還可以在此工具中配置一些進階設定。 本節將介紹如何調整進階設定。
4.1 Auto Set Alias Addresses of All Slave Devices
點擊左下角的「自動」設定按鈕 (以紅色突出顯示)。
將出現「自動設定所有從裝置的別名位址」和「自動設定虛擬 Arduino 的數位引腳對映」按鈕。 使用者可以點擊上方按鈕(以紅色反白)自動設定目前 EtherCAT 網路上的別名位址。
點選「自動設定所有從站裝置的別名位址」按鈕後,如果某個EtherCAT 裝置之前沒有設定過別名位址(別名位址為0),則會為每個EtherCAT 從站裝置設定1 群組從100 開始的別名位址依排序順序,可用於EtherCAT從站設備較多或需要快速設定時。
4.2 Auto Set Digital Pin Mapping of the Virtual Arduino
點擊左下角的“自動”設定按鈕(以紅色突出顯示)。
注意:虛擬Arduino數位接腳僅適用於QEC-RXXD系列產品。
將出現「自動設定所有從裝置的別名位址」和「自動設定虛擬 Arduino 的數位引腳對映」按鈕。 使用者可以點擊下面的按鈕(以紅色突出顯示)自動設定目前 EtherCAT 網路上的虛擬引腳映射。
如果在先前沒有設定虛擬引腳的 QEC-RXXD 裝置上使用,則按一下「虛擬 Arduino 的自動設定數位引腳對映」按鈕後,將會設定一組從 0 開始的虛擬接腳。
附錄
A1. Alias Address
別名位址是EtherCAT中設定裝置別名的一種方法,通常用於尋找已被識別的從站裝置。
設定從站別名位址時,儲存在ESI-EEPROM中(ESI,EtherCAT Slave Information); 別名位址必須由主站激活,並且可以由 EtherCAT 從站設備更改。
如果節點位址與別名位址匹配,則執行對應節點的指令。
QEC 上如何運作?
設定別名位址後,程式會自動辨識該編號的QEC從站,當使用者的QEC從站因需求改變在EtherCAT網路上的位置時,程式會自動適應,無需再次上傳新的設定; 如果不設定別名位址,程式不會自動適應新群組。
86EVA掃描成功後,會自動讀取從機之前設定的Alias Address。 下圖顯示了尚未設定別名位址的從裝置(以紅色突出顯示)。
下圖顯示了設定了別名位址的從設備。 預設從站別名位址為 0。請設定 1 ~ 65535 之間的數字。
別名位址顯示在從設備的【常規】中的【別名位址】欄位中; 此欄位在輸入數值的過程中被取消,修改先前的數值後會傳回。
按下Set按鈕會將別名位址寫入EtherCAT從站的EEPROM中; 關閉86EVA後,請記得重新啟動EtherCAT設備。
注意:設備重新啟動後將採用新的別名位址。
A2. Virtual Arduino
在一般的Arduino板上,其腳位的數量、順序和功能都是固定的,製造後不能改變; 虛擬Arduino的概念是將EtherCAT網路模擬為虛擬Arduino,允許根據使用者的意願調整其引腳數量、順序和功能。
虛擬Arduino由多個EtherCAT從站的各種引腳組成,其上的各個連接埠和引腳來自不同的EtherCAT從站設備,並透過EtherCAT網路相互連接。
虛擬 Arduino 支援的功能
目前,虛擬 Arduino 支援數位 I/O、序列埠、MPG 連接埠、鍵盤、MPG 和蜂鳴器,這些可以在以下 QEC 設備中找到:
- QEC-RXXD 系列(EtherCAT 從站數位 I/O 模組):數位 I/O
- QEC-RXXHU 系列(EtherCAT 從站閘道控制器(UART + MPG + 鍵盤 +LCM)):串列埠、MPG 連接埠、鍵盤、MPG 和蜂鳴器
詳細設定請參考各產品介紹。
如何在86Duino IDE中使用虛擬Arduino?
本節介紹如何在 86Duino IDE 中使用配置成功的 Virtual Arduino Digital I/O PIN。
本範例將使用 QEC-M-043T(EtherCAT 主站)和 QEC-R00D88D-C(EtherCAT 數位輸入/輸出模組)進行示範,該模組具有 8 個輸入觸點和 8 個輸出觸點。
有關如何開啟 86EVA 工具的信息,請參閱第 2 章。
首先,點擊進入QEC-R00D88D-C設備並在虛擬Arduino中進行設定。 (有關資訊和設置,請參閱 QEC-RXXD 系列(EtherCAT 從站數位 I/O 模組)。
本例中,數位輸入引腳映射的 DI00 和數位輸出引腳映射的 DQ00 設定為虛擬引腳 D0 和引腳 D1。
設定完成後,產生此 86EVA 設定的 Arduino 程式碼,然後按一下「Code Generation」(以紅色突出顯示)
完成後,使用者可以使用86Duino IDE的主 loop()中的EVA類別(以紅色突出顯示)來控制86EVA中設定的引腳。
在本例中,我們使用 Virtual Digital D0 和 D1 這兩個虛擬引腳,分別對應 QEC-R00D88D-C 的 DI0 引腳(INPUT)和 DQ0 引腳(OUTPUT)。 然後我們讀取D0的狀態,然後將D1設定為高電平,程式碼如下圖所示。
程式碼上傳成功後,可以看到QEC-R00D88D-C上DQ0腳的燈亮起來。
註:loop()中,EVA.digitalRead(0)代表先前設定的數位輸入引腳映射的虛擬引腳0; EVA.digitalWrite(1, HIGH) 表示先前設定的數位輸出引腳映射的虛擬引腳 1。
其他例子:
使用者可以透過串列埠列印出Digital Input讀取到的值,程式碼如下。
void setup() { Serial.begin(115200); EVA.begin(); } void loop { Serial.println(EVA.digitalRead(0)); EVA.digitalWrite(1, HIGH); }
使用者可以將Digital Output應用到Arduino經典入門範例中,程式碼如下。
void setup() { EVA.begin(); } void loop { EVA.digitalWrite(0, HIGH); delay(1000); EVA.digitalWrite(0, LOW); delay(1000); }
86Duino 參考的文本是根據 Creative Commons Attribution-ShareAlike 3.0 License,部分文本是從 the Arduino reference 修改的。 參考中的代碼示例已發佈到公共領域。