设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6186|回复: 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'
7 J: e# ?0 J& Q( f4 B: C*/4 Q4 q: G; M8 `2 r9 ^
is
- Y3 U" f5 v% u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 ~, I% F- f. p+ m- zdo
8 a! m& ~/ i9 q        Lan := rootfolder.Internal.Tools.AOLlanguage;, ~0 p; d6 N" r9 |$ s7 {
        if current = @.Destination -- else return. f8 I6 `' k2 n1 W
        then* s# I; w' u6 \$ E+ n0 o: x
                @.Destination := void;
  B& v& \( q* ^+ s0 t% P+ [: {                if @.occupied then  g9 S! `3 P' P' X
                        part := @.cont;' ?( s7 ?/ l* r, l1 v% q- V; O7 s
                        @.transpOrder := void;
! A* w' t' q4 W% V% W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 N0 |% k$ P! v- J4 o7 X
                                @,root.eventcontroller.simTime);! B" J1 J7 w* f- \3 h0 p! J7 i
                        @.HasOrder := false;
- ^, V# a, a$ y) T, o                        @.DrivingHome := true;' ]/ o% @/ X$ [  x  }; z! o1 L
                        rgManager.tryToStartTransOrder;
' ?( J) D4 C! J                        if @.Destination = void0 f0 I! l; p+ M8 ?$ o0 k
                        then -- no transport order for vehicle @+ A) V- |# O& J: L& t/ B. N$ ~
                                @.Destination :=8 m# n) a9 A. \' {5 \
                                rgManager.nearestFreeStation(@,track.~);2 ]+ I, O, l/ p1 ~
                                newDirection(@);   $ S- R, H) k5 [* n8 w" J) F+ B, T
                                if @.Destination /= void then0 j7 d( D8 g+ g' m* R7 `
                                        @.Destination.NumReservation :=
- D1 {6 d5 |; v3 d1 v6 s2 v                                        @.Destination.NumReservation + 1;
4 N& d9 [7 N  }                                end;
8 Z3 }5 w1 |  ], }                                @.CurrIcon := "drivingHome";
: P# W% E; g  i) b; t0 D                                @.DrivingHome := true;
# L$ I1 j: O5 z/ `                        end;
! S" ]1 v9 c  i7 G# e                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! N/ f! a4 ?/ D8 \" t, s$ A0 s& Z# I
                        part := @.transpOrder;
6 S+ l8 s8 C" q: j+ d5 Y! {                        part.move(@);-- load part! v2 N; k4 |' G% V' N. w
                        @.CurrIcon := "load";1 T" ]& r. o1 U% {: t9 D! K
                        GlobalDistObj := part.globDestination;2 z! G! ]9 g' A: v
                        assignLObj := rgmanager.rgAssignL;' x) ^) Y( g6 e+ z& b* N- o
                        row := assignLObj.getRowNo(GlobalDistObj);7 l5 j& @* i& [! a! B' ~! z* O2 w5 B
                        if Row = -1 then -- since 70
/ |+ j; n* u# v* J4 ]                                if lan=1 then
/ U7 R4 f: q2 r                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ d' S: r% z) S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 d2 [: R' q/ p) c                                else
% [" q" g+ L6 k' z# v( p9 W2 p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 J. O' p1 g: j  }& \
                                                to_str("in docking station: \"",?.~.name,"\""));                                : m5 ~. V% y% e0 u& ?. Q7 m
                                end;7 \8 g5 z3 G& [1 f4 k- B$ @
                        else3 L0 P( U" a3 m# i( N( W
                                @.Destination := assignLObj[1,row];, J$ a1 n5 M5 S, C) R
                        end;                        6 E# E" M. C: g' j0 c6 T  y
                        newDirection(@);, x6 ~) I3 p) d2 D8 ?7 a& i
                        @.HasOrder := true;
; W3 [% p  \5 U' N; }# U" m5 }+ b                end;: e9 c: Z! m; L3 P+ P6 k$ w
        end;
, @7 f8 }. _" i" q( _, K2 X9 y1 b' kend;        -- of the method$ p0 W+ `4 ?7 j7 V% z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' u9 `$ Y/ b" T2 L% L6 d" }$ v' z8 V1 p2 u
这是AGV_putin中arrive的method。( L9 p7 ~! A( h3 Y5 e

+ J. \$ @8 i! F% J( p当到达物料速度越高时,这个报警更多,
+ y" }8 _1 W9 R7 G可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# j' |4 k$ k4 O; {& {! t& {+ j- k; ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 R  `4 T! p) P) e2 a0 E* G* ?  y7 O7 D2 e; g1 L6 o7 _
另外一个小建议,就是move,所有的move都可以这样
0 p7 O* L! b  S- X5 o- E8 Oif not move() then debug end
8 `0 b# Z/ h) j; T3 w. g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 t6 {0 [5 A* U. M4 Dplant simulation中的free libraries有AGV模板,
0 X! S5 B6 q( s2 |3 q& u9 h里面也有案例。0 M/ h! r6 r& d: }" R; V5 r+ t
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 b6 e' d8 C- F5 Z1 t0 S, u9 L' e$ B4 N% E/ {! P* X
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! R; a3 G$ d  ~) }0 N/ N3 H
4 q/ y; n: }& L9 @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. s% N( }% s- N/ `# }! H' ]6 w/ S9 t+ B这是AGV_putin中arrive的method。
% G: w2 D0 f, v. U, p" ?% l$ G0 Y1 @& u% V: Y  W. M
当到达物料速度越高时,这个报警更多,
5 d5 p# o* w% B* O; V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-23 18:32 , Processed in 0.020346 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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