设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10264|回复: 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'
# s& @1 J3 q' n$ a*/
2 k( V6 \1 K% A# k" v1 Bis
0 C, g" [- V; C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, {0 j3 l/ i2 c
do
" x: b% E2 ?$ m        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ ~) p. B  q6 g1 d; v# d        if current = @.Destination -- else return
0 q' [( G2 c- J5 E        then$ e& h, s" g# ?# e9 D
                @.Destination := void;
3 D+ O3 L7 f0 G6 B                if @.occupied then& \( |  C8 i- g) [8 f* X
                        part := @.cont;
4 g: b6 }4 x1 I, c                        @.transpOrder := void;1 U3 J/ _1 L. C4 I7 @. }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 l- \6 v) ?& S; D                                @,root.eventcontroller.simTime);
  n0 D: x% i& _" A                        @.HasOrder := false;3 K3 {( ?6 Q  O6 J
                        @.DrivingHome := true;
  F; r5 @; ^9 |! Q3 h4 S                        rgManager.tryToStartTransOrder;/ a2 a+ I. g; y/ t3 G
                        if @.Destination = void* [$ i0 l8 B  `+ P1 U
                        then -- no transport order for vehicle @
& Q3 `7 q* s8 x& |# o                                @.Destination :=5 r' t$ y: R1 J
                                rgManager.nearestFreeStation(@,track.~);, T! C4 G) e0 R. A; \0 U& X2 P: U
                                newDirection(@);   
; O1 N# n6 a3 |: P3 r                                if @.Destination /= void then
: g" o! y% |- X9 |) z) z& c* c                                        @.Destination.NumReservation :=, ]/ ~7 e- Z8 j7 x! |5 m% ~
                                        @.Destination.NumReservation + 1;
! \+ i# L! y! m1 n2 ~! H$ v" L5 {0 [                                end;; p3 O! ^  c+ J, O) u+ e* W( U
                                @.CurrIcon := "drivingHome";
) B. v7 u% _. K/ B; V0 ]                                @.DrivingHome := true;
! J% C. N+ [4 A                        end;0 J  r3 ?5 u: `4 y& @7 e! G
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 a& U9 x, A/ r  k5 y, O                        part := @.transpOrder;
+ i+ K& H6 }' m3 Q                        part.move(@);-- load part
4 ~: X5 B# n4 f! D; Y; V$ P$ X! c                        @.CurrIcon := "load";
$ s/ G, d2 X) d" r                        GlobalDistObj := part.globDestination;
0 U& v, |1 A3 T3 f" C7 M) G                        assignLObj := rgmanager.rgAssignL;' q5 g7 G( R. K" z
                        row := assignLObj.getRowNo(GlobalDistObj);* e' p; {% X# ^. Y
                        if Row = -1 then -- since 708 X% ?# h1 K, d+ s6 h$ e! S
                                if lan=1 then
' S+ w7 v% h* h% i' v9 Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' e) ?, D5 r) |* `; E! k                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 X; ~3 i( Y/ \: W- l  }
                                else
" ~! Q) S# n( E0 ]/ ?5 U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. x* Z9 @$ x/ ?; Q; c' {- t
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" A% ^1 q3 o# p2 x3 g. a                                end;  _. B# G& Z/ V- x8 \' q
                        else3 Z- I$ t% q' p% Z9 [' b
                                @.Destination := assignLObj[1,row];
4 \* l7 p% K+ z8 ~% s. z4 F                        end;                       
+ C" [9 u' J, W  w                        newDirection(@);# T3 r7 }6 \2 B2 D6 c
                        @.HasOrder := true;4 _/ E1 l/ k9 z- h) J5 ]
                end;& a+ E$ w/ B9 }+ h: u% T6 C6 g3 k
        end;( V3 I: P( c1 U" G/ V
end;        -- of the method: @4 V; c3 Q, c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) P  u: e  ~' A: P5 _" n' [
& T4 D3 v8 B1 h+ F这是AGV_putin中arrive的method。
; ]! b4 m/ s7 o% L' C
2 j" F  s$ v2 D- G当到达物料速度越高时,这个报警更多,9 [& d3 F9 W8 w) g  ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( I6 ^9 e* Z0 R2 s7 M* [. U: c$ c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% I" ^" v6 x8 {, j5 G& ^8 e- V2 ^
. V5 m5 l0 q0 U) G
另外一个小建议,就是move,所有的move都可以这样) P, Y0 u9 a, J
if not move() then debug end
* A, q+ ?- w* k+ P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 F5 C$ M- a3 E* Z  k: Wplant simulation中的free libraries有AGV模板,
4 F+ k' z: p2 z2 F5 X: M) J里面也有案例。
2 n6 g7 R" @. _5 M* s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) q7 T/ @3 ^/ x
% [! ?7 y- j, \" g: r6 E! G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . D% N* C  a- ]: [( S& p8 I, P

7 I; P) D# B! w. G1 v那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  J, }/ ~+ ^! s# [# [) i$ ~* J这是AGV_putin中arrive的method。
& M7 G+ }: |* s0 d' [% p/ J
4 q3 W; @* r- S$ f当到达物料速度越高时,这个报警更多,

5 }. O, }8 _6 Q! v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-23 11:18 , Processed in 0.032719 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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