Function description

<< 点击显示目录 >>

主页  ACOPOS 6D使用手册 > mapp 6D  > 功能块 > McAcp6D  > Function blocks  > MC_BR_MoveInPlaneAsync_Acp6D  >

Function description

该功能块可同时在二维空间内为多达 78 个托盘执行一个动作。

 

信息

默认情况下,功能块的应用范围包括整个组件。可以使用可选的 "区域 "参数将应用范围限制在一个区域内。

说明对这两种情况都有效。有关使用参数 "Zone "的其他信息,请参阅 "将应用区域限制为一个区域"。

 

必须为功能块应控制的每个托盘指定唯一的目标位置。所有位置都必须在布局范围内,并且可以被托盘访问。这意味着用户在间隔目标位置时必须考虑到托盘的尺寸。目标位置也不允许分配两次。

在执行命令之前,不允许任何托盘进行移动。这意味着组件上的所有托盘都必须处于 "空闲-悬浮 "或 "停止 "状态。

如果输入 "执行 "设置为 "真",所有托盘将以指定的速度和加速度开始运动。控制器使用智能算法计算每个托盘的运动路线,使其到达目标位置,且托盘之间不会发生碰撞。路线由若干个单一的运动组成,这些运动始终只在 X 或 Y 方向上运行。在不利的星群中,有可能找不到或找不到所有路线。在这种情况下,功能块会输出错误信息,并且不会执行任何移动。

为了确保所有已定义的托盘都能到达目标位置,功能块上未指定的托盘也有可能被移动。在命令执行完毕之前,这些穿梭器会返回到原来的位置。

 

示例

注意:箭头表示哪个托盘应被发送到哪个目标位置,并不代表计算出的托盘路线。

moveinplaneasync_ok1

托盘 ID

1

2

当前位置

X = 120 毫米

Y = 120 毫米

X = 360 毫米

Y = 120 毫米

目标位置

X = 360 毫米

Y = 360 毫米

X = 120 毫米

Y = 360 毫米

结果

由于目标位置在布局中,且彼此相距足够远,因此可以执行移动。

moveinplaneasync_ok2

托盘 ID

1

2

3

当前位置

X = 120 毫米

Y = 120 毫米

X = 360 毫米

Y = 360 毫米

X = 360 毫米

Y = 120 毫米

目标位置

X = 60 毫米

Y = 300 毫米

不受控制

X = 60 毫米

Y = 420 毫米

结果

可以进行移动,因为目标位置在布局中,而且相距足够远,穿梭机不会互相妨碍。

moveinplaneasync_fail1

托盘 ID

1

2

当前位置

X = 120 毫米

Y = 120 毫米

X = 360 毫米

Y = 120 毫米

目标位置

X = 200 毫米

Y = 360 毫米

X = 280 毫米

Y = 360 毫米

结果

由于目标位置相距不够远,因此无法执行该动作。托盘会重叠。

moveinplaneasync_fail2

托盘 ID

1

2

当前位置

X = 120 毫米

Y = 120 毫米

X = 360 毫米

Y = 120 毫米

目标位置

X = 40 毫米

Y = 320 毫米

X = 300 毫米

Y = 420 毫米

结果

由于托盘 1 的目标位置太靠近版面边缘,因此无法执行移动。托盘会悬空太远。

 

将应用区域限制为一个区域

使用参数 "区域 "时,功能说明同样有效。只有应用区域会缩小到所引用的区域。

在执行命令之前,区段必须处于 "mcACP6D_ZONE_ACTIVE_CLOSED"(mcACP6D_ZONE_ACTIVE_CLOSED)状态,即隔离栅必须关闭。如果在区段处于不同状态或区段对象无效时执行命令,则功能块会输出错误信息。

通过缩小应用区域,只能使用区域内的托盘。上述要求仅限于该区域。这意味着目标位置必须在布局和区域边界内,并且必须是穿梭车可以访问的。此外,只有区域内的托盘必须处于 "空闲-悬浮 "或 "停止 "状态。

区域外的托盘将被功能块忽略,例如,可以同时执行其他动作。

如果需要对布局区域进行独立控制,尤其建议限制功能块的应用区域。

例如

moveinplaneasync_fail_zone

托盘 ID

1

2

3

状态

闲置 - 悬浮

闲置 - 悬浮

着陆

当前位置

X = 60 毫米

Y = 60 毫米

X = 420 毫米

Y = 60 毫米

X = 360 毫米

Y = 360 毫米

目标位置

X = 420 毫米

Y = 180 毫米

X = 60 毫米

Y = 120 毫米

未控制

结果

无区域:由于应用区域(组件)内并非所有托盘都处于有效状态("空闲-悬浮 "或 "停止"),因此无法执行运动。

 

有区域:由于区域未处于有效状态("mcACP6D_ZONE_ACTIVE_CLOSED"),因此无法执行移动。

moveinplaneasync_ok_zone

托盘 ID

1

2

3

状态

闲置 - 悬浮

闲置 - 悬浮

着陆

当前位置

X = 60 毫米

Y = 60 毫米

X = 420 毫米

Y = 60 毫米

X = 360 毫米

Y = 360 毫米

目标位置

X = 420 毫米

Y = 180 毫米

X = 60 毫米

Y = 120 毫米

未控制

结果

可以执行移动,因为应用区域仅限于区域(黄色),其中的所有托盘都处于正确状态,目标位置也在布局和区域边界内。

 

 


The function block simultaneously performs a movement for up to 78 shuttles in 2-dimensional space.

 

Information:

The application area for the function block extends to the entire assembly by default. The optional "Zone" parameter can be used to restrict the application area to one zone.

The description is valid for both cases. For additional information about using parameter "Zone", see item "Limiting the application area to one zone".

 

A unique target position must be specified for each shuttle that the function block should control. All positions must be within the layout limits and accessible to a shuttle. This means that the shuttle sizes must be taken into account by the user when spacing the target positions. Target positions are also not permitted to be assigned twice.

Before the command is executed, no shuttle is permitted to be performing a movement. This means that all shuttles on the assembly must be in state "Idle - Levitated" or "Stopped".

If input "Execute" is set to TRUE, the movement starts for all shuttles with the specified speed and acceleration. The controller uses an intelligent algorithm to calculate a route for each shuttle so that it reaches its target position and there are no collisions between the shuttles. The route consists of several single movements that always run in the x- or y-direction only. It is possible in unfavorable constellations that no or not all routes can be located. In this case, the function block outputs an error and no movement is performed.

To ensure that all defined shuttles reach their target position, it is possible that shuttles that were not specified on the function block are also moved. These are returned to their original position before the command is completed.

 

Examples:

Note: The arrows symbolize which shuttle should be sent to which target position and do not represent the calculated routes of the shuttles.

moveinplaneasync_ok1

Shuttle ID

1

2

Current position

X = 120 mm

Y = 120 mm

X = 360 mm

Y = 120 mm

Target position

X = 360 mm

Y = 360 mm

X = 120 mm

Y = 360 mm

Result

The movement can be performed since the target positions are in the layout and far enough apart from one another.

moveinplaneasync_ok2

Shuttle ID

1

2

3

Current position

X = 120 mm

Y = 120 mm

X = 360 mm

Y = 360 mm

X = 360 mm

Y = 120 mm

Target position

X = 60 mm

Y = 300 mm

Not controlled

X = 60 mm

Y = 420 mm

Result

The movement can be performed because the target positions are in the layout and still far enough apart that the shuttles do not get in each other's way.

moveinplaneasync_fail1

Shuttle ID

1

2

Current position

X = 120 mm

Y = 120 mm

X = 360 mm

Y = 120 mm

Target position

X = 200 mm

Y = 360 mm

X = 280 mm

Y = 360 mm

Result

The movement cannot be performed because the target positions are not far enough apart. The shuttles would overlap.

moveinplaneasync_fail2

Shuttle ID

1

2

Current position

X = 120 mm

Y = 120 mm

X = 360 mm

Y = 120 mm

Target position

X = 40 mm

Y = 320 mm

X = 300 mm

Y = 420 mm

Result

The movement cannot be performed because the target position of shuttle 1 is too close to the edge of the layout. The shuttle would overhang the edge too far.

 

Limiting the application area to one zone

The function description is also valid when using parameter "Zone". Only the application area is reduced to the referenced zone.

Before the command can be executed, the zone must be in state "mcACP6D_ZONE_ACTIVE_CLOSED", i.e. the barrier must be closed. The function block outputs an error if the command is executed when the zone is in a different state or the zone object is invalid.

By reducing the application area, only shuttles within the zone can be used. The requirements described above are limited to this area only. This means that the target position must be within the layout and zone boundaries and must be accessible for the shuttles. In addition, only the shuttles within the zone must be in state "Idle - Levitated" or "Stopped".

Shuttles outside the zone are ignored by the function block and can execute other movements simultaneously, for example.

Limiting the application area for the function block is particularly recommended if areas of the layout should be controlled independently.

Example:

moveinplaneasync_fail_zone

Shuttle ID

1

2

3

State

Idle - Levitated

Idle - Levitated

Landed

Current position

X = 60 mm

Y = 60 mm

X = 420 mm

Y = 60 mm

X = 360 mm

Y = 360 mm

Target position

X = 420 mm

Y = 180 mm

X = 60 mm

Y = 120 mm

Not controlled

Result

Without zone: The movement cannot be performed because not all shuttles in the application area (assembly) have a valid state ("Idle - Levitated" or "Stopped").

 

With zone: The movement cannot be performed because the zone is not in a valid state ("mcACP6D_ZONE_ACTIVE_CLOSED").

moveinplaneasync_ok_zone

Shuttle ID

1

2

3

State

Idle - Levitated

Idle - Levitated

Landed

Current position

X = 60 mm

Y = 60 mm

X = 420 mm

Y = 60 mm

X = 360 mm

Y = 360 mm

Target position

X = 420 mm

Y = 180 mm

X = 60 mm

Y = 120 mm

Not controlled

Result

The movement can be performed because the application area is limited to the zone (yellow), all shuttles in it are in the correct state and the target positions are also within the layout and zone boundaries.