# The is the "ASYN" example for communication to either a Newport MM4000/5 or an # IMS483 controller. The examples must be configured by including or omitting # comment characters (i.e., #'s) from this file. # "#!" marks lines that can be uncommented. # The following must be added for many board support packages #!cd "... IOC st.cmd complete directory path ... " < cdCommands #!< ../nfsCommands cd topbin # If the VxWorks kernel was built using the project facility, the following must # be added before any C++ code is loaded (see SPR #28980). sysCplusEnable=1 ld < WithAsynVx.munch cd startup dbLoadDatabase("$(TOP)/dbd/WithAsynVx.dbd") WithAsynVx_registerRecordDeviceDriver(pdbbase) dbLoadTemplate("motor.substitutions") dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=IOC:") # Configure the ASYN server code. This MUST be configured too! < st_asynserver.cmd.Vx # Newport MM3000 and MM4000/5/6 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!MM3000Setup(1, 10) #!MM4000Setup(1, 10) # Newport MM3000 and MM4000/5/6 driver configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) address (GPIB only) #!MM3000Config(0, "a-Serial[0]") #!drvMM3000debug=4 #!MM4000Config(0, "a-Serial[0]") #!drvMM4000debug=4 # The MM4000 driver does not set end of string (EOS). # for RS232 serial, #!asynOctetSetInputEos( "a-Serial[0]",0,"\r") #!asynOctetSetOutputEos("a-Serial[0]",0,"\r") # for GPIB, #!asynInterposeEosConfig("L0", 10, 1, 1) #!asynOctetSetInputEos( "L0",10,"\r") #!asynOctetSetOutputEos("L0",10,"\r") # Newport PM500 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!PM500Setup(1, 10) # Newport PM500 configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) address (GPIB only) #!PM500Config(0, "a-Serial[0]") #!drvPM500debug=4 # IMS IM483 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) # SM - single mode PL - party mode #!IM483SMSetup(1, 10) #!IM483PLSetup(1, 10) # IMS IM483 configuration parameters: # (1) controller# (chain#) being configured, # (2) ASYN port name # SM - single mode PL - party mode #!IM483SMConfig(0, "a-Serial[0]") #!drvIM483SMdebug=4 #!IM483PLConfig(0, "a-Serial[0]") #!drvIM483PLdebug=4 # MCB-4B driver setup parameters: # (1) maximum # of controllers, # (2) motor task polling rate (min=1Hz, max=60Hz) #!MCB4BSetup(1, 10) # MCB-4B driver configuration parameters: # (1) controller # (2) ASYN port name #!MCB4BConfig(0, "a-Serial[0]") #!asynOctetSetInputEos("a-Serial[0]",0,"\r") #!asynOctetSetOutputEos("a-Serial[0]",0,"\r") #!drvMCB4BDebug=4 # Newport ESP300 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!ESP300Setup(1, 10) # Newport ESP300 driver configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) address (GPIB only) #!ESP300Config(0, "a-Serial[0]") #!drvESP300debug = 4 # MicroMo MVP2001 driver setup parameters: # # NOTE: The 1st controller on each chain should have it's address = 1. # The rest of the controllers on a chain should follow sequentially. # # # int MVP2001Setup(int num_cards, /* number of CHAINS of controllers */ # int scan_rate) /* polling rate (Min=1Hz, max=60Hz) */ #!MVP2001Setup(1, 10) # int MVP2001Config(int card, /* CHAIN being configured */ # (2) ASYN port name #!MVP2001Config(0, "a-Serial[0]") #!drvMVP2001debug=4 # PI C-844 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!PIC844Setup(1, 10) # PI C-844 driver configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) address (GPIB only) #!PIC844Config(0, "a-Serial[0]") #!drvPIC844debug = 4 # PI C-848 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!PIC848Setup(1, 2) # PI C-848 driver configuration parameters: # (1) controller# being configured, # (2) ASYN port name #!PIC848Config(0, "a-Serial[0]") #!drvPIC848debug = 4 # PI E-662 Piezo driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz, max=60Hz) #!PIC662Setup(1, 60) # PI E-662 Piezo driver configuration parameters: # (1) controller being configured # (2) asyn port name (string) #!PIC662Config(0, "serial1") #!drvPIC662debug = 4 # PI C-862 DC-motor driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz, max=60Hz) #!PIC862Setup(1, 60) # PI C-862 DC-motor driver configuration parameters: # (1) controller being configured # (2) asyn port name (string) #!PIC862Config(0, "serial1") #!drvPIC862debug = 4 # New Focus Picomotor Network Controller (model 8750/2) (setup parameters: # (1) maximum number of controllers in system # (2) maximum number of drivers per controller (1 - 3) # (3) motor task polling rate (min=1Hz,max=60Hz) #!PMNC87xxSetup(1, 2, 10) # New Focuc Picomotor Network Controller (model 8750/2) configuration parameters: # (1) controller# being configured, # (2) asyn port name (string) #!PMNC87xxConfig(0, "serial2") #!drvPMNC87xxdebug=4 # Micos MoCo driver setup parameters: # Load MicosSetup once. # (1) max # of controller groups. Controller groups are per serial # port. # (2) max # axes per controller group. Maximum 16. (addr 0-15) # (3) motor task polling rate (min=1Hz, max=60Hz, 10Hz works well) # Example: # MicosSetup(1, 2, 10) 1 group. 2 axes (controllers) in the group. # 10Hz poll. #!MicosSetup(1, 2, 10) # Micos MoCo driver configuration parameters: # Load one MicosConfig for each group of Micos drivers. # (1) "Controller group" number # (2) ASYN port name #!MicosConfig(0, "a-Serial[0]") #!drvMicosDebug = 4 # IMS MDrive driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!MDriveSetup(1, 10) # IMS MDrive driver configuration parameters: # (1) controller# being configured #!MDriveConfig(0, "a-Serial[0]") #!drvMDrivedebug = 4 # Newport XPSC8 driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!XPSC8Setup(2, 60) # Newport XPSC8 driver configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) ASYN port # # (4) number of axes #!XPSC8Config(0, "tcp1", 0, 6) #!XPSC8Config(1, "tcp2", 0, 8) # Newport XPSC8 group and positioner name configuration: # (1) controller# being configured # (2) axis# being configured. # (3) groupnumber # (4) groupsize # (5) # of axes in group # (6) group name # (7) positioner name #!XPSC8NameConfig(0,0,0,6,0,"GROUP1","GROUP1.PHI") #!XPSC8NameConfig(0,1,0,6,1,"GROUP1","GROUP1.KAPPA") #!XPSC8NameConfig(0,2,0,6,2,"GROUP1","GROUP1.OMEGA") #!XPSC8NameConfig(0,3,0,6,3,"GROUP1","GROUP1.PSI") #!XPSC8NameConfig(0,4,0,6,4,"GROUP1","GROUP1.2THETA") #!XPSC8NameConfig(0,5,0,6,5,"GROUP1","GROUP1.NU") #!XPSC8NameConfig(1,0,0,1,0,"GROUP1","GROUP1.Y1_BASE") #!XPSC8NameConfig(1,1,1,1,0,"GROUP2","GROUP2.Y2_BASE") #!XPSC8NameConfig(1,2,2,1,0,"GROUP3","GROUP3.Y3_BASE") #!XPSC8NameConfig(1,3,3,1,0,"GROUP4","GROUP4.TRX_BASE") #!XPSC8NameConfig(1,4,4,1,0,"GROUP5","GROUP5.THETA-Y_BASE") #!XPSC8NameConfig(1,5,5,1,0,"GROUP6","GROUP6.X_SAMPLE") #!XPSC8NameConfig(1,6,6,1,0,"GROUP7","GROUP7.Y_SAMPLE") #!XPSC8NameConfig(1,7,7,1,0,"GROUP8","GROUP8.Z_SAMPLE") # The XPSC8 driver does not set the ASYN end of string (EOS). #!asynOctetSetInputEos("tcp1",0,"") #!asynOctetSetOutputEos("tcp1",0,"") #!asynOctetSetInputEos("tcp2",0,"") #!asynOctetSetOutputEos("tcp2",0,"") # OMS PC68/78 stand-alone serial driver setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!OmsPC68Setup(1, 10) # OMS PC68/78 stand-alone serial driver configuration parameters: # (1) Card# being configured # (2) asyn port name #!OmsPC68Config(0, "L0") #!drvOmsPC68debug=4 # Kohzu SC-800 motor controller setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!SC800Setup(1, 5) # Kohzu SC-800 motor controller configuration parameters: # (1) controller# being configured # (2) ASYN port name # (3) address (GPIB only) #!SC800Config(0, "L0", 0) #!drvSC800debug=4 # Faulhaber MCDC2805 driver setup parameters: # (1)Max. controller count # (2)Polling rate #!MCDC2805Setup(1, 10) # Faulhaber MCDC2805 driver configuration parameters: # (1)Card being configured # (2)# modules on this serial port # (3)asyn port name #!MCDC2805Config(0, 1, "L0") #!drvMCDC2805debug=4 # The MCDC2805 driver does not set end of string (EOS). #!asynOctetSetInputEos("L0",0,"\r") #!asynOctetSetOutputEos("L0",0,"\r") # attocube ANC 150 asyn motor driver setup parameter. #!ANC150AsynSetup(1) /* number of ANC150 controllers in system. */ # attocube ANC 150 asyn motor driver configure parameters. # (1) Controller number being configured # (2) ASYN port name # (3) Number of axes this controller supports # (4) Time to poll (msec) when an axis is in motion # (5) Time to poll (msec) when an axis is idle. 0 for no polling #!ANC150AsynConfig(0, "a-Serial[1]", 3, 250, 2000) # Aerotech Ensemble digital servo controller Setup # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) #!EnsembleSetup(1, 10) # Aerotech Ensemble digital servo controller Configure # (1) controller# being configured, # (2) asyn port name (string) #!EnsembleConfig(0, "a-Serial[0]") # Newport MM4000/5/6 asyn motor driver setup parameter. #!MM4000AsynSetup(1) /* number of MM4000 controllers in system. */ # Newport MM4000/5/6 asyn motor driver configure parameters. # (1) Controller number being configured # (2) ASYN port name # (3) ASYN address (GPIB only) # (4) Number of axes this controller supports # (5) Time to poll (msec) when an axis is in motion # (6) Time to poll (msec) when an axis is idle. 0 for no polling #!MM4000AsynConfig(0, "a-Serial[1]", 0, 1, 100, 250) # Asyn-based Motor Record support # (1) Asyn port # (2) Driver name # (3) Controller index # (4) Max. number of axes #!drvAsynMotorConfigure("ANC150","motorANC150",0,1) iocInit # motorUtil (allstop & alldone) motorUtilInit("IOC:")