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

诺迪思综合服务商    

微型隔膜阀|耐腐蚀隔膜阀|电磁阀|小型液泵|自锁阀

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > 三菱FX1S系列PLC控制两个伺服电机的编程实例!
新闻中心
三菱FX1S系列PLC控制两个伺服电机的编程实例!
发布时间:2025-10-05        浏览次数:1        返回列表

以下是三菱 FX1S 系列 PLC 通过FX2N-2PG 双轴脉冲模块控制两个伺服电机的编程实例,包含核心逻辑梯形图及注释,实现 “双轴独立定位控制” 功能(如 1 号轴正转定位、2 号轴反转定位,带限位保护和急停)。

一、控制需求

  1. 输入信号

    • X0:急停按钮(常闭,按下断开)

    • X1:1 号轴负限位开关(常闭,超程断开)

    • X2:1 号轴正限位开关(常闭,超程断开)

    • X3:2 号轴负限位开关(常闭,超程断开)

    • X4:2 号轴正限位开关(常闭,超程断开)

    • X10:1 号轴启动按钮(常开,按下启动)

    • X11:2 号轴启动按钮(常开,按下启动)

    • X12:系统复位按钮(常开,清除报警)

  2. 输出信号

    • Y0~Y3:FX2N-2PG 模块占用(脉冲 / 方向信号,无需 PLC 程序直接控制)

    • Y10:伺服使能(同时控制两个驱动器 SON 端子)

    • Y20:报警指示灯(故障时亮)

  3. 动作逻辑

    • 按下 X10,1 号轴以 5kHz 频率正向运行 20000 脉冲(相对定位),到位后停止;

    • 按下 X11,2 号轴以 8kHz 频率反向运行 15000 脉冲(相对定位),到位后停止;

    • 急停(X0 断开)或限位触发(X1/X2/X3/X4 断开)时,立即停止所有轴并报警;

    • 报警后需按 X12 复位,才能重新启动。

二、FX2N-2PG 模块核心参数(BFM 地址)

功能1 号轴(CH1)BFM 地址2 号轴(CH2)BFM 地址设定说明(示例)
定位模式BFM#100BFM#110K0 = 相对定位;K1 = 绝对定位
脉冲频率(Hz)BFM#101BFM#1111 号轴设 K5000;2 号轴设 K8000
脉冲数(低 16 位)BFM#102BFM#1121 号轴 K20000;2 号轴 K15000
脉冲数(高 16 位)BFM#103BFM#113脉冲数≤65535 时设 K0
方向设定BFM#104BFM#1141 号轴 K0 = 正向;2 号轴 K1 = 反向
启动 / 停止BFM#105BFM#115K1 = 启动;K0 = 停止
状态反馈BFM#200BFM#210BIT0=1 = 定位完成;BIT1=1 = 限位报警;BIT2=1 = 故障

三、梯形图程序(核心逻辑)

1. 初始化与使能控制

plaintext

|----[X0]----+----[X12]----(M0)----|  // M0=系统正常(急停未触发+无报警)
             |                       // X0急停闭合时M0才可能ON
|----[M0]----(Y10)----|  // 系统正常时,伺服使能Y10输出(驱动器SON得电)

2. 1 号轴控制逻辑

plaintext

// ① 写入1号轴定位参数(仅在未运行且无报警时执行)
|----[X10]----+----[M0]----+----[NOT M10]----(M1)----|  // M1=1号轴启动请求
             |             |                         
// 写入定位模式(相对定位)
|----[M1]----(TO K0 K100 D0 K1)----|  // D0=K0(BFM#100=K0)
// 写入脉冲频率(5kHz)
|----[M1]----(TO K0 K101 D1 K1)----|  // D1=K5000(BFM#101=K5000)
// 写入脉冲数(低16位20000)
|----[M1]----(TO K0 K102 D2 K1)----|  // D2=K20000(BFM#102=K20000)
// 写入脉冲数(高16位0)
|----[M1]----(TO K0 K103 D3 K1)----|  // D3=K0(BFM#103=K0)
// 写入方向(正向)
|----[M1]----(TO K0 K104 D4 K1)----|  // D4=K0(BFM#104=K0)

// ② 启动1号轴(参数写入完成后)
|----[M1]----+----[T0 K10]----(M10)----|  // T0延时100ms确保参数写入,M10=1号轴运行中
             |                           
|----[M10]---(TO K0 K105 D5 K1)----|  // D5=K1(BFM#105=K1,启动脉冲输出)

// ③ 读取1号轴状态(定位完成/报警)
|----[M10]------------------------(FROM K0 K200 D10 K1)----|  // 读BFM#200到D10
|----[D10.0]----+----[NOT M10]----(M11)----|  // D10.0=1(定位完成),M11=1号轴完成
                |                           
|----[D10.1 OR D10.2]----(M12)----|  // D10.1=限位报警,D10.2=故障,M12=1号轴报警

// ④ 1号轴停止条件(完成/报警/急停)
|----[M11 OR M12 OR NOT M0]----+----(RST M10)----|  // 停止时复位运行标志
                               |                   
|----[M11 OR M12]--------------(TO K0 K105 D6 K1)----|  // D6=K0(BFM#105=K0,停止脉冲)

3. 2 号轴控制逻辑(与 1 号轴类似,地址偏移 10)

plaintext

// ① 写入2号轴定位参数
|----[X11]----+----[M0]----+----[NOT M20]----(M2)----|  // M2=2号轴启动请求
             |             |                         
|----[M2]----(TO K0 K110 D20 K1)----|  // D20=K0(BFM#110=相对定位)
|----[M2]----(TO K0 K111 D21 K1)----|  // D21=K8000(BFM#111=8kHz)
|----[M2]----(TO K0 K112 D22 K1)----|  // D22=K15000(BFM#112=15000脉冲)
|----[M2]----(TO K0 K113 D23 K1)----|  // D23=K0(BFM#113=0)
|----[M2]----(TO K0 K114 D24 K1)----|  // D24=K1(BFM#114=反向)

// ② 启动2号轴
|----[M2]----+----[T1 K10]----(M20)----|  // T1延时100ms,M20=2号轴运行中
             |                           
|----[M20]---(TO K0 K115 D25 K1)----|  // D25=K1(BFM#115=启动)

// ③ 读取2号轴状态
|----[M20]------------------------(FROM K0 K210 D30 K1)----|  // 读BFM#210到D30
|----[D30.0]----+----[NOT M20]----(M21)----|  // M21=2号轴完成
                |                           
|----[D30.1 OR D30.2]----(M22)----|  // M22=2号轴报警

// ④ 2号轴停止条件
|----[M21 OR M22 OR NOT M0]----+----(RST M20)----|  
                               |                   
|----[M21 OR M22]--------------(TO K0 K115 D26 K1)----|  // D26=K0(停止脉冲)

4. 报警与复位逻辑

plaintext

// 报警触发(急停/1号轴报警/2号轴报警)
|----[NOT X0 OR M12 OR M22]----(M50)----|  // M50=系统报警
|----[M50]----(Y20)----|  // 报警灯Y20亮

// 报警复位(按X12且急停正常)
|----[X12]----+----[X0]----(RST M50)----|  // 复位报警标志
              |                          
|----[X12]----(RST M12)----(RST M22)----|  // 清除轴报警标志

四、数据寄存器初始化(D 区设定)

在程序开头通过初始化脉冲(M8002)设置参数值:

plaintext

|----[M8002]----(MOV K0 D0)----(MOV K5000 D1)----(MOV K20000 D2)----|
|----(MOV K0 D3)----(MOV K0 D4)----(MOV K1 D5)----(MOV K0 D6)----|  // 1号轴参数
|----(MOV K0 D20)----(MOV K8000 D21)----(MOV K15000 D22)----|
|----(MOV K0 D23)----(MOV K1 D24)----(MOV K1 D25)----(MOV K0 D26)----|  // 2号轴参数

五、关键说明

  1. FROM/TO 指令格式TO K0 K100 D0 K1 表示 “向模块号 0 的 BFM#100 写入 D0 的值,长度 1”;FROM K0 K200 D10 K1 表示 “从模块号 0 的 BFM#200 读取值到 D10,长度 1”。

  2. 延时控制(T0/T1):确保参数写入模块后再启动脉冲输出,避免因参数未生效导致定位错误。

  3. 状态位读取:通过D10.0(1 号轴完成)、D30.0(2 号轴完成)判断动作结束,通过D10.1/D10.2D30.1/D30.2检测故障。

  4. 抗干扰:程序中加入 “运行中禁止重复启动”(NOT M10/NOT M20),避免误操作。

此实例可直接用于 FX1S+FX2N-2PG 的双伺服控制场景,根据实际需求修改脉冲数、频率、方向等参数即可。调试时建议先单轴测试,确认无丢脉冲后再联动运行。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服