多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
![](https://box.kancloud.cn/39eda3d4a412c52b336c864139ef07f0_69x49.jpg) Overview The Gantry Crane is an overhead crane on wheels that straddles a yard block and lifts containers. It is commonly used for moving containers off/on [trucks](Truck.html), to/from the [yard block](YardBlock.html),聽digging, and restacking. It can be used as an RTG (Rubber Tired Gantry) or RMG (Rail Mounted Gantry). Its 3D visualization can be configured on the Miscellaneous tab. Properties ![](https://box.kancloud.cn/6f31433ea9a2af70d23c094fee0e97dc_486x720.png) Gantry Crane Tab Travel Sequence - This field allows you to specify how the crane travels. The order of the operations is specified from left to right. Each operation must be separated by a '>' character. Operations that are not separated by a '>' character will be done simultaneously. For example "L>XY>D" will first Lift, then gantry and trolley simultaneously, then Drop. Additional Travel Sequence Syntax Features - There are several additional syntax options that you can use in specifying the travel sequence. All syntax options are specified by a leading period (.) followed by the option to use which is then followed by parentheses that enclose an expression. For example, one option might be: ".dl(5)," which specifies that the Crane may continue to the next operation once it has less than 5 distance units remaining to travel on that operation. You may add more complex flexscript expressions within the parentheses, such as stochastic distributions and global variables. The possible options are as follows: - .dl(expression) - distance left - The crane may continue the next operation once it has less than the specified distance remaining to travel. - .df(expression) - distance finished - The crane may continue to the next operation once it has completed the specified distance. - .tl(expression) - time left - The crane may continue to the next operation once it has less than the specified time remaining to travel. - .tf(expression) - time finished - The crane may continue to the next operation once it has spent the specified amount of time traveling in that operation. Examples L.dl(2)>XY.tf(1)>D - Here the sequence tells the crane to start the lift. Then start the gantry and trolley motions as soon as the crane is within 2 distance units of the lift height. Then the crane may start the drop 1 time unit after starting the trolley, as long as the gantry operation is finished (since there was no option added to the X, it must fully finish the gantry before starting the drop). L>X>Y.df(triangular(1,3,2))>D - This allows the drop operation to begin after a random amount of distance between 1 and 3 units has been completed in the trolley operation. Lift Height - This value is the height to which the crane's hoist can be lifted. Length units are determined by the [Model Units window](Model_Units.html). Lift Hoist When Idle - This checkbox helps the crane be more efficient when idle. If this box is checked, then the RTG will lift its hoist when it has nothing to do, so that the next time it gets a task, it can bypass the time/lift distance associated with lifting the hoist. If this box is unchecked,聽the RTG will leave its hoist where it is when idle. The idle lift time is based on the RTG's hoist lift speed. Movement Time - These options allow you to determine whether the movement time is determined by the Time Per Move or the Speeds. The operations that are specified as Time Per Move will be distributed according to the percents shown in the view. You can drag the black boxes left and right to change the proportion of time spent doing each operation. Time Per Move For Unstacking - This value is the time it takes to remove a container from the yard block and place it on a truck. This value is only associated with the target container. If digging is required, that additional time is handled on the Miscellaneous tab. For Stacking - This value is the time it takes to move a container from a truck and place it in the yard block. Speed - This set of values are the various speeds of the RTG. Each movement is handled separately. If the acceleration or deceleration are 0,聽the RTG will instantly move at top speed or stop completely without any acceleration or deceleration time. Time and length units are determined by the [Model Units window](Model_Units.html). Miscellaneous Tab ![](https://box.kancloud.cn/9ac961a38adfda0048c696b797e25230_494x652.png) Digging- If the crane has to dig for a container (because other containers are stacked on top of the target container), these values are used to calculate how much time it takes to reach the target container. There are four options for calculating dig time. Each option uses the "Dig Time" expression in a different way: - "Based on Time Per Displaced Container" - The dig time is evaluated for every container that has to be moved out of the way. The RTG then moves those containers to new locations nearby. - "Based on Time Per Displaced Container (no real digging)" - The dig time is evaluated for every container that has to be moved out of the way, but the RTG doesn't actually move any containers. Instead, it waits the calculated amount of time, then FlexTerm swaps the target container to the top of the stack and the RTG moves it from the top. - "Based on Time Per Unstacked Container (no real digging)" - The dig time refers to an average time to dig through containers and is evaluated only once for the entire digging operation. The RTG waits the calculated amount of time, then FlexTerm swaps the target container to the top of the stack and the RTG moves it from the top. - "Based on RTG Speeds" - The dig time on this tab is not used. Instead, the speed values given on the "Gantry Crane" tab are used in conjunction with the distances in the model and number of containers to be moved. Dig Strategy聽- If the Digging selected by the user is "Based on Time Per Displaced Container" or "Based on RTG Speeds," the user can choose a strategy in the Digging Strategy (Select A Container Placement Strategy) combo box. The list is a combination of "Same Bay Dig" and all the container placement strategies defined by the user in Yard Planner. "Same Bay Dig" means those containers moved during the digging operation will be put onto the same bay. It will search which cell (or row) in the bay has the least number of containers, and put the moved container into that cell. The "Same Bay Dig" option is typically used for RTG operations. If the user selects a container placement strategy, it will search through the whole block and find the slot to put the moved container based on the selected strategy. This gives the user an opportunity to implement their own digging strategy. For example, a user might move containers to another bay in the same block in a RMG operation. ![](https://box.kancloud.cn/fbb8350a9100793c1a435f930cc4219c_468x140.png) Stacking/Unstacking Early Notification - These options allow you to customize how the crane behaves when it receives a notification that a truck is on its way to stack or unstack at the block. You can choose how the crane will react to such notifications in order to maximize the crane's efficiency. On State Change - This trigger is fired when a RTG's state is changing. You may use this trigger to fire your own logic. Network Travel - Sometimes an RTG is used to cover several yard blocks. When the yard blocks are lined up end-to-end, the RTG can gantry back and forth along the line of blocks. However, when the yard blocks are lined up one above another, the RTG must travel along a network path from one yard block to another. When the RTG is traveling on the network, it uses these network travel speeds instead of its gantry speeds. If the acceleration or deceleration are 0, then the RTG will instantly move at top speed or stop completely without any acceleration or deceleration time. Time and length units are determined by the [Model Units window](Model_Units.html) . - Rotate on NetworkNode - If checked, the RTG will automatically rotate when travel in a node network. Note: To use network travel for an RTG correctly, the network nodes need to be setup correctly. Refer to [network nodes](NetworkNode.html#RTG) for more information and examples. Appearance - This option allows you to quickly change the visualization of the crane to appear as a Standard RTG, Standard RMG, Single Cantilever RMG, or Dual Cantilever RMG. This does not affect how the crane behaves. Trolley and Hoist ![](https://box.kancloud.cn/f2ed66751567f2ded813e01a3d329610_468x137.png) The Trolley and Hoist Properties can be edited by pushing their respective Properties buttons. You can also toggle them to be un-clickable in the views. The Crane's Properties can be edited on the [General](Flexsim_Users_Manual.html) tab. Additional Details Digging ![](https://box.kancloud.cn/3f1927483bf4d57823b8f6855aca86a6_196x158.png) FlexTerm follows these steps in order to decide if it should dig for a container: 1. For the yard block in question, it looks at the checkbox "Do ordered unstacking if segregated." If this box is checked and if the bay/cell is properly segregated, then the container will be swapped to the top and the RTG will not dig. 2. Otherwise, the RTG will dig. It uses the information in the "Digging" section on the Miscellaneous tab of the RTG to determine how to dig. You can tell when the RTG is digging because containers are colored white while they are being moved out of the way. Crane Movement Strategy ![](https://box.kancloud.cn/5f333db621641c2952c36fa39c1410e2_468x59.png) FlexTerm provides a way to model the crane movements to avoid potential conflicts or optimize crane performance, such as in a twin RMG situation. Twin RMGs means two identical RMGs are running on the same rail and, therefore, cannot pass each other. The Movement Strategy trigger is specifically designed to model such situations. The trigger is fired at a certain time, such as right after the truck or AGV arrives at its designated location at a block for the crane to pick-up or drop-off a container,聽when the crane finishes a job and becomes available, or at the beginning or end of a sequence of crane movements. The triggers are as follows: - RMG\_MOVEMENT\_ON\_STACK:聽 fires when a truck arrives for a stack operation. - RMG\_MOVEMENT\_ON\_UNSTACK: fires when a truck arrives for an unstack operation.Additional access聽variables for the previous two triggers are: - parval(1) - trigger type. - parval(2) - container id. - parnode(3) - truck. Return value of this trigger would be: - Not 0 - gantry crane would not build default instruction sequence. - 0聽- gantry crane would build default instruction sequence. - RMG\_MOVEMENT\_ON\_STACK\_PRENOTIFY: fires when a gantry crane is prenotified that a truck is on the way for a stack operation. - RMG\_MOVEMENT\_ON\_UNSTACK\_PRENOTIFY: fires when a gantry crane is prenotified that a truck is on the way for an unstack operation.Additional access聽variables for the previous two triggers are: - parval(1) - trigger type. - parval(2) - container id. - parnode(3) - truck. Return value of this trigger would be: - Not 0 -聽gantry crane would not build default instruction sequence. - 0聽-聽gantry crane would build default instruction sequence. - RMG\_MOVEMENT\_ON\_DIRECT\_MOVE: fires right before a gantry crane tries to move a container from a block to transfer area.Additional access聽variables for the previous trigger is: - parval(1) - trigger type. - parval(2) - container id. - parnode(3) - transfer area slot. Return value of this trigger wouldbe: - Not 0 -聽gantry crane would not build default instruction sequence. - 0聽-聽gantry crane would build default instruction sequence. - RMG\_MOVEMENT\_ON\_INSTR\_START: fires right before a gantry crane starts an instruction. - RMG\_MOVEMENT\_ON\_INSTR\_END: fires right after a gantry crane finishes an instruction.Additional access聽variables for the previous two triggers聽are: - parval(1) - trigger type. - parval(2) - instruction number. Return value of this trigger would聽be: - Not 0 - this will notify a gantry crane to update or refresh its instruction sequence. So, whenever you insert instructions by rsmove() or rswait(), you should update instruction sequence by return a non-zero value. - 0聽- do nothing for instruction sequence. The default example included in the Movement Strategy drop-down menu is for a specific model that was built to illustrate the usage of this trigger and those API functions specifically designed for the trigger. The model has one quay crane, one truck gang with four trucks, one block perpendicular to the berth, two RMGs on the block (RMG\_1 works for waterside and RMG\_2 works for landside), a transfer area at the waterside end of the block, and the node network to link the berth road to the transfer area node. Below are screen captures for the model. You should be able to build this model by referring to the [Tutorials](Tutorials_Overview.html)and [Planners](Planners_Overview.html) help sections. The help page for each object involved in this sample model will also be helpful. To build this sample model, make sure you center connect the two RMGs. You will also need to "A" connect all trucks to a network node so that trucks will be able to travel along the network. Make a "A" connection between the transfer area node and the block. For RMG\_1, go to Properties window and under the Miscellaneous tab, choose Simple Movementstrategy Example under the Movement Strategy drop-down list. For RMG\_2, leave the Movement Strategy trigger empty. Make sure you move RMG\_2 to the middle of the block at the beginning of the simulation. After you run the model for a while, you will see RMG\_1 is trying to load some containers at the landside and RMG\_2 will evade to avoid a collision with RMG\_1. For help using the API commands in this trigger, please refer to the FlexTerm Command Help. ![](https://box.kancloud.cn/8c3bd11bab6238e25d376d3a59fefc29_809x554.png) ![](https://box.kancloud.cn/c24652a5e600fe136c52091b61d5a90c_803x541.png) ![](https://box.kancloud.cn/e99034e5873a819472261ae85b61080b_761x551.png) ![](https://box.kancloud.cn/38c27a9f0b9e33255199c6e9a9ebc164_859x442.png) ![](https://box.kancloud.cn/35367b055b233227ca825ff37cb75a92_770x509.png) ![](https://box.kancloud.cn/42942776313658e9b46eb36e3618f09a_831x599.png) ![](https://box.kancloud.cn/4219d5e92f657960c156354f689760a7_405x537.png) ![](https://box.kancloud.cn/71f54a6ad4933a40c21284672ad57879_711x225.png) ![](https://box.kancloud.cn/75710b1c0ebddf84f055b894f87dea15_731x225.png) Default Twin RMGs Collision Avoidance Logic FlexTerm provides default collision avoidance logic for twin RMGs configuration that is one of typical automated container terminal RMG configurations. An example of showing how to use default twin RMGs collision avoidance logic is as follows. At first, setup a model as image below. In the model, there is one yard block with two transfer area on both ends. Setup berth planner and gate planner properly in order that ship load/discharge and gate pick up/drop off happen simutaneously. Setup block assignment rule to random cell in order to increase the probability of RMG collision. Setup resource assignment rule in order that water side RMG only works with water side transfer area, and land side RMG only works with land side transfer area. ![](https://box.kancloud.cn/3fae4f3f5837221d37ed4d3c357e7b40_854x651.png) Put commands as shown in the image below on model reset trigger. Note: left or right RMG is definded based on relative location in block space. You can check the origin of yard block from yard planner's 2D view. For help using the API commands, please refer to the FlexTerm Command Help. ![](https://box.kancloud.cn/90a2c53ef678ea0095897fa8d79b1414_594x235.png) Put commands as shown in the image below on gantry crane movement strategy trigger. Refer pervious section about movement strategy trigger and FlexTerm Command Help for more detail. ![](https://box.kancloud.cn/7f0b956a0f4a40b784f2e18b3f60bed8_623x315.png) Note: in order to聽make default collision avoidance logic work properly, gantry cranes are required to setup as follows: 聽聽聽 1. Turn off stack and unstack prenotification. 聽聽聽 2. Gantry, trolley, lift and drop movement should be decided by speed table instead of stacking/unstacking time. 聽聽聽 3. For real digging, set digging strategy to be "Same Bay Digging", and set digging mode to be "Based on RTG speeds". 聽聽聽 4. For non-real digging, set digging strategy to be one of the non-real digging cases.