From d3efa282c7b7306f5b43c6b774c0dcfc741b045e Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 23 Apr 2025 10:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B6=B2=E4=BD=93=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=B8=ADZ=E8=BD=B4=E4=B8=9D=E6=9D=A0=E5=AF=BC?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lowerctrl/LiquidOperationCtrlService.java | 2 +- .../java/a8k/extui/page/driver/HbotCtrlPage.java | 18 +++++--- src/main/resources/db/zapp_a8k_pos_parameter.csv | 46 ++++++++++++-------- .../db/zapp_sub_module_reg_initial_value.csv | 50 +++++++++++----------- 4 files changed, 66 insertions(+), 50 deletions(-) diff --git a/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java b/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java index fc36a0f..ac0c026 100644 --- a/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java +++ b/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java @@ -30,7 +30,7 @@ import org.springframework.stereotype.Component; @Component @Slf4j public class LiquidOperationCtrlService { - static public final Integer helicalPitch = 20; + static public final Integer helicalPitch = 80; static public final Integer lldZmotorVmax = 50 * 80 / helicalPitch; static public final Integer lldGunPumpVmax = 40; diff --git a/src/main/java/a8k/extui/page/driver/HbotCtrlPage.java b/src/main/java/a8k/extui/page/driver/HbotCtrlPage.java index c22687b..bf99f8b 100644 --- a/src/main/java/a8k/extui/page/driver/HbotCtrlPage.java +++ b/src/main/java/a8k/extui/page/driver/HbotCtrlPage.java @@ -147,12 +147,19 @@ public class HbotCtrlPage { hbotDriver.setReg(reg, val); } - public Object readAllRegs() throws AppException { + public Object readAllRegs() { ZJsonNode node = new ZJsonNode(); for (HbotRegIndex regIndex : HbotRegIndex.values()) { - Integer regVal = hbotDriver.getReg(regIndex); - log.info("reg {}: {}", regIndex, regVal); - node.get(regIndex.name()).set(regVal); + Integer regVal = null; + try { + regVal = hbotDriver.getReg(regIndex); + log.info("reg {}: {}", regIndex, regVal); + node.get(regIndex.name()).set(regVal); + } catch (AppException e) { + log.warn("read reg {} error {}", regIndex, e.getError().code); + node.get(regIndex.name()).set("ERROR"); + } + } return node.get(); } @@ -203,7 +210,8 @@ public class HbotCtrlPage { page.addFunction("移动到", this::measurementMoveTo).setParamVal("x", () -> readPosNoEx().x).setParamVal("y", () -> readPosNoEx().y).setParamVal("z", () -> readPosNoEx().z); page.newGroup("读写寄存器"); - page.addFunction("设置偏移", this::setShift).setParamVal("xshift", () -> readRegNoEx(HbotRegIndex.kreg_xyrobot_shift_x)).setParamVal("yshift", () -> readRegNoEx(HbotRegIndex.kreg_xyrobot_shift_y)); + page.addFunction("设置偏移", this::setShift).setParamVal("xshift", () -> readRegNoEx(HbotRegIndex.kreg_xyrobot_shift_x)).setParamVal("yshift", + () -> readRegNoEx(HbotRegIndex.kreg_xyrobot_shift_y)); page.addFunction("读所有寄存器", this::readAllRegs); page.addFunction("设置寄存器", this::setReg); diff --git a/src/main/resources/db/zapp_a8k_pos_parameter.csv b/src/main/resources/db/zapp_a8k_pos_parameter.csv index 5535e5f..1c5ecd1 100644 --- a/src/main/resources/db/zapp_a8k_pos_parameter.csv +++ b/src/main/resources/db/zapp_a8k_pos_parameter.csv @@ -1,5 +1,5 @@ id,service,key,valType,val,chName -1,Hbot2DCodeScanParamMgr,PBScanPos0,Pos2d,"{""x"":1864,""y"":16958}",板夹仓扫码位置0 +1,Hbot2DCodeScanParamMgr,PBScanPos0,Pos2d,"{""x"":2220,""y"":16958}",板夹仓扫码位置0 7,Hbot2DCodeScanParamMgr,LittBS0,Pos2d,"{""x"":18715,""y"":22069}",小缓冲液扫码位置0 13,Hbot2DCodeScanParamMgr,LarBS0,Pos2d,"{""x"":51780,""y"":13622}",大缓冲液扫码位置0 19,TubeFeedingModuleParamMgr,TubeHolderEnterXPos,Integer,"{""value"":-125}",入料位置 @@ -14,9 +14,9 @@ id,service,key,valType,val,chName 28,HbotFixedPosParamMgr,DropLiquidPos,Pos3d,"{""x"":24746,""y"":4306,""z"":1340}",滴液位置 29,HbotSamplePosParamMgr,EmergencyTubeSamplePos,Pos3d,"{""x"":51892,""y"":33716,""z"":470}",<急诊位>取样位置 30,HbotSamplePosParamMgr,EmergencyTubeSampleEndPos,Integer,"{""value"":620}",<急诊位>取样结束位置 -31,HbotSamplePosParamMgr,BloodHTubeSamplePos,Pos3d,"{""x"":25208,""y"":41764,""z"":420}",<全血高试管>取样位置 +31,HbotSamplePosParamMgr,BloodHTubeSamplePos,Pos3d,"{""x"":25458,""y"":41764,""z"":420}",<全血高试管>取样位置 32,HbotSamplePosParamMgr,BloodHTubeSampleEndPos,Integer,"{""value"":920}",<全血高试管>取样结束位置 -33,HbotSamplePosParamMgr,BloodSTubeSamplePos,Pos3d,"{""x"":25208,""y"":41764,""z"":420}",<全血低试管>取样位置 +33,HbotSamplePosParamMgr,BloodSTubeSamplePos,Pos3d,"{""x"":25458,""y"":41764,""z"":420}",<全血低试管>取样位置 34,HbotSamplePosParamMgr,BloodSTubeSampleEndPos,Integer,"{""value"":920}",<全血低试管>取样结束位置 35,HbotSamplePosParamMgr,MiniTubeSamplePos,Pos3d,"{""x"":2331,""y"":3773,""z"":433}",<迷你试管>取样位置 36,HbotSamplePosParamMgr,MinitubeSampleEndPos,Pos3d,"{""x"":2331,""y"":3773,""z"":649}",<迷你试管>取样结束位置 @@ -35,18 +35,18 @@ id,service,key,valType,val,chName 56,HbotLargeBottleBSPosMgr,LargeBuffer_0Pos,Pos2d,"{""x"":49048,""y"":15560}",大瓶缓冲液的第1个位置 57,HbotLargeBottleBSPosMgr,LargeBuffer_DX,Double,"{""value"":2840.0}",大瓶缓冲液的X间距 58,HbotLargeBottleBSPosMgr,LargeBuffer_DY,Double,"{""value"":2840.0}",大瓶缓冲液的Y间距 -61,HbotTipPosMgr,TipGroup0_000Pos,Pos3d,"{""x"":11680,""y"":1138,""z"":808}",第1组TIP的第1个位置 -62,HbotTipPosMgr,TipGroup0_SpaceingX,Double,"{""value"":932.0}",第1组TIP的X间距 -63,HbotTipPosMgr,TipGroup0_SpaceingY,Double,"{""value"":932.0}",第1组TIP的Y间距 -64,HbotTipPosMgr,TipGroup1_000Pos,Pos3d,"{""x"":27200,""y"":1138,""z"":808}",第2组TIP的第1个位置 -65,HbotTipPosMgr,TipGroup1_SpaceingX,Double,"{""value"":932.0}",第2组TIP的X间距 -66,HbotTipPosMgr,TipGroup1_SpaceingY,Double,"{""value"":932.0}",第2组TIP的Y间距 -67,HbotTipPosMgr,TipGroup2_000Pos,Pos3d,"{""x"":42690,""y"":1138,""z"":807}",第3组TIP的第1个位置 -68,HbotTipPosMgr,TipGroup2_SpaceingX,Double,"{""value"":932.0}",第3组TIP的X间距 -69,HbotTipPosMgr,TipGroup2_SpaceingY,Double,"{""value"":932.0}",第3组TIP的Y间距 +61,HbotTipPosMgr,TipGroup0_000Pos,Pos3d,"{""x"":11680,""y"":1138,""z"":805}",第1组TIP的第1个位置 +62,HbotTipPosMgr,TipGroup0_SpaceingX,Double,"{""value"":938.0}",第1组TIP的X间距 +63,HbotTipPosMgr,TipGroup0_SpaceingY,Double,"{""value"":937.0}",第1组TIP的Y间距 +64,HbotTipPosMgr,TipGroup1_000Pos,Pos3d,"{""x"":27200,""y"":1138,""z"":805}",第2组TIP的第1个位置 +65,HbotTipPosMgr,TipGroup1_SpaceingX,Double,"{""value"":938.0}",第2组TIP的X间距 +66,HbotTipPosMgr,TipGroup1_SpaceingY,Double,"{""value"":937.0}",第2组TIP的Y间距 +67,HbotTipPosMgr,TipGroup2_000Pos,Pos3d,"{""x"":42690,""y"":1138,""z"":805}",第3组TIP的第1个位置 +68,HbotTipPosMgr,TipGroup2_SpaceingX,Double,"{""value"":938.0}",第3组TIP的X间距 +69,HbotTipPosMgr,TipGroup2_SpaceingY,Double,"{""value"":937.0}",第3组TIP的Y间距 70,HbotTipPosMgr,DropTipPos,Pos3d,"{""x"":51855,""y"":27259,""z"":900}",丢TIP位置 82,TurntablePosParamMgr,PushPos0,Integer,"{""value"":-96}",入板位置 -83,TurntablePosParamMgr,PullPos0,Integer,"{""value"":17968}",出板位置 +83,TurntablePosParamMgr,PullPos0,Integer,"{""value"":17904}",出板位置 84,TurntablePosParamMgr,DropLiquidPos0,Integer,"{""value"":8968}",滴液位置 85,TurntablePosParamMgr,PosSpacing,Integer,"{""value"":1800}",位置间隔 98,OptModuleExtParamsMgr,FOptScanShift,Integer,"{""value"":2330}",F光学扫描偏移 @@ -57,7 +57,7 @@ id,service,key,valType,val,chName 103,OptModuleExtParamsMgr,TOptScanGainVal,Double,"{""value"":0.5}",T光学扫描放大倍数 104,OptModuleParamsMgr,PullerTargetPos,Integer,"{""value"":1251}",拉板目标位置 105,OptModuleParamsMgr,OptScanerDropPos,Integer,"{""value"":-104}",丢板坐标 -106,OptModuleParamsMgr,OptScanerScandbyPos,Integer,"{""value"":697}",扫描待机位 +106,OptModuleParamsMgr,OptScanerScandbyPos,Integer,"{""value"":597}",扫描待机位 107,TemperatureCtrlParamMgr,IncubatorTCMTempOffset,Double,"{""value"":0.0}",<孵育仓>温度偏移 108,TemperatureCtrlParamMgr,PlatesBoxTCMTempOffset,Double,"{""value"":0.0}",<板夹仓>温度偏移 109,TubePreProcesPosParamMgr,GripperServoOpenPos,Integer,"{""value"":1600}",<抓手>张开位置 @@ -70,9 +70,9 @@ id,service,key,valType,val,chName 116,TubePreProcesPosParamMgr,ZMotorTakeHTubePos,Integer,"{""value"":753}",取高试管位置 117,TubePreProcesPosParamMgr,ZMotorTakeSTubePos,Integer,"{""value"":973}",取低试管位置 118,TubePreProcesPosParamMgr,ZMotorShakeTubePos,Integer,"{""value"":800}",摇匀放置位置 -119,PlatesBoxPosParamMgr,Ch0YPos,Integer,"{""value"":36}",通道0Y轴位置 -120,PlatesBoxPosParamMgr,Ch5YPos,Integer,"{""value"":1362}",通道5Y轴位置 -121,PlatesBoxPosParamMgr,PushEndXPos,Integer,"{""value"":1243}",推杆到位坐标 +119,PlatesBoxPosParamMgr,Ch0YPos,Integer,"{""value"":30}",通道0Y轴位置 +120,PlatesBoxPosParamMgr,Ch5YPos,Integer,"{""value"":1354}",通道5Y轴位置 +121,PlatesBoxPosParamMgr,PushEndXPos,Integer,"{""value"":1230}",推杆到位坐标 122,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT,Double,null,体积校准系数 123,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT_A,Double,"{""value"":1.033378}",体积校准系数-A 124,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT_B,Double,"{""value"":2.76625}",体积校准系数-B @@ -96,8 +96,16 @@ id,service,key,valType,val,chName 146,TubeFeedingModuleParamMgr,OutfeedOvertime,Integer,"{""value"":10}",出料超时时间 147,Hbot2DCodeScanParamMgr,PBDY,Double,"{""value"":2650.0}",板夹仓扫码位置Y 148,TubePreProcesPosParamMgr,ShakeModLiftingSVWorkPos,Integer,"{""value"":2343}",<顶升舵机>工作位置 -149,Hbot2DCodeScanParamMgr,PBQRCodeDY,Double,"{""value"":2650.0}",板夹仓扫码GROUP间距 +149,Hbot2DCodeScanParamMgr,PBQRCodeDY,Double,"{""value"":2692.0}",板夹仓扫码GROUP间距 150,Hbot2DCodeScanParamMgr,LargeBSQRCodeDX,Double,"{""value"":2880.0}",大瓶缓冲液的扫码GROUP间距 151,Hbot2DCodeScanParamMgr,LargeBSQRCodeDY,Double,"{""value"":7500.0}",大瓶缓冲液的扫码GROUP间距 152,Hbot2DCodeScanParamMgr,LittleBQRCodeDX,Double,"{""value"":12300.0}",小瓶缓冲液的GROUP间距 -153,Hbot2DCodeScanParamMgr,LittleBQRCodeDY,Double,"{""value"":12540.0}",小瓶缓冲液的GROUP间距 \ No newline at end of file +153,Hbot2DCodeScanParamMgr,LittleBQRCodeDY,Double,"{""value"":12540.0}",小瓶缓冲液的GROUP间距 +154,PipetteGunLLFParamMgr,EMERGENCY_TUBE_LLF_VEL,Integer,null,<急诊试管>液面跟随速度 +155,PipetteGunLLFParamMgr,BLOOD_TUBE_LLF_VEL,Integer,null,<全血试管>液面跟随速度 +156,PipetteGunLLFParamMgr,MINI_TUBE_LLF_VEL,Integer,null,<迷你试管>液面跟随速度 +157,PipetteGunLLFParamMgr,MINI_BLOOD_LLF_VEL,Integer,null,<阳普管>液面跟随速度 +158,PipetteGunLLFParamMgr,BULLET_TUBE_1P5_LLF_VEL,Integer,null,<子弹头试管1.5ML>液面跟随速度 +159,PipetteGunLLFParamMgr,BULLET_TUBE_0P5_LLF_VEL,Integer,null,<子弹头试管0.5ML>液面跟随速度 +160,PipetteGunLLFParamMgr,STOOL_TEST_TUBE_LLF_VEL,Integer,null,<粪便试管>液面跟随速度 +161,PipetteGunLLFParamMgr,LARGE_BS_BOTTLE_LLF_VEL,Integer,null,<大瓶缓冲液>液面跟随速度 \ No newline at end of file diff --git a/src/main/resources/db/zapp_sub_module_reg_initial_value.csv b/src/main/resources/db/zapp_sub_module_reg_initial_value.csv index e587161..901d989 100644 --- a/src/main/resources/db/zapp_sub_module_reg_initial_value.csv +++ b/src/main/resources/db/zapp_sub_module_reg_initial_value.csv @@ -24,8 +24,8 @@ id,mid,regIndex,regInitVal 23,HbotM,kreg_xyrobot_max_y,42580 24,HbotM,kreg_xyrobot_run_to_zero_speed,60 25,HbotM,kreg_xyrobot_look_zero_edge_speed,10 -26,HbotM,kreg_xyrobot_shift_x,0 -27,HbotM,kreg_xyrobot_shift_y,0 +26,HbotM,kreg_xyrobot_shift_x,-90 +27,HbotM,kreg_xyrobot_shift_y,62 28,HbotM,kreg_xyrobot_pos_devi_tolerance,50 29,HbotM,kreg_xyrobot_io_trigger_append_distance,10 30,HbotM,kreg_xyrobot_default_velocity,800 @@ -57,15 +57,15 @@ id,mid,regIndex,regInitVal 56,PlatesBoxYM,kret_step_motor_pos_devi_tolerance,5 57,PlatesBoxYM,kret_step_motor_io_trigger_append_distance,10 58,PlatesBoxPusherM,kreg_step_motor_shaft,1 -59,PlatesBoxPusherM,kreg_step_motor_one_circle_pulse,20 +59,PlatesBoxPusherM,kreg_step_motor_one_circle_pulse,80 60,PlatesBoxPusherM,kreg_step_motor_one_circle_pulse_denominator,1 -61,PlatesBoxPusherM,kreg_step_motor_default_velocity,2800 +61,PlatesBoxPusherM,kreg_step_motor_default_velocity,1200 62,PlatesBoxPusherM,kreg_step_motor_ihold,4 -63,PlatesBoxPusherM,kreg_step_motor_irun,15 +63,PlatesBoxPusherM,kreg_step_motor_irun,9 64,PlatesBoxPusherM,kreg_step_motor_iholddelay,100 65,PlatesBoxPusherM,kreg_step_motor_iglobalscaler,0 66,PlatesBoxPusherM,kreg_step_motor_mres,0 -67,PlatesBoxPusherM,kreg_step_motor_run_to_zero_speed,1200 +67,PlatesBoxPusherM,kreg_step_motor_run_to_zero_speed,500 68,PlatesBoxPusherM,kreg_step_motor_look_zero_edge_speed,50 69,PlatesBoxPusherM,kreg_step_motor_max_d,0 70,PlatesBoxPusherM,kreg_step_motor_min_d,0 @@ -166,7 +166,7 @@ id,mid,regIndex,regInitVal 165,ShakeModShakeM,kret_step_motor_io_trigger_append_distance,10 166,ShakeModGripperYSV,kreg_mini_servo_pos,115 167,ShakeModGripperYSV,kreg_mini_servo_limit_velocity,10000 -168,ShakeModGripperYSV,kreg_mini_servo_limit_torque,800 +168,ShakeModGripperYSV,kreg_mini_servo_limit_torque,500 169,ShakeModGripperYSV,kreg_mini_servo_protective_torque,900 170,ShakeModGripperYSV,kreg_mini_servo_target_pos_tolerance,15 171,ShakeModGripperSV,kreg_mini_servo_pos,1503 @@ -320,28 +320,28 @@ id,mid,regIndex,regInitVal 319,IncubatorRotateCtrlM,kret_step_motor_pos_devi_tolerance,30 320,IncubatorRotateCtrlM,kret_step_motor_io_trigger_append_distance,10 327,PipetteMod,kreg_pipette_zm_shaft,0 -328,PipetteMod,kreg_pipette_zm_one_circle_pulse,20 +328,PipetteMod,kreg_pipette_zm_one_circle_pulse,80 329,PipetteMod,kreg_pipette_zm_one_circle_pulse_denominator,1 -330,PipetteMod,kreg_pipette_zm_default_velocity,2000 -331,PipetteMod,kreg_pipette_zm_ihold,8 -332,PipetteMod,kreg_pipette_zm_irun,20 +330,PipetteMod,kreg_pipette_zm_default_velocity,1200 +331,PipetteMod,kreg_pipette_zm_ihold,7 +332,PipetteMod,kreg_pipette_zm_irun,7 333,PipetteMod,kreg_pipette_zm_iholddelay,10 334,PipetteMod,kreg_pipette_zm_iglobalscaler,0 -335,PipetteMod,kreg_pipette_zm_run_to_zero_speed,800 +335,PipetteMod,kreg_pipette_zm_run_to_zero_speed,600 336,PipetteMod,kreg_pipette_zm_look_zero_edge_speed,100 337,PipetteMod,kreg_pipette_zm_max_d,0 338,PipetteMod,kreg_pipette_zm_min_d,0 -339,PipetteMod,kreg_pipette_zm_vstart,100 -340,PipetteMod,kreg_pipette_zm_a1,100 -341,PipetteMod,kreg_pipette_zm_amax,1200 -342,PipetteMod,kreg_pipette_zm_v1,300 -343,PipetteMod,kreg_pipette_zm_dmax,300 -344,PipetteMod,kreg_pipette_zm_d1,100 -345,PipetteMod,kreg_pipette_zm_vstop,100 +339,PipetteMod,kreg_pipette_zm_vstart,30 +340,PipetteMod,kreg_pipette_zm_a1,200 +341,PipetteMod,kreg_pipette_zm_amax,600 +342,PipetteMod,kreg_pipette_zm_v1,500 +343,PipetteMod,kreg_pipette_zm_dmax,600 +344,PipetteMod,kreg_pipette_zm_d1,200 +345,PipetteMod,kreg_pipette_zm_vstop,30 346,PipetteMod,kreg_pipette_zm_tzerowait,0 347,PipetteMod,kreg_pipette_zm_enc_resolution,0 348,PipetteMod,kreg_pipette_zm_enable_enc,0 -349,PipetteMod,kreg_pipette_zm_dzero,0 +349,PipetteMod,kreg_pipette_zm_dzero,92 350,OptModScannerM,kreg_step_motor_shaft,1 351,OptModScannerM,kreg_step_motor_one_circle_pulse,1590000 352,OptModScannerM,kreg_step_motor_one_circle_pulse_denominator,10000 @@ -411,9 +411,9 @@ id,mid,regIndex,regInitVal 416,OptMod,kreg_a8k_opt_scan_d1,700 417,OptMod,kreg_a8k_opt_scan_vstop,700 418,OptMod,kreg_a8k_opt_scan_tzerowait,0 -419,PipetteMod,kreg_pipette_zm_pos_devi_tolerance,0 -420,PipetteMod,kreg_pipette_zm_io_trigger_append_distance,0 -421,PipetteMod,kreg_pipette_zm_mres,2 +419,PipetteMod,kreg_pipette_zm_pos_devi_tolerance,10 +420,PipetteMod,kreg_pipette_zm_io_trigger_append_distance,20 +421,PipetteMod,kreg_pipette_zm_mres,0 422,PlatesBoxYM,kreg_step_motor_low_velocity,0 423,PlatesBoxYM,kreg_step_motor_mid_velocity,0 424,PlatesBoxYM,kreg_step_motor_high_velocity,0 @@ -483,8 +483,8 @@ id,mid,regIndex,regInitVal 488,ShakeModTubeScanerClampingSV,kreg_mini_servo_servo_protect_time,200 489,ShakeModTubeScanerClampingSV,kreg_mini_servo_servo_overload_torque,80 490,ShakeModTubeScanerClampingSV,kreg_mini_servo_servo_acc,0 -491,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_min_angle,20 -492,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_max_angle,1003 +491,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_min_angle,0 +492,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_max_angle,0 493,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_max_temp,70 494,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_max_voltage,90 495,ShakeModTubeScanerRotateSV,kreg_mini_servo_servo_min_voltage,45