Motor won't restart conveyor if connected to two+ non accumulating conveyors

Motor won't restart conveyor if connected to two+ non accumulating conveyors

craig_dickson
Not applicable
10 Views
6 Replies
Message 1 of 7

Motor won't restart conveyor if connected to two+ non accumulating conveyors

craig_dickson
Not applicable

[ FlexSim 19.1.1 ]

It appears that if a motor is connected to more than one conveyor, it will not restart all of them on resume() if more than one of the conveyors is non-accumulating. The attached model illustrates the problem.

motor-restart-problem-with-belts.fsm

I used process flow to stop and start 12 different motors. Each motor is attached to two conveyors. They are all fed from a source and a separator so they get the exact same workload.

Motors 1 and 2 illustrate the basic problem. The only difference is the sequence of the conveyors in the motor's "Motor" tab (i.e. the order that the A-connects were made).

Motors 3 and 4 are the same as 1 and 2 respectively except that the first conveyor was changed to accumulating. These both work. Similarly 5 and 6 have the second conveyor changed to accumulating, These work also.

7 and 8 add a small section of accumulating conveyor at the infeed to the two belts; these do not work. Similarly, 9 and 10 have a section of accumulation between the 2 belts; these did not work either.

Motor 11 controls 2 belts that are not connected to each other at all; they are side-by-side with independent flows. It doesn't work.Motor 12 controls 1 accumulating and one non-accumulating side-by-side and it does work.

My real world equipment is literally 2 belts controlled by 1 motor (actually, 1 belt driven by the motor and the second one driven by chain by the first (at a different speed to pull a gap). Ordinarily I could work around this with process flow, but we plan to use this as emulation, to debug a PLC before installation.

0 Likes
Accepted solutions (1)
11 Views
6 Replies
Replies (6)
Message 2 of 7

JordanLJohnson
Autodesk
Autodesk
Accepted solution

Thanks for reporting this bug, and for providing an excellent test case. I'll get this on the dev list.

In the mean time, for your project, you can use an FR process flow that listens to stop/start the way the motor is supposed to:

21948-custom-motor.png

The above flow even makes sure that the number of stop/resume calls match. Then you just have to center-connect the instance object to all the conveyors you need.

motor-restart-problem-with-belts-custom-motor.fsm

.


Jordan Johnson
Principal Software Engineer
>

0 Likes
Message 3 of 7

tanner_p
Not applicable

Hi @Craig DIckson,

I can't speak to all the reasons why this doesn't work, but I do know that there are specific Conveyor controls that are built-in to the Custom Code Process Flow activities. They were created because the stop object functions don't work with conveyors like they do processors and other fixed objects. Have you tried using them before?

21949-conveyor-control-pf.png

I updated your model to use the stop/start activities in Process Flow. They are only controlling conveyors 7 and 8 (right in the middle). Watch and see if they do what you're looking for.

conveyor-control-pf.fsm

0 Likes
Message 4 of 7

craig_dickson
Not applicable

Tanner, I'll look at your models.

FWIW I initially found the problem in an emulation model where the motors are restarted by a Resume object Action in a PLC Emulation output variable, not in a Custom Code PF activity.

0 Likes
Message 5 of 7

craig_dickson
Not applicable

@Tanner Poulton I did try your model, and those conveyors seem to stop at about 55 seconds?

0 Likes
Message 6 of 7

craig_dickson
Not applicable

@jordan.johnson Well, TIL about using basic FR and process flow. Thanks!

I assume I can use the new FR motor just like a regular motor in an emulation model output variable?

Craig

0 Likes
Message 7 of 7

JordanLJohnson
Autodesk
Autodesk

I don't know much about emulation, but it looks like it should just work as a replacement for the motor. The code for the action when the value changes just needs to call stopobject() or object.stop().

.


Jordan Johnson
Principal Software Engineer
>

0 Likes