设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9698|回复: 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'
/ g# }1 d. y' M7 ?/ f% H*/9 @: T- D6 k' `. X" {* a$ U) h% a
is
5 {. _& v+ h" v) }6 {0 ~- }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 r. G, f0 H5 ]% ?
do
( t0 ]$ Q# q$ ]# q        Lan := rootfolder.Internal.Tools.AOLlanguage;
" a9 O3 m( W) y- H5 ~- ?/ v% i4 I. l        if current = @.Destination -- else return
4 [  E. E% i) v$ y' r. p/ o        then
( e& b1 R7 Z3 L9 h; Y9 q/ b4 S; [3 S5 C                @.Destination := void;& g0 c' d3 O/ W8 Z- V: [% M9 Z
                if @.occupied then
- }  f& y: p- F! G$ Y+ `                        part := @.cont;0 d8 e! O7 v: L+ z
                        @.transpOrder := void;% ~% [. [4 s% r4 w' x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 ~2 P! x! e( K* {                                @,root.eventcontroller.simTime);1 B  Q5 o# b- j" O9 Z8 F
                        @.HasOrder := false;
2 P- S* B5 |* X, \! z! H+ |                        @.DrivingHome := true;" L' T, j6 U+ Q' m
                        rgManager.tryToStartTransOrder;" Z  b% u/ T" S% c( X; X# T1 ^
                        if @.Destination = void
, A4 t$ R6 A) V+ m                        then -- no transport order for vehicle @" L# D5 m, u% q5 Q2 A& a; H
                                @.Destination :=" V8 ~5 C( s- y
                                rgManager.nearestFreeStation(@,track.~);
. z4 ?+ ^& E2 b- i' u+ @( L# H8 P& y                                newDirection(@);   
$ c9 L) C$ c! w" P2 x  G/ J9 c/ M                                if @.Destination /= void then
/ y8 C6 ]. L; O7 L, V+ X& X4 t                                        @.Destination.NumReservation :=
. I) P$ }, x+ p4 S                                        @.Destination.NumReservation + 1;
) i( E. N% O3 F& x5 S                                end;$ ?. P6 c" g! A& [
                                @.CurrIcon := "drivingHome";
) j7 \( ~: F% j, T                                @.DrivingHome := true;+ N1 X) J) _& a8 M% O6 S
                        end;. g, j9 _# X1 G! |, j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 g5 S: O* P; k5 A" m! Y                        part := @.transpOrder;
" N$ ]; \/ e  W( P                        part.move(@);-- load part2 e. _, c7 D6 f. r" U- R8 A; C% e
                        @.CurrIcon := "load";1 I/ I: U" _2 y9 `5 e" Q: P4 ?! O
                        GlobalDistObj := part.globDestination;
# C% K9 O* ^  V! I9 j0 _) ?                        assignLObj := rgmanager.rgAssignL;5 Y! X$ b! l8 m/ p2 f& B* ?
                        row := assignLObj.getRowNo(GlobalDistObj);" s) g+ w- H' f7 t' p/ P
                        if Row = -1 then -- since 707 p* Q8 Y8 h8 |! }' a' ?
                                if lan=1 then
3 a. j# Y4 w) d; r, M                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( G  D3 m. r! w                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 b# ~7 a4 ?+ h3 L' F                                else
" _  D$ f. @3 U8 W! |4 ^/ A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 \$ E; s8 c2 \& ?
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ W+ [+ E4 l: \$ }$ y                                end;
7 N9 x& _( ]4 S/ e                        else7 ~/ I$ v  @. `4 T# H" s. J8 F
                                @.Destination := assignLObj[1,row];
; @6 Y( g. q  C+ m; V8 c  G" J* c                        end;                        . Q" d' U1 ^0 M+ Z% S7 r( r4 @1 C1 l
                        newDirection(@);6 J& V7 q2 K% j8 g
                        @.HasOrder := true;
: _3 d( p. _; R! O% {+ |0 j                end;" h5 u6 }  p# B8 B: Z8 [
        end;
  i( k! Z  m9 x2 @4 oend;        -- of the method
- r' E+ y+ X( Z+ Q* ?3 P& J9 b1 s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* F* z+ ?# U* D& b8 o- I# q: L5 I; @3 S+ ]) f
这是AGV_putin中arrive的method。2 B6 ~& z! S& M  `# I1 o! Z3 h
' f' u+ w: G( h$ w6 [: h0 \% J
当到达物料速度越高时,这个报警更多,
  ]. R9 l. k1 N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 Z3 y/ J- Q) I& o( w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 l  V7 X1 l, {5 A+ {
) a5 [# @* ?$ \7 L9 r0 k/ x- f
另外一个小建议,就是move,所有的move都可以这样
3 D$ N% ~) H/ f8 Rif not move() then debug end# }$ x# F0 H4 b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! G% ^! w3 }. w3 G% y3 zplant simulation中的free libraries有AGV模板,
% c( R. j& U4 o% q里面也有案例。6 K8 C# h1 @' N+ w% p( J2 r9 {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( W1 {2 G$ G1 P4 E( R5 p* B2 u" H
" k3 q8 _: z/ S6 j2 w/ i) j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 H# b3 Z& C" ~3 N' R* T
3 J; y$ Y: r6 l5 r# I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ e6 V& H# k7 \4 `1 |8 F3 Q5 D+ c
这是AGV_putin中arrive的method。
( B7 H* {, }( D- w1 y; J: w. `: V. [8 c, B4 `
当到达物料速度越高时,这个报警更多,
' O! t8 b- H" j
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-18 07:37 , Processed in 0.020645 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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