Skip to content

Populate all of the PMAC_CONTROLER:AXIS:N PVs #139

@gilesknap

Description

@gilesknap

At present each instantiation of dls_pmac_asyn_motor.template or `` also adds an alias that has a deterministic, numbered PV.

see:

# add numbered name aliases for above 3 templates
substitute "P=$(PMAC):, M=M$(ADDR)"
include "motor_in_cs.template"
include "eloss_kill_autohome_records.template"
include "pmacDirectMotor.template"

# numbered name aliases for all PVs in basic_asyn_motor.template
alias($(P)$(M), $(PMAC):M$(ADDR))
alias($(P)$(M):ADDR, $(PMAC):M$(ADDR):ADDR)
alias($(P)$(M):PORT, $(PMAC):M$(ADDR):PORT)
alias($(P)$(M):SCALE, $(PMAC):M$(ADDR):SCALE)
alias($(P)$(M):USER:SDIS, $(PMAC)M$(ADDR):USER:SDIS)
alias($(P)$(M):SDIS, $(PMAC):M$(ADDR):SDIS)
alias($(P)$(M):KILL, $(PMAC):M$(ADDR):KILL)
alias($(P)$(M):ELOSS, $(PMAC):M$(ADDR):ELOSS)
alias($(P)$(M):ELOSSRC, $(PMAC):M$(ADDR):ELOSSRC)
alias($(P)$(M):MR_MOVE_WRITE, $(PMAC):M$(ADDR):MR_MOVE_WRITE)
alias($(P)$(M):CHECK_SYNC, $(PMAC):M$(ADDR):CHECK_SYNC)
alias($(P)$(M):FERROR, $(PMAC):M$(ADDR):FERROR)
alias($(P)$(M):FERRORMAX, $(PMAC):M$(ADDR):FERRORMAX)
alias($(P)$(M):FEMAXRESET, $(PMAC):M$(ADDR):FEMAXRESET)
alias($(P)$(M):HOMEVIS, $(PMAC):M$(ADDR):HOMEVIS)
alias($(P)$(M):HOMEVISSTR, $(PMAC):M$(ADDR):HOMEVISSTR)

The problem with this is that the screen pmacAxes.edl will often have gaps in the PVs it tries to render. This causes edm to search for non-existent PVS. This is also a problem for Ophyd objects trying to drive pmacs.

The proposed fix is to instantiate some minimal records for all 16 axes with no DTYP (defaulting to softrecord). Then the aliases would override those records for which we do need a connection to an axes and the remaining ones would be left as minimal placeholders that fix the issue described above.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions