设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8985|回复: 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'& u: V0 t9 ]4 L6 e
*/9 y. {, J" H# H7 v+ o
is
% o& y' H  W$ V3 ^+ Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Q6 ?! [, T7 m7 S  R$ c1 Ldo( @$ {: d2 G8 F# A
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 F6 L$ U0 v, T        if current = @.Destination -- else return
+ |$ P& _* H1 v. C- }& e! u        then
6 P) [* Q( s6 t8 ]- z                @.Destination := void;6 Z. r+ b0 r3 l) W9 f8 i
                if @.occupied then* Y; K8 V" e: n% B& P
                        part := @.cont;
7 U' ~$ }! \) `+ f1 r+ g' T( p                        @.transpOrder := void;& l! E" y1 U+ t' k3 X2 |6 X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 O! X+ l! g' }( z- ?" q* j9 F' P
                                @,root.eventcontroller.simTime);4 _7 \" L% s; c8 a" G$ \, g8 |8 b
                        @.HasOrder := false;
: ^: T, D3 }$ z! i. H7 J. v$ _                        @.DrivingHome := true;2 @" V/ q6 ]2 v( E3 ^2 F
                        rgManager.tryToStartTransOrder;. T' U8 E# U+ C. d/ F
                        if @.Destination = void
0 F) C, D' E: a0 Z) K) I                        then -- no transport order for vehicle @
% B% {% d% |$ O- C9 g9 i. L( N                                @.Destination :=
2 B0 \, P3 I, j" s- z                                rgManager.nearestFreeStation(@,track.~);
' z, i& Q: |) V  c, U+ ^3 ~& I                                newDirection(@);   * v. D9 n0 s& h+ ~+ q6 ~) N6 c! e" d
                                if @.Destination /= void then
* `6 C% v8 H' Z( B" ^' [$ B                                        @.Destination.NumReservation :=
/ e& w; y5 l& n# C! S' C                                        @.Destination.NumReservation + 1;
% E; ~( ~. T7 g6 o5 @3 s1 ?                                end;. A9 @- N. Z% K5 W4 r2 F! D: B
                                @.CurrIcon := "drivingHome";
1 g; {' [$ q8 w. h                                @.DrivingHome := true;
+ x# e2 t) h9 n. {$ {$ }; ]                        end;4 Q( ]1 j2 g+ g; p2 m- Z: o! I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 ~! A' T: \8 v, Q4 f                        part := @.transpOrder;
7 y7 ]# _5 J: Z9 I                        part.move(@);-- load part9 n/ I# ]% V4 q* d* q2 v
                        @.CurrIcon := "load";
3 Y0 z( X& J9 h' F: w- h0 x                        GlobalDistObj := part.globDestination;
! ~2 n3 H# a5 [2 R. @7 J                        assignLObj := rgmanager.rgAssignL;8 y4 B2 \- D' g8 h! P0 h2 ^; c
                        row := assignLObj.getRowNo(GlobalDistObj);# g4 l5 F! f/ H9 r3 \) I# k
                        if Row = -1 then -- since 70
" g, }) p  [: J/ }. ?5 D8 g/ ^0 e' G                                if lan=1 then6 a( K" I/ Z* q2 w. K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( `/ T6 u  G4 }# G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 l# c" K# l& V" D0 G6 ?# J                                else
# A7 c% X8 ~3 }$ c( E8 y) W1 }0 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 `  O+ v; j" L! h" l" l
                                                to_str("in docking station: \"",?.~.name,"\""));                                & D! a8 p3 p$ w, E! u
                                end;; B/ K; `: B# k; L+ b7 |
                        else6 F/ u; e3 u0 A* R7 s
                                @.Destination := assignLObj[1,row];" }0 h. L9 N: ~
                        end;                       
7 [" N6 [( p, W" G                        newDirection(@);- y" g' u! Q: e6 k- {% l3 B' i
                        @.HasOrder := true;/ l2 w1 w: M6 s. m
                end;- j5 u) X0 ?* y  B( P; n
        end;
% r9 Q5 n# G8 i2 N1 }  d, cend;        -- of the method; g% w* _# ?0 c. F5 S7 _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& x/ w8 [; U( M
7 `# m  {- l; Y) J( s' t! @这是AGV_putin中arrive的method。5 W& [: M; L( C3 `

$ ?" F8 [8 t5 o; U* Y当到达物料速度越高时,这个报警更多,
  y3 H2 o* A2 y0 N$ ~0 Z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. {( A2 n* R- g' p6 W; B& e; d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 }/ T7 H! q( B- d
; F* {4 F% K9 o- C
另外一个小建议,就是move,所有的move都可以这样- ]: C( v- J5 {8 }
if not move() then debug end& O6 S- V3 w4 t6 s: l' g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 B' A7 p. A6 O0 Tplant simulation中的free libraries有AGV模板,
4 v, e% I( H2 C$ m& {7 o7 r0 y里面也有案例。% |* X$ x4 e( ]5 W9 k  ~) g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- o3 u( ?* E7 V1 z2 m. G
; q. F/ @  R0 c" K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & r" t( V2 z& }0 L

/ t" Q( T' c  ~" s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ v+ A6 p1 ^+ O7 W) q  i5 s这是AGV_putin中arrive的method。3 C, _' W/ |7 c! \0 E5 G3 R* I

  k/ F2 E" c& ~# Y- l9 K当到达物料速度越高时,这个报警更多,
3 _  Y, O' w- K! B9 t7 E+ _$ z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-7 14:36 , Processed in 0.016242 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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