本帖介绍如何使用配置使用英威腾AX系列PLC本体上的IO的使用方法

一、输出点配置

输出端口可以设置为 3 种功能,分别是:普通输出功能、高速脉冲输出功能和比较输出功能,可以通过配置Out0_Confguer来配置输出点,如下图所示,通过对对应变量赋值来对输出点的功能配置。

当端口配置为0时,做普通io使用;当端口配置为1时,做输出做高速脉冲输出使用;当端口配置为2时做比较输出功能使用。


image.png 

image.png


二、功能块使用

    以下时英威腾脉冲功能块的说明

image.png

image.png

 三、例程

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=> );