ATTENTION

This 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

Go Back   FlexSim Community Forum > FlexSim Software > Q&A
Downloads

Q&A Using Flexsim and building models

  #1  
Old 08-16-2015
Isba Bala 怡萱 何
Guest
 
Posts: n/a
Downloads: 2
Uploads: 0
Question The question of using AGV factory

I want to simulate one automatic factory,and this is a small one.

In this case,
one visual tool representative of a workstation,
there are 2 platform(one for raw material(QueueIn) another for finished good(Queue2)),
and one processor in a workstation.

Steps as follow:
1.AGV(TaskExecuter) go to QueueOut to pick up 7 pieces of raw material.
2.AGV go to each workstation to exchange raw material(blue) and finished good(yellow).
2-1.AGV unload 1 raw material to QueueIn.
2-2.In the meanwhile, if there is already a finished good in Queue2,AGV should pick it up.
3.AGV go to sink to unload all of finished goods.
4.In the end of circle,if there are remaining raw material on the AGV,
AGV go to Queue17 to unload all remaining raw material.


In the first model,i check the box of "use transport" ,but it did not run ideally.
Therefore,in the second model,i did not check the box of "use transport",i wrote some program in the triggers .However,it did not work.
Attached Files
File Type: fsm smallauto.fsm (40.2 KB, 549 views)
File Type: fsm smallp.fsm (42.6 KB, 608 views)
  #2  
Old 08-19-2015
Isba Bala 怡萱 何
Guest
 
Posts: n/a
Downloads: 2
Uploads: 0
Smile How to write FlexScript to assign TaskExecuter

I am a beginner.
Does anyone could help me to check where the problem of FlexScript is.
Thank you very much.
  #3  
Old 08-19-2015
Rahel Carolina
Guest
 
Posts: n/a
Downloads: 30
Uploads: 0
Default

Hi Isba Bala,

I'm quite a beginner too. But I guess you alway have to click the check box for "use transport" if you want to use a transporter (like Task Executor or operator).
And in order to control the picking process easily, you can create a Label for each material (Raw Material and Finished Goods), so the Transporter knows exactly which product has to be picked and how much. Then you can play around with the triggers and use command to create an ideal picking process.
All the command reference are available in User Manual. Please take a look

It was complicated for me too at the beginning, but it will get easier if we follow the tutorials and read the manual. Good luck
The Following 4 Users Say Thank You to Rahel Carolina For This Useful Post:
Sebastian Hemmann (08-20-2015)
  #4  
Old 08-24-2015
Isba Bala 怡萱 何
Guest
 
Posts: n/a
Downloads: 2
Uploads: 0
Smile

Dear Rahel Carolina
Firstly,thank you for your answer.


Last second model,i did not check the box of "use transport",i wrote some program in the triggers ,because I saw an example from this forum that it just wrote program to assign operator to check every station and pick the item.(attachment 1)

Follow your suggestion,I click the check box for "use transport" ,I follow the tutorials and read the manual again ,and create a Label for each material (Raw Material and Finished Goods).Nevertheless,I also have some question.
1.How to apply label to load 7 item one time?

Before create a label for each material,I wrote this program in raw material Queue ?flow?use transport.Try to assign transport to load 7 item.However, it did not work.Could anybody tell me why?
treenode dispatcher = centerobject(current,1);
treenode ts = createemptytasksequence(dispatcher,0,0);
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
for(int iCounter = content(centerobject(current,1)); iCounter <= 7; iCounter++ ){
inserttask(ts, TASKTYPE_LOAD, item, current);}
dispatchtasksequence(ts);

2.How to assign AGV to each workstation to exchange raw material(blue) and finished good(yellow).
AGV unload 1 raw material to QueueIn.In the meanwhile, if there is already a finished good in Queue2,AGV should pick it up.

I did not find the method in the manual,or could you tell me where is it .
I will very appreciate it.
  #5  
Old 08-25-2015
Jörg Vogel's Avatar
Jörg Vogel Jörg Vogel is offline
Flexsim User
 
Join Date: Sep 2007
Location: Hannover, Germany
Posts: 643
Downloads: 35
Uploads: 0
Thanks: 802
Thanked 665 Times in 410 Posts
Rep Power: 642
Jörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond reputeJörg Vogel has a reputation beyond repute
Default

Hello Isba Bala,

The transport method is at first an easy system in the flexsim engine. It works off the automated created tasksequences in order their creation or receiving at the dispatcher.
Because the systems is an easy one, you have to understand, when a tasksequence is created and when the taskexecuter begin to work on the tasksequence. Sometimes the tasksequence is created in an order you doesn't want to. Then you can change the order. An another approach is to build own tasksequences which control the sequence of action. Such a method works only in defined limited borders. If you change your model you have to change the created tasksequence, too.
Back to the first approach changing the order. There exists several triggers or functions in Flexsim. If you want to load more than one item at a station, then you can you use the Break to function in a taskexecuter. You find some items in the picklist. Sometimes you have to change the source code of a picklist item to combine two separate features. But be aware of the runtime in your model, this approach works only, if the tasksequences exist in the model when you want to break to them. If they are created right at the moment when an item is picked by an Taskexecuter then the tasksequence might not exist, when you want to break to the tasksequence.
Another Approach exists when the taskexecuter receives a tasksequence. It looks like the taskexecuter is the object which receives the tasksequence, but that is not true. The parent object of the object class taskexecuter receives the tasksequence. It is the dispatcher. Every taskexecuter is a dispatcher, too. In the trigger OnReceiveTaskSequence you can change the parameters of the received tasksequence. For instance you can change the priority value, a destination in the frunload tasktype type or insert other tasks. Other dispatcher functions you see at the first tab of the taskexecuter properties window: Pass To and Queue Strategy. Pass To defines where the tasksequence is stored. Typically the engine stores the tasksequence at the dispatcher (taskexecuter). But you can change it. The Queue Strategy sorts the queue of of all tasksequences at the dispatcher (taskexecuter) himself. The standard uses the priority of the tasksequence.
Other methods lay in the tasksequence tasktypes. You can use this approach if you change tasksequences or if you create them. The types are CALLSUBTASK or BREAK. The tasktype BREAK exists in the standard transport tasksequence. It initiate the Break To function in the taskexecuter. But it is a powerful function, too, if you change the involved parameters. Please read the manual and some threads here in the forum. The tasktype CALLSUBTASKS is used if the tasksequence should react on a situation in the model when the taskexecuter works on the tasksequence.
As I started with flexsim I created my own tasksequences. Nowadays I change the tasksequences by inserting new tasks, change the task order in the tasksequence, break to other tasksequences or call subtasksequences.
But be aware of the runtime of your model when a tasksequence is created and gets executed. Possibly the model has changed and the flowitems are at different objects then when the tasksequence was created.

Jörg
The Following 4 Users Say Thank You to Jörg Vogel For This Useful Post:
Sebastian Hemmann (08-25-2015)

Tags
agv, factory, manufacturing, taskexecuter, triggers


Thread Thread Starter Forum Replies Last Post
Another project sharing - Canteen of a factory with 20000+ staff KelvinHo Tips and Tricks 2 05-17-2010 12:23 AM


All times are GMT -6.
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Copyright 1993-2018 FlexSim Software Products, Inc.