返回主站|会员中心|保存桌面

台达专营服务商    

变频器、PLC、触摸屏、伺服驱动器

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > CANopen 总线版本的台达电缸定位程序(绝对定位 + 回零)!
新闻中心
CANopen 总线版本的台达电缸定位程序(绝对定位 + 回零)!
发布时间:2026-10-18        浏览次数:2        返回列表

硬件:AS228R + AS-FCOPM CANopen 主站卡 + ASDA-A2-M(CANopen 伺服驱动器,驱动线性电缸),ISPSoft 编程,DS402 标准 CANopen 运动协议。 电缸:丝杆电缸,行程 0~200mm;丝杆导程 5mm,电机一圈 = 移动 5mm。 站号:伺服 NodeID=1,波特率 1Mbps。

一、伺服驱动器预先参数(ASDA-A2-M)

P1-01 = 1 :控制来源:通讯(CANopen)
P3-00 = 1 :CANopen节点ID=1
P3-01 = 0403H:波特率1Mbps
P5-04:回零模式(示例:17H,负向寻找原点开关,离开原点开关后Z相锁定零点,根据机械调整)
P1-44:Profile速度,P1-45:加减速;
P2-69:增量编码器=0;绝对值编码器=1(需电池盒)

接线:原点传感器接到伺服 DI,硬限位 POT/NOT 接入伺服 DI

二、ISPSoft CANopen 网络配置

  1. 硬件 HWCONFIG:添加 AS-FCOPM CANopen 主站卡

  2. COMMGR / CANopen Builder 导入 A2-M EDS 文件,添加从站 Node1

  3. 单位换算: 电机一圈 1280000 pulse,导程 5mm 1mm = 1280000 /5 = 256000 PUU

程序写位置直接填 PUU,或者用浮点数做 mm 换算。

三、使用指令说明

  1. INITC:CANopen 网络初始化,指定总轴数量

  2. ASDON:伺服使能(Servo ON)

  3. ZRNM:启动回原点(DS402 Homing Mode)

  4. ZRNC:回原点完成确认

  5. DDRVA:CANopen 绝对定位指令(AS 系列 CANopen 专用,目标位置 PUU,速度 PUU/s)

  6. 系统标志位: SM1681:CANopen 初始化完成;SM1682:网络异常; SM1600:轴 1 伺服就绪;SM1601:轴 1 运动中;SM1602:轴 1 定位完成;SM1603:轴 1 报警

变量分配

  • M0:CANopen 初始化触发

  • M1:伺服使能 ON

  • M2:回原点启动按钮

  • M3:绝对定位触发(移动到 100mm 位置)

  • M10:轴故障复位

  • D0:目标位置 PUU;D1:定位速度 PUU/s

  • D100:轴 1 当前位置 PUU(CANopen 读取)

四、ST 语言完整程序(ISPSoft ST,推荐;也可转梯形图)

//=====================
// 1. CANopen总线初始化
//=====================
IF M0 THEN
   INITC(S1:=1); //S1=网络伺服轴数量=1
END_IF;

//=====================
// 2. 伺服使能 Servo ON
//=====================
IF SM1681 AND M1 THEN //初始化完成,使能触点ON
   ASDON(S1:=1, S2:=1); //S1=站号1;S2=1=伺服ON
ELSE
   ASDON(S1:=1, S2:=0); //OFF
END_IF;

//=====================
// 3. 回原点 ZRNM 回零指令(DS402 Homing)
//=====================
IF SM1600 AND M2 AND NOT SM1601 THEN //伺服就绪、回零触发、不在运动
   ZRNM(S1:=1); //启动Node1轴回原点
END_IF;
IF ZRNC(S1:=1) THEN //ZRNC读取回原点状态
   M100_HomeDone := TRUE; //回原点完成标志
ELSE
   M100_HomeDone := FALSE;
END_IF;

//=====================
// 4. 绝对定位 DDRVA(CANopen绝对定位)
//=====================
//目标:100mm → D0 = 100 * 256000 = 25600000 PUU
D0 := 25600000;
D1 := 1280000; //速度:电机1r/s → 5mm/s

IF M100_HomeDone AND M3 AND NOT SM1601 THEN //回零完成 + 定位触发 + 轴静止
   DDRVA(S1:=1, S2:=D0, S3:=D1); //S1站号;S2目标位置PUU;S3速度
END_IF;

//读取当前实时位置
CANRD(S1:=1, S2:=16#6064, S3:=D100); //读DS402对象6064h,实际位置

//故障复位
IF M10 THEN
   CANWR(S1:=1, S2:=16#6040, S3:=16#0080); //控制字故障复位
END_IF;

五、梯形图逻辑流程简述

M0 触发 INITC → SM1681=ON

  1. M1 接通 → ASDON 使能伺服,SM1600=ON(伺服就绪)

  2. M2 回零按钮 → ZRNM 启动回原点;电缸按 P5-04 设定模式寻找原点,碰到原点开关后 Z 相锁定零点;ZRNC=ON 代表原点建立完成

  3. M3 定位按钮(必须原点完成 M100_HomeDone=1 才允许执行)→ DDRVA 执行绝对定位,走到 D0 设定的 PUU 位置,SM1602=ON,定位完成。

六、安全联锁

//硬限位联锁,一旦触发,禁止运动
IF (I0.0=ON OR I0.1=ON) THEN
   ASDON(S1:=1,S2:=0); //伺服OFF
   M3:=FALSE;
   M2:=FALSE;
END_IF;

//急停
IF I0.2=ON THEN
   ASDON(S1:=1,S2:=0);
END_IF;

七、重要注意事项

  1. 增量编码器电缸:每次上电必须回原点;绝对值编码器(带电池盒)上电可直接读绝对位置,不需要每次回零。

  2. 单位换算:DDRVA 的目标是 PUU 脉冲单位,不是毫米;HMI 画面上显示 mm,程序做浮点数换算:Real_Pos_mm := D100 / 256000.0;

  3. DS402 状态机:伺服会经过 Switch On Disabled → Ready → Switched On → Operation Enable,ASDON 指令内部处理状态字 6040h。

  4. 软限位:伺服驱动器 P5-12/P5-13 设置行程上下限;硬限位 DI 接入伺服驱动器,硬件切断运动,PLC 程序做双重保护。

  5. 总线终端电阻:CAN 总线两端(PLC 侧 + 最后一台伺服)接入 120Ω 终端电阻,防止通讯抖动。

八、动作时序逻辑

上电 → M0 初始化 CANopen → M1 伺服使能 → M2 回原点(电缸搜寻原点)→ 原点完成标志置 ON → M3 触发绝对定位,电缸移动至设定位置,定位完成。

九、可选扩展

  • 增加 JOG 点动指令 JOGM

  • 增加扭矩限幅,做压装力控

  • 多轴扩展:Node2、Node3,最多 8 轴 CANopen 总线。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服