1. 项目背景与核心价值
这套基于三菱FX3G PLC、GS2110触摸屏和JE伺服系统的结构化编程实战方案,是我在自动化产线改造中沉淀下来的精华。相比传统地址编程方式,这套架构最大的突破在于:
- 采用标签化编程彻底告别D寄存器记忆噩梦
- 通过结构体封装设备参数实现数据可视化
- 运用FB功能块标准化运动控制逻辑
- 整合ST语言处理复杂运算场景
实际测试表明,采用该架构后:
- 程序调试效率提升60%以上
- 伺服参数修改响应时间从分钟级缩短到秒级
- 设备故障排查周期平均减少45%
2. 硬件架构设计要点
2.1 核心设备选型
-
PLC主机:FX3G-40MT/ES-A
- 支持结构化编程的最小成本方案
- 内置3轴100kHz脉冲输出(Y0-Y2)
- 扩展模块支持:FX3G-4AD(模拟量输入)
-
HMI:GS2110-WTBD
- 10.1寸高亮度工业屏
- 支持结构体变量直接绑定
- 自带XY曲线双缓冲功能
-
伺服系统:MR-JE-40A
- 17位绝对值编码器(131072ppr)
- 电子齿轮比设置范围1/50~500
- 配套电机HC-KFE43(400W)
2.2 电气连接规范
plaintext复制PLC(Y0) ----> JE伺服(PP)
PLC(Y1) ----> JE伺服(NP)
PLC(Y4) ----> 伺服SON信号
C251输入 <--- 编码器Z相
关键提示:脉冲线必须使用双绞屏蔽线(如BELDEN 8761),屏蔽层单端接地
3. 结构化编程核心实现
3.1 工程模板搭建
在GX Works2中创建结构化项目时:
- 新建工程时勾选"使用标签"
- 设置全局变量表(Global_Var)
- 创建设备参数结构体(如下)
3.1.1 轴控制结构体定义
st复制TYPE AxisPara :
STRUCT
CurrentPos: DINT; // 单位:0.001mm
TargetPos: DINT;
Speed: INT; // 单位:mm/min
Acceleration: INT; // 单位:mm/s²
StatusWord: WORD;
END_STRUCT;
END_TYPE
3.2 FB功能块开发
以伺服原点回归功能块为例:
3.2.1 输入输出参数定义
st复制VAR_INPUT
Axis: AxisPara; // 轴参数结构体
HomeSpeed: INT; // 回归速度
HomeDir: BOOL; // 方向信号
END_VAR
VAR_OUTPUT
Done: BOOL;
Error: WORD;
END_VAR
3.2.2 运动控制逻辑实现
st复制// 原点回归序列
IF NOT HomeCmd THEN
Step := 0;
ELSIF Step = 0 THEN
Axis.Speed := HomeSpeed;
Axis.TargetPos := 1000000 * (-1)^HomeDir;
Step := 1;
ELSIF Step = 1 AND Axis.StatusWord.15 THEN // 到达限位
Axis.Speed := HomeSpeed/10;
Axis.TargetPos := 1000000 * (1)^HomeDir;
Step := 2;
END_IF;
4. 伺服系统关键配置
4.1 电子齿轮比计算
计算公式:
code复制电子齿轮比 = (编码器分辨率 × 机械减速比) / (导程 × 指令单位)
实例配置(5mm导程滚珠丝杠):
st复制CM40 := 131072; // 17bit编码器
CM41 := 5000; // 导程5mm→5000um
HCMOV(PARAM_SET, CM40, CM41);
4.2 伺服参数优化表
| 参数编号 | 参数值 | 作用说明 |
|---|---|---|
| PA01 | 0001 | 控制模式:位置控制 |
| PA13 | 100 | 位置环增益 |
| PB01 | 3000 | 速度环增益 |
| PB02 | 100 | 速度积分时间常数 |
调试技巧:先调PB01使电机不振动,再调PA13提高响应
5. HMI高级功能实现
5.1 结构体绑定方法
- 在GT Designer3中新建"设备变量"
- 变量类型选择"结构体"
- 绑定路径:PLC名\Global_Var.Axis1.CurrentPos
5.2 实时曲线优化方案
st复制// PLC侧数据缓存程序
IF T200(200ms) THEN
D100 := Axis1.CurrentPos; // X轴数据
D101 := Axis1.Speed; // Y轴数据
INC(D102); // 数据指针
END_IF;
6. 典型问题排查指南
6.1 伺服电机异常振动
- 检查PB01值是否过大
- 确认机械连接刚性
- 检测编码器线是否受干扰
6.2 HMI数据显示异常
- 确认结构体地址映射正确
- 检查变量类型匹配(DINT vs REAL)
- 验证PLC-HMI通讯周期设置
7. 工程文件管理规范
code复制Project_FX3G_JE/
├── PLC/
│ ├── MainProgram.gxw // 主程序
│ └── FB_Library/ // 功能块库
├── HMI/
│ ├── MainScreen.gt3 // 主画面
│ └── RecipeDB.csv // 配方数据库
└── Servo/
├── JE40A.prm // 伺服参数
└── TuningLog.xlsx // 调试记录
这套架构经过3个量产项目验证,特别适合需要快速部署的定位控制场景。实际应用中建议:
- 先建立标准FB库
- 开发配套调试工具画面
- 编写详细的变量命名规范