1. 项目概述与硬件配置
这个实战项目采用西门子S7-200 SMART系列PLC(CPU SR20)作为主控制器,搭配昆仑通态7英寸触摸屏(MCGS TPC7062Ti),实现了汇川IS620N伺服电机、雷赛DM542步进电机的精确控制,同时整合了两路模拟量采集和国产机器人的Modbus TCP通讯功能。整套系统堪称自动化入门学习的"黄金套餐",涵盖了工业现场80%以上的典型应用场景。
1.1 核心硬件选型解析
PLC选型考量:
选择SR20型号主要基于三点:首先,其本体自带3轴100kHz高速脉冲输出,完美支持伺服和步进控制;其次,内置以太网口方便Modbus TCP通讯;最后,经济实惠的价格(约2000元)特别适合教学和中小型项目。实际采购时建议选择ST20(晶体管输出型),因为继电器输出型不适合高频脉冲控制。
HMI人机界面:
昆仑通态TPC7062Ti触摸屏在性价比方面表现突出:
- 7寸800×480分辨率,满足基本监控需求
- 支持与西门子S7-200 SMART的PPI协议直连
- 内置128MB存储空间,可存储历史数据和配方
- 开发软件McgsPro完全免费,降低学习成本
运动控制组件:
- 汇川IS620N伺服驱动器:支持脉冲+方向控制,500W功率足够大多数教学应用
- 雷赛DM542步进驱动器:细分精度可达25600脉冲/转,带半流锁定功能
- 关键参数对比:
| 特性 | 伺服系统 | 步进系统 |
|---|---|---|
| 控制精度 | 0.01mm级 | 0.1mm级 |
| 高速性能 | 3000rpm无丢步 | 800rpm可能失步 |
| 价格 | 较高(约2000元) | 较低(约500元) |
| 适用场景 | 高动态响应场合 | 低速大扭矩场合 |
1.2 电气接线要点
脉冲控制回路:
- Q0.0:伺服脉冲信号(PUL+)
- Q0.1:伺服方向信号(DIR+)
- Q0.2:步进脉冲信号(PUL+)
- 所有脉冲信号的负端(PUL-/DIR-)统一接到PLC的M端子
- 注意:必须使用屏蔽双绞线,屏蔽层单端接地(驱动器侧)
伺服使能电路:
很多新手会忽略的关键设计!正确接法应该是:
plaintext复制24V+ → 急停按钮常闭点 → 伺服SON端子 → 24V-
这种设计确保急停触发时立即切断伺服使能,避免失控风险。我曾见过直接短接SON端子的案例,结果设备上电后伺服立即跑飞,非常危险。
模拟量输入:
- AIW16:通道0,接压力变送器(4-20mA)
- AIW18:通道1,接温度传感器(0-10V)
- 重要技巧:在信号线两端并联0.1μF电容可有效抑制高频干扰
2. 伺服系统深度配置
2.1 参数设置黄金法则
汇川伺服有上百个参数,但实际项目中最关键的只有以下几个:
-
基本控制模式(H02组):
- H02-00=3:位置控制模式(脉冲+方向)
- H02-01=1:禁止双脉冲输入(节省PLC输出点)
-
电子齿轮比(H03组):
计算公式:code复制电子齿轮比 = (电机转一圈的脉冲数 × 机械减速比) / (进给轴移动量 × 编码器分辨率)举例:丝杠导程10mm,减速比1:2,希望1脉冲=0.01mm
code复制(10000 × 2) / (0.01 × 131072) ≈ 15.26因此设置:
- H03-00=15(分子)
- H03-01=1(分母)
-
刚性调整(H08组):
- H08-00=15:位置环增益(初始值)
- H08-01=100:速度环增益
- 调试技巧:先调速度环,再调位置环,观察实际运动是否振荡
2.2 PLC脉冲控制编程
西门子S7-200 SMART使用CTRL_PTO指令进行多段脉冲控制,核心代码详解:
pascal复制// 初始化PTO
MOV_B 16#85, SMB67
// 二进制10000101:
// bit7=1(启用PTO)
// bit2=1(选择微秒时间基准)
// bit0=1(启用多段管线)
MOVW 1000, SMW168 // 初始周期=1000μs(1kHz)
MOVD &VB200, SMW170 // 包络表起始地址
包络表数据结构:
plaintext复制VB200:段数(例如3段)
VB201:初始周期(低字节)
VB202:初始周期(高字节)
VB203:周期增量(低字节)
VB204:周期增量(高字节)
VB205:脉冲数(低字节)
VB206:脉冲数(高字节)
...
运动触发逻辑:
pascal复制CTRL_PTO EN=Start, // 触发信号上升沿执行
Profile=1, // 使用包络1
Dir=Dir_Flag, // 方向控制(0/1)
C_Pos=>VD100, // 当前位置反馈
Abort=0, // 急停信号
Error=>VB10 // 错误代码存储
重要提示:SMW168的初始周期值必须与伺服电子齿轮比匹配。假设电子齿轮比设为15:1,那么1000μs周期对应的实际速度为:
code复制速度(mm/s) = (1,000,000 / 周期μs) × (导程mm / 脉冲数每转) = (1,000,000 / 1000) × (10 / 15,000) ≈ 0.666mm/s
3. 模拟量处理实战技巧
3.1 信号转换全流程
模拟量处理的核心是工程量转换,完整流程如下:
-
读取原始值:
pascal复制MOVW AIW16, VW50 // 读取通道0原始值(0-27648) -
数据类型转换:
pascal复制ITD VW50, VD60 // 整型转双整型 DTR VD60, VD64 // 双整型转浮点型 -
工程量换算:
pascal复制MOVR 0.003222656, VD68 // 换算系数 *R VD64, VD68 // 实际工程值
3.2 系数计算原理
以4-20mA压力变送器(量程0-5MPa)为例:
- 4mA对应PLC数值:5530(=4×27648/20)
- 5MPa对应数值:27648
- 实际系数计算:
code复制系数 = (量程上限 - 量程下限) / (数字量上限 - 数字量下限) = (5 - 0) / (27648 - 5530) ≈ 0.003222656
3.3 滤波算法实现
原始模拟量信号通常需要滤波处理,推荐移动平均滤波法:
pascal复制// 在数据块中定义数组
VB100: 10 // 采样次数
VD101: 0.0 // 累加和
VD105: ARRAY[1..10] OF REAL // 采样队列
// 滤波程序
MOVR VD68, VD105[VB100] // 存入新值
+R VD68, VD101 // 累加求和
MOVR VD101, VD80 // 准备计算平均值
/R 10.0, VD80 // 10点平均
4. Modbus TCP通讯详解
4.1 通讯协议配置
西门子S7-200 SMART作客户端,机器人作服务器:
pascal复制MBUS_CLIENT EN:=Connect, // 使能连接
REQ:=Data_Req, // 请求触发(上升沿)
IP_PORT:=16#1F90, // 8080端口
IP_ADDR:=16#C0A80164, // 192.168.1.100
RW:=1, // 0=读,1=写
Addr:=&VB500, // 数据缓冲区
Count:=10, // 数据长度(字)
Done=>Done_Flag, // 完成标志
Error=>Err_Code // 错误代码
4.2 字节序处理方案
不同设备字节序可能不同,典型处理方式:
-
SWAP指令法:
pascal复制SWAP VW500, VW510 // 高低字节交换 -
手动重组法:
pascal复制MOVB VB501, VB520 // 原高字节→新低字节 MOVB VB500, VB521 // 原低字节→新高字节
4.3 常见故障排查
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时 | 从站寄存器范围不匹配 | 检查双方Count参数设置 |
| 数据错乱 | 字节序不一致 | 增加SWAP指令处理 |
| 连接失败 | IP地址或端口错误 | 用ping测试网络连通性 |
| 间歇性通讯中断 | 网络干扰 | 改用屏蔽双绞线,检查接地 |
5. 触摸屏高级应用
5.1 间接寻址实现配方功能
在McgsPro中的实现步骤:
-
定义数据对象:
- 名称:Recipe_Index
- 类型:数值型
- 地址:PLC1.VW100(索引寄存器)
-
创建配方数据对象:
- 名称:Recipe_Data
- 类型:数值型
- 地址:PLC1.VD[Recipe_Index]
-
通过脚本修改索引:
lua复制function OnButtonClick() SetData("Recipe_Index", "2") -- 切换到配方2 end
5.2 实时曲线显示技巧
-
创建曲线控件:
- X轴:时间轴,范围0-60秒
- Y轴:压力值,范围0-5MPa
-
数据关联:
lua复制AddCurveData("PressureCurve", 1, GetData("PLC1.VD68")) -- 参数说明:1表示曲线1,VD68是压力值地址 -
刷新设置:
- 采样周期:500ms
- 显示点数:120点(1分钟数据)
6. 系统调试经验集锦
6.1 伺服运动异常排查
现象:电机上电后抖动但不转动
排查步骤:
- 检查使能信号电压(SON端子应有24V)
- 确认脉冲模式设置(H02-01应为1)
- 测量脉冲信号电压(PUL+与PUL-间应有5V差分)
- 检查电子齿轮比是否合理
6.2 模拟量波动处理
抗干扰三板斧:
- 硬件:信号线改用屏蔽双绞线,屏蔽层单端接地
- 软件:增加移动平均滤波算法
- 电气:在信号线两端并联0.1μF瓷片电容
6.3 Modbus TCP优化建议
- 通讯周期不要小于200ms
- 单次读写数据量控制在50个字以内
- 重要数据采用"读取-处理-写入"的批处理方式
- 添加通讯超时报警功能(3次失败触发报警)
这个项目从硬件选型到软件调试,完整覆盖了工业自动化现场的核心技术要点。通过实际动手操作,不仅能掌握PLC编程、运动控制、通讯协议等关键技术,更能培养出解决复杂工程问题的能力。建议初学者按照"单机调试→功能联调→系统优化"的步骤循序渐进,遇到问题时多查阅设备手册,往往答案就在参数说明的细节之中。