设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9621|回复: 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'2 P) W0 {. l% o' [3 S$ A8 ?( A
*/: W" k6 g, g! Z7 F
is
; R# B$ V5 J& }9 t3 I' q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% G# Q% S$ W* a. Zdo+ t8 v) {+ K2 `  p* B" ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
  ^" Y+ u' _6 |  I4 r# I) \        if current = @.Destination -- else return: q' k/ c& n) m3 B* ]0 y; q
        then6 E# j2 r$ Y7 y" e7 I5 m# v) p( ?
                @.Destination := void;
+ D, g* _+ ~% Q# n: M( y6 u9 c$ k& @% q                if @.occupied then
- z0 H9 u& P: d1 g" X( b% w: n                        part := @.cont;
  _$ I* ~  ?. F! C                        @.transpOrder := void;
4 `- k5 ?3 y  m$ ~                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 r& E# S5 m" j0 P                                @,root.eventcontroller.simTime);
% f' N5 |& w. w% d                        @.HasOrder := false;
- |6 W+ b9 ]& y% E                        @.DrivingHome := true;7 s$ r6 t, D8 y( C+ M" K6 `
                        rgManager.tryToStartTransOrder;
( W" q, }9 Z+ Y% i) o# `% p                        if @.Destination = void
  V& X" I/ @$ _2 ?$ O7 ~                        then -- no transport order for vehicle @
5 ^4 g7 f+ F  `) z                                @.Destination :=1 s& k3 ^2 Z1 X! a% Z8 W) o* Y
                                rgManager.nearestFreeStation(@,track.~);
* W* j+ Y3 S3 m( {; S  M. Q                                newDirection(@);   
$ w) M* G1 B; R/ L9 q& ]3 B( ?                                if @.Destination /= void then
+ e! V/ W% v/ e  o                                        @.Destination.NumReservation :=* _* }+ }0 W9 A' v
                                        @.Destination.NumReservation + 1;+ _9 G" o, t" l
                                end;
6 ?9 v' X7 ^+ f/ P                                @.CurrIcon := "drivingHome";
' Q9 _8 e! Z3 n( T" H# l/ o                                @.DrivingHome := true;' f" \8 h* R* N! M
                        end;4 x/ i& O; n2 Z" |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( C% M0 S! h- V- e2 P. v# D
                        part := @.transpOrder;- x. y' o7 d- A
                        part.move(@);-- load part
+ e, s( \6 y+ i1 ]( I5 R( G( n5 g                        @.CurrIcon := "load";
- i6 ?, N& i, V7 ]; }- Z                        GlobalDistObj := part.globDestination;. S" Y3 O( ]9 y
                        assignLObj := rgmanager.rgAssignL;
0 S3 C( T% r* j' q                        row := assignLObj.getRowNo(GlobalDistObj);& ~5 j$ T$ p5 P. r9 S
                        if Row = -1 then -- since 70
  w+ i0 p8 u  C, I6 [$ e) D                                if lan=1 then
+ t  z/ E8 \; {+ @( N. @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 f. q* [- D6 R( f# N                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 K4 G, [0 f" K, X1 i
                                else
6 q! M" B" F" L0 B) z/ Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 R) k7 @6 g5 l                                                to_str("in docking station: \"",?.~.name,"\""));                                + U- C5 V0 }) b4 S3 e; U* b: s$ v
                                end;
3 P- j5 E6 T: `) U                        else
: T2 C8 p; d4 h: U4 D3 y( H                                @.Destination := assignLObj[1,row];! \3 [. j) i: T! G+ L1 F8 c
                        end;                       
: A- }  b. Z+ h0 E                        newDirection(@);
5 w  g6 R; _( o0 C  |                        @.HasOrder := true;6 R. x3 b& J4 Y
                end;
9 J' L1 B9 d  k        end;
; ^( x" s- n: |4 K: `* Iend;        -- of the method
2 |+ o6 e) g+ Q) D; |  T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   c5 o2 C1 b0 Y$ X3 d* r) S

1 p$ h6 A; |1 C* q/ G3 Q# t4 I这是AGV_putin中arrive的method。6 r3 ?$ I7 X8 U2 m) v3 G
9 H5 ~1 E6 S: t" G
当到达物料速度越高时,这个报警更多,! J' \! e. M3 c! ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ m8 Q8 y8 ?+ D& r; ^2 p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* A: m4 U6 i5 s5 u6 u, m
# h% l3 t: A% R8 G, `另外一个小建议,就是move,所有的move都可以这样. {( g) S) \5 y7 _( K6 H) b- @
if not move() then debug end
' `& e7 |' z$ {, h' H; j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 b3 D* ~4 N$ m! \5 l9 i% bplant simulation中的free libraries有AGV模板,
  {: C0 _' |6 }9 C! }& {- w里面也有案例。! g( T4 G- ?9 e) o6 \1 @$ ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 q+ z" `" Y' ]* ^* O, D+ j6 A5 c+ _. ?
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 ]% d/ ^6 y% I6 O; B
0 ~" O6 s7 F$ P9 w0 B; C& n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 m9 k& ]1 V, N, H" O7 g) s5 N这是AGV_putin中arrive的method。
9 K# @7 a! ^5 K* |. T6 i
6 T! M# K% {, `, U# s8 a当到达物料速度越高时,这个报警更多,
% ^: F* ^" I8 Z* F. k# i, n/ P# S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-12 08:30 , Processed in 0.021019 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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