设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7125|回复: 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'
( x/ i2 X; W+ i0 i' b. f. S*/
# O/ F. C" _0 I, c" ?- O) Vis% \# h" n+ c7 W' R0 _4 v, Q' ~- i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 D( x" o5 j  Q# q& m  ^# ~
do: |' Q/ r6 n+ H9 M. L4 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 V2 m! j) M: e; B/ t0 `- |% }        if current = @.Destination -- else return- R0 b% I. B9 L1 R- f# _
        then" {; w( P( C7 V' [0 h
                @.Destination := void;
8 G8 a3 R# }: v7 \9 Y5 I% J                if @.occupied then
7 g. c' w; A6 N7 O' G: p. h                        part := @.cont;) ^* d8 X0 M& ^8 _* x# o& p
                        @.transpOrder := void;
1 {6 a7 q( Y- E; M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, f; J( D! z# Z! b0 [0 G" P& F9 [
                                @,root.eventcontroller.simTime);
: l( }  l' s7 ?                        @.HasOrder := false;  L0 X/ M% Y7 A5 x
                        @.DrivingHome := true;
4 M7 V% b1 A+ m/ I# c. v* W                        rgManager.tryToStartTransOrder;" n: d& A. `8 H8 d" Z
                        if @.Destination = void% h, |9 m0 C9 T, R
                        then -- no transport order for vehicle @8 W5 M0 e! y  _3 m, |9 l
                                @.Destination :=+ @7 b, V: `: X3 @& P1 k8 M$ l
                                rgManager.nearestFreeStation(@,track.~);% W2 q6 I+ H; k! p4 m1 J
                                newDirection(@);   
7 l# O) T- j3 h) f                                if @.Destination /= void then
4 r9 |) F0 q$ K0 ~2 [+ D" c                                        @.Destination.NumReservation :=
) T' {; |* y8 P! `" |                                        @.Destination.NumReservation + 1;/ a" e$ [9 _$ i/ \5 q3 ?
                                end;
0 u0 X7 ^* Z+ u- V' u5 L6 b                                @.CurrIcon := "drivingHome";6 A3 p# K' x. M4 y
                                @.DrivingHome := true;: o! @1 u- P7 ]! T
                        end;3 Y8 N. s7 @' n  d" U/ A6 Q. g$ A$ C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" c% Z7 d: r( }2 d$ P; z- I- x                        part := @.transpOrder;
% J4 n  [, p" X# Q                        part.move(@);-- load part
7 V, ]+ e; g; x; e7 n0 ]; M                        @.CurrIcon := "load";
6 C5 @: j* e: U0 `                        GlobalDistObj := part.globDestination;" n6 j6 O  h, n  \2 h  W
                        assignLObj := rgmanager.rgAssignL;
  q: |( W' n/ L8 o* c  S                        row := assignLObj.getRowNo(GlobalDistObj);. n; w- R5 z3 k" F0 w1 Q  d) g* D
                        if Row = -1 then -- since 70# N- C- G1 W: a8 z& K
                                if lan=1 then
8 A# Q1 v" z- c9 u( I; \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 R! t- V2 x, w3 N' P" @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 x! b" j8 p$ I- D9 [                                else: \' z# z* H5 \5 |6 v! p' Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 U0 L, o7 b. I" c$ j                                                to_str("in docking station: \"",?.~.name,"\""));                                4 ]) Q2 q4 e9 o0 W
                                end;7 r4 m2 M" D8 |% d" H$ X
                        else! F9 h0 Y' U" l! T
                                @.Destination := assignLObj[1,row];3 Q0 B9 v5 L6 v2 Y/ y, ~3 h
                        end;                        2 i; K6 N7 C3 q
                        newDirection(@);0 a/ g8 q  W  \8 ?& ~
                        @.HasOrder := true;
' `# p8 E/ q, l" T9 p                end;9 W6 w, b5 {! |2 l% X0 I- C; p! H' g
        end;
8 b; t' t/ P* U7 \end;        -- of the method( Q  P- b: S! t1 i; m' I# X. p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . O# ?" U. n) `# R$ p

# J% E! f' o: G+ P; L" b: `2 a( k这是AGV_putin中arrive的method。& w# a& C: L( C0 K) Z

2 G; @& y& t0 ?, B7 z) C; d" j当到达物料速度越高时,这个报警更多,! V/ {8 `3 e2 E; f9 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" d5 h+ S: J# X9 b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 r( z- p& i2 B8 B. t
$ \0 I1 o) `1 t2 M7 J6 d
另外一个小建议,就是move,所有的move都可以这样
( o7 o- G( [6 _$ M5 jif not move() then debug end
, }% l# V2 ^- y& H4 M5 V$ v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" ~4 H. b1 o$ a% v' \
plant simulation中的free libraries有AGV模板,
- j# j0 ^, m  `里面也有案例。
9 e# L9 w* U% A; x( p- m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- c$ X5 z" C6 t$ X

$ d* ]$ i( T1 }  J5 C" X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ d- X+ ~$ e7 s7 R' }
1 J: v- C+ ~" n$ x4 D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , T; B& P3 j/ S) N  |
这是AGV_putin中arrive的method。
% c3 O6 {& E) c3 G& q7 C6 J8 ~* A- {
当到达物料速度越高时,这个报警更多,
3 Q$ F& l% G) I8 y- v4 V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:50 , Processed in 0.018077 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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