Verdin AM62使用CODESYS

簡介

CODESYS 是基于 IEC 61131-3 的 PLC 開發(fā)工具,在工業(yè)控制、交通等領(lǐng)域中有著廣泛的應(yīng)用。文章將介紹如何在 Toradex 采用 TI AM62 SoC 的 Arm 計算機模塊 Verdin AM62 使用評估版本的 CODESYS。

硬件介紹

Verdin AM62使用 TI AM623/AM625 處理器,具有最多 4 個主頻 1.4GHz 的 Cortex-A53 內(nèi)核,以及一個 400MHz 主頻的 M4F 核心。內(nèi)存采用 LPDDR4,從 512 MB 到 2 GB 可供選擇。eMMC 從 4~16 GB。模塊采用 SODIMM DDR4 標(biāo)準(zhǔn),提供兩路千兆以太網(wǎng)、CAN、MIPI DSI 顯示、I2C、SPI、UART 等接口。
BSP 配置
CODESYS 分為在電腦端使用 IDE,在 GUI 中開發(fā) PLC 應(yīng)用,和在設(shè)備上運行時 runtime 軟件,例如在 Verdin AM62 上的 CODESYS Control for Linux ARM SL。CODESYS 的運行需要使用 RT-Linux 內(nèi)核。Toradex 發(fā)布的 Linux BSP 采用 Yocto Project 
編譯,可以在生成 BSP 時直接為 Linux 內(nèi)核打上實時補丁。修改 local.conf 文件。
DISTRO="tdx-xwayland-rt"

為了盡可能保證內(nèi)核時實時性,可以裁減 BSP 中的 wayland 顯示、Qt demo 等組件,添加用于測試實時性能的 cyclictest。
IMAGE_INSTALL:remove = " weston wayland-qtdemo-launch-cinematicexperience" DISTRO_FEATURES:remove= "wayland" IMAGE_INSTALL:append = " rt-tests"

最后使用 bitbake 命令編譯鏡像,并使用 Toradex Easy Installer將其燒錄到 Verdin AM62 模塊。

bitbake tdx-reference-multimedia-image

CODESYS IDE 安裝
從 CODESYS 網(wǎng)站下載 IDE 開發(fā)工具,安裝成功后再下載 64bit 的 CODESYS Control for Linux ARM SL。這是后綴為 package 的文件,需要在 CODESYS IDE 中按照下圖打開 CODESYS Installer 導(dǎo)入 package 文件進(jìn)行安裝。

安裝完畢后可以看到以下目錄 C:\Program Files\CODESYS 3.5.20.20\CODESYS\CODESYS Control for Linux ARM64 SL。

Verdin AM62 軟件安裝
在 Verdin AM62 上需要安裝來自 C:\Program Files\CODESYS 3.5.20.20\CODESYS\CODESYS Control for Linux ARM64 SL\Delivery\linuxarm64 目錄下的 codesyscontrol_linuxarm64_4.13.0.0_arm64.ipk。將其復(fù)制到開發(fā)板后運行下面命令安裝。

opkg install codesyscontrol_linuxarm64_4.13.0.0_arm64.ipk

在 Dependency 目錄下還有一個 deb 格式的 codemeter-lite 安裝文件。如有你已經(jīng)有 CODESYS 的授權(quán)密鑰,安裝 codemeter 后,上面安裝的 codesyscontrol 將不受 30 分鐘的試用時間限制。由于 Verdin AM62 默認(rèn)不使用 Debian 包管理系統(tǒng),可以參考 CODESYS 的網(wǎng)頁說明,手動解壓 deb 安裝包后復(fù)制相關(guān)文件。執(zhí)行下面命令即可啟動 codesysctonrol,ps aux|grep codesys查看運行情況。當(dāng) codesyscontrol 運行后,在同一個網(wǎng)絡(luò)中的電腦上的 CODESYSY IDE 就可以發(fā)現(xiàn)該設(shè)備。

/etc/init.d/codesyscontrol start
ps aux|grep codesys
root 710 9.2 1.9 892328 39456 pts/0 SLl 08:04 0:00 /opt/codesys/bin/codesyscontrol.bin /etc/codesyscontrol/CODESYSControl.cfg

PLC 應(yīng)用開發(fā)
打開 IDE 后點擊新建項目,設(shè)置項目名稱和保存路徑。
Device 選擇 CODESYS Control for Linux ARM64 SL,這是上面安裝的組件。
點擊 Scan Network 掃面本地網(wǎng)絡(luò),發(fā)現(xiàn) Verdin AM62 設(shè)備。
首次發(fā)現(xiàn)設(shè)備時需要設(shè)置一個用戶名和密碼,IDE 將會使用該賬戶和設(shè)備通信。
創(chuàng)建完畢后使用該帳號登錄。
然后就可以看到該設(shè)備,后面的 PLC 應(yīng)用將這上面調(diào)試和運行。
具體的 PLC demo 編寫可以參考我們開發(fā)者網(wǎng)頁的說明。開啟 web visu 功能后,可以連接到 Verdin AM62 的 IP,在瀏覽器中查看 PLC 運行情況。
Verdin AM62 實時性能測試
在使用 Yocto Project 編譯鏡像時已經(jīng)添加了 rt-tests 工具,下面使用 cyclictest 測試實時性能。測試時把 AM62 4 個核心的時鐘均設(shè)置到最高的 1.4 GHz。

# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# cpufreq-info |grep current
current policy: frequency should be within 200 MHz and 1.40 GHz.
current CPU frequency is 1.40 GHz (asserted by call to hardware).
current policy: frequency should be within 200 MHz and 1.40 GHz.
current CPU frequency is 1.40 GHz (asserted by call to hardware).
current policy: frequency should be within 200 MHz and 1.40 GHz.
current CPU frequency is 1.40 GHz (asserted by call to hardware).
current policy: frequency should be within 200 MHz and 1.40 GHz.
current CPU frequency is 1.40 GHz (asserted by call to hardware).

stress-ng 把所有核心的負(fù)荷加滿,使用 cyclictest 持續(xù)運行 1 個小時并統(tǒng)計結(jié)果。
stress-ng -c 4 --cpu-method all & \ cyclictest -m -Sp98 -D1h -h400 -i200 -q > output
總結(jié)
文章介紹了如何在 Verdin AM62 上使用 CODESYS,該方法同樣也適用于其他 Toradex Arm 64bit 的模塊,如 iMX8 SoC。關(guān)于 CODESYS 實時性調(diào)教,可以從 BSP、內(nèi)核裁減,CPU 親和性設(shè)置,中斷優(yōu)化等方面進(jìn)行,具體參考下面文檔。
參考:
https://www.ti.com/lit/pdf/SPRADH0

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

Verdin AM62 引腳復(fù)用配置

TI AM62X Secure Boot 流程簡述

基于 TI AM62 測試 QtWayland 部署

Verdin AM62 LVGL 移植

基于 NXP iMX8MM 測試 Secure Boot 功能