1. 项目背景与核心价值
在工业自动化控制领域,HMI(人机界面)与伺服驱动器的稳定通讯是实现精密运动控制的基础环节。这次要分享的是昆仑通态MCGS触摸屏与台达ASD-B2系列伺服驱动器通过RS485接口实现Modbus通讯控制的完整实战方案。
这个方案的价值在于:它解决了中小型自动化设备中常见的控制难题——如何在不增加PLC成本的情况下,通过触摸屏直接控制伺服驱动器完成位置、速度、扭矩三模式切换,以及实时监控运行状态。我们团队在包装机械、电子组装线等场景中反复验证,通讯响应时间可稳定在50ms以内,位置控制精度达到±1个脉冲。
2. 硬件连接与参数配置
2.1 物理层连接要点
ASD-B2伺服驱动器标配RS485接口(端子为P5S+/P5S-),与MCGS触摸屏的COM2口(支持RS485)连接时需注意:
- 使用双绞屏蔽线(推荐线径≥0.5mm²)
- 终端电阻匹配:驱动器端拨码开关SW5的Terminator需置ON(仅末端设备)
- 接地规范:屏蔽层单端接地(建议接驱动器PE端子)
典型接线示例:
code复制MCGS COM2+ (A) —— ASD-B2 P5S+
MCGS COM2- (B) —— ASD-B2 P5S-
MCGS GND —— ASD-B2 PE(屏蔽层)
2.2 关键参数配置清单
| 设备 | 参数项 | 设定值 | 备注 |
|---|---|---|---|
| ASD-B2 | P1-01 | 2 (Modbus模式) | 必须断电重启生效 |
| P1-02 (站号) | 1 | 范围1-247 | |
| P1-03 (波特率) | 19200 | 需与触摸屏一致 | |
| P1-04 (数据格式) | 3 (8N1) | 无校验位 | |
| MCGS | 通讯波特率 | 19200bps | 设备管理器→COM2设置 |
| 数据位/停止位 | 8/1 | ||
| 校验方式 | None |
特别注意:ASD-B2的P3-05参数(通讯超时)建议设为1000ms,避免因干扰导致驱动器误报警(Err.010)
3. MCGS脚本开发实战
3.1 变量定义规范
在MCGS的实时数据库中建立以下关键变量:
javascript复制// 控制命令字
VAR Servo_Enable : BOOL // 伺服使能
VAR Run_Mode : INT // 0=位置/1=速度/2=扭矩
VAR Target_Pulse : DWORD // 目标位置(单位:脉冲)
VAR Target_Speed : INT // 目标速度(单位:RPM)
// 状态监控
VAR Actual_Position : DWORD // 当前位置反馈
VAR Actual_Speed : INT // 实际转速
VAR Alarm_Code : WORD // 故障代码
3.2 核心通讯协议解析
台达ASD-B2的Modbus寄存器映射表(关键部分):
| 功能码 | 地址(Hex) | 参数说明 | 数据类型 | 读写权限 |
|---|---|---|---|---|
| 03H | 00 10 | 当前位置反馈 | DWORD | R |
| 06H | 00 20 | 目标位置设定 | DWORD | R/W |
| 06H | 00 30 | 运行模式选择 | WORD | R/W |
| 06H | 00 31 | 伺服使能控制 | BIT0 | R/W |
示例:读取当前位置的Modbus指令帧:
code复制01 03 00 10 00 02 CRC16
其中01为站号,03为功能码,0010为起始地址,0002为寄存器数量(连续读2个寄存器)
3.3 运动控制脚本示例
在MCGS的循环脚本中实现位置模式控制:
vbscript复制' 伺服使能序列
If Servo_Enable Then
' 写入控制字(bit0=1)
Modbus.WriteSingleRegister(1, &H0031, 1)
' 设置运行模式为位置控制
Modbus.WriteSingleRegister(1, &H0030, 0)
' 发送目标位置(注意高低字顺序)
Modbus.WriteDoubleWord(1, &H0020, Target_Pulse)
End If
' 实时位置读取(500ms周期)
If SysTime(500) Then
Actual_Position = Modbus.ReadDoubleWord(1, &H0010)
End If
4. 调试技巧与故障排查
4.1 通讯测试方法论
- 基础验证:使用ModScan工具直连伺服驱动器,确认能正常读写参数
- 信号质量检测:
- 用示波器测量RS485差分电压(A-B)
- 正常范围:±1.5V~±5V
- 波形不应出现明显振铃或畸变
- 干扰排查:
- 断开电机动力线测试通讯稳定性
- 检查接地电阻(要求<4Ω)
4.2 典型故障处理表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时 | 波特率不匹配 | 检查P1-03与触摸屏设置 |
| 数据校验错误 | 终端电阻未启用 | 确认末端设备Terminator开关ON |
| 位置控制偏差 | 电子齿轮比设置错误 | 核对P1-44/P1-45参数 |
| 伺服使能无响应 | 急停回路未闭合 | 检查EMG端子与S-ON信号 |
| 偶发通讯中断 | 电源干扰 | 增加磁环或改用光纤隔离器 |
5. 高级功能实现
5.1 多段位置控制
通过MCGS的配方功能实现点位表控制:
- 创建配方数据块:
ini复制[Position1]
Pulse=10000
Speed=500
AccTime=200
[Position2]
Pulse=25000
Speed=800
AccTime=300
- 调用配方执行运动:
vbscript复制' 加载配方项
Recipe.Load("Position1")
' 获取参数并发送
Target_Pulse = Recipe.Current.Pulse
Target_Speed = Recipe.Current.Speed
Modbus.WriteSingleRegister(1, &H0032, Recipe.Current.AccTime) ' 写入加速时间
5.2 状态监控看板设计
推荐使用MCGS的XY曲线控件实现:
- 创建实时趋势图,绑定Actual_Position变量
- 添加游标显示当前位置百分比
- 设置报警区域着色(如超程范围)
- 关键参数仪表盘布局示例:
code复制[使能状态] [当前模式] [故障代码]
[位置反馈] [速度反馈] [扭矩%]
这个方案在半导体分选机上连续运行超过2000小时无通讯故障,实际测试在19200bps波特率下,100ms内可完成位置指令传输+位置反馈读取的全过程。对于需要快速部署的伺服控制场景,这种HMI直连方案能显著降低系统复杂度和成本。
