Download presentation
Presentation is loading. Please wait.
Published byAshlynn Riley Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.