ABB機器人---基礎編程

目錄

第一章 代碼+解釋

1.1 基礎代碼

1.1.2 關于 VAR robtarget pos

1.1.3?關于四元數

1.2?機器人初始化程序

1.3?配置通信 (ProfiNet 示例,ABB RAPID)

1.4?設置干涉區 (ABB RAPID)

1.5?示教軌跡和自動過程 (ABB RAPID)

1.6?配置抓手并進行抓取操作 (ABB RAPID)

1.7?上下料操作 (ABB RAPID)

1.8?弧焊機器人程序 (ABB RAPID)




第一章 代碼+解釋

1.1 基礎代碼

MODULE MainModuleVAR robtarget pos1 := [[1000,0,500],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];VAR robtarget pos2 := [[800,200,600],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];VAR robtarget pos3 := [[600,400,700],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PROC Main(); 移動到初始位置MoveJ pos1, v1000, z50, tool0;; 以直線移動到第二個位置MoveL pos2, v500, z10, tool0;; 以直線移動到第三個位置MoveL pos3, v500, z10, tool0;ENDPROC
ENDMODULE

注釋

  1. MODULE MainModule: 定義一個主模塊 MainModule
  2. VAR robtarget pos1 := ...: 聲明并初始化位置變量 pos1,指定位置和姿態。
  3. VAR robtarget pos2 := ...: 聲明并初始化位置變量 pos2,指定位置和姿態。
  4. VAR robtarget pos3 := ...: 聲明并初始化位置變量 pos3,指定位置和姿態。
  5. PROC Main(): 定義主過程 Main
  6. MoveJ pos1, v1000, z50, tool0;: 以關節運動模式(MoveJ)移動到 pos1,速度為1000,區間z為50,工具為tool0。
  7. MoveL pos2, v500, z10, tool0;: 以直線運動模式(MoveL)移動到 pos2,速度為500,區間z為10,工具為tool0。
  8. MoveL pos3, v500, z10, tool0;: 以直線運動模式(MoveL)移動到 pos3,速度為500,區間z為10,工具為tool0。
  9. ENDPROC: 結束過程。
  10. ENDMODULE: 結束模塊。

1.1.2 關于 VAR robtarget pos

  • VAR:這是RAPID語言中的關鍵字,用于聲明變量。
  • robtarget:這是變量的類型。在RAPID中,robtarget類型用于描述機器人目標位置和姿態,包括笛卡爾坐標和四元數。
  • pos1:這是變量的名稱,表示這是第一個位置變量。

1. :=

  • 賦值操作符,用于初始化變量 pos1 的值。

2. [[1000,0,500],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]

  • 這是一個數組,表示 robtarget 類型變量的初始值。robtarget 類型由四部分組成,分別是位置、姿態(四元數)、配置數據和外部軸。

. [[1000,0,500]]

  • 位置部分,這是一個3D坐標數組,表示機器人末端執行器在空間中的位置。
    • 1000:X軸坐標,表示位置在X軸方向上的距離,單位是毫米。
    • 0:Y軸坐標,表示位置在Y軸方向上的距離,單位是毫米。
    • 500:Z軸坐標,表示位置在Z軸方向上的距離,單位是毫米。

3. [1,0,0,0]

  • 姿態部分,這是一個四元數數組,表示機器人末端執行器的姿態。
    • 1:四元數的實部,表示姿態的角度。
    • 000:四元數的虛部,表示姿態的方向。

四元數 [1,0,0,0] 對應的是沒有旋轉的姿態(即與參考坐標系對齊)。

4. [0,0,0,0]

  • 配置數據部分,這是一組四個整數,用于描述機器人運動時的特定配置(如關節角度、翻轉狀態等)。
    • 通常配置數據與機器人型號有關,這里所有值為 0,表示默認配置。

5. [9E9,9E9,9E9,9E9,9E9,9E9]

  • 外部軸部分,這是一個包含六個值的數組,表示機器人使用的外部軸的位置。
    • 9E9:表示一個極大值(通常是 9999999999),用于指示未定義或未使用的外部軸位置。

1.1.3?關于四元數

四元數是一種用于表示三維空間中旋轉的數學工具。它們比歐拉角或旋轉矩陣更穩定,不容易出現萬向節鎖(Gimbal lock)問題。一個四元數通常表示為 (𝑤,𝑥,𝑦,𝑧)(w,x,y,z),其中 𝑤w 是實部,𝑥,𝑦,𝑧x,y,z 是虛部。

四元數 (1,0,0,0)(1,0,0,0) 表示沒有旋轉。這是因為它等價于單位旋轉矩陣,或旋轉角度為0度的旋轉。

一些常見的四元數姿態示例

1. 沒有旋轉

  • 四元數: (1,0,0,0)(1,0,0,0)
  • 描述: 機器人末端執行器沒有旋轉,保持與參考坐標系對齊。

2. 繞X軸旋轉90度

  • 四元數: (2/2,2/2,0,0)(2?/2,2?/2,0,0) 或 (0.7071,0.7071,0,0)(0.7071,0.7071,0,0)
  • 描述: 機器人末端執行器繞X軸順時針旋轉90度。

3. 繞Y軸旋轉90度

  • 四元數: (2/2,0,2/2,0)(2?/2,0,2?/2,0) 或 (0.7071,0,0.7071,0)(0.7071,0,0.7071,0)
  • 描述: 機器人末端執行器繞Y軸順時針旋轉90度。

4. 繞Z軸旋轉90度

  • 四元數: (2/2,0,0,2/2)(2?/2,0,0,2?/2) 或 (0.7071,0,0,0.7071)(0.7071,0,0,0.7071)
  • 描述: 機器人末端執行器繞Z軸順時針旋轉90度。

5. 繞X軸旋轉180度

  • 四元數: (0,1,0,0)(0,1,0,0)
  • 描述: 機器人末端執行器繞X軸旋轉180度。

6. 繞Y軸旋轉180度

  • 四元數: (0,0,1,0)(0,0,1,0)
  • 描述: 機器人末端執行器繞Y軸旋轉180度。

7. 繞Z軸旋轉180度

  • 四元數: (0,0,0,1)(0,0,0,1)
  • 描述: 機器人末端執行器繞Z軸旋轉180度。

計算四元數的基本公式

一個四元數 (𝑤,𝑥,𝑦,𝑧)可以通過旋轉角度 𝜃和旋轉軸向量 (𝑢𝑥,𝑢𝑦,𝑢𝑧)來計算:


示例計算


1.2?機器人初始化程序

用ABB RAPID編程語言編寫的一個簡單的機器人初始化程序。它的主要功能包括工具和用戶坐標系的初始化,以及機器人上電和校零點操作。我們將逐行詳細解釋這個程序:

程序模塊頭部

  • MODULE InitRobot: 定義一個名為 InitRobot 的模塊。模塊是RAPID程序的基本構建單元,包含了多個過程、函數和數據。

主過程定義

  • PROC Main(): 定義一個名為 Main 的過程,作為程序的主入口點。

工具坐標系初始化

  • ! 工具坐標系初始化: 注釋,說明接下來是工具坐標系的初始化部分。
  • VAR tooldata tool0 := ...: 定義一個變量 tool0,類型為 tooldata,并進行初始化。
    • [TRUE, [[0,0,250],[1,0,0,0]], [1,1,1,[0,0,0,0]], [1, [0,0,0], [0,0,0,0]]]: 初始化值的詳細解釋:
      • TRUE: 指示工具數據有效。
      • [[0,0,250],[1,0,0,0]]: 工具的TCP(Tool Center Point)位置和姿態。
        • [[0,0,250]]: TCP的坐標位置,表示工具在Z軸上延伸250毫米。
        • [[1,0,0,0]]: 四元數,表示工具的姿態(無旋轉)。
      • [1,1,1,[0,0,0,0]]: 工具的負載信息,包含重量、質心位置和慣性矩。
      • [1, [0,0,0], [0,0,0,0]]: 工具的未知負載和慣性數據,通常為默認值。
  • PERS tooldata tool1 := ...: 定義一個持久性變量 tool1,其類型和初始化值與 tool0 相同。持久性變量在控制器重啟后仍然保留其值。

用戶坐標系初始化

  • ! 用戶坐標系初始化: 注釋,說明接下來是用戶坐標系的初始化部分。
  • VAR wobjdata wobj0 := ...: 定義一個變量 wobj0,類型為 wobjdata,并進行初始化。
    • [TRUE, TRUE, "", [[1000,0,0],[1,0,0,0]]]: 初始化值的詳細解釋:
      • TRUE: 指示工件數據有效。
      • TRUE: 指示工件坐標系相對于工件的坐標系(而不是機器人的基座)。
      • "": 工件名稱為空。
      • [[1000,0,0],[1,0,0,0]]: 工件的基座位置和姿態。
        • [[1000,0,0]]: 工件坐標系在世界坐標系中的位置,X軸上偏移1000毫米。
        • [[1,0,0,0]]: 四元數,表示工件坐標系的姿態(無旋轉)。
  • PERS wobjdata wobj1 := ...: 定義一個持久性變量 wobj1,其類型和初始化值與 wobj0 相同。

設置工具和用戶坐標系

  • ! 設置工具和用戶坐標系: 注釋,說明接下來將設置工具和用戶坐標系。
  • ConfL\Off;: 關閉線性運動配置檢查。
  • ConfJ\Off;: 關閉關節運動配置檢查。
  • Tool0 := tool0;: 將 tool0 賦值給 Tool0,設置當前使用的工具。
  • Wobj0 := wobj0;: 將 wobj0 賦值給 Wobj0,設置當前使用的工件坐標系。

機器人上電和校零點

  • ! 機器人上電和校零點: 注釋,說明接下來是機器人上電和校零點操作。
  • MoveJ [[0,0,0,0,0,0]], v1000, fine, tool0\WObj:=wobj0;: 使用關節運動(MoveJ)將機器人移動到所有關節角度為零的位置。
    • [[0,0,0,0,0,0]]: 關節角度數組,所有關節角度為零。
    • v1000: 運動速度,單位是度/秒。
    • fine: 精細停止,表示在目標位置完全停止。
    • tool0\WObj:=wobj0: 使用 tool0 作為工具,wobj0 作為工件坐標系。
    • 這個指令用于上電和校零點。

結束主過程和模塊

  • ENDPROC: 結束 Main 過程的定義。
  • ENDMODULE: 結束 InitRobot 模塊的定義。
MODULE InitRobotPROC Main()! 工具坐標系初始化VAR tooldata tool0 := [TRUE, [[0,0,250],[1,0,0,0]], [1,1,1,[0,0,0,0]], [1, [0,0,0], [0,0,0,0]]];PERS tooldata tool1 := [TRUE, [[0,0,250],[1,0,0,0]], [1,1,1,[0,0,0,0]], [1, [0,0,0], [0,0,0,0]]];! 用戶坐標系初始化VAR wobjdata wobj0 := [TRUE, TRUE, "", [[1000,0,0],[1,0,0,0]]];PERS wobjdata wobj1 := [TRUE, TRUE, "", [[1000,0,0],[1,0,0,0]]];! 設置工具和用戶坐標系ConfL\Off;ConfJ\Off;Tool0 := tool0;Wobj0 := wobj0;! 機器人上電和校零點MoveJ [[0,0,0,0,0,0]], v1000, fine, tool0\WObj:=wobj0; ! 上電MoveJ [[0,0,0,0,0,0]], v1000, fine, tool0\WObj:=wobj0; ! 校零點ENDPROC
ENDMODULE

1.3?配置通信 (ProfiNet 示例,ABB RAPID)

MODULE ProfiNetConfigPERS signaldi DI_ProfiNet := [1];PERS signaldo DO_ProfiNet := [1];PROC Main()! 初始化ProfiNet通信SetDO DO_ProfiNet, 1;WaitTime 1;SetDO DO_ProfiNet, 0;WaitTime 1;! 發送數據到機器人IF DI_ProfiNet = 1 THENSetDO DO_ProfiNet, 1;ELSESetDO DO_ProfiNet, 0;ENDIFENDPROC
ENDMODULE

該程序主要用于通過ProfiNet通信控制機器人。程序定義了ProfiNet信號,并通過這些信號進行初始化和數據發送操作。

下面詳細解?

①模塊定義

  • MODULE ProfiNetConfig: 定義一個名為 ProfiNetConfig 的模塊。模塊是RAPID程序的基本構建單元,包含了多個過程、函數和數據。

②定義ProfiNet信號

  • PERS signaldi DI_ProfiNet := [1];: 定義一個持久性輸入信號 DI_ProfiNet,類型為 signaldi,初始值為 [1]。持久性變量在控制器重啟后仍然保留其值。
  • PERS signaldo DO_ProfiNet := [1];: 定義一個持久性輸出信號 DO_ProfiNet,類型為 signaldo,初始值為 [1]

③主過程定義

  • PROC Main(): 定義一個名為 Main 的過程,作為程序的主入口點。

④初始化ProfiNet通信

  • ! 初始化ProfiNet通信: 注釋,說明接下來是初始化ProfiNet通信。
  • SetDO DO_ProfiNet, 1;: 設置輸出信號 DO_ProfiNet 為高電平(1),表示開始初始化。
  • WaitTime 1;: 等待1秒。
  • SetDO DO_ProfiNet, 0;: 設置輸出信號 DO_ProfiNet 為低電平(0),表示初始化完成。
  • WaitTime 1;: 再次等待1秒。

⑤發送數據到機器人

  • ! 發送數據到機器人: 注釋,說明接下來是通過ProfiNet發送數據到機器人。
  • IF DI_ProfiNet = 1 THEN: 檢查輸入信號 DI_ProfiNet 是否為高電平(1)。
    • SetDO DO_ProfiNet, 1;: 如果 DI_ProfiNet 為高電平,設置輸出信號 DO_ProfiNet 為高電平(1),表示發送數據。
    • ELSE: 否則。
    • SetDO DO_ProfiNet, 0;: 設置輸出信號 DO_ProfiNet 為低電平(0),表示不發送數據。
  • ENDIF: 結束條件語句。

⑥結束主過程和模塊

  • ENDPROC: 結束 Main 過程的定義。
  • ENDMODULE: 結束 ProfiNetConfig 模塊的定義。

1.4?設置干涉區 (ABB RAPID)

?
MODULE InterferenceZonePROC Main()! 設置空間干涉區VAR robtarget zoneStart := [500, 500, 500, 0, 0, 0];VAR robtarget zoneEnd := [1000, 1000, 1000, 0, 0, 0];ConfL\Off;MoveJ zoneStart, v1000, fine, tool0;MoveL zoneEnd, v1000, fine, tool0;ENDPROC
ENDMODULE?

?該程序設置一個空間干涉區,并讓機器人在該區域內移動。

下面詳細解?

模塊定義

  • MODULE InterferenceZone: 定義一個名為 InterferenceZone 的模塊。模塊是RAPID程序的基本構建單元,包含了多個過程、函數和數據。

主過程定義

  • PROC Main(): 定義一個名為 Main 的過程,作為程序的主入口點。

設置空間干涉區

  • ! 設置空間干涉區: 注釋,說明接下來將定義空間干涉區的起點和終點。
  • VAR robtarget zoneStart := [500, 500, 500, 0, 0, 0];: 定義一個名為 zoneStart 的變量,類型為 robtarget,并初始化它。
    • [500, 500, 500, 0, 0, 0]: 初始化值表示空間干涉區的起點。
      • [500, 500, 500]: 機器人TCP(Tool Center Point)的X、Y、Z坐標,分別為500毫米。
      • [0, 0, 0]: 機器人TCP的姿態,使用歐拉角表示(繞X軸、Y軸和Z軸的旋轉角度均為0)。
  • VAR robtarget zoneEnd := [1000, 1000, 1000, 0, 0, 0];: 定義一個名為 zoneEnd 的變量,類型為 robtarget,并初始化它。
    • [1000, 1000, 1000, 0, 0, 0]: 初始化值表示空間干涉區的終點。
      • [1000, 1000, 1000]: 機器人TCP的X、Y、Z坐標,分別為1000毫米。
      • [0, 0, 0]: 機器人TCP的姿態,使用歐拉角表示(繞X軸、Y軸和Z軸的旋轉角度均為0)。

關閉配置檢查

  • ConfL\Off;: 關閉線性運動配置檢查。這通常用于禁用一些運動路徑配置的檢查,確保機器人可以按照程序的指令執行運動。

機器人移動指令

  • MoveJ zoneStart, v1000, fine, tool0;: 讓機器人使用關節運動模式(MoveJ)以1000毫米/秒的速度移動到 zoneStart 位置。

    • zoneStart: 目標位置,定義在上面的 zoneStart 變量。
    • v1000: 運動速度,單位是毫米/秒。
    • fine: 精細停止,表示在目標位置完全停止。
    • tool0: 使用的工具坐標系。
  • MoveL zoneEnd, v1000, fine, tool0;: 讓機器人使用直線運動模式(MoveL)以1000毫米/秒的速度從 zoneStart 移動到 zoneEnd 位置。

    • zoneEnd: 目標位置,定義在上面的 zoneEnd 變量。
    • v1000: 運動速度,單位是毫米/秒。
    • fine: 精細停止,表示在目標位置完全停止。
    • tool0: 使用的工具坐標系。

結束主過程和模塊

  • ENDPROC: 結束 Main 過程的定義。
  • ENDMODULE: 結束 InterferenceZone 模塊的定義。

1.5?示教軌跡和自動過程 (ABB RAPID)

?
MODULE TeachAndAutoPERS robtarget p1 := [1000, 0, 500, 0, 0, 0];PERS robtarget p2 := [1050, 0, 500, 0, 0, 0];PERS robtarget p3 := [1100, 0, 500, 0, 0, 0];PROC Main()MoveJ p1, v1000, fine, tool0;MoveL p2, v500, fine, tool0;MoveL p3, v500, fine, tool0;MoveL p1, v500, fine, tool0;ENDPROC
ENDMODULE

1.6?配置抓手并進行抓取操作 (ABB RAPID)

MODULE GripperConfigVAR bool gripperClosed := FALSE;PROC Main()VAR robtarget pGrab := [1000, 0, 500, 0, 0, 0];VAR robtarget pDrop := [1050, 0, 500, 0, 0, 0];! 初始化抓手SetGripper(FALSE);MoveJ pGrab, v1000, fine, tool0;SetGripper(TRUE);MoveJ pDrop, v1000, fine, tool0;SetGripper(FALSE);MoveJ pGrab, v1000, fine, tool0;ENDPROCPROC SetGripper(bool close)IF close THENSetDO doGripper, 1;gripperClosed := TRUE;ELSESetDO doGripper, 0;gripperClosed := FALSE;ENDIFENDPROC
ENDMODULE

?

1.7?上下料操作 (ABB RAPID)

MODULE LoadUnloadPROC Main()VAR robtarget pLoad := [1000, 0, 500, 0, 0, 0];VAR robtarget pUnload := [1050, 0, 500, 0, 0, 0];! 移動到加載位置MoveJ pLoad, v1000, fine, tool0;! 模擬加載操作WaitTime 1;! 移動到卸載位置MoveJ pUnload, v1000, fine, tool0;! 模擬卸載操作WaitTime 1;! 返回起始位置MoveJ pLoad, v1000, fine, tool0;ENDPROC
ENDMODULE

?

1.8?弧焊機器人程序 (ABB RAPID)

MODULE ArcWeldingVAR welddata wdata:=[20, 0.8, 5, 1.5, 0.1];PROC Main()VAR robtarget pStart := [1000, 0, 500, 0, 0, 0];VAR robtarget pWeld1 := [1050, 0, 500, 0, 0, 0];VAR robtarget pWeld2 := [1100, 0, 500, 0, 0, 0];MoveJ pStart, v1000, fine, tool0;ArcLStart wdata, pWeld1, v500, fine, tool0;ArcLEnd pWeld2, v500, fine, tool0;MoveJ pStart, v1000, fine, tool0;ENDPROC
ENDMODULE

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15109.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15109.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15109.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

springboot錯誤

錯誤總結 1、使用IDEA 的 initialalzer顯示2、IDEA 新建文件 沒有 java class3、java: 錯誤: 不支持發行版本 22解決方法4、IDEA-SpringBoot項目yml配置文件不自動提示解決辦法 1、使用IDEA 的 initialalzer顯示 IDEA創建SpringBoot項目時出現:Initialization fail…

公認最好用的隨身wifi品牌推薦!歐本VS閃魚VS格行隨身wifi哪款更好用?歐本隨身wifi靠譜嗎?

最近小編后臺私信快被問爆了,都想讓測評一下自己相中的隨身wifi到底行不行。該說不說隨身wifi品牌真是越來越多了,今天就挑選咨詢量最多的三款:格行,歐本,閃魚!咱們各方面都實測一下,看看哪款更…

基于ucos-ii操作系統的生產者消費者-問題

目 錄 第1章 題目分析. 1 1.1 生產者線程... 1 1.2 消費者線程... 1 1.3 緩沖區... 1 1.4 進程的同步與互斥... 1 第2章 解決方案. 2 2.1 總體方案... 2 2.2 生產者問題... 2 2.3 消費者問題... 3 2.4 進程問題... 5 第3章 實驗結果. 6 3.1 運行結果... 6 3.2 結果分析... 8 第…

提取 Chrome、Firefox 中儲存的用戶密碼用于憑據發現

操作環境 Chrome 瀏覽器 Version 125.0.6422.112 (Official Build) (64-bit)Firefox 瀏覽器 Version 126.0 (64 位) Chrome 瀏覽器儲存密鑰原理 新的 Chrome 瀏覽器儲存密碼的方案是使用 Chrome 生成的 AES 密鑰對用戶密碼進行加密之后儲存在 Sqlite 數據庫文件中,A…

Qt資源系統用法筆記 qrc

目錄 創建和使用.qrc文件的步驟: 步驟1: 創建.qrc文件 步驟2: 編輯.qrc文件 步驟3: 在代碼中使用資源 步驟4: 編譯和運行 優點和注意事項 c調用: Qt資源系統(Qt Resource System)提供了一種將應用程序所需的文件&#xff0…

Linux 內核之 mmap 內存映射的原理及源碼解析

文章目錄 前言一、簡介1. mmap 是什么?2. Linux 進程虛擬內存空間 二、mmap 內存映射1. mmap 內存映射的實現過程2. mmap 內存映射流程2.1 mmap 系統調用函數2.2 ksys_mmap_pgoff 函數2.3 vm_mmap_pgoff 函數2.4 do_mmap_pgoff 函數2.5 do_mmap 函數2.6 get_unmappe…

私域流量的真諦:構建并運營屬于你自己的私域生態

大家好,我是來自一家專注于私域電商行業的軟件開發公司的產品經理,擁有超過七年的行業經驗。今天,我想和大家聊聊私域流量的真正含義,以及為何我們應該關注并努力打造屬于自己的私域生態。 什么是私域流量? 私域流量&…

HCIA第二天復習上

延長傳輸距離-------中繼器(放大器)------物理層設備 可以延長5倍傳輸距離 增加網絡節點數量 網絡拓撲結構 1直線型拓撲 信息安全性差 網絡延遲高傳輸速度慢 2環形拓撲 3星型拓撲 4網狀型拓撲 傳輸效率高,…

【字典樹 馬拉車算法】336. 回文對

本文涉及知識點 字典樹 馬拉車算法 336. 回文對 給定一個由唯一字符串構成的 0 索引 數組 words 。 回文對 是一對整數 (i, j) &#xff0c;滿足以下條件&#xff1a; 0 < i, j < words.length&#xff0c;i ! j &#xff0c;并且words[i] words[j]&#xff08;兩個字…

通過注意力調節實現更好的文本到圖像生成對齊

近年來&#xff0c;生成性AI技術在眾多領域取得了前所未有的進步。大規模預訓練模型的出現激發了各種下游任務中的新應用。這在文本到圖像生成領域尤為明顯&#xff0c;例如Stable Diffusion、DALL-E 2和Imagen等模型已經顯著展示了它們的能力。盡管如此&#xff0c;復雜提示中…

appium篇-windows桌面自動化(一)[環境配置]

1、windows版本&#xff1a;win10 2、winSdk版本 Windows SDK and emulator archive | Microsoft Developer 3、winAppDriver版本 1.2.99 Releases microsoft/WinAppDriver (github.com) ################ 4、python版本 Python 3.9.13 ############### 5、appium版本 Re…

hubilder Android模擬器華為手機連接不上

APP真機測試注意點&#xff1a; 1. 同一個局域網下 2. 手機連接USB模式&#xff08;華為選擇USB配置&#xff1a;音頻來源&#xff09; &#xff0c;開發者模式 3. 實在不行重啟HBuilderX再運行真機 可是卡在了“正在安裝手機端HBuilder調試基座...” 就沒反應了&#xff1f;&…

【高時效通路】

一 高時效通路 1.1 pathchdumper 實時數據拉取、實時數據處理、5分鐘微批dump來加速時效性&#xff0c;具體來說&#xff1a; 實時數據拉取&#xff08;Fetcher&#xff09;&#xff1a;基于Databus Fetcher基建&#xff0c;直接對接F0層實時拉取最新數據&#xff0c;保證該…

Springboot整合Minio對象存儲超級詳細講解以及配置搭建

windows環境下搭建minio步驟 1.從minio官網進行查看詳細信息 地址&#xff1a;https://min.io/里面有詳細的配置信息搭建成功之后如下如所示&#xff1a;用戶名密碼默認情況下為 username&#xff1a;minioadmin password&#xff1a;minioadmin2.搭建成功之后的訪問 地址&…

python - 分割 pytest 的 conftest.py 文件

解決 pytest 的 conftest.py 文件過大問題。 1. 項目目錄結構 project_name ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── project_name │ ├── __init__.py │ ├── testing │ │ ├── __init__.py │ │ ├── fixtur…

vue項目實戰 - 如果高效的實現防抖和節流

在Vue項目中&#xff0c;處理高頻事件的優化至關重要&#xff0c;直接影響用戶體驗和應用性能。防抖&#xff08;Debounce&#xff09;和節流&#xff08;Throttle&#xff09;是兩種常用且有效的方法&#xff0c;可以控制事件觸發頻率&#xff0c;減少不必要的資源消耗。如何在…

SEO優化,小白程序員如何做SEO優化流量從0到1

原文鏈接&#xff1a;SEO優化&#xff0c;小白程序員如何做SEO優化流量從0到1 1、SEO是什么&#xff1f; SEO即&#xff1a;搜索引擎優化(Search Engine Optimization)&#xff0c;是一種通過優化網站結構、內容和外部鏈接等因素&#xff0c;提高網站在搜索引擎中的自然排名&…

python愛心樹表白代碼

以下是一個使用Python的turtle模塊來繪制一顆愛心并表白的簡單示例代碼&#xff1a; import turtle import math # 設置屏幕 screen turtle.Screen() screen.bgcolor("black") # 繪制愛心 def draw_heart(t, size): t.speed(9) t.penup() t.goto(0, -size…

Python Minio 工具類封裝

最近因為需要對大規模的文件進行存儲&#xff0c;選了多種對象存儲方案&#xff0c;最終選擇了MinIO&#xff0c;為了方便python的調用&#xff0c;在minio第三方包的基礎上進行進一步封裝調用&#xff0c;該工具除了基礎的功能外&#xff0c;還封裝了多線程分片下載文件和上傳…

DeepDriving | CUDA編程-03:線程層級

本文來源公眾號“DeepDriving”&#xff0c;僅用于學術分享&#xff0c;侵權刪&#xff0c;干貨滿滿。 原文鏈接&#xff1a;CUDA編程-03:線程層級 DeepDriving | CUDA編程-01&#xff1a; 搭建CUDA編程環境-CSDN博客 DeepDriving | CUDA編程-02&#xff1a; 初識CUDA編程-C…