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 <2025> | 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 <2025> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Help with BiSS encoders and Galil controller |
From: | Jesse Hopkins via Tech-talk <tech-talk at aps.anl.gov> |
To: | EPICS Tech-Talk <tech-talk at aps.anl.gov> |
Date: | Tue, 13 May 2025 21:55:45 +0000 |
Hi folks, I have several motors with BiSS encoders (RL26BVE050D15V from Renishaw) that I would like to use with a Galil 4183 motor controller. The Galil controller is configured for absolute
encoders with the -SER option for axes 1-8. I’m using EPICS base 7.0.8, motor 7.3.1, and GALIL 4.0.02. I’ve attempted to configure the motor and encoder appropriately. I’ve attached a screenshot of the various configuration screens. When I move the motor with the ‘Use Encoder’
option set to No, everything seems to work fine. The motor moves and the encoder counts change by roughly the expected amount. For example, I move the motor a nominal 0.4 mm, which is a full turn, and the encoder increments by 8008 counts, with the 50 nm per
count resolution that is a total motion or 0.4004 mm. The nominal resolution is 0.5 um per step with the present microstepping settings, so this is an expected/acceptable level of accuracy. However, if I turn on the Use Encoder setting, the motor moves in the wrong direction. So, for example, if I try to move the motor positive the motor moves negative as indicated
by the encoder readback. If I try to move the motor negative the motor moves positive as indicated by the readback. This persists whether I set the calibration direction as Positive or Negative. In practical terms, this results in the motor getting stalled
out with a controller message “Encoder stall stop motor C” unless the duration of the move is less than the encoder stall time. As a side note, I encountered similar behavior when setting up quadrature encoders for different motors, but was able to fix the issue by changing from normal quadrature to reverse
quadrature, which flipped the direction of the encoder count relative to the motor. However, there doesn’t seem to be any such option for the BISS inputs. So I’m currently wondering if this is related to these motors being configured as Rev HA Stepper, and
the encoder counts coming in in the opposite direction of the expected motor motion and the GALIL driver not accounting for that. Another possible concern, if I turn on the BiSS status poll the timeout, crc, warn, and error in the BiSS status all stay red/high, so maybe there’s an issue there? However,
since I’m getting the right number of encoder counts with a given motion it feels like maybe this is an error on the driver side? Also, if I send the command MG _SSC0 to the controller I get a return value of 0.000, which would indicate no errors, so it seems
likely the BiSS status display isn’t correct. I did double check and SSC=? and SY? return the expected values (1,27,0,0,9 and 0 respectively), so it seems like the control settings and level are set correctly on the controller
side. Any advice/help would be greatly appreciated. All the best. ---- Sector 18, Advanced Photon Source Research Associate Professor, Illinois Tech |
Attachment:
Screenshot 2025-05-13 at 4.34.38 PM.png
Description: =?utf-8?B?U2NyZWVuc2hvdCAyMDI1LTA1LTEzIGF0IDQuMzQuMzjigK9QTS5wbmc=?=