设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7094|回复: 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'
# i, K6 e5 a7 L4 ?4 E" J. q- J*/9 m; t% I* Y) p2 d6 o
is+ d/ ~8 Y; o% D$ g, V; o. w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 p4 a$ U' w5 u8 ^" f
do
/ P+ u$ K. f- J) P. x! p5 V        Lan := rootfolder.Internal.Tools.AOLlanguage;% w' u* ^2 M! B
        if current = @.Destination -- else return, v3 U( F& k4 p3 E5 @
        then
' Z4 P: h: M2 _5 g                @.Destination := void;  K3 ]' T% }9 ~9 t) ~2 G
                if @.occupied then
5 \* W6 @% H! Q  ^1 @                        part := @.cont;3 g7 V" G  j) I& r
                        @.transpOrder := void;
; n" ]2 ?/ |) V; ~0 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- V) B& f8 m9 I
                                @,root.eventcontroller.simTime);
& K+ \, W; j4 C( \% R. V                        @.HasOrder := false;
7 \0 C2 I; i+ M                        @.DrivingHome := true;
/ c9 `# ?- m: x/ N                        rgManager.tryToStartTransOrder;" f( d9 f+ g. f
                        if @.Destination = void/ z. q  I! {0 @! }2 }
                        then -- no transport order for vehicle @5 U$ j( R8 Q2 ~
                                @.Destination :=
+ f! b( |- @8 e9 \; u* p                                rgManager.nearestFreeStation(@,track.~);
$ i/ |5 c6 }3 D                                newDirection(@);   ' F  R+ u) R3 b
                                if @.Destination /= void then
4 `5 M( `' T1 o! j+ B6 Y" m+ S; M5 B                                        @.Destination.NumReservation :=! _4 [/ B1 C; u& O4 @
                                        @.Destination.NumReservation + 1;
& b$ Z' q: N2 E) ], V                                end;! _, y' m: ~( h7 s+ y. H( ^, a: x* r
                                @.CurrIcon := "drivingHome";
' g! P3 e1 R$ p' c7 K8 W                                @.DrivingHome := true;+ U1 W/ q/ U9 L  R
                        end;! d" Z2 c' ]! J( {' l
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" y0 v2 m+ d9 A: Z3 x! b# Y
                        part := @.transpOrder;" f: }/ {7 Q4 u0 r! B# |
                        part.move(@);-- load part
0 D! m$ h" d: ?4 ^* W- e                        @.CurrIcon := "load";9 Q" G5 I. E# W' x
                        GlobalDistObj := part.globDestination;; y* u6 B7 Y( [& {* r
                        assignLObj := rgmanager.rgAssignL;" @0 \2 D2 P/ N4 m% K1 J
                        row := assignLObj.getRowNo(GlobalDistObj);" I8 o1 C- U( u
                        if Row = -1 then -- since 70
8 G% Q% x% ?) G, X; S- ~% H                                if lan=1 then
5 P# w$ k8 f* o) w1 i9 |1 L+ |" |; v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ j% t9 {- N3 W- N' V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 X1 I4 F1 @$ F! n( c) e6 \# l                                else
  S/ B6 R0 o0 O4 w3 j2 n3 `9 y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( C* D1 K5 b# K9 r" \4 V                                                to_str("in docking station: \"",?.~.name,"\""));                                % q. d+ @/ ?$ W" I  |# H& z- X
                                end;
, d5 b6 n6 Q% Z+ ~                        else# N. F& E% V  v/ I- a
                                @.Destination := assignLObj[1,row];
/ k4 b0 N- h* @& ?6 p                        end;                       
# n) J9 a! c# D% n/ [1 x% A                        newDirection(@);
* `9 F- p: z/ _& p. `5 w                        @.HasOrder := true;
8 t% v- J, Q" G( s                end;, h  A! I3 Q3 I. G
        end;
$ X- d7 [- Z* A# H- @5 wend;        -- of the method
/ K  R7 G8 \6 `" x6 P% d2 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 a# c4 X) X2 @; P5 A6 O* K" b
0 Z8 s0 P3 O+ _0 |5 e这是AGV_putin中arrive的method。/ I% Z/ ~' p1 V) c( {* K8 |( S

1 ]' R8 L/ a: a/ L( ^当到达物料速度越高时,这个报警更多,) O& o1 m( _5 ]' v# V; p" l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  H* @- O' }* I/ ~
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 h7 V5 x9 [7 l( T8 a# j

5 Z1 T7 q8 E& H0 z7 d/ M另外一个小建议,就是move,所有的move都可以这样$ H+ q* A1 t  O% p9 w, h0 f
if not move() then debug end
0 j. D) ~( O1 |( e) h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 D9 ^0 ^4 I; F- x9 `+ v
plant simulation中的free libraries有AGV模板,' T" i) P  H7 Z, H/ |! G4 P+ ]) c
里面也有案例。
% _, N5 m, g. U: d/ y' S2 G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' o" X/ I! h. ]0 M- A' d
1 L) o5 T& Q* Q" z; e4 o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' s5 Y0 e" P% ]$ K, I( l* Z$ D
, _9 N5 O+ e* |1 F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# o- I. b1 R4 b2 X) L1 r这是AGV_putin中arrive的method。$ ^" J7 O$ J; {( s. S7 G

4 w  b8 J% {4 Y, T当到达物料速度越高时,这个报警更多,
% a; S. D- Z3 y; H1 D# O: ~5 s# R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 06:26 , Processed in 0.022861 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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