diff --git a/iocBoot/ioc-lamp-motion/lamp_motion.archive b/iocBoot/ioc-lamp-motion/lamp_motion.archive
index 977a7ab..716a98a 100644
--- a/iocBoot/ioc-lamp-motion/lamp_motion.archive
+++ b/iocBoot/ioc-lamp-motion/lamp_motion.archive
@@ -57,6 +57,165 @@ TMO:LAMP:MMS:01:PLC:nHomingMode_RBV.VAL 1 scan
TMO:LAMP:MMS:01:PLC:nMotionAxisID_RBV.VAL 1 scan
TMO:LAMP:MMS:01:PLC:sErrorMessage_RBV.VAL 1 scan
TMO:LAMP:MMS:01:PLC:sName_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bAllBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bAllEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bAllForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bBrakeRelease_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bBusy_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bEnable.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bEnableDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bError_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bExecute_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bExecute.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bGantryAxis_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bGantryBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bGantryForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bHardwareEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bHome_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bHomeCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bHomeCmd.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bHomed_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bLimitBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bLimitForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bMoveCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bMoveCmd.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bPowerSelf_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bReset_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bReset.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bSafetyReady_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bUserEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:bUserEnable.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fAcceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fAcceleration.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fDeceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fDeceleration.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fHomePosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fHomePosition.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fPosDiff_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fPosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fPosition.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fVelocity_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:fVelocity.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nBrakeMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nCmdData_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nCmdData.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nCommand_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nCommand.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nEnableMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nEncoderCount_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nErrorId_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nHomingMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:nMotionAxisID_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:sErrorMessage_RBV.VAL 1 scan
+TMO:LAMP:MMS:14:PLC:sName_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bAllBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bAllEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bAllForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bBrakeRelease_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bBusy_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bEnable.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bEnableDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bError_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bExecute_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bExecute.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bGantryAxis_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bGantryBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bGantryForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bHardwareEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bHome_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bHomeCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bHomeCmd.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bHomed_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bLimitBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bLimitForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bMoveCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bMoveCmd.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bPowerSelf_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bReset_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bReset.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bSafetyReady_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bUserEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:bUserEnable.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fAcceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fAcceleration.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fDeceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fDeceleration.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fHomePosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fHomePosition.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fPosDiff_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fPosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fPosition.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fVelocity_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:fVelocity.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nBrakeMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nCmdData_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nCmdData.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nCommand_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nCommand.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nEnableMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nEncoderCount_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nErrorId_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nHomingMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:nMotionAxisID_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:sErrorMessage_RBV.VAL 1 scan
+TMO:LAMP:MMS:15:PLC:sName_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bAllBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bAllEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bAllForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bBrakeRelease_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bBusy_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bEnable.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bEnableDone_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bError_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bExecute_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bExecute.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bGantryAxis_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bGantryBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bGantryForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bHardwareEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bHome_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bHomeCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bHomeCmd.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bHomed_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bLimitBackwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bLimitForwardEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bMoveCmd_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bMoveCmd.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bPowerSelf_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bReset_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bReset.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bSafetyReady_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bUserEnable_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:bUserEnable.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fAcceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fAcceleration.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fDeceleration_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fDeceleration.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fHomePosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fHomePosition.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fPosDiff_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fPosition_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fPosition.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fVelocity_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:fVelocity.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nBrakeMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nCmdData_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nCmdData.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nCommand_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nCommand.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nEnableMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nEncoderCount_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nErrorId_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nHomingMode_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:nMotionAxisID_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:sErrorMessage_RBV.VAL 1 scan
+TMO:LAMP:MMS:16:PLC:sName_RBV.VAL 1 scan
TMO:LAMP:MMS:02:PLC:bAllBackwardEnable_RBV.VAL 1 scan
TMO:LAMP:MMS:02:PLC:bAllEnable_RBV.VAL 1 scan
TMO:LAMP:MMS:02:PLC:bAllForwardEnable_RBV.VAL 1 scan
diff --git a/iocBoot/ioc-lamp-motion/lamp_motion.db b/iocBoot/ioc-lamp-motion/lamp_motion.db
index 539e534..20fb622 100644
--- a/iocBoot/ioc-lamp-motion/lamp_motion.db
+++ b/iocBoot/ioc-lamp-motion/lamp_motion.db
@@ -753,6 +753,2055 @@ record(waveform, "TMO:LAMP:MMS:01:PLC:sName_RBV") {
info(archive, "VAL")
}
+record(bi, "TMO:LAMP:MMS:14:PLC:bAllBackwardEnable_RBV") {
+ # Summary of axis permission to move backward
+ field(DESC, "Summary of axis perm... to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bAllBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bAllEnable_RBV") {
+ field(DESC, "Summary of axis permission to have power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bAllEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bAllForwardEnable_RBV") {
+ # Summary of axis permission to move forward
+ field(DESC, "Summary of axis perm...n to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bAllForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bBrakeRelease_RBV") {
+ field(DESC, "TRUE if brake released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bBrakeRelease?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bBusy_RBV") {
+ field(DESC, "TRUE if in the middle of a command")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bBusy?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bDone_RBV") {
+ field(DESC, "TRUE if command finished successfully")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bEnable_RBV") {
+ field(DESC, "Used internally to request enables")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bEnable") {
+ field(DESC, "Used internally to request enables")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bEnable=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bEnableDone_RBV") {
+ field(DESC, "TRUE if done enabling")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bEnableDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bError_RBV") {
+ field(DESC, "TRUE if we are in an error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M14.bError?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bExecute_RBV") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bExecute?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bExecute") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bExecute=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bGantryAxis_RBV") {
+ field(DESC, "TRUE if gantry EPS active")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bGantryAxis?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bGantryBackwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bGantryBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bGantryForwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bGantryForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bHardwareEnable_RBV") {
+ field(DESC, "TRUE if STO not hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bHardwareEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bHome_RBV") {
+ field(DESC, "TRUE if at homing switch")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bHome?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bHomeCmd_RBV") {
+ field(DESC, "Start the homing routine")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bHomeCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bHomeCmd") {
+ field(DESC, "Start the homing routine")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bHomeCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bHomed_RBV") {
+ field(DESC, "TRUE if the motor has been homed")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bHomed?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bLimitBackwardEnable_RBV") {
+ field(DESC, "FALSE if reverse limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bLimitBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bLimitForwardEnable_RBV") {
+ field(DESC, "FALSE if forward limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bLimitForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bMoveCmd_RBV") {
+ field(DESC, "Start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bMoveCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bMoveCmd") {
+ field(DESC, "Start a move")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bMoveCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bPowerSelf_RBV") {
+ field(DESC, "FALSE if axis is in PMPS")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bPowerSelf?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bReset_RBV") {
+ field(DESC, "Used internally to reset errors")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bReset?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bReset") {
+ field(DESC, "Used internally to reset errors")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bReset=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bSafetyReady_RBV") {
+ field(DESC, "TRUE if safe to start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bSafetyReady?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:14:PLC:bUserEnable_RBV") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.bUserEnable?")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:14:PLC:bUserEnable") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.bUserEnable=")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fAcceleration_RBV") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fAcceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:14:PLC:fAcceleration") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.fAcceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fDeceleration_RBV") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fDeceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:14:PLC:fDeceleration") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.fDeceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fHomePosition_RBV") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fHomePosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:14:PLC:fHomePosition") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.fHomePosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fPosDiff_RBV") {
+ field(DESC, "Position lag difference")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fPosDiff?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fPosition_RBV") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fPosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:14:PLC:fPosition") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.fPosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:14:PLC:fVelocity_RBV") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.fVelocity?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:14:PLC:fVelocity") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.fVelocity=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:14:PLC:nBrakeMode_RBV") {
+ # Describes when the brake will be released
+ field(DESC, "Describes when the b... will be released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nBrakeMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "IF_ENABLED")
+ field(ONST, "IF_MOVING")
+ field(TWST, "NO_BRAKE")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:14:PLC:nCmdData_RBV") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nCmdData?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:14:PLC:nCmdData") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.nCmdData=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:14:PLC:nCommand_RBV") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nCommand?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:14:PLC:nCommand") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M14.nCommand=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:14:PLC:nEnableMode_RBV") {
+ # Describes when the axis will automatically get power
+ field(DESC, "Describes when the a...tically get power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nEnableMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "ALWAYS")
+ field(ONST, "NEVER")
+ field(TWST, "DURING_MOTION")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:14:PLC:nEncoderCount_RBV") {
+ field(DESC, "Count from encoder hardware")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nEncoderCount?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:14:PLC:nErrorId_RBV") {
+ field(DESC, "Error code if nonzero")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M14.nErrorId?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:14:PLC:nHomingMode_RBV") {
+ field(DESC, "Describes our homing strategy")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nHomingMode?")
+ field(ZRVL, "-1")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(THVL, "3")
+ field(FRVL, "4")
+ field(FVVL, "15")
+ field(ZRST, "NONE")
+ field(ONST, "LOW_LIMIT")
+ field(TWST, "HIGH_LIMIT")
+ field(THST, "HOME_VIA_LOW")
+ field(FRST, "HOME_VIA_HIGH")
+ field(FVST, "ABSOLUTE_SET")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:14:PLC:nMotionAxisID_RBV") {
+ # Unique ID assigned to each axis in the NC
+ field(DESC, "Unique ID assigned t...ch axis in the NC")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.nMotionAxisID?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:14:PLC:sErrorMessage_RBV") {
+ field(DESC, "Message to identify the error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M14.sErrorMessage?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:14:PLC:sName_RBV") {
+ field(DESC, "PLC program name")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M14.sName?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bAllBackwardEnable_RBV") {
+ # Summary of axis permission to move backward
+ field(DESC, "Summary of axis perm... to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bAllBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bAllEnable_RBV") {
+ field(DESC, "Summary of axis permission to have power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bAllEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bAllForwardEnable_RBV") {
+ # Summary of axis permission to move forward
+ field(DESC, "Summary of axis perm...n to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bAllForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bBrakeRelease_RBV") {
+ field(DESC, "TRUE if brake released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bBrakeRelease?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bBusy_RBV") {
+ field(DESC, "TRUE if in the middle of a command")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bBusy?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bDone_RBV") {
+ field(DESC, "TRUE if command finished successfully")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bEnable_RBV") {
+ field(DESC, "Used internally to request enables")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bEnable") {
+ field(DESC, "Used internally to request enables")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bEnable=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bEnableDone_RBV") {
+ field(DESC, "TRUE if done enabling")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bEnableDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bError_RBV") {
+ field(DESC, "TRUE if we are in an error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M15.bError?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bExecute_RBV") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bExecute?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bExecute") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bExecute=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bGantryAxis_RBV") {
+ field(DESC, "TRUE if gantry EPS active")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bGantryAxis?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bGantryBackwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bGantryBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bGantryForwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bGantryForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bHardwareEnable_RBV") {
+ field(DESC, "TRUE if STO not hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bHardwareEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bHome_RBV") {
+ field(DESC, "TRUE if at homing switch")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bHome?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bHomeCmd_RBV") {
+ field(DESC, "Start the homing routine")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bHomeCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bHomeCmd") {
+ field(DESC, "Start the homing routine")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bHomeCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bHomed_RBV") {
+ field(DESC, "TRUE if the motor has been homed")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bHomed?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bLimitBackwardEnable_RBV") {
+ field(DESC, "FALSE if reverse limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bLimitBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bLimitForwardEnable_RBV") {
+ field(DESC, "FALSE if forward limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bLimitForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bMoveCmd_RBV") {
+ field(DESC, "Start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bMoveCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bMoveCmd") {
+ field(DESC, "Start a move")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bMoveCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bPowerSelf_RBV") {
+ field(DESC, "FALSE if axis is in PMPS")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bPowerSelf?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bReset_RBV") {
+ field(DESC, "Used internally to reset errors")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bReset?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bReset") {
+ field(DESC, "Used internally to reset errors")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bReset=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bSafetyReady_RBV") {
+ field(DESC, "TRUE if safe to start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bSafetyReady?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:15:PLC:bUserEnable_RBV") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.bUserEnable?")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:15:PLC:bUserEnable") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.bUserEnable=")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fAcceleration_RBV") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fAcceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:15:PLC:fAcceleration") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.fAcceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fDeceleration_RBV") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fDeceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:15:PLC:fDeceleration") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.fDeceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fHomePosition_RBV") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fHomePosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:15:PLC:fHomePosition") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.fHomePosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fPosDiff_RBV") {
+ field(DESC, "Position lag difference")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fPosDiff?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fPosition_RBV") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fPosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:15:PLC:fPosition") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.fPosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:15:PLC:fVelocity_RBV") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.fVelocity?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:15:PLC:fVelocity") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.fVelocity=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:15:PLC:nBrakeMode_RBV") {
+ # Describes when the brake will be released
+ field(DESC, "Describes when the b... will be released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nBrakeMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "IF_ENABLED")
+ field(ONST, "IF_MOVING")
+ field(TWST, "NO_BRAKE")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:15:PLC:nCmdData_RBV") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nCmdData?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:15:PLC:nCmdData") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.nCmdData=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:15:PLC:nCommand_RBV") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nCommand?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:15:PLC:nCommand") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M15.nCommand=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:15:PLC:nEnableMode_RBV") {
+ # Describes when the axis will automatically get power
+ field(DESC, "Describes when the a...tically get power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nEnableMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "ALWAYS")
+ field(ONST, "NEVER")
+ field(TWST, "DURING_MOTION")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:15:PLC:nEncoderCount_RBV") {
+ field(DESC, "Count from encoder hardware")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nEncoderCount?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:15:PLC:nErrorId_RBV") {
+ field(DESC, "Error code if nonzero")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M15.nErrorId?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:15:PLC:nHomingMode_RBV") {
+ field(DESC, "Describes our homing strategy")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nHomingMode?")
+ field(ZRVL, "-1")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(THVL, "3")
+ field(FRVL, "4")
+ field(FVVL, "15")
+ field(ZRST, "NONE")
+ field(ONST, "LOW_LIMIT")
+ field(TWST, "HIGH_LIMIT")
+ field(THST, "HOME_VIA_LOW")
+ field(FRST, "HOME_VIA_HIGH")
+ field(FVST, "ABSOLUTE_SET")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:15:PLC:nMotionAxisID_RBV") {
+ # Unique ID assigned to each axis in the NC
+ field(DESC, "Unique ID assigned t...ch axis in the NC")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.nMotionAxisID?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:15:PLC:sErrorMessage_RBV") {
+ field(DESC, "Message to identify the error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M15.sErrorMessage?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:15:PLC:sName_RBV") {
+ field(DESC, "PLC program name")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M15.sName?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bAllBackwardEnable_RBV") {
+ # Summary of axis permission to move backward
+ field(DESC, "Summary of axis perm... to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bAllBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bAllEnable_RBV") {
+ field(DESC, "Summary of axis permission to have power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bAllEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bAllForwardEnable_RBV") {
+ # Summary of axis permission to move forward
+ field(DESC, "Summary of axis perm...n to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bAllForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bBrakeRelease_RBV") {
+ field(DESC, "TRUE if brake released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bBrakeRelease?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bBusy_RBV") {
+ field(DESC, "TRUE if in the middle of a command")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bBusy?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bDone_RBV") {
+ field(DESC, "TRUE if command finished successfully")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bEnable_RBV") {
+ field(DESC, "Used internally to request enables")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bEnable") {
+ field(DESC, "Used internally to request enables")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bEnable=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bEnableDone_RBV") {
+ field(DESC, "TRUE if done enabling")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bEnableDone?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bError_RBV") {
+ field(DESC, "TRUE if we are in an error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M16.bError?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bExecute_RBV") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bExecute?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bExecute") {
+ # Used internally and by the IOC to start or stop
+ field(DESC, "Used internally and ... to start or stop")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bExecute=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bGantryAxis_RBV") {
+ field(DESC, "TRUE if gantry EPS active")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bGantryAxis?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bGantryBackwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move backward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bGantryBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bGantryForwardEnable_RBV") {
+ field(DESC, "TRUE if gantry ok to move forward")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bGantryForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bHardwareEnable_RBV") {
+ field(DESC, "TRUE if STO not hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bHardwareEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bHome_RBV") {
+ field(DESC, "TRUE if at homing switch")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bHome?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bHomeCmd_RBV") {
+ field(DESC, "Start the homing routine")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bHomeCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bHomeCmd") {
+ field(DESC, "Start the homing routine")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bHomeCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bHomed_RBV") {
+ field(DESC, "TRUE if the motor has been homed")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bHomed?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bLimitBackwardEnable_RBV") {
+ field(DESC, "FALSE if reverse limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bLimitBackwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bLimitForwardEnable_RBV") {
+ field(DESC, "FALSE if forward limit hit")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bLimitForwardEnable?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bMoveCmd_RBV") {
+ field(DESC, "Start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bMoveCmd?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bMoveCmd") {
+ field(DESC, "Start a move")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bMoveCmd=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bPowerSelf_RBV") {
+ field(DESC, "FALSE if axis is in PMPS")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bPowerSelf?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bReset_RBV") {
+ field(DESC, "Used internally to reset errors")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bReset?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bReset") {
+ field(DESC, "Used internally to reset errors")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bReset=")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bSafetyReady_RBV") {
+ field(DESC, "TRUE if safe to start a move")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bSafetyReady?")
+ field(ZNAM, "FALSE")
+ field(ONAM, "TRUE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bi, "TMO:LAMP:MMS:16:PLC:bUserEnable_RBV") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.bUserEnable?")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV")
+ info(archive, "VAL")
+}
+
+record(bo, "TMO:LAMP:MMS:16:PLC:bUserEnable") {
+ # Used to disable power entirely for an axis
+ field(DESC, "Used to disable powe...irely for an axis")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.bUserEnable=")
+ field(ZNAM, "DISABLE")
+ field(ONAM, "ENABLE")
+ info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fAcceleration_RBV") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fAcceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:16:PLC:fAcceleration") {
+ # Used internally and by the IOC to set acceleration
+ field(DESC, "Used internally and ... set acceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.fAcceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fDeceleration_RBV") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fDeceleration?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:16:PLC:fDeceleration") {
+ # Used internally and by the IOC to set deceleration
+ field(DESC, "Used internally and ... set deceleration")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.fDeceleration=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fHomePosition_RBV") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fHomePosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:16:PLC:fHomePosition") {
+ # Used internally and by the IOC to pick home position
+ field(DESC, "Used internally and ...ick home position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.fHomePosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fPosDiff_RBV") {
+ field(DESC, "Position lag difference")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fPosDiff?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fPosition_RBV") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fPosition?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:16:PLC:fPosition") {
+ # Used internally and by the IOC as the set position
+ field(DESC, "Used internally and ... the set position")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.fPosition=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(ai, "TMO:LAMP:MMS:16:PLC:fVelocity_RBV") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynFloat64")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.fVelocity?")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(ao, "TMO:LAMP:MMS:16:PLC:fVelocity") {
+ # Used internally and by the IOC to set velocity
+ field(DESC, "Used internally and ...C to set velocity")
+ field(DTYP, "asynFloat64")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.fVelocity=")
+ field(PREC, "3")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:16:PLC:nBrakeMode_RBV") {
+ # Describes when the brake will be released
+ field(DESC, "Describes when the b... will be released")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nBrakeMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "IF_ENABLED")
+ field(ONST, "IF_MOVING")
+ field(TWST, "NO_BRAKE")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:16:PLC:nCmdData_RBV") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nCmdData?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:16:PLC:nCmdData") {
+ # Used internally and by the IOC to pass extra args
+ field(DESC, "Used internally and ...o pass extra args")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.nCmdData=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:16:PLC:nCommand_RBV") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nCommand?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longout, "TMO:LAMP:MMS:16:PLC:nCommand") {
+ # Used internally and by the IOC to pick move type
+ field(DESC, "Used internally and ...to pick move type")
+ field(DTYP, "asynInt32")
+ field(UDFS, "0")
+ field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M16.nCommand=")
+ info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:16:PLC:nEnableMode_RBV") {
+ # Describes when the axis will automatically get power
+ field(DESC, "Describes when the a...tically get power")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nEnableMode?")
+ field(ZRVL, "0")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(ZRST, "ALWAYS")
+ field(ONST, "NEVER")
+ field(TWST, "DURING_MOTION")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:16:PLC:nEncoderCount_RBV") {
+ field(DESC, "Count from encoder hardware")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nEncoderCount?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:16:PLC:nErrorId_RBV") {
+ field(DESC, "Error code if nonzero")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M16.nErrorId?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(mbbi, "TMO:LAMP:MMS:16:PLC:nHomingMode_RBV") {
+ field(DESC, "Describes our homing strategy")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nHomingMode?")
+ field(ZRVL, "-1")
+ field(ONVL, "1")
+ field(TWVL, "2")
+ field(THVL, "3")
+ field(FRVL, "4")
+ field(FVVL, "15")
+ field(ZRST, "NONE")
+ field(ONST, "LOW_LIMIT")
+ field(TWST, "HIGH_LIMIT")
+ field(THST, "HOME_VIA_LOW")
+ field(FRST, "HOME_VIA_HIGH")
+ field(FVST, "ABSOLUTE_SET")
+ info(autosaveFields_pass0, "DESC DISS EISV ELSV FFSV FRSV FTSV FVSV NISV ONSV SIMS SVSV SXSV TESV THSV TTSV TVSV TWSV UDFS UNSV ZRSV")
+ info(archive, "VAL")
+}
+
+record(longin, "TMO:LAMP:MMS:16:PLC:nMotionAxisID_RBV") {
+ # Unique ID assigned to each axis in the NC
+ field(DESC, "Unique ID assigned t...ch axis in the NC")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt32")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.nMotionAxisID?")
+ info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:16:PLC:sErrorMessage_RBV") {
+ field(DESC, "Message to identify the error state")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M16.sErrorMessage?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
+record(waveform, "TMO:LAMP:MMS:16:PLC:sName_RBV") {
+ field(DESC, "PLC program name")
+ field(SCAN, "I/O Intr")
+ field(PINI, "1")
+ field(TSE, "-2")
+ field(DTYP, "asynInt8ArrayIn")
+ field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M16.sName?")
+ field(FTVL, "CHAR")
+ field(NELM, "80")
+ field(MPST, "On Change")
+ field(APST, "On Change")
+ info(autosaveFields_pass0, "DESC DISS SIMS UDFS")
+ info(archive, "VAL")
+}
+
record(bi, "TMO:LAMP:MMS:02:PLC:bAllBackwardEnable_RBV") {
# Summary of axis permission to move backward
field(DESC, "Summary of axis perm... to move backward")
diff --git a/iocBoot/ioc-lamp-motion/st.cmd b/iocBoot/ioc-lamp-motion/st.cmd
index 33a0b1d..48d946e 100755
--- a/iocBoot/ioc-lamp-motion/st.cmd
+++ b/iocBoot/ioc-lamp-motion/st.cmd
@@ -4,8 +4,8 @@
# Project: lcls-plc-lamp-motion.tsproj
# PLC name: lamp_motion (lamp_motion Instance)
# Generated using: pytmc 2.15.1
-# Project version: 4e38df3
-# Project hash: 4e38df3848656906d9d38cdde528db6a6241fecc
+# Project version: d538f6c
+# Project hash: d538f6c902852110e3a7683cb962052550ad0e2e
# PLC IP/host: 172.21.132.58
# PLC Net ID: 172.21.132.58.1.1
# ** Production mode IOC **
@@ -40,7 +40,7 @@ epicsEnvSet("ASYN_PORT", "ASYN_PLC")
epicsEnvSet("IPADDR", "172.21.132.58")
epicsEnvSet("AMSID", "172.21.132.58.1.1")
epicsEnvSet("AMS_PORT", "851")
-epicsEnvSet("ADS_MAX_PARAMS", "1577")
+epicsEnvSet("ADS_MAX_PARAMS", "1736")
epicsEnvSet("ADS_SAMPLE_MS", "50")
epicsEnvSet("ADS_MAX_DELAY_MS", "100")
epicsEnvSet("ADS_TIMEOUT_MS", "1000")
@@ -79,7 +79,7 @@ cd "$(ADS_IOC_TOP)/db"
epicsEnvSet("MOTOR_PORT", "PLC_ADS")
epicsEnvSet("PREFIX", "PLC:LAMP:MOTION:")
-epicsEnvSet("NUMAXES", "13")
+epicsEnvSet("NUMAXES", "16")
epicsEnvSet("MOVE_POLL_RATE", "200")
epicsEnvSet("IDLE_POLL_RATE", "1000")
@@ -245,6 +245,51 @@ dbLoadRecords("EthercatMC.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR
dbLoadRecords("EthercatMCreadback.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC) ")
dbLoadRecords("EthercatMCdebug.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), MOTOR_PORT=$(MOTOR_PORT), AXIS_NO=$(AXIS_NO), PREC=3")
+epicsEnvSet("AXIS_NO", "14")
+epicsEnvSet("MOTOR_PREFIX", "TMO:LAMP:MMS:")
+epicsEnvSet("MOTOR_NAME", "14")
+epicsEnvSet("DESC", "Main.M14 / TIXELX")
+epicsEnvSet("EGU", "mm")
+epicsEnvSet("PREC", "3")
+epicsEnvSet("AXISCONFIG", "")
+epicsEnvSet("ECAXISFIELDINIT", "")
+epicsEnvSet("AMPLIFIER_FLAGS", "")
+
+EthercatMCCreateAxis("$(MOTOR_PORT)", "$(AXIS_NO)", "$(AMPLIFIER_FLAGS)", "$(AXISCONFIG)")
+dbLoadRecords("EthercatMC.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC), EGU=$(EGU) $(ECAXISFIELDINIT)")
+dbLoadRecords("EthercatMCreadback.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC) ")
+dbLoadRecords("EthercatMCdebug.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), MOTOR_PORT=$(MOTOR_PORT), AXIS_NO=$(AXIS_NO), PREC=3")
+
+epicsEnvSet("AXIS_NO", "15")
+epicsEnvSet("MOTOR_PREFIX", "TMO:LAMP:MMS:")
+epicsEnvSet("MOTOR_NAME", "15")
+epicsEnvSet("DESC", "Main.M15 / TIXELY")
+epicsEnvSet("EGU", "mm")
+epicsEnvSet("PREC", "3")
+epicsEnvSet("AXISCONFIG", "")
+epicsEnvSet("ECAXISFIELDINIT", "")
+epicsEnvSet("AMPLIFIER_FLAGS", "")
+
+EthercatMCCreateAxis("$(MOTOR_PORT)", "$(AXIS_NO)", "$(AMPLIFIER_FLAGS)", "$(AXISCONFIG)")
+dbLoadRecords("EthercatMC.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC), EGU=$(EGU) $(ECAXISFIELDINIT)")
+dbLoadRecords("EthercatMCreadback.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC) ")
+dbLoadRecords("EthercatMCdebug.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), MOTOR_PORT=$(MOTOR_PORT), AXIS_NO=$(AXIS_NO), PREC=3")
+
+epicsEnvSet("AXIS_NO", "16")
+epicsEnvSet("MOTOR_PREFIX", "TMO:LAMP:MMS:")
+epicsEnvSet("MOTOR_NAME", "16")
+epicsEnvSet("DESC", "Main.M16 / TIXELZ")
+epicsEnvSet("EGU", "mm")
+epicsEnvSet("PREC", "3")
+epicsEnvSet("AXISCONFIG", "")
+epicsEnvSet("ECAXISFIELDINIT", "")
+epicsEnvSet("AMPLIFIER_FLAGS", "")
+
+EthercatMCCreateAxis("$(MOTOR_PORT)", "$(AXIS_NO)", "$(AMPLIFIER_FLAGS)", "$(AXISCONFIG)")
+dbLoadRecords("EthercatMC.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC), EGU=$(EGU) $(ECAXISFIELDINIT)")
+dbLoadRecords("EthercatMCreadback.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), R=$(MOTOR_NAME)-, MOTOR_PORT=$(MOTOR_PORT), ASYN_PORT=$(ASYN_PORT), AXIS_NO=$(AXIS_NO), DESC=$(DESC), PREC=$(PREC) ")
+dbLoadRecords("EthercatMCdebug.template", "PREFIX=$(MOTOR_PREFIX), MOTOR_NAME=$(MOTOR_NAME), MOTOR_PORT=$(MOTOR_PORT), AXIS_NO=$(AXIS_NO), PREC=3")
+
dbLoadRecords("iocSoft.db", "IOC=PLC:LAMP:MOTION")
dbLoadRecords("save_restoreStatus.db", "P=PLC:LAMP:MOTION:")
@@ -254,7 +299,7 @@ dbLoadRecords("caPutLog.db", "IOC=$(IOC)")
dbLoadRecords("TwinCAT_TaskInfo.db", "PORT=$(ASYN_PORT),PREFIX=PLC:LAMP:MOTION,IDX=1")
dbLoadRecords("TwinCAT_AppInfo.db", "PORT=$(ASYN_PORT), PREFIX=PLC:LAMP:MOTION")
-dbLoadRecords("TwinCAT_Project.db", "PREFIX=PLC:LAMP:MOTION,PROJECT=lcls-plc-lamp-motion.tsproj,HASH=4e38df3,VERSION=4e38df3,PYTMC=2.15.1,PLC_HOST=172.21.132.58")
+dbLoadRecords("TwinCAT_Project.db", "PREFIX=PLC:LAMP:MOTION,PROJECT=lcls-plc-lamp-motion.tsproj,HASH=d538f6c,VERSION=d538f6c,PYTMC=2.15.1,PLC_HOST=172.21.132.58")
# Tc2_MC2: * (Beckhoff Automation GmbH)
dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:LAMP:MOTION,DEPENDENCY=Tc2_MC2,VERSION=*,VENDOR=Beckhoff Automation GmbH")
@@ -272,8 +317,8 @@ cd "$(IOC_TOP)"
## PLC Project Database files ##
dbLoadRecords("lamp_motion.db", "PORT=$(ASYN_PORT),PREFIX=PLC:LAMP:MOTION:,IOCNAME=$(IOC),IOC=$(IOC)")
-# Total records: 577
-callbackSetQueueSize(3154)
+# Total records: 736
+callbackSetQueueSize(3472)
# Autosave and archive settings:
save_restoreSet_status_prefix("PLC:LAMP:MOTION:")
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT).xti
index 1553510..e347899 100644
--- a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT).xti
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT).xti
@@ -1,6 +1,6 @@
-
-
-
+
+
+
__FILENAME__
@@ -27,7 +27,7 @@
-
+
Image
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122).xti
index 3e8fc03..83d1366 100644
--- a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122).xti
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122).xti
@@ -1,5 +1,5 @@
-
+
424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000120b0000120b00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c080808000bfffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c080808080808080808000bfff00bfff00bfff00bfff00bfffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c080808000bfffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c080808000bfffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c080808080808080808000bfff00bfff00bfff00bfff00bfff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c080808000bfffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0bbc2bbc0c0c0c0c0c0c0c0c0808080ff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0bac2ba0bfc0bc0c0c0c0c0c0c0c0c0808080ff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ff
@@ -13,5 +13,8 @@
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100).xti
new file mode 100644
index 0000000..67e79e3
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100).xti
@@ -0,0 +1,29 @@
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000bfff00bfffc0c0c0808080c0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELX-EL7041.xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELX-EL7041.xti
new file mode 100644
index 0000000..8fedf05
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELX-EL7041.xti
@@ -0,0 +1,507 @@
+
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..2] OF BIT
+ 3
+ BIT
+
+ 0
+ 3
+
+
+
+ ARRAY [0..0] OF BYTE
+ 8
+ BYTE
+
+ 0
+ 1
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..5] OF BIT
+ 6
+ BIT
+
+ 0
+ 6
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001108002400010003000000000000000800001124010000
+ 801108002000010004000000000000000800801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000190000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..2] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a06
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1a05
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+ #x1601
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UINT
+
+
+
+ #x1600
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1604
+ #x1605
+ #x1606
+
+ UDINT
+
+
+
+ #x1603
+ #x1605
+ #x1606
+
+ INT
+
+
+
+ #x1603
+ #x1604
+ #x1606
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELXY_ENC-EL5042.xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELXY_ENC-EL5042.xti
new file mode 100644
index 0000000..6b8785d
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELXY_ENC-EL5042.xti
@@ -0,0 +1,165 @@
+
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001100000400000003000000000000000000001104000000
+ 801114002000010004000000000000001400801120010000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000000030100000000000000000001000000000000000000000000000000000000000000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a02
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ ULINT
+
+
+
+ #x1a03
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ ULINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ UDINT
+
+
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ UDINT
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELY-EL7041.xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELY-EL7041.xti
new file mode 100644
index 0000000..3d9bf70
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELY-EL7041.xti
@@ -0,0 +1,507 @@
+
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..2] OF BIT
+ 3
+ BIT
+
+ 0
+ 3
+
+
+
+ ARRAY [0..0] OF BYTE
+ 8
+ BYTE
+
+ 0
+ 1
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..5] OF BIT
+ 6
+ BIT
+
+ 0
+ 6
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001108002400010003000000000000000800001124010000
+ 801108002000010004000000000000000800801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000190000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..2] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a06
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1a05
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+ #x1601
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UINT
+
+
+
+ #x1600
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1604
+ #x1605
+ #x1606
+
+ UDINT
+
+
+
+ #x1603
+ #x1605
+ #x1606
+
+ INT
+
+
+
+ #x1603
+ #x1604
+ #x1606
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ-EL7041.xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ-EL7041.xti
new file mode 100644
index 0000000..21a6b0b
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ-EL7041.xti
@@ -0,0 +1,507 @@
+
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..2] OF BIT
+ 3
+ BIT
+
+ 0
+ 3
+
+
+
+ ARRAY [0..0] OF BYTE
+ 8
+ BYTE
+
+ 0
+ 1
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..5] OF BIT
+ 6
+ BIT
+
+ 0
+ 6
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001108002400010003000000000000000800001124010000
+ 801108002000010004000000000000000800801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000190000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..2] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a06
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1a05
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+ #x1601
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UINT
+
+
+
+ #x1600
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1604
+ #x1605
+ #x1606
+
+ UDINT
+
+
+
+ #x1603
+ #x1605
+ #x1606
+
+ INT
+
+
+
+ #x1603
+ #x1604
+ #x1606
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ_ENC-EL5042.xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ_ENC-EL5042.xti
new file mode 100644
index 0000000..c9925bf
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/TIXELZ_ENC-EL5042.xti
@@ -0,0 +1,165 @@
+
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001100000400000003000000000000000000001104000000
+ 801114002000010004000000000000001400801120010000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000000000000000000000000000030100000000000000000001000000000000000000000000000000000000000000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a02
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ ULINT
+
+
+
+ #x1a03
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ ULINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ UDINT
+
+
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT2
+
+
+ UDINT
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/Term 68 (EK1110).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/Term 68 (EK1110).xti
new file mode 100644
index 0000000..a9caef6
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/TIXEL (EK1100)/Term 68 (EK1110).xti
@@ -0,0 +1,11 @@
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ff00bfffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c080808000bfff00bfff00bfff00bfff00bfffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ff00bfffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100).xti
index 4f9bb58..4261421 100644
--- a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100).xti
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100).xti
@@ -31,8 +31,26 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 56 (EL9410).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 56 (EL9410).xti
new file mode 100644
index 0000000..3cf8b71
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 56 (EL9410).xti
@@ -0,0 +1,24 @@
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+ 001001000000010004000000000000000000001000000000
+ 0000000000000000001000010100000002000000000000000000000000000000
+
+
+ BIT
+
+
+
+
+ BIT
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 57 (EL7041).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 57 (EL7041).xti
new file mode 100644
index 0000000..4c6237f
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 57 (EL7041).xti
@@ -0,0 +1,507 @@
+
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..2] OF BIT
+ 3
+ BIT
+
+ 0
+ 3
+
+
+
+ ARRAY [0..0] OF BYTE
+ 8
+ BYTE
+
+ 0
+ 1
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..5] OF BIT
+ 6
+ BIT
+
+ 0
+ 6
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001108002400010003000000000000000800001124010000
+ 801108002000010004000000000000000800801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000190000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..2] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a06
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1a05
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+ #x1601
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UINT
+
+
+
+ #x1600
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1604
+ #x1605
+ #x1606
+
+ UDINT
+
+
+
+ #x1603
+ #x1605
+ #x1606
+
+ INT
+
+
+
+ #x1603
+ #x1604
+ #x1606
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 58 (EL5021).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 58 (EL5021).xti
new file mode 100644
index 0000000..3c8903b
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 58 (EL5021).xti
@@ -0,0 +1,120 @@
+
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001106002400010003000000000000000600001124010000
+ 80110a002000010004000000000000000a00801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000007888ffffa8610000000000070100000000000000000000000000000000000000000000000000000000000000
+ 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000007888ffffa8610000000000070100000000000000000001000000000000000000000000000000000000000000
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 59 (EL1084).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 59 (EL1084).xti
new file mode 100644
index 0000000..019f5cc
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 59 (EL1084).xti
@@ -0,0 +1,31 @@
+
+
+
+ __FILENAME__
+ 7
+
+ 001001000000010004000000000000000100001000010000
+ 0000000000000000001000010100000002000000000000000000000000000000
+
+
+ BIT
+
+
+
+
+ BIT
+
+
+
+
+ BIT
+
+
+
+
+ BIT
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 60 (EL7041).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 60 (EL7041).xti
new file mode 100644
index 0000000..2ce26ea
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 60 (EL7041).xti
@@ -0,0 +1,507 @@
+
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..2] OF BIT
+ 3
+ BIT
+
+ 0
+ 3
+
+
+
+ ARRAY [0..0] OF BYTE
+ 8
+ BYTE
+
+ 0
+ 1
+
+
+
+ ARRAY [0..3] OF BIT
+ 4
+ BIT
+
+ 0
+ 4
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..5] OF BIT
+ 6
+ BIT
+
+ 0
+ 6
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ff808080808080808080808080808080808080808080808080808080808080808080808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c00000000000000000000000000000000000000000000000ffc0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000000000000000000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0000000c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001108002400010003000000000000000800001124010000
+ 801108002000010004000000000000000800801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000000
+ 004003000c0000000000000003000000000000000000000000000000000000002081f001040000000000190000
+ 004003000a00000000000000030010000000000000000000000000000000000020f3100502000000010000
+
+ #x1a01
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a00
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..2] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1a06
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1a05
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+
+ UDINT
+
+
+
+ #x1601
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UINT
+
+
+
+ #x1600
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..3] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+
+ #x1604
+ #x1605
+ #x1606
+
+ UDINT
+
+
+
+ #x1603
+ #x1605
+ #x1606
+
+ INT
+
+
+
+ #x1603
+ #x1604
+ #x1606
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..5] OF BIT
+
+
+ ARRAY [0..0] OF BYTE
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+ #x1603
+ #x1604
+ #x1605
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+ INT
+
+
+ UINT
+
+
+ UINT
+
+
+ UINT
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 61 (EL5021).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 61 (EL5021).xti
new file mode 100644
index 0000000..45d0dba
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 61 (EL5021).xti
@@ -0,0 +1,131 @@
+
+
+
+
+ ARRAY [0..0] OF BIT
+ 1
+ BIT
+
+ 0
+ 1
+
+
+
+ ARRAY [0..4] OF BIT
+ 5
+ BIT
+
+ 0
+ 5
+
+
+
+ ARRAY [0..1] OF BIT
+ 2
+ BIT
+
+ 0
+ 2
+
+
+
+ ARRAY [0..12] OF BIT
+ 13
+ BIT
+
+ 0
+ 13
+
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000000000ff00ffff00ffff00ff000000ff00ff808080808080808080808080808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c000ffffc0c0c000ffff808080ff00ffff00ffff00ffff00ffff00ff000000ff00ff000000ff00ff000000ff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff000000000000ff00ff000000000000ff00ffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff000000ff00ffff00ffff00ff000000ff00ffc0c0c0ff0000c0c0c0ff0000808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c00000ffc0c0c00000ff808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0000000c0c0c0000000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0008000c0c0c0008000808080ff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0c0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+ 001080002600010001000000400080008000001026010000
+ 801080002200010002000000400080008000801022010000
+ 001106002400010003000000000000000600001124010000
+ 80110a002000010004000000000000000a00801120010000
+ 0000000000000000001100020100000001000000000000000000000000000000
+ 0000000000000000801100010100000002000000000000000000000000000000
+ 00000000000000000d0800010100000003000000000000000000000000000000
+ 0010f400f410f400
+ 53796e6368726f6e00000000000000004672656552756e2f534d2d53796e6368726f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 4443000000000000000000000000000044432d53796e6368726f6e000000000000000000000000000000000000000000000000007888ffffa8610000000000070100000000000000000000000000000000000000000000000000000000000000
+ 4443494e00000000000000000000000044432d53796e6368726f6e2028696e7075742062617365642900000000000000000000007888ffffa8610000000000070100000000000000000001000000000000000000000000000000000000000000
+ 02000300090000000000000003000000000000000000000000000000000000002082f001010000000000
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ ARRAY [0..4] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..1] OF BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ BIT
+
+
+ UDINT
+
+
+ UDINT
+
+
+
+
+ DINT
+
+
+
+
+ UDINT
+
+
+
+
+ BIT
+
+
+ ARRAY [0..0] OF BIT
+
+
+ BIT
+
+
+ ARRAY [0..12] OF BIT
+
+
+ UDINT
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 69 (EL9011).xti b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 69 (EL9011).xti
new file mode 100644
index 0000000..40f9a0c
--- /dev/null
+++ b/lcls-plc-lamp-motion/_Config/IO/PLC Rail (EtherCAT)/Power (EK1200)/PLC Junction 1 (EK1122)/X1 VacuumMotion (EK1100)/Term 69 (EL9011).xti
@@ -0,0 +1,11 @@
+
+
+
+ 424dd6020000000000003600000028000000100000000e0000000100180000000000a0020000c40e0000c40e00000000000000000000ff00ffff00ffff00ffff00ffff00ffff00ff808080808080808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff007fff007fff007fff007fff007fff007fffc0c0c0c0c0c0808080ff00ffff00ffff00ffff00ffff00ffff00ffff00ff
+
+
+ __FILENAME__
+ 1000
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellTheta.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellTheta.xti
index 806f2df..6863db5 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellTheta.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellTheta.xti
@@ -1327,7 +1327,6 @@ External Setpoint Generation:
- 18
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellZ.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellZ.xti
index dc0f2c8..25e79ab 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellZ.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/FlowCellZ.xti
@@ -1,5 +1,5 @@
-
-
+
+
UINTARR2
@@ -62,12 +62,10 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -128,6 +126,8 @@
nDataIn7
UINTARR2
+
32
288
@@ -272,15 +272,13 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -329,6 +327,8 @@ Drive Status 4 (manually linked):
nState8
USINT
+
8
248
@@ -499,7 +499,7 @@ Drive Status 4 (manually linked):
- PLCTONC_AXIS_REF
+ PLCTONC_AXIS_REF_OLD
1024
ControlDWord
@@ -622,7 +622,7 @@ Drive Status 4 (manually linked):
- NCTOPLC_AXIS_REF_STATE
+ NCTOPLC_AXIS_REF_STATE_OLD
32
Operational
@@ -1014,11 +1014,11 @@ Drive Status 4 (manually linked):
- NCTOPLC_AXIS_REF
+ NCTOPLC_AXIS_REF_OLD4
2048
StateDWord
- NCTOPLC_AXIS_REF_STATE
+ NCTOPLC_AXIS_REF_STATE_OLD
32
0
@@ -1031,8 +1031,7 @@ Drive Status 4 (manually linked):
AxisState
UDINT
-
-
-
+]]>
32
64
@@ -1060,8 +1058,7 @@ External Setpoint Generation:
HomingState
UDINT
-
-
-
+]]>
32
128
CoupleState
UDINT
-
-
-
+]]>
32
160
@@ -1310,13 +1304,13 @@ External Setpoint Generation:
NCAXLESTRUCT_TOPLC4
-
+
-
+
-
+
@@ -1327,37 +1321,22 @@ External Setpoint Generation:
- 39
- 257
- 18
- 258
- 35
Inputs
In
NCENCODERSTRUCT_IN2B
- 19328
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1372,6 +1351,8 @@ External Setpoint Generation:
nDataIn7
+
@@ -1380,7 +1361,6 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
- 31616
nDataOut1
@@ -1412,25 +1392,12 @@ External Setpoint Generation:
In
NCDRIVESTRUCT_IN2
- 19648
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1450,7 +1417,6 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
- 31936
nDataOut1
@@ -1459,23 +1425,19 @@ Drive Status 4 (manually linked):
nCtrl2
-
-
-
+]]>
nCtrl3
-
-
-
+]]>
nDataOut3
@@ -1502,61 +1464,14 @@ Drive Status 4 (manually linked):
Inputs
FromPlc
- PLCTONC_AXIS_REF
- 18304
+ PLCTONC_AXIS_REF_OLD
Outputs
ToPlc
- NCTOPLC_AXIS_REF
- 29568
-
- AxisState
-
-
-
-
-
- HomingState
-
-
-
-
-
- CoupleState
-
-
-
-
+ NCTOPLC_AXIS_REF_OLD4
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetX.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetX.xti
index 24675b2..977c0f9 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetX.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetX.xti
@@ -1,5 +1,5 @@
-
-
+
+
UINTARR2
@@ -62,12 +62,10 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -128,6 +126,8 @@
nDataIn7
UINTARR2
+
32
288
@@ -272,15 +272,13 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -329,6 +327,8 @@ Drive Status 4 (manually linked):
nState8
USINT
+
8
248
@@ -499,7 +499,7 @@ Drive Status 4 (manually linked):
- PLCTONC_AXIS_REF
+ PLCTONC_AXIS_REF_OLD
1024
ControlDWord
@@ -1025,7 +1025,7 @@ Drive Status 4 (manually linked):
- NCTOPLC_AXIS_REF
+ NCTOPLC_AXIS_REF_OLD5
2048
StateDWord
@@ -1042,8 +1042,7 @@ Drive Status 4 (manually linked):
AxisState
UDINT
-
-
-
+]]>
32
64
@@ -1071,8 +1069,7 @@ External Setpoint Generation:
HomingState
UDINT
-
-
-
+]]>
32
128
CoupleState
UDINT
-
-
-
+]]>
32
160
@@ -1333,16 +1327,16 @@ External Setpoint Generation:
NCAXLESTRUCT_TOPLC4
-
+
-
+
-
+
-
+
@@ -1365,22 +1359,12 @@ External Setpoint Generation:
In
NCENCODERSTRUCT_IN2B
- 1024
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1395,6 +1379,8 @@ External Setpoint Generation:
nDataIn7
+
@@ -1403,7 +1389,6 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
- 2048
nDataOut1
@@ -1429,32 +1414,18 @@ External Setpoint Generation:
- 6
Inputs
In
NCDRIVESTRUCT_IN2
- 1344
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1474,7 +1445,6 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
- 2368
nDataOut1
@@ -1483,23 +1453,19 @@ Drive Status 4 (manually linked):
nCtrl2
-
-
-
+]]>
nCtrl3
-
-
-
+]]>
nDataOut3
@@ -1526,59 +1492,14 @@ Drive Status 4 (manually linked):
Inputs
FromPlc
- PLCTONC_AXIS_REF
+ PLCTONC_AXIS_REF_OLD
Outputs
ToPlc
- NCTOPLC_AXIS_REF
-
- AxisState
-
-
-
-
-
- HomingState
-
-
-
-
-
- CoupleState
-
-
-
-
+ NCTOPLC_AXIS_REF_OLD5
@@ -1589,7 +1510,7 @@ External Setpoint Generation:
-
+
@@ -1597,8 +1518,8 @@ External Setpoint Generation:
-
-
+
+
@@ -1607,18 +1528,18 @@ External Setpoint Generation:
-
+
-
+
-
-
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetY.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetY.xti
index 847faff..57d09b2 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetY.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/GasJetY.xti
@@ -1,5 +1,5 @@
-
-
+
+
UINTARR2
@@ -62,12 +62,10 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -128,6 +126,8 @@
nDataIn7
UINTARR2
+
32
288
@@ -272,15 +272,13 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -329,6 +327,8 @@ Drive Status 4 (manually linked):
nState8
USINT
+
8
248
@@ -499,7 +499,7 @@ Drive Status 4 (manually linked):
- PLCTONC_AXIS_REF
+ PLCTONC_AXIS_REF_OLD
1024
ControlDWord
@@ -1025,7 +1025,7 @@ Drive Status 4 (manually linked):
- NCTOPLC_AXIS_REF
+ NCTOPLC_AXIS_REF_OLD5
2048
StateDWord
@@ -1042,8 +1042,7 @@ Drive Status 4 (manually linked):
AxisState
UDINT
-
-
-
+]]>
32
64
@@ -1071,8 +1069,7 @@ External Setpoint Generation:
HomingState
UDINT
-
-
-
+]]>
32
128
CoupleState
UDINT
-
-
-
+]]>
32
160
@@ -1333,16 +1327,16 @@ External Setpoint Generation:
NCAXLESTRUCT_TOPLC4
-
+
-
+
-
+
-
+
@@ -1353,34 +1347,22 @@ External Setpoint Generation:
- 257
- 35
Inputs
In
NCENCODERSTRUCT_IN2B
- 2688
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1395,6 +1377,8 @@ External Setpoint Generation:
nDataIn7
+
@@ -1403,7 +1387,6 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
- 4736
nDataOut1
@@ -1435,25 +1418,12 @@ External Setpoint Generation:
In
NCDRIVESTRUCT_IN2
- 3008
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1473,7 +1443,6 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
- 5056
nDataOut1
@@ -1482,23 +1451,19 @@ Drive Status 4 (manually linked):
nCtrl2
-
-
-
+]]>
nCtrl3
-
-
-
+]]>
nDataOut3
@@ -1525,61 +1490,14 @@ Drive Status 4 (manually linked):
Inputs
FromPlc
- PLCTONC_AXIS_REF
- 1664
+ PLCTONC_AXIS_REF_OLD
Outputs
ToPlc
- NCTOPLC_AXIS_REF
- 2688
-
- AxisState
-
-
-
-
-
- HomingState
-
-
-
-
-
- CoupleState
-
-
-
-
+ NCTOPLC_AXIS_REF_OLD5
@@ -1590,7 +1508,7 @@ External Setpoint Generation:
-
+
@@ -1598,8 +1516,8 @@ External Setpoint Generation:
-
-
+
+
@@ -1608,18 +1526,18 @@ External Setpoint Generation:
-
+
-
+
-
-
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/SamplePaddleY.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/SamplePaddleY.xti
index 79d1457..33174e3 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/SamplePaddleY.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/SamplePaddleY.xti
@@ -1,5 +1,5 @@
-
-
+
+
UINTARR2
@@ -62,12 +62,10 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -128,6 +126,8 @@
nDataIn7
UINTARR2
+
32
288
@@ -272,15 +272,13 @@
nState4
USINT
-
-
-
+]]>
8
88
@@ -329,6 +327,8 @@ Drive Status 4 (manually linked):
nState8
USINT
+
8
248
@@ -499,7 +499,7 @@ Drive Status 4 (manually linked):
- PLCTONC_AXIS_REF
+ PLCTONC_AXIS_REF_OLD
1024
ControlDWord
@@ -1025,7 +1025,7 @@ Drive Status 4 (manually linked):
- NCTOPLC_AXIS_REF
+ NCTOPLC_AXIS_REF_OLD5
2048
StateDWord
@@ -1042,8 +1042,7 @@ Drive Status 4 (manually linked):
AxisState
UDINT
-
-
-
+]]>
32
64
@@ -1071,8 +1069,7 @@ External Setpoint Generation:
HomingState
UDINT
-
-
-
+]]>
32
128
CoupleState
UDINT
-
-
-
+]]>
32
160
@@ -1333,16 +1327,16 @@ External Setpoint Generation:
NCAXLESTRUCT_TOPLC4
-
+
-
+
-
+
-
+
@@ -1360,29 +1354,18 @@ External Setpoint Generation:
- 11
Inputs
In
NCENCODERSTRUCT_IN2B
- 12672
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1397,10 +1380,8 @@ External Setpoint Generation:
nDataIn7
-
-
-
+
@@ -1409,7 +1390,6 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
- 20864
nDataOut1
@@ -1441,25 +1421,12 @@ External Setpoint Generation:
In
NCDRIVESTRUCT_IN2
- 12992
nDataIn1
nDataIn2
-
- nState4
-
-
-
-
nDataIn3
@@ -1479,7 +1446,6 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
- 21184
nDataOut1
@@ -1488,23 +1454,19 @@ Drive Status 4 (manually linked):
nCtrl2
-
-
-
+]]>
nCtrl3
-
-
-
+]]>
nDataOut3
@@ -1532,61 +1494,14 @@ Drive Status 4 (manually linked):
Inputs
FromPlc
- PLCTONC_AXIS_REF
- 11648
+ PLCTONC_AXIS_REF_OLD
Outputs
ToPlc
- NCTOPLC_AXIS_REF
- 18816
-
- AxisState
-
-
-
-
-
- HomingState
-
-
-
-
-
- CoupleState
-
-
-
-
+ NCTOPLC_AXIS_REF_OLD5
@@ -1595,7 +1510,7 @@ External Setpoint Generation:
-
+
@@ -1604,8 +1519,8 @@ External Setpoint Generation:
-
-
+
+
@@ -1614,7 +1529,7 @@ External Setpoint Generation:
-
+
@@ -1622,8 +1537,8 @@ External Setpoint Generation:
-
-
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 11.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELX.xti
similarity index 90%
rename from lcls-plc-lamp-motion/_Config/NC/Axes/Axis 11.xti
rename to lcls-plc-lamp-motion/_Config/NC/Axes/TIXELX.xti
index e434f0f..9ef7ad8 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 11.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELX.xti
@@ -1321,17 +1321,25 @@ External Setpoint Generation:
-
+
__FILENAME__
+
+
-
+
+
+
+
+
+
Inputs
In
NCENCODERSTRUCT_IN2B
+ 22656
nDataIn1
@@ -1361,6 +1369,10 @@ External Setpoint Generation:
nDataIn7
+
+
+
@@ -1369,6 +1381,7 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
+ 36992
nDataOut1
@@ -1390,15 +1403,17 @@ External Setpoint Generation:
-
-
-
+
+
+
+
Inputs
In
NCDRIVESTRUCT_IN2
+ 22976
nDataIn1
@@ -1436,6 +1451,7 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
+ 37312
nDataOut1
@@ -1479,6 +1495,7 @@ Drive Status 4 (manually linked):
+
@@ -1487,6 +1504,7 @@ Drive Status 4 (manually linked):
FromPlc
PLCTONC_AXIS_REF
+ 21632
@@ -1494,6 +1512,7 @@ Drive Status 4 (manually linked):
ToPlc
NCTOPLC_AXIS_REF
+ 34944
AxisState
@@ -1542,4 +1561,48 @@ External Setpoint Generation:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 12.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELY.xti
similarity index 90%
rename from lcls-plc-lamp-motion/_Config/NC/Axes/Axis 12.xti
rename to lcls-plc-lamp-motion/_Config/NC/Axes/TIXELY.xti
index 9691da1..c8d9964 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 12.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELY.xti
@@ -1321,17 +1321,25 @@ External Setpoint Generation:
-
+
__FILENAME__
+
+
-
+
+
+
+
+
+
Inputs
In
NCENCODERSTRUCT_IN2B
+ 24320
nDataIn1
@@ -1361,6 +1369,10 @@ External Setpoint Generation:
nDataIn7
+
+
+
@@ -1369,6 +1381,7 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
+ 39680
nDataOut1
@@ -1390,15 +1403,17 @@ External Setpoint Generation:
-
-
-
+
+
+
+
Inputs
In
NCDRIVESTRUCT_IN2
+ 24640
nDataIn1
@@ -1436,6 +1451,7 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
+ 40000
nDataOut1
@@ -1479,6 +1495,7 @@ Drive Status 4 (manually linked):
+
@@ -1487,6 +1504,7 @@ Drive Status 4 (manually linked):
FromPlc
PLCTONC_AXIS_REF
+ 23296
@@ -1494,6 +1512,7 @@ Drive Status 4 (manually linked):
ToPlc
NCTOPLC_AXIS_REF
+ 37632
AxisState
@@ -1542,4 +1561,48 @@ External Setpoint Generation:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 13.xti b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELZ.xti
similarity index 90%
rename from lcls-plc-lamp-motion/_Config/NC/Axes/Axis 13.xti
rename to lcls-plc-lamp-motion/_Config/NC/Axes/TIXELZ.xti
index 1104a48..07a2a84 100644
--- a/lcls-plc-lamp-motion/_Config/NC/Axes/Axis 13.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/Axes/TIXELZ.xti
@@ -1321,17 +1321,25 @@ External Setpoint Generation:
-
+
__FILENAME__
+
+
-
+
+
+
+
+
+
Inputs
In
NCENCODERSTRUCT_IN2B
+ 25984
nDataIn1
@@ -1361,6 +1369,10 @@ External Setpoint Generation:
nDataIn7
+
+
+
@@ -1369,6 +1381,7 @@ External Setpoint Generation:
Out
NCENCODERSTRUCT_OUT2
+ 42368
nDataOut1
@@ -1390,15 +1403,17 @@ External Setpoint Generation:
-
-
-
+
+
+
+
Inputs
In
NCDRIVESTRUCT_IN2
+ 26304
nDataIn1
@@ -1436,6 +1451,7 @@ Drive Status 4 (manually linked):
Out
NCDRIVESTRUCT_OUT2
+ 42688
nDataOut1
@@ -1479,6 +1495,7 @@ Drive Status 4 (manually linked):
+
@@ -1487,6 +1504,7 @@ Drive Status 4 (manually linked):
FromPlc
PLCTONC_AXIS_REF
+ 24960
@@ -1494,6 +1512,7 @@ Drive Status 4 (manually linked):
ToPlc
NCTOPLC_AXIS_REF
+ 40320
AxisState
@@ -1542,4 +1561,48 @@ External Setpoint Generation:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/NC/NC.xti b/lcls-plc-lamp-motion/_Config/NC/NC.xti
index 2fd891e..d840195 100644
--- a/lcls-plc-lamp-motion/_Config/NC/NC.xti
+++ b/lcls-plc-lamp-motion/_Config/NC/NC.xti
@@ -29,5 +29,8 @@
+
+
+
diff --git a/lcls-plc-lamp-motion/_Config/PLC/lamp_motion.xti b/lcls-plc-lamp-motion/_Config/PLC/lamp_motion.xti
index 54f7a2d..43245b0 100644
--- a/lcls-plc-lamp-motion/_Config/PLC/lamp_motion.xti
+++ b/lcls-plc-lamp-motion/_Config/PLC/lamp_motion.xti
@@ -2204,6 +2204,447 @@ External Setpoint Generation:
1: axis is a master axis
2: axis is master and slave
3: axis is a slave axis
+]]>
+
+
+
+
+ Main.M14.Axis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
+
+
+
+
+ Main.M14.bLimitForwardEnable
+
+
+
+ BOOL
+
+
+ Main.M14.bLimitBackwardEnable
+
+
+
+ BOOL
+
+
+ Main.M14.bHome
+
+
+
+ BOOL
+
+
+ Main.M14.bHardwareEnable
+
+
+
+ BOOL
+
+
+ Main.M14.nRawEncoderULINT
+
+
+
+ ULINT
+
+
+ Main.M14.nRawEncoderUINT
+
+
+
+ UINT
+
+
+ Main.M14.nRawEncoderINT
+
+
+
+ INT
+
+
+ Main.M15.Axis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
+
+
+
+
+ Main.M15.bLimitForwardEnable
+
+
+
+ BOOL
+
+
+ Main.M15.bLimitBackwardEnable
+
+
+
+ BOOL
+
+
+ Main.M15.bHome
+
+
+
+ BOOL
+
+
+ Main.M15.bHardwareEnable
+
+
+
+ BOOL
+
+
+ Main.M15.nRawEncoderULINT
+
+
+
+ ULINT
+
+
+ Main.M15.nRawEncoderUINT
+
+
+
+ UINT
+
+
+ Main.M15.nRawEncoderINT
+
+
+
+ INT
+
+
+ Main.M16.Axis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
+
+
+
+
+ Main.M16.bLimitForwardEnable
+
+
+
+ BOOL
+
+
+ Main.M16.bLimitBackwardEnable
+
+
+
+ BOOL
+
+
+ Main.M16.bHome
+
+
+
+ BOOL
+
+
+ Main.M16.bHardwareEnable
+
+
+
+ BOOL
+
+
+ Main.M16.nRawEncoderULINT
+
+
+
+ ULINT
+
+
+ Main.M16.nRawEncoderUINT
+
+
+
+ UINT
+
+
+ Main.M16.nRawEncoderINT
+
+
+
+ INT
+
+
+ Main.fbMotionStageM14.fbDriveVirtual.MasterAxis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
+
+
+
+
+ Main.fbMotionStageM15.fbDriveVirtual.MasterAxis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
+
+
+
+
+ Main.fbMotionStageM16.fbDriveVirtual.MasterAxis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+
+
+ HomingState
+
+
+
+
+
+ CoupleState
+
+
@@ -2346,6 +2787,51 @@ External Setpoint Generation:
Main.fbMotionStageM9.fbDriveVirtual.MasterAxis.PlcToNc
PLCTONC_AXIS_REF
+
+ Main.M14.Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ Main.M14.bBrakeRelease
+
+
+
+ BOOL
+
+
+ Main.M15.Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ Main.M15.bBrakeRelease
+
+
+
+ BOOL
+
+
+ Main.M16.Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ Main.M16.bBrakeRelease
+
+
+
+ BOOL
+
+
+ Main.fbMotionStageM14.fbDriveVirtual.MasterAxis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ Main.fbMotionStageM15.fbDriveVirtual.MasterAxis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ Main.fbMotionStageM16.fbDriveVirtual.MasterAxis.PlcToNc
+ PLCTONC_AXIS_REF
+
PlcTask Retains
@@ -2371,12 +2857,92 @@ External Setpoint Generation:
7
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2386,6 +2952,18 @@ External Setpoint Generation:
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2456,6 +3034,18 @@ External Setpoint Generation:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lcls-plc-lamp-motion/lamp_motion/POUs/Main.TcPOU b/lcls-plc-lamp-motion/lamp_motion/POUs/Main.TcPOU
index 0c3129e..87e5b79 100644
--- a/lcls-plc-lamp-motion/lamp_motion/POUs/Main.TcPOU
+++ b/lcls-plc-lamp-motion/lamp_motion/POUs/Main.TcPOU
@@ -85,6 +85,29 @@ VAR
'}
M9 : DUT_MotionStage := (bPowerSelf:=TRUE); // Sample Paddle Z
+ // ...//
+ // TIXEL
+ {attribute 'TcLinkTo' := '.bLimitForwardEnable:=TIIB[TIXELX-EL7041]^STM Status^Status^Digital input 1;
+ .bLimitBackwardEnable:=TIIB[TIXELX-EL7041]^STM Status^Status^Digital input 2'}
+ {attribute 'pytmc' := '
+ pv: TMO:LAMP:MMS:14
+ '}
+ M14 : DUT_MotionStage := (bPowerSelf:=TRUE, nEnableMode:=ENUM_StageEnableMode.DURING_MOTION); // TIXEL X
+
+ {attribute 'TcLinkTo' := '.bLimitForwardEnable:=TIIB[TIXELY-EL7041]^STM Status^Status^Digital input 1;
+ .bLimitBackwardEnable:=TIIB[TIXELY-EL7041]^STM Status^Status^Digital input 2'}
+ {attribute 'pytmc' := '
+ pv: TMO:LAMP:MMS:15
+ '}
+ M15 : DUT_MotionStage := (bPowerSelf:=TRUE, nEnableMode:=ENUM_StageEnableMode.DURING_MOTION); // TIXEL Y
+
+ {attribute 'TcLinkTo' := '.bLimitForwardEnable:=TIIB[TIXELZ-EL7041]^STM Status^Status^Digital input 1;
+ .bLimitBackwardEnable:=TIIB[TIXELZ-EL7041]^STM Status^Status^Digital input 2'}
+ {attribute 'pytmc' := '
+ pv: TMO:LAMP:MMS:16
+ '}
+ M16 : DUT_MotionStage := (bPowerSelf:=TRUE, nEnableMode:=ENUM_StageEnableMode.DURING_MOTION); // TIXEL Z
+
fbMotionStageM1 : FB_MotionStage;
fbMotionStageM2 : FB_MotionStage;
@@ -95,6 +118,10 @@ VAR
fbMotionStageM7 : FB_MotionStage;
fbMotionStageM8 : FB_MotionStage;
fbMotionStageM9 : FB_MotionStage;
+ //...//
+ fbMotionStageM14 : FB_MotionStage;
+ fbMotionStageM15 : FB_MotionStage;
+ fbMotionStageM16 : FB_MotionStage;
END_VAR]]>
diff --git a/lcls-plc-lamp-motion/lamp_motion/lamp_motion.plcproj b/lcls-plc-lamp-motion/lamp_motion/lamp_motion.plcproj
index f8b2094..5723a26 100644
--- a/lcls-plc-lamp-motion/lamp_motion/lamp_motion.plcproj
+++ b/lcls-plc-lamp-motion/lamp_motion/lamp_motion.plcproj
@@ -13,6 +13,11 @@
{6d2affc4-cc4c-4a8f-9393-0aea61f7b136}
{57cda66f-061d-425b-81f3-efd6029c3179}
{88bf9b68-db78-4896-b8f3-eaf3fa28d638}
+ false
+ SLAC
+ true
+ tmo_lamp_motion
+ 0.0.0