实现 SV-PLC(台达 SV 系列 PLC)与 ASDA-A2(台达 A2 系列伺服驱动器)的 485 通讯,核心是完成硬件接线、PLC 端参数配置、通讯指令编写、伺服端参数设置这四步,我会结合台达官方规范,给出从接线到调试的完整可落地方案,确保通讯稳定且满足控制需求。
一、核心前提与通讯基础
1. 通讯协议与参数(必须统一)
2. 硬件接口说明
二、第一步:硬件接线(关键,避免接反)
1. 接线规范
2. 接线检查
三、第二步:ASDA-A2 伺服参数设置(必须重启生效)
通过伺服面板或调试软件(ASDA-Soft)修改以下参数,确保与 PLC 通讯参数匹配:
| 参数号 | 参数名称 | 设置值 | 说明 |
|---|---|---|---|
| P1-00 | 通讯协议选择 | 1 | 0 = 脉冲指令,1=Modbus RTU(485) |
| P1-01 | 从机地址 | 1(可改) | 多伺服时需设不同地址(如 1/2/3...) |
| P1-02 | 波特率 | 1 | 0=4800,1=9600,2=19200,3=38400 |
| P1-03 | 数据位 + 校验位 | 0 | 0=8N1(8 位数据 + 无校验 + 1 停止位),核心匹配项 |
| P1-04 | 通讯超时时间 | 0 | 0 = 无超时,非 0 则超时后报警(新手先设 0) |
设置完成后,重启伺服驱动器使参数生效。
四、第三步:SV-PLC 参数配置(GX Works/ISPSoft)
以台达 ISPSoft 编程软件为例,配置 PLC 的 485 通讯口参数:
1. 打开通讯参数设置
2. 程序下载前确认
五、第四步:PLC 程序编写(Modbus RTU 指令)
台达 SV-PLC 提供专用的 Modbus RTU 指令(MBUS_MSG/MBUS_INIT),以下是核心程序示例(实现 “读取伺服转速”+“写入定位指令”):
1. 程序框架(梯形图)
ladder
// 第一步:初始化Modbus RTU通讯(仅上电执行一次) LD M0(初始化脉冲,PLC上电第一个扫描周期ON) MBUS_INIT EN=1, MODE=0, BAUD=9600, PARITY=0, DATA_BIT=8, STOP_BIT=1, PORT=1, DONE=M100, ERROR=D100 // MODE=0:主机模式;PORT=1:RS-485端口;M100=1表示初始化完成;D100=0表示无错误 // 第二步:读取ASDA-A2的实际转速(伺服地址1,寄存器地址H2000,读取1个字) LD X0(读取触发按钮) MBUS_MSG EN=1, FIRST=1, SLAVE=1, RW=0, ADDR=H2000, LEN=1, DATA=D200, DONE=M101, ERROR=D101 // RW=0:读取;ADDR=H2000:伺服实际转速寄存器;DATA=D200:读取结果存D200;M101=1表示读取完成 // 第三步:写入定位指令(伺服地址1,寄存器地址H1000,写入目标位置D300) LD X1(写入触发按钮) MBUS_MSG EN=1, FIRST=1, SLAVE=1, RW=1, ADDR=H1000, LEN=1, DATA=D300, DONE=M102, ERROR=D102 // RW=1:写入;ADDR=H1000:伺服目标位置寄存器;DATA=D300:写入值;M102=1表示写入完成 // 第四步:错误处理(通讯失败报警) LD D100<>0 OR D101<>0 OR D102<>0 OUT Y0(报警指示灯)
2. 关键寄存器说明(ASDA-A2 Modbus 地址)
| 功能 | 寄存器地址(16 进制) | 读写属性 | 说明 |
|---|---|---|---|
| 实际转速 | H2000 | 只读 | 单位:rpm,范围 - 3000~3000 |
| 目标位置 | H1000 | 可写 | 单位:脉冲数,需匹配电子齿轮比 |
| 伺服使能 | H1001 | 可写 | 1 = 使能,0 = 禁用 |
| 定位启动 | H1002 | 可写 | 1 = 启动定位,0 = 停止 |
| 伺服状态 | H2001 | 只读 | bit0 = 就绪,bit1 = 定位完成,bit2 = 报警 |
六、调试步骤与故障排查
1. 调试流程
2. 常见故障排查
| 故障现象 | 原因 | 解决方法 |
|---|---|---|
| 初始化失败(D100≠0) | 通讯端口参数不匹配、接线错误 | 核对 PLC 通讯参数(波特率 / 校验位),检查 485 A/B 是否接反 |
| 读取无数据(D200=0) | 伺服地址错误、寄存器地址错误 | 确认伺服 P1-01=1,寄存器地址改为十进制(H2000=8192) |
| 写入无效 | 伺服未使能、写入地址无权限 | 先写入 H1001=1 使能伺服,确认寄存器为可写属性 |
| 通讯不稳定 | 干扰、终端电阻未接 | 通讯线屏蔽层接地,加 120Ω 终端电阻,远离动力线 |


