LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Electric chain hoist position control

Hello, everybody,

I have the following problem: I have a test stand on which a weight is lifted to a certain height by an electric chain hoist. The height of the weight is measured by a laser from the ground and read into a Labview program via serial interface. The control of the chain hoist is done digitally by a Siemens LOGO, i.e. I can either drive the chain hoist up or down without controlling the speed. The chain hoist moves very slowly.
Is there a possibility to control the chain hoist in a reasonable way to reach a desired target value as exactly as possible?


Thanks for your help.

0 Kudos
Message 1 of 3
(1,953 Views)

Crosspost

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 3
(1,936 Views)

I think you can certainly "close the loop" on the control, but how accurate you can be will have to be determined.

 

You have a few things working against you.

1.  Reading a serial port is inherently not "real time".  By the time you get the response back on position, some milliseconds to seconds have passed (assuming there are no communication errors), so the weight has already moved beyond the position you just measured it at.

2.  I'm not familiar with Siemens LOGO, but assuming it some sort of PLC type of device, the command to stop and start the motor would also not be instantaneous due to communication delays.

3.  You can't control speed, so there is no way to slow the weight down as you approach your target position.  Worse it might even jerk when you start and stop it.

 

That said, you can certainly read position and make decisions as to whether to start and stop the hoist.  You may need to add some prediction to your control loop so that when you see a position has is X or less away from target position to stop then.  How big X should be will need to determined through experimentation.  Whether you arrive at the target position as close as you want will be a function of how repeatable the speed of the hoist is and how consistent the inherent communication delays are.

 

I create a similar application where there was a sort of loose feedback control I needed to achieve.  The controlling device for the AC servo motor start and stop I talked to through serial.  But the device had the ability to tell it precisely how long in milliseconds to close the relay to drive the motor.  Once I experimented with collecting speed data, I could calculate my distance from target then tell the device to close the relay for x milliseconds.  Even if I lost all communication at that point, I knew the motor would not continue running longer than that time.  It would stop, I'd check position, then calculate a new move and time, and repeat.  Sometimes there would be overshoot, sometimes undershoot, but the code could hit the position I was looking for in generally 2-3 attempts.  I essentially computerized the process I would do if I was there manually pushing buttons.

 

If I did not a controlling device that would let me limit the time of move based on my command, I would have not attempted this.  Severe overruns would have been catastrophic to the parts I was moving.

 

Keep in mind that safety is critical here, and trusting a computer to 100% repeatable move something safely is difficult. What are the risks if a hoist keeps moving when you have told it to stop and it doesn't get the message?  If it can hurt someone, then don't do it.

0 Kudos
Message 3 of 3
(1,914 Views)