设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5823|回复: 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'# e' f1 ]8 H4 j5 u
*/
* H! ]- [# P- I6 w6 u* U6 F8 mis
( O. c  l# c, {4 ~  ]% Y$ ]  L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& C  ]& @8 r9 z! p6 D$ Vdo
) f  r, x2 E3 C        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 ~" A& j# H4 _' w        if current = @.Destination -- else return! f4 z" c6 t* e3 P5 s- D! p/ c
        then/ B( {9 [. c. z7 r2 g
                @.Destination := void;
3 H7 @$ f+ q) L) X                if @.occupied then2 ^+ S/ Y$ B- D" U% A9 L5 Z
                        part := @.cont;
! Q* h* s4 P1 m! g+ a+ d! y# h+ ?                        @.transpOrder := void;
! j3 d, Y6 l% g, f) S, `                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# y0 ?7 ?: \* S; X# q                                @,root.eventcontroller.simTime);
0 H! w$ }  B: _; X4 @2 E% W) W                        @.HasOrder := false;
' r: h3 S) B" i* y6 w                        @.DrivingHome := true;
5 `) I, D, ?7 X                        rgManager.tryToStartTransOrder;
) {) ?# b, Y, N3 j- a# \                        if @.Destination = void
' \% {8 N5 C+ T                        then -- no transport order for vehicle @
  m6 G# Q; {% y2 [                                @.Destination :=
' s, h- @( X' c1 f                                rgManager.nearestFreeStation(@,track.~);3 ]1 C- c% U$ f* d: q5 ?
                                newDirection(@);   ( k- o  I9 t% e" @' _1 C- _
                                if @.Destination /= void then( ^0 V- d- ^8 U0 z4 I, G7 `
                                        @.Destination.NumReservation :=
2 ^# P& n$ y1 p1 x  a- b' e. q                                        @.Destination.NumReservation + 1;
) E6 T( {) k+ j4 O' _1 j% H# a                                end;
: o; y4 \% z  J" J                                @.CurrIcon := "drivingHome";" ~' O/ |/ D8 W4 [: ^
                                @.DrivingHome := true;. b3 I9 J% _/ I7 U  [# y$ F
                        end;6 A1 m$ e5 g0 g0 \
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* [; I6 Y" T, n* F! g; v( c; H3 D! I/ _
                        part := @.transpOrder;
4 ]* P. f8 l) Q  t4 @                        part.move(@);-- load part% O$ x* I' G! _% z7 K; \
                        @.CurrIcon := "load";8 ^, r3 p8 d" H& ?1 B
                        GlobalDistObj := part.globDestination;( M. e+ b: V6 \( S- B
                        assignLObj := rgmanager.rgAssignL;
2 t7 _9 u* c; r' s, X% E                        row := assignLObj.getRowNo(GlobalDistObj);
) J1 q! [/ V4 v                        if Row = -1 then -- since 70/ E1 X9 O0 |, l; Y  x
                                if lan=1 then
3 C9 C" B  ?) d, P* w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* N* r4 z4 h5 J6 W7 B1 d* a; [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 c2 r$ ]& A* O2 B+ X  F8 |& Z
                                else3 X* I" O* O6 c# W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 D5 q7 r7 R+ W. m" f- p, a* S                                                to_str("in docking station: \"",?.~.name,"\""));                               
) e* @' E# y( N& ~, B- X                                end;
; X1 F( a! @( A. G" [. L                        else
/ y; E: K- S; H1 D                                @.Destination := assignLObj[1,row];
& u, H& l: C3 L+ ]2 s                        end;                       
0 m' q; Y% l1 z0 N' [                        newDirection(@);
/ i9 E  X1 W# ]                        @.HasOrder := true;2 d1 \# f+ p# e! y  g2 J2 e
                end;
3 W8 B  v6 D9 ~3 |( S4 ?        end;
5 d+ Q: ?, D1 r$ }end;        -- of the method
2 u7 L! p* o3 ]0 ?* a( g! c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( X, Z5 d- n# ]6 b- U4 Y; M: M$ r* l
这是AGV_putin中arrive的method。
  R) j; h/ I7 v2 n+ z  ~; Q- W
" E. {- {: K4 l* l7 w+ I8 R当到达物料速度越高时,这个报警更多,
9 \* g- G2 \6 s3 h" X6 Y  N: }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' B, L0 i; j6 V; j' x2 x; N1 x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. C, T1 @0 ]! ^  P8 W9 Q, ?! D' l/ M- [
: \' i0 v5 A8 |5 z另外一个小建议,就是move,所有的move都可以这样
/ ]9 J$ M# n- w) \- ?% fif not move() then debug end7 F6 i7 D$ M* G* `* O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 s" y% p) S1 P/ z: L, t, \- K  r5 Bplant simulation中的free libraries有AGV模板,
7 T5 A8 _: |9 M2 l6 X& ~里面也有案例。
& [1 r$ K0 z. P' G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 L( l. D7 L  E- H1 f1 k! ~# }$ N

4 G5 T0 u$ w9 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 S/ f: R3 j1 y: E1 I$ H

0 W2 H6 Y3 C+ ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 P, n8 b4 f# O8 ?- y3 G8 b6 J
这是AGV_putin中arrive的method。
! r, C' q& S+ |
" P9 e9 @5 K# C2 h; N8 L当到达物料速度越高时,这个报警更多,

! d8 I; _8 h7 }( [2 q7 ^* L" m6 D2 p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-23 23:25 , Processed in 0.019503 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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