设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6974|回复: 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'5 Q$ r; n: e! m9 |- P- h8 V
*/% V0 w3 P0 j9 l5 C5 Y- b" ]
is
- i/ |  O1 V, v* M+ j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 l9 k) ]8 e  ~, Rdo
8 _0 C) W- i$ {1 ]        Lan := rootfolder.Internal.Tools.AOLlanguage;- c! y+ \* q6 B7 o5 p* W$ s: z
        if current = @.Destination -- else return9 \! }* K" R7 e% q
        then- ~' w; o8 @8 w" ]  Z) @
                @.Destination := void;- ~/ \6 G% v1 L9 \, D5 J. s
                if @.occupied then
% H! T' f5 f2 X" G5 B2 f% H                        part := @.cont;+ G0 k6 _1 `# a4 _0 k
                        @.transpOrder := void;) p5 I7 B, m! q4 O
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ C+ O9 H! L5 C5 g8 J; s- h: H0 {0 z
                                @,root.eventcontroller.simTime);
  c4 t- E7 J  m% c1 @7 x* a                        @.HasOrder := false;
, z8 }  F) `( V: T- b                        @.DrivingHome := true;! ]  U" D4 J1 I# r: s* B
                        rgManager.tryToStartTransOrder;+ ?  a6 S1 x  R
                        if @.Destination = void1 u$ m7 ~8 b3 l8 Z( u5 j7 B7 j
                        then -- no transport order for vehicle @
4 K2 R2 ^7 ?2 C) v                                @.Destination :=
/ a: j5 d  w- v0 k                                rgManager.nearestFreeStation(@,track.~);
& d+ e7 H; v7 |5 M: a; F3 l                                newDirection(@);   
1 \0 R+ Q: Z4 c! a0 v9 A8 K                                if @.Destination /= void then$ [8 z3 {# a6 l1 Q) [
                                        @.Destination.NumReservation :=
) F, S: r" H/ C, B, k( W2 g                                        @.Destination.NumReservation + 1;
# w, {. p$ V" c- j* s/ j                                end;5 k. I! G# V9 N& h" i7 o
                                @.CurrIcon := "drivingHome";$ h8 d2 g, j5 c; j
                                @.DrivingHome := true;
; T' G. @: k' X" |/ u( M                        end;! r+ b  u% m0 J' R4 t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* T  C3 @5 {% B3 u- N* e                        part := @.transpOrder;3 h5 [- R0 A# I4 I& s
                        part.move(@);-- load part6 C2 J8 F& {2 [0 j3 v* x  V
                        @.CurrIcon := "load";
/ S6 m, p( b( ]8 X; V" c                        GlobalDistObj := part.globDestination;3 E" j& p1 g5 t- u- C% ]; `( X/ `
                        assignLObj := rgmanager.rgAssignL;
, E) s& a* k# x, G                        row := assignLObj.getRowNo(GlobalDistObj);, R$ s' Z% r% Z% y3 c; |$ }3 K
                        if Row = -1 then -- since 706 d& ~$ r$ m0 E7 ^1 Z# _
                                if lan=1 then+ }8 q) o) k# S" l' g& G. p. q1 f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* L; J$ I+ _, _* \, g( o+ P
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; W. J3 u; z% T6 e                                else
7 N/ m3 e7 O9 O3 D- R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' `2 ]3 N( L4 G9 ]/ H% |$ `- {$ y                                                to_str("in docking station: \"",?.~.name,"\""));                                5 A2 G6 D; p4 @+ P! K+ ^1 q
                                end;7 h+ w8 D5 z$ b- A1 c
                        else
1 U; g' {  J( `' G4 [2 u* ]                                @.Destination := assignLObj[1,row];5 B/ z& f& j* _2 s3 ^% x
                        end;                        : q7 i1 e) v# G- U
                        newDirection(@);% m7 R, _8 Z4 F- @( t5 w
                        @.HasOrder := true;5 n1 X; O; W" w. }
                end;
9 g- I1 M. s6 g5 O        end;, v/ F3 s" i: J8 x
end;        -- of the method0 `2 ]( W- m$ \3 P8 t6 u, m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ A9 R, K$ E: B+ Z! Z) {6 G: p& g# g, ~; P$ k. L# Y: G* c/ ^
这是AGV_putin中arrive的method。
' T* j! R# }$ g' O- ?8 a) H
0 Q2 `3 E9 |4 a0 z" w当到达物料速度越高时,这个报警更多,7 m+ O2 H- x0 X/ e' S9 l7 @1 h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. F9 [' @  o9 S7 T; ^/ U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 @# d2 |5 ~2 m  }
8 M0 ], Z+ b: u$ Z- K$ V4 a
另外一个小建议,就是move,所有的move都可以这样- X8 k, \+ C4 X0 ?4 f" A, G
if not move() then debug end5 ~8 P$ z$ t( J1 V% \" j+ r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 c% l# C- S$ _1 [, _' Fplant simulation中的free libraries有AGV模板,
5 i9 Q; I  [4 v) }" z* `& j% C' u里面也有案例。
7 x! j. i6 N3 T我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; E  d' f+ [) i) Q; Z; [
+ E( ^4 X# \+ N6 X6 ^2 H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : c5 c4 F- ?  d9 w, c% ]
' \. |+ D$ u. k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; Q5 h- q, ~' U/ @3 H
这是AGV_putin中arrive的method。
" v4 Q" b& L' t
* k, s! w  o3 \6 O* j+ @; o+ q当到达物料速度越高时,这个报警更多,
8 B" |' o3 v" o1 B) |; i; z$ |' F9 I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-9 13:37 , Processed in 0.017028 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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