台达DVP15/50MC之FB_AxisBasicControl

前言


台达的DVP15/50MC作为配合台达下位驱动器的运动控制器,在近两年来有一定的市场使用率。今天笔者带来笔者常用到的一个自己搭建的功能块

FB_AxisBasicControl(轴基本控制)

正文 - FB_AxisBasicControl


新建-功能块-FB_AxisBasicControl

变量声明


范围 名称 地址 数据类型 初始值 注释
VAR uMC_Power MC_Power
VAR uMC_Home MC_Home
VAR uMC_Stop MC_Stop
VAR uMC_Reset MC_Reset
VAR uMC_MoveRelative MC_MoveRelative
VAR uMC_MoveAbsolute MC_MoveAbsolute
VAR uMC_ReadAxisError MC_ReadAxisError
VAR uMC_ReadStatus MC_ReadStatus
VAR uMC_SetOverride MC_SetOverride
VAR uDMC_Jog DMC_Jog
VAR uDMC_MoveVelocity DMC_MoveVelocity
VAR_INPUT UsiAxisNumber USINT

程序内容


uMC_Power(EN:=TRUE ,Axis:= UsiAxisNumber,BufferMode:= mcAborting,);
uMC_Home(EN:= TRUE,Axis:= UsiAxisNumber,BufferMode:= mcAborting);
uMC_Stop(EN:= TRUE,Axis:= UsiAxisNumber);
uMC_Reset(EN:= TRUE,Axis:= UsiAxisNumber);
uMC_MoveRelative(EN:= TRUE,Axis:= UsiAxisNumber,BufferMode:= mcAborting);
uMC_MoveAbsolute(EN:= TRUE,Axis:= UsiAxisNumber,BufferMode:= mcAborting);
uMC_SetOverride(EN:= TRUE,Axis:= UsiAxisNumber);
uMC_ReadAxisError(EN:= TRUE,Axis:= UsiAxisNumber,Enable:= TRUE);    
uMC_ReadStatus(EN:= TRUE,Axis:= UsiAxisNumber,Enable:= TRUE );
uMC_ReadActualPosition(EN:= TRUE ,Axis:= UsiAxisNumber,Enable:= TRUE);
uDMC_Jog(Axis:= UsiAxisNumber);
uDMC_MoveVelocity(Axis:= UsiAxisNumber,BufferMode:= mcAborting);

复制上面的变量和程序到功能块就可以了。

功能块的调用


新建-程序-Pro_Main

变量声明


范围 名称 地址 数据类型 初始值 注释
VAR ActionAxisBasicControl ARRAY[1..7] OF FB_AxisBasicControl
VAR UsiAxisNumber USINT

程序调用


//给定轴编号
ActAxisBasicControl[1].UsiAxisNumber            := 1 ;
//调用功能块下的变量对应的引脚
ActAxisBasicControl[1].uMC_Power.Enable         := bAxisEnable ;
ActAxisBasicControl[1].uMC_Power.EnablePositive := bAxisEnable ;
ActAxisBasicControl[1].uMC_Power.EnableNegative := bAxisEnable ;
//调用功能块
ActAxisBasicControl[1]();

通过上面的程序就可以明白了当建立对应功能块之后的多重复用在程序搭建上的便利,尤其是在多轴的情况下。

结尾


本文作为抛砖作用,希望更多的使用台达的同行多多交流。(本文使用软件版本是Canopen Builder V6.04)
Log:
2019.10.05 发布本文

你可能感兴趣的:(台达DVP15/50MC之FB_AxisBasicControl)