设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9370|回复: 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'
8 e# u. `5 l% f2 J*/% K* t$ \$ `4 w3 F# u, Q9 ~
is
- {9 c+ X7 ]# J  K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 n* s2 l! I. x+ M
do
& C9 @7 @' {; a& [        Lan := rootfolder.Internal.Tools.AOLlanguage;1 u7 A; Z( k) r! ^0 ]) o- j
        if current = @.Destination -- else return, k4 c% b; \: {, h% z( G% u# S
        then. Y1 y3 }: ?2 P
                @.Destination := void;
  _$ Y' k4 H, \1 j* B/ H! J                if @.occupied then2 @, D7 r9 P/ L9 u/ N% n# [
                        part := @.cont;
( W' m# Z1 t) {                        @.transpOrder := void;' O  o2 ?2 N9 m" W6 n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) e" w% n0 q% R! j* m' d  w0 Q/ A
                                @,root.eventcontroller.simTime);
3 y3 V$ S6 J! t" G  d" l# R- E                        @.HasOrder := false;
  S! r" W- i% H$ k                        @.DrivingHome := true;
- u7 Z+ N1 \" h6 ?8 ~  Z3 k7 c                        rgManager.tryToStartTransOrder;
1 c: N+ C0 F& R3 X                        if @.Destination = void. s5 Q+ ^4 m: T; O
                        then -- no transport order for vehicle @
5 C) s8 p5 r) t                                @.Destination :=1 S5 ?1 d* O! a
                                rgManager.nearestFreeStation(@,track.~);
  X' u7 j0 F3 a9 f                                newDirection(@);   & S3 w- P* z2 J
                                if @.Destination /= void then  ^( T& n) r0 A$ Q; f2 t+ H
                                        @.Destination.NumReservation :=
5 m! M: N" A3 h& }- o5 T                                        @.Destination.NumReservation + 1;
* @3 F; ], Z+ F! O4 N7 k                                end;7 a3 ^4 t( C5 F# }* E  }6 C2 o
                                @.CurrIcon := "drivingHome";
% L) U# a0 C/ b' S                                @.DrivingHome := true;9 x! K7 j9 l3 n  n& c5 _' m
                        end;
& I8 E0 `2 i$ {4 g+ u  t+ P1 a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 f6 I$ Y9 Y) d0 G+ j; @                        part := @.transpOrder;
8 L9 g/ c$ t& v- M, I                        part.move(@);-- load part
& m, Z" V# S9 c7 S8 {" [$ D                        @.CurrIcon := "load";
& X4 {) N; D1 f  F                        GlobalDistObj := part.globDestination;
8 \) g( H+ K' z* F                        assignLObj := rgmanager.rgAssignL;3 [8 N% p; \" \" u
                        row := assignLObj.getRowNo(GlobalDistObj);
/ ~( o, g, s% C( j9 c# L                        if Row = -1 then -- since 70
) _5 J7 v1 q6 g3 ]5 p* N3 ^: S                                if lan=1 then
' v5 ?3 f+ g5 S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 h" v6 B4 T* e( |                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" ?0 v6 }# P2 i4 ?* b4 x                                else
. F1 ^8 q9 Y$ I0 h3 K7 T5 s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# @: m4 E% [; b( _! R8 w                                                to_str("in docking station: \"",?.~.name,"\""));                                6 x6 R0 f- X1 O
                                end;, I4 L: d- J1 T8 S' ^2 f( P
                        else
+ H9 t) c7 Z3 ~" D/ N                                @.Destination := assignLObj[1,row];
, x# ?: ^+ p5 R, M% c6 w                        end;                       
; E: {+ i7 T* y4 B& d- Z. ]                        newDirection(@);) u4 A8 o5 u: W
                        @.HasOrder := true;
8 q8 h' \; M* b% s                end;
; M5 T7 F5 _% [- K" _& F, @2 n        end;
3 D) k- C4 B: @8 oend;        -- of the method
; w& n0 m1 @$ z: ~2 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( ^; \0 ?9 i2 d# X
) _& w2 |7 L+ T* Q& A- k
这是AGV_putin中arrive的method。
0 Y; |4 |4 ?# _2 w. a+ J  m2 T4 t/ \! J0 k4 `
当到达物料速度越高时,这个报警更多,6 a$ M/ f; v/ S0 H" |# m  u) g
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( i: l, @3 D, ?/ }! r+ X* R" d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 K, P( {/ \# Y$ ]
# b1 k3 n6 D8 K另外一个小建议,就是move,所有的move都可以这样  E! |7 J, _0 \9 u: I4 K
if not move() then debug end
0 w. u1 K' q$ c% T. Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( S& z+ J1 k: ]  Gplant simulation中的free libraries有AGV模板,
4 [6 w1 h8 G  e- o  |" L( Y3 b里面也有案例。
' H# A; [+ B; W& U& g0 a- |我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 d% }. f! P$ L* {$ ^( O+ L
& X/ s; J1 p2 B2 r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( Z8 X4 I. T6 ?( h! n$ w4 S) O0 t0 ]0 P* s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 T0 }- n/ `. x2 h这是AGV_putin中arrive的method。
4 x" k' ^3 O$ U$ o3 C' W1 }7 \* x- n1 ?6 Y! k/ |
当到达物料速度越高时,这个报警更多,

6 P  I) _; e+ d- i4 {' ~( b& m" b; E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 10:38 , Processed in 0.019534 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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