ATTENTIONThis FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices. |
flexsim.com |
#1
|
|||
|
|||
Basic Conveyor
Hello all,
do someone have experience with the Basic Conveyor, or is there any official standing how to handle it or a buglist or something else? I try to build up a model, nearby equal with the hot rolling mill, cut pieces etc. but after a while of modelling, the changed code isnt accepted by the basicconveyor.. i.e. i change the code of the decision point, take part of it out in the message trigger to see what happen at a specific point of the code. Sending a message from the point with a delay and stop in the messagetrigger, but the stop will be totally ignored by the object.. I hope someone can share experiences or give me some hints.. regards and thanks Tobias |
#2
|
||||
|
||||
The BasicConveyor was developed in a fury for use on the Hot Rolling Mill project. Once the project ended, the development of the object stopped. We thought it was a nice concept with the potential to become the "ultimate" conveyor in simulation, but other projects came along and well...
The Roller Coaster model in the Downloads section under Flexsim Display models was also created using the Basic Conveyor. The BasicConveyor is the perfect object for a roller coaster. It could have even done banked turns if we had spent the extra time putting in the additional kinematics required (this is a current functionality of the BasicConveyor). The Roller Coaster model was not built for a real project. It was simply a model we made to try and get Disney to purchase Flexsim, they were all excited initially, but then petered out and so far haven't bought anything... Brenton spent a fair amount of time on that model too! (most of the time was spent making it look cool...) I'm hoping there will be someone out there who would like to see the BasicConveyor become an official Flexsim object, and be willing to provide both the direction and the funding to see it happen. At this point there doesn't seem to be the interest for it that I had originally expected when I first decided to go ahead and put it into the library tree for distribution as a pre-beta version. The biggest problem with the object is that it is grossly inefficient. To see what I mean, just open up your MAIN:\exec\event node and see the number of events generated by the object to keep track of everything going on with a few dozen flowitems traveling and accumulating along the conveyor. There seems to be conflicts that can occur when decision points are close together. Also, you have to be careful when dynamically positioning decision points. One more thing, I don't know for sure how the BasicConveyor handles a stopobject() command. It seems like we always stopped all the items on the conveyor as opposed to stopping the conveyor itself, but I might be mistaken because it's been awhile. Maybe we can start using this thread you started to document the problems encountered with the BasicConveyor in its current state. I'm sure one day we will get around to finishing up the object. It's just a matter of time, money and priority. Good luck! |
The Following User Says Thank You to Cliff King For This Useful Post: | ||
Scott Mackay (10-08-2009) |
#3
|
|||
|
|||
Hi,
my first problem is solved, i have build up bad code that causes the failure. I try to build up a model like: A board is entering the conveyor travelling to a cutting line and will be cutted in two boards. (copyitem, moveobject etc.) During this process a second board is entering the conveyor and stop at a decision point. The first piece of the board (now are two out of one), travelling forward to leave the conveyor, the second piece travelling backwards / sidewards with kinematics and leave the conveyor on the side. Add Info: I use 5 decisionpoints (positions: 0.01;2.1;4.6;6.7;11.4), they are fixed at this positions. What happen: If i run the model the first time, it works correct. At the second run, the first item enter and going on to process, but the second item stops at beginning of the conveyor. (reproducible) If i press more often reset or compile the model, then it works. What also sometimes happen is the item reach the decision point (cutting line) and about 1000 events would be created. (not reproducible) regards Tobias |
#4
|
||||
|
||||
Hi Tobias,
yesterday I use the createcopy command to duplicate a flow item inside a queue. Something like this code on the onEntry-trigger: creatcopy(item,current); So the item was created, and the maxcontent showed also two , but the copied item did not move out of the queue. I found a work around by creating the copy inside of another object, or the model and then moving it inside the queue. If you create the copy on the on entrytrigger and move the object on the same entrytrigger inside the queue , Flexsim will shut down imediatly. So I created the copy on the on entrytrigger and moved them on the messagetrigger, which is now working fine. So I am not shure if this helps you, but maybe someone can tell me why I cant create a copy and move the object on the onEntry-trigger at once?
__________________
kind regards Nico. |
#5
|
|||
|
|||
Hi Nico,
in your problem i think the execute of the triggers is the problem, i also have had the same problem at another point. The solution i use today (thanks Tom ) is to copy the item in the model and move it back in the object. ie. Code:
// CREATE A COPY OF THE ITEM INTO THE MODEL createcopy(item,model()); // POINTER TO COPY OF ITEM treenode CopyOfItem = last(model()); // GIVE COPY OF ITEM A NAME setname(CopyOfItem,concat(getname(item),"copy")); // TRANSFER COPY OF ITEM INTO CONVEYOR moveobject(CopyOfItem,current); Back to topic: Here are some events out of the case if about 1000 events are generated. Event Profile: Event: Time = 8.555123 Object = BasicCuttingCenter/BasicConveyor2 Code = 5042 Event Description = dpcoverfront Involved = Platte1 Event: Time = 8.565123 Object = BasicCuttingCenter/BasicConveyor2 Code = 9 Event Description = dpcoverfront Involved = Platte1 Event: Time = 8.565123 Object = BasicCuttingCenter/BasicConveyor2 Code = 18 Event Description = dpcoverfront Involved = Platte1 Event: Time = 8.565123 Object = BasicCuttingCenter/BasicConveyor2 Code = 13 Event Description = dpcoverfront Involved = Platte1copy I think i must change back to the original machine, its not so comfortable, cause i must use many different objects to get the functionallity like in the BasicConveyor. regards tobias Last edited by tobias.biemueller; 05-06-2008 at 01:46 AM. Reason: add events |
#6
|
||||
|
||||
Nico Zahn,
The reason Flexsim is shutting down is because you are making an infinite loop. You are creating a flowitem OnEntry and moving it into the object. By calling moveobject(), the newly created flowitem is entering the object and calling OnEntry, which creates another flowitem and moves it into the object, which calls on entry, which creates another flowitems and move it into the object, which calls on entry, which creates another flowitem and moves it into the object... Once your code starts repeating itself infinitely like that, Flexsim shuts down so that your computer doesn't blow up. =] |
The Following User Says Thank You to Phil BoBo For This Useful Post: | ||
Scott Mackay (10-08-2009) |
#7
|
||||
|
||||
Hi Phil,
I am aware of this, so I put a label and only create a copy when the first item enters, not the copy. If I put create a copy inside the object, without using a moveobject the copied item will stay inside of the object, because the object did not recognize that the item entered. Is there any easy way to tell the queue that another item entered and has to be move out? (see attached modell)
__________________
kind regards Nico. |
#9
|
||||
|
||||
Users interested in Basic Conveyor
On the one hand I think it is a nice conversation about how to create a copy on the other hand I think we are going away from the topic of the interesting thread Tobias started.
To be honest in my eyes this happens quite often and at the end the started topic is not discussed to an end. And maybe some interesting conversation is difficult to find, because it is under another topic. Don’t get me wrong, I do not want to say it is anybodies fault, I just like to mention it and that we should keep an eye on it. Even if I am a super moderator I do not know how to start an additional thread and move the conversation there, but maybe someone else is able to do it. I like to come back to the topic “Basic Conveyor”. I know that Tobias has some interesting models to build where the Basic Conveyor might be a got direction to go to. But because this object has some issue I am just wonder, how many people really use the Basic Conveyor. Or do you guys build these models with kinematics from the scratch? Or does nobody else build such models? I like to start a list of people who think that a “proper” Basic Conveyor might be an useful object in Flexsim and should be developed. The list of people which like to have a BasicConveyor and are willing to give input, beta test it and have models where the Basic Conveyor is a good way to go. The idea is to take the list, copy it and add your name, if you are really interested in this object. I add Tobias and me, because I know, that we are interested in it . Thanks for your help. tom the (A)tom Users interested in Basic Conveyor: - Tobias Biemueller - Tom David -
__________________
tom the (A)tom: "We have solved our problems ... now we have to fight the solutions." |
The Following 3 Users Say Thank You to Tom David For This Useful Post: | ||
tobias.biemueller (05-08-2008) |
#11
|
||||
|
||||
Talumis is definitely interested in the basic conveyor, but we also build things like that from scratch. So the problems and speed issues should be resolved before we start using the basic conveyor otherwise we will use the ones we constructed ourselves because there we have complete control over.
Users interested in Basic Conveyor: - Tobias Biemueller - Tom David - Lars-Olof Levén - TALUMIS - |
#12
|
||||
|
||||
It would be great to have a conveyor you can control competly. For taking items out of the conveying process, acc/decc processes depending on the weight of items etc...
Users interested in Basic Conveyor: - Tobias Biemueller - Tom David - Lars-Olof Levén - TALUMIS - Nico Zahn
__________________
kind regards Nico. |
#13
|
||||
|
||||
Due to popular demand, I've revisited the basic conveyor in hopes of making it ready for an "official" release with 4.5. I have revamped it so that the basic conveyor is more proactive in maintaining its event list (although there are still improvements that can be made I believe), and it fixes that issue where the model stops in an infinite event loop sometimes. For those who have added their name to the list of interested people, please test this on your own models (you will need to recreate the object, or at least synchronize the bc's variables tree in your model with the new bc's variables and then compile because there have been some variables added/removed). If you come across any problems, please send them to me.
The associated files are attached here: basic conveyor.zip To get this basic conveyor into your project, you must load the user library .fsl file into Flexsim, then compile the entire session. Once you've done that, you can build your model, or open the attached model. I've included this model as a simple example that I have used to test with (I know, it looks weird because after a while the conveyor goes over capacity because I don't block items coming in; don't worry, that's just how I made the model). If you have your own models, once you've synchronized the variables, the bc... commands are exactly the same as they were before. Also, the library makes some minor changes to the textured box that helps me debug it. Please use the textured box in your tests, so if you come across an issue and send me the model, I can see the information that much more quickly. I anticipate that there will be several iterations of this to get all the bugs out, but here's the starting point. Note that while this should have a significant speed improvement over the last one, the very nature and flexibility of the basic conveyor is such that it's not going to compare with the speed of the regular conveyor. Thanks, Last edited by Anthony Johnson; 05-20-2008 at 02:26 PM. |
The Following 11 Users Say Thank You to Anthony Johnson For This Useful Post: | ||
Tom David (05-20-2008) |
#15
|
||||
|
||||
Sorry,
Didn't put all the files together in the attachment. Download it again and it should be the right one. |
The Following User Says Thank You to Anthony Johnson For This Useful Post: | ||
Lars-Olof Leven (05-20-2008) |
#16
|
|||
|
|||
Hi Anthony,
Do I need to do the installation every time I start Flexsim? If not, I must do something wring. Because every time I start Flexsim and want to use the BasicConveyor I need to load the library and then do the compile. What I do are: 1. Start Flexsim 2. Load basicconveyor.fsl 3. Choose Compile Entire Session under Build. Now your test model works. If I now close Flexsim and restart Flexsim, your test model will not work as expected until I load the library and do the compile again. Should it be this way? I have Visual Studio 2008 Std on Win XP Pro. Lars-Olof |
#17
|
||||
|
||||
Lars-Olof,
Yes, you need to load the library every time you want to use the new basic conveyor, and you need to compile the entire session. By the fact that it's a user library, it doesn't save the basic conveyor with your default project, so you have to reload it every time. You can add the .fsl to your global preferences so it will load every time you open Flexsim, but you'll still need to compile the entire session once you've started. Anthony |
The Following User Says Thank You to Anthony Johnson For This Useful Post: | ||
Lars-Olof Leven (05-23-2008) |
Thread | Thread Starter | Forum | Replies | Last Post |
'Push conveyor' possible? | Maurits Brandt | Q&A | 3 | 07-07-2010 01:58 PM |
Help needed in reversible conveyor | DerekChau | Q&A | 4 | 04-11-2008 07:29 AM |
How to set the height of the conveyor? | KelvinHo | Q&A | 6 | 03-10-2008 07:55 AM |
Bottle Stability On A Conveyor | lespaul | Q&A | 1 | 01-10-2008 01:00 PM |
Stop conveyor on loading | mathiasds | Q&A | 2 | 11-20-2007 04:31 PM |