设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5684|回复: 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'# U9 \5 }9 [) J- }4 }
*/
4 o8 ^0 ]% F8 Z3 K; @. Q+ ?. V* }7 Wis
3 }/ T7 U% V7 {5 {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) O2 S# R6 g3 z2 x3 V8 R% o6 ido' r6 E$ H' q) ~. S& _
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' C; \/ z$ e7 t3 R( q! w; S/ P/ C        if current = @.Destination -- else return
' F* g- }. E" t4 f( m        then/ c( m6 n1 _. y7 J7 \
                @.Destination := void;! ^- }; ~- J. Z6 G( m
                if @.occupied then* \' g# u6 j$ g! Q
                        part := @.cont;- [& `5 D/ i8 v4 I4 S
                        @.transpOrder := void;
. R" Z% t) O1 v/ ]0 P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' |9 o5 C+ L/ {4 B0 h                                @,root.eventcontroller.simTime);# E- U+ C: b" x# @; u
                        @.HasOrder := false;
4 D2 b& M" b& n: E3 s$ _                        @.DrivingHome := true;$ }1 \8 C9 p5 `  p; T7 c
                        rgManager.tryToStartTransOrder;
: |3 x& P% Y% D7 e8 d0 D# f- y                        if @.Destination = void
% }1 `  _- m* B9 ^7 ]                        then -- no transport order for vehicle @
* C: ~. D+ D8 B* \9 ]                                @.Destination :=
- E" r/ _' {% P7 g7 w# J                                rgManager.nearestFreeStation(@,track.~);% L) `* v# ?# g$ V
                                newDirection(@);   & T7 M3 r) O4 u7 |
                                if @.Destination /= void then+ i3 H+ H. s( m  Y
                                        @.Destination.NumReservation :=; @0 u  @5 O% h1 e* k' O
                                        @.Destination.NumReservation + 1;
! \( f* i1 W4 T6 T9 y$ i/ F3 Z. x& H                                end;
/ X4 D; D$ z: L2 g+ h  i9 G) \" \# G3 g                                @.CurrIcon := "drivingHome";/ L. u2 P! \1 S# @  |9 Y
                                @.DrivingHome := true;  z6 f8 u* z9 H/ {1 j; a
                        end;5 ^. F( e% L$ d6 g* C0 _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 G7 i2 H2 i6 u# e
                        part := @.transpOrder;5 a! k" Q2 Y5 Y( T; Z* r5 h
                        part.move(@);-- load part# l& g' p. W! W. y
                        @.CurrIcon := "load";
! _( m; N" l5 B- F6 p% v                        GlobalDistObj := part.globDestination;
; i  Z) S+ G+ W/ Y6 [                        assignLObj := rgmanager.rgAssignL;
1 c! F: r1 z. ~' {                        row := assignLObj.getRowNo(GlobalDistObj);
- D  }! _$ @# N" z                        if Row = -1 then -- since 70
5 |% s, r+ [4 I- y" L                                if lan=1 then
, ?0 w: U3 d8 C* O. s$ I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 o3 B% z9 S6 ?8 Q5 R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 u1 v) w+ M' O3 v6 Y7 H" k2 U                                else3 I3 n. i0 {4 k' `4 y! u4 [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. @: k( j  L6 q. \, Z8 t3 R7 a8 b) s
                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 c) J4 M- u3 D% @                                end;
0 b$ M. H. w1 |% {                        else/ g- t( L' X+ I: }+ Y' O
                                @.Destination := assignLObj[1,row];
% }' j- f2 x  N  N: {                        end;                        9 v- P0 I: \$ ]% U2 R2 n
                        newDirection(@);' b5 ^1 n, N, P$ v- f( F: D
                        @.HasOrder := true;, q- h, z  t* c4 a
                end;7 X3 a- S+ `# Z9 }5 j0 z6 T
        end;
) O) _3 k4 h" V$ v) i+ \: S) Xend;        -- of the method/ o) x' [7 ?6 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + ^- A3 v' J3 H6 [; d

+ Z6 I% l& J& ~$ [5 }. ^, }这是AGV_putin中arrive的method。2 G0 f3 ?9 `: k9 c4 A
& Z% G1 t# ]5 [) W) S- _1 e
当到达物料速度越高时,这个报警更多,
3 H7 G; C- g* z0 h4 C* p可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  s5 t2 t/ a* ^6 K! F0 C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; E- E( w9 D$ H& Y

4 F3 W2 i% J3 {* h* k4 \另外一个小建议,就是move,所有的move都可以这样* b: E8 k8 i5 P- H
if not move() then debug end3 ?4 q  X/ f$ ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  ?5 z5 \* ]; C5 w( s
plant simulation中的free libraries有AGV模板,
' z2 S4 }* D9 s9 o# E4 W0 z! x# z里面也有案例。
3 c) S7 W4 [# ^我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 o) b- I% n  I
1 K; u" r/ ~4 q. ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 L  E( W- Y& g/ z6 N% i+ z# ]" S, M$ `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" |6 A* _2 P6 ~0 R& [" ?这是AGV_putin中arrive的method。
; W0 b( T- w% H$ V# |5 n7 j2 ?2 p& q: b0 Z
当到达物料速度越高时,这个报警更多,

4 Z$ T  V# r8 I- l6 C另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-14 08:11 , Processed in 0.015386 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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