安川控制器(以应用最广泛的 MP 系列运动控制器 为例,如 MP2300/MP3300,配套编程软件为 MPE720)的函数调用指令,核心围绕 “运动控制(点位 / 轨迹 / 同步)”“I/O 控制”“数据处理”“故障诊断” 四大类,需通过 结构化文本(ST) 或 梯形图(LD) 编程调用,且需遵循安川专用的函数命名规范(多以MC_
“运动控制”、IO_
“I/O 控制”、DT_
“数据处理” 为前缀)。以下按功能分类,整理常用函数的调用格式、参数说明及应用场景,并提供典型示例。
安川 MP 控制器的运动控制函数需基于 “轴组(Axis Group)” 或 “单轴(Axis)” 调用,需先在 MPE720 中配置轴参数(如轴号、电机型号、减速比),再通过函数实现点位运动、速度控制、轨迹插补等功能。
功能:控制指定轴 / 轴组移动到绝对坐标位置,支持速度、加速度 / 减速度设置。
调用格式(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 // 错误代码(返回具体错误类型,如轴未使能)
);
关键说明:
应用场景:精密定位场景(如自动化组装线的零件搬运、激光雕刻的定点加工)。
功能:控制轴 / 轴组以指定速度持续运动(无目标位置),支持正反转切换,需通过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
);
应用场景:连续运动场景(如传送带匀速输送、打磨机恒速加工)。
功能: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
);
关键注意:
安川控制器的 I/O 函数用于读取外部传感器信号(如光电开关、限位开关)或控制外部执行器(如电磁阀、指示灯),需先在 MPE720 中配置 I/O 模块(如安川 JEPMC-IO231)的地址映射。
功能:读取指定 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模块手册)
应用场景:判断工件是否到位(光电开关信号)、检测机械限位(限位开关信号)。
功能:控制指定 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
);
关键说明:输出信号需配合运动逻辑(如运动到达目标位置后,触发电磁阀动作)。
功能:实时读取指定轴的当前实际位置(反馈位置,非目标位置),用于位置监控或逻辑判断。
调用格式(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 ...
)。
功能:当运动函数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 显示,快速定位故障原因(如 “轴未使能” 需检查使能信号)。
以下示例实现 “轴使能→绝对定位到 1000mm→到位后触发电磁阀→延时 2 秒后复位” 的完整逻辑:
安川MP控制器单轴定位+I/O控制示例代码
V1
创建时间:22:53
轴与轴组配置优先:所有运动函数调用前,必须在 MPE720 的 “轴参数设置” 中完成轴的硬件关联(如电机型号、编码器类型、减速比),否则函数会报 “轴未配置” 错误(ErrorID=0x8000
)。
触发信号需边缘触发:运动函数的Execute
参数需用 “上升沿(P_TRIG
)” 或 “下降沿(N_TRIG
)” 触发,若直接用TRUE
(持续高电平),会导致函数重复执行(如MC_MoveAbsolute
反复定位)。
参数单位一致性:Position
(位置)、Velocity
(速度)的单位需与轴参数中设置的 “长度单位”(mm/inch)或 “角度单位”(deg/rad)一致,否则会出现定位偏差(如轴参数设 mm,Position
填 1000 即 1000mm)。
错误处理必加:所有函数需关联Error
和ErrorID
,并在程序中加入错误处理逻辑(如报错时停止运动、触发报警灯),避免故障扩大(如轴过载时未及时停止,导致电机损坏)。
函数名称 | 功能描述 | 适用场景 |
---|
MC_MoveRelative | 相对定位(从当前位置移动指定距离) | 增量式定位(如每次移动 50mm) |
MC_MoveCircular | 圆弧插补(两轴联动,走圆弧轨迹) | 圆形轨迹加工(如瓶盖切割) |
MC_SyncAxis | 轴同步(如主轴与从轴的速度同步) | 印刷、包装设备的同步控制 |
IO_GetAnalogInput | 读取模拟输入(如电位器电压,用于调速) | 手动调整运动速度 |
若你需要某类特定功能(如圆弧插补、轴同步)的函数调用细节,或使用的是安川其他系列控制器(如 Sigma-7 伺服驱动器自带的控制功能),可告诉我具体需求,我会补充对应的函数说明和示例!