pos機固件校驗

 新聞資訊2  |   2023-07-09 14:46  |  投稿人:pos機之家

網上有很多關于pos機固件校驗,使用TMC4671驅動直線電機的知識,也有很多人為大家解答關于pos機固件校驗的問題,今天pos機之家(www.www690aa.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.www690aa.com/newsone/82075.html
上一篇:pos機支持visa 下一篇:吉林35封頂pos機

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。