Hi,
hum, The "not always" aspect of this report says (as you suggest) that there is a timing issue here.
I'm not sure what your level of technical background is so excuse me while I dive down into control flow through mach for a moment...
What MSM does at the upper screen set level is make some script level calls to mach to reference the axes (the same calls the 1024 screen set makes to mach). Mach then gets each call and (AFAIK) invokes the motion device plug-in software to do the actual reference operation. There are two real time operations that are delegated to the motion device plug-in: Homing/referencing and probing.
Both of these require a fast enough response to physical motion that they are handled in the motion control lower layers. For a PP base system this is done in the mach PP driver, and for other devices I believe it's done by the device plug-in.
My own systems are PP based (as that is still the "gold standard" for mach operation) and they have never shown this type of intermittent issue. I'm pretty sure that this works reliably on the PP and I've not had any reports of a similar issue from Smooth Stepper users (usb or Ethernet), therefore, I'm wondering if this may be an artifact of the Centipede controller plug-in?
IF you are comfortable with mach scripts, there are some experiments you can try to see if it changes the behavior you are seeing -
The MSM ref all script can be found in
C:\Mach3\ScreenSetMacros\MachStdMillLathe.lset\Masters\Scripts
The file is All-RefAllHome.m1s
The code itself is pretty simple and you can play with it to see what makes a difference for your system. This is a script that is left uncompiled so that MSM users can tweak the home/ref actions - in fact this script is the example used in the MSM (main mill) manual for showing how to customize MSM scripts.
The scripts currently does:
DoOEMButton( HomeRefXOEMBtn )
DoOEMButton(ZeroXEncoderOEMBtn)
DoOEMButton( HomeRefZOEMBtn )
DoOEMButton(ZeroZEncoderOEMBtn)
You could try:
DoOEMButton( HomeRefXOEMBtn )
while IsMoving()
sleep 10
wend
DoOEMButton(ZeroXEncoderOEMBtn)
DoOEMButton( HomeRefZOEMBtn )
while IsMoving()
sleep 10
wend
DoOEMButton(ZeroZEncoderOEMBtn)
(ARGH! pardon the lack of indentation in the code samples, the Code quote is supposed to preserver them, but does not seem to have done so
)
Mach is not supposed to need the IsMoving waits for reference moves - but I could see a situation arising where maybe a plug-in is returning to mach before motion is complete, and therefore mach is re-entering the plug-in before the plug-in is ready or some such thing.
Instead of the
while IsMoving()
sleep 10
wend
loops you could also try a simple sleep delay - maybe
sleep 250
To see if that alters the behavior.
If either of these make a difference, then I'd be thinking that there is a timing relationship issue between mach and the centipede plug-in layer.
Dave