设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7890|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'( z- n! a2 T8 Y/ ^) r
*/* U! U' M9 }4 G0 \. n
is5 B; [1 O5 V2 E7 x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ v% b' e( V' O2 v  l0 ^, w, S
do, M9 s1 w- i. ]7 M! {8 f
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 S! F' J6 m; W4 R; I, q
        if current = @.Destination -- else return0 K2 m4 E- v4 R* l  A! P
        then
. u9 m: M$ E7 S, Z* y" \( f; ]                @.Destination := void;
/ o9 `" t4 {* `: i  V& S' V                if @.occupied then
# u3 \5 V* P: r; z                        part := @.cont;
# V; T6 P! }5 M5 @" |                        @.transpOrder := void;( z, }, q% |  v- a( [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# q/ r- l7 t2 E- C  }7 K' w" _3 M
                                @,root.eventcontroller.simTime);# Z) B0 F% D5 E3 \
                        @.HasOrder := false;: n! U+ J3 _4 e% V5 p! p# q6 s
                        @.DrivingHome := true;
  P4 J0 O* i( u3 x                        rgManager.tryToStartTransOrder;$ c& X! M* \: d' J
                        if @.Destination = void3 q  p* x& a/ J$ {
                        then -- no transport order for vehicle @
5 Y6 [8 r' @: N5 [                                @.Destination :=
+ Y; p  ^" {( L                                rgManager.nearestFreeStation(@,track.~);6 G0 z" o* [9 i
                                newDirection(@);   9 j; o1 M8 r3 O9 {: ~
                                if @.Destination /= void then: ~4 e* T7 A' W) I" M# @& K- S
                                        @.Destination.NumReservation :=
5 A& x- b" V, |# m' U1 N$ G6 s                                        @.Destination.NumReservation + 1;
4 W' `- e( ?- S. O' O' w! D0 {2 m% u                                end;
) @3 h# x, I9 b7 ?4 P                                @.CurrIcon := "drivingHome";$ b% I7 g+ F7 d8 b' J- f- `
                                @.DrivingHome := true;, q" S  q; z3 i0 i9 F
                        end;
7 D' t% U" X0 t1 a8 X1 c' M4 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( \4 e+ q) g, C) B4 v0 Y
                        part := @.transpOrder;
3 Z$ E* ?. t8 e5 r: {9 Q7 `                        part.move(@);-- load part
' a3 ]7 F' I: u8 I                        @.CurrIcon := "load";
; ^5 [" W* k3 |                        GlobalDistObj := part.globDestination;
8 {. |4 F, k( d( Z8 w6 S                        assignLObj := rgmanager.rgAssignL;2 Y1 O3 T5 x  B: D* h% P! a
                        row := assignLObj.getRowNo(GlobalDistObj);
; I+ D  f0 A# O! o  T                        if Row = -1 then -- since 70
; S9 z2 B, V1 X! V0 f/ u                                if lan=1 then$ Y* [% p$ e. u% p  A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* \# s' H! ^& z4 Y5 M                                                to_str("in der Andockstation: \"",?.~.name,"\""));* @& R2 F( h+ h- R" }! ?$ [& B7 ?/ A
                                else
- {8 }8 {" ]1 k( Y' ]/ R6 X) _: }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% N1 C! g6 y: F- B/ _
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 e" F2 J( A" f, N. n
                                end;/ K1 \9 u) ]& E1 A2 j! i: Q0 c
                        else
- ^0 j% w( L) ~7 [9 E9 Y7 l3 x                                @.Destination := assignLObj[1,row];3 E( p% |) o+ j
                        end;                       
/ G2 e2 s' Z1 T) T( C  ]                        newDirection(@);
% T  c8 l; g4 I# y4 N& e! Q                        @.HasOrder := true;5 A- M$ A7 a$ s4 ^1 s
                end;
6 p7 h' p7 g; D        end;
8 f8 C& y- g9 L" h8 P& Xend;        -- of the method; J  w7 W$ `8 s3 x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( ?/ s0 s" }) X% p5 ?8 B7 D; p8 n, n8 P# Q$ @2 F
这是AGV_putin中arrive的method。
, p& O  o4 p( L  F: {& z5 I
' d+ a9 P( s7 ]当到达物料速度越高时,这个报警更多,
; B# M" n6 f9 Z( S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 a+ ?4 L+ @, R0 H0 n8 ]/ d6 d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* ?! Z# e& l" H% e
# `% l3 k  e6 Q7 K6 t2 j& c0 O另外一个小建议,就是move,所有的move都可以这样
' d: I# s  Y+ e1 A6 D4 F/ {; l8 @6 wif not move() then debug end+ k% _, u; o! r" u) V$ D7 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ I* K% {/ \* h0 M# q1 gplant simulation中的free libraries有AGV模板,
$ [0 X: A" M/ N# t3 E$ j7 W里面也有案例。! k: q# ]2 i' x7 F  ?: R  ?6 C% e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- v) j6 X2 V! b- t6 [/ s
3 N, p# c6 j& n1 ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& `/ C* z, p3 _+ S! J
/ d* ?7 t8 U; k+ X: _2 x* M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , ]+ n& ?! @3 `
这是AGV_putin中arrive的method。: [1 w5 I& Y+ B. Q5 ?, f
1 u, Y4 `% l! g0 o
当到达物料速度越高时,这个报警更多,
! J: y; p! Z& Y: o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-5-3 16:01 , Processed in 0.018280 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表