07-13-2007 02:05 PM
07-16-2007
07:13 AM
- last edited on
10-24-2025
12:15 PM
by
Content Cleaner
Kyle,
In general software limits work fine. Have you tried if they work properly when you run a simple example?
I had a look at your code. You run all configuration steps in each loop iteration and there is no dataflow that makes sure that these function calls don't run inbetween your other vis. There is a good chance that this causes the trouble. You also should run the configuration vis only when you want to change some settings and not at each iteration.
This is from the flex_load_sw_lim_pos() help:
Even when disabled, you can poll the software limits by the host computer or use an onboard program to warn of an out of range position. Refer to the Read Axis Limit Status function for information about reading the software limit status.
The forward software limit is considered active if the current position is greater than or equal to the forward software limit position. The reverse software limit is considered active if the current position is less than or equal to the reverse software limit position.
Software limits are often used to restrict the range of travel and avoid hitting the hardware end-of-travel limit switches. For example, you can travel at a high velocity until hitting the software limit switch, and then move more slowly until hitting the hardware limit switch.
Caution After an axis has stopped due to encountering a software limit switch, you can still move further in the same direction if you command the axis to do so. This behavior is not possible with hardware limits, but is appropriate for software limits.
So if you send a start command after the sw limit was hit, the axis still can travel into the same direction.
With your current application architecture it's hard to tell what's going on, as LabVIEW is designed to run all parts of the code in parllel if no dataflow or other sequencing methods are used. Please consider refacturing your application by following a more structured design pattern (e. g. an event driven state machine might be appropriate for your application).
For the case that the limit switches really don't work, could you please provide some more information? Which type of motion board are you using? What types of axes do you control (servo, stepper (open or closed loop)?)
Best regards,
Jochen Klier
National Instruments
Message Edited by Jochen on 07-16-2007 02:16 PM
07-17-2007 11:55 AM
07-18-2007 01:46 AM
07-18-2007 10:39 AM
07-19-2007 01:56 AM