4. 电子凸轮软件环境搭建:常用编程环境介绍
做电子凸轮开发,第一步不是写代码,而是搭环境。这活儿看着简单,但我在项目里见过太多人卡在这一步——软件装不上、授权过期、连不上控制器……说白了,环境没搭好,后面全是坑。
今天我就带你走一遍,把常用的几个开发环境捋清楚。你跟着做,半小时内就能跑起第一个运动控制项目。
4.1 三大主流编程环境:选哪个?
目前工业界做电子凸轮,基本就这三家:CODESYS、TwinCAT、PLCopen。它们的关系,我画了张图帮你理解。
4.2 CODESYS:最通用的选择
CODESYS 是德国 3S 公司的产品。它不绑定硬件,很多国产控制器、PLC 都支持。我个人习惯把它叫做「工业界的 Android」——开放、灵活、生态好。
适用场景: 中小型项目、多品牌硬件、预算有限
安装步骤
- 下载:去官网(codesys.com)下载 CODESYS Development System V3.5 SP19 以上版本。注意区分 32 位和 64 位。
- 安装:一路 Next,默认路径即可。安装时会自动装好 .NET Framework 和 USB 驱动。
- 授权:CODESYS 免费版有 2 小时运行限制。破解?别想了。正版授权分两种:
- SoftContainer:软授权,绑定电脑硬件,约 2000 元/年
- USB Dongle:硬件狗,插上就能用,适合多台电脑切换
我的经验: 刚开始学习用免费版就行。2 小时够你写完一个凸轮程序了。真到项目交付时再买授权,别浪费钱。
4.3 TwinCAT:高性能玩家的选择
TwinCAT 是 Beckhoff 的看家本领。它把 Windows 变成了实时系统。说白了,你的电脑既是上位机,又是运动控制器。
我记得第一次用 TwinCAT 时,被它的「蓝屏恐惧」支配过——实时系统没配好,直接 BSOD。后来学乖了,每次改配置前先保存。
适用场景: 高速高精度、多轴联动、需要 Windows 生态
安装要点
- 系统要求:Win10/11 专业版或企业版。家庭版不行,别试了。
- 下载:Beckhoff 官网下载 TwinCAT XAE(集成在 Visual Studio 里)。版本选 TC3.1 以上。
- 安装顺序:先装 VS 2019/2022 → 再装 TwinCAT XAE → 最后装 TwinCAT XAR(运行时)。
- 授权:TwinCAT 免费版有 7 天试用。之后需要购买 license。Beckhoff 的授权是绑在硬件上的(CX 系列控制器或 EL 系列模块)。
⚠️ 避坑指南: 我曾经在 Win11 家庭版上折腾了一下午,TwinCAT 死活装不上。后来才发现系统版本不支持。所以,装之前先确认系统版本,别浪费时间。
4.4 PLCopen:不是软件,是标准
PLCopen 不是 IDE,而是一套运动控制函数库的标准。CODESYS 和 TwinCAT 都实现了这个标准。所以你学一个,另一个基本能无缝切换。
举个例子,电子凸轮的核心指令:
// CODESYS 写法
MC_CamIn(
Master := Axis_Ref_Master,
Slave := Axis_Ref_Slave,
CamTable := CamTable_1,
Execute := bStart,
MasterOffset := 0,
SlaveOffset := 0,
MasterScaling := 1,
SlaveScaling := 1,
StartMode := MC_CAM_START_MODE_IMMEDIATE
);
// TwinCAT 写法(几乎一样)
MC_CamIn(
Master := Axis_Ref_Master,
Slave := Axis_Ref_Slave,
CamTable := CamTable_1,
Execute := bStart,
MasterOffset := 0,
SlaveOffset := 0,
MasterScaling := 1,
SlaveScaling := 1,
StartMode := MC_CAM_START_MODE_IMMEDIATE
);
看到没?参数名、数据类型、调用方式完全一致。这就是标准化的好处。
4.5 创建第一个运动控制项目
好,环境装好了,我们动手创建一个项目。以 CODESYS 为例,TwinCAT 流程类似。
步骤一:新建项目
- 打开 CODESYS,点击 File → New Project
- 选择 Standard Project,输入项目名称(比如 MyFirstCam)
- 选择设备:如果你用的是模拟器,选 CODESYS Control Win V3
- 选择编程语言:我建议用 Structured Text (ST),做运动控制最方便
步骤二:添加轴
- 在左侧设备树,右键 PLC Logic → Add Object → SoftMotion General Axis Pool
- 添加两个轴:MasterAxis(主轴)和 SlaveAxis(从轴)
- 双击每个轴,在 General 标签页设置参数:
- Drive Type: Virtual(模拟用)
- Unit: mm(或度,看你需求)
- Scaling: 1 pulse = 1 unit(模拟器无所谓)
步骤三:添加凸轮表
- 右键 Application → Add Object → Cam Table
- 命名 CamTable_1
- 在编辑器中设置主从轴映射关系。最简单的:
| Master Position | Slave Position |
|-----------------|----------------|
| 0 | 0 |
| 100 | 50 |
| 200 | 100 |
| 300 | 150 |
| 360 | 200 |
这表示主轴转一圈(360°),从轴走 200 个单位。比例 1:0.555。
步骤四:写主程序
PROGRAM Main
VAR
bStart : BOOL := FALSE;
bStop : BOOL := FALSE;
CamIn : MC_CamIn;
CamOut : MC_CamOut;
AxisStatus : MC_ReadStatus;
END_VAR
// 启动凸轮
IF bStart AND NOT CamIn.Done THEN
CamIn(
Master := MasterAxis,
Slave := SlaveAxis,
CamTable := CamTable_1,
Execute := TRUE,
MasterOffset := 0,
SlaveOffset := 0,
MasterScaling := 1,
SlaveScaling := 1,
StartMode := MC_CAM_START_MODE_IMMEDIATE
);
END_IF
// 停止凸轮
IF bStop THEN
CamOut(
Slave := SlaveAxis,
Execute := TRUE
);
END_IF
步骤五:运行调试
- 点击 Login(或按 F11)连接到模拟器
- 点击 Start(或按 F5)运行程序
- 将 bStart 置为 TRUE,观察从轴是否跟随主轴运动
- 打开 SoftMotion Scope 查看曲线
我的小技巧: 第一次跑凸轮时,把主轴速度设慢一点(比如 10 units/s)。太快了看不清楚,也容易出错。调试嘛,稳字当头。
4.6 常见问题与解决
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 轴不动 | 轴未使能 | 调用 MC_Power 使能轴 |
| 凸轮不启动 | Execute 信号太短 | 用上升沿触发,保持 TRUE 直到 Done |
| 曲线抖动 | 凸轮表点数太少 | 增加插值点,或用样条曲线 |
| 授权过期 | 试用期到了 | 购买正版授权,或重装系统(不推荐) |
嗯,环境搭建这部分就这些。你跟着走一遍,应该能跑起来。记住,环境搭好了,后面学凸轮曲线、同步控制、飞剪追剪,才有地方练手。
公众号:蓝海资料掘金营,微信deep3321