Presentation is loading. Please wait.

Presentation is loading. Please wait.

Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Feb. 2013 Motor Support.

Similar presentations


Presentation on theme: "Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Feb. 2013 Motor Support."— Presentation transcript:

1 Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS kasemirk@ornl.gov Feb. 2013 Motor Support

2 2Managed by UT-Battelle for the Department of Energy ‘motor’ Record Bigger building block than usual records. About 100 Fields: –Current Position, desired Position –Raw ticks, physical coordinates –Assumed position vs. encoder position –Acceleration, Speed –Backlash compensation –Retries –Limit switches, software limits –De-Energize when idle –…

3 3Managed by UT-Battelle for the Department of Energy Example Display

4 4Managed by UT-Battelle for the Department of Energy Supported Motors Simulation Oregon Micro Systems, Inc. (OMS) models; VME8, VME44, VME58, VS4, VX2, MAXv, PC68 and PC78. Highland Technologies model V540. Newport models MM3000, MM4000/5/6, PM500, ESP300/301/100 and XPSC8. Intelligent Motion Systems, Inc. (IMS) models IM483 and MDrive. Advanced Control Systems, Corp. model MCB-4B. Mclennan models PM304 and PM600. Physik Instrumente (PI) GmbH & Co. model C-630, C-844, C-848, C-862, E-662, E-710 and E-816. MicroMo model MVP 2001 B02. Micos model MoCo dc controller. Delta Tau PMAC2-VME controller. Faulhaber MCDC2805 servo controller. Parker Hannifin, Compumotor Division, 6K Series controllers. New Focus, models; 8750 and 8752. ACS Motion Control, SPiiPlus model. Spectra-Physics, Encoder Mike Controller, Model 18011. Thorlabs, Piezo Controller, Model MDT695. Animatics Corporation SmartMotor. piezosystem jena GmbH EDS data interface module. Kohzu SC-200, SC-400, SC-800 stepper motor controllers. attocube systems AG ANC150 Piezo Step Controller. Aerotech Ensemble digital servo controller. Quite a few.. sites around the world contribute drivers Your mileage may vary It does what they needed at the time

5 5Managed by UT-Battelle for the Department of Energy Full Example: Adding motor to IOC  configure/RELEASE: SUPPORT=/home/controls/epics/R3.14.12.2/support ASYN=$(SUPPORT)/asyn MOTOR=$(SUPPORT)/motor  demoApp/src/Makefile demo_DBD += asyn.dbd demo_DBD += drvAsynIPPort.dbd demo_DBD += motorSupport.dbd demo_DBD += motorSimSupport.dbd demo_DBD += devPC6K.dbd demo_LIBS += asyn demo_LIBS += motor demo_LIBS += motorSimSupport demo_LIBS += Parker  Details depend on specific motor

6 6Managed by UT-Battelle for the Department of Energy Database: Simulated motor  demoApp/Db/sim_motor.db: record(motor,"$(S):mot1”) { field(DTYP, "asynMotor”) field(VELO, "1") field(VBAS, ".1") field(ACCL, ".2") field(OUT, "@asyn(motorSim1,0)") field(MRES, "0.01") field(PREC, "5") field(EGU, "mm") field(DHLM, "100") field(DLLM, "0") }  demoApp/src/Makefile DB += sim_motor.db

7 7Managed by UT-Battelle for the Department of Energy IOC Startup file  iocBoot/iocdemo/st.cmd: # Create simulated motors: # (card, axis, low limit, high limit, home, # cards, # axes) motorSimCreate(0, 0, 0, 36000, 0, 1, 4) # Setup the Asyn layer # (portname, low-level driver drvet name, card, number of axes on card) drvAsynMotorConfigure("motorSim1", "motorSim", 0, 4)  record(dbLoadRecords "db/sim_motor.db", "S=ky9")

8 8Managed by UT-Battelle for the Department of Energy Database: Parker 6K  record(motor,"$(S):controller0motor0") { … field(DTYP, "PC6K") field(OUT, "#C0 S0") … }

9 9Managed by UT-Battelle for the Department of Energy IOC Startup file # Setup the Asyn layer drvAsynIPPortConfigure ("pc6k8","192.168.62.10:4001") asynOctetSetInputEos("pc6k8",0,">") asynOctetSetOutputEos("pc6k8",0,"\r") # Test direct communication within IOC shell asynOctetConnect("pc6k8", "pc6k8") asynOctetWriteRead("pc6k8", "TPC") # Maybe send init. commands asynOctetWriteRead("pc6k8", "DRIVE00000000") # Log basic in/out texts asynSetTraceMask("pc6k8", 0, 0x2) asynSetTraceIOMask("pc6k8", 0, 2) # Parker/Compumotor # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz, max=60Hz) PC6KSetup(1, 60) # (1) controller being configured # (2) asyn port name (string) PC6KConfig(0, "pc6k8") dbLoadRecords("db/pc6kmotor.db", "S=CG1D")

10 10Managed by UT-Battelle for the Department of Energy Parker 6K https://trac.sns.gov/slowcontrols/wiki/Parker6Khttps://trac.sns.gov/slowcontrols/wiki/Parker6K :  Relationship between –Raw motor commands “1V46;1D1000;1GO;…” –Motor record  Spreadsheet

11 11Managed by UT-Battelle for the Department of Energy More  Pre/post move commands –Example: Energize, de-energize motor  ‘DMOV’ to check if motor is ‘done’  …

12 12Managed by UT-Battelle for the Department of Energy ‘Asyn’-Based motor support Original: Motor Record Abstraction, common denominator for many different types of motor hardware –Fixed number of fields –How to support controllers that allow trajectory? Now: Asyn-based  Can add per-function records  Waveform: download trajectory points  BO: Start tracing trajectory  …

13 13Managed by UT-Battelle for the Department of Energy Summary  Motor record has many fields  Fundamentally –Write desired position to record –Monitor DMOV, maybe RBV  Details vary. Need to spend time w/ specific motor hardware


Download ppt "Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Feb. 2013 Motor Support."

Similar presentations


Ads by Google