pcdshub / lcls-twincat-motion

TwinCAT 3 Motion Control Utilities - PLC Motion Library for all PCDS Applications
https://pcdshub.github.io/lcls-twincat-motion
Other
35 stars 19 forks source link

Standardized gantry blocks #8

Closed teddyrendahl closed 4 years ago

teddyrendahl commented 5 years ago

Function blocks to support gantried motion. Important features include:

klauer commented 5 years ago

I believe we still need to address EPICS being able to control the gantry slave axis.

Maybe it could be in the form of a general "monitoring" (i.e., not controllable) axis configuration flag? cc @slacAWallace

slacAWallace commented 5 years ago

Something that rejects setpoint requests when the axis is coupled to a master? @jsheppard95

klauer commented 5 years ago

Yes, allowing the slave status to be shown in EPICS through the standard motor record interface but not allowing motion on the PLC-side.

ZLLentz commented 5 years ago

We should also make it so you can opt to disable an axis's EPICS controls for any reason, not just for gantries.

teddyrendahl commented 5 years ago

@ZLLentz I think that is a good idea

On @slacAWallace point, I also think this could have a pure EPICS solution if we wanted (not fervent about this, but just pitching this instead of more PLC code). If we have a PV that indicates whether an axis is a slave or not we link that directly to the DISP field of the motor. The reason I think this might be a valid solution is because it seems like through the TwinCAT interface itself we can't move the slave axis but somehow through the external ADS we have a little too much reach.

slacAWallace commented 5 years ago

Ah that's interesting and deserves being restated.

Through NC axis control we cannot directly control a secondary axis, but through MC_blocks we can?

ZLLentz commented 5 years ago

Yes, that's how I understand it Alex.

I like Teddy's solution of just using DISP.

klauer commented 5 years ago

I think we could give using the DISA/DISV fields a go, as suggested by @teddyrendahl. It may work well enough for what we want to do.

ZLLentz commented 5 years ago

My favorite as mentioned in conversations earlier would be a way to manipulate any record's DISP fields from the PLC itself as a simple boolean.

klauer commented 4 years ago

I believe we're reasonably happy with our gantry implementation. Further requirements/changes should be in different issues. Closing.

ZLLentz commented 4 years ago

More to the point: the gantry code has been proven to work and I'm scared to change it