设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7894|回复: 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 M6 r* N8 ~, a: [*/' h8 i  {0 f  \0 |, }
is" x/ \/ Z' G: u1 t3 k2 e0 D1 Y1 X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* R  T; k5 X2 m6 [6 Hdo
: \/ F% |& W+ E        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 D0 F% ]" s: X( N% S        if current = @.Destination -- else return
/ k+ R. ?+ p# k0 i7 r        then
8 Z% L8 h# b/ n                @.Destination := void;
9 O1 e: \3 P& q( b! ]" n                if @.occupied then
: ?% L6 A3 x! o; K! x$ f: W                        part := @.cont;! X8 J+ b; r: X! I- N
                        @.transpOrder := void;% [; |; V  y" E5 f9 _# x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" i! W/ \7 z2 `                                @,root.eventcontroller.simTime);  s* y" L5 I( i* c9 \5 A; `
                        @.HasOrder := false;* K, ?9 d. [" P; j
                        @.DrivingHome := true;
( h% m* ^: L1 r# z                        rgManager.tryToStartTransOrder;
+ c3 ~. ]+ e1 a% ?. \                        if @.Destination = void- J% t& o$ P+ J9 ?
                        then -- no transport order for vehicle @
& c( @" x* b$ I, t                                @.Destination :=
- f( W7 N( j( s                                rgManager.nearestFreeStation(@,track.~);; u- O, Y0 c: q0 G8 d/ P) @9 l
                                newDirection(@);   
3 ]2 Y( \8 C( q8 f6 T                                if @.Destination /= void then
, G2 K. M1 v3 Y- J( h9 G+ ^" {$ c                                        @.Destination.NumReservation :=
3 F# |: Q6 {+ L( z                                        @.Destination.NumReservation + 1;
) @, }% P$ D% `, P7 C                                end;2 ^* r! u4 |- }  J# F0 _
                                @.CurrIcon := "drivingHome";7 j6 s9 w( v/ X" h
                                @.DrivingHome := true;% x$ m$ m1 |, i- g7 ~, w6 G' o
                        end;( j: B  `+ k1 K4 |! z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" y& |0 i$ u* \) e1 {
                        part := @.transpOrder;5 V* @& j1 M/ U( I5 d9 @* [
                        part.move(@);-- load part
% }" X6 w; f' t2 ?# h                        @.CurrIcon := "load";
4 `  E& O  V' {! f* L+ g                        GlobalDistObj := part.globDestination;
/ M; l6 ^7 H+ Z0 g5 {% i                        assignLObj := rgmanager.rgAssignL;* L& b' W0 u) y3 e4 S# l9 C
                        row := assignLObj.getRowNo(GlobalDistObj);
3 X% G& z* v: ~& ~+ j1 N% E                        if Row = -1 then -- since 70* |/ a9 A" P" \5 }5 B
                                if lan=1 then4 z( ?1 ?% l: X$ O" i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; M! t. ~8 d  D5 n/ E! U: }2 F                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 o9 Q. K- W9 P
                                else
1 `+ _+ Y. U9 J1 r- x, D  y: s2 R5 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; u0 ]$ e& o1 G1 {
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! h5 Y0 S0 F. C/ J* z                                end;: ~6 U7 H5 E6 {! X' w
                        else
% o) G5 u) g3 ?8 `5 I3 U                                @.Destination := assignLObj[1,row];( E* R8 Z% F  y
                        end;                       
2 Q0 m# \6 E5 F8 ~0 M& b                        newDirection(@);
! M% Y+ ?" U: n# X                        @.HasOrder := true;
3 p0 @+ C' S2 v6 S                end;+ P9 _6 H: N0 X
        end;
6 j$ M/ X% u: ?( Eend;        -- of the method4 e4 w& H& i  m& j+ Y4 [) D- T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' Z2 u. O+ T9 h
6 T/ H1 S& _3 m这是AGV_putin中arrive的method。
% K( e- b1 x: {* |, h, C1 |
; f( b$ Y' ?! d  [3 V7 B6 U: l$ ^当到达物料速度越高时,这个报警更多,
# n8 I3 L. G+ l, [* q0 T4 B+ i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 r. M+ m7 Y) Z$ O; S* ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 M% O' U8 M/ z9 F

3 r- d! I2 P: x; }5 P7 I$ a) V7 x另外一个小建议,就是move,所有的move都可以这样& h, P$ X+ l7 H! B7 w
if not move() then debug end
! N6 `& m# G* v, Q, S* V# R- `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" ?5 [! P; `# N  X2 Q5 Q9 a
plant simulation中的free libraries有AGV模板,
: w5 V0 U7 [" }' l' _# E里面也有案例。( I1 `! L; L7 R: E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 L( G4 M- A5 l% k& S

+ d: J/ O5 X+ _' I# F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  f( w7 l' ?% c, d' I5 }$ W; P# j/ b. n' t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 i6 T8 n! ^% v: a4 }: T
这是AGV_putin中arrive的method。
+ O  u7 c7 U8 E& |4 j9 l
/ v( q; ^: r- W+ j1 ~当到达物料速度越高时,这个报警更多,
  y! s! B: H  X. z! I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-3 18:05 , Processed in 0.020559 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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