1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Phytron Phymotion reset on IOC boot |
From: | Nilson Pereira <[email protected]> |
To: | Torsten Bögershausen <[email protected]>, "[email protected]" <[email protected]> |
Date: | Fri, 2 Feb 2018 10:00:00 +0100 |
Hello Torsten, Sorry for the delay. Thank you very much for the advice. Your solution worked. The controller does not reboot as expected by not sending the "reset" command and it connects without problems. The only issue that I noticed is that the .RBV values does not update after reboot. Everything comes back to normal if I try to move a motor or just process the motor record by sending the 1 to .PROC. Any idea why? I will take a look into that, but it is safe to say that my original problem is solved. Thanks for the quick fix. Answering your question about why booting the IOC: we are still under development phase and I am trying the best combination of initial and autosave settings for those records to guarantee a successful come back in case of future issues/reboots. Any shared expertise will be highly appreciated :) Best, Nilson On 01.02.2018 07:51, Torsten Bögershausen wrote:
Hej Nilson, I don't have a Phytron controller, so I can't test. But trying to be helpful: You can actually try t remove the reset command in the driver. motorApp/PhytronSrc/phytronAxisMotor.cpp Remove these lines: //RESET THE CONTROLLER sprintf(this->outString_, "CR"); phyStatus = sendPhytronCommand(this->outString_, this->inString_, MAX_CONTROLLER_STRING_SIZE, &response_len); if(phyStatus){ asynPrint(this->pasynUserSelf, ASYN_TRACE_WARNING, "phytronController::phytronController: Could not reset controller %s\n", this->controllerName_); } //Wait for reset to finish epicsThreadSleep(10.0); And see what is happening ;-) Out of curiosity: Why do you need to reboot the IOC ? On 31/01/18 11:48, Nilson Pereira wrote:Dear all, I have a Phytron stepper controller (I1AM01) with 16 axis with incremental encoders, and I using EPICS Motor module to control all axis since it supports this controller. I noticed that the IOC for that specific model resets the controller on connection (IOC boot). The reset erases the count on all encoders forcing me to "home" all 16 axis again every time I have to reboot the IOC. Is there a way to avoid this controller reset at IOC boot time to avoid loosing the encoder counts? Anyone using this controller that could help me with the settings? Versions: - EPICS Base R3.15.5 - asyn R4.31 - autosave R5.7.1 - motor-R6-9 Best regards, Nilson ________________________________ Helmholtz-Zentrum Berlin für Materialien und Energie GmbH Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V. Aufsichtsrat: Vorsitzender Dr. Karl Eugen Huthmacher, stv. Vorsitzende Dr. Jutta Koch-Unterseher Geschäftsführung: Prof. Dr. Bernd Rech (kommissarisch), Thomas Frederking Sitz Berlin, AG Charlottenburg, 89 HRB 5583 Postadresse: Hahn-Meitner-Platz 1 D-14109 Berlin http://www.helmholtz-berlin.de
________________________________ Helmholtz-Zentrum Berlin für Materialien und Energie GmbH Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V. Aufsichtsrat: Vorsitzender Dr. Karl Eugen Huthmacher, stv. Vorsitzende Dr. Jutta Koch-Unterseher Geschäftsführung: Prof. Dr. Bernd Rech (kommissarisch), Thomas Frederking Sitz Berlin, AG Charlottenburg, 89 HRB 5583 Postadresse: Hahn-Meitner-Platz 1 D-14109 Berlin http://www.helmholtz-berlin.de