CODESYS 装进树莓派:两小时就停一次,商用还不允许
最便宜的 CODESYS 硬件:装得进去、跑得起来,但两小时停机、商用不允许。七行故障表比教程有用。
树莓派上跑 CODESYS,是"在真实硬件上学这套平台"最便宜的一条路。但它不是一张能做机器的许可。
先把两个会让人栽跟头的事实放前面:没有许可时,runtime 能完整跑两小时,然后自己停,必须手动重启;树莓派 + CODESYS runtime 只允许私人使用、测试和教学,不允许商用。工控现场用到的应用,得换成另一套按应用规模计费的许可。
下面这篇译自 LADX 工程团队的《CODESYS on a Raspberry Pi: install, licence and a first program》(2026 年 10 月 12 日)。它钉死了版本:对应 runtime 4.22.0.0(2026 年 8 月 17 日发布),依据是 2026 年 10 月的 CODESYS Store 页面与在线帮助。这一点很要紧——这几年安装流程改过好几轮,网上大量教程写的菜单今天已经不存在了。
短答
在 PC 上装 CODESYS Development System 与 CODESYS Control for Raspberry Pi SL 包,在树莓派上开启 SSH,然后用 Tools > Deploy Control SL 连上去装 runtime。没有许可它会跑两小时,然后需要手动重启。该产品仅限私人、测试与教学使用,不允许商用。

一台工程 PC 通过 SSH 用 Deploy Control SL 把 CODESYS runtime 装到树莓派上,然后登录下载应用;没有许可时 runtime 跑两小时就停,直到被重启。图的来源是原文作者 LADX。
装好 runtime 的树莓派是一台真正的 IEC 61131-3 控制器。你用 CODESYS Development System 像对任何别的 CODESYS 目标一样给它编程,而 runtime 包里自带 Modbus TCP 与串口、EtherNet/IP、PROFINET、EtherCAT、CANopen 与 J1939 协议栈、完整的 WebVisu 和一个 OPC UA 服务器。它是学 CODESYS 最便宜的硬件方案。
你需要什么
| 项目 | 要求 |
|---|---|
| 树莓派 | 按 Store 页面说法任何型号都行;具体用哪个 runtime 取决于型号,见下 |
| 操作系统 | Raspberry Pi OS,32 位或 64 位,且启用 SSH 服务 |
| SD 卡 | 至少 4 GB |
| 网络 | 需要 LAN 或 WLAN 接口;Store 页面特别点出 Compute Module 与 Pi Zero 这一点 |
| PC 软件 | CODESYS Development System V3.5.17.0 或更高、CODESYS Control for Raspberry Pi SL 包、CODESYS Control SL Deploy Tool |
| 许可 | 两小时演示不需要;要持续运行需要单设备许可 |
原文此处嵌了一段 CODESYS Group 官方的安装演示视频(YouTube)。
SL、MC SL 还是 64 SL:选哪个 runtime
这个包里包含三个 runtime。安装时 Deploy Control SL 会检测树莓派的硬件与操作系统,自动挑匹配的二进制;之后你可以在 Operation 标签页里改,而工具不会让你选一个不兼容的。以下是 CODESYS 帮助里的对照:
| Runtime | CPU 架构 | 支持的树莓派型号 | 系统镜像 |
|---|---|---|---|
| CODESYS Control for Raspberry Pi SL | 32 位 ARM,armv6l | Pi 1 A、A+、B、B+;Pi 2 B;Pi 3 A+、B、B+;Pi 4;Pi 5;Revolution Pi;CM 1、CM 3 与 3+、CM 4、CM 5 | 仅 32 位 |
| CODESYS Control for Raspberry Pi MC SL | 32 位 ARM 多核,armv7l | Pi 2 B;Pi 3 A+、B、B+;Pi 4;Pi 5;Revolution Pi;CM 3 与 3+、CM 4、CM 5 | 仅 32 位 |
| CODESYS Control for Raspberry Pi 64 SL | 64 位 ARM,单核与多核,armv8l 或 aarch64 | Pi 3 A+、B、B+;Pi 4;Pi 5;Revolution Pi;CM 3 与 3+、CM 4、CM 5 | 仅 64 位 |
工程里 64 位系统只有一个设备描述,它的多核功能是否可用取决于许可。CODESYS Store International 的每一份许可都能用于 32 位或 64 位应用。Pi Zero 没有出现在帮助的这张表里,尽管 Store 页面提到了它。
Store 的版本历史里有两条能省掉大量排查时间的事实:完整的 64 位 runtime 是 4.10.0.0 才有的,树莓派 5 的支持是 4.11.0.0 才有的。在新板子上用旧包,是第一个要排除的可能。
准备树莓派
- 按树莓派官方说明把 Raspberry Pi OS 写进卡并启动。
- 启用 SSH 服务并确认它在跑。CODESYS 帮助给的是这两条命令,状态应显示
active (running):
sudo systemctl enable ssh
sudo systemctl status ssh
- 在派上用
ip a s查地址,或者干脆交给 Deploy 工具里的扫描。 - 可选:跑
sudo raspi-config扩展文件系统,或给这块派一个唯一的主机名。 - 如果要用 I2C、SPI 或 1-Wire 设备,帮助里说必须确认
/boot/config.txt里下面这几行存在且未被注释:
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=w1-gpio-pullup,pullup=1
用 Deploy Control SL 安装 runtime
- 在 CODESYS Development System 里打开 Tools > CODESYS Installer,在 Add-ons 下选 Browse,安装 CODESYS Control for Raspberry Pi SL 包。这会把 runtime 包、库、设备描述和示例工程带到 PC 上。帮助里把 CODESYS Control SL Deploy Tool 列为另一个必需的包。
- 打开 Tools > Deploy Control SL。在 Communication 标签页填树莓派的 IP 或点 Scan,设置 SSH 端口,用你写卡时设的用户名密码登录,或用公钥。帮助里那张默认凭据表至今仍列着
pi/raspberry。 - 在 Deployment 标签页选择产品与版本,点 Install。runtime 被安装,控制器会自己重启。
- 在 Operation 标签页确认 runtime 在运行;没在跑就点 Start Selected。
更早的教程——包括 CODESYS Forge 上的社区 wiki——写的是 Tools > Update Raspberry Pi 这条命令。现在的帮助用 Tools > Deploy Control SL,而 Store 的版本历史里记录了 4.14.0.0 重做了 SL Deploy Tool。如果你的菜单和某篇教程对不上,先怀疑教程的日期,再怀疑自己的安装。
许可与两小时限制
没有许可时,runtime 在两小时内功能完全不受限,然后关机。要继续需要手动重启。
Store 页面关于许可的其他说法,简言之:
- 用途。树莓派与 CODESYS runtime 的组合用于私人使用、测试和教学。不允许商用;商用设备请按 Store 的指向改用按应用规模计费的许可。
- 能跑在哪。未发布用于容器或虚拟机。
- 许可类型。单设备许可。它被激活进一个与控制器永久绑定的软容器,或激活到一枚 CODESYS Key USB 加密狗上——后者插到另一台控制器就能搬过去。
- 价格。原文写作时(2026 年 10 月)CODESYS Store International 标价为 55 欧元 + 增值税。不含技术支持,技术支持单独按支持工单出售。
激活许可,帮助里的流程是:建一个标准工程,在设备树里更新设备,打开 Tools > License Manager,选 Device,再选 Dongle 或 Soft Container,选中这块派,点 Install Licenses,然后 Activate License 并输入工单号。PC 需要联网,且要与派保持连接。软容器许可在激活那一刻就锁定到该设备,所以要不要用加密狗,得在激活之前决定。自 4.13.0.0 起,runtime 也支持通过 CODESYS License Server for Linux SL 做网络许可。
两小时这条限制有一个很实际的后果:runtime 一关,接在这块派上的东西就没人管了。别让一个演示状态的 runtime 去负责任何必须持续运行的东西。
第一个程序
帮助里第一个测试是个计数器。选 File > New Project > Standard Project,挑与你装的 runtime 匹配的树莓派设备,CODESYS 就会建出一个应用,里面有一个由 MainTask 任务调用的 PLC_PRG 程序。
PROGRAM PLC_PRG
VAR
iCount : INT;
END_VAR
iCount := iCount + 1;
下载它:双击设备树里的设备,打开 Communication Settings 标签页,点 Scan Network,选中那块派,然后 Online > Login,接受下载并启动应用。如果监视视图里计数器在往上走,整条工具链就是通的。
如果扫描什么也没找到,帮助让你先查网络:默认连接走 UDP,所以 PC 和派必须在同一网段、同一掩码。它还建议在 Device > Options 里关掉 Filter Network Scans by Target ID;如果关掉后派出现了,那就是它的 target ID 不对。
让它驱动一个输出
接着是一个带自锁的启停电路——每个电机启动回路都在用的那个模式:
PROGRAM PLC_PRG
VAR
xStart : BOOL; // 点动按钮,常开
xStop : BOOL; // 常闭,正常时为 TRUE
xRun : BOOL; // 驱动一个继电器模块
END_VAR
xRun := (xStart OR xRun) AND xStop;
包里自带的 GPIO.project 示例演示了引脚怎么接进工程:一个 GPIOs 设备,它的编辑器用来配置 I/O 映像、定义哪些脚是输入哪些是输出。输入和输出各表现为一个 DWORD,第 X 位就是 GPIO X;示例把 GPIO18 当输出闪灯。把 xStart、xStop 映射到输入位,xRun 映射到输出位。
对 B+ 和 Pi 2 的引脚布局,帮助里说要用 Update Device 把设备描述从 GPIOs A/B 换成 GPIOs B+/Pi2,并提醒有些 GPIO 可能已被加载的驱动永久占用。
树莓派自己的文档给出 GPIO 电平是 0 V 与 3.3 V。24 V 的按钮或接触器线圈,中间必须有接口——光耦隔离输入板或继电器模块都行,绝不能直接连线。
先把逻辑画出来
如果你习惯用梯形图思考,原文作者提供的免费梯形图编辑器可以让你先画出来、逐扫描仿真,然后再碰树莓派。它的转换功能(示例里就有同一个启停电路)把程序写成 IEC 61131-3 的结构化文本,你可以贴进 PLC_PRG;也可以写成 PLCopen XML,用 CODESYS 工程菜单里的 Import PLCopenXML 导入。它会报告哪些内容无法转换,并且明确说明:它的 PLCopen 输出是把逻辑当作结构化文本承载,而不是梯形图图形。
编者注:这一节介绍的是原文作者 LADX 自家的工具,属于原站的产品内容。原文里指向 LADX 站内术语页的多处链接,译文改为纯文字,只保留指向 CODESYS 官方与 YouTube 的链接。
会出什么问题
| 现象 | 可能原因 | 怎么办 |
|---|---|---|
| 程序大约两小时后停了 | 演示模式,无许可 | 重启 runtime,或给设备上许可 |
| Deploy Control SL 连不上 | SSH 服务没开,或 IP、端口错 | sudo systemctl status ssh;帮助假定 SSH 端口已知、地址能 ping 通 |
| Deployment 标签页里选不到那个产品 | 包里没装进 Development System,或派没通过工具的自检 | 装那个 add-on;工具会在 /proc/cpuinfo 的 Model 行里找 Raspberry |
| Scan Network 找不到设备 | PC 与派不在同一网段,或掩码不同 | 同网段同掩码;关掉 target ID 过滤来定位 |
| 64 位 runtime 装不上 | 装的是 32 位系统 | 改用 SL 或 MC SL,或换 64 位镜像 |
| 某个输出脚毫无反应 | 引脚被驱动占用,或 GPIO 设备描述选错 | 换一个空闲脚;选 GPIOs B+/Pi2 |
| 教程里的菜单根本不存在 | 那篇教程早于 Deploy Control SL | 用 Tools > Deploy Control SL |
什么时候树莓派是错的答案
CODESYS 帮助说得很直白:树莓派是为测试和教学开发的,不建议用于工业。学 CODESYS、试一条现场总线、做家用项目,它物有所值。要做机器,许可条款比硬件更早把它否掉——商用不允许,得转向按应用规模计费的许可。要在真实系统里用通用硬件跑 CODESYS,走的是虚拟 PLC 那条路,不是这块板子。
来源与延伸阅读
- CODESYS Store:CODESYS Control for Raspberry Pi SL(要求、许可、版本历史)
- CODESYS 帮助:Raspberry Pi runtime 概览
- CODESYS 帮助:用 Deploy Control SL 建立连接
- CODESYS 帮助:在控制器上安装 runtime
- CODESYS 帮助:给控制器授权
常见问题
树莓派上的 CODESYS 是免费的吗?runtime 在没有许可时以演示模式运行,每次两小时、功能不受限,然后停下直到重启。要持续运行需要从 CODESYS Store 买一份单设备许可(原文写作时 2026 年 10 月,55 欧元 + 增值税)。不论是否授权,使用范围都限于私人、测试与教学用途。
CODESYS 支持树莓派 5 吗?支持。Store 的版本历史说树莓派 5 的支持随 runtime 4.11.0.0 到来,帮助里三个 runtime 都列了 Pi 5:SL 跑 32 位系统、MC SL 做 32 位多核、64 SL 跑 64 位系统。装当前的包,别用旧的下载。
能把树莓派 + CODESYS 用在一台商用机器上吗?用这个产品不行。Store 页面写明树莓派与 CODESYS runtime 的组合用于私人使用、测试与教学,不允许商用;商用设备指向按应用规模计费的许可。帮助还补充说,不建议把树莓派用于工业。
树莓派 runtime 能跑在 Docker 或虚拟机里吗?不能。Store 页面写明 CODESYS Control for Raspberry Pi SL 未发布用于容器或虚拟机。CODESYS 另有虚拟控制类产品,Deploy 工具也以镜像和实例的方式管理它们,但那是不同的产品、不同的许可,不是树莓派的 runtime。
CODESYS 能用树莓派哪些引脚?包里自带的 GPIO 示例工程通过一张 I/O 映像暴露空闲 GPIO,其中每个 DWORD 的第 X 位对应 GPIO X。有些引脚已被加载的驱动永久占用、不可用。引脚电平是 3.3 V,所以 24 V 现场信号需要一块接口板。
来源
- 原文:CODESYS on a Raspberry Pi: install, licence and a first program(LADX 工程团队,2026 年 10 月 12 日,约 9 分钟阅读;对应 runtime 4.22.0.0)
- 官方口径:CODESYS Store 产品页、CODESYS 在线帮助(Raspberry Pi runtime)
- 官方安装演示:CODESYS Group on YouTube
编者补充
原文给的是"怎么装通",没给"装通之后怎么判断这块板子到底能干什么"。补一张判断表:
| 你要做的事 | 树莓派 + CODESYS 行不行 | 说明 |
|---|---|---|
| 学 CODESYS、练 IEC 61131-3 的语法和任务配置 | ✅ 最省钱 | 两小时限制对学习几乎无碍,重启就是 |
| 试一条现场总线(EtherCAT / PROFINET / Modbus) | ✅ 可以 | 协议栈在 runtime 包里,但别指望时序指标 |
| 家用/教学项目、拿它当小型控制器 | ✅ 可以 | 仍属"私人、测试、教学"范围 |
| 商用设备里的控制核心 | ❌ 不允许 | 许可条款先否掉,再谈硬件 |
| 真机上的运动控制(伺服、1 ms 周期) | ❌ 不建议 | 帮助明确不推荐工业使用;一边跑 OS 一边跑 runtime,确定性没法保证 |
| 放进容器或虚机 | ❌ 不支持 | 要虚拟 PLC 得用另一套产品 |
两条边界。其一,3.3 V 不是 24 V:这块板子的 IO 电平决定了它和现场信号之间必须隔一层(光耦或继电器模块),这不是"建议"而是电气事实;本文所有 GPIO 结论都以 3.3 V 为前提。其二,文中所有版本号与菜单名都对应 runtime 4.22.0.0 / 2026 年 10 月的 Store 页与帮助,CODESYS 改过菜单名(Update Raspberry Pi → Deploy Control SL),你看到对不上的教程先查日期。
如果你其实在西门子那条路上:CODESYS 与 TIA Portal 是两条互不通用的工具链,我们自己的工具只覆盖后者——TiaLink 通过 TIA Portal Openness 驱动博途工程(读块、读变量、编译、在 PLCSIM Advanced 里跑),不适用于 CODESYS 工程。博途侧"装通之后怎么看懂一段梯形图、怎么逐扫描验证"这个问题,我们另有一篇《梯形图怎么读:Stop 按下之后,端子还多亮一个扫描》讲得更细。
本文由 汇智网 · Software 2.0 编译整理,转载请注明出处。
这是「AI × 工业 / PLC」专题的一部分。完整地图见:AI × 工业 / PLC 完全指南