def __init__(self, device): self.device = device + 9 self.rPR = 0 self.rSP = 255 self.rFR = 150 self.rARD = 1 self.rATR = 0 self.rGTO = 0 self.rACT = 0 self.gSTA = 0 self.gACT = 0 self.gGTO = 0 self.gOBJ = 0 self.gFLT = 0 self.gPO = 0 self.gPR = 0 self.gCU = 0 self.act_cmd = [0] * 0x19 self.act_cmd[:7] = [self.device, 0x10, 0x03, 0xE8, 0x00, 0x08, 0x10] self.act_cmd_bytes = "" self._update_cmd() # Description from Manual: # self.device = SlaveID # 0x03 = Function Code 03, Read Holding Registers # 0x07D0 = Address of the first requested register # 0x0008 = Number of registers requested # Note that there isn't a Cyclic Redundance Check (adds 0xC5CE to the end) self.stat_cmd = [self.device, 0x03, 0x07, 0xD0, 0x00, 0x08] compute_modbus_rtu_crc(self.stat_cmd) self.stat_cmd_bytes = array.array('B', self.stat_cmd).tostring()
def __init__(self, device): self.device = device + 9 self.rPR = 0 self.rSP = 255 self.rFR = 150 self.rARD = 1 self.rATR = 0 self.rGTO = 0 self.rACT = 0 self.gSTA = 0 self.gACT = 0 self.gGTO = 0 self.gOBJ = 0 self.gFLT = 0 self.gPO = 0 self.gPR = 0 self.gCU = 0 self.act_cmd = [0] * 0x19 # we need 25 bytes to fill a package self.act_cmd[:7] = [self.device, 0x10, 0x03, 0xE8, 0x00, 0x08, 0x10] # we will send 16 bytes at payload self.act_cmd_bytes = "" self._update_cmd() self.stat_cmd = [self.device, 0x03, 0x07, 0xD0, 0x00, 0x08] compute_modbus_rtu_crc(self.stat_cmd) self.stat_cmd_bytes = array.array( 'B', self.stat_cmd).tostring() # for asking the gripper states
def initialize_communication_variables(self): # Comunication registers self.rPR = 0 self.rSP = 255 self.rFR = 150 self.rARD = 1 self.rATR = 0 self.rGTO = 0 self.rACT = 0 self.gSTA = 0 self.gACT = 0 self.gGTO = 0 self.gOBJ = 0 self.gFLT = 0 self.gPO = 0 self.gPR = 0 self.gCU = 0 self.act_cmd = [0] * 0x19 self.act_cmd[:7] = [self.device_id, 0x10, 0x03, 0xE8, 0x00, 0x08, 0x10] self.act_cmd_bytes = "" self._update_cmd() self.stat_cmd = [self.device_id, 0x03, 0x07, 0xD0, 0x00, 0x08] compute_modbus_rtu_crc(self.stat_cmd) self.stat_cmd_bytes = array.array('B', self.stat_cmd).tostring() self._max_force = 100.0 # [%]
def _update_cmd(self): self._update_action_req() self.act_cmd = self.act_cmd[:len(self.act_cmd) - 2] self.act_cmd[ACTION_REQ_IDX] = self._act_req & 0x39 self.act_cmd[POS_INDEX] = self.rPR & 0xFF self.act_cmd[SPEED_INDEX] = self.rSP & 0xFF self.act_cmd[FORCE_INDEX] = self.rFR & 0xFF compute_modbus_rtu_crc(self.act_cmd)
def _update_cmd(self): self._update_action_req() self.act_cmd = self.act_cmd[:len(self.act_cmd) - 2] self.act_cmd[ACTION_REQ_IDX] = self._act_req & 0x39 self.act_cmd[POS_INDEX] = self.rPR & 0xFF self.act_cmd[SPEED_INDEX] = self.rSP & 0xFF self.act_cmd[FORCE_INDEX] = self.rFR & 0xFF compute_modbus_rtu_crc(self.act_cmd) # add the last crc check bytes self.act_cmd_bytes = array.array('B', self.act_cmd).tostring()
def _update_cmd(self): self._update_action_req() self.act_cmd = self.act_cmd[:len(self.act_cmd)-2] self.act_cmd[ACTION_REQ_IDX] = self._act_req & 0x39 self.act_cmd[POS_INDEX] = self.rPR & 0xFF self.act_cmd[SPEED_INDEX] = self.rSP & 0xFF self.act_cmd[FORCE_INDEX] = self.rFR & 0xFF compute_modbus_rtu_crc(self.act_cmd) self.act_cmd_bytes = array.array('B',self.act_cmd).tostring()
def __init__(self, device): self.device = device + 9 self.rPR = 0 self.rSP = 255 self.rFR = 150 self.rARD = 1 self.rATR = 0 self.rGTO = 0 self.rACT = 0 self.gSTA = 0 self.gACT = 0 self.gGTO = 0 self.gOBJ = 0 self.gFLT = 0 self.gPO = 0 self.gPR = 0 self.gCU = 0 self.act_cmd = [0] * 0x19 self.act_cmd[:7] = [self.device, 0x10, 0x03, 0xE8, 0x00, 0x08, 0x10] self._update_cmd() self.stat_cmd = [self.device, 0x03, 0x07, 0xD0, 0x00, 0x08] compute_modbus_rtu_crc(self.stat_cmd)
def __init__(self,device): self.device = device+9 self.rPR = 0 self.rSP = 255 self.rFR = 150 self.rARD = 1 self.rATR = 0 self.rGTO = 0 self.rACT = 0 self.gSTA = 0 self.gACT = 0 self.gGTO = 0 self.gOBJ = 0 self.gFLT = 0 self.gPO = 0 self.gPR = 0 self.gCU = 0 self.act_cmd = [0] * 0x19 self.act_cmd[:7] = [self.device, 0x10, 0x03, 0xE8, 0x00,0x08, 0x10] self.act_cmd_bytes = "" self._update_cmd() self.stat_cmd = [self.device, 0x03, 0x07, 0xD0, 0x00, 0x08] compute_modbus_rtu_crc(self.stat_cmd) self.stat_cmd_bytes = array.array('B',self.stat_cmd).tostring()