设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7068|回复: 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'
9 D( p! d% H1 z( `: m! b+ S" y*/  \) E# {5 [6 H3 C  t# O
is" _. N2 I7 s: T, P
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' ~& m! f: E. N- w; m' `1 l6 @, A
do" k  y* k2 p3 c: m/ T* i2 p& n
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ ?1 G9 e/ e6 t, k# ^4 ^
        if current = @.Destination -- else return
5 |( n$ W4 {. i' `; L/ O        then" X1 V) T1 y/ b1 K* V" e
                @.Destination := void;
$ R1 {% k" f+ F8 v0 ]7 O                if @.occupied then# s0 t) O8 @( g" G1 ]
                        part := @.cont;, z- o, U4 A! F
                        @.transpOrder := void;0 M. Q4 [( C  g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ q. h% w$ t6 Z  ^$ I. B7 k                                @,root.eventcontroller.simTime);& a( O2 n2 u6 T- j
                        @.HasOrder := false;
/ ~& E7 r# D. j4 c                        @.DrivingHome := true;
6 Z" F# h9 Z$ O                        rgManager.tryToStartTransOrder;3 T) P+ y3 K5 c1 H/ o) n5 q
                        if @.Destination = void. E$ _% B2 b, \( A/ w, N9 \
                        then -- no transport order for vehicle @: l( M* S- i6 ]9 u7 @$ H0 W! Y
                                @.Destination :=
4 r- O  Z  W5 P5 `3 y2 w. E0 Y                                rgManager.nearestFreeStation(@,track.~);
' C4 z6 l0 x* X  U. V8 Y                                newDirection(@);   
# b' s% o) W1 h3 P1 y" t                                if @.Destination /= void then1 @5 p9 L+ L" C( P9 C. e3 g& W
                                        @.Destination.NumReservation :=
& D& X2 {# \, }% z3 }                                        @.Destination.NumReservation + 1;
% g% I- J& e- P% I: x                                end;
  G) t* d+ m% `; O- v# `: w                                @.CurrIcon := "drivingHome";
: [8 l9 g; [& R5 k+ Y+ P9 h                                @.DrivingHome := true;
4 s8 a* h! C, T; x                        end;
2 H% |7 y  y1 P' I+ r! B  B: Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# J) M# O1 ~! Y* m9 ^& c0 R
                        part := @.transpOrder;
2 {- D( c% i8 O- x9 @$ d+ @                        part.move(@);-- load part
% ^, H0 g' D6 v' E9 s/ @! P                        @.CurrIcon := "load";- K- Z. j2 u" A5 _% w3 v3 \* O% S5 L
                        GlobalDistObj := part.globDestination;( `. x8 X  t0 G* P" U
                        assignLObj := rgmanager.rgAssignL;0 s7 W6 M  p2 J! ^! S' n
                        row := assignLObj.getRowNo(GlobalDistObj);0 I$ z9 c3 F5 v6 t- V% f4 W) g) d1 R
                        if Row = -1 then -- since 704 [* k0 e* b9 K% t( @
                                if lan=1 then
" M' D7 T, f1 n$ X  J% N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 l3 d. \$ x  a8 G% s* ?
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 T, ^1 R" Y+ V  @6 o3 e
                                else
$ q1 H* \2 w% g3 B) i/ z$ d                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ V1 T+ h8 [1 D5 p4 d4 N2 E2 V$ e
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ Z. G) u0 c9 O& I" T$ a                                end;  A' k/ d" I9 p, [- H% y: n
                        else% x9 G8 M8 w) e4 d* s
                                @.Destination := assignLObj[1,row];
$ v# [6 _0 q; `3 j5 t                        end;                       
7 l6 {4 `! S/ X                        newDirection(@);% I# D* L; Z) b2 F8 y
                        @.HasOrder := true;( A9 C( c: j8 @, M* P2 B; J8 N
                end;) ^) _* K1 g8 |& \8 c0 [* X5 S8 r
        end;
0 }7 [$ C- C$ t! V% Qend;        -- of the method
/ f- \! L  S8 ]* o# s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 n) c; A/ M2 n" K7 A' K
- d# r" V9 p4 [1 V6 T这是AGV_putin中arrive的method。
4 e7 s3 o. n. x: K9 i! ^% @1 \) ~6 f2 ?
当到达物料速度越高时,这个报警更多,( p$ v3 ^' V3 k% B* A0 [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 b2 p, A) B+ A+ o' J+ E3 @. V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" j1 u7 O$ j. A5 t: j% X. O
8 ]8 A1 {+ U% d8 }5 l1 m另外一个小建议,就是move,所有的move都可以这样3 {7 J, s  o9 v% `& [
if not move() then debug end9 Y" n! _/ N* E* a$ C( |
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 m: F# P8 q+ G" F3 t7 ~plant simulation中的free libraries有AGV模板,
" P4 a( e. k& r0 u0 h, _里面也有案例。
( H) J, q9 X+ M; r, a  b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& @& @9 F* c, y" Y8 {7 d) P  r* k( ~8 ~
" R7 t8 G' z" W" T) o0 {8 X. C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " j) A) j$ C$ ~. Q8 o
) g3 y9 g# ]8 ?" @7 c9 E4 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' C) V8 V# W/ @4 ]! C! X
这是AGV_putin中arrive的method。
) M& k- R* J- Y$ Z# f
% W+ y$ D+ F7 f! Q4 t* ?当到达物料速度越高时,这个报警更多,
7 U, `, z' _8 @- N% C3 ^; f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-14 17:21 , Processed in 0.027920 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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