1. 项目概述:二轴物料搬运平台控制系统
最近完成了一个工业自动化小项目——二轴物料搬运平台控制系统。这个系统采用西门子S7-200smart SR40 PLC作为主控制器,配合MT6070IH触摸屏实现人机交互,通过高速脉冲输出控制两台伺服电机,完成精确的物料定位和搬运任务。
这个项目虽然规模不大,但涵盖了PLC运动控制的几个关键技术要点:高速脉冲输出、伺服电机控制、触摸屏通讯以及实时位置反馈。在实际调试过程中,遇到了不少值得分享的技术细节和问题解决方案,特别是关于脉冲当量计算、伺服参数匹配以及系统稳定性方面的经验。
2. 硬件配置与系统架构
2.1 PLC选型与硬件配置
选择S7-200smart SR40型号PLC主要基于以下考虑:
- 内置两个100kHz高速脉冲输出口(Q0.0和Q0.1),正好满足二轴控制需求
- 14点输入/10点输出的I/O配置足够应对基础传感器和外围设备
- 内置RS485通讯口方便与触摸屏连接
- 性价比较高,适合中小型自动化项目
在实际接线时,有几个关键点需要注意:
- 脉冲输出线(PUL+、PUL-)和方向信号线(DIR+、DIR-)必须使用双绞屏蔽线
- 伺服驱动器的使能信号(EN)建议通过PLC的数字量输出控制
- 急停回路应设计为独立硬件电路,同时接入PLC作为软件急停信号
2.2 伺服系统选型与参数设置
项目中使用的伺服驱动器需要支持脉冲+方向控制模式。伺服电机的选型要考虑以下因素:
- 负载惯量匹配(建议负载惯量不超过电机转子惯量的10倍)
- 额定扭矩需满足加速和运行需求
- 编码器分辨率影响系统定位精度
伺服驱动器关键参数设置:
plaintext复制P0.01 = 3 // 位置控制模式
P0.07 = 10000 // 电子齿轮分子(根据实际机械传动比计算)
P0.08 = 1 // 电子齿轮分母
P1.01 = 2 // 脉冲+方向控制方式
注意:不同品牌的伺服驱动器参数编号可能不同,务必参考具体型号的说明书。
2.3 触摸屏选型与通讯设置
MT6070IH触摸屏的主要优势:
- 7寸高亮度TFT液晶屏,适合工业环境
- 支持RS485通讯,与S7-200smart PLC兼容性好
- EasyBuilder Pro编程软件功能完善,开发效率高
通讯参数配置要点:
- 波特率:187.5kbps(实测稳定性最佳)
- 数据位:8位
- 停止位:1位
- 校验方式:偶校验
- PLC站地址:2(默认值)
3. PLC程序设计详解
3.1 运动控制向导配置
S7-200smart的运动控制向导是开发脉冲控制程序的高效工具。配置步骤如下:
- 在编程软件中打开"工具→运动控制向导"
- 选择"轴0"和"轴1"分别对应Q0.0和Q0.1输出
- 设置测量系统:
- 电机每转脉冲数:10000(根据伺服编码器设置)
- 机械传动比:1:1(根据实际减速机设置)
- 导程:5mm(根据丝杆规格)
- 运动参数:
- 最大速度:1000mm/s
- 启动/停止速度:100mm/s
- 加速度时间:300ms
- 减速度时间:300ms
- 生成子程序:AXIS0_CTRL和AXIS0_GOTO等
生成的轴控制子程序调用示例:
st复制// 轴0初始化控制
AXIS0_CTRL(
EN:=True, // 使能控制
MODE:=1, // 工作模式:1=绝对位置
STOP:=M0.2, // 急停信号
Done=>M0.3, // 运动完成标志
Error=>VB100); // 错误代码存储
// 轴0绝对定位运动
AXIS0_GOTO(
POSITION:=VD200, // 目标位置(mm)
SPEED:=500, // 运动速度(mm/s)
MODE:=0, // 0=绝对位置模式
START:=M0.0, // 启动信号
Done=>M0.1, // 运动完成
Error=>VB101); // 错误代码
3.2 脉冲当量计算与参数匹配
脉冲当量是运动控制中最关键的参数之一,决定了系统的定位精度。计算公式如下:
脉冲当量 = 导程 / (电机每转脉冲数 × 减速比)
在本项目中:
- 丝杆导程:5mm
- 编码器分辨率:10000脉冲/转
- 减速比:1:1
因此脉冲当量为:
5mm ÷ (10000 × 1) = 0.0005mm/脉冲
这个值必须准确输入到运动控制向导中,才能保证PLC发送的脉冲数与实际机械位移匹配。
3.3 高速计数器配置与位置反馈
为了实现实时位置监控,我们使用了PLC内置的高速计数器功能:
- 配置HSC0和HSC3分别对应Q0.0和Q0.1的脉冲反馈
- 工作模式设置为模式9(A/B相正交计数器)
- 预设值设为0,初始值设为0
- 启用计数器中断
中断服务程序示例:
st复制// HSC0中断服务程序(轴1位置更新)
MOVD HC0, VD210 // 将HSC0当前值传送到VD210
MOVD HC3, VD214 // 将HSC3当前值传送到VD214(轴2位置)
4. 触摸屏界面设计与功能实现
4.1 通讯参数设置
在EasyBuilder Pro中配置与PLC的通讯:
- 新建工程,选择设备类型为"Siemens S7-200 PPI"
- 设置通讯参数:
- 波特率:187500
- 数据位:8
- 停止位:1
- 校验:Even
- 设置站号:2(与PLC保持一致)
4.2 主要界面元素设计
-
主控制界面:
- 坐标显示框:绑定VD210(轴1位置)、VD214(轴2位置)
- 目标位置输入框:绑定VD200(轴1目标)、VD204(轴2目标)
- 速度设置框:绑定VW220(运动速度)
- 启动/停止/急停按钮
-
参数设置界面:
- 加速度设置:绑定VD208(0-100%)
- 软限位设置:绑定VD300/VD304(轴1正/负限位)
- 回零速度设置:绑定VW230
-
手动操作界面:
- JOG+/-按钮:点动控制
- 示教点保存按钮
- 回零按钮
4.3 关键功能实现代码
触摸屏按钮对应的PLC程序逻辑:
st复制// 手动前进按钮逻辑(轴1)
LD SM0.0 // 常ON信号
AN M10.2 // 互锁条件
= M0.4 // 手动前进信号
// 示教点保存
LD M0.5 // 保存按钮信号
MOVD VD210, VD500 // 将当前位置保存到VD500(示教点1)
// 回原点操作
LD M0.6 // 回零按钮信号
CALL SBR1 // 调用回零子程序
5. 调试经验与问题解决
5.1 伺服过冲问题分析与解决
初期调试时发现伺服电机在停止时会出现过冲现象,主要原因是:
- 加减速时间设置过短
- 伺服驱动器的位置环增益过高
- 机械系统存在反向间隙
解决方案:
- 在运动向导中调整S曲线加速度为30%
- 修改伺服参数:
- 降低位置环增益(P参数)
- 增加速度环积分时间(I参数)
- 机械方面检查并消除反向间隙
5.2 位置偏移问题排查
在8小时连续运行测试中出现的位置偏移问题,经过排查发现:
- 刹车电阻长时间工作导致发热严重
- 伺服使能信号偶尔丢失
- 脉冲线受到干扰
改进措施:
- 将刹车电阻外置并加大功率
- 优化PLC程序,增加使能信号保持逻辑
- 重新布线,脉冲信号使用独立屏蔽线
5.3 触摸屏通讯不稳定处理
偶尔出现的触摸屏通讯中断问题,通过以下方法解决:
- 将波特率从9600提升到187.5k
- 缩短通讯线长度(<15米)
- 增加终端电阻(120Ω)
- 在PLC程序中添加通讯心跳检测机制
6. 系统优化与功能扩展
6.1 运动曲线优化
通过调整运动参数可以获得更平滑的运动性能:
- 采用S曲线加减速算法
- 根据负载情况动态调整加速度
- 设置合理的速度前馈参数
PLC中的实现代码:
st复制// 动态加速度调整
MOVR VD208, AC0 // 读取触摸屏设置的加速度百分比
/R 100.0, AC0 // 转换为小数(0.0-1.0)
MOVR AC0, SMB158 // 写入加速度参数寄存器
6.2 安全功能增强
为提高系统安全性,增加了以下功能:
- 软限位保护
- 超速检测
- 紧急停止双回路设计
- 运动状态监控与报警
软限位实现逻辑:
st复制// 轴1正限位检查
LD SM0.0 // 常ON
MOVD VD210, AC0 // 当前位置
MOVD VD300, AC1 // 正限位值
A>=R AC0, AC1 // 当前位置≥正限位
= M10.3 // 触发正限位标志
6.3 扩展功能实现
根据客户需求,后期增加了以下实用功能:
- 配方管理:可存储和调用多组位置参数
- 生产计数:统计运行周期数
- 故障历史记录:保存最近10次报警信息
- 权限管理:设置操作员和维护员不同权限
7. 项目总结与经验分享
通过这个二轴运动控制项目的实践,我总结了以下几点重要经验:
-
脉冲当量的计算必须精确,且要与伺服驱动器的电子齿轮比匹配。建议在机械装配完成后,通过实际测量进行验证和微调。
-
运动控制系统的稳定性不仅取决于程序,硬件配置和接线同样重要。特别是脉冲信号和编码器反馈信号,必须使用合适的电缆并做好屏蔽。
-
触摸屏与PLC的通讯参数设置对系统响应速度影响很大。经过测试,187.5kbps的波特率在大多数情况下能提供最佳的性能和稳定性平衡。
-
伺服系统的刹车电阻功率要留有足够余量,特别是对于频繁启停或垂直轴应用,建议外置大功率电阻并做好散热。
-
调试阶段应该模拟各种异常情况,如急停、断电恢复、限位触发等,确保系统能够安全、可靠地处理这些状况。
这个项目的完整程序已经模块化,形成了可重用的库文件,包括:
- 轴控制功能块
- 触摸屏接口模块
- 安全保护逻辑
- 故障处理程序
这些模块经过实际验证,可以快速移植到类似的运动控制项目中,显著缩短开发周期。
