diff --git a/TwinCAT Measurement Project1/VSSettings/.vsm b/TwinCAT Measurement Project1/VSSettings/.vsm index 5dff9f9..c90949b 100644 --- a/TwinCAT Measurement Project1/VSSettings/.vsm +++ b/TwinCAT Measurement Project1/VSSettings/.vsm @@ -5,12 +5,12 @@ Scope Project1 - False - C:\Users\rcjwoods\Documents\github_repos\lcls-plc-mfx-motion\TwinCAT Measurement Project1\Scope Project1.tcscopex + True + C:\Users\nlentz\Documents\PLC\lcls-plc-mfx-motion\TwinCAT Measurement Project1\Scope Project1.tcscopex DataPool - False + True @@ -131,12 +131,12 @@ Axis Plot - False + True MFX-LIB-MMS-01 - False + True @@ -155,7 +155,7 @@ MFX-LIB-MMS-02 - False + True @@ -174,7 +174,7 @@ MFX-LIB-MMS-03 - False + True @@ -193,7 +193,7 @@ MFX-LIB-MMS-04 - False + True diff --git a/iocBoot/ioc-mfx-motion/Makefile b/iocBoot/ioc-mfx-motion/Makefile index 40156e7..7bf1047 100644 --- a/iocBoot/ioc-mfx-motion/Makefile +++ b/iocBoot/ioc-mfx-motion/Makefile @@ -1,4 +1,4 @@ -IOC_TOP=/reg/g/pcds/epics/ioc/common/ads-ioc/R0.6.0 +IOC_TOP=/reg/g/pcds/epics/ioc/common/ads-ioc/R0.6.2 IOC_INSTANCE_PATH := $(shell pwd) # Set PRODUCTION_IOC to 1 to move from a testing to a production IOC: diff --git a/iocBoot/ioc-mfx-motion/autosave/info_positions.req b/iocBoot/ioc-mfx-motion/autosave/info_positions.req deleted file mode 100644 index 0c6f52a..0000000 --- a/iocBoot/ioc-mfx-motion/autosave/info_positions.req +++ /dev/null @@ -1,920 +0,0 @@ -PLC:mfx_motion:START_CNT.VAL -MFX:ATM:MMS:Y-DbgStrToMCU.VAL -MFX:ATM:MMS:X-DbgStrToMCU.VAL -MFX:LIB:MMS:01-DbgStrToMCU.VAL -MFX:LIB:MMS:02-DbgStrToMCU.VAL -MFX:LIB:MMS:03-DbgStrToMCU.VAL -MFX:LIB:MMS:04-DbgStrToMCU.VAL -MFX:LJH:JET:X-DbgStrToMCU.VAL -MFX:LJH:JET:Y-DbgStrToMCU.VAL -MFX:LJH:JET:Z-DbgStrToMCU.VAL -MFX:LJH:DET:X-DbgStrToMCU.VAL -MFX:LJH:SS:TOP_X-DbgStrToMCU.VAL -MFX:LJH:SS:TOP_Y-DbgStrToMCU.VAL -MFX:LJH:SS:BOT_X-DbgStrToMCU.VAL -MFX:LJH:SS:BOT_Y-DbgStrToMCU.VAL -MFX:ATM:MMS:STATE:RESET.VAL -MFX:ATM:MMS:Y:PLC:bEnable.VAL -MFX:ATM:MMS:Y:PLC:bReset.VAL -MFX:ATM:MMS:Y:PLC:bExecute.VAL -MFX:ATM:MMS:Y:PLC:bUserEnable.VAL -MFX:ATM:MMS:Y:PLC:bMoveCmd.VAL -MFX:ATM:MMS:Y:PLC:bHomeCmd.VAL -MFX:ATM:MMS:X:PLC:bEnable.VAL -MFX:ATM:MMS:X:PLC:bReset.VAL -MFX:ATM:MMS:X:PLC:bExecute.VAL -MFX:ATM:MMS:X:PLC:bUserEnable.VAL -MFX:ATM:MMS:X:PLC:bMoveCmd.VAL -MFX:ATM:MMS:X:PLC:bHomeCmd.VAL -MFX:LIB:MMS:01:PLC:bEnable.VAL -MFX:LIB:MMS:01:PLC:bReset.VAL -MFX:LIB:MMS:01:PLC:bExecute.VAL -MFX:LIB:MMS:01:PLC:bUserEnable.VAL -MFX:LIB:MMS:01:PLC:bMoveCmd.VAL -MFX:LIB:MMS:01:PLC:bHomeCmd.VAL -MFX:LIB:MMS:02:PLC:bEnable.VAL -MFX:LIB:MMS:02:PLC:bReset.VAL -MFX:LIB:MMS:02:PLC:bExecute.VAL -MFX:LIB:MMS:02:PLC:bUserEnable.VAL -MFX:LIB:MMS:02:PLC:bMoveCmd.VAL -MFX:LIB:MMS:02:PLC:bHomeCmd.VAL -MFX:LIB:MMS:03:PLC:bEnable.VAL -MFX:LIB:MMS:03:PLC:bReset.VAL -MFX:LIB:MMS:03:PLC:bExecute.VAL -MFX:LIB:MMS:03:PLC:bUserEnable.VAL -MFX:LIB:MMS:03:PLC:bMoveCmd.VAL -MFX:LIB:MMS:03:PLC:bHomeCmd.VAL -MFX:LIB:MMS:04:PLC:bEnable.VAL -MFX:LIB:MMS:04:PLC:bReset.VAL -MFX:LIB:MMS:04:PLC:bExecute.VAL -MFX:LIB:MMS:04:PLC:bUserEnable.VAL -MFX:LIB:MMS:04:PLC:bMoveCmd.VAL -MFX:LIB:MMS:04:PLC:bHomeCmd.VAL -MFX:LJH:JET:X:PLC:bEnable.VAL -MFX:LJH:JET:X:PLC:bReset.VAL -MFX:LJH:JET:X:PLC:bExecute.VAL -MFX:LJH:JET:X:PLC:bUserEnable.VAL -MFX:LJH:JET:X:PLC:bMoveCmd.VAL -MFX:LJH:JET:X:PLC:bHomeCmd.VAL -MFX:LJH:JET:Y:PLC:bEnable.VAL -MFX:LJH:JET:Y:PLC:bReset.VAL -MFX:LJH:JET:Y:PLC:bExecute.VAL -MFX:LJH:JET:Y:PLC:bUserEnable.VAL -MFX:LJH:JET:Y:PLC:bMoveCmd.VAL -MFX:LJH:JET:Y:PLC:bHomeCmd.VAL -MFX:LJH:JET:Z:PLC:bEnable.VAL -MFX:LJH:JET:Z:PLC:bReset.VAL -MFX:LJH:JET:Z:PLC:bExecute.VAL -MFX:LJH:JET:Z:PLC:bUserEnable.VAL -MFX:LJH:JET:Z:PLC:bMoveCmd.VAL -MFX:LJH:JET:Z:PLC:bHomeCmd.VAL -MFX:LJH:DET:X:PLC:bEnable.VAL -MFX:LJH:DET:X:PLC:bReset.VAL -MFX:LJH:DET:X:PLC:bExecute.VAL -MFX:LJH:DET:X:PLC:bUserEnable.VAL -MFX:LJH:DET:X:PLC:bMoveCmd.VAL -MFX:LJH:DET:X:PLC:bHomeCmd.VAL -MFX:LJH:SS:TOP_X:PLC:bEnable.VAL -MFX:LJH:SS:TOP_X:PLC:bReset.VAL -MFX:LJH:SS:TOP_X:PLC:bExecute.VAL -MFX:LJH:SS:TOP_X:PLC:bUserEnable.VAL -MFX:LJH:SS:TOP_X:PLC:bMoveCmd.VAL -MFX:LJH:SS:TOP_X:PLC:bHomeCmd.VAL -MFX:LJH:SS:TOP_Y:PLC:bEnable.VAL -MFX:LJH:SS:TOP_Y:PLC:bReset.VAL -MFX:LJH:SS:TOP_Y:PLC:bExecute.VAL -MFX:LJH:SS:TOP_Y:PLC:bUserEnable.VAL -MFX:LJH:SS:TOP_Y:PLC:bMoveCmd.VAL -MFX:LJH:SS:TOP_Y:PLC:bHomeCmd.VAL -MFX:LJH:SS:BOT_X:PLC:bEnable.VAL -MFX:LJH:SS:BOT_X:PLC:bReset.VAL -MFX:LJH:SS:BOT_X:PLC:bExecute.VAL -MFX:LJH:SS:BOT_X:PLC:bUserEnable.VAL -MFX:LJH:SS:BOT_X:PLC:bMoveCmd.VAL -MFX:LJH:SS:BOT_X:PLC:bHomeCmd.VAL -MFX:LJH:SS:BOT_Y:PLC:bEnable.VAL -MFX:LJH:SS:BOT_Y:PLC:bReset.VAL -MFX:LJH:SS:BOT_Y:PLC:bExecute.VAL -MFX:LJH:SS:BOT_Y:PLC:bUserEnable.VAL -MFX:LJH:SS:BOT_Y:PLC:bMoveCmd.VAL -MFX:LJH:SS:BOT_Y:PLC:bHomeCmd.VAL -MFX:ATM:MMS:STATE:SET.VAL -MFX:ATM:MMS:Y-OFF_.VAL -MFX:ATM:MMS:Y-MRES_.VAL -MFX:ATM:MMS:Y-PwrOnDly.VAL -MFX:ATM:MMS:Y-PwrOffDly.VAL -MFX:ATM:MMS:Y-MoveAbs.VAL -MFX:ATM:MMS:Y-MoveRel.VAL -MFX:ATM:MMS:Y-MoveVel.VAL -MFX:ATM:MMS:Y-ACCS.VAL -MFX:ATM:MMS:Y-VELO.VAL -MFX:ATM:MMS:Y-CfgDHLM.VAL -MFX:ATM:MMS:Y-CfgDLLM.VAL -MFX:ATM:MMS:Y-CfgVELO.VAL -MFX:ATM:MMS:Y-CfgVMAX.VAL -MFX:ATM:MMS:Y-CfgJVEL.VAL -MFX:ATM:MMS:Y-CfgACCS.VAL -MFX:ATM:MMS:Y-M3RHLMo_.VAL -MFX:ATM:MMS:Y-M3RLLMo_.VAL -MFX:ATM:MMS:X-OFF_.VAL -MFX:ATM:MMS:X-MRES_.VAL -MFX:ATM:MMS:X-PwrOnDly.VAL -MFX:ATM:MMS:X-PwrOffDly.VAL -MFX:ATM:MMS:X-MoveAbs.VAL -MFX:ATM:MMS:X-MoveRel.VAL -MFX:ATM:MMS:X-MoveVel.VAL -MFX:ATM:MMS:X-ACCS.VAL -MFX:ATM:MMS:X-VELO.VAL -MFX:ATM:MMS:X-CfgDHLM.VAL -MFX:ATM:MMS:X-CfgDLLM.VAL -MFX:ATM:MMS:X-CfgVELO.VAL -MFX:ATM:MMS:X-CfgVMAX.VAL -MFX:ATM:MMS:X-CfgJVEL.VAL -MFX:ATM:MMS:X-CfgACCS.VAL -MFX:ATM:MMS:X-M3RHLMo_.VAL -MFX:ATM:MMS:X-M3RLLMo_.VAL -MFX:LIB:MMS:01-OFF_.VAL -MFX:LIB:MMS:01-MRES_.VAL -MFX:LIB:MMS:01-PwrOnDly.VAL -MFX:LIB:MMS:01-PwrOffDly.VAL -MFX:LIB:MMS:01-MoveAbs.VAL -MFX:LIB:MMS:01-MoveRel.VAL -MFX:LIB:MMS:01-MoveVel.VAL -MFX:LIB:MMS:01-ACCS.VAL -MFX:LIB:MMS:01-VELO.VAL -MFX:LIB:MMS:01-CfgDHLM.VAL -MFX:LIB:MMS:01-CfgDLLM.VAL -MFX:LIB:MMS:01-CfgVELO.VAL -MFX:LIB:MMS:01-CfgVMAX.VAL -MFX:LIB:MMS:01-CfgJVEL.VAL -MFX:LIB:MMS:01-CfgACCS.VAL -MFX:LIB:MMS:01-M3RHLMo_.VAL -MFX:LIB:MMS:01-M3RLLMo_.VAL -MFX:LIB:MMS:02-OFF_.VAL -MFX:LIB:MMS:02-MRES_.VAL -MFX:LIB:MMS:02-PwrOnDly.VAL -MFX:LIB:MMS:02-PwrOffDly.VAL -MFX:LIB:MMS:02-MoveAbs.VAL -MFX:LIB:MMS:02-MoveRel.VAL -MFX:LIB:MMS:02-MoveVel.VAL -MFX:LIB:MMS:02-ACCS.VAL -MFX:LIB:MMS:02-VELO.VAL -MFX:LIB:MMS:02-CfgDHLM.VAL -MFX:LIB:MMS:02-CfgDLLM.VAL -MFX:LIB:MMS:02-CfgVELO.VAL -MFX:LIB:MMS:02-CfgVMAX.VAL -MFX:LIB:MMS:02-CfgJVEL.VAL -MFX:LIB:MMS:02-CfgACCS.VAL -MFX:LIB:MMS:02-M3RHLMo_.VAL -MFX:LIB:MMS:02-M3RLLMo_.VAL -MFX:LIB:MMS:03-OFF_.VAL -MFX:LIB:MMS:03-MRES_.VAL -MFX:LIB:MMS:03-PwrOnDly.VAL -MFX:LIB:MMS:03-PwrOffDly.VAL -MFX:LIB:MMS:03-MoveAbs.VAL -MFX:LIB:MMS:03-MoveRel.VAL -MFX:LIB:MMS:03-MoveVel.VAL -MFX:LIB:MMS:03-ACCS.VAL -MFX:LIB:MMS:03-VELO.VAL -MFX:LIB:MMS:03-CfgDHLM.VAL -MFX:LIB:MMS:03-CfgDLLM.VAL -MFX:LIB:MMS:03-CfgVELO.VAL -MFX:LIB:MMS:03-CfgVMAX.VAL -MFX:LIB:MMS:03-CfgJVEL.VAL -MFX:LIB:MMS:03-CfgACCS.VAL -MFX:LIB:MMS:03-M3RHLMo_.VAL -MFX:LIB:MMS:03-M3RLLMo_.VAL -MFX:LIB:MMS:04-OFF_.VAL -MFX:LIB:MMS:04-MRES_.VAL -MFX:LIB:MMS:04-PwrOnDly.VAL -MFX:LIB:MMS:04-PwrOffDly.VAL -MFX:LIB:MMS:04-MoveAbs.VAL -MFX:LIB:MMS:04-MoveRel.VAL -MFX:LIB:MMS:04-MoveVel.VAL -MFX:LIB:MMS:04-ACCS.VAL -MFX:LIB:MMS:04-VELO.VAL -MFX:LIB:MMS:04-CfgDHLM.VAL -MFX:LIB:MMS:04-CfgDLLM.VAL -MFX:LIB:MMS:04-CfgVELO.VAL -MFX:LIB:MMS:04-CfgVMAX.VAL -MFX:LIB:MMS:04-CfgJVEL.VAL -MFX:LIB:MMS:04-CfgACCS.VAL -MFX:LIB:MMS:04-M3RHLMo_.VAL -MFX:LIB:MMS:04-M3RLLMo_.VAL -MFX:LJH:JET:X-OFF_.VAL -MFX:LJH:JET:X-MRES_.VAL -MFX:LJH:JET:X-PwrOnDly.VAL -MFX:LJH:JET:X-PwrOffDly.VAL -MFX:LJH:JET:X-MoveAbs.VAL -MFX:LJH:JET:X-MoveRel.VAL -MFX:LJH:JET:X-MoveVel.VAL -MFX:LJH:JET:X-ACCS.VAL -MFX:LJH:JET:X-VELO.VAL -MFX:LJH:JET:X-CfgDHLM.VAL -MFX:LJH:JET:X-CfgDLLM.VAL -MFX:LJH:JET:X-CfgVELO.VAL -MFX:LJH:JET:X-CfgVMAX.VAL -MFX:LJH:JET:X-CfgJVEL.VAL -MFX:LJH:JET:X-CfgACCS.VAL -MFX:LJH:JET:X-M3RHLMo_.VAL -MFX:LJH:JET:X-M3RLLMo_.VAL -MFX:LJH:JET:Y-OFF_.VAL -MFX:LJH:JET:Y-MRES_.VAL -MFX:LJH:JET:Y-PwrOnDly.VAL -MFX:LJH:JET:Y-PwrOffDly.VAL -MFX:LJH:JET:Y-MoveAbs.VAL -MFX:LJH:JET:Y-MoveRel.VAL -MFX:LJH:JET:Y-MoveVel.VAL -MFX:LJH:JET:Y-ACCS.VAL -MFX:LJH:JET:Y-VELO.VAL -MFX:LJH:JET:Y-CfgDHLM.VAL -MFX:LJH:JET:Y-CfgDLLM.VAL -MFX:LJH:JET:Y-CfgVELO.VAL -MFX:LJH:JET:Y-CfgVMAX.VAL -MFX:LJH:JET:Y-CfgJVEL.VAL -MFX:LJH:JET:Y-CfgACCS.VAL -MFX:LJH:JET:Y-M3RHLMo_.VAL -MFX:LJH:JET:Y-M3RLLMo_.VAL -MFX:LJH:JET:Z-OFF_.VAL -MFX:LJH:JET:Z-MRES_.VAL -MFX:LJH:JET:Z-PwrOnDly.VAL -MFX:LJH:JET:Z-PwrOffDly.VAL -MFX:LJH:JET:Z-MoveAbs.VAL -MFX:LJH:JET:Z-MoveRel.VAL -MFX:LJH:JET:Z-MoveVel.VAL -MFX:LJH:JET:Z-ACCS.VAL -MFX:LJH:JET:Z-VELO.VAL -MFX:LJH:JET:Z-CfgDHLM.VAL -MFX:LJH:JET:Z-CfgDLLM.VAL -MFX:LJH:JET:Z-CfgVELO.VAL -MFX:LJH:JET:Z-CfgVMAX.VAL -MFX:LJH:JET:Z-CfgJVEL.VAL -MFX:LJH:JET:Z-CfgACCS.VAL -MFX:LJH:JET:Z-M3RHLMo_.VAL -MFX:LJH:JET:Z-M3RLLMo_.VAL -MFX:LJH:DET:X-OFF_.VAL -MFX:LJH:DET:X-MRES_.VAL -MFX:LJH:DET:X-PwrOnDly.VAL -MFX:LJH:DET:X-PwrOffDly.VAL -MFX:LJH:DET:X-MoveAbs.VAL -MFX:LJH:DET:X-MoveRel.VAL -MFX:LJH:DET:X-MoveVel.VAL -MFX:LJH:DET:X-ACCS.VAL -MFX:LJH:DET:X-VELO.VAL -MFX:LJH:DET:X-CfgDHLM.VAL -MFX:LJH:DET:X-CfgDLLM.VAL -MFX:LJH:DET:X-CfgVELO.VAL -MFX:LJH:DET:X-CfgVMAX.VAL -MFX:LJH:DET:X-CfgJVEL.VAL -MFX:LJH:DET:X-CfgACCS.VAL -MFX:LJH:DET:X-M3RHLMo_.VAL -MFX:LJH:DET:X-M3RLLMo_.VAL -MFX:LJH:SS:TOP_X-OFF_.VAL -MFX:LJH:SS:TOP_X-MRES_.VAL -MFX:LJH:SS:TOP_X-PwrOnDly.VAL -MFX:LJH:SS:TOP_X-PwrOffDly.VAL -MFX:LJH:SS:TOP_X-MoveAbs.VAL -MFX:LJH:SS:TOP_X-MoveRel.VAL -MFX:LJH:SS:TOP_X-MoveVel.VAL -MFX:LJH:SS:TOP_X-ACCS.VAL -MFX:LJH:SS:TOP_X-VELO.VAL -MFX:LJH:SS:TOP_X-CfgDHLM.VAL -MFX:LJH:SS:TOP_X-CfgDLLM.VAL -MFX:LJH:SS:TOP_X-CfgVELO.VAL -MFX:LJH:SS:TOP_X-CfgVMAX.VAL -MFX:LJH:SS:TOP_X-CfgJVEL.VAL -MFX:LJH:SS:TOP_X-CfgACCS.VAL -MFX:LJH:SS:TOP_X-M3RHLMo_.VAL -MFX:LJH:SS:TOP_X-M3RLLMo_.VAL -MFX:LJH:SS:TOP_Y-OFF_.VAL -MFX:LJH:SS:TOP_Y-MRES_.VAL -MFX:LJH:SS:TOP_Y-PwrOnDly.VAL -MFX:LJH:SS:TOP_Y-PwrOffDly.VAL -MFX:LJH:SS:TOP_Y-MoveAbs.VAL -MFX:LJH:SS:TOP_Y-MoveRel.VAL -MFX:LJH:SS:TOP_Y-MoveVel.VAL -MFX:LJH:SS:TOP_Y-ACCS.VAL -MFX:LJH:SS:TOP_Y-VELO.VAL -MFX:LJH:SS:TOP_Y-CfgDHLM.VAL -MFX:LJH:SS:TOP_Y-CfgDLLM.VAL -MFX:LJH:SS:TOP_Y-CfgVELO.VAL -MFX:LJH:SS:TOP_Y-CfgVMAX.VAL -MFX:LJH:SS:TOP_Y-CfgJVEL.VAL -MFX:LJH:SS:TOP_Y-CfgACCS.VAL -MFX:LJH:SS:TOP_Y-M3RHLMo_.VAL -MFX:LJH:SS:TOP_Y-M3RLLMo_.VAL -MFX:LJH:SS:BOT_X-OFF_.VAL -MFX:LJH:SS:BOT_X-MRES_.VAL -MFX:LJH:SS:BOT_X-PwrOnDly.VAL -MFX:LJH:SS:BOT_X-PwrOffDly.VAL -MFX:LJH:SS:BOT_X-MoveAbs.VAL -MFX:LJH:SS:BOT_X-MoveRel.VAL -MFX:LJH:SS:BOT_X-MoveVel.VAL -MFX:LJH:SS:BOT_X-ACCS.VAL -MFX:LJH:SS:BOT_X-VELO.VAL -MFX:LJH:SS:BOT_X-CfgDHLM.VAL -MFX:LJH:SS:BOT_X-CfgDLLM.VAL -MFX:LJH:SS:BOT_X-CfgVELO.VAL -MFX:LJH:SS:BOT_X-CfgVMAX.VAL -MFX:LJH:SS:BOT_X-CfgJVEL.VAL -MFX:LJH:SS:BOT_X-CfgACCS.VAL -MFX:LJH:SS:BOT_X-M3RHLMo_.VAL -MFX:LJH:SS:BOT_X-M3RLLMo_.VAL -MFX:LJH:SS:BOT_Y-OFF_.VAL -MFX:LJH:SS:BOT_Y-MRES_.VAL -MFX:LJH:SS:BOT_Y-PwrOnDly.VAL -MFX:LJH:SS:BOT_Y-PwrOffDly.VAL -MFX:LJH:SS:BOT_Y-MoveAbs.VAL -MFX:LJH:SS:BOT_Y-MoveRel.VAL -MFX:LJH:SS:BOT_Y-MoveVel.VAL -MFX:LJH:SS:BOT_Y-ACCS.VAL -MFX:LJH:SS:BOT_Y-VELO.VAL -MFX:LJH:SS:BOT_Y-CfgDHLM.VAL -MFX:LJH:SS:BOT_Y-CfgDLLM.VAL -MFX:LJH:SS:BOT_Y-CfgVELO.VAL -MFX:LJH:SS:BOT_Y-CfgVMAX.VAL -MFX:LJH:SS:BOT_Y-CfgJVEL.VAL -MFX:LJH:SS:BOT_Y-CfgACCS.VAL -MFX:LJH:SS:BOT_Y-M3RHLMo_.VAL -MFX:LJH:SS:BOT_Y-M3RLLMo_.VAL -MFX:ATM:MMS:STATE:01:SETPOINT.PREC -MFX:ATM:MMS:STATE:01:SETPOINT.VAL -MFX:ATM:MMS:STATE:02:SETPOINT.PREC -MFX:ATM:MMS:STATE:02:SETPOINT.VAL -MFX:ATM:MMS:STATE:03:SETPOINT.PREC -MFX:ATM:MMS:STATE:03:SETPOINT.VAL -MFX:ATM:MMS:STATE:04:SETPOINT.PREC -MFX:ATM:MMS:STATE:04:SETPOINT.VAL -MFX:ATM:MMS:STATE:05:SETPOINT.PREC -MFX:ATM:MMS:STATE:05:SETPOINT.VAL -MFX:ATM:MMS:STATE:06:SETPOINT.PREC -MFX:ATM:MMS:STATE:06:SETPOINT.VAL -MFX:ATM:MMS:STATE:01:DELTA.PREC -MFX:ATM:MMS:STATE:01:DELTA.VAL -MFX:ATM:MMS:STATE:02:DELTA.PREC -MFX:ATM:MMS:STATE:02:DELTA.VAL -MFX:ATM:MMS:STATE:03:DELTA.PREC -MFX:ATM:MMS:STATE:03:DELTA.VAL -MFX:ATM:MMS:STATE:04:DELTA.PREC -MFX:ATM:MMS:STATE:04:DELTA.VAL -MFX:ATM:MMS:STATE:05:DELTA.PREC -MFX:ATM:MMS:STATE:05:DELTA.VAL -MFX:ATM:MMS:STATE:06:DELTA.PREC -MFX:ATM:MMS:STATE:06:DELTA.VAL -MFX:ATM:MMS:STATE:01:VELO.PREC -MFX:ATM:MMS:STATE:01:VELO.VAL -MFX:ATM:MMS:STATE:02:VELO.PREC -MFX:ATM:MMS:STATE:02:VELO.VAL -MFX:ATM:MMS:STATE:03:VELO.PREC -MFX:ATM:MMS:STATE:03:VELO.VAL -MFX:ATM:MMS:STATE:04:VELO.PREC -MFX:ATM:MMS:STATE:04:VELO.VAL -MFX:ATM:MMS:STATE:05:VELO.PREC -MFX:ATM:MMS:STATE:05:VELO.VAL -MFX:ATM:MMS:STATE:06:VELO.PREC -MFX:ATM:MMS:STATE:06:VELO.VAL -MFX:ATM:MMS:STATE:01:ACCL.PREC -MFX:ATM:MMS:STATE:01:ACCL.VAL -MFX:ATM:MMS:STATE:02:ACCL.PREC -MFX:ATM:MMS:STATE:02:ACCL.VAL -MFX:ATM:MMS:STATE:03:ACCL.PREC -MFX:ATM:MMS:STATE:03:ACCL.VAL -MFX:ATM:MMS:STATE:04:ACCL.PREC -MFX:ATM:MMS:STATE:04:ACCL.VAL -MFX:ATM:MMS:STATE:05:ACCL.PREC -MFX:ATM:MMS:STATE:05:ACCL.VAL -MFX:ATM:MMS:STATE:06:ACCL.PREC -MFX:ATM:MMS:STATE:06:ACCL.VAL -MFX:ATM:MMS:STATE:01:DCCL.PREC -MFX:ATM:MMS:STATE:01:DCCL.VAL -MFX:ATM:MMS:STATE:02:DCCL.PREC -MFX:ATM:MMS:STATE:02:DCCL.VAL -MFX:ATM:MMS:STATE:03:DCCL.PREC -MFX:ATM:MMS:STATE:03:DCCL.VAL -MFX:ATM:MMS:STATE:04:DCCL.PREC -MFX:ATM:MMS:STATE:04:DCCL.VAL -MFX:ATM:MMS:STATE:05:DCCL.PREC -MFX:ATM:MMS:STATE:05:DCCL.VAL -MFX:ATM:MMS:STATE:06:DCCL.PREC -MFX:ATM:MMS:STATE:06:DCCL.VAL -MFX:ATM:MMS:Y:PLC:fPosition.PREC -MFX:ATM:MMS:Y:PLC:fPosition.VAL -MFX:ATM:MMS:Y:PLC:fVelocity.PREC -MFX:ATM:MMS:Y:PLC:fVelocity.VAL -MFX:ATM:MMS:Y:PLC:fAcceleration.PREC -MFX:ATM:MMS:Y:PLC:fAcceleration.VAL -MFX:ATM:MMS:Y:PLC:fDeceleration.PREC -MFX:ATM:MMS:Y:PLC:fDeceleration.VAL -MFX:ATM:MMS:Y:PLC:fHomePosition.PREC -MFX:ATM:MMS:Y:PLC:fHomePosition.VAL -MFX:ATM:MMS:X:PLC:fPosition.PREC -MFX:ATM:MMS:X:PLC:fPosition.VAL -MFX:ATM:MMS:X:PLC:fVelocity.PREC -MFX:ATM:MMS:X:PLC:fVelocity.VAL -MFX:ATM:MMS:X:PLC:fAcceleration.PREC -MFX:ATM:MMS:X:PLC:fAcceleration.VAL -MFX:ATM:MMS:X:PLC:fDeceleration.PREC -MFX:ATM:MMS:X:PLC:fDeceleration.VAL -MFX:ATM:MMS:X:PLC:fHomePosition.PREC -MFX:ATM:MMS:X:PLC:fHomePosition.VAL -MFX:LIB:MMS:01:PLC:fPosition.PREC -MFX:LIB:MMS:01:PLC:fPosition.VAL -MFX:LIB:MMS:01:PLC:fVelocity.PREC -MFX:LIB:MMS:01:PLC:fVelocity.VAL -MFX:LIB:MMS:01:PLC:fAcceleration.PREC -MFX:LIB:MMS:01:PLC:fAcceleration.VAL -MFX:LIB:MMS:01:PLC:fDeceleration.PREC -MFX:LIB:MMS:01:PLC:fDeceleration.VAL -MFX:LIB:MMS:01:PLC:fHomePosition.PREC -MFX:LIB:MMS:01:PLC:fHomePosition.VAL -MFX:LIB:MMS:02:PLC:fPosition.PREC -MFX:LIB:MMS:02:PLC:fPosition.VAL -MFX:LIB:MMS:02:PLC:fVelocity.PREC -MFX:LIB:MMS:02:PLC:fVelocity.VAL -MFX:LIB:MMS:02:PLC:fAcceleration.PREC -MFX:LIB:MMS:02:PLC:fAcceleration.VAL -MFX:LIB:MMS:02:PLC:fDeceleration.PREC -MFX:LIB:MMS:02:PLC:fDeceleration.VAL -MFX:LIB:MMS:02:PLC:fHomePosition.PREC -MFX:LIB:MMS:02:PLC:fHomePosition.VAL -MFX:LIB:MMS:03:PLC:fPosition.PREC -MFX:LIB:MMS:03:PLC:fPosition.VAL -MFX:LIB:MMS:03:PLC:fVelocity.PREC -MFX:LIB:MMS:03:PLC:fVelocity.VAL -MFX:LIB:MMS:03:PLC:fAcceleration.PREC -MFX:LIB:MMS:03:PLC:fAcceleration.VAL -MFX:LIB:MMS:03:PLC:fDeceleration.PREC -MFX:LIB:MMS:03:PLC:fDeceleration.VAL -MFX:LIB:MMS:03:PLC:fHomePosition.PREC -MFX:LIB:MMS:03:PLC:fHomePosition.VAL -MFX:LIB:MMS:04:PLC:fPosition.PREC -MFX:LIB:MMS:04:PLC:fPosition.VAL -MFX:LIB:MMS:04:PLC:fVelocity.PREC -MFX:LIB:MMS:04:PLC:fVelocity.VAL -MFX:LIB:MMS:04:PLC:fAcceleration.PREC -MFX:LIB:MMS:04:PLC:fAcceleration.VAL -MFX:LIB:MMS:04:PLC:fDeceleration.PREC -MFX:LIB:MMS:04:PLC:fDeceleration.VAL -MFX:LIB:MMS:04:PLC:fHomePosition.PREC -MFX:LIB:MMS:04:PLC:fHomePosition.VAL -MFX:LJH:JET:X:PLC:fPosition.PREC -MFX:LJH:JET:X:PLC:fPosition.VAL -MFX:LJH:JET:X:PLC:fVelocity.PREC -MFX:LJH:JET:X:PLC:fVelocity.VAL -MFX:LJH:JET:X:PLC:fAcceleration.PREC -MFX:LJH:JET:X:PLC:fAcceleration.VAL -MFX:LJH:JET:X:PLC:fDeceleration.PREC -MFX:LJH:JET:X:PLC:fDeceleration.VAL -MFX:LJH:JET:X:PLC:fHomePosition.PREC -MFX:LJH:JET:X:PLC:fHomePosition.VAL -MFX:LJH:JET:Y:PLC:fPosition.PREC -MFX:LJH:JET:Y:PLC:fPosition.VAL -MFX:LJH:JET:Y:PLC:fVelocity.PREC -MFX:LJH:JET:Y:PLC:fVelocity.VAL -MFX:LJH:JET:Y:PLC:fAcceleration.PREC -MFX:LJH:JET:Y:PLC:fAcceleration.VAL -MFX:LJH:JET:Y:PLC:fDeceleration.PREC -MFX:LJH:JET:Y:PLC:fDeceleration.VAL -MFX:LJH:JET:Y:PLC:fHomePosition.PREC -MFX:LJH:JET:Y:PLC:fHomePosition.VAL -MFX:LJH:JET:Z:PLC:fPosition.PREC -MFX:LJH:JET:Z:PLC:fPosition.VAL -MFX:LJH:JET:Z:PLC:fVelocity.PREC -MFX:LJH:JET:Z:PLC:fVelocity.VAL -MFX:LJH:JET:Z:PLC:fAcceleration.PREC -MFX:LJH:JET:Z:PLC:fAcceleration.VAL -MFX:LJH:JET:Z:PLC:fDeceleration.PREC -MFX:LJH:JET:Z:PLC:fDeceleration.VAL -MFX:LJH:JET:Z:PLC:fHomePosition.PREC -MFX:LJH:JET:Z:PLC:fHomePosition.VAL -MFX:LJH:DET:X:PLC:fPosition.PREC -MFX:LJH:DET:X:PLC:fPosition.VAL -MFX:LJH:DET:X:PLC:fVelocity.PREC -MFX:LJH:DET:X:PLC:fVelocity.VAL -MFX:LJH:DET:X:PLC:fAcceleration.PREC -MFX:LJH:DET:X:PLC:fAcceleration.VAL -MFX:LJH:DET:X:PLC:fDeceleration.PREC -MFX:LJH:DET:X:PLC:fDeceleration.VAL -MFX:LJH:DET:X:PLC:fHomePosition.PREC -MFX:LJH:DET:X:PLC:fHomePosition.VAL -MFX:LJH:SS:TOP_X:PLC:fPosition.PREC -MFX:LJH:SS:TOP_X:PLC:fPosition.VAL -MFX:LJH:SS:TOP_X:PLC:fVelocity.PREC -MFX:LJH:SS:TOP_X:PLC:fVelocity.VAL -MFX:LJH:SS:TOP_X:PLC:fAcceleration.PREC -MFX:LJH:SS:TOP_X:PLC:fAcceleration.VAL -MFX:LJH:SS:TOP_X:PLC:fDeceleration.PREC -MFX:LJH:SS:TOP_X:PLC:fDeceleration.VAL -MFX:LJH:SS:TOP_X:PLC:fHomePosition.PREC -MFX:LJH:SS:TOP_X:PLC:fHomePosition.VAL -MFX:LJH:SS:TOP_Y:PLC:fPosition.PREC -MFX:LJH:SS:TOP_Y:PLC:fPosition.VAL -MFX:LJH:SS:TOP_Y:PLC:fVelocity.PREC -MFX:LJH:SS:TOP_Y:PLC:fVelocity.VAL -MFX:LJH:SS:TOP_Y:PLC:fAcceleration.PREC -MFX:LJH:SS:TOP_Y:PLC:fAcceleration.VAL -MFX:LJH:SS:TOP_Y:PLC:fDeceleration.PREC -MFX:LJH:SS:TOP_Y:PLC:fDeceleration.VAL -MFX:LJH:SS:TOP_Y:PLC:fHomePosition.PREC -MFX:LJH:SS:TOP_Y:PLC:fHomePosition.VAL -MFX:LJH:SS:BOT_X:PLC:fPosition.PREC -MFX:LJH:SS:BOT_X:PLC:fPosition.VAL -MFX:LJH:SS:BOT_X:PLC:fVelocity.PREC -MFX:LJH:SS:BOT_X:PLC:fVelocity.VAL -MFX:LJH:SS:BOT_X:PLC:fAcceleration.PREC -MFX:LJH:SS:BOT_X:PLC:fAcceleration.VAL -MFX:LJH:SS:BOT_X:PLC:fDeceleration.PREC -MFX:LJH:SS:BOT_X:PLC:fDeceleration.VAL -MFX:LJH:SS:BOT_X:PLC:fHomePosition.PREC -MFX:LJH:SS:BOT_X:PLC:fHomePosition.VAL -MFX:LJH:SS:BOT_Y:PLC:fPosition.PREC -MFX:LJH:SS:BOT_Y:PLC:fPosition.VAL -MFX:LJH:SS:BOT_Y:PLC:fVelocity.PREC -MFX:LJH:SS:BOT_Y:PLC:fVelocity.VAL -MFX:LJH:SS:BOT_Y:PLC:fAcceleration.PREC -MFX:LJH:SS:BOT_Y:PLC:fAcceleration.VAL -MFX:LJH:SS:BOT_Y:PLC:fDeceleration.PREC -MFX:LJH:SS:BOT_Y:PLC:fDeceleration.VAL -MFX:LJH:SS:BOT_Y:PLC:fHomePosition.PREC -MFX:LJH:SS:BOT_Y:PLC:fHomePosition.VAL -MFX:ATM:MMS:Y.VAL -MFX:ATM:MMS:Y.DVAL -MFX:ATM:MMS:Y.DIR -MFX:ATM:MMS:Y.OFF -MFX:ATM:MMS:X.VAL -MFX:ATM:MMS:X.DVAL -MFX:ATM:MMS:X.DIR -MFX:ATM:MMS:X.OFF -MFX:LIB:MMS:01.VAL -MFX:LIB:MMS:01.DVAL -MFX:LIB:MMS:01.DIR -MFX:LIB:MMS:01.OFF -MFX:LIB:MMS:02.VAL -MFX:LIB:MMS:02.DVAL -MFX:LIB:MMS:02.DIR -MFX:LIB:MMS:02.OFF -MFX:LIB:MMS:03.VAL -MFX:LIB:MMS:03.DVAL -MFX:LIB:MMS:03.DIR -MFX:LIB:MMS:03.OFF -MFX:LIB:MMS:04.VAL -MFX:LIB:MMS:04.DVAL -MFX:LIB:MMS:04.DIR -MFX:LIB:MMS:04.OFF -MFX:LJH:JET:X.VAL -MFX:LJH:JET:X.DVAL -MFX:LJH:JET:X.DIR -MFX:LJH:JET:X.OFF -MFX:LJH:JET:Y.VAL -MFX:LJH:JET:Y.DVAL -MFX:LJH:JET:Y.DIR -MFX:LJH:JET:Y.OFF -MFX:LJH:JET:Z.VAL -MFX:LJH:JET:Z.DVAL -MFX:LJH:JET:Z.DIR -MFX:LJH:JET:Z.OFF -MFX:LJH:DET:X.VAL -MFX:LJH:DET:X.DVAL -MFX:LJH:DET:X.DIR -MFX:LJH:DET:X.OFF -MFX:LJH:SS:TOP_X.VAL -MFX:LJH:SS:TOP_X.DVAL -MFX:LJH:SS:TOP_X.DIR -MFX:LJH:SS:TOP_X.OFF -MFX:LJH:SS:TOP_Y.VAL -MFX:LJH:SS:TOP_Y.DVAL -MFX:LJH:SS:TOP_Y.DIR -MFX:LJH:SS:TOP_Y.OFF -MFX:LJH:SS:BOT_X.VAL -MFX:LJH:SS:BOT_X.DVAL -MFX:LJH:SS:BOT_X.DIR -MFX:LJH:SS:BOT_X.OFF -MFX:LJH:SS:BOT_Y.VAL -MFX:LJH:SS:BOT_Y.DVAL -MFX:LJH:SS:BOT_Y.DIR -MFX:LJH:SS:BOT_Y.OFF -PLC:mfx_motion:LCLSGeneral:LogHost.VAL -PLC:mfx_motion:FD_FREE.HOPR -PLC:mfx_motion:FD_FREE.LOPR -PLC:mfx_motion:FD_FREE.LOW -PLC:mfx_motion:FD_FREE.LOLO -PLC:mfx_motion:FD_FREE.LSV -PLC:mfx_motion:FD_FREE.LLSV -MFX:ATM:MMS:Y-DIR_.VAL -MFX:ATM:MMS:Y-ErrRst.VAL -MFX:ATM:MMS:Y-PwrCNEN.VAL -MFX:ATM:MMS:Y-PwrAuto.VAL -MFX:ATM:MMS:Y-Stop.VAL -MFX:ATM:MMS:Y-CfgDHLM-En.VAL -MFX:ATM:MMS:Y-CfgDLLM-En.VAL -MFX:ATM:MMS:Y-DrvUseEGU.VAL -MFX:ATM:MMS:X-DIR_.VAL -MFX:ATM:MMS:X-ErrRst.VAL -MFX:ATM:MMS:X-PwrCNEN.VAL -MFX:ATM:MMS:X-PwrAuto.VAL -MFX:ATM:MMS:X-Stop.VAL -MFX:ATM:MMS:X-CfgDHLM-En.VAL -MFX:ATM:MMS:X-CfgDLLM-En.VAL -MFX:ATM:MMS:X-DrvUseEGU.VAL -MFX:LIB:MMS:01-DIR_.VAL -MFX:LIB:MMS:01-ErrRst.VAL -MFX:LIB:MMS:01-PwrCNEN.VAL -MFX:LIB:MMS:01-PwrAuto.VAL -MFX:LIB:MMS:01-Stop.VAL -MFX:LIB:MMS:01-CfgDHLM-En.VAL -MFX:LIB:MMS:01-CfgDLLM-En.VAL -MFX:LIB:MMS:01-DrvUseEGU.VAL -MFX:LIB:MMS:02-DIR_.VAL -MFX:LIB:MMS:02-ErrRst.VAL -MFX:LIB:MMS:02-PwrCNEN.VAL -MFX:LIB:MMS:02-PwrAuto.VAL -MFX:LIB:MMS:02-Stop.VAL -MFX:LIB:MMS:02-CfgDHLM-En.VAL -MFX:LIB:MMS:02-CfgDLLM-En.VAL -MFX:LIB:MMS:02-DrvUseEGU.VAL -MFX:LIB:MMS:03-DIR_.VAL -MFX:LIB:MMS:03-ErrRst.VAL -MFX:LIB:MMS:03-PwrCNEN.VAL -MFX:LIB:MMS:03-PwrAuto.VAL -MFX:LIB:MMS:03-Stop.VAL -MFX:LIB:MMS:03-CfgDHLM-En.VAL -MFX:LIB:MMS:03-CfgDLLM-En.VAL -MFX:LIB:MMS:03-DrvUseEGU.VAL -MFX:LIB:MMS:04-DIR_.VAL -MFX:LIB:MMS:04-ErrRst.VAL -MFX:LIB:MMS:04-PwrCNEN.VAL -MFX:LIB:MMS:04-PwrAuto.VAL -MFX:LIB:MMS:04-Stop.VAL -MFX:LIB:MMS:04-CfgDHLM-En.VAL -MFX:LIB:MMS:04-CfgDLLM-En.VAL -MFX:LIB:MMS:04-DrvUseEGU.VAL -MFX:LJH:JET:X-DIR_.VAL -MFX:LJH:JET:X-ErrRst.VAL -MFX:LJH:JET:X-PwrCNEN.VAL -MFX:LJH:JET:X-PwrAuto.VAL -MFX:LJH:JET:X-Stop.VAL -MFX:LJH:JET:X-CfgDHLM-En.VAL -MFX:LJH:JET:X-CfgDLLM-En.VAL -MFX:LJH:JET:X-DrvUseEGU.VAL -MFX:LJH:JET:Y-DIR_.VAL -MFX:LJH:JET:Y-ErrRst.VAL -MFX:LJH:JET:Y-PwrCNEN.VAL -MFX:LJH:JET:Y-PwrAuto.VAL -MFX:LJH:JET:Y-Stop.VAL -MFX:LJH:JET:Y-CfgDHLM-En.VAL -MFX:LJH:JET:Y-CfgDLLM-En.VAL -MFX:LJH:JET:Y-DrvUseEGU.VAL -MFX:LJH:JET:Z-DIR_.VAL -MFX:LJH:JET:Z-ErrRst.VAL -MFX:LJH:JET:Z-PwrCNEN.VAL -MFX:LJH:JET:Z-PwrAuto.VAL -MFX:LJH:JET:Z-Stop.VAL -MFX:LJH:JET:Z-CfgDHLM-En.VAL -MFX:LJH:JET:Z-CfgDLLM-En.VAL -MFX:LJH:JET:Z-DrvUseEGU.VAL -MFX:LJH:DET:X-DIR_.VAL -MFX:LJH:DET:X-ErrRst.VAL -MFX:LJH:DET:X-PwrCNEN.VAL -MFX:LJH:DET:X-PwrAuto.VAL -MFX:LJH:DET:X-Stop.VAL -MFX:LJH:DET:X-CfgDHLM-En.VAL -MFX:LJH:DET:X-CfgDLLM-En.VAL -MFX:LJH:DET:X-DrvUseEGU.VAL -MFX:LJH:SS:TOP_X-DIR_.VAL -MFX:LJH:SS:TOP_X-ErrRst.VAL -MFX:LJH:SS:TOP_X-PwrCNEN.VAL -MFX:LJH:SS:TOP_X-PwrAuto.VAL -MFX:LJH:SS:TOP_X-Stop.VAL -MFX:LJH:SS:TOP_X-CfgDHLM-En.VAL -MFX:LJH:SS:TOP_X-CfgDLLM-En.VAL -MFX:LJH:SS:TOP_X-DrvUseEGU.VAL -MFX:LJH:SS:TOP_Y-DIR_.VAL -MFX:LJH:SS:TOP_Y-ErrRst.VAL -MFX:LJH:SS:TOP_Y-PwrCNEN.VAL -MFX:LJH:SS:TOP_Y-PwrAuto.VAL -MFX:LJH:SS:TOP_Y-Stop.VAL -MFX:LJH:SS:TOP_Y-CfgDHLM-En.VAL -MFX:LJH:SS:TOP_Y-CfgDLLM-En.VAL -MFX:LJH:SS:TOP_Y-DrvUseEGU.VAL -MFX:LJH:SS:BOT_X-DIR_.VAL -MFX:LJH:SS:BOT_X-ErrRst.VAL -MFX:LJH:SS:BOT_X-PwrCNEN.VAL -MFX:LJH:SS:BOT_X-PwrAuto.VAL -MFX:LJH:SS:BOT_X-Stop.VAL -MFX:LJH:SS:BOT_X-CfgDHLM-En.VAL -MFX:LJH:SS:BOT_X-CfgDLLM-En.VAL -MFX:LJH:SS:BOT_X-DrvUseEGU.VAL -MFX:LJH:SS:BOT_Y-DIR_.VAL -MFX:LJH:SS:BOT_Y-ErrRst.VAL -MFX:LJH:SS:BOT_Y-PwrCNEN.VAL -MFX:LJH:SS:BOT_Y-PwrAuto.VAL -MFX:LJH:SS:BOT_Y-Stop.VAL -MFX:LJH:SS:BOT_Y-CfgDHLM-En.VAL -MFX:LJH:SS:BOT_Y-CfgDLLM-En.VAL -MFX:LJH:SS:BOT_Y-DrvUseEGU.VAL -PLC:mfx_motion:LCLSGeneral:LogPort.VAL -MFX:ATM:MMS:Y:PLC:nCommand.VAL -MFX:ATM:MMS:Y:PLC:nCmdData.VAL -MFX:ATM:MMS:X:PLC:nCommand.VAL -MFX:ATM:MMS:X:PLC:nCmdData.VAL -MFX:LIB:MMS:01:PLC:nCommand.VAL -MFX:LIB:MMS:01:PLC:nCmdData.VAL -MFX:LIB:MMS:02:PLC:nCommand.VAL -MFX:LIB:MMS:02:PLC:nCmdData.VAL -MFX:LIB:MMS:03:PLC:nCommand.VAL -MFX:LIB:MMS:03:PLC:nCmdData.VAL -MFX:LIB:MMS:04:PLC:nCommand.VAL -MFX:LIB:MMS:04:PLC:nCmdData.VAL -MFX:LJH:JET:X:PLC:nCommand.VAL -MFX:LJH:JET:X:PLC:nCmdData.VAL -MFX:LJH:JET:Y:PLC:nCommand.VAL -MFX:LJH:JET:Y:PLC:nCmdData.VAL -MFX:LJH:JET:Z:PLC:nCommand.VAL -MFX:LJH:JET:Z:PLC:nCmdData.VAL -MFX:LJH:DET:X:PLC:nCommand.VAL -MFX:LJH:DET:X:PLC:nCmdData.VAL -MFX:LJH:SS:TOP_X:PLC:nCommand.VAL -MFX:LJH:SS:TOP_X:PLC:nCmdData.VAL -MFX:LJH:SS:TOP_Y:PLC:nCommand.VAL -MFX:LJH:SS:TOP_Y:PLC:nCmdData.VAL -MFX:LJH:SS:BOT_X:PLC:nCommand.VAL -MFX:LJH:SS:BOT_X:PLC:nCmdData.VAL -MFX:LJH:SS:BOT_Y:PLC:nCommand.VAL -MFX:LJH:SS:BOT_Y:PLC:nCmdData.VAL -PLC:mfx_motion:CA_CLNT_CNT.HOPR -PLC:mfx_motion:CA_CLNT_CNT.LOPR -PLC:mfx_motion:CA_CLNT_CNT.HIHI -PLC:mfx_motion:CA_CLNT_CNT.HIGH -PLC:mfx_motion:CA_CLNT_CNT.LOW -PLC:mfx_motion:CA_CLNT_CNT.LOLO -PLC:mfx_motion:CA_CLNT_CNT.HHSV -PLC:mfx_motion:CA_CLNT_CNT.HSV -PLC:mfx_motion:CA_CLNT_CNT.LSV -PLC:mfx_motion:CA_CLNT_CNT.LLSV -PLC:mfx_motion:CA_CONN_CNT.HOPR -PLC:mfx_motion:CA_CONN_CNT.LOPR -PLC:mfx_motion:CA_CONN_CNT.HIHI -PLC:mfx_motion:CA_CONN_CNT.HIGH -PLC:mfx_motion:CA_CONN_CNT.LOW -PLC:mfx_motion:CA_CONN_CNT.LOLO -PLC:mfx_motion:CA_CONN_CNT.HHSV -PLC:mfx_motion:CA_CONN_CNT.HSV -PLC:mfx_motion:CA_CONN_CNT.LSV -PLC:mfx_motion:CA_CONN_CNT.LLSV -PLC:mfx_motion:SYS_CPU_LOAD.HOPR -PLC:mfx_motion:SYS_CPU_LOAD.LOPR -PLC:mfx_motion:SYS_CPU_LOAD.HIHI -PLC:mfx_motion:SYS_CPU_LOAD.HIGH -PLC:mfx_motion:SYS_CPU_LOAD.LOW -PLC:mfx_motion:SYS_CPU_LOAD.LOLO -PLC:mfx_motion:SYS_CPU_LOAD.HHSV -PLC:mfx_motion:SYS_CPU_LOAD.HSV -PLC:mfx_motion:SYS_CPU_LOAD.LSV -PLC:mfx_motion:SYS_CPU_LOAD.LLSV -PLC:mfx_motion:IOC_CPU_LOAD.HOPR -PLC:mfx_motion:IOC_CPU_LOAD.LOPR -PLC:mfx_motion:IOC_CPU_LOAD.HIHI -PLC:mfx_motion:IOC_CPU_LOAD.HIGH -PLC:mfx_motion:IOC_CPU_LOAD.LOW -PLC:mfx_motion:IOC_CPU_LOAD.LOLO -PLC:mfx_motion:IOC_CPU_LOAD.HHSV -PLC:mfx_motion:IOC_CPU_LOAD.HSV -PLC:mfx_motion:IOC_CPU_LOAD.LSV -PLC:mfx_motion:IOC_CPU_LOAD.LLSV -PLC:mfx_motion:SUSP_TASK_CNT.HOPR -PLC:mfx_motion:SUSP_TASK_CNT.LOPR -PLC:mfx_motion:SUSP_TASK_CNT.HIHI -PLC:mfx_motion:SUSP_TASK_CNT.HIGH -PLC:mfx_motion:SUSP_TASK_CNT.LOW -PLC:mfx_motion:SUSP_TASK_CNT.LOLO -PLC:mfx_motion:SUSP_TASK_CNT.HHSV -PLC:mfx_motion:SUSP_TASK_CNT.HSV -PLC:mfx_motion:SUSP_TASK_CNT.LSV -PLC:mfx_motion:SUSP_TASK_CNT.LLSV -PLC:mfx_motion:MEM_FREE.HOPR -PLC:mfx_motion:MEM_FREE.LOPR -PLC:mfx_motion:MEM_FREE.LOW -PLC:mfx_motion:MEM_FREE.LOLO -PLC:mfx_motion:MEM_FREE.LSV -PLC:mfx_motion:MEM_FREE.LLSV -PLC:mfx_motion:RequestedBP:Transmission_RBV.PREC -PLC:mfx_motion:CurrentBP:Transmission_RBV.PREC -PLC:mfx_motion:FullBeamCnst:Transmission_RBV.PREC -PLC:mfx_motion:0RateBeamCnst:Transmission_RBV.PREC -PLC:mfx_motion:SafeBeamCnst:Transmission_RBV.PREC -PLC:mfx_motion:eVRangeHyst_RBV.PREC -MFX:ATM:MMS:STATE:01:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:02:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:03:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:04:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:05:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:06:SETPOINT_RBV.PREC -MFX:ATM:MMS:STATE:01:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:02:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:03:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:04:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:05:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:06:DELTA_RBV.PREC -MFX:ATM:MMS:STATE:01:VELO_RBV.PREC -MFX:ATM:MMS:STATE:02:VELO_RBV.PREC -MFX:ATM:MMS:STATE:03:VELO_RBV.PREC -MFX:ATM:MMS:STATE:04:VELO_RBV.PREC -MFX:ATM:MMS:STATE:05:VELO_RBV.PREC -MFX:ATM:MMS:STATE:06:VELO_RBV.PREC -MFX:ATM:MMS:STATE:01:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:02:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:03:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:04:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:05:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:06:ACCL_RBV.PREC -MFX:ATM:MMS:STATE:01:DCCL_RBV.PREC -MFX:ATM:MMS:STATE:02:DCCL_RBV.PREC -MFX:ATM:MMS:STATE:03:DCCL_RBV.PREC -MFX:ATM:MMS:STATE:04:DCCL_RBV.PREC -MFX:ATM:MMS:STATE:05:DCCL_RBV.PREC -MFX:ATM:MMS:STATE:06:DCCL_RBV.PREC -MFX:ATM:STC:01:TEMP_RBV.PREC -MFX:ATM:MMS:Y:PLC:fPosition_RBV.PREC -MFX:ATM:MMS:Y:PLC:fVelocity_RBV.PREC -MFX:ATM:MMS:Y:PLC:fAcceleration_RBV.PREC -MFX:ATM:MMS:Y:PLC:fDeceleration_RBV.PREC -MFX:ATM:MMS:Y:PLC:fHomePosition_RBV.PREC -MFX:ATM:MMS:Y:PLC:fPosDiff_RBV.PREC -MFX:ATM:MMS:X:PLC:fPosition_RBV.PREC -MFX:ATM:MMS:X:PLC:fVelocity_RBV.PREC -MFX:ATM:MMS:X:PLC:fAcceleration_RBV.PREC -MFX:ATM:MMS:X:PLC:fDeceleration_RBV.PREC -MFX:ATM:MMS:X:PLC:fHomePosition_RBV.PREC -MFX:ATM:MMS:X:PLC:fPosDiff_RBV.PREC -MFX:LIB:MMS:01:PLC:fPosition_RBV.PREC -MFX:LIB:MMS:01:PLC:fVelocity_RBV.PREC -MFX:LIB:MMS:01:PLC:fAcceleration_RBV.PREC -MFX:LIB:MMS:01:PLC:fDeceleration_RBV.PREC -MFX:LIB:MMS:01:PLC:fHomePosition_RBV.PREC -MFX:LIB:MMS:01:PLC:fPosDiff_RBV.PREC -MFX:LIB:MMS:02:PLC:fPosition_RBV.PREC -MFX:LIB:MMS:02:PLC:fVelocity_RBV.PREC -MFX:LIB:MMS:02:PLC:fAcceleration_RBV.PREC -MFX:LIB:MMS:02:PLC:fDeceleration_RBV.PREC -MFX:LIB:MMS:02:PLC:fHomePosition_RBV.PREC -MFX:LIB:MMS:02:PLC:fPosDiff_RBV.PREC -MFX:LIB:MMS:03:PLC:fPosition_RBV.PREC -MFX:LIB:MMS:03:PLC:fVelocity_RBV.PREC -MFX:LIB:MMS:03:PLC:fAcceleration_RBV.PREC -MFX:LIB:MMS:03:PLC:fDeceleration_RBV.PREC -MFX:LIB:MMS:03:PLC:fHomePosition_RBV.PREC -MFX:LIB:MMS:03:PLC:fPosDiff_RBV.PREC -MFX:LIB:MMS:04:PLC:fPosition_RBV.PREC -MFX:LIB:MMS:04:PLC:fVelocity_RBV.PREC -MFX:LIB:MMS:04:PLC:fAcceleration_RBV.PREC -MFX:LIB:MMS:04:PLC:fDeceleration_RBV.PREC -MFX:LIB:MMS:04:PLC:fHomePosition_RBV.PREC -MFX:LIB:MMS:04:PLC:fPosDiff_RBV.PREC -MFX:LJH:JET:X:PLC:fPosition_RBV.PREC -MFX:LJH:JET:X:PLC:fVelocity_RBV.PREC -MFX:LJH:JET:X:PLC:fAcceleration_RBV.PREC -MFX:LJH:JET:X:PLC:fDeceleration_RBV.PREC -MFX:LJH:JET:X:PLC:fHomePosition_RBV.PREC -MFX:LJH:JET:X:PLC:fPosDiff_RBV.PREC -MFX:LJH:JET:Y:PLC:fPosition_RBV.PREC -MFX:LJH:JET:Y:PLC:fVelocity_RBV.PREC -MFX:LJH:JET:Y:PLC:fAcceleration_RBV.PREC -MFX:LJH:JET:Y:PLC:fDeceleration_RBV.PREC -MFX:LJH:JET:Y:PLC:fHomePosition_RBV.PREC -MFX:LJH:JET:Y:PLC:fPosDiff_RBV.PREC -MFX:LJH:JET:Z:PLC:fPosition_RBV.PREC -MFX:LJH:JET:Z:PLC:fVelocity_RBV.PREC -MFX:LJH:JET:Z:PLC:fAcceleration_RBV.PREC -MFX:LJH:JET:Z:PLC:fDeceleration_RBV.PREC -MFX:LJH:JET:Z:PLC:fHomePosition_RBV.PREC -MFX:LJH:JET:Z:PLC:fPosDiff_RBV.PREC -MFX:LJH:DET:X:PLC:fPosition_RBV.PREC -MFX:LJH:DET:X:PLC:fVelocity_RBV.PREC -MFX:LJH:DET:X:PLC:fAcceleration_RBV.PREC -MFX:LJH:DET:X:PLC:fDeceleration_RBV.PREC -MFX:LJH:DET:X:PLC:fHomePosition_RBV.PREC -MFX:LJH:DET:X:PLC:fPosDiff_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fPosition_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fVelocity_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fAcceleration_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fDeceleration_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fHomePosition_RBV.PREC -MFX:LJH:SS:TOP_X:PLC:fPosDiff_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fPosition_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fVelocity_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fAcceleration_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fDeceleration_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fHomePosition_RBV.PREC -MFX:LJH:SS:TOP_Y:PLC:fPosDiff_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fPosition_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fVelocity_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fAcceleration_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fDeceleration_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fHomePosition_RBV.PREC -MFX:LJH:SS:BOT_X:PLC:fPosDiff_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fPosition_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fVelocity_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fAcceleration_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fDeceleration_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fHomePosition_RBV.PREC -MFX:LJH:SS:BOT_Y:PLC:fPosDiff_RBV.PREC diff --git a/iocBoot/ioc-mfx-motion/autosave/info_settings.req b/iocBoot/ioc-mfx-motion/autosave/info_settings.req deleted file mode 100644 index 70d52bd..0000000 --- a/iocBoot/ioc-mfx-motion/autosave/info_settings.req +++ /dev/null @@ -1,239 +0,0 @@ -PLC:mfx_motion:ACCESS.VAL -MFX:ATM:MMS:Y.ACCL -MFX:ATM:MMS:Y.DESC -MFX:ATM:MMS:Y.DHLM -MFX:ATM:MMS:Y.DIR -MFX:ATM:MMS:Y.DLLM -MFX:ATM:MMS:Y.EGU -MFX:ATM:MMS:Y.ERES -MFX:ATM:MMS:Y.FOFF -MFX:ATM:MMS:Y.HLM -MFX:ATM:MMS:Y.LLM -MFX:ATM:MMS:Y.MRES -MFX:ATM:MMS:Y.OFF -MFX:ATM:MMS:Y.PREC -MFX:ATM:MMS:Y.RDBD -MFX:ATM:MMS:Y.VBAS -MFX:ATM:MMS:Y.VELO -MFX:ATM:MMS:Y.VMAX -MFX:ATM:MMS:X.ACCL -MFX:ATM:MMS:X.DESC -MFX:ATM:MMS:X.DHLM -MFX:ATM:MMS:X.DIR -MFX:ATM:MMS:X.DLLM -MFX:ATM:MMS:X.EGU -MFX:ATM:MMS:X.ERES -MFX:ATM:MMS:X.FOFF -MFX:ATM:MMS:X.HLM -MFX:ATM:MMS:X.LLM -MFX:ATM:MMS:X.MRES -MFX:ATM:MMS:X.OFF -MFX:ATM:MMS:X.PREC -MFX:ATM:MMS:X.RDBD -MFX:ATM:MMS:X.VBAS -MFX:ATM:MMS:X.VELO -MFX:ATM:MMS:X.VMAX -MFX:LIB:MMS:01.ACCL -MFX:LIB:MMS:01.DESC -MFX:LIB:MMS:01.DHLM -MFX:LIB:MMS:01.DIR -MFX:LIB:MMS:01.DLLM -MFX:LIB:MMS:01.EGU -MFX:LIB:MMS:01.ERES -MFX:LIB:MMS:01.FOFF -MFX:LIB:MMS:01.HLM -MFX:LIB:MMS:01.LLM -MFX:LIB:MMS:01.MRES -MFX:LIB:MMS:01.OFF -MFX:LIB:MMS:01.PREC -MFX:LIB:MMS:01.RDBD -MFX:LIB:MMS:01.VBAS -MFX:LIB:MMS:01.VELO -MFX:LIB:MMS:01.VMAX -MFX:LIB:MMS:02.ACCL -MFX:LIB:MMS:02.DESC -MFX:LIB:MMS:02.DHLM -MFX:LIB:MMS:02.DIR -MFX:LIB:MMS:02.DLLM -MFX:LIB:MMS:02.EGU -MFX:LIB:MMS:02.ERES -MFX:LIB:MMS:02.FOFF -MFX:LIB:MMS:02.HLM -MFX:LIB:MMS:02.LLM -MFX:LIB:MMS:02.MRES -MFX:LIB:MMS:02.OFF -MFX:LIB:MMS:02.PREC -MFX:LIB:MMS:02.RDBD -MFX:LIB:MMS:02.VBAS -MFX:LIB:MMS:02.VELO -MFX:LIB:MMS:02.VMAX -MFX:LIB:MMS:03.ACCL -MFX:LIB:MMS:03.DESC -MFX:LIB:MMS:03.DHLM -MFX:LIB:MMS:03.DIR -MFX:LIB:MMS:03.DLLM -MFX:LIB:MMS:03.EGU -MFX:LIB:MMS:03.ERES -MFX:LIB:MMS:03.FOFF -MFX:LIB:MMS:03.HLM -MFX:LIB:MMS:03.LLM -MFX:LIB:MMS:03.MRES -MFX:LIB:MMS:03.OFF -MFX:LIB:MMS:03.PREC -MFX:LIB:MMS:03.RDBD -MFX:LIB:MMS:03.VBAS -MFX:LIB:MMS:03.VELO -MFX:LIB:MMS:03.VMAX -MFX:LIB:MMS:04.ACCL -MFX:LIB:MMS:04.DESC -MFX:LIB:MMS:04.DHLM -MFX:LIB:MMS:04.DIR -MFX:LIB:MMS:04.DLLM -MFX:LIB:MMS:04.EGU -MFX:LIB:MMS:04.ERES -MFX:LIB:MMS:04.FOFF -MFX:LIB:MMS:04.HLM -MFX:LIB:MMS:04.LLM -MFX:LIB:MMS:04.MRES -MFX:LIB:MMS:04.OFF -MFX:LIB:MMS:04.PREC -MFX:LIB:MMS:04.RDBD -MFX:LIB:MMS:04.VBAS -MFX:LIB:MMS:04.VELO -MFX:LIB:MMS:04.VMAX -MFX:LJH:JET:X.ACCL -MFX:LJH:JET:X.DESC -MFX:LJH:JET:X.DHLM -MFX:LJH:JET:X.DIR -MFX:LJH:JET:X.DLLM -MFX:LJH:JET:X.EGU -MFX:LJH:JET:X.ERES -MFX:LJH:JET:X.FOFF -MFX:LJH:JET:X.HLM -MFX:LJH:JET:X.LLM -MFX:LJH:JET:X.MRES -MFX:LJH:JET:X.OFF -MFX:LJH:JET:X.PREC -MFX:LJH:JET:X.RDBD -MFX:LJH:JET:X.VBAS -MFX:LJH:JET:X.VELO -MFX:LJH:JET:X.VMAX -MFX:LJH:JET:Y.ACCL -MFX:LJH:JET:Y.DESC -MFX:LJH:JET:Y.DHLM -MFX:LJH:JET:Y.DIR -MFX:LJH:JET:Y.DLLM -MFX:LJH:JET:Y.EGU -MFX:LJH:JET:Y.ERES -MFX:LJH:JET:Y.FOFF -MFX:LJH:JET:Y.HLM -MFX:LJH:JET:Y.LLM -MFX:LJH:JET:Y.MRES -MFX:LJH:JET:Y.OFF -MFX:LJH:JET:Y.PREC -MFX:LJH:JET:Y.RDBD -MFX:LJH:JET:Y.VBAS -MFX:LJH:JET:Y.VELO -MFX:LJH:JET:Y.VMAX -MFX:LJH:JET:Z.ACCL -MFX:LJH:JET:Z.DESC -MFX:LJH:JET:Z.DHLM -MFX:LJH:JET:Z.DIR -MFX:LJH:JET:Z.DLLM -MFX:LJH:JET:Z.EGU -MFX:LJH:JET:Z.ERES -MFX:LJH:JET:Z.FOFF -MFX:LJH:JET:Z.HLM -MFX:LJH:JET:Z.LLM -MFX:LJH:JET:Z.MRES -MFX:LJH:JET:Z.OFF -MFX:LJH:JET:Z.PREC -MFX:LJH:JET:Z.RDBD -MFX:LJH:JET:Z.VBAS -MFX:LJH:JET:Z.VELO -MFX:LJH:JET:Z.VMAX -MFX:LJH:DET:X.ACCL -MFX:LJH:DET:X.DESC -MFX:LJH:DET:X.DHLM -MFX:LJH:DET:X.DIR -MFX:LJH:DET:X.DLLM -MFX:LJH:DET:X.EGU -MFX:LJH:DET:X.ERES -MFX:LJH:DET:X.FOFF -MFX:LJH:DET:X.HLM -MFX:LJH:DET:X.LLM -MFX:LJH:DET:X.MRES -MFX:LJH:DET:X.OFF -MFX:LJH:DET:X.PREC -MFX:LJH:DET:X.RDBD -MFX:LJH:DET:X.VBAS -MFX:LJH:DET:X.VELO -MFX:LJH:DET:X.VMAX -MFX:LJH:SS:TOP_X.ACCL -MFX:LJH:SS:TOP_X.DESC -MFX:LJH:SS:TOP_X.DHLM -MFX:LJH:SS:TOP_X.DIR -MFX:LJH:SS:TOP_X.DLLM -MFX:LJH:SS:TOP_X.EGU -MFX:LJH:SS:TOP_X.ERES -MFX:LJH:SS:TOP_X.FOFF -MFX:LJH:SS:TOP_X.HLM -MFX:LJH:SS:TOP_X.LLM -MFX:LJH:SS:TOP_X.MRES -MFX:LJH:SS:TOP_X.OFF -MFX:LJH:SS:TOP_X.PREC -MFX:LJH:SS:TOP_X.RDBD -MFX:LJH:SS:TOP_X.VBAS -MFX:LJH:SS:TOP_X.VELO -MFX:LJH:SS:TOP_X.VMAX -MFX:LJH:SS:TOP_Y.ACCL -MFX:LJH:SS:TOP_Y.DESC -MFX:LJH:SS:TOP_Y.DHLM -MFX:LJH:SS:TOP_Y.DIR -MFX:LJH:SS:TOP_Y.DLLM -MFX:LJH:SS:TOP_Y.EGU -MFX:LJH:SS:TOP_Y.ERES -MFX:LJH:SS:TOP_Y.FOFF -MFX:LJH:SS:TOP_Y.HLM -MFX:LJH:SS:TOP_Y.LLM -MFX:LJH:SS:TOP_Y.MRES -MFX:LJH:SS:TOP_Y.OFF -MFX:LJH:SS:TOP_Y.PREC -MFX:LJH:SS:TOP_Y.RDBD -MFX:LJH:SS:TOP_Y.VBAS -MFX:LJH:SS:TOP_Y.VELO -MFX:LJH:SS:TOP_Y.VMAX -MFX:LJH:SS:BOT_X.ACCL -MFX:LJH:SS:BOT_X.DESC -MFX:LJH:SS:BOT_X.DHLM -MFX:LJH:SS:BOT_X.DIR -MFX:LJH:SS:BOT_X.DLLM -MFX:LJH:SS:BOT_X.EGU -MFX:LJH:SS:BOT_X.ERES -MFX:LJH:SS:BOT_X.FOFF -MFX:LJH:SS:BOT_X.HLM -MFX:LJH:SS:BOT_X.LLM -MFX:LJH:SS:BOT_X.MRES -MFX:LJH:SS:BOT_X.OFF -MFX:LJH:SS:BOT_X.PREC -MFX:LJH:SS:BOT_X.RDBD -MFX:LJH:SS:BOT_X.VBAS -MFX:LJH:SS:BOT_X.VELO -MFX:LJH:SS:BOT_X.VMAX -MFX:LJH:SS:BOT_Y.ACCL -MFX:LJH:SS:BOT_Y.DESC -MFX:LJH:SS:BOT_Y.DHLM -MFX:LJH:SS:BOT_Y.DIR -MFX:LJH:SS:BOT_Y.DLLM -MFX:LJH:SS:BOT_Y.EGU -MFX:LJH:SS:BOT_Y.ERES -MFX:LJH:SS:BOT_Y.FOFF -MFX:LJH:SS:BOT_Y.HLM -MFX:LJH:SS:BOT_Y.LLM -MFX:LJH:SS:BOT_Y.MRES -MFX:LJH:SS:BOT_Y.OFF -MFX:LJH:SS:BOT_Y.PREC -MFX:LJH:SS:BOT_Y.RDBD -MFX:LJH:SS:BOT_Y.VBAS -MFX:LJH:SS:BOT_Y.VELO -MFX:LJH:SS:BOT_Y.VMAX diff --git a/iocBoot/ioc-mfx-motion/envPaths b/iocBoot/ioc-mfx-motion/envPaths index 1eb7fc4..b1903fb 100644 --- a/iocBoot/ioc-mfx-motion/envPaths +++ b/iocBoot/ioc-mfx-motion/envPaths @@ -1,14 +1,2 @@ -epicsEnvSet("IOC","${IOC=ioc-mfx-motion}") -epicsEnvSet("TOP","/reg/g/pcds/epics/ioc/common/ads-ioc/R0.6.0") -epicsEnvSet("EPICS_SITE_TOP","/reg/g/pcds/epics/") -epicsEnvSet("EPICS_MODULES","/reg/g/pcds/epics//R7.0.2-2.0/modules") -epicsEnvSet("AUTOSAVE","/reg/g/pcds/epics//R7.0.2-2.0/modules/autosave/R5.8-2.1.0") -epicsEnvSet("IOCADMIN","/reg/g/pcds/epics//R7.0.2-2.0/modules/iocAdmin/R3.1.15-1.10.0") -epicsEnvSet("ETHERCATMC","/reg/g/pcds/epics//R7.0.2-2.0/modules/ethercatmc/R2.1.0-0.1.2") -epicsEnvSet("MOTOR","/reg/g/pcds/epics//R7.0.2-2.0/modules/motor/R6.9-ess-0.0.1") -epicsEnvSet("ASYN","/reg/g/pcds/epics//R7.0.2-2.0/modules/asyn/R4.35-0.0.1") -epicsEnvSet("ADS","/reg/g/pcds/epics//R7.0.2-2.0/modules/twincat-ads/R2.0.0-0.0.7") -epicsEnvSet("CAPUTLOG","/reg/g/pcds/epics//R7.0.2-2.0/modules/caPutLog/R3.7-1.0.0") -epicsEnvSet("EPICS_BASE","/reg/g/pcds/epics//base/R7.0.2-2.0") -epicsEnvSet("IOC_TOP", "/cds/group/pcds/epics-dev/espov/ioc/mfx/lcls-plc-mfx-motion/iocBoot/ioc-mfx-motion") +epicsEnvSet("IOC_TOP", "/c/Users/nlentz/Documents/PLC/lcls-plc-mfx-motion/iocBoot/ioc-mfx-motion") epicsEnvSet("IOC_DATA", "/cds/data/iocData") diff --git a/iocBoot/ioc-mfx-motion/mfx_motion.archive b/iocBoot/ioc-mfx-motion/mfx_motion.archive index d2e1fe2..6036cb8 100644 --- a/iocBoot/ioc-mfx-motion/mfx_motion.archive +++ b/iocBoot/ioc-mfx-motion/mfx_motion.archive @@ -322,6 +322,271 @@ MFX:LJH:SS:BOT_Y:PLC:nHomingMode_RBV.VAL 1 scan MFX:LJH:SS:BOT_Y:PLC:nMotionAxisID_RBV.VAL 1 scan MFX:LJH:SS:BOT_Y:PLC:sErrorMessage_RBV.VAL 1 scan MFX:LJH:SS:BOT_Y:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C1:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C1:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C1:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C1:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C1:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C1:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C1:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C1:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C1:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C1:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C1:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C1:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C1:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C1:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C1:ROT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C1:TILT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C2:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C2:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C2:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C2:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C2:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C2:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C2:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C2:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C2:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C2:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C2:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C2:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C2:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C2:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C2:ROT:PLC:sName_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:bAllEnable_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:bAllForwardEnable_RBV.VAL 1 scan @@ -375,6 +640,536 @@ MFX:ATM:MMS:X:PLC:nHomingMode_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:nMotionAxisID_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:sErrorMessage_RBV.VAL 1 scan MFX:ATM:MMS:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C2:TILT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C3:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C3:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C3:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C3:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C3:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C3:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C3:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C3:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C3:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C3:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C3:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C3:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C3:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C3:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C3:ROT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C3:TILT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C4:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C4:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C4:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C4:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C4:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C4:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C4:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C4:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C4:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C4:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C4:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C4:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C4:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C4:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C4:ROT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C4:TILT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C5:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C5:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C5:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C5:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C5:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C5:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C5:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C5:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C5:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C5:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C5:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C5:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C5:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C5:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C5:ROT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C5:TILT:PLC:sName_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:bAllBackwardEnable_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:bAllEnable_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:bAllForwardEnable_RBV.VAL 1 scan @@ -428,6 +1223,377 @@ MFX:LIB:MMS:01:PLC:nHomingMode_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:nMotionAxisID_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:sErrorMessage_RBV.VAL 1 scan MFX:LIB:MMS:01:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bEnable.VAL 1 scan +MFX:SPEC:C6:X:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bExecute.VAL 1 scan +MFX:SPEC:C6:X:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C6:X:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C6:X:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bReset.VAL 1 scan +MFX:SPEC:C6:X:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C6:X:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C6:X:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C6:X:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C6:X:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fPosition.VAL 1 scan +MFX:SPEC:C6:X:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C6:X:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C6:X:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nCommand.VAL 1 scan +MFX:SPEC:C6:X:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C6:X:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C6:ROT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bEnable.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bExecute.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bReset.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fPosition.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nCommand.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:C6:TILT:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bEnable.VAL 1 scan +MFX:SPEC:T1:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bExecute.VAL 1 scan +MFX:SPEC:T1:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:T1:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:T1:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bReset.VAL 1 scan +MFX:SPEC:T1:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:T1:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:T1:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:T1:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:T1:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fPosition.VAL 1 scan +MFX:SPEC:T1:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:fVelocity.VAL 1 scan +MFX:SPEC:T1:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nCmdData.VAL 1 scan +MFX:SPEC:T1:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nCommand.VAL 1 scan +MFX:SPEC:T1:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:T1:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bEnable.VAL 1 scan +MFX:SPEC:T2:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bExecute.VAL 1 scan +MFX:SPEC:T2:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:T2:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:T2:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bReset.VAL 1 scan +MFX:SPEC:T2:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:T2:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:T2:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:T2:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:T2:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fPosition.VAL 1 scan +MFX:SPEC:T2:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:fVelocity.VAL 1 scan +MFX:SPEC:T2:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nCmdData.VAL 1 scan +MFX:SPEC:T2:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nCommand.VAL 1 scan +MFX:SPEC:T2:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:T2:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bEnable.VAL 1 scan +MFX:SPEC:T3:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bExecute.VAL 1 scan +MFX:SPEC:T3:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:T3:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:T3:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bReset.VAL 1 scan +MFX:SPEC:T3:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:T3:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:T3:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:T3:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:T3:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fPosition.VAL 1 scan +MFX:SPEC:T3:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:fVelocity.VAL 1 scan +MFX:SPEC:T3:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nCmdData.VAL 1 scan +MFX:SPEC:T3:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nCommand.VAL 1 scan +MFX:SPEC:T3:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:T3:PLC:sName_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bAllBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bAllEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bAllForwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bBrakeRelease_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bBusy_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bDone_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bEnable.VAL 1 scan +MFX:SPEC:ROT:PLC:bEnableDone_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bError_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bExecute_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bExecute.VAL 1 scan +MFX:SPEC:ROT:PLC:bGantryAxis_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bGantryBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bGantryForwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bHardwareEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bHome_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bHomeCmd_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bHomeCmd.VAL 1 scan +MFX:SPEC:ROT:PLC:bHomed_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bLimitBackwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bLimitForwardEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bMoveCmd_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bMoveCmd.VAL 1 scan +MFX:SPEC:ROT:PLC:bPowerSelf_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bReset_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bReset.VAL 1 scan +MFX:SPEC:ROT:PLC:bSafetyReady_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bUserEnable_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:bUserEnable.VAL 1 scan +MFX:SPEC:ROT:PLC:fAcceleration_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fAcceleration.VAL 1 scan +MFX:SPEC:ROT:PLC:fDeceleration_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fDeceleration.VAL 1 scan +MFX:SPEC:ROT:PLC:fHomePosition_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fHomePosition.VAL 1 scan +MFX:SPEC:ROT:PLC:fPosDiff_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fPosition_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fPosition.VAL 1 scan +MFX:SPEC:ROT:PLC:fVelocity_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:fVelocity.VAL 1 scan +MFX:SPEC:ROT:PLC:nBrakeMode_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nCmdData_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nCmdData.VAL 1 scan +MFX:SPEC:ROT:PLC:nCommand_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nCommand.VAL 1 scan +MFX:SPEC:ROT:PLC:nEnableMode_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nEncoderCount_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nErrorId_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nHomingMode_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:nMotionAxisID_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:sErrorMessage_RBV.VAL 1 scan +MFX:SPEC:ROT:PLC:sName_RBV.VAL 1 scan MFX:LIB:MMS:02:PLC:bAllBackwardEnable_RBV.VAL 1 scan MFX:LIB:MMS:02:PLC:bAllEnable_RBV.VAL 1 scan MFX:LIB:MMS:02:PLC:bAllForwardEnable_RBV.VAL 1 scan @@ -878,4 +2044,6 @@ MFX:ATM:MMS:STATE:ERRID_RBV.VAL 1 scan MFX:ATM:MMS:STATE:ERRMSG_RBV.VAL 1 scan MFX:ATM:STC:01:CONN_RBV.VAL 1 scan MFX:ATM:STC:01:ERR_RBV.VAL 1 scan -MFX:ATM:STC:01:TEMP_RBV.VAL 1 scan \ No newline at end of file +MFX:ATM:STC:01:TEMP_RBV.VAL 1 scan +MFX:SPEC:HOLDCUREN_RBV.VAL 1 scan +MFX:SPEC:HOLDCUREN.VAL 1 scan \ No newline at end of file diff --git a/iocBoot/ioc-mfx-motion/mfx_motion.db b/iocBoot/ioc-mfx-motion/mfx_motion.db index c17504a..bd22d02 100644 --- a/iocBoot/ioc-mfx-motion/mfx_motion.db +++ b/iocBoot/ioc-mfx-motion/mfx_motion.db @@ -4168,6 +4168,3421 @@ record(waveform, "MFX:LJH:SS:BOT_Y:PLC:sName_RBV") { info(archive, "VAL") } +record(bi, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:X: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:ROT: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, "MFX:SPEC:C1:TILT: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.M17.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M17.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT: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.M17.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M17.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M17.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M17.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C1:TILT: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.M17.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C1:TILT: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.M17.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C1:TILT: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.M17.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C1:TILT: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.M17.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C1:TILT: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.M17.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C1:TILT: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.M17.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C1:TILT: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.M17.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, "MFX:SPEC:C2:X: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.M18.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M18.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X: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.M18.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M18.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M18.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M18.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:X: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.M18.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:X: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.M18.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:X: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.M18.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:X: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.M18.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:X: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.M18.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:X: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.M18.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:X: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.M18.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, "MFX:SPEC:C2:ROT: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.M19.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M19.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT: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.M19.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M19.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M19.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M19.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:ROT: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.M19.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:ROT: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.M19.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:ROT: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.M19.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:ROT: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.M19.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:ROT: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.M19.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:ROT: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.M19.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:SPEC:C2:ROT: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.M19.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, "MFX:ATM:MMS:X:PLC:bAllBackwardEnable_RBV") { # Summary of axis permission to move backward field(DESC, "Summary of axis perm... to move backward") @@ -4175,523 +7590,12134 @@ record(bi, "MFX:ATM:MMS:X:PLC:bAllBackwardEnable_RBV") { field(PINI, "1") field(TSE, "-2") field(DTYP, "asynInt32") - field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M2.bAllBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M2.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X: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.M2.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:ATM:MMS:X: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.M2.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:ATM:MMS:X: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.M2.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:ATM:MMS:X: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.M2.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:ATM:MMS:X: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.M2.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:ATM:MMS:X: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.M2.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:ATM:MMS:X: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.M2.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:ATM:MMS:X: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.M2.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, "MFX:ATM:MMS:X: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.M2.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, "MFX:SPEC:C2:TILT: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.M20.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M20.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT: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.M20.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M20.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M20.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M20.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C2:TILT: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.M20.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C2:TILT: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.M20.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:TILT: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.M20.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:TILT: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.M20.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C2:TILT: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.M20.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C2:TILT: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.M20.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C2:TILT: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.M20.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, "MFX:SPEC:C3:X: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.M21.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M21.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X: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.M21.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M21.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M21.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M21.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:X: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.M21.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:X: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.M21.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:X: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.M21.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:X: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.M21.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:X: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.M21.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:X: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.M21.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:X: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.M21.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, "MFX:SPEC:C3:ROT: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.M22.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M22.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT: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.M22.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M22.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M22.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M22.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:ROT: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.M22.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:ROT: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.M22.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:ROT: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.M22.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:ROT: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.M22.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:ROT: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.M22.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:ROT: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.M22.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:ROT: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.M22.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, "MFX:SPEC:C3:TILT: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.M23.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M23.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT: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.M23.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M23.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M23.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M23.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C3:TILT: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.M23.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C3:TILT: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.M23.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:TILT: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.M23.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:TILT: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.M23.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C3:TILT: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.M23.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C3:TILT: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.M23.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C3:TILT: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.M23.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, "MFX:SPEC:C4:X: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.M24.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M24.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X: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.M24.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M24.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M24.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M24.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:X: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.M24.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:X: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.M24.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:X: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.M24.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:X: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.M24.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:X: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.M24.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:X: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.M24.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:X: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.M24.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, "MFX:SPEC:C4:ROT: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.M25.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M25.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT: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.M25.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M25.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M25.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M25.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:ROT: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.M25.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:ROT: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.M25.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:ROT: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.M25.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:ROT: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.M25.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:ROT: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.M25.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:ROT: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.M25.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:ROT: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.M25.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, "MFX:SPEC:C4:TILT: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.M26.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M26.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT: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.M26.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M26.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M26.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M26.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C4:TILT: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.M26.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C4:TILT: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.M26.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:TILT: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.M26.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:TILT: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.M26.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C4:TILT: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.M26.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C4:TILT: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.M26.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C4:TILT: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.M26.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, "MFX:SPEC:C5:X: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.M27.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M27.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X: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.M27.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M27.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M27.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M27.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:X: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.M27.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:X: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.M27.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:X: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.M27.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:X: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.M27.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:X: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.M27.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:X: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.M27.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:X: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.M27.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, "MFX:SPEC:C5:ROT: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.M28.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M28.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT: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.M28.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M28.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M28.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M28.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:ROT: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.M28.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:ROT: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.M28.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:ROT: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.M28.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:ROT: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.M28.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:ROT: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.M28.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:ROT: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.M28.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:ROT: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.M28.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, "MFX:SPEC:C5:TILT: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.M29.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M29.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT: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.M29.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M29.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M29.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M29.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C5:TILT: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.M29.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C5:TILT: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.M29.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:TILT: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.M29.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:TILT: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.M29.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C5:TILT: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.M29.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C5:TILT: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.M29.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:SPEC:C5:TILT: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.M29.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, "MFX:LIB:MMS:01: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.M3.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01: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.M3.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:LIB:MMS:01: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.M3.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:LIB:MMS:01: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.M3.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:LIB:MMS:01: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.M3.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:LIB:MMS:01: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.M3.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:LIB:MMS:01: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.M3.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:LIB:MMS:01: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.M3.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:LIB:MMS:01: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.M3.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, "MFX:LIB:MMS:01: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.M3.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, "MFX:SPEC:C6:X: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.M30.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M30.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X: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.M30.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M30.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M30.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M30.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:X: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.M30.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:X: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.M30.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:X: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.M30.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:X: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.M30.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:X: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.M30.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:X: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.M30.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:X: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.M30.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, "MFX:SPEC:C6:ROT: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.M31.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M31.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT: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.M31.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M31.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M31.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M31.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:ROT: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.M31.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:ROT: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.M31.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:ROT: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.M31.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:ROT: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.M31.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:ROT: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.M31.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:ROT: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.M31.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:ROT: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.M31.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, "MFX:SPEC:C6:TILT: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.M32.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M32.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT: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.M32.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M32.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M32.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M32.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:C6:TILT: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.M32.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:C6:TILT: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.M32.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:TILT: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.M32.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:TILT: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.M32.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:C6:TILT: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.M32.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:C6:TILT: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.M32.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:C6:TILT: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.M32.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, "MFX:SPEC:T1: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.M33.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M33.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1: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.M33.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M33.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M33.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M33.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T1: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.M33.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T1: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.M33.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:T1: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.M33.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:T1: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.M33.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:T1: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.M33.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:T1: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.M33.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T1: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.M33.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, "MFX:SPEC:T2: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.M34.bAllBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bAllEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bAllForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bBrakeRelease?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bBusy?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2:PLC:bEnable") { + field(DESC, "Used internally to request enables") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M34.bEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bEnableDone?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bError?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bExecute?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2: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.M34.bExecute=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bGantryAxis?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bGantryBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bGantryForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bHardwareEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bHome?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bHomeCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2:PLC:bHomeCmd") { + field(DESC, "Start the homing routine") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M34.bHomeCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bHomed?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bLimitBackwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bLimitForwardEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bMoveCmd?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2:PLC:bMoveCmd") { + field(DESC, "Start a move") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M34.bMoveCmd=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bPowerSelf?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bReset?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2:PLC:bReset") { + field(DESC, "Used internally to reset errors") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M34.bReset=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bSafetyReady?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bi, "MFX:SPEC:T2: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.M34.bUserEnable?") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:T2: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.M34.bUserEnable=") + field(ZNAM, "DISABLE") + field(ONAM, "ENABLE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") +} + +record(ai, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.nCmdData?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:T2: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.M34.nCmdData=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:T2: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.M34.nCommand?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longout, "MFX:SPEC:T2: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.M34.nCommand=") + info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.nEncoderCount?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(longin, "MFX:SPEC:T2: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.M34.nErrorId?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(mbbi, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.nMotionAxisID?") + info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") + info(archive, "VAL") +} + +record(waveform, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T2: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.M34.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, "MFX:SPEC:T3: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.M35.bAllBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bAllEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bAllEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bAllEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bAllForwardEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bAllForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bAllForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bBrakeRelease_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bBrakeRelease?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bBrakeRelease?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bBusy_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bBusy?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bBusy?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bDone_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bDone?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bDone?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bEnable") { +record(bo, "MFX:SPEC:T3:PLC:bEnable") { field(DESC, "Used internally to request enables") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bEnable=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bEnable=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bEnableDone_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bEnableDone?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bEnableDone?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bError_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bError?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M35.bError?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bExecute_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bExecute?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bExecute?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bExecute") { +record(bo, "MFX:SPEC:T3: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.M2.bExecute=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bExecute=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bGantryAxis_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bGantryAxis?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bGantryAxis?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bGantryBackwardEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bGantryBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bGantryBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bGantryForwardEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bGantryForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bGantryForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bHardwareEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bHardwareEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bHardwareEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bHome_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bHome?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bHome?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bHomeCmd_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bHomeCmd?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bHomeCmd?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bHomeCmd") { +record(bo, "MFX:SPEC:T3:PLC:bHomeCmd") { field(DESC, "Start the homing routine") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bHomeCmd=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bHomeCmd=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bHomed_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bHomed?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bHomed?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bLimitBackwardEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bLimitBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bLimitBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bLimitForwardEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bLimitForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bLimitForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bMoveCmd_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bMoveCmd?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bMoveCmd?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bMoveCmd") { +record(bo, "MFX:SPEC:T3:PLC:bMoveCmd") { field(DESC, "Start a move") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bMoveCmd=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bMoveCmd=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bPowerSelf_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bPowerSelf?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bPowerSelf?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bReset_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bReset?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bReset?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bReset") { +record(bo, "MFX:SPEC:T3:PLC:bReset") { field(DESC, "Used internally to reset errors") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M2.bReset=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bReset=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bSafetyReady_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bSafetyReady?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bSafetyReady?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:ATM:MMS:X:PLC:bUserEnable_RBV") { +record(bi, "MFX:SPEC:T3: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.M2.bUserEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.bUserEnable?") field(ZNAM, "DISABLE") field(ONAM, "ENABLE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:ATM:MMS:X:PLC:bUserEnable") { +record(bo, "MFX:SPEC:T3: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.M2.bUserEnable=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.bUserEnable=") field(ZNAM, "DISABLE") field(ONAM, "ENABLE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(ai, "MFX:ATM:MMS:X:PLC:fAcceleration_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fAcceleration?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fAcceleration") { +record(ao, "MFX:SPEC:T3: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.M2.fAcceleration=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.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, "MFX:ATM:MMS:X:PLC:fDeceleration_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fDeceleration?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fDeceleration") { +record(ao, "MFX:SPEC:T3: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.M2.fDeceleration=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.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, "MFX:ATM:MMS:X:PLC:fHomePosition_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fHomePosition?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fHomePosition") { +record(ao, "MFX:SPEC:T3: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.M2.fHomePosition=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.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, "MFX:ATM:MMS:X:PLC:fPosDiff_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fPosDiff?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fPosition_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fPosition?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fPosition") { +record(ao, "MFX:SPEC:T3: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.M2.fPosition=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.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, "MFX:ATM:MMS:X:PLC:fVelocity_RBV") { +record(ai, "MFX:SPEC:T3: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.M2.fVelocity?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.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, "MFX:ATM:MMS:X:PLC:fVelocity") { +record(ao, "MFX:SPEC:T3: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.M2.fVelocity=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.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, "MFX:ATM:MMS:X:PLC:nBrakeMode_RBV") { +record(mbbi, "MFX:SPEC:T3: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.M2.nBrakeMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nBrakeMode?") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") @@ -4702,58 +19728,58 @@ record(mbbi, "MFX:ATM:MMS:X:PLC:nBrakeMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:ATM:MMS:X:PLC:nCmdData_RBV") { +record(longin, "MFX:SPEC:T3: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.M2.nCmdData?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nCmdData?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longout, "MFX:ATM:MMS:X:PLC:nCmdData") { +record(longout, "MFX:SPEC:T3: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.M2.nCmdData=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.nCmdData=") info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") info(archive, "VAL") } -record(longin, "MFX:ATM:MMS:X:PLC:nCommand_RBV") { +record(longin, "MFX:SPEC:T3: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.M2.nCommand?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nCommand?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longout, "MFX:ATM:MMS:X:PLC:nCommand") { +record(longout, "MFX:SPEC:T3: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.M2.nCommand=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M35.nCommand=") info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") info(archive, "VAL") } -record(mbbi, "MFX:ATM:MMS:X:PLC:nEnableMode_RBV") { +record(mbbi, "MFX:SPEC:T3: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.M2.nEnableMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nEnableMode?") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") @@ -4764,35 +19790,35 @@ record(mbbi, "MFX:ATM:MMS:X:PLC:nEnableMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:ATM:MMS:X:PLC:nEncoderCount_RBV") { +record(longin, "MFX:SPEC:T3: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.M2.nEncoderCount?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nEncoderCount?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longin, "MFX:ATM:MMS:X:PLC:nErrorId_RBV") { +record(longin, "MFX:SPEC:T3: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.M2.nErrorId?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M35.nErrorId?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(mbbi, "MFX:ATM:MMS:X:PLC:nHomingMode_RBV") { +record(mbbi, "MFX:SPEC:T3: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.M2.nHomingMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nHomingMode?") field(ZRVL, "-1") field(ONVL, "1") field(TWVL, "2") @@ -4809,25 +19835,25 @@ record(mbbi, "MFX:ATM:MMS:X:PLC:nHomingMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:ATM:MMS:X:PLC:nMotionAxisID_RBV") { +record(longin, "MFX:SPEC:T3: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.M2.nMotionAxisID?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.nMotionAxisID?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(waveform, "MFX:ATM:MMS:X:PLC:sErrorMessage_RBV") { +record(waveform, "MFX:SPEC:T3: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.M2.sErrorMessage?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M35.sErrorMessage?") field(FTVL, "CHAR") field(NELM, "80") field(MPST, "On Change") @@ -4836,13 +19862,13 @@ record(waveform, "MFX:ATM:MMS:X:PLC:sErrorMessage_RBV") { info(archive, "VAL") } -record(waveform, "MFX:ATM:MMS:X:PLC:sName_RBV") { +record(waveform, "MFX:SPEC:T3: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.M2.sName?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M35.sName?") field(FTVL, "CHAR") field(NELM, "80") field(MPST, "On Change") @@ -4851,530 +19877,530 @@ record(waveform, "MFX:ATM:MMS:X:PLC:sName_RBV") { info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bAllBackwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bAllBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bAllBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bAllEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bAllEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bAllEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bAllForwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bAllForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bAllForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bBrakeRelease_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bBrakeRelease?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bBrakeRelease?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bBusy_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bBusy?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bBusy?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bDone_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bDone?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bDone?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bEnable") { +record(bo, "MFX:SPEC:ROT:PLC:bEnable") { field(DESC, "Used internally to request enables") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bEnable=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bEnable=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bEnableDone_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bEnableDone?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bEnableDone?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bError_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bError?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M36.bError?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bExecute_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bExecute?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bExecute?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bExecute") { +record(bo, "MFX:SPEC:ROT: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.M3.bExecute=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bExecute=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bGantryAxis_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bGantryAxis?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bGantryAxis?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bGantryBackwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bGantryBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bGantryBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bGantryForwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bGantryForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bGantryForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bHardwareEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bHardwareEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bHardwareEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bHome_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bHome?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bHome?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bHomeCmd_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bHomeCmd?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bHomeCmd?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bHomeCmd") { +record(bo, "MFX:SPEC:ROT:PLC:bHomeCmd") { field(DESC, "Start the homing routine") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bHomeCmd=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bHomeCmd=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bHomed_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bHomed?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bHomed?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bLimitBackwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bLimitBackwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bLimitBackwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bLimitForwardEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bLimitForwardEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bLimitForwardEnable?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bMoveCmd_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bMoveCmd?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bMoveCmd?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bMoveCmd") { +record(bo, "MFX:SPEC:ROT:PLC:bMoveCmd") { field(DESC, "Start a move") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bMoveCmd=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bMoveCmd=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bPowerSelf_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bPowerSelf?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bPowerSelf?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bReset_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bReset?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bReset?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bReset") { +record(bo, "MFX:SPEC:ROT:PLC:bReset") { field(DESC, "Used internally to reset errors") field(DTYP, "asynInt32") field(UDFS, "0") - field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M3.bReset=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bReset=") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bSafetyReady_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bSafetyReady?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bSafetyReady?") field(ZNAM, "FALSE") field(ONAM, "TRUE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bi, "MFX:LIB:MMS:01:PLC:bUserEnable_RBV") { +record(bi, "MFX:SPEC:ROT: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.M3.bUserEnable?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.bUserEnable?") field(ZNAM, "DISABLE") field(ONAM, "ENABLE") info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") info(archive, "VAL") } -record(bo, "MFX:LIB:MMS:01:PLC:bUserEnable") { +record(bo, "MFX:SPEC:ROT: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.M3.bUserEnable=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.bUserEnable=") field(ZNAM, "DISABLE") field(ONAM, "ENABLE") info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") info(archive, "VAL") } -record(ai, "MFX:LIB:MMS:01:PLC:fAcceleration_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fAcceleration?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fAcceleration") { +record(ao, "MFX:SPEC:ROT: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.M3.fAcceleration=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.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, "MFX:LIB:MMS:01:PLC:fDeceleration_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fDeceleration?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fDeceleration") { +record(ao, "MFX:SPEC:ROT: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.M3.fDeceleration=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.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, "MFX:LIB:MMS:01:PLC:fHomePosition_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fHomePosition?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fHomePosition") { +record(ao, "MFX:SPEC:ROT: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.M3.fHomePosition=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.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, "MFX:LIB:MMS:01:PLC:fPosDiff_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fPosDiff?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fPosition_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fPosition?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fPosition") { +record(ao, "MFX:SPEC:ROT: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.M3.fPosition=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.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, "MFX:LIB:MMS:01:PLC:fVelocity_RBV") { +record(ai, "MFX:SPEC:ROT: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.M3.fVelocity?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.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, "MFX:LIB:MMS:01:PLC:fVelocity") { +record(ao, "MFX:SPEC:ROT: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.M3.fVelocity=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.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, "MFX:LIB:MMS:01:PLC:nBrakeMode_RBV") { +record(mbbi, "MFX:SPEC:ROT: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.M3.nBrakeMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nBrakeMode?") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") @@ -5385,58 +20411,58 @@ record(mbbi, "MFX:LIB:MMS:01:PLC:nBrakeMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:LIB:MMS:01:PLC:nCmdData_RBV") { +record(longin, "MFX:SPEC:ROT: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.M3.nCmdData?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nCmdData?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longout, "MFX:LIB:MMS:01:PLC:nCmdData") { +record(longout, "MFX:SPEC:ROT: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.M3.nCmdData=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.nCmdData=") info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") info(archive, "VAL") } -record(longin, "MFX:LIB:MMS:01:PLC:nCommand_RBV") { +record(longin, "MFX:SPEC:ROT: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.M3.nCommand?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nCommand?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longout, "MFX:LIB:MMS:01:PLC:nCommand") { +record(longout, "MFX:SPEC:ROT: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.M3.nCommand=") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/Main.M36.nCommand=") info(autosaveFields_pass0, "DESC DISS DRVH DRVL HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS VAL") info(archive, "VAL") } -record(mbbi, "MFX:LIB:MMS:01:PLC:nEnableMode_RBV") { +record(mbbi, "MFX:SPEC:ROT: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.M3.nEnableMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nEnableMode?") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") @@ -5447,35 +20473,35 @@ record(mbbi, "MFX:LIB:MMS:01:PLC:nEnableMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:LIB:MMS:01:PLC:nEncoderCount_RBV") { +record(longin, "MFX:SPEC:ROT: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.M3.nEncoderCount?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nEncoderCount?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(longin, "MFX:LIB:MMS:01:PLC:nErrorId_RBV") { +record(longin, "MFX:SPEC:ROT: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.M3.nErrorId?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M36.nErrorId?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(mbbi, "MFX:LIB:MMS:01:PLC:nHomingMode_RBV") { +record(mbbi, "MFX:SPEC:ROT: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.M3.nHomingMode?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nHomingMode?") field(ZRVL, "-1") field(ONVL, "1") field(TWVL, "2") @@ -5492,25 +20518,25 @@ record(mbbi, "MFX:LIB:MMS:01:PLC:nHomingMode_RBV") { info(archive, "VAL") } -record(longin, "MFX:LIB:MMS:01:PLC:nMotionAxisID_RBV") { +record(longin, "MFX:SPEC:ROT: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.M3.nMotionAxisID?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.nMotionAxisID?") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV SIMS UDFS") info(archive, "VAL") } -record(waveform, "MFX:LIB:MMS:01:PLC:sErrorMessage_RBV") { +record(waveform, "MFX:SPEC:ROT: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.M3.sErrorMessage?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/TS_MS=10/Main.M36.sErrorMessage?") field(FTVL, "CHAR") field(NELM, "80") field(MPST, "On Change") @@ -5519,13 +20545,13 @@ record(waveform, "MFX:LIB:MMS:01:PLC:sErrorMessage_RBV") { info(archive, "VAL") } -record(waveform, "MFX:LIB:MMS:01:PLC:sName_RBV") { +record(waveform, "MFX:SPEC:ROT: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.M3.sName?") + field(INP, "@asyn($(PORT),0,1)ADSPORT=851/POLL_RATE=1/Main.M36.sName?") field(FTVL, "CHAR") field(NELM, "80") field(MPST, "On Change") @@ -11319,4 +26345,28 @@ record(ai, "MFX:ATM:STC:01:TEMP_RBV") { field(EGU, "C") info(autosaveFields_pass0, "DESC DISS HHSV HIGH HIHI HSV LLSV LOLO LOW LSV PREC SIMS UDFS") info(archive, "VAL") +} + +record(bi, "MFX:SPEC:HOLDCUREN_RBV") { + field(DESC, "PRG_SPEC.bHoldingCurrentEnable") + 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/PRG_SPEC.bHoldingCurrentEnable?") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "DESC DISS OSV SIMS UDFS ZSV") + info(archive, "VAL") +} + +record(bo, "MFX:SPEC:HOLDCUREN") { + field(DESC, "PRG_SPEC.bHoldingCurrentEnable") + field(DTYP, "asynInt32") + field(UDFS, "0") + field(OUT, "@asyn($(PORT),0,1)ADSPORT=851/PRG_SPEC.bHoldingCurrentEnable=") + field(ZNAM, "FALSE") + field(ONAM, "TRUE") + info(autosaveFields_pass0, "COSV DESC DISS OSV SIMS UDFS VAL ZSV") + info(archive, "VAL") } \ No newline at end of file diff --git a/iocBoot/ioc-mfx-motion/mfx_motion.db.archive b/iocBoot/ioc-mfx-motion/mfx_motion.db.archive deleted file mode 100644 index 0082f49..0000000 --- a/iocBoot/ioc-mfx-motion/mfx_motion.db.archive +++ /dev/null @@ -1,887 +0,0 @@ -$(PREFIX)LCLSGeneral:GlobalLogTrickleTrip_RBV.VAL 1 scan -$(PREFIX)LCLSGeneral:LogPort_RBV.VAL 1 scan -$(PREFIX)LCLSGeneral:LogPort.VAL 1 scan -$(PREFIX)LCLSGeneral:LogHost_RBV.VAL 1 scan -$(PREFIX)LCLSGeneral:LogHost.VAL 1 scan -$(PREFIX)LCLSGeneral:LogMessageCount_RBV.VAL 1 scan -$(PREFIX)RequestedBP:Transmission_RBV.VAL 1 monitor -$(PREFIX)RequestedBP:Rate_RBV.VAL 1 monitor -$(PREFIX)RequestedBP:PhotonEnergyRanges_RBV.VAL 1 monitor -$(PREFIX)RequestedBP:Veto_RBV.VAL 1 monitor -$(PREFIX)RequestedBP:Valid_RBV.VAL 1 monitor -$(PREFIX)RequestedBP:Cohort_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:Transmission_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:Rate_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:PhotonEnergyRanges_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:Veto_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:Valid_RBV.VAL 1 monitor -$(PREFIX)CurrentBP:Cohort_RBV.VAL 1 monitor -$(PREFIX)eVRangeCnst_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:Transmission_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:Rate_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:PhotonEnergyRanges_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:Veto_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:Valid_RBV.VAL 1 monitor -$(PREFIX)FullBeamCnst:Cohort_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:Transmission_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:Rate_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:PhotonEnergyRanges_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:Veto_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:Valid_RBV.VAL 1 monitor -$(PREFIX)0RateBeamCnst:Cohort_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:Transmission_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:Rate_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:PhotonEnergyRanges_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:Veto_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:Valid_RBV.VAL 1 monitor -$(PREFIX)SafeBeamCnst:Cohort_RBV.VAL 1 monitor -$(PREFIX)eVRangeHyst_RBV.VAL 1 monitor -$(PREFIX)L:eVRangeCnst_RBV.VAL 1 monitor -$(PREFIX)K:eVRangeCnst_RBV.VAL 1 monitor -MFX:ATM:MMS:STATE:RESET_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:RESET.VAL 1 scan -MFX:ATM:MMS:STATE:ERR_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:ERRID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:ERRMSG_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:BUSY_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:DONE_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:NAME_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:02:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:03:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:04:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:05:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:06:SETPOINT_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:SETPOINT.VAL 1 scan -MFX:ATM:MMS:STATE:01:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:ENCODER_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:02:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:03:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:04:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:05:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:06:DELTA_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:DELTA.VAL 1 scan -MFX:ATM:MMS:STATE:01:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:02:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:03:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:04:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:05:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:06:VELO_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:VELO.VAL 1 scan -MFX:ATM:MMS:STATE:01:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:02:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:03:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:04:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:05:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:06:ACCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:ACCL.VAL 1 scan -MFX:ATM:MMS:STATE:01:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:02:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:03:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:04:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:05:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:06:DCCL_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:DCCL.VAL 1 scan -MFX:ATM:MMS:STATE:01:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:MOVE_OK_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:LOCKED_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:01:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:02:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:03:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:04:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:05:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:06:VALID_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:SET_RBV.VAL 1 scan -MFX:ATM:MMS:STATE:SET.VAL 1 scan -MFX:ATM:MMS:STATE:GET_RBV.VAL 1 scan -MFX:ATM:STC:01:TEMP_RBV.VAL 1 scan -MFX:ATM:STC:01:CONN_RBV.VAL 1 scan -MFX:ATM:STC:01:ERR_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bHome_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bAllEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:sName_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nEnableMode_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nHomingMode_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bEnable.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bReset_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bReset.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bExecute_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bExecute.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bUserEnable_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bUserEnable.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bMoveCmd.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bHomeCmd.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nCommand_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nCommand.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nCmdData_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nCmdData.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fPosition_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fPosition.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fVelocity_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fVelocity.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fAcceleration_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fAcceleration.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fDeceleration_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fDeceleration.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fHomePosition_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fHomePosition.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bEnableDone_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bBusy_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bDone_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bHomed_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:bError_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:nErrorId_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:ATM:MMS:Y:PLC:fPosDiff_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bHome_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bAllEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:sName_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nEnableMode_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nHomingMode_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bEnable.VAL 1 scan -MFX:ATM:MMS:X:PLC:bReset_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bReset.VAL 1 scan -MFX:ATM:MMS:X:PLC:bExecute_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bExecute.VAL 1 scan -MFX:ATM:MMS:X:PLC:bUserEnable_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bUserEnable.VAL 1 scan -MFX:ATM:MMS:X:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bMoveCmd.VAL 1 scan -MFX:ATM:MMS:X:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bHomeCmd.VAL 1 scan -MFX:ATM:MMS:X:PLC:nCommand_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nCommand.VAL 1 scan -MFX:ATM:MMS:X:PLC:nCmdData_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nCmdData.VAL 1 scan -MFX:ATM:MMS:X:PLC:fPosition_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fPosition.VAL 1 scan -MFX:ATM:MMS:X:PLC:fVelocity_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fVelocity.VAL 1 scan -MFX:ATM:MMS:X:PLC:fAcceleration_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fAcceleration.VAL 1 scan -MFX:ATM:MMS:X:PLC:fDeceleration_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fDeceleration.VAL 1 scan -MFX:ATM:MMS:X:PLC:fHomePosition_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fHomePosition.VAL 1 scan -MFX:ATM:MMS:X:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bEnableDone_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bBusy_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bDone_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bHomed_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:bError_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:nErrorId_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:ATM:MMS:X:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bHome_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:sName_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bEnable.VAL 1 scan -MFX:LIB:MMS:01:PLC:bReset_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bReset.VAL 1 scan -MFX:LIB:MMS:01:PLC:bExecute_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bExecute.VAL 1 scan -MFX:LIB:MMS:01:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bUserEnable.VAL 1 scan -MFX:LIB:MMS:01:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bMoveCmd.VAL 1 scan -MFX:LIB:MMS:01:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bHomeCmd.VAL 1 scan -MFX:LIB:MMS:01:PLC:nCommand_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nCommand.VAL 1 scan -MFX:LIB:MMS:01:PLC:nCmdData_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nCmdData.VAL 1 scan -MFX:LIB:MMS:01:PLC:fPosition_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fPosition.VAL 1 scan -MFX:LIB:MMS:01:PLC:fVelocity_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fVelocity.VAL 1 scan -MFX:LIB:MMS:01:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fAcceleration.VAL 1 scan -MFX:LIB:MMS:01:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fDeceleration.VAL 1 scan -MFX:LIB:MMS:01:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fHomePosition.VAL 1 scan -MFX:LIB:MMS:01:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bBusy_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bDone_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bHomed_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:bError_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:nErrorId_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LIB:MMS:01:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bHome_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:sName_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bEnable.VAL 1 scan -MFX:LIB:MMS:02:PLC:bReset_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bReset.VAL 1 scan -MFX:LIB:MMS:02:PLC:bExecute_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bExecute.VAL 1 scan -MFX:LIB:MMS:02:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bUserEnable.VAL 1 scan -MFX:LIB:MMS:02:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bMoveCmd.VAL 1 scan -MFX:LIB:MMS:02:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bHomeCmd.VAL 1 scan -MFX:LIB:MMS:02:PLC:nCommand_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nCommand.VAL 1 scan -MFX:LIB:MMS:02:PLC:nCmdData_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nCmdData.VAL 1 scan -MFX:LIB:MMS:02:PLC:fPosition_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fPosition.VAL 1 scan -MFX:LIB:MMS:02:PLC:fVelocity_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fVelocity.VAL 1 scan -MFX:LIB:MMS:02:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fAcceleration.VAL 1 scan -MFX:LIB:MMS:02:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fDeceleration.VAL 1 scan -MFX:LIB:MMS:02:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fHomePosition.VAL 1 scan -MFX:LIB:MMS:02:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bBusy_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bDone_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bHomed_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:bError_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:nErrorId_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LIB:MMS:02:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bHome_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:sName_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bEnable.VAL 1 scan -MFX:LIB:MMS:03:PLC:bReset_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bReset.VAL 1 scan -MFX:LIB:MMS:03:PLC:bExecute_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bExecute.VAL 1 scan -MFX:LIB:MMS:03:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bUserEnable.VAL 1 scan -MFX:LIB:MMS:03:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bMoveCmd.VAL 1 scan -MFX:LIB:MMS:03:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bHomeCmd.VAL 1 scan -MFX:LIB:MMS:03:PLC:nCommand_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nCommand.VAL 1 scan -MFX:LIB:MMS:03:PLC:nCmdData_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nCmdData.VAL 1 scan -MFX:LIB:MMS:03:PLC:fPosition_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fPosition.VAL 1 scan -MFX:LIB:MMS:03:PLC:fVelocity_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fVelocity.VAL 1 scan -MFX:LIB:MMS:03:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fAcceleration.VAL 1 scan -MFX:LIB:MMS:03:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fDeceleration.VAL 1 scan -MFX:LIB:MMS:03:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fHomePosition.VAL 1 scan -MFX:LIB:MMS:03:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bBusy_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bDone_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bHomed_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:bError_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:nErrorId_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LIB:MMS:03:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bHome_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:sName_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bEnable.VAL 1 scan -MFX:LIB:MMS:04:PLC:bReset_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bReset.VAL 1 scan -MFX:LIB:MMS:04:PLC:bExecute_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bExecute.VAL 1 scan -MFX:LIB:MMS:04:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bUserEnable.VAL 1 scan -MFX:LIB:MMS:04:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bMoveCmd.VAL 1 scan -MFX:LIB:MMS:04:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bHomeCmd.VAL 1 scan -MFX:LIB:MMS:04:PLC:nCommand_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nCommand.VAL 1 scan -MFX:LIB:MMS:04:PLC:nCmdData_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nCmdData.VAL 1 scan -MFX:LIB:MMS:04:PLC:fPosition_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fPosition.VAL 1 scan -MFX:LIB:MMS:04:PLC:fVelocity_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fVelocity.VAL 1 scan -MFX:LIB:MMS:04:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fAcceleration.VAL 1 scan -MFX:LIB:MMS:04:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fDeceleration.VAL 1 scan -MFX:LIB:MMS:04:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fHomePosition.VAL 1 scan -MFX:LIB:MMS:04:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bBusy_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bDone_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bHomed_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:bError_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:nErrorId_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LIB:MMS:04:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:sName_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bEnable.VAL 1 scan -MFX:LJH:JET:X:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bReset.VAL 1 scan -MFX:LJH:JET:X:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bExecute.VAL 1 scan -MFX:LJH:JET:X:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bUserEnable.VAL 1 scan -MFX:LJH:JET:X:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:JET:X:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:JET:X:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nCommand.VAL 1 scan -MFX:LJH:JET:X:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nCmdData.VAL 1 scan -MFX:LJH:JET:X:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fPosition.VAL 1 scan -MFX:LJH:JET:X:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fVelocity.VAL 1 scan -MFX:LJH:JET:X:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fAcceleration.VAL 1 scan -MFX:LJH:JET:X:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fDeceleration.VAL 1 scan -MFX:LJH:JET:X:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fHomePosition.VAL 1 scan -MFX:LJH:JET:X:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:bError_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:JET:X:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:sName_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bEnable.VAL 1 scan -MFX:LJH:JET:Y:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bReset.VAL 1 scan -MFX:LJH:JET:Y:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bExecute.VAL 1 scan -MFX:LJH:JET:Y:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bUserEnable.VAL 1 scan -MFX:LJH:JET:Y:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:JET:Y:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:JET:Y:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nCommand.VAL 1 scan -MFX:LJH:JET:Y:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nCmdData.VAL 1 scan -MFX:LJH:JET:Y:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fPosition.VAL 1 scan -MFX:LJH:JET:Y:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fVelocity.VAL 1 scan -MFX:LJH:JET:Y:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fAcceleration.VAL 1 scan -MFX:LJH:JET:Y:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fDeceleration.VAL 1 scan -MFX:LJH:JET:Y:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fHomePosition.VAL 1 scan -MFX:LJH:JET:Y:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:bError_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:JET:Y:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:sName_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bEnable.VAL 1 scan -MFX:LJH:JET:Z:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bReset.VAL 1 scan -MFX:LJH:JET:Z:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bExecute.VAL 1 scan -MFX:LJH:JET:Z:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bUserEnable.VAL 1 scan -MFX:LJH:JET:Z:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:JET:Z:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:JET:Z:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nCommand.VAL 1 scan -MFX:LJH:JET:Z:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nCmdData.VAL 1 scan -MFX:LJH:JET:Z:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fPosition.VAL 1 scan -MFX:LJH:JET:Z:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fVelocity.VAL 1 scan -MFX:LJH:JET:Z:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fAcceleration.VAL 1 scan -MFX:LJH:JET:Z:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fDeceleration.VAL 1 scan -MFX:LJH:JET:Z:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fHomePosition.VAL 1 scan -MFX:LJH:JET:Z:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:bError_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:JET:Z:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:sName_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bEnable.VAL 1 scan -MFX:LJH:DET:X:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bReset.VAL 1 scan -MFX:LJH:DET:X:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bExecute.VAL 1 scan -MFX:LJH:DET:X:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bUserEnable.VAL 1 scan -MFX:LJH:DET:X:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:DET:X:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:DET:X:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nCommand.VAL 1 scan -MFX:LJH:DET:X:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nCmdData.VAL 1 scan -MFX:LJH:DET:X:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fPosition.VAL 1 scan -MFX:LJH:DET:X:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fVelocity.VAL 1 scan -MFX:LJH:DET:X:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fAcceleration.VAL 1 scan -MFX:LJH:DET:X:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fDeceleration.VAL 1 scan -MFX:LJH:DET:X:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fHomePosition.VAL 1 scan -MFX:LJH:DET:X:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:bError_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:DET:X:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:sName_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bEnable.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bReset.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bExecute.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bUserEnable.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nCommand.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nCmdData.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fPosition.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fVelocity.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fAcceleration.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fDeceleration.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fHomePosition.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:bError_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:SS:TOP_X:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:sName_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bEnable.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bReset.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bExecute.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bUserEnable.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nCommand.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nCmdData.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fPosition.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fVelocity.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fAcceleration.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fDeceleration.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fHomePosition.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:bError_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:SS:TOP_Y:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:sName_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bEnable.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bReset.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bExecute.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bUserEnable.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nCommand.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nCmdData.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fPosition.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fVelocity.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fAcceleration.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fDeceleration.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fHomePosition.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:bError_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:SS:BOT_X:PLC:fPosDiff_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bLimitForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bLimitBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bHome_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bBrakeRelease_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bHardwareEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bAllForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bAllBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bAllEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bGantryForwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bGantryBackwardEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nEncoderCount_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:sName_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bPowerSelf_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nEnableMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nBrakeMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nHomingMode_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bGantryAxis_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bEnable.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bReset_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bReset.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bExecute_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bExecute.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bUserEnable_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bUserEnable.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bMoveCmd_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bMoveCmd.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bHomeCmd_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bHomeCmd.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nCommand_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nCommand.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nCmdData_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nCmdData.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fPosition_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fPosition.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fVelocity_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fVelocity.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fAcceleration_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fAcceleration.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fDeceleration_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fDeceleration.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fHomePosition_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fHomePosition.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nMotionAxisID_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bEnableDone_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bBusy_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bDone_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bHomed_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bSafetyReady_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:bError_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:nErrorId_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:sErrorMessage_RBV.VAL 1 scan -MFX:LJH:SS:BOT_Y:PLC:fPosDiff_RBV.VAL 1 scan -$(PREFIX)SuccessfulPreemptions_RBV.VAL 1 scan -$(PREFIX)AccumulatedFastFaults_RBV.VAL 1 scan \ No newline at end of file diff --git a/iocBoot/ioc-mfx-motion/st.cmd b/iocBoot/ioc-mfx-motion/st.cmd index 241149c..c297cd4 100755 --- a/iocBoot/ioc-mfx-motion/st.cmd +++ b/iocBoot/ioc-mfx-motion/st.cmd @@ -1,16 +1,15 @@ -#!/reg/g/pcds/epics/ioc/common/ads-ioc/R0.6.0/bin/rhel7-x86_64/adsIoc +#!c:/Repos/ads-ioc/R0.6.1///bin/rhel7-x86_64/adsIoc ################### AUTO-GENERATED DO NOT EDIT ################### # # Project: plc-mfx-motion.tsproj # PLC name: mfx_motion (mfx_motion Instance) -# Generated using: pytmc 2.14.1 -# Project version: ee2321e -# Project hash: ee2321eb66c863573aa164b2b8caff112fa3d463 +# Generated using: pytmc 2.15.2.dev0+g73bd2d9.d20230727 +# Project version: unknown +# Project hash: unknown # PLC IP/host: 172.21.72.167 # PLC Net ID: 172.21.72.167.1.1 -# ** DEVELOPMENT MODE IOC ** -# * Using IOC boot directory for autosave. -# * Archiver settings will not be configured. +# ** Production mode IOC ** +# Using /cds/data/iocData for autosave and archiver settings. # # Libraries: # @@ -29,11 +28,14 @@ epicsEnvSet("ADS_IOC_TOP", "$(TOP)" ) -epicsEnvSet("ENGINEER", "espov" ) -epicsEnvSet("LOCATION", "PLC:MFX_MOTION" ) +epicsEnvSet("ENGINEER", "" ) +epicsEnvSet("LOCATION", "PLC:MFX:MOTION" ) epicsEnvSet("IOCSH_PS1", "$(IOC)> " ) epicsEnvSet("ACF_FILE", "$(ADS_IOC_TOP)/iocBoot/templates/unrestricted.acf") +# Run common startup commands for linux soft IOC's +< /reg/d/iocCommon/All/pre_linux.cmd + # Register all support components dbLoadDatabase("$(ADS_IOC_TOP)/dbd/adsIoc.dbd") adsIoc_registerRecordDeviceDriver(pdbbase) @@ -42,14 +44,14 @@ epicsEnvSet("ASYN_PORT", "ASYN_PLC") epicsEnvSet("IPADDR", "172.21.72.167") epicsEnvSet("AMSID", "172.21.72.167.1.1") epicsEnvSet("AMS_PORT", "851") -epicsEnvSet("ADS_MAX_PARAMS", "1881") +epicsEnvSet("ADS_MAX_PARAMS", "3049") epicsEnvSet("ADS_SAMPLE_MS", "50") epicsEnvSet("ADS_MAX_DELAY_MS", "100") epicsEnvSet("ADS_TIMEOUT_MS", "1000") epicsEnvSet("ADS_TIME_SOURCE", "0") # Add a route to the PLC automatically: -system("${ADS_IOC_TOP}/scripts/add_route.sh 172.21.72.167 ^172.*") +system("${ADS_IOC_TOP}/scripts/add_route.sh 172.21.72.167 ^172.*$") # adsAsynPortDriverConfigure(portName, ipaddr, amsaddr, amsport, # asynParamTableSize, priority, noAutoConnect, defaultSampleTimeMS, @@ -80,8 +82,8 @@ cd "$(ADS_IOC_TOP)/db" epicsEnvSet("MOTOR_PORT", "PLC_ADS") -epicsEnvSet("PREFIX", "PLC:MFX_MOTION:") -epicsEnvSet("NUMAXES", "14") +epicsEnvSet("PREFIX", "PLC:MFX:MOTION:") +epicsEnvSet("NUMAXES", "36") epicsEnvSet("MOVE_POLL_RATE", "200") epicsEnvSet("IDLE_POLL_RATE", "1000") @@ -322,59 +324,396 @@ 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", "15") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C1:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M15 / Axis 15 MFX-SPEC-C1-X") +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", "MFX:SPEC:C1:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M16 / Axis 16 MFX-SPEC-C1-ROT") +epicsEnvSet("EGU", "Degree") +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", "17") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C1:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M17 / Axis 17 MFX-SPEC-C1-TILT") +epicsEnvSet("EGU", "Degree") +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", "18") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C2:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M18 / Axis 18 MFX-SPEC-C2-X") +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", "19") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C2:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M19 / Axis 19 MFX-SPEC-C2-ROT") +epicsEnvSet("EGU", "Degree") +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", "20") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C2:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M20 / Axis 20 MFX-SPEC-C2-TILT") +epicsEnvSet("EGU", "Degree") +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", "21") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C3:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M21 / Axis 21 MFX-SPEC-C3-X") +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", "22") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C3:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M22 / Axis 22 MFX-SPEC-C3-ROT") +epicsEnvSet("EGU", "Degree") +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", "23") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C3:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M23 / Axis 23 MFX-SPEC-C3-TILT") +epicsEnvSet("EGU", "Degree") +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", "24") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C4:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M24 / Axis 24 MFX-SPEC-C4-X") +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", "25") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C4:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M25 / Axis 25 MFX-SPEC-C4-ROT") +epicsEnvSet("EGU", "Degree") +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", "26") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C4:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M26 / Axis 26 MFX-SPEC-C4-TILT") +epicsEnvSet("EGU", "Degree") +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", "27") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C5:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M27 / Axis 27 MFX-SPEC-C5-X") +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", "28") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C5:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M28 / Axis 28 MFX-SPEC-C5-ROT") +epicsEnvSet("EGU", "Degree") +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", "29") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C5:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M29 / Axis 29 MFX-SPEC-C5-TILT") +epicsEnvSet("EGU", "Degree") +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", "30") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C6:") +epicsEnvSet("MOTOR_NAME", "X") +epicsEnvSet("DESC", "Main.M30 / Axis 30 MFX-SPEC-C6-X") +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", "31") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C6:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M31 / Axis 31 MFX-SPEC-C6-ROT") +epicsEnvSet("EGU", "Degree") +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:MFX_MOTION") -dbLoadRecords("save_restoreStatus.db", "P=PLC:MFX_MOTION:") +epicsEnvSet("AXIS_NO", "32") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:C6:") +epicsEnvSet("MOTOR_NAME", "TILT") +epicsEnvSet("DESC", "Main.M32 / Axis 32 MFX-SPEC-C6-TILT") +epicsEnvSet("EGU", "Degree") +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", "33") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:") +epicsEnvSet("MOTOR_NAME", "T1") +epicsEnvSet("DESC", "Main.M33 / Axis 33 MFX-SPEC-T1") +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", "34") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:") +epicsEnvSet("MOTOR_NAME", "T2") +epicsEnvSet("DESC", "Main.M34 / Axis 34 MFX-SPEC-T2") +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", "35") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:") +epicsEnvSet("MOTOR_NAME", "T3") +epicsEnvSet("DESC", "Main.M35 / Axis 35 MFX-SPEC-T3") +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", "36") +epicsEnvSet("MOTOR_PREFIX", "MFX:SPEC:") +epicsEnvSet("MOTOR_NAME", "ROT") +epicsEnvSet("DESC", "Main.M36 / Axis 36 MFX-SPEC-ROT") +epicsEnvSet("EGU", "Degree") +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:MFX:MOTION") +dbLoadRecords("save_restoreStatus.db", "P=PLC:MFX:MOTION:") dbLoadRecords("caPutLog.db", "IOC=$(IOC)") ## TwinCAT task, application, and project information databases ## -dbLoadRecords("TwinCAT_TaskInfo.db", "PORT=$(ASYN_PORT),PREFIX=PLC:MFX_MOTION,IDX=1") -dbLoadRecords("TwinCAT_AppInfo.db", "PORT=$(ASYN_PORT), PREFIX=PLC:MFX_MOTION") +dbLoadRecords("TwinCAT_TaskInfo.db", "PORT=$(ASYN_PORT),PREFIX=PLC:MFX:MOTION,IDX=1") +dbLoadRecords("TwinCAT_AppInfo.db", "PORT=$(ASYN_PORT), PREFIX=PLC:MFX:MOTION") -dbLoadRecords("TwinCAT_Project.db", "PREFIX=PLC:MFX_MOTION,PROJECT=plc-mfx-motion.tsproj,HASH=ee2321e,VERSION=ee2321e,PYTMC=2.14.1,PLC_HOST=172.21.72.167") +dbLoadRecords("TwinCAT_Project.db", "PREFIX=PLC:MFX:MOTION,PROJECT=plc-mfx-motion.tsproj,HASH=unknown,VERSION=unknown,PYTMC=2.15.2.dev0+g73bd2d9.d20230727,PLC_HOST=172.21.72.167") # LCLS General: * -> 2.8.0 (SLAC) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=LCLS_General,VERSION=2.8.0,VENDOR=SLAC") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=LCLS_General,VERSION=2.8.0,VENDOR=SLAC") # lcls-twincat-motion: * -> 1.8.0 (SLAC) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=lcls-twincat-motion,VERSION=1.8.0,VENDOR=SLAC") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=lcls-twincat-motion,VERSION=1.8.0,VENDOR=SLAC") # lcls2-cc-lib: * -> 1.1.3 (SLAC) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=lcls2-cc-lib,VERSION=1.1.3,VENDOR=SLAC") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=lcls2-cc-lib,VERSION=1.1.3,VENDOR=SLAC") # PMPS: * -> 2.2.3 (SLAC - LCLS) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=PMPS,VERSION=2.2.3,VENDOR=SLAC - LCLS") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=PMPS,VERSION=2.2.3,VENDOR=SLAC - LCLS") # Tc2_MC2: * -> 3.3.48.0 (Beckhoff Automation GmbH) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=Tc2_MC2,VERSION=3.3.48.0,VENDOR=Beckhoff Automation GmbH") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=Tc2_MC2,VERSION=3.3.48.0,VENDOR=Beckhoff Automation GmbH") # Tc2_SerialCom: * -> 3.3.10.0 (Beckhoff Automation GmbH) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=Tc2_SerialCom,VERSION=3.3.10.0,VENDOR=Beckhoff Automation GmbH") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=Tc2_SerialCom,VERSION=3.3.10.0,VENDOR=Beckhoff Automation GmbH") # Tc2_Standard: * -> 3.3.3.0 (Beckhoff Automation GmbH) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=Tc2_Standard,VERSION=3.3.3.0,VENDOR=Beckhoff Automation GmbH") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=Tc2_Standard,VERSION=3.3.3.0,VENDOR=Beckhoff Automation GmbH") # Tc2_System: * -> 3.4.26.0 (Beckhoff Automation GmbH) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=Tc2_System,VERSION=3.4.26.0,VENDOR=Beckhoff Automation GmbH") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=Tc2_System,VERSION=3.4.26.0,VENDOR=Beckhoff Automation GmbH") # Tc3_Module: * -> 3.3.21.0 (Beckhoff Automation GmbH) -dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX_MOTION,DEPENDENCY=Tc3_Module,VERSION=3.3.21.0,VENDOR=Beckhoff Automation GmbH") +dbLoadRecords("TwinCAT_Dependency.db", "PREFIX=PLC:MFX:MOTION,DEPENDENCY=Tc3_Module,VERSION=3.3.21.0,VENDOR=Beckhoff Automation GmbH") cd "$(IOC_TOP)" ## PLC Project Database files ## -dbLoadRecords("mfx_motion.db", "PORT=$(ASYN_PORT),PREFIX=PLC:MFX_MOTION:,IOCNAME=$(IOC),IOC=$(IOC)") +dbLoadRecords("mfx_motion.db", "PORT=$(ASYN_PORT),PREFIX=PLC:MFX:MOTION:,IOCNAME=$(IOC),IOC=$(IOC)") -# Total records: 881 -callbackSetQueueSize(3762) +# Total records: 2049 +callbackSetQueueSize(6098) # Autosave and archive settings: -save_restoreSet_status_prefix("PLC:MFX_MOTION:") +save_restoreSet_status_prefix("PLC:MFX:MOTION:") save_restoreSet_IncompleteSetsOk(1) save_restoreSet_DatedBackupFiles(1) set_pass0_restoreFile("info_positions.sav") set_pass1_restoreFile("info_settings.sav") -# ** Development IOC Settings ** -# Development IOC autosave and archive files go in the IOC top directory: -cd "$(IOC_TOP)" +# ** Production IOC Settings ** +set_savefile_path("$(IOC_DATA)/$(IOC)/autosave") +set_requestfile_path("$(IOC_DATA)/$(IOC)/autosave") -# (Development mode) Create info_positions.req and info_settings.req +# Production IOC autosave files go in iocData: +cd "$(IOC_DATA)/$(IOC)/autosave" + +# Create info_positions.req and info_settings.req makeAutosaveFiles() -# (Development mode) Create the archiver file + +cd "$(IOC_DATA)/$(IOC)/archive" + +# Create $(IOC).archive makeArchiveFromDbInfo("$(IOC).archive", "archive") +cd "$(IOC_TOP)" # Configure access security: this is required for caPutLog. asSetFilename("$(ACF_FILE)") @@ -400,3 +739,6 @@ caPutLogInit("$(EPICS_CAPUTLOG_HOST):$(EPICS_CAPUTLOG_PORT)", 0) create_monitor_set( "info_positions.req", 10, "" ) create_monitor_set( "info_settings.req", 60, "" ) +# All IOCs should dump some common info after initial startup. +< /reg/d/iocCommon/All/post_linux.cmd + diff --git a/plc-mfx-motion/mfx_motion/POUs/PRG_SPEC.TcPOU b/plc-mfx-motion/mfx_motion/POUs/PRG_SPEC.TcPOU index 53b6a50..f2166fd 100644 --- a/plc-mfx-motion/mfx_motion/POUs/PRG_SPEC.TcPOU +++ b/plc-mfx-motion/mfx_motion/POUs/PRG_SPEC.TcPOU @@ -1,5 +1,5 @@  - + @@ -188,7 +194,46 @@ IF NOT bInit THEN // Easier to debug if you can write to these // Main.M36.nEnableMode := ENUM_StageEnableMode.ALWAYS; bInit := True; -END_IF]]> +END_IF + +IF bHoldingCurrentEnable THEN + Main.M15.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M16.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M17.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M18.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M19.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M20.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M21.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M22.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M23.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M24.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M25.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M26.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M27.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M28.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M29.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M30.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M31.nEnableMode := ENUM_StageEnableMode.ALWAYS; + + Main.M32.nEnableMode := ENUM_StageEnableMode.ALWAYS; +END_IF +]]> \ No newline at end of file diff --git a/plc-mfx-motion/mfx_motion/mfx_motion.tmc b/plc-mfx-motion/mfx_motion/mfx_motion.tmc index c6123b5..4eb09cc 100644 --- a/plc-mfx-motion/mfx_motion/mfx_motion.tmc +++ b/plc-mfx-motion/mfx_motion/mfx_motion.tmc @@ -1,5 +1,5 @@ - + AMSNETID @@ -56511,27 +56511,30 @@ ELSE: 634824344 - Constants.bLittleEndian - Does the target support multiple cores? + PRG_SPEC.bHoldingCurrentEnable 8 BOOL - 1 + 0 - TcVarGlobal + pytmc + + pv: MFX:SPEC:HOLDCUREN + io: io + - 634826024 + 634826016 - Constants.bSimulationMode + Constants.bLittleEndian Does the target support multiple cores? 8 BOOL - 0 + 1 @@ -56541,12 +56544,12 @@ ELSE: 634826032 - Constants.bFPUSupport + Constants.bSimulationMode Does the target support multiple cores? 8 BOOL - 1 + 0 @@ -56800,12 +56803,12 @@ ELSE: 644675520 - Constants.RuntimeVersionNumeric + Constants.bFPUSupport Does the target support multiple cores? - 32 - DWORD + 8 + BOOL - 50662656 + 1 @@ -56814,6 +56817,20 @@ ELSE: 650463392 + + Constants.bMulticoreSupport + 8 + BOOL + + 0 + + + + TcVarGlobal + + + 650463400 + Main.M1 ATM: 2 Axes @@ -57869,12 +57886,12 @@ ELSE: 652192896 - Constants.CompilerVersionNumeric + Constants.RuntimeVersionNumeric Does the target support multiple cores? 32 DWORD - 50662696 + 50662656 @@ -57884,11 +57901,12 @@ ELSE: 652192960 - Constants.bMulticoreSupport - 8 - BOOL + Constants.CompilerVersionNumeric + Does the target support multiple cores? + 32 + DWORD - 0 + 50662696 @@ -58510,7 +58528,7 @@ ELSE: ChangeDate - 2024-11-06T15:32:27 + 2024-12-05T14:21:02 GeneratedCodeSize