设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8677|回复: 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'/ o, _, u4 n1 n% y6 q
*/
7 H% ^. {3 ?- X2 A$ @  S% Pis
  p; k7 Y+ S0 `- f/ K7 \! ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 J7 y$ V7 `+ O; gdo
2 x9 g- X% N7 ]( K        Lan := rootfolder.Internal.Tools.AOLlanguage;  |8 ?0 ?. K6 |) c1 ?2 _, E$ v) w
        if current = @.Destination -- else return
& X+ Y; |4 d* Q# d5 Z, m        then
3 O/ f% b* j' ?                @.Destination := void;
' R1 z: u7 I: g" f* L! K                if @.occupied then2 P5 e9 y! a( q* S6 _2 F0 Z3 I
                        part := @.cont;
5 t9 e. I. \6 Y5 f/ T9 p3 {9 O& ~                        @.transpOrder := void;" b* c5 h' s" r! M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ O/ \3 [0 h9 \7 L: o
                                @,root.eventcontroller.simTime);
+ P, Y, k+ Q5 `* @$ B  s                        @.HasOrder := false;" l. j( K! g5 a/ S! b5 u
                        @.DrivingHome := true;
1 n. B& J: h0 |4 v& X6 x                        rgManager.tryToStartTransOrder;/ Y% t# F6 b0 U0 Z( f+ y" [
                        if @.Destination = void! }' N+ l9 ]7 X) P/ ]& T6 {
                        then -- no transport order for vehicle @: |% i. x2 d5 i- W2 p1 R( o
                                @.Destination :=2 Y) N* D: a9 ?8 k7 I
                                rgManager.nearestFreeStation(@,track.~);' u3 l# v: }$ v9 C3 K/ C
                                newDirection(@);   
! X4 @. j$ Q2 F. j/ N                                if @.Destination /= void then' k; Z, W: L: x8 I( `# G
                                        @.Destination.NumReservation :=
/ H1 t7 O6 j& w                                        @.Destination.NumReservation + 1;
' @; r" I4 @0 o* U                                end;8 C' Z. I2 \& _: L2 R
                                @.CurrIcon := "drivingHome";
$ W* R! {1 O) u& |                                @.DrivingHome := true;
6 A1 F/ i  L5 K0 b                        end;
  @# D  Z* ^- ?1 A, C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 b4 u  t/ {: t  u3 S                        part := @.transpOrder;
& d8 ]; l' E0 D9 l) x                        part.move(@);-- load part% S0 e+ c- j6 a# B' v
                        @.CurrIcon := "load";
9 A# J# m8 v. ?& o3 D) Y                        GlobalDistObj := part.globDestination;7 S; i6 R  H. m# g) W
                        assignLObj := rgmanager.rgAssignL;
" h6 I! i& P/ `4 K/ y$ }                        row := assignLObj.getRowNo(GlobalDistObj);3 ?' B1 u1 t6 Y& l5 p5 c
                        if Row = -1 then -- since 70: w- N* ]- u# P. Y
                                if lan=1 then' g) k$ \" B# a5 ], h: j/ M# @  Q4 b# h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ C& \: X7 u( u0 l7 d$ I                                                to_str("in der Andockstation: \"",?.~.name,"\""));" w  v, ?* Y3 H6 t- C1 B8 ~
                                else
8 ^) h& L3 c) P! F$ |# f& L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) g, j: w8 [% K6 a$ J                                                to_str("in docking station: \"",?.~.name,"\""));                                : s& u- O/ q/ N4 b) k) A/ |
                                end;. I/ _4 m8 V8 _
                        else- j9 `- K5 s, R/ T: H. C: V
                                @.Destination := assignLObj[1,row];
( i; l% v8 Z2 X$ X' p$ {                        end;                          @- A3 s6 x$ d  @% A; n# J& {
                        newDirection(@);  ~# T4 H: `3 O3 ?
                        @.HasOrder := true;
' i8 j! ^, \2 q: x4 Q5 `, v7 `' D                end;
, d4 w, X; D. ^/ K* I4 Z/ E2 f        end;
0 {2 V" r* B' R& D4 lend;        -- of the method
( P/ h1 r$ w$ f& Q% \" t- y! i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! N8 ?) w$ n7 E, P

9 z/ o& N# D# _# R这是AGV_putin中arrive的method。
! G* b) {, `1 r/ X* H9 h. j1 T! I" l! h6 ?( e& Z
当到达物料速度越高时,这个报警更多,
, r6 D: C# A& \' c" j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 s+ t( v% X: L% F; a
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( }7 \$ W, n. e2 e  L3 L- ]5 v& x( B, \) ~4 B
另外一个小建议,就是move,所有的move都可以这样
, ~& `6 [; Y6 Y5 Hif not move() then debug end
- F! _6 a- [  e  o) _9 n1 ]4 z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" d3 M* h* V8 a, _$ ^- xplant simulation中的free libraries有AGV模板,
9 {, M0 ^' b  v5 d2 m7 N里面也有案例。7 b8 a3 H! E/ {3 }8 U8 C
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 x. ^7 q0 V& _7 n

1 a' n0 C" }/ w0 Y; a& j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( s$ J: ?/ `; o7 x2 ]7 [

' o4 }" O* c. J" T1 a那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 N1 H, Y6 R% S! [  R3 m
这是AGV_putin中arrive的method。' K9 s8 n' j9 Y% ]* s5 j
. h' p' y, Y# ?9 V: M9 ]
当到达物料速度越高时,这个报警更多,

: V# p( S$ A9 d3 V6 h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 17:05 , Processed in 0.015008 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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