Verdin AM62使用CODESYS

By Toradex 胡珊逢

简介

CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。文章将介绍如何在 Toradex 采用 TI AM62 SoC 的 Arm 计算机模块 Verdin AM62 使用评估版本的 CODESYS。

硬件介绍

Verdin AM62使用 TI AM623/AM625 处理器,具有最多 4 个主频 1.4GHz 的 Cortex-A53 内核,以及一个 400MHz 主频的 M4F 核心。内存采用 LPDDR4,从 512 MB 到 2 GB 可供选择。eMMC 从 4~16 GB。模块采用 SODIMM DDR4 标准,提供两路千兆以太网、CAN、MIPI DSI 显示、I2C、SPI、UART 等接口。

BSP 配置

CODESYS 分为在电脑端使用 IDE,在 GUI 中开发 PLC 应用,和在设备上运行时 runtime 软件,例如在 Verdin AM62 上的 CODESYS Control for Linux ARM SL。CODESYS 的运行需要使用 RT-Linux 内核。Toradex 发布的 Linux BSP 采用 Yocto Project 

编译,可以在生成 BSP 时直接为 Linux 内核打上实时补丁。修改 local.conf 文件。

DISTRO="tdx-xwayland-rt"

为了尽可能保证内核时实时性,可以裁减 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 网站下载 IDE 开发工具,安装成功后再下载 64bit 的 CODESYS Control for Linux ARM SL。这是后缀为 package 的文件,需要在 CODESYS IDE 中按照下图打开 CODESYS Installer 导入 package 文件进行安装。

安装完毕后可以看到以下目录 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。将其复制到开发板后运行下面命令安装。

opkg install codesyscontrol_linuxarm64_4.13.0.0_arm64.ipk

在 Dependency 目录下还有一个 deb 格式的 codemeter-lite 安装文件。如有你已经有 CODESYS 的授权密钥,安装 codemeter 后,上面安装的 codesyscontrol 将不受 30 分钟的试用时间限制。由于 Verdin AM62 默认不使用 Debian 包管理系统,可以参考 CODESYS 的网页说明,手动解压 deb 安装包后复制相关文件。执行下面命令即可启动 codesysctonrol,ps aux|grep codesys查看运行情况。当 codesyscontrol 运行后,在同一个网络中的电脑上的 CODESYSY IDE 就可以发现该设备。

/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 应用开发

打开 IDE 后点击新建项目,设置项目名称和保存路径。

Device 选择 CODESYS Control for Linux ARM64 SL,这是上面安装的组件。

点击 Scan Network 扫面本地网络,发现 Verdin AM62 设备。

首次发现设备时需要设置一个用户名和密码,IDE 将会使用该账户和设备通信。

创建完毕后使用该帐号登录。

然后就可以看到该设备,后面的 PLC 应用将这上面调试和运行。

具体的 PLC demo 编写可以参考我们开发者网页的说明。开启 web visu 功能后,可以连接到 Verdin AM62 的 IP,在浏览器中查看 PLC 运行情况。

Verdin AM62 实时性能测试

在使用 Yocto Project 编译镜像时已经添加了 rt-tests 工具,下面使用 cyclictest 测试实时性能。测试时把 AM62 4 个核心的时钟均设置到最高的 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 把所有核心的负荷加满,使用 cyclictest 持续运行 1 个小时并统计结果。


stress-ng -c 4 --cpu-method all & \
cyclictest -m -Sp98 -D1h -h400 -i200 -q > output

总结

文章介绍了如何在 Verdin AM62 上使用 CODESYS,该方法同样也适用于其他 Toradex Arm 64bit 的模块,如 iMX8 SoC。关于 CODESYS 实时性调教,可以从 BSP、内核裁减,CPU 亲和性设置,中断优化等方面进行,具体参考下面文档。

参考:

https://www.ti.com/lit/pdf/SPRADH0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/889608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打卡第四天 P1081 [NOIP2012 提高组] 开车旅行

今天是我打卡第四天,做个省选/NOI−题吧(#^.^#) 原题链接:[NOIP2012 提高组] 开车旅行 - 洛谷 题目描述 输入格式 输出格式 输入输出样例 输入 #1 4 2 3 1 4 3 4 1 3 2 3 3 3 4 3 输出 #1 1 1 1 2 0 0 0 0 0 输入 #2 10 4 5 6 1 …

✨机器学习笔记(七)—— 交叉验证、偏差和方差、学习曲线、数据增强、迁移学习、精确率和召回率

机器学习笔记(七) 1️⃣评估模型🎗️使用测试集评估模型🎗️交叉验证集(cross validation) 2️⃣偏差和方差(Bias / Variance)3️⃣学习曲线(Learning curves&#xff09…

获取时隔半个钟的三天

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…

【HarmonyOS】HMRouter使用详解(四)路由拦截

路由拦截器 可以对指定或全局路由跳转时添加拦截器&#xff0c;作用是可以实现在页面切换前做判断是否有进入当前页面的权限。这篇文章将实现登录的全局路由拦截样式。 新建拦截器类 通过继承IHMInterceptor接口实现生命周期接口的方法重写。 通过添加HMInterceptor装饰器&…

2022年黄河流域旅游资源空间分布数据(shp)

数据介绍 黄河是中华民族的母亲河。黄河流域旅游资源丰富且极具特色。黄河流域旅游资源空间分布数据是黄河流域旅游资源开发与决策的基础。本数据集以县&#xff08;区&#xff09;域行政边界为单元、以国家旅游资源分类标准为依据&#xff0c;收集整理了黄河流域各县&#xf…

ART 光学跟踪系统:通过 VR HMD 解锁完全沉浸式 VR 体验

在虚拟现实体验中&#xff0c;完全沉浸式虚拟现实体验应该既准确又舒适。当与现实世界的物体融合时&#xff0c;虚拟现实的表现必须与现实精确匹配。这意味着所使用的运动跟踪系统必须为整套项目提供可靠且可重复的高精度运动数据&#xff0c;以及体感无法察觉到的超低延迟。AR…

HECTOR:一种新型多模态深度学习模型用于预测子宫内膜癌复发风险|顶刊精析·24-10-12

小罗碎碎念 这篇文章是关于一项名为HECTOR&#xff08;histopathology-based endometrial cancer tailored outcome risk&#xff09;的研究&#xff0c;它是一个基于多模态深度学习的预测模型&#xff0c;用于预测子宫内膜癌&#xff08;EC&#xff09;的复发风险。 作者角色作…

高级软件测试工程师:我的2024面试经验!干货满满!

最近行业里有个苦涩的笑话&#xff1a;公司扛过了之前的三年&#xff0c;没扛过摘下最近的一年&#xff0c;真是让人想笑又笑不出来。年前听说政策的变化&#xff0c;大家都满怀希望觉得年后行情一片大好&#xff0c;工作岗位激增&#xff0c;至少能有更多的机会拥抱未来。然而…

mac电脑如何删除应用程序?怎么删除苹果电脑里的软件

在使用Mac电脑的过程中&#xff0c;随着时间的推移&#xff0c;我们可能会安装大量的应用程序。然而&#xff0c;这些应用程序中有很多可能只是临时使用&#xff0c;或者已经不再需要了。这些无用的应用程序不仅占据了宝贵的硬盘空间&#xff0c;还可能拖慢Mac系统的运行速度。…

Qt 自绘开关按钮以及设计器中的提升为用法

文章目录 自绘按钮实现概要效果图代码 提升为用法介绍步骤 总结 自绘按钮实现 概要 当我们需要一个开关样式的QPushbutton&#xff0c;没有图片的话&#xff0c;我们可以采用自绘的形式实现。且使用QtDesinger中提升为Promote to的功能加入界面中&#xff0c;而不是使用代码的…

godot帧同步-关于“显示与逻辑分离”

很多教程说帧同步的关键是“显示与逻辑分离”&#xff0c;但是又没有具体讲解&#xff0c;我起初也没有搞懂这句话的意思&#xff0c;就直接上手开发帧同步了。在开发的过程中&#xff0c;一下子就悟了&#xff0c;所以分享一下。 显示与逻辑未分离&#xff08;单机&#xff0…

《系统架构设计师教程(第2版)》第18章-安全架构设计理论与实践-02-安全模型

文章目录 1. 安全模型概述1.1 信息安全的目标1.2 安全模型 2. 状态机模型2.1 概念2.2 状态机模型工作步骤 3. Bell-LaPadula模型3.1 概念3.2 模型安全规则3.3 示例 3. Biba模型3.1 概念3.2 模型安全规则3.3 示例 4. Clark-Wilson模型&#xff08;CWM&#xff09;4.1 概述4.2 模…

低代码赋能汽车制造产业链场景系列

当前汽车行业数字化智能化转型浪潮下&#xff0c;整车及其上下游产业链的协同创新正变得至关重要。头部车企与上下游供应链企业正逐步解决在生产管理、业务互通、系统集成等方面的痛点与挑战。电动化、智能化、网联化作为汽车产业的三大趋势&#xff0c;正共同推动未来汽车产业…

记录一些yolo-world训练数据集的报错

参考的这个文章 https://blog.csdn.net/ITdaka/article/details/138863017?spm1001.2014.3001.5501 openai快捷下载&#xff1a;https://download.csdn.net/download/qq_43767886/89876720 然后我打算训练coco数据集&#xff0c;遇到了以下的问题 问题一 原因&#xff1a;…

AWS MySQL 升级(三)—— TAZ - 近0停机的小版本升级方案

与AWS交流了解到的新方案&#xff0c;没有实际试过&#xff0c;所以本篇主要是些原理 一、 TAZ的含义 TAZ实际上就是 3 AZ&#xff0c;扩展一些就是 Multi-AZ DB Cluster&#xff0c;即在3个可用区部署DB&#xff0c;具备两个只读备用实例。 二、 TAZ的主要用途 1. 近0停机的小…

Sublime快捷键的使用和修改

sublime快捷键 1.选择类 CtrlD 选中光标所占的文本&#xff0c;继续操作则会选中下一个相同的文本。 AltF3 选中文本按下快捷键&#xff0c;即可一次性选择全部的相同文本进行同时编辑。举个栗子&#xff1a;快速选中并更改所有相同的变量名、函数名等。 CtrlL 选中整行&#…

基于Web的停车场管理系统(论文+源码)_kaic

摘要 我国经济的发展愈发迅速&#xff0c;车辆也随之增加的难以想象&#xff0c;因此车位的治理也越来越繁杂&#xff0c;为了方便停车位相关信息的管理&#xff0c;设计开发一个合理的停车位管理系统尤为重要。因而&#xff0c;具有信息方便读取和操作简便的停车位管理系统的设…

Qt和c++面试集合

目录 Qt面试 什么是信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;&#xff1f; 什么是Meta-Object系统&#xff1f; 什么是Qt的MVC模式&#xff1f; 1. QT中connect函数的第五个参数是什么&#xff1f;有什么作用&#xff1f; 3. 在QT中&#xff…

Linux使用Docker部署Paperless-ngx结合内网穿透打造无纸化远程办公

文章目录 前言1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux系统本地部署Paperless-ngx开源文档管理系统&#xff0c;并结合cpolar内网穿透工具解决本地部署…

Redis持久化机制(RDBAOF详解)

目录 一、Redis持久化介绍二、Redis持久化方式1、RDB持久化(1) 介绍(2) RDB持久化触发机制(3) RDB优点和缺点(4) RDB流程 2、AOF(append only file)持久化(1) 介绍(2) AOF优点和缺点(3) AOF文件重写(4) AOF文件重写流程 三、AOF和RDB持久化注意事项 一、Redis持久化介绍 Redis…