def Disconnect(self): if not self.simulation: self.handle.disconnect() self.addlog(Motion.Disconnect(self)) return self.returnlog()
def __init__(self, name): Motion.__init__(self, name) self.descriptors = list({*self.descriptors, 'Aerotech', 'A3200', 'sensor'}) self.tasklog = {'task1': [], 'task2': [], 'task3': [], 'task4': []} self.commandlog = [] self.defaulttask = 1 self.handle = '' # Possible modes are cmd and loadrun self.axes = [ 'X', 'x', 'Y', 'y', 'ZZ1', 'zz1', 'ZZ2', 'zz2', 'ZZ3', 'zz3', 'ZZ4', 'zz4', 'i', 'I', 'j', 'J', 'k', 'K', ] self.axismask = {} self.maxaxis = 4 self.requirements['Set_Motion']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'task being used for this operation', } self.requirements['Set_Motion']['length_units'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'length units for motion', } self.requirements['Set_Motion']['MotionRamp'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Ramp rate for a set of coordinated motions', } self.requirements['Set_Motion']['MaxAccel'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Maximum acceleration during coordinated motion', } self.requirements['Set_Motion']['LookAhead'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Activate multi-command motion planning', } self.requirements['Set_Motion']['axismask'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'how to convert between target and machine dimensions', } self.requirements['Set_Motion']['dtask'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'default task', } self.requirements['Move'] = {} self.requirements['Move']['point'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Information about where to move to', } self.requirements['Move']['motiontype'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'kind of path taken to point', } self.requirements['Move']['speed'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'speed of the motion', } self.requirements['Move']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'task being used for this operation', } self.requirements['Move']['motionmode'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'cmd or loadrun to determine if it si stored in a buffer, commandlog, or run immediately', } self.requirements['set_DO'] = {} self.requirements['set_DO']['axis'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'IO axis', } self.requirements['set_DO']['bit'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'bit on IO axis', } self.requirements['set_DO']['value'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'value of that bit. 0 or 1', } self.requirements['Run'] = {} self.requirements['Run']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Which task buffer to run', } self.requirements['getPosition'] = {} self.requirements['getPosition']['address'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Address of where to store result', } self.requirements['getPosition']['addresstype'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Type of address', } self.requirements['getPosition']['axislist'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'List of axes that will be reported', } self.requirements['getAI'] = {} self.requirements['getAI']['address'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Address of where to store result', } self.requirements['getAI']['addresstype'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Type of address', } self.requirements['getAI']['axis'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Axis of AI', } self.requirements['getAI']['channel'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Channel on that axis', } self.requirements['Load'] = {} self.requirements['Load']['cmstr'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'String of commands to load', } self.requirements['Load']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'task being used for this operation', } self.requirements['Load']['mode'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'cmd or loadrun to determine if it si stored in a buffer, commandlog, or run immediately', } self.requirements['LogData_Start'] = {} self.requirements['LogData_Start']['file'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Where to store results', } self.requirements['LogData_Start']['points'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'Maximum number of points to collect', } self.requirements['LogData_Start']['parameters'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': '{axis: [pc, pf, vc, vf, ac, af]...}', } self.requirements['LogData_Start']['interval'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'cmd or loadrun to determine if it si stored in a buffer, commandlog, or run immediately', } self.requirements['LogData_Start']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'task being used for this operation', } self.requirements['LogData_Start']['mode'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'cmd or loadrun to determine if it si stored in a buffer, commandlog, or run immediately', } self.requirements['LogData_Stop'] = {} self.requirements['LogData_Stop']['task'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'task being used for this operation', } self.requirements['LogData_Stop']['mode'] = { 'value': '', 'source': 'apparatus', 'address': '', 'desc': 'cmd or loadrun to determine if it si stored in a buffer, commandlog, or run immediately', }