博文

台达DVP15-50MC之FB_AxisBasicControl

约 1 分钟

#前言

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

FB_AxisBasicControl(轴基本控制) #正文 - FB_AxisBasicControl


新建-功能块-FB_AxisBasicControl

##变量声明

范围名称地址数据类型初始值注释
VARuMC_PowerMC_Power
VARuMC_HomeMC_Home
VARuMC_StopMC_Stop
VARuMC_ResetMC_Reset
VARuMC_MoveRelativeMC_MoveRelative
VARuMC_MoveAbsoluteMC_MoveAbsolute
VARuMC_ReadAxisErrorMC_ReadAxisError
VARuMC_ReadStatusMC_ReadStatus
VARuMC_SetOverrideMC_SetOverride
VARuDMC_JogDMC_Jog
VARuDMC_MoveVelocityDMC_MoveVelocity
VAR_INPUTUsiAxisNumberUSINT

##程序内容

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

###变量声明

范围名称地址数据类型初始值注释
VARActionAxisBasicControlARRAY[1..7] OF FB_AxisBasicControl
VARUsiAxisNumberUSINT
###程序调用

//给定轴编号
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 发布本文

相关阅读

← 返回博文列表