在工业自动化领域,伺服系统的精准控制一直是产线稳定运行的关键。台达B2系列伺服以其高性价比和稳定性能,在国内中小型自动化项目中占据重要市场份额。而昆仑通态的MCGS组态软件作为国产HMI的佼佼者,其与各类PLC、伺服驱动器的通讯集成能力直接影响工程实施效率。
传统脉冲控制方式需要复杂的接线和参数调试,而采用Modbus RTU协议通过RS485总线实现通讯控制,不仅节省了硬件成本(减少脉冲模块和专用线缆),更实现了:
实测表明,在包装机械、电子装配等典型场景中,Modbus RTU控制方式可使调试时间缩短40%,布线成本降低60%。下面就以MCGS嵌入版7.7为例,详解从硬件连接到脚本编写的全流程实现。
台达B2伺服标配RS485接口(端子为P5-01+/P5-02-),与MCGS触摸屏连接时需注意:
| MCGS端口 | 伺服端子 | 线色标准 |
|---|---|---|
| 485+ | P5-01 | 橙白 |
| 485- | P5-02 | 橙 |
| GND | 外壳螺丝 | 裸铜线 |
关键提示:务必确保所有节点波特率一致,B2伺服默认9600bps(参数P3-00),若修改需同步调整MCGS设备属性。
通过伺服面板设置以下关键参数:
plaintext复制P1-01=2 // 控制模式:Modbus位置控制
P3-00=3 // 通讯波特率:19200(需与HMI一致)
P3-01=1 // 通讯格式:8N1(无校验)
P3-02=1 // 站号设置(范围1-247)
P4-05=100 // Modbus超时时间100ms
参数写入后断电重启生效,此时伺服面板显示"Mb"表示Modbus通讯就绪。
在MCGS工程中新建"设备窗口"
添加"通用串口父设备"并配置:
挂载"Modbus RTU子设备",关键配置:
台达B2的Modbus寄存器采用功能码03H(读保持寄存器),关键地址如下:
| 功能 | 寄存器地址 | 数据类型 | 备注 |
|---|---|---|---|
| 目标位置 | 0x1000 | INT32 | 单位:脉冲 |
| 当前位置 | 0x2000 | INT32 | 只读 |
| 运行速度 | 0x1001 | UINT16 | 单位:RPM |
| 启动控制 | 0x0000 | BIT | 位0:启动/停止 |
| 报警代码 | 0x2100 | UINT16 | 需除10获取实际值 |
在MCGS中建立对应变量:
plaintext复制// 输入型变量(读取伺服状态)
svr_CurrentPos 通道类型:4X寄存器,地址:0x2000,数据类型:长整型
svr_AlarmCode 通道类型:4X寄存器,地址:0x2100,数据类型:整型
// 输出型变量(控制伺服动作)
cmd_TargetPos 通道类型:3X寄存器,地址:0x1000,数据类型:长整型
cmd_RunSpeed 通道类型:3X寄存器,地址:0x1001,数据类型:整型
cmd_StartStop 通道类型:0X线圈,地址:0x0000,数据类型:开关量
在MCGS按钮事件中写入以下脚本实现点动控制:
vb复制Sub btn_JogForward()
// 设置目标位置(相对当前位置+10000脉冲)
cmd_TargetPos = svr_CurrentPos + 10000
// 设置运行速度300RPM
cmd_RunSpeed = 300
// 触发启动(上升沿有效)
cmd_StartStop = 1
Delay(100)
cmd_StartStop = 0
End Sub
通过Modbus广播功能(站号0)实现多轴同步启动:
vb复制Sub btn_AllStart()
// 先设置各轴目标位置(需遍历各站号)
For i = 1 To 3
SetDevice("ModbusRTU", "Station=" & i)
WriteReg(0x1000, 500000) // 统一目标位置
Next
// 广播启动命令
SetDevice("ModbusRTU", "Station=0")
WriteBit(0x0000, 1)
Delay(50)
WriteBit(0x0000, 0)
End Sub
| 故障现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 通讯超时 | 1. 测量485总线AB线电压差(应>1V) 2. 检查终端电阻 3. 监听原始数据帧 |
调整波特率/增加延时 |
| 数据错乱 | 1. 确认站号冲突 2. 检查寄存器地址偏移量 |
修改P3-02站号 |
| 偶发丢包 | 1. 检查屏蔽层接地 2. 观察电源干扰 |
加装磁环/改用光纤转换器 |
vb复制Function SafeWriteReg(addr, value, retry)
For i = 1 To retry
If WriteReg(addr, value) = 0 Then Exit For
Delay(50)
Next
End Function
通过修改P1-44/P1-45寄存器实现传动比在线调整:
vb复制// 将电子齿轮比改为2:1
WriteReg(0x1044, 2) // 分子
WriteReg(0x1045, 1) // 分母
构建多段速控制逻辑:
vb复制Sub RunMultiStep()
// 阶段1:低速启动
cmd_RunSpeed = 100
cmd_StartStop = 1
WaitUntil(svr_CurrentPos > 5000)
// 阶段2:高速运行
cmd_RunSpeed = 500
WaitUntil(svr_CurrentPos > 20000)
// 阶段3:减速停止
cmd_RunSpeed = 50
WaitUntil(svr_CurrentPos >= 30000)
cmd_StartStop = 0
End Sub
实际项目中,建议在伺服端设置软限位(P2-10/P2-11)作为双重保护。通过MCGS的报警组件,还可以实现运行异常时的自动停机并记录故障快照,这对无人值守产线尤为重要。