欢迎您访问河南省纳禾自动化系统有限公司官方网站! 控制工程、物联网、机器人、智能制造
咨询热线:0371-56699562 13383812899
您的位置:首页 > 新闻动态 > 行业动态

LXM28多圈位置溢出功能块的编程与现场调试(二)

发布日期:2022-12-03 11:24:33   来源:行业动态   浏览量:

本文来源于:施家邦 工控邦

 

3.功能块的接口变量如图所示

创建的【overflow_compensate】功能块的接口变量,如图5所示。

图片

图5  功能块的接口变量

 

4.LXM28S多圈位置溢出功能块的ST程序编写

双击打开【overflow_compensate】的FB功能块编写程序,功能块的编程思路就是程序不仅记录正常运行的每次溢出,再利用一个掉电保存的persistent变量记录位置溢出的次数,在上电时判断断电后电机是否发生移动并导致了新的溢出,将两者的变化量加到一起得到总的溢出次数,并按总的溢出次数做对应补偿,然后给伺服轴加上使能后,判断轴处于停止位置后再使用MC_Setpostion功能块完成位置补偿。LXM28S多圈位置溢出功能块的ST程序和注释如图6所示。

图片

图6  LXM28S多圈位置溢出功能块的ST程序和注释

 

溢出圈数的补偿值有一定的周期性,读者也可以把每圈的补偿计算出来,在轴配置参数和模数值不变的前提下,使用Case语句来补偿也是可以的。

 

功能块编写完成后要进行编译和纠错,然后在程序中调用即可。

 

5.功能块的管脚定义

▼  功能块的输入管脚如表1所示。

 

表1 功能块的输入管脚

管脚名称

管脚变量

类型

说明

i_ifAxis

DAL.IF_DeviceAccess

28S的伺服轴

i_diDrivePosition

DINT

28S反馈给M262的位置

i_iP5_82

INT

多圈编码器的圈数P5-82参数值

i_xP5_82_OK

BOOL

读取圈数有效

i_diGearIn

UDINT

设置成轴配置的GearIn参数

i_diGearOut

UDINT

设置成轴配置的GearOut参数

i_lrPositionResolution

LREAL

设置成轴配置的PositionResolution参数

i_LrModulo

LREAL

设置成模数值

i_xDirection

BOOL

此处必须设成true,读者必须确认工作方向是位置递增方向

i_xPowerEnable

BOOL

伺服使能输入信号,使能后自动完成位置补偿

i_xHomeDoneFlag

BOOL

使用P8-44键盘回原点,完成后将此标志位为真

 

▼  功能块的输入输出管脚,如表2所示。

 

表2 功能块的输入输出管脚

管脚名称

管脚变量

类型

说明

IO_diLastPostion_Persist

DINT

用于记忆断电前的28S反馈位置,断电保持变量

IO_iLastP5_82_Persist

INT

用于记忆断电前的圈数,断电保持变量

IO_diOverflowTurn_Persist

INT

用于记忆溢出次数,断电保持变量

 

▼  功能块的输出管脚,如表3所示。

 

表3 功能块的输出管脚

管脚名称

管脚变量

类型

说明

q_xSercosCommunicationState_OK: 

BOOL

Sercos状态为4时为真,否则为假

q_diPowerOff_EnocoderCounter: 

UDINT

断电时的编码器圈数

q_diPowerUp_EnocoderCounter:

UDINT

上电时的编码器圈数

q_xPowerEnabled:

BOOL

28伺服的使能参数

q_xRestored:

BOOL

位置补偿完成标志位

 

6.测试平台软件版本

1. LMCM262和28S的固件版本

 

在实验室中ESME软件采用的版本是2.01,28S的固件测试为版本2.78.3。

 

2. SoMove调试软件和DTM版本

 

使用SoMove软件2.8.4+V1.6.12版本的DTM文件进行了【overflow_compensate】的FB功能块的调试。

 

3. Lexiumstudio 调试软件版本

 

使用lexium studio V1.15.0,主要用于检查伺服驱动器和电机。

 

7.调试和参数设置

 

(1) TM262在线做初始值复位或做Reset Persistent Variables时,需要对所有采用功能块的轴重新寻原点,或者使用其它方式复位溢出圈数值等变量。

 

(2) 28S的位置、速度、同步运动时,注意速度给定值不要超过P1-55的最大速度值,笔者对此进行了极限实验,设置速度给定值超过了P1-55的最大速度值,实验结果是28S停机时会失控,断开伺服使能才能停止电机,同时,功能块存储的位置也会失效。

 

(3) 在张江研发实验室,我对不同固件版本也进行了相对实验,其中,固件版本2.78.3的28S,多圈编码器设置原点操作流程与之前的版本不同,需要将参数P8-44设3然后再设2,而之前的版本仅需把P8-44设2即可。

 

(4) 建议读者在程序中采用非周期读取参数功能块来读取P5-82的参数值,此参数虽然并不参与控制,但可以直观的看出是否错误的设置了P5-79=1,因为这个参数可以让多圈电机按单圈电机进行工作,读者在使用我创建的这个【overflow_compensate】的FB功能块时是不能设置P5-79=1的,否则会导致驱动器的位置不能保存,应予以重视。

 

往期回顾

LXM28多圈位置溢出功能块的编程与现场调试(一)

 

上一篇:LXM28多圈位置溢出功能块的编程与现场调试(三)

下一篇:LXM28多圈位置溢出功能块的编程与现场调试(一)

相关推荐