倍福TwinCATKL2541配置实例.docx
- 文档编号:28633158
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:9
- 大小:17.81KB
倍福TwinCATKL2541配置实例.docx
《倍福TwinCATKL2541配置实例.docx》由会员分享,可在线阅读,更多相关《倍福TwinCATKL2541配置实例.docx(9页珍藏版)》请在冰豆网上搜索。
倍福TwinCATKL2541配置实例
倍福TwinCATKL2541配置实例
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
倍福TwinCATKL2541配置实例
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程,具体概念、参数和调试方法没有详细说明,大家可参阅XX文库中的文章《TwinCAT_NC_PTP_运动控制详解V14》,其中有详尽的讲解。
本例中,硬件配置如下,无编码器反馈,KL2022年输出信号以控制抱闸。
一、添加硬件
打开systemmanager,转换到配置模式,在I/ODevices上右键选择Scandevices,
选择对应的网络接口
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
系统找到倍福模块并添加到列表中
二、配置KL2541
配置KL2541参数,可使用KS2022年软件,这里使用Systemmanager更改KL2451内部寄存器的值,实现配置。
本例中运动控制没有使用编码器,KL2541默认配置为使用编码器反馈,所以一定要配置KL2541。
使用内部计数器反馈当前位置,不使用编码器。
1、切换到FreeRun配置模式
切换到配置模式,弹出如下对话框,选择“是”
FreeRun模式下,KL2541的Channel中的变量,Ctrl用于输入指令,Velocity用于写入数值,Position用于读取数值
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
选择Online页的Write按钮,弹出对话框可输入数值。
具体寄存器意义和数值定义可参考倍福的KL2541的帮助文件2、打开写保护
在寄存器31中写入数值0x1235。
先在变量Velocity中写入数值0x1235,然后再在Ctrl变量中写入0xDF,将数值写入到寄存器。
3、验证写保护打开
在Ctrl变量中写入0x9F,查看Position变量的数值,如果值是0x1235表示写入成功。
4、设置为内部计数器反馈(不使用编码器)
在寄存器32中写入0x0800(第11位为1)写入:
Velocity0x0800,Ctrl0xE0验证:
Ctrl0xA05、设置细分数为1/8
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
在寄存器46中写入0x0003写入:
Velocity0x0003,Ctrl0xEE,验证:
Ctrl0xAE
三、配置NC和PLC
1、添加NC运动控制,输入名称
2、添加Axis,输入名称,选择轴类型,这里选择默认的连续轴
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
3、设置NC轴
在Axis1的Settings页面上指定轴类型为KL2541,并LinkTo到指定的硬件。
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
4、编码器(Axis_1_Enc)设置
Global页面,修改ScalingFactor
为实际值,其它可使用默认值。
本例中,电机每转脉冲数200,减速比100:
1,细分数8,丝杠导程2mm。
那么每毫米对应的脉冲数为200*100*8/2=__。
所以ScalingFactor=1/__=0.__-__。
Incremental页面,设置寻参(回零)方向,和寻参的位置设定值。
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
5、驱动器(Axis_1_Drive)设置
Analog页面,设置参考速度。
参考速度设置的不准确,可能导致电机运动
异常。
比如参考速度值太小,运动结束后,电机会反转以补偿位置值。
6、控制设置(Axis_1_Ctrl)
Global页面,PositionLagMonitoring在调试时可设置为FLASE,因为运动过程中此选项超差,电机会停止运动。
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
7、轴(Axis_1)参数设置
Global页面,指定最大速度,手动速度,寻参(正向和反向)速度,加速度,减速度和加速度变化率。
以上设置没有提到的选项,都可以使用默认值,不需要设置。
在运行模式下,参数修改后,点Download可使参数生效。
8、添加PLC程序
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
选择已编译的PLC项目,加载到Systemmanager中
9、连接NC和PLC程序
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
10、其它变量的连接
连接KL2022年的输出量到PLC程序的输出变量,实现PLC程序对输出信号的控制。
连接限位开关的信号到PLC输入变量
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
11、完成配置
激活系统配置,修改配置后不要忘记。
切换到运行模式
设置systemmanager自动运行,输入当前操作系统的用户名和密码
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
四、PLC程序实例
1、创建PLC项目
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
2、添加库文件,选择
TcMC.lib
引用的库
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
3、电机控制结构体定义
VC
程序中使用相同的结构体,用于PLC和vc程序之间的通讯。
TYPEAxisCtrlStatus:
STRUCT(*状态*)
stat1:
SINT;(*预留*)
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
limitStat:
SINT;(*限位开关状态*)
moveStat:
BOOL;
(*运动状态*)errorStat:
BOOL;(*错误状态*)errorId:
UDINT;(*错误编号*)curPositon:
LREAL;(*当前位置*)(*输入参数*)
positoin:
LREAL;(*设置相对运动量或目标位置或当前位置*)velocity:
LREAL;(*设置速度*)(*操作控制指令*)
powerEnable:
BOOL;(*上电*)stopExe:
BOOL;(*停止*)moveRelExe:
BOOL;(*相对运动*)moveAbsExe:
BOOL;(*绝对运动*)homeExe:
BOOL;(*回零*)positoinExe:
BOOL;(*设置当前位置*)reset:
BOOL;(*复位*)exe1:
BOOL;(*预留*)END_STRUCTEND_TYPE
4、全局输入输出变量,定义变量
VAR_GLOBAL
aAxis_InAT%I*:
_____UCT;aAxis_OutAT%Q*:
_____UCT;KL_StatusAT%I*:
UINT;KB_StatusAT%Q*:
BOOL;END_VAR
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
5、全局变量配置,配置变量为实际地址
VAR_CONFIG
.aAxis_InAT%IB0:
_____UCT;.aAxis_OutAT%QB0:
_____UCT;.KL_StatusAT%IB128:
UINT;
.KB_StatusAT
%QB128:
BOOL;END_VAR
6、主程序
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
主程序变量声明
__MAINVARNPM_Power:
MC_Power;
NPM_Reset
:
MC_Reset;NPM_ReadActualPosition:
MC_ReadActualPosition;(*读取当前位置*)
NPM_SetActualPosition
:
MC_SetActualPosition;(*设置当前位置*)NPM_MoveVelocity:
MC_MoveVelocity;(*匀速运动*)NPM_MoveAbsolute:
MC_MoveAbsolute;NPM_MoveRelative:
MC_MoveRelative;NPM_Stop:
MC_Stop;
NPM_Home:
MC_Home;
(*referenceposition0*)
(*用%M定义控制结构,用于与VC程序通讯,在VC中使用地址0x4020访问*)AxisCtrlAT%MB0:
AxisCtrlStatus;
END_VAR
主程序内容
(*KB_Status输出变量用于控制抱闸,在此保持与电机上下电同步*)KB_Status:
=AxisCtrl.powerEnable;(*转换限位开关的状态*)IFKL_Status=2THENAxisCtrl.limitStat:
=-1;ELSIFKL_Status=1THENAxisCtrl.limitStat:
=1;ELSE
AxisCtrl.limitStat:
=100;END_IF
(*复位,同时将程序的错误状态,运动指令等都清零*)NPM_Reset(
Execute:
=AxisCtrl.reset
Axis:
=aAxis_In,Done=,Error=,ErrorID=IFAxisCtrl.resetTHEN(*IFNPM_Reset.DoneTHEN*)AxisCtrl.reset:
=FALSE;AxisCtrl.errorStat:
=FALSE;
AxisCtrl.errorId
:
=0;AxisCtrl.moveStat:
=FALSE;AxisCtrl.homeExe:
=
FALSE;
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
AxisCtrl.moveAbsExe:
=FALSE;AxisCtrl.moveRelExe:
=FALSE;(*END_IF*)END_IF
(*停止,停止完成后清除运动状态和操作指令*)NPM_Stop(Execute:
=AxisCtrl.stopExe,Deceleration:
=3.0,(*设置电机停止时的减速度*)
Jerk
:
=300.0,Axis:
=aAxis_In,Done=,Error=,ErrorID=
IFAxisCtrl.stopExe
THENIFNPM_Stop.DoneTHENAxisCtrl.stopExe
:
=FALSE;AxisCtrl.moveStat:
=FALSE;
AxisCtrl.homeExe:
=FALSE;AxisCtrl.moveAbsExe:
=FALSE;AxisCtrl.moveRelExe
:
=FALSE;END_IFEND_IF
(*电机上下电,Enable为保持值*)NPM_Power(
Enable:
=AxisCtrl.powerEnable
Enable_Positive:
=TRUE
Enable_Negative:
=TRUE,Override:
=100.0,(*inpercent*)
AxisRefIn
:
=aAxis_In,AxisRefOut:
=aAxis_Out,Status=,Error=AxisCtrl.errorStat,ErrorID=AxisCtrl.errorId);
(*获得电机当前位置*)
NPM_ReadActualPosition(
Enable:
=TRUE
Axis:
=aAxis_In,Done=,Error=,ErrorID=,
Position=AxisCtrl.curPositon
);
本文给出一个倍福TwinCAT配置KL2541步进电机模块的实际例子,包括硬件配置到vc软件的全过程
NPM_SetActualPosition(Execute:
=AxisCtrl.positoinExe,Position:
=AxisCtrl.positoin,Axis:
=aAxis_In,Done=,
CommandAborted=,Error=,ErrorID=AxisCtrl.positoinExe:
=FALSE;
(*相对运动,*)
NPM_MoveRelative(Execute:
=AxisCtrl.moveRelExe,Distance:
=AxisCtrl.positoin,
Velocity:
=AxisCtrl.velocity
Acceleration:
=,Deceleration
:
=,Jerk:
=,Axis:
=aAxis_In,Done=,
CommandAborted=,Error=,ErrorID=
IFAxisCtrl.moveRelExe
THENIFNPM_MoveRelative.DoneTHEN(*更新运动状态*)AxisCtrl.moveRelExe
:
=FALSE;AxisCtrl.moveStat:
=FALSE
;ELSE
AxisCtrl.moveStat:
=TRUE
;END_IF
IFNPM_MoveRelative.ErrorTHEN
(*更新错误状态*)AxisCtrl.errorStat:
=TRUE;
AxisCtrl.errorId:
=NPM_MoveRelative.ErrorId;END_IF
(*正限位触发,并且电机正向运动时停止*)(*负限位触发,并且电机反向运动时停止*)
IF(KL_Status.1ANDNPM_MoveRelative.Distance0)OR
(KL_Status.0ANDNPM_MoveRelative.Distance
0)THENAxisCtrl.stopExe:
=TRUE;END_IFEND_IF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TwinCATKL2541 配置 实例