pos机固件校验

 新闻资讯2  |   2023-07-09 14:46  |  投稿人:pos机之家

网上有很多关于pos机固件校验,使用TMC4671驱动直线电机的知识,也有很多人为大家解答关于pos机固件校验的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、pos机固件校验

pos机固件校验

在上一篇博文中,我们能够确定级联控制器回路的稳定P-I参数。有了这些知识,我们想向您展示我们是如何创建一个小的示例程序的,并放入Landungsrbücke的固件中。

此代码的基本功能是初始化步进电机控制的TMC4671。这是在init_Basics(…)中通过编写几个配置寄存器来完成的,而reset_Basics(…)将此工作中使用的所有寄存器重置为定义的0状态。这将取代IDE配置向导中使用默认按钮的第一步。

配置ABN(…)-功能将在功率因数调整转子至0后将ABN计数设置为0。要做到这一点,我们还需要对磁通施加电压。

init_PosMode(…)设置TMC4671进入位置模式的正确寄存器。

使用TMC4671_setAbsolutTargetPosition(…)将控制器的目标位置设置为所需值,使电机转动,直到达到目标位置。这里的绝对位置总是指我们在configure_ABN(…)函数中配置的零位置。

注:如果您希望相对于实际位置移动,可以使用函数TMC4671_setRelativeTargetPosition(…)。

为了找到我的设置的最小和最大位置,我在“查找目标位置”(…)中选择了两个无法到达的目标位置。对我来说,这是500000和-500000。控制器等待一定时间以确保它到达结束位置。然后用函数TMC4671_getActualPosition(…)保存实际位置。另一个方向也进行同样的设置。两个端点的值现在可以用于新的目标位置,可以再次使用TMC4671_setAbsolutTargetPosition(…)来设置。

运行时也可以使用线性坡道加速和减速, 使用函数TMC_ramp_linear_compute(…)和类型为TMC_LinearRamp的结构来实现这个功能(您可以在文件LinearRamp1.h和LinearRamp1.c中的API中找到更多信息)。这将在软件中创建一个包含我们的轨迹信息的斜坡。我还使用上述文件中的相应函数设置了结构的一些参数。我可以使用结构中的TMC_ramp_linear_set_target position(…)设置渐变的目标位置。之后,我使用TMC4671_setAbsolutTargetPosition(calculated_ramp)中计算出的斜坡位置, 循环工作直到达到实际目标位置,。

斜坡有什么作用?我们不是设定一条指令可以到达的绝对目标位置,而是将轨迹划分为多个子目标位置。在循环的每次迭代中,我们增加目标位置,控制器将调整到新的目标。然而,Landungsbrücke增加目标位置的速度比我们控制器的自适应速度高,因此随着时间的推移,目标位置和实际电机位置之间的差异增大。当实际位置和目标位置之间的偏移量增加时,这会导致电机加速。

减速则相反。Landungsbrücke将降低设定目标位置的速度,控制器将慢慢跟上,直到到达终点位置。

为了提高马达的速度,我把实际的斜坡位置乘以1024倍。这必须通过将软件斜坡的目标位置除以1024来补偿。这样我们就可以根据我们的应用来调整斜坡,并增加马达的加速度和速度。

为什么要使用(软件)渐变?基本上,它给了我们一个更稳定的方法来达到我们的目标位置,因为我们有一个确定的加速和减速的方法,它大大减少了超过目标的可能性。

Landungsbrücke在TMC4671寄存器中交替这些目标位置,因此电机将交替滑动的位置。

使用完成的代码,我为Landungsrbücke的引导加载程序生成一个十六进制文件,并使用TMCL-IDE更新它。

希望你能利用一些显示的例子,以便你转换数字信息为你的项目的物理运动!

使用以下代码,将初始化我的驱动器,执行编码器初始化,并在两个末端停止上执行重设原点。然后,执行来回运动。

我可以用TMCL-IDE将固件上传到Landungsbrücke,开机后它会自动启动。我可以通过RTMI监控系统行为。

代码示例:

#include "boards/Board.h"#include "hal/derivative.h"#include "hal/HAL.h"#include "tmc/IdDetection.h"#include "tmc/TMCL.h"#include "tmc/VitalSignsMonitor.h"#include "tmc/BoardAssignment.h"#include "tmc/ramp/LinearRamp1.h"#include "TMC-API/tmc/ic/TMC4671/TMC4671.h"#include "TMC-API/tmc/ic/TMC4671/TMC4671_Register.h" //As I use the names of its registers this needs to be included//mydefines#define STATE_START_INIT 1#define STATE_RUN_1 2#define STATE_RUN_2 3#define UD_EXT 3202//Torque-Flux Limits 15000#define TORQUE_FLUX_LIMIT 10000//Velocity Limit 10000#define VELOCITY_LIMIT 10000//P-I-defines#define TORQUE_FLUX_P4952#define TORQUE_FLUX_I 10939#define VELOCITY_P2200#define VELOCITY_I2000#define POSITION_P 45#define POSITION_I 0//for checking motor supply voltage

ADI-Trinamic中国区代理商深圳智联微 更多TMC系列型号推荐 +VX王工13924655249 可技术支持 可样品支持 可产品调试

以上就是关于pos机固件校验,使用TMC4671驱动直线电机的知识,后面我们会继续为大家整理关于pos机固件校验的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/newsone/82075.html
上一篇:pos机支持visa 下一篇:吉林35封顶pos机

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。