设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8857|回复: 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'1 _* @. {3 U; y$ _
*/
; K1 I+ ^* H, p6 K7 ?9 |- d! h% yis3 A% M7 b$ H# j2 A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' C$ u! S, z2 ]; D1 Z' @
do/ K- V, Q6 d. o; P
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 r" W: K! j& J/ t5 q        if current = @.Destination -- else return
* ~2 Q2 t/ j' n  A1 c  t        then9 W" v6 W& X+ Y0 _$ o
                @.Destination := void;
) R. t% J+ @1 U% ?5 A4 a+ r1 L. R5 a                if @.occupied then- j& ^* ^( h! c/ }3 K* a) ^
                        part := @.cont;
8 H) `7 e6 \, u0 z7 r: y                        @.transpOrder := void;! v% |9 w; z& w, J* {
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! {. E3 r2 e5 Y- x
                                @,root.eventcontroller.simTime);$ g0 n0 w8 V* |, ?, E% M6 [
                        @.HasOrder := false;5 ?9 B; i3 M; s$ I& h
                        @.DrivingHome := true;
4 T2 P- Z2 J5 z5 H6 F  \9 g- V                        rgManager.tryToStartTransOrder;( f6 V  x2 k: G
                        if @.Destination = void
% l5 N  ^) X' u! ~; c1 A' w# f                        then -- no transport order for vehicle @7 L* z6 v1 p% [/ v
                                @.Destination :=* _. D/ n/ O/ ^$ c7 q
                                rgManager.nearestFreeStation(@,track.~);
$ H( o; `" x2 ~% g0 V' W                                newDirection(@);   / _/ F$ S& B8 d
                                if @.Destination /= void then
0 Z& L+ q1 A9 c; z  y! P6 Q5 E                                        @.Destination.NumReservation :=
% r- ]" E, }+ t% ~+ d                                        @.Destination.NumReservation + 1;- o6 {- v; f: p  x  B
                                end;8 t& z! D; y6 ^. h, i# y$ a/ ~
                                @.CurrIcon := "drivingHome";
7 Q$ `/ r2 \7 ]# j, Z+ i9 s: S/ S                                @.DrivingHome := true;3 m1 E$ ]' L! \' ^
                        end;4 L% x$ u" t( g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 }8 G; f0 a, i; x6 N                        part := @.transpOrder;4 h0 h$ y* a0 {2 T
                        part.move(@);-- load part7 @5 }; x& c( @3 t4 D0 w  {
                        @.CurrIcon := "load";
$ ?( g' v& D8 z" O3 L6 @# A                        GlobalDistObj := part.globDestination;$ d/ b$ y+ w  u% G! Y+ j
                        assignLObj := rgmanager.rgAssignL;) E! ?- e3 u: u/ |- w# k7 B' }& j4 k
                        row := assignLObj.getRowNo(GlobalDistObj);& {9 c' Z& W5 p% y5 ~4 v
                        if Row = -1 then -- since 70
. k* ?8 y/ @" [3 M! z                                if lan=1 then3 u' ]& Y% D8 K$ ^7 j
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. B0 B7 Q, i& r5 L0 h* Q5 [1 k9 y                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- f# h/ Y4 L, @                                else2 ~& b) U; D9 I1 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 t, }1 M" B& q5 j$ X! L( d                                                to_str("in docking station: \"",?.~.name,"\""));                               
# Z$ s9 P6 u  k  P4 \- z) ^                                end;1 a+ e! P' X3 u' g
                        else
+ C9 _! i2 g5 R8 u0 b                                @.Destination := assignLObj[1,row];' V7 I9 W7 ~0 \# v+ R
                        end;                       
* M) {4 h- g" ~( g                        newDirection(@);0 N8 U) k$ z1 C$ T; v# h( ~4 N
                        @.HasOrder := true;0 N" a! Z8 j4 s4 ~
                end;
( T7 S5 [2 ~! V1 W$ c7 _        end;# \  ]* ]9 d) o) j  n
end;        -- of the method
3 H' X% U# y2 B  B/ X  r$ L3 R, C; l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) C# j  P$ _% Z& @! ]! L/ O5 J2 p4 \/ ^/ T8 Z% m+ ^" e# d* L
这是AGV_putin中arrive的method。5 ^# M8 D9 ~. K' D8 r
9 K: g* Y5 c! w# r8 h7 K
当到达物料速度越高时,这个报警更多,. M3 I3 ^5 L9 Q: p7 e! @
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 C4 z  w9 g+ v# [$ D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ A0 R6 |5 N0 q2 F
, O, u  _& H8 P3 T' a% @0 |
另外一个小建议,就是move,所有的move都可以这样
7 V0 a4 q& t8 ^) u8 Yif not move() then debug end: A. M: ~) y; |, o; V% O4 H' _2 R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 c% J# V) x4 A3 S  qplant simulation中的free libraries有AGV模板,
) |$ q" Y. `3 C+ m: a里面也有案例。; @9 {( k& s; I5 G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 \+ x6 v. {8 U# D
7 G4 o8 X" f$ i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 ?  S) t; J- L2 y7 v7 q9 U: h9 T/ h6 P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' [7 A9 e* m- l' I6 k
这是AGV_putin中arrive的method。' w3 ]8 ?5 M; U9 x

8 |- u' a. I% n. F当到达物料速度越高时,这个报警更多,

6 c0 I2 G' y3 ^1 @' d另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 14:42 , Processed in 0.018193 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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