设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6413|回复: 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'
0 p, h! x7 [8 S1 L" ]! {6 _" H3 G*/
% h( Q9 h" l+ f  i3 vis
. z1 o: w! y5 D. H7 O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. s' D, u) B- ~2 S0 `# ?) ldo- p* d; [! m" B4 y
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 q* {# I4 Z2 Y6 b. M- o" O
        if current = @.Destination -- else return& H/ z6 N( F2 u: F
        then4 V; [4 {0 v, Q7 l
                @.Destination := void;
6 \0 n. ~3 W0 E( T9 B, ]9 x$ Y                if @.occupied then, v1 k) |7 Z0 n
                        part := @.cont;
+ s& |. R& W3 L* K' N7 G: K                        @.transpOrder := void;
9 X. H' i0 C! L7 P* {) T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 n: {- c3 [" K; Y7 g8 Q                                @,root.eventcontroller.simTime);
, [% q( J0 w- Y- D$ q& c3 X( F7 l                        @.HasOrder := false;
  z6 D- t) U: `" u, K                        @.DrivingHome := true;
$ k5 N. p' o! E/ x  g                        rgManager.tryToStartTransOrder;9 z: \& }( V: x1 \
                        if @.Destination = void: s, V/ R) a, @
                        then -- no transport order for vehicle @
8 [( R+ y2 M7 ^0 f* ~5 ^8 s                                @.Destination :=
( b% W& F6 e! x& S* _  E                                rgManager.nearestFreeStation(@,track.~);3 S7 p# |9 h1 }+ O; E( R% {( H) c% J
                                newDirection(@);   ) T: M: v5 r& d5 R7 Y  Q
                                if @.Destination /= void then
8 S/ E1 t; X+ J* T( z* @: e  S: e9 F                                        @.Destination.NumReservation :=$ A& J* A; A: t4 H
                                        @.Destination.NumReservation + 1;
. A6 H" k! X. d+ y3 u                                end;1 N8 b9 p0 m- o) V; r; u  V
                                @.CurrIcon := "drivingHome";1 b" l0 C- n0 y
                                @.DrivingHome := true;
/ o- O2 p6 R  M- e$ V- e+ e                        end;$ f: V0 \1 A7 k. \* i0 g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! E4 Q' k  g: J6 p: X1 ^1 l                        part := @.transpOrder;
& K+ L6 e1 ~" u% i9 r                        part.move(@);-- load part$ p8 y' _6 z) G( b
                        @.CurrIcon := "load";
8 z7 z; e/ O" V                        GlobalDistObj := part.globDestination;
( L4 |5 H1 i% ~5 w6 ]& y                        assignLObj := rgmanager.rgAssignL;: _8 o! P/ F9 }4 {+ |6 \
                        row := assignLObj.getRowNo(GlobalDistObj);2 U# V. _  w; j) z. s  l
                        if Row = -1 then -- since 70
7 h5 C6 _0 q- R9 Z) l0 m) v                                if lan=1 then
1 ]  _" ?2 B5 q: x; R! a7 Y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  N$ e8 z+ v' H& A4 z/ Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));! t! k$ N. e/ r+ _* @! F/ ?* {
                                else/ _- P. l5 d5 h& J. q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( j6 X) [) L$ X; V
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 y) p( B9 U1 X0 g, I
                                end;1 c8 r2 P! s4 t( t/ X, x
                        else
6 g- t- r5 v3 X  A7 F                                @.Destination := assignLObj[1,row];
7 V/ t: _) J- B  p8 U1 P. K                        end;                       
: |6 O% c. ?. I2 A; k+ f% c" X) A                        newDirection(@);- K# |- |3 R( o) ]3 ?
                        @.HasOrder := true;
. }3 E& e+ b: K/ s  p3 ~2 R                end;
; l( `+ b+ \8 f        end;
; k$ o8 K8 r6 cend;        -- of the method% `7 r- X  e/ {8 J! `2 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 B; }$ ~* h& I) u4 o

" l- ~" S$ z+ X$ ^! x这是AGV_putin中arrive的method。
+ q9 X% I& }9 H1 H7 W5 Y* N- }1 G  e7 i0 |4 T' i
当到达物料速度越高时,这个报警更多,1 K& ]  x: N# M! \8 d$ R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* h% ^  U3 c8 Z/ c5 G# v/ d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; Z( F. r# S7 `; K/ p  j
2 w2 }4 V- R3 @$ n' A0 `' _
另外一个小建议,就是move,所有的move都可以这样
! Z* }6 _+ v: ]0 @$ s! jif not move() then debug end# j- D/ D" U1 w1 B1 K/ M
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 \9 T" K" D3 y# G, lplant simulation中的free libraries有AGV模板,
, _% E# U! `9 b# _4 t里面也有案例。
9 _1 Q' j' e2 Q9 H  k  M/ J9 p9 }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ r+ x3 X1 A' S( g1 }2 [3 L7 i2 k1 G- h' C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 O8 w8 c2 n: x3 d9 l
4 @+ r- v0 \9 ~% y0 B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - _: z) e4 G' g. ~
这是AGV_putin中arrive的method。
9 Q; B' A5 `6 c; b
! B8 A( |4 p2 n2 D3 M当到达物料速度越高时,这个报警更多,
4 Q9 X  f! l  }, p6 K% t: p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-5 07:23 , Processed in 0.017403 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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