设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6887|回复: 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'
  }! U- v$ L7 P*/7 r' Y; r9 M# X/ u3 V' v
is" H: _# `- a# K5 x: f/ V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, K4 M; M$ m! [' V' ndo
" i/ c$ [. T; W2 v        Lan := rootfolder.Internal.Tools.AOLlanguage;8 J7 q0 A; u8 D  h* b$ b3 E
        if current = @.Destination -- else return/ [) Z8 S# ^# v. r9 C% w" ^
        then
' j" E% H! X/ u& ]3 R                @.Destination := void;" p' ^$ H3 y" A; R
                if @.occupied then
) ^- P9 v7 Z0 a, e                        part := @.cont;9 H) K: i  j! ]8 t  N
                        @.transpOrder := void;8 v- y. o3 [' x! d* H' O
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 z$ m( j. Z5 I) m3 q
                                @,root.eventcontroller.simTime);
# N1 E: q, o8 ?& x! T                        @.HasOrder := false;
' k1 _& D! I9 U+ r                        @.DrivingHome := true;
6 F( U5 e1 |. X0 h                        rgManager.tryToStartTransOrder;' ~6 [5 l- X4 b; h* [! B5 _
                        if @.Destination = void4 }( i7 w$ }% c! f
                        then -- no transport order for vehicle @
, [% d1 @9 k4 {% b                                @.Destination :=
( m) p5 p0 e. j& |                                rgManager.nearestFreeStation(@,track.~);7 Y+ Z9 _- M- R- F- F. P
                                newDirection(@);   ) \6 Y+ p) A+ }! X$ A4 ^+ O& w
                                if @.Destination /= void then% h! E. _. u# A, r0 a' f
                                        @.Destination.NumReservation :=
* }, b/ j- y9 l5 ^9 V% Y$ ^                                        @.Destination.NumReservation + 1;3 S( o' [" d4 j1 h
                                end;& F2 @. ]+ _# j
                                @.CurrIcon := "drivingHome";
0 B* I& X% {5 J* K                                @.DrivingHome := true;& j$ x( ~/ w* i( Y% Q- j8 [% k
                        end;) X5 n# C! ^0 x5 P0 T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ [. B# q) A4 l4 g  \" y& Q7 h1 ?                        part := @.transpOrder;
) Q7 p+ K3 B/ ]" ^/ ^* ~' r: Q, O& V/ |9 A( O                        part.move(@);-- load part" H' O9 a0 ^4 c
                        @.CurrIcon := "load";
; e3 G+ q) ]" G) e. f                        GlobalDistObj := part.globDestination;
5 k- A- C& H, P% u                        assignLObj := rgmanager.rgAssignL;2 T8 Z; |$ b3 {) u
                        row := assignLObj.getRowNo(GlobalDistObj);' c6 X) k* U) k7 x: A0 V6 m; h
                        if Row = -1 then -- since 70, [4 c4 z! n: c7 }/ Z! |. U/ E
                                if lan=1 then) }! c2 n! e: w6 d3 G' \3 b3 [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ _6 B0 l" @- @  Z/ N; x3 p                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% k9 P$ x8 e, q                                else
; P' e$ J; {+ c; M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) ?6 Z2 r; J  T1 Q- c
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 V  O5 v& f1 q3 e& b! G  a
                                end;5 x2 s  d" S' w% {
                        else
4 L  R+ N9 {+ `  v) Q# _0 _1 |                                @.Destination := assignLObj[1,row];
4 Z) d$ e& D1 \( P+ u2 K( y6 P% j                        end;                       
7 w9 b0 Q, e+ Y7 U                        newDirection(@);4 I$ ^* O7 m0 i# ]5 j2 F; i+ S% Q
                        @.HasOrder := true;$ p- u, \) o9 D5 |
                end;, q! E2 w0 R" t/ Q
        end;
6 d3 t1 L3 H: M$ A% eend;        -- of the method) @7 h; i) N  _* ^0 ]( x+ ?2 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " W6 e$ g* q6 w, Z8 M* Q, i1 c# S

* R1 k" b* Y. X/ u6 S这是AGV_putin中arrive的method。" A$ E! T( Q* m, C

' G/ m7 P9 A; o' Y$ X0 h当到达物料速度越高时,这个报警更多,# |; {! E! H" M+ v& I, V0 c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
* K" A! l* S8 ?' \1 t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# ^# N% @! M0 H2 N2 R' H7 M
" n8 P0 q9 y  q
另外一个小建议,就是move,所有的move都可以这样4 |* Z% W9 i  X! z
if not move() then debug end+ t1 q+ l- X) a" [2 i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; T3 c0 |3 u3 u6 c* o
plant simulation中的free libraries有AGV模板,( J( p3 P! o* ]% m6 a" H6 z
里面也有案例。
# R& q, V# {  u2 a5 W. e9 Z$ N) \2 Q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; ]) u# j& \! Y, n2 Y4 U5 T( ~$ ~) i* e
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( z0 I6 v4 v2 R
  {* g8 d( t7 a那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 e6 Z9 n) W  W这是AGV_putin中arrive的method。2 f- _" `( W; i
: `, t: c; G! `1 H# H
当到达物料速度越高时,这个报警更多,

# C3 n3 ?' r% k. ]: w9 H! i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 19:36 , Processed in 1.877403 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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