sige 2 years ago
parent
commit
d4a673053a
  1. 2
      src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java
  2. 3
      src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommand.java
  3. 12
      src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java
  4. 4
      src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActServo.java
  5. 12
      src/src/main/java/com/my/graphiteDigesterBg/task/TaskDoorClose.java
  6. 12
      src/src/main/java/com/my/graphiteDigesterBg/task/TaskDoorOpen.java
  7. 5
      src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java
  8. 21
      src/src/main/resources/device.yml

2
src/src/main/java/com/my/graphiteDigesterBg/MyDevice.java

@ -11,7 +11,7 @@ public class MyDevice extends DiDevice {
public static String ACT_TRANSFER_UD_MOTOR = "TransferArmUDMotor";
public static String ACT_TRANSFER_LR_MOTOR = "TransferArmLRMotor";
public static String ACT_TRANSFER_CLIP_SERVO = "TransferClipServeMotor";
public static String ACT_DOOR_MOTOR = "DoorMotor";

3
src/src/main/java/com/my/graphiteDigesterBg/diframe/DiCommand.java

@ -6,8 +6,9 @@ public enum DiCommand {
MODULE_GET_REG("module_get_reg", 0x0106),
MODULE_ENABLE("module_enable", 0x0114),
MOTOR_EASY_MOVE_BY("motor_easy_move_by", 0x0212),
MOTOR_EASY_MOVE_TO("motor_easy_move_to", 0x0213),
MOTOR_EASY_MOVE_TO_ZERO("motor_easy_move_to_zero", 0x0214),
MOTO_EASY_MOVE_TO("moto_easy_move_to", 0x0213);
MOTOR_EASY_MOVE_TO_IO("motor_easy_move_to_io", 0x0216);
// command name
private final String name;

12
src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActMotor.java

@ -94,7 +94,7 @@ public class DiActMotor extends DiActuatorBase {
// move to position
public void moveTo( Integer pos ) {
this.log("moveTo {}", pos);
this.call(DiCommand.MOTO_EASY_MOVE_TO, pos);
this.call(DiCommand.MOTOR_EASY_MOVE_TO, pos);
this.waitForFinish();
}
@ -102,10 +102,14 @@ public class DiActMotor extends DiActuatorBase {
public void moveTo( String key, Object ... args ) {
Integer pos = this.getLocationValue(key, args);
this.log("moveTo #{}={}", key, pos);
this.call(DiCommand.MOTO_EASY_MOVE_TO, pos);
this.call(DiCommand.MOTOR_EASY_MOVE_TO, pos);
this.waitForFinish();
}
public void rotate( Integer direction ) {}
public void stop() {}
// move to IO
public void moveToIO( Integer ioIndex, Integer direction ) {
this.log("moveToIO {} {}", ioIndex, direction);
this.call(DiCommand.MOTOR_EASY_MOVE_TO_IO, ioIndex, direction);
this.waitForFinish();
}
}

4
src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActServo.java

@ -20,7 +20,7 @@ public class DiActServo extends DiActuatorBase {
// move to position
public void moveTo( Integer pos ) {
this.log("moveTo", pos);
this.call(DiCommand.MOTO_EASY_MOVE_TO, pos);
this.call(DiCommand.MOTOR_EASY_MOVE_TO, pos);
this.waitForFinish();
}
@ -28,7 +28,7 @@ public class DiActServo extends DiActuatorBase {
public void moveTo( String key, Object... args ) {
Integer pos = this.getLocationValue(key, args);
this.log("moveTo #{}={}", key, pos);
this.call(DiCommand.MOTO_EASY_MOVE_TO, pos);
this.call(DiCommand.MOTOR_EASY_MOVE_TO, pos);
this.waitForFinish();
}

12
src/src/main/java/com/my/graphiteDigesterBg/task/TaskDoorClose.java

@ -1,17 +1,17 @@
package com.my.graphiteDigesterBg.task;
import com.my.graphiteDigesterBg.MyDevice;
import com.my.graphiteDigesterBg.diframe.DiTaskBase;
import com.my.graphiteDigesterBg.diframe.Task;
import com.my.graphiteDigesterBg.diframe.actuator.DiActMotor;
@Task(name="DoorClose")
public class TaskDoorClose extends DiTaskBase {
@Override
public void run() {
this.setStatus(TaskStatus.RUNNING);
// @TODO : 关闭门
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
DiActMotor doorMotor = this.getActuator(MyDevice.ACT_DOOR_MOTOR, DiActMotor.class);
doorMotor.moveToIO(1, 1);
this.setStatus(TaskStatus.FINISHED);
}
}

12
src/src/main/java/com/my/graphiteDigesterBg/task/TaskDoorOpen.java

@ -1,17 +1,17 @@
package com.my.graphiteDigesterBg.task;
import com.my.graphiteDigesterBg.MyDevice;
import com.my.graphiteDigesterBg.diframe.DiTaskBase;
import com.my.graphiteDigesterBg.diframe.Task;
import com.my.graphiteDigesterBg.diframe.actuator.DiActMotor;
@Task(name="DoorOpen")
public class TaskDoorOpen extends DiTaskBase {
@Override
public void run() {
this.setStatus(TaskStatus.RUNNING);
// @TODO : 打开门
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
DiActMotor doorMotor = this.getActuator(MyDevice.ACT_DOOR_MOTOR, DiActMotor.class);
doorMotor.reset();
this.setStatus(TaskStatus.FINISHED);
}
}

5
src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java

@ -13,6 +13,11 @@ public class TaskStartReset extends DiTaskBase {
runtimeVars.set("IsDeviceReady", "NO");
runtimeVars.set("IsTaskStartResetExecuting", "YES");
// 门电机
DiActMotor doorMotor = this.getActuator(MyDevice.ACT_DOOR_MOTOR, DiActMotor.class);
doorMotor.setEnable(true);
doorMotor.moveToIO(1, 1);
// 试管夹爪舵机
DiActServo transferClipServo = this.getActuator(MyDevice.ACT_TRANSFER_CLIP_SERVO, DiActServo.class);
transferClipServo.setEnable(true);

21
src/src/main/resources/device.yml

@ -1,11 +1,11 @@
connection :
class : com.my.graphiteDigesterBg.diframe.connection.DiConSerialPort
path : COM6
path : COM3
baudRate : 921600
frameTimeout : 100
callTimeout : 5000
mode : binary # text | hex | binary
commandLogEnable : false
commandLogEnable : true
# class : com.my.graphiteDigesterBg.diframe.connection.DiConWebsocket
# uri : ws://127.0.0.1:8899/device
# mode : hex
@ -328,6 +328,23 @@ actuators :
stepMotorIRun: 25
volumePerCircle: 0.1
- name : 设备门电机
key: DoorMotor
mid: 61
type: Motor
shaft: 0
oneCirclePulse: 100
oneCirclePulseDenominator: 1
defaultVelocity: 50
defaultAcc: 300
defaultDec: 300
runToZeroSpeed: 50
runToZeroDec: 30
lookZeroEdgeSpeed: 50
lookZeroEdgeDec: 30
stepMotorIHold: 0
stepMotorIRun: 4
# device registers
registers :
# 加热盘 Slot Cover

Loading…
Cancel
Save