本帖介绍如何使用配置使用英威腾AX系列PLC本体上的IO的使用方法
一、输出点配置
输出端口可以设置为 3 种功能,分别是:普通输出功能、高速脉冲输出功能和比较输出功能,可以通过配置Out0_Confguer来配置输出点,如下图所示,通过对对应变量赋值来对输出点的功能配置。
当端口配置为0时,做普通io使用;当端口配置为1时,做输出做高速脉冲输出使用;当端口配置为2时做比较输出功能使用。
二、功能块使用
以下时英威腾脉冲功能块的说明
三、例程
PROGRAM HSIO_shuchu
VAR
//功能块
MC_InitSys_Invt_0 : MC_InitSys_Invt; //轴初始化定义
MC_Axis_0 : MC_Axis; //输出通道轴定义,轴名称
MC_Power_Invt_0 : MC_Power_Invt; //轴使能
MC_MoveVelocity_Invt_0:MC_MoveVelocity_Invt;//轴运动
MC_Stop_Invt_0 : MC_Stop_Invt; //轴停止
MC_Reset_Invt_0 : MC_Reset_Invt; //轴复位
MC_SendData_Invt_0 : MC_SendData_Invt; //数据输出
MC_ReadStatus_Invt_0: MC_ReadStatus_Invt;//轴状态
//变量
Enable_power : BOOL; //轴使能
Enable_Move : BOOL; //轴运动
Enable_stop : BOOL; //轴停止
Enable_reset : BOOL; //轴复位
Enable_Status : BOOL; //轴状态
Pluse_velocity : UDINT; //轴下发脉冲速度
velocity1 : UDINT; //下发转速
END_VAR
//输出通道配置完成后,库管理器调用 高速计数功能块库 CmpHSIO_C.library和 运动控制功能块库 CmpHSIO_M.library
//轴初始化定义
MC_InitSys_Invt_0(
Mode:= TRUE, //TRUE脉冲型,FAlSE非脉冲型
Period:= 4, //运行周期,需要和任务周期Task保持一致
Done=> , //初始化完成信号
Error=> , //错误
ErrorID=> ); //功能块错误码
//输出通道轴定义
MC_Axis_0(
AxisID:= 0, //输出通道选择,YO脉冲输出,Y1方向输出,禁止重复定义
MaxVelocity:=5000 , //输出最大速度,默认5000mm/min
MaxAcceleration:=180000 , //输出最大加速度,默认180 0000
MaxHomeSpeed:= , //输出最大回零速度,默认值3000mm/min
MaxVim2Speed:= , //当前轴第二阶段最大回零速度,默认值20mm/min,可选择默认值不填写
MaxVim1Speed:= , //当前轴第一阶段最大回零速度,默认值200mm/min,可选择默认值不填写
MaxJogSpeed:= , //输出最大手动速度,默认值5000mm/min
LimitEnable:= , //软限位使能标志,TRUE软限位开启,FAlSE软限位关闭,可选择默认值不填写
MaxPLimit:= , //当前轴最大正限位位置,默认值9999999999.99,可选择默认值不填写
MaxNLimit:= , //当前轴最大负限位位置,默认值-9999999999.99,可选择默认值不填写
PulseData:=10000 , //转动一圈脉冲数,需与伺服内部参数保持一致
DistanceData:= 10, //轴转动一圈周长
MaxJerkTime:= , //当前轴最大允许加速度变化时间,默认值100,可选择默认值不填写
Mode:= 0, //轴脉冲控制方式(0:脉冲+方向,1:正反转, 2:正交)
Error=> ,
ErrorID=> );
//轴使能
MC_Power_Invt_0(
Axis:= MC_Axis_0, //调用轴定义名称,对应输出通道Y0,Y1
Enable:= Enable_power, //轴使能,高电平有效
AxisError:= FALSE, //TRUE轴报警,FAlSE轴未报警
AxisEnable:= MC_InitSys_Invt_0.Done, //轴初始化是否完成
Status=> ,
Valid=> , //TRUE轴使能有效,FAlSE轴使能无效
Busy=> ,
Error=> ,
ErrorID=> );
//轴运动
MC_MoveVelocity_Invt_0(
Axis:= MC_Axis_0, //调用轴定义名称,对应输出通道Y0,Y1
Enable:= Enable_Move, //轴运行,上升沿触发
Direction:= TRUE, //轴运行方向
Velocity:= 100, //轴运行速度,运行单位mm/min
Acceleration:=10000 , //加速度大小
JerkTime:= 10, //允许加速度变化时间
InVelocity=> ,
Busy=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
//轴停止
MC_Stop_Invt_0(
Axis:= MC_Axis_0, //调用轴定义名称,对应输出通道Y0,Y1
Enable:= Enable_stop, //轴运行,上升沿触发
Deceleration:=100000 , //减速度大小
Mode:=FALSE , //TRUE减速停,FAlSE立即停止
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );
//轴复位
MC_Reset_Invt_0(
Axis:= MC_Axis_0, //调用轴定义名称,对应输出通道Y0,Y1
Enable:= Enable_reset, //轴复位,上升沿触发
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );