补充电解质喝什么水| 棉麻是什么面料| 楼台是什么意思| 尿尿泡沫多是什么原因| 陈醋和白醋有什么区别| 琼瑶是什么意思| 曹字五行属什么| 佛珠断了有什么预兆| 烟酰胺有什么用| 什么的乌鸦| 海明威为什么自杀| 美人是什么生肖| 老鼠和什么属相相冲| bbd是什么意思| 广东有什么市| 碳13和碳14有什么区别| 乙肝两对半挂什么科| zzegna是什么牌子价格| 柳州有什么大学| 尸臭是什么味道| 青稞是什么| 下午五点多是什么时辰| 猛犸象什么时候灭绝的| 藠头是什么菜| 男人时间短吃什么药| 投资公司是做什么的| 热感冒吃什么药好| 鱼刺卡喉咙去医院挂什么科| 骨客念什么| 验孕棒阳性代表什么| 与时俱进是什么意思| 大千是什么意思| 乙肝15阳性是什么意思| 髂胫束在什么位置| 花孔雀是什么意思| 什么牌子冰箱好| sey什么意思| 德巴金是什么药| 金色配什么颜色好看| 西洋参什么时候吃效果最好| asmr是什么意思| 流清水鼻涕吃什么药| 腿上的肉疼是什么原因| 维生素d3什么时候吃最好| 球麻痹是什么病| 过敏性紫癜用什么药| 阴部痒是什么原因| 现在可以种什么农作物| 母乳是什么味道| 拉绿屎是什么原因| 花中隐士是什么花| 为什么伤口愈合会痒| 同型半胱氨酸查什么| 写意是什么意思| ala是什么氨基酸| 尿液白细胞高是什么原因| 龙代表什么数字| 吃洋葱有什么好处和坏处| 夏枯草长什么样子| 书中自有颜如玉是什么意思| 香港商务签证需要什么条件| 玄关挂什么装饰画好| 空腹喝酒有什么危害| cs和cf有什么区别| 淋巴细胞百分比偏高是什么意思| 什么的教室填空| hvp是什么| 三班倒是什么意思| 拔完智齿可以吃什么| 女性黄体期是什么时候| ana医学上是什么意思| 念五行属什么| 呵呵是什么意思| 6月13日是什么日子| 痛经是什么意思| 泌尿科主要看什么病| 赵本山是什么学历| xanax是什么药| 长字五行属什么| 雍是什么意思| 老年痴呆症又叫什么名字| 看膝盖挂什么科| 什么工作挣钱多| 后背有痣代表什么| 氟哌酸又叫什么名字| 子宫前置是什么意思| 梦见被子是什么意思| 咳嗽吃什么好的快偏方| 阴虱什么症状| 湖北有什么山| 去医院查怀孕挂什么科| 淋巴结肿大吃什么药消肿效果好| 什么牙膏好| 白案是什么意思| 免疫力下降吃什么好| 避孕套上的油是什么油| 开塞露加什么能去皱纹| 婧读什么| 归脾丸和健脾丸有什么区别| 情有独钟什么意思| 肚子上方中间疼是什么部位| 为什么洗头发时会掉很多头发| 开飞机什么意思| 小猫什么时候断奶| 日金念什么| 共襄盛举是什么意思| 有两把刷子是什么意思| 化疗恶心吃什么可以缓解| 女人补铁有什么好处| 早孕试纸什么时候测最准| 黄油是什么做的| 气血不足吃什么比较好| 冰箱为什么不制冷了| 盆腔少量积液是什么问题| 精油是干什么用的| 营养学属于什么专业| 钊读什么| 火麻是什么植物| 恭敬地看的词语是什么| 七月八号是什么日子| 弹性工作制是什么意思| 小蛮腰什么意思| 大姨夫是什么| 望远镜什么牌子好| remember是什么意思| 吃什么对肠胃好| 嘴唇紫红色是什么原因| 吃什么东西补铁| 2026年是什么生肖年| 什么嘴什么舌| 嗯是什么意思| 要强的女人是什么性格| 感冒吃什么恢复快| asia是什么意思| 怀孕一个星期有什么症状| 梦见养猪是什么意思| 梦见在水里游泳是什么意思| 二月四号是什么星座| 阑尾是干什么用的| 什么肉不含嘌呤| 承字属于五行属什么| 十月30号是什么星座| 博士生导师是什么级别| 肌肉萎缩看什么科| 产后大出血一般发生在什么时候| 腰肌劳损什么症状| 皮卡丘站起来变成了什么| 喝什么降尿酸| 酶是什么| 和胃降逆是什么意思| 制动是什么| 肝内高回声结节是什么意思| 完璧归赵发生在什么时期| 36是什么码| 维生素e和维生素c一起吃有什么效果| 织女是什么意思| 方便是什么意思| 天伦之乐什么意思| 眼皮肿挂什么科| 岚的意思是什么| bayer是什么药| 改善记忆力吃什么药好| 什么什么若狂| 活水是什么意思| 木指什么生肖| 什么爱| 马拉色菌是什么| 修复胃粘膜吃什么药| 人体缺少蛋白质会有什么症状| 反式脂肪酸是什么意思| 重色轻友是什么意思| 舌苔厚黄是什么病| 尿液浑浊是什么原因| 什么叫排卵期| 小孩嘴唇发红是什么原因| 献血前检查什么项目| 667什么意思| 什么是特异性皮炎| 麦粒肿用什么眼药水| 益气是什么意思| 洗洗睡吧什么意思| 兆后面是什么单位| 睾丸胀痛是什么原因| 大秀是什么意思| 震慑是什么意思| 四肢无力吃什么药| 胃烧心是什么感觉| 出尔反尔是什么意思| 支气管炎咳嗽吃什么药| 黑龙江有什么特产| 支付宝账户是什么| 什么是央企| 冬至为什么烧纸| 罗马棉是什么面料| 为什么会一直流鼻涕| 丁克什么意思| 三月五号是什么星座| 什么人不适合吃胃复春| 吃靶向药不能吃什么| 疝气是什么意思| 做梦梦到自己拉屎是什么意思| 小孩突然头疼是什么原因| 猫砂是什么材料做的| 今年17岁属什么| 你的生命有什么可能| supor是什么品牌| 肛门长期瘙痒是什么原因| 什么是太监| egfr是什么意思| 此贝是什么字| 虫草花是什么| 梦见蛇蛋是什么意思啊| 风水轮流转什么意思| 猫来家门口有什么预兆| 什么病会导致不来月经| 活检是什么| 经常嗳气是什么原因| 腋窝疼痛挂什么科| 什么是cin病变| 港澳通行证签注是什么意思| 吃得什么填词语| 报销凭证是什么| 朝阳是什么意思| 三个十念什么| 女性长胡子是什么原因| 心动过速吃什么药最好| 太多的理由太多的借口是什么歌| 外公的妹妹叫什么| 什么是无期徒刑| 直肠壁增厚一般是什么情况| 肛瘘挂什么科| 宫颈筛查hpv阳性是什么意思| epo是什么意思| 骨骼闭合了还有什么办法可以长高| 3什么意思| 血管堵塞有什么办法可以疏通| 治疗肝脏硬化要吃什么药好| 胰腺炎恢复期吃什么好| junior什么意思| 知了是什么动物| 黑米是什么米| 六味地黄丸治什么病| 中元节出什么生肖| 沈阳六院主要治什么病| 猫咪吐黄水有泡沫没有精神吃什么药| 猫癣传染人什么症状| 染色体是由什么组成的| 从父是什么意思| 怀才不遇什么意思| 1.6号是什么星座| 碗摔碎了预示着什么| 感冒了吃什么水果| 缺陷是什么意思| 降尿酸什么药最好| 脊髓空洞症吃什么药| 四查十对的内容是什么| 浑身发热是什么原因| 农历正月初一是什么节| 束缚是什么意思| 外子是什么意思| 书生是什么意思| 瞽叟是什么意思| 瘰疬是什么病| 大象的天敌是什么动物| 百度
"); //-->

博客专栏

EEPW首页 > 博客 > 通过 Docker 部署测试 CODESYS PLC示例

西安地铁一、二、三号线生产辅助类消耗性材料...

发布人:toradex 时间:2025-08-04 来源:工程师 发布文章
百度 其主色调为蓝绿,正面图案为布依族、朝鲜族人物头像,背面图案为国徽。

By Toradex 秦海

简介

CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。在之前的文章中介绍了通过 Yocto Linux BSP 环境下部署 CODESYS Control Runtime 环境的示例,本文则着重测试如何通过 Docker 环境来进行部署测试。

本文所演示的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台


准备

a). Verdin i.MX8MP ARM核心版配合Dahlia 载板,并连接调试串口和 HDMI 显示器用于测试


BSP 配置

a). 参考这里文章说明,下载适用于 Verdin iMX8MP 的 TorizonOS 7.x BSP Image 并通过 Toradex Easy Installer 安装到 Verdin i.MX8MP 模块,因为 CODESYS 需要 Linux 包含实时补丁,因此请使用 Torizon OS 7 PREEMPT_RT 版本

b). TorizonOS 默认使能了 Docker 环境,可以非常方便的安装和测试各种 Docker Image


CODESYS Development System 下载安装

a). 通过 CODESYS Store 下载安装 CODESYS Installer

b). 通过 CODESYS Installer 安装最新版本的 CODESYS Development System

c). 安装 Virtual Control for Linux SL Addon


d). 运行上述安装的 CODESYS IDE,然后点击菜单栏 Tools > Device Repository:

e). 在 Device Repository 窗口点击 Install... 按键并选择  virtuallinux device descriptor 文件:

C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\4.16.0.0\Devices\AddOns\CODESYS Virtual Control for Linux SL\virtuallinuxarm64\4.16.0.0\codesyscontrol.devdesc.xml


CODESYS Control Runtime Docker Image 安装运行

a). 通过上述 CODESYS Development System 安装文件获取已经预编译好的 CODESYS Control Docker Image (根据具体需要部署的硬件选择正确的架构,这里 Verdin i.MX8MP 是 ARM64 架构)

C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\Delivery\virtuallinuxarm64\Docker_codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.tar.gz


b). 当然安装文件中也提供了可以自行生成 Docker Image 的所需文件,也可以自行修改重新编译生成定制化的 Docker Image 压缩包

C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\Delivery\virtuallinuxarm64\
./ Dockerfile - Dockerfile_codesyscontrol_virtuallinuxarm64_4.16.0.0
./ CODESYS Control DEB package - codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.deb
./ License - Docker_copyright_codesyscontrol_virtuallinuxarm64_4.16.0.0
C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS CodeMeter for Linux SL\Delivery\
./ Codemeter DEB package - codemeter-lite_8.20.6539.500_arm64.deb


c). 将 Docker_codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.tar.gz 复制到 Verdin i.MX8MP

d). 在 Verdin i.MX8MP 安装 CODESYS Control Docker Image

torizon@verdin-imx8mp-06849028:~$ docker load -i Docker_codesyscontrol_virtuallinuxarm64_4.16.0.
0_arm64.tar.gz
torizon@verdin-imx8mp-06849028:~$ docker images
REPOSITORY                         TAG        IMAGE ID       CREATED        SIZE
codesyscontrol_virtuallinuxarm64   4.16.0.0   a79637a6eef3   6 weeks ago    239MB


e). 在 Verdin i.MX8MP 运行 CODESYS Control Docker Image

./ 创建 Docker Image 运行需要的 mount 目录:

torizon@verdin-imx8mp-06849028:~$ cd ~
torizon@verdin-imx8mp-06849028:~$ mkdir -p dockerMount/conf/codesyscontrol/
torizon@verdin-imx8mp-06849028:~$ mkdir -p dockerMount/data/codesyscontrol/


./ 通过下面命令运行 Docker Image,请注意下面命令仅用于演示测试,如果实际应用部署则需要考虑安全权限设置,一个更完善的启动脚本可以参考这里

torizon@verdin-imx8mp-06849028:~$ docker run --rm -dt --name codesys --network host -v ~/dockerMount/conf/codesyscontrol/:/conf/codesyscontrol/ \
-v ~/dockerMount/data/codesyscontrol/:/data/codesyscontrol/ --privileged codesyscontrol_virtuallinuxarm64:4.16.0.0
torizon@verdin-imx8mp-06849028:~$ docker ps
CONTAINER ID   IMAGE                                       COMMAND                  CREATED     
   STATUS          PORTS     NAMES
9ff098e3641f   codesyscontrol_virtuallinuxarm64:4.16.0.0   "/opt/codesys/script…"   47 seconds a
go   Up 46 seconds             codesys


./ 另外,也可以通过如下命令查看 Docker Image 启动内部运行 log 信息:

torizon@verdin-imx8mp-06849028:~$ docker logs codesys


CODESYS PLC 示例应用开发和部署

a). 在 CODESYS IDE 下创建 New Project

./ 填写 Project Name 和 Location

./ 填写 Device PLC_PRG

./ New Project 创建成功,双击左侧项目窗口 “Device (CODESYS Virtual Control for Linux ARM64 SL)” 条目,打开 Devices 页面后,点击 Scan Network


./ 此时点击找到的 verdin-imx8mp 设备并点击确定,设备就已经成功连接

b). 接下来具体实现 Lamp/Dip Switch 示例应用的过程可以参考这里说明。

c). 项目设计完成后,点击 Online->Login 进行项目下载(如果之前没有创建账户这里会要先创建)

d). Login并下载 PLC 应用到设备后,即可以通过点击 Play/Stop 按键来运行或者停止示例应用了


e). 在项目运行时,在 PC 浏览器中可以通过输入如下网址可以通过 WebVisualization 功能来显示 PLC 示例应用了

http://<ip_address_verdin_imx8mp>:8080/webvisu.htm

f). 同时,也可以通过在 Verdin i.MX8MP 设备上面启动 Weston 和 Browser (chromium/Crog) Docker Image 来显示。本文以 Cog Browser 为例,更多浏览器相关说明可以参考这里

### start weston docker image ###
torizon@verdin-imx8mp-06849028:~$ docker container run -d --name=weston --net=host \
  --cap-add CAP_SYS_TTY_CONFIG \
  -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
  --device-cgroup-rule="c 4:* rmw" --device-cgroup-rule="c 253:* rmw" \
  --device-cgroup-rule="c 13:* rmw" --device-cgroup-rule="c 226:* rmw" \
  --device-cgroup-rule="c 10:223 rmw" --device-cgroup-rule="c 199:0 rmw" \
  torizon/weston-imx8:4 \
  --developer
### start Cog browser docker image ###
torizon@verdin-imx8mp-06849028:~$ docker run -d --rm --name=cog \
  -v /tmp:/tmp -v /var/run/dbus:/var/run/dbus \
  -v /dev/dri:/dev/dri --device-cgroup-rule='c 226:* rmw' \
  torizon/cog:$CT_TAG_COG \
  http://<ip_address_verdin_imx8mp>:8080

g). 利用 docker-compose 来一次性启动上述的三个 Docker Image

./ docker-compose.yml:

services:
weston:
  image: torizon/weston-imx8:4
  container_name: weston
  environment:
    - ACCEPT_FSL_EULA=1
  network_mode: host
  restart: unless-stopped
  cap_add:
    - CAP_SYS_TTY_CONFIG
  volumes:
    - type: bind
      source: /tmp
      target: /tmp
    - type: bind
      source: /dev
      target: /dev
    - type: bind
      source: /run/udev
      target: /run/udev
  device_cgroup_rules:
    - 'c 4:* rmw'
    - 'c 253:* rmw'
    - 'c 13:* rmw'
    - 'c 226:* rmw'
    - 'c 10:223 rmw'
    - 'c 199:0 rmw'
  command: --developer

codesys:
  image: codesyscontrol_virtuallinuxarm64:4.16.0.0
  container_name: codesys
  network_mode: host
  privileged: true
  volumes:
    - type: bind
      source: /home/torizon/dockerMount/conf/codesyscontrol
      target: /conf/codesyscontrol
    - type: bind
      source: /home/torizon/dockerMount/data/codesyscontrol
      target: /data/codesyscontrol
  tty: true

cog:
  image: torizon/cog:4
  container_name: cog
  network_mode: host
  depends_on:
    - codesys
    - weston
  volumes:
    - type: bind
      source: /tmp
      target: /tmp
    - type: bind
      source: /var/run/dbus
      target: /var/run/dbus
    - type: bind
      source: /dev/dri
      target: /dev/dri
  device_cgroup_rules:
    - 'c 226:* rmw'
  command: http://<ip_address_verdin_imx8mp>:8080


./ 启动 docker-compose.yml:

./ torizon@verdin-imx8mp-06849028:~$ docker-compose up -d

./ 如果配置 docker-compose.yml 开机自启动,可以参考这里

总结

本文基于 NXP i.MX8MP 处理器平台演示了通过 Docker 方式来测试部署 CODESYS PLC 示例应用。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



相关推荐

技术专区

关闭
阳春三月是什么生肖 肠胃炎引起的发烧吃什么药 老年人喝什么蛋白粉好 人脉是什么意思 老人手抖是什么病的预兆
狐臭是什么原因引起的 口吐白沫是什么病 吃维生素b2有什么好处和副作用 清真是什么意思啊 吃什么水果可以护肝
肩周炎属于什么科室 hbcab阳性是什么意思 香片属于什么茶 什么花是紫色的 暖和的什么
反乌托邦是什么意思 手足口挂什么科 百香果不能和什么一起吃 铁锈色痰见于什么病 五行缺金是什么命
肝不好吃什么调理hcv9jop4ns0r.cn 头晃动是什么病的前兆hcv9jop8ns2r.cn 54岁属什么的hkuteam.com 杜仲泡水喝有什么功效hcv8jop1ns6r.cn 头晕没精神是什么原因hcv7jop5ns0r.cn
变色龙形容什么样的人hcv7jop6ns2r.cn 情绪是什么意思hcv8jop2ns5r.cn 董明珠什么星座hcv8jop8ns9r.cn 手指头发红是什么原因hcv8jop8ns8r.cn 玫瑰花的花语是什么hcv8jop6ns6r.cn
银杏是什么植物hcv7jop9ns4r.cn 口嗨什么意思hcv9jop5ns7r.cn 泪点低是什么意思hcv8jop2ns8r.cn poscer是什么牌子hcv9jop1ns9r.cn 益精是什么意思hcv7jop7ns0r.cn
肋骨外翻挂什么科hcv8jop2ns6r.cn 家蛇是什么蛇hcv8jop0ns1r.cn 大姨妈来了两天就没了什么原因hcv8jop6ns7r.cn 脱皮缺什么维生素hcv8jop8ns0r.cn 2月18日什么星座wzqsfys.com
百度