question

Kirk W avatar image
0 Likes"
Kirk W asked Phil BoBo commented

Change Crane Z height Flow item pick up point

Is there a way to change where the pick up point for a crane is in relation to the z height of the flow item?

I am using a crane as representation for a custom pick and place machine that picks up loaded pallets and places them in location. What I am running into is that my machine actually picks up from the bottom of the pallet, however the crane in FlowSim is programed to pick up at the top of the Z height of the flow item.

I have used a set location on load trigger to show the pallet in correct location when traveling to unload and load, but the pallet just jumps up into place instead of the crane lowering to the actual point it needs to for a smooth pickup.

I am using process flow to control my load and unload so there is potential to add an extra extra activity to try to make this work visually.

Above is where it picks up the pallet. Where bottom of Z of crane is at the top of Z on flow item.

Below is how I want it to pick up the pallet and I have made it jump to position with set location on load.

FlexSim 18.1.0
crane
· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Kirk W avatar image Kirk W commented ·
capture2.jpg

Capture2 shows where it picks up the pallet.

capture.jpg

Capture is how I would like it to pick up the pallet and I have made it jump to position using the set location on load.

capture3.jpg

Capture3 shows the loaded pallet while traveling.

0 Likes 0 ·
capture2.jpg (76.5 KiB)
capture.jpg (70.2 KiB)
capture3.jpg (70.4 KiB)
Phil BoBo avatar image
4 Likes"
Phil BoBo answered Phil BoBo commented

In FlexSim 2018 Update 1, you can customize the Pick Offset and Place Offset triggers of objects.

On the upstream objects that the crane is picking from, add a Pick Offset trigger, specify the bottom of the item and specify an extra offset of minus the item's Z size.

Then on the crane's OnLoad trigger, specify a Set Location of the item's current position plus the item's Z size.

See the attached model. customize-pickoffset.fsm


· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Kirk W avatar image Kirk W commented ·

Thank you Phil. This worked great, I was able to add the same Pick offset, Pick at location trigger to the rack my items were stored on. It was a good thing I had just updated to the latest version.

Thank you for your help.

0 Likes 0 ·
Kirk W avatar image Kirk W commented ·

@phil.bobo

Is there a way to customize the drop off of the flow item in the same way? In the model instance attached, I am trying to place the flow items into spaces on a rack, instead of the crane going all the way down to the bottom Z height, the items jumps to place from the height of the flow item.

I tried many different combinations of using the place offset triggers for both the crane and the rack and couldn't seem to get anything to work properly.

I think part of the issue is the location it is going to is changing. Is there a way to grab the location the flow item has been assigned to and use this location to tell the crane where to drop off?

modified-pick-and-place-offsets1.fsm

Any help with getting this model to work would be great. I should be able to adapt it to my application.

Thanks,

Kirk

0 Likes 0 ·
Phil BoBo avatar image Phil BoBo ♦♦ Kirk W commented ·

Attached (11694-modified-pick-and-place-offsets1-1.fsm) is that sample model modified to do what you want to do.

I changed two parts of the model: (1) the Use Transport of the Processor and (2) the Place Offset of the Rack.

(Thank you for using a simple sample model for this question instead of your actual model. That makes things so much easier.)

The trouble with the place offset for the rack is the timing of when the item gets its cell assignment (place in bay/place in level).

If you simply override the Place Offset trigger, then you've overwritten its cell assignment too early and the item won't get assigned to a cell until after it enters the rack.

So in order to get the cell assignment done earlier, in the attached sample model, I modified the Processor's Use Transport field so that it adds a dummy place offset task before the unload task. This causes the rack to do its cell assignment there so that the item knows which cell it is going to before the unload task starts.

Then, in the Rack's Place Offset trigger, I have customized the pick option with custom code. That code first checks to ensure that the cell assignment is done (this code gets fired twice; once for the dummy place offset and once for the unload task). If the cell assignment isn't done, then the code does nothing, letting the rack do its default behavior that assigns the item's cell. If the cell assignment is done, then it queries the item for its assigned bay and level and queries the rack for the location of that cell. It then uses those values to set the location (the pick option code) and passes the bay loc for x, level loc for y, and -item size z for z.

This is behaving how you want, I think.

1 Like 1 ·
Joerg Vogel avatar image
1 Like"
Joerg Vogel answered Joerg Vogel commented

It is combination of offsettravel, moveobject instead of load and setting the location of the item in relation to the crane hook. You are right that the load task let the hook travel to the boundaries of the item to load. You can use a different offset travel task like traveltoloc in relative or absolute coordinates. Then you do the loading by an moveobject task. Unfortunately the item is placed at the hook. You have to set a different location of the item in the coordinates of the hook. Therefore you store the item location right before you move the item in projected location coordinates (class type Vec3) in relation to the model and project those coordinates in relation to the hook. There might still be an offset if the coordinate center location (origin of coodinates) differs from model, item or hook. Then you have to compensate the difference which is often a part of the size of the item or/and the hook.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image Joerg Vogel commented ·

If the transport task sequence is the result of a standard tasksequence you have increment or decrement the variables "nrfotransportsin" and "nroftransportsout". You find the variable "nroftransportsout" at the object that sends the item, and the variable "nroftransportsin" at the object that receives the item. The load / unload tasks are changing the variables automatically. The moveobject task doesn't.

0 Likes 0 ·