Verdin AM62使用CODESYS

簡(jiǎn)介

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

硬件介紹

Verdin AM62使用 TI AM623/AM625 處理器,具有最多 4 個(gè)主頻 1.4GHz 的 Cortex-A53 內(nèi)核,以及一個(gè) 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è)備上運(yùn)行時(shí) runtime 軟件,例如在 Verdin AM62 上的 CODESYS Control for Linux ARM SL。CODESYS 的運(yùn)行需要使用 RT-Linux 內(nèi)核。Toradex 發(fā)布的 Linux BSP 采用 Yocto Project 
編譯,可以在生成 BSP 時(shí)直接為 Linux 內(nèi)核打上實(shí)時(shí)補(bǔ)丁。修改 local.conf 文件。
DISTRO="tdx-xwayland-rt"

為了盡可能保證內(nèi)核時(shí)實(shí)時(shí)性,可以裁減 BSP 中的 wayland 顯示、Qt demo 等組件,添加用于測(cè)試實(shí)時(shí)性能的 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ā)板后運(yùn)行下面命令安裝。

opkg install codesyscontrol_linuxarm64_4.13.0.0_arm64.ipk

在 Dependency 目錄下還有一個(gè) deb 格式的 codemeter-lite 安裝文件。如有你已經(jīng)有 CODESYS 的授權(quán)密鑰,安裝 codemeter 后,上面安裝的 codesyscontrol 將不受 30 分鐘的試用時(shí)間限制。由于 Verdin AM62 默認(rèn)不使用 Debian 包管理系統(tǒng),可以參考 CODESYS 的網(wǎng)頁說明,手動(dòng)解壓 deb 安裝包后復(fù)制相關(guān)文件。執(zhí)行下面命令即可啟動(dòng) codesysctonrol,ps aux|grep codesys查看運(yùn)行情況。當(dāng) codesyscontrol 運(yùn)行后,在同一個(gè)網(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 后點(diǎn)擊新建項(xiàng)目,設(shè)置項(xiàng)目名稱和保存路徑。
Device 選擇 CODESYS Control for Linux ARM64 SL,這是上面安裝的組件。
點(diǎn)擊 Scan Network 掃面本地網(wǎng)絡(luò),發(fā)現(xiàn) Verdin AM62 設(shè)備。
首次發(fā)現(xiàn)設(shè)備時(shí)需要設(shè)置一個(gè)用戶名和密碼,IDE 將會(huì)使用該賬戶和設(shè)備通信。
創(chuàng)建完畢后使用該帳號(hào)登錄。
然后就可以看到該設(shè)備,后面的 PLC 應(yīng)用將這上面調(diào)試和運(yùn)行。
具體的 PLC demo 編寫可以參考我們開發(fā)者網(wǎng)頁的說明。開啟 web visu 功能后,可以連接到 Verdin AM62 的 IP,在瀏覽器中查看 PLC 運(yùn)行情況。
Verdin AM62 實(shí)時(shí)性能測(cè)試
在使用 Yocto Project 編譯鏡像時(shí)已經(jīng)添加了 rt-tests 工具,下面使用 cyclictest 測(cè)試實(shí)時(shí)性能。測(cè)試時(shí)把 AM62 4 個(gè)核心的時(shí)鐘均設(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ù)運(yùn)行 1 個(gè)小時(shí)并統(tǒng)計(jì)結(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 實(shí)時(shí)性調(diào)教,可以從 BSP、內(nèi)核裁減,CPU 親和性設(shè)置,中斷優(yōu)化等方面進(jìn)行,具體參考下面文檔。
參考:
https://www.ti.com/lit/pdf/SPRADH0

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

提交

查看更多評(píng)論
其他資訊

查看更多

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

TI AM62X Secure Boot 流程簡(jiǎn)述

基于 TI AM62 測(cè)試 QtWayland 部署

Verdin AM62 LVGL 移植

基于 NXP iMX8MM 測(cè)試 Secure Boot 功能