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

尼得科变频器专营    

变频器,驱动器

联系方式
  • 联系人:姚经理
  • 电话:18520143666
新闻分类
  • 暂无分类
首页 > 新闻中心 > 安川控制器函数调用指令!
新闻中心
安川控制器函数调用指令!
发布时间:2025-09-06        浏览次数:2        返回列表

安川控制器(以应用最广泛的 MP 系列运动控制器 为例,如 MP2300/MP3300,配套编程软件为 MPE720)的函数调用指令,核心围绕 “运动控制(点位 / 轨迹 / 同步)”“I/O 控制”“数据处理”“故障诊断” 四大类,需通过 结构化文本(ST) 或 梯形图(LD) 编程调用,且需遵循安川专用的函数命名规范(多以MC_“运动控制”、IO_“I/O 控制”、DT_“数据处理” 为前缀)。以下按功能分类,整理常用函数的调用格式、参数说明及应用场景,并提供典型示例。

一、核心运动控制函数(最常用,需掌握)

安川 MP 控制器的运动控制函数需基于 “轴组(Axis Group)” 或 “单轴(Axis)” 调用,需先在 MPE720 中配置轴参数(如轴号、电机型号、减速比),再通过函数实现点位运动、速度控制、轨迹插补等功能。

1. 点位运动函数:MC_MoveAbsolute(绝对定位)

  • 功能:控制指定轴 / 轴组移动到绝对坐标位置,支持速度、加速度 / 减速度设置。

  • 调用格式(ST 语言)

    st

    MC_MoveAbsolute(
        Axis        := Axis1,        // 轴/轴组名称(需提前在MPE720中定义,如Axis1为单轴,Group1为轴组)
        Position    := 1000.0,       // 目标绝对位置(单位:mm/deg,与轴参数一致)
        Velocity    := 500.0,        // 运动速度(单位:mm/s/deg/s)
        Acceleration:= 1000.0,       // 加速度(单位:mm/s²/deg/s²)
        Deceleration:= 1000.0,       // 减速度
        Jerk        := 5000.0,       // 加加速度(可选,用于平滑启停,默认0)
        Execute     := TRUE,         // 执行触发(TRUE=开始运动,需边缘触发,建议用上升沿)
        Done        => Done_Flag,    // 完成标志(TRUE=运动到达目标位置)
        Busy        => Busy_Flag,    // 忙标志(TRUE=运动中)
        Error       => Error_Flag,   // 错误标志(TRUE=函数执行错误)
        ErrorID     => Error_Code    // 错误代码(返回具体错误类型,如轴未使能)
    );


  • 关键说明

    • Execute需用 “上升沿触发”(如P_TRIG(Start_Signal)),避免持续为 TRUE 导致重复触发;

    • 运动前需确保轴已 “使能”(通过MC_EnableAxis函数),否则Error会置 1,ErrorID返回 “轴未使能” 代码(如 0x8001)。

  • 应用场景:精密定位场景(如自动化组装线的零件搬运、激光雕刻的定点加工)。

2. 速度控制函数:MC_MoveVelocity(连续速度运动)

  • 功能:控制轴 / 轴组以指定速度持续运动(无目标位置),支持正反转切换,需通过MC_Halt停止。

  • 调用格式(ST 语言)

    st

    MC_MoveVelocity(
        Axis        := Axis1,
        Velocity    := 300.0,        // 目标速度(正=正向,负=反向)
        Acceleration:= 800.0,
        Deceleration:= 800.0,
        Jerk        := 4000.0,
        Execute     := Start_Vel,    // 启动信号(上升沿触发)
        Direction   := TRUE,         // 方向(TRUE=正向,FALSE=反向,也可通过Velocity正负控制)
        Done        => Done_Flag,    // 仅当速度达到目标值时置1(非停止标志)
        Busy        => Busy_Flag,    // TRUE=持续运动中
        Error       => Error_Flag,
        ErrorID     => Error_Code
    );


  • 停止方式:需调用MC_Halt函数(急停或正常停止),示例:

    st

    MC_Halt(
        Axis        := Axis1,
        Deceleration:= 1000.0,       // 停止减速度
        Execute     := Stop_Signal,  // 停止触发(上升沿)
        Done        => Halt_Done,
        Busy        => Halt_Busy,
        Error       => Halt_Error,
        ErrorID     => Halt_ErrCode
    );


  • 应用场景:连续运动场景(如传送带匀速输送、打磨机恒速加工)。

3. 轴使能 / 失能函数:MC_EnableAxis/MC_DisableAxis

  • 功能MC_EnableAxis为轴提供动力使能(电机上电,可接收运动指令);MC_DisableAxis解除使能(电机断电,无法运动),是所有运动函数的前提。

  • MC_EnableAxis调用格式

    st

    MC_EnableAxis(
        Axis        := Axis1,
        Execute     := Enable_Signal, // 使能触发(上升沿)
        Done        => Enable_Done,   // TRUE=使能成功
        Busy        => Enable_Busy,
        Error       => Enable_Error,
        ErrorID     => Enable_ErrCode
    );


  • 关键注意

    • 使能前需确保轴无故障(Axis1.Status无错误码),否则使能失败;

    • 紧急停止时,需先调用MC_Halt停止运动,再调用MC_DisableAxis失能。

二、I/O 控制函数(基础功能,配合运动逻辑)

安川控制器的 I/O 函数用于读取外部传感器信号(如光电开关、限位开关)或控制外部执行器(如电磁阀、指示灯),需先在 MPE720 中配置 I/O 模块(如安川 JEPMC-IO231)的地址映射。

1. 数字输入读取:IO_GetDigitalInput

  • 功能:读取指定 I/O 地址的数字输入信号(如 X0.0 对应外部光电开关),返回TRUE(通)或FALSE(断)。

  • 调用格式(ST 语言)

    st

    // 读取I/O地址"X0.0"(需与MPE720中配置的输入地址一致)
    Photo_Sensor := IO_GetDigitalInput(InputAddress := 16#0000); 
    // 地址说明:X0.0=16#0000,X0.1=16#0001,X1.0=16#0008(按字节/位映射,具体参考I/O模块手册)


  • 应用场景:判断工件是否到位(光电开关信号)、检测机械限位(限位开关信号)。

2. 数字输出控制:IO_SetDigitalOutput

  • 功能:控制指定 I/O 地址的数字输出信号(如 Y0.0 对应电磁阀),设置TRUE(输出 ON)或FALSE(输出 OFF)。

  • 调用格式(ST 语言)

    st

    // 控制I/O地址"Y0.0"(电磁阀),当"Start_Solenoid"为TRUE时输出ON
    IO_SetDigitalOutput(
        OutputAddress := 16#0100,  // Y0.0=16#0100,Y0.1=16#0101,具体参考地址映射
        OutputValue   := Start_Solenoid
    );


  • 关键说明:输出信号需配合运动逻辑(如运动到达目标位置后,触发电磁阀动作)。

三、数据处理与故障诊断函数(优化与调试)

1. 轴位置读取:MC_GetAxisPosition

  • 功能:实时读取指定轴的当前实际位置(反馈位置,非目标位置),用于位置监控或逻辑判断。

  • 调用格式(ST 语言)

    st

    // 读取Axis1的当前位置,存储到"Current_Pos"变量(类型:LREAL,单位与轴一致)
    MC_GetAxisPosition(
        Axis        := Axis1,
        Position    => Current_Pos,  // 输出当前位置
        Error       => Pos_Error,
        ErrorID     => Pos_ErrCode
    );


  • 应用场景:实时显示轴位置、判断是否到达中间位置(如IF Current_Pos > 500.0 THEN ...)。

2. 错误代码读取:MC_GetErrorInfo

  • 功能:当运动函数Error置 1 时,读取详细错误信息(如 “轴过载”“位置偏差超限”),便于调试。

  • 调用格式(ST 语言)

    st

    IF Error_Flag THEN  // 若运动函数报错
        MC_GetErrorInfo(
            Axis        := Axis1,
            ErrorID     := Error_Code,  // 输入错误代码(来自运动函数的ErrorID)
            ErrorString => Error_Msg    // 输出错误描述(如"Axis overload")
        );
    END_IF;


  • 调试建议:将Error_Msg绑定到 HMI 显示,快速定位故障原因(如 “轴未使能” 需检查使能信号)。

四、函数调用典型示例(ST 语言,单轴绝对定位 + 电磁阀控制)

以下示例实现 “轴使能→绝对定位到 1000mm→到位后触发电磁阀→延时 2 秒后复位” 的完整逻辑:

安川MP控制器单轴定位+I/O控制示例代码

V1

创建时间:22:53

五、关键注意事项(避免调用错误)

  1. 轴与轴组配置优先:所有运动函数调用前,必须在 MPE720 的 “轴参数设置” 中完成轴的硬件关联(如电机型号、编码器类型、减速比),否则函数会报 “轴未配置” 错误(ErrorID=0x8000)。

  2. 触发信号需边缘触发:运动函数的Execute参数需用 “上升沿(P_TRIG)” 或 “下降沿(N_TRIG)” 触发,若直接用TRUE(持续高电平),会导致函数重复执行(如MC_MoveAbsolute反复定位)。

  3. 参数单位一致性Position(位置)、Velocity(速度)的单位需与轴参数中设置的 “长度单位”(mm/inch)或 “角度单位”(deg/rad)一致,否则会出现定位偏差(如轴参数设 mm,Position填 1000 即 1000mm)。

  4. 错误处理必加:所有函数需关联ErrorErrorID,并在程序中加入错误处理逻辑(如报错时停止运动、触发报警灯),避免故障扩大(如轴过载时未及时停止,导致电机损坏)。

六、其他常用函数补充

函数名称功能描述适用场景
MC_MoveRelative相对定位(从当前位置移动指定距离)增量式定位(如每次移动 50mm)
MC_MoveCircular圆弧插补(两轴联动,走圆弧轨迹)圆形轨迹加工(如瓶盖切割)
MC_SyncAxis轴同步(如主轴与从轴的速度同步)印刷、包装设备的同步控制
IO_GetAnalogInput读取模拟输入(如电位器电压,用于调速)手动调整运动速度


若你需要某类特定功能(如圆弧插补、轴同步)的函数调用细节,或使用的是安川其他系列控制器(如 Sigma-7 伺服驱动器自带的控制功能),可告诉我具体需求,我会补充对应的函数说明和示例!

    收缩
    • QQ咨询

    • 电话咨询

    • 18520143666
    • 添加微信客服