设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9769|回复: 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'5 V* Y4 B2 M' D( d9 l3 \% f
*/2 i$ a7 t' ^' C: t, c0 Z! ~8 C% y' X
is
- R+ b3 u8 ]! D) w4 J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  Q4 L4 H7 M0 G1 V. d
do0 e; Y4 \$ N0 {8 M% K" X
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: R8 i  N6 u$ d9 r% x9 m2 l# l& a        if current = @.Destination -- else return
# g: B3 c$ |* }1 ^' z; c4 a        then; D: Y2 [6 S& P5 x8 s# `! l, x
                @.Destination := void;$ s% Z$ _2 `/ L, I% J- L. t2 |
                if @.occupied then* a4 h$ j# v+ w/ J+ a7 ]- @7 }/ z
                        part := @.cont;
# B& }+ t) A7 R5 V, a% [" P                        @.transpOrder := void;7 q. o# ]$ A4 v1 |' V/ Q. I+ k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' F4 N' C4 Q. Q, S                                @,root.eventcontroller.simTime);
* {, O# |/ ~* I5 T0 x' A0 J                        @.HasOrder := false;# T9 f0 v$ h  f9 g: J
                        @.DrivingHome := true;* E) d/ S% Q& W: q$ |
                        rgManager.tryToStartTransOrder;
; p+ X' F( ^0 l- L( k                        if @.Destination = void% t5 ]; e3 x! s: v
                        then -- no transport order for vehicle @
+ ], k6 N! m1 E$ \' K( Y4 [                                @.Destination :=, ~, \5 K! G' ~* ]8 h# U
                                rgManager.nearestFreeStation(@,track.~);
& f1 y9 B4 y: Z4 N) K: Y                                newDirection(@);   1 H  I/ ]% m8 J
                                if @.Destination /= void then
4 i4 K) [' w2 s* |! U0 v* J1 j/ ^                                        @.Destination.NumReservation :=
9 s' U* T/ h3 t+ ^0 L: a                                        @.Destination.NumReservation + 1;7 w! ^4 ?7 {+ n  |8 P
                                end;8 S  ?3 w/ P0 S$ O% ~
                                @.CurrIcon := "drivingHome";% m% y1 C5 B$ d  X, D
                                @.DrivingHome := true;
* e  c( R/ w: C! i9 _% i) ^/ D7 p                        end;
8 ^& S( e) _8 h7 H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 F# o2 E$ l8 J9 Y" A
                        part := @.transpOrder;
5 V8 x3 j5 _0 Y, }                        part.move(@);-- load part7 A: W  i! E  W! E( ]( u! s% F
                        @.CurrIcon := "load";; ?) _+ U" E; z" |
                        GlobalDistObj := part.globDestination;
* A! b9 \1 f) i3 q9 s! G) f                        assignLObj := rgmanager.rgAssignL;
1 I$ F1 B- }  V. I                        row := assignLObj.getRowNo(GlobalDistObj);
+ ^0 A8 z( _( C, \& Z8 ^                        if Row = -1 then -- since 70
/ x& F# o: |4 V                                if lan=1 then
2 W& f& J9 r9 z$ X& z" q' N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) z, @' Y, M3 B* ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 z2 j! b3 A% A, n6 e  x$ f$ o                                else
: t! I7 u6 o! K; p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& p3 C" _5 {. i1 x                                                to_str("in docking station: \"",?.~.name,"\""));                                / I$ u. k% }. V+ u7 v5 S
                                end;
# O' U8 M' T1 }                        else
0 r7 P" L# t8 u5 `5 i' ?) ^5 M                                @.Destination := assignLObj[1,row];
" C2 j* T/ \9 O' G; V9 q                        end;                       
( W. k6 L- V* k3 |2 V* f" V7 V                        newDirection(@);, T5 B0 u% e/ R' J! g5 R  a
                        @.HasOrder := true;
( T* |. L6 K2 m                end;( V# R# O. f) n9 q- t+ ^1 I: X. v
        end;
. |9 h% g+ ]; Z6 Wend;        -- of the method
  E( y- }: f; _6 c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 z/ o9 e' ^2 G. d) b
* M2 }5 f- p6 a. h
这是AGV_putin中arrive的method。9 U* b  I2 e4 W( L' }

0 I- u9 ~: }' \$ @0 q! L! x当到达物料速度越高时,这个报警更多," {  c* Z; ]4 s  r7 S8 Z  W+ t- J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 m5 H6 s7 }2 D: k% A5 T, [0 L+ R
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% o+ z1 u/ b  D! l2 ^
+ e# {3 s* B' }0 p# [' |0 f) K另外一个小建议,就是move,所有的move都可以这样3 E5 a3 H! b  |8 \
if not move() then debug end4 h+ `( s. E/ N6 g4 Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 F7 a6 d4 K: g5 _, B4 Oplant simulation中的free libraries有AGV模板,
) b8 Q7 k$ x4 r! ^7 A里面也有案例。  ^# k% w$ _" i" t/ y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: r( C! _7 K2 ?. H. K
+ r) f" ]/ D" Y+ a8 @5 }: B我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / O) Y) l0 E  M& Z" I
2 P. i) N  X. Y0 d+ D% ~* M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- A( G4 j2 L$ i' R& i: w这是AGV_putin中arrive的method。3 ~, ]2 E# H  j5 j

5 y( \: X! t2 Y% ?7 r* @: Z当到达物料速度越高时,这个报警更多,
7 g4 E8 h# ~; v5 T& C$ t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-23 16:37 , Processed in 0.023714 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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