设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7677|回复: 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'/ l/ H; F: U& x- z2 d* b
*/
. u7 Y3 F. |( i" l6 o/ n) a7 Z7 xis
, U8 T" N* c4 v0 A1 a" _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" V7 h5 C0 L2 z- `: O, l
do) H3 @9 T3 \' S$ d8 @7 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 m, M) c; `6 |7 P" v8 o4 o/ l& \& Q
        if current = @.Destination -- else return, B' K# r' ?+ C: D$ ^1 a3 `/ p
        then
7 [% G- h6 N* i                @.Destination := void;
% @! L( q" B, m( @                if @.occupied then
( k' ?" ?- ^" M, Y+ q1 ]                        part := @.cont;  A, O, Y# i: x; C  ^
                        @.transpOrder := void;
: s5 S+ W# _0 B, G, [+ I# d6 o2 Y8 R& j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 a5 ^' g) \5 e: h# Q' n                                @,root.eventcontroller.simTime);8 w# ]* V, a% {$ }. y' m
                        @.HasOrder := false;
& |8 ?7 d% \$ o" @* g2 g% j                        @.DrivingHome := true;) b6 s( L# f" w
                        rgManager.tryToStartTransOrder;
8 g! a9 c' _9 ~( X8 V" M2 [' k3 w                        if @.Destination = void: |, ]1 i, m2 ]- j; D- R* U9 }* e
                        then -- no transport order for vehicle @+ ~6 M; X! f, q5 O. t: L( c4 a
                                @.Destination :=4 @! F- Y' ~/ C8 l" a4 g  K0 M' l
                                rgManager.nearestFreeStation(@,track.~);
  h$ H  d& _% R; k; H" g7 z% u9 V  }                                newDirection(@);   
( S) B5 \( |4 T, s3 o                                if @.Destination /= void then
+ g; |. W; K3 R. x                                        @.Destination.NumReservation :=+ i+ _( ^/ h& Y3 D: I9 X* ^
                                        @.Destination.NumReservation + 1;
( {  k: t* O1 {! b& e) Q" B                                end;
' b% ^0 m) l/ G+ U% [                                @.CurrIcon := "drivingHome";
7 B7 V( e) S# k; F; C- J: d                                @.DrivingHome := true;
" T! {. q* _4 K( p3 e+ f8 j                        end;! k# d3 F0 @8 S: o) ]8 U2 P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 S5 n3 F6 ^9 D& p+ H" `/ N' M/ [' s
                        part := @.transpOrder;
1 D/ E! D0 u$ L" A! N* {                        part.move(@);-- load part/ h2 H1 T4 E8 k' a4 V! b5 j# ?
                        @.CurrIcon := "load";/ I- Y# \0 z$ B
                        GlobalDistObj := part.globDestination;
- W* Q& Y' u; C                        assignLObj := rgmanager.rgAssignL;# q0 ^% u. A2 n2 [( C
                        row := assignLObj.getRowNo(GlobalDistObj);
5 m! f3 k% h% T7 Y2 Y# s/ h' ]+ }                        if Row = -1 then -- since 70
4 Q$ D; q& I/ X% H) [                                if lan=1 then
  g/ p3 G; d$ p' w# Z: i' c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ L/ z4 o+ c8 K" B                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  c* [$ G- W2 C                                else5 {* F  l" ]! D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 b9 O/ Y) {" W. N                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ X! n0 d7 Q* F0 i& t% \                                end;4 p  ~/ F7 Q6 Y6 N9 ^# b
                        else1 ^$ |0 ]4 b2 i; J+ t( a7 h
                                @.Destination := assignLObj[1,row];1 v* L3 G  J; A8 P! T' x% ]/ w+ v4 s
                        end;                          P* Q7 X, I. z2 a
                        newDirection(@);7 A, ]& f+ j% _( b. f/ A
                        @.HasOrder := true;1 _' v  F2 z2 j& Q& y  ?
                end;
$ O+ \' I# e1 G$ l$ k        end;
' G1 A) e" ]$ B8 L1 u: V- x# Oend;        -- of the method
" `0 k4 n' A9 y+ Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 P$ Q* u% k' f! ?9 U) G% G
2 r. [3 Q4 C5 @3 k* {, m2 l这是AGV_putin中arrive的method。
5 Q3 ~1 N, q( E( ?0 I. A, h$ v$ f" N( p6 m+ {2 C
当到达物料速度越高时,这个报警更多,
5 G  U3 q9 R( g4 A& `可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: b! Y4 ]) w6 e& _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 Y1 ~% D7 Q. ^: U6 j
; c8 F. w3 G. S( i4 R0 {
另外一个小建议,就是move,所有的move都可以这样" |: z4 W# n. ]$ h7 p: R
if not move() then debug end& I% u+ L" h) V$ X4 z! _9 x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, Y8 S# x6 Q5 d3 q
plant simulation中的free libraries有AGV模板,
. [2 I/ }. p; |5 _8 i" T里面也有案例。
, T4 C/ Y- u! p; I  T% v; x7 u' Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 _2 X' _5 Z, Q* a

2 P" h& V/ O3 m# s( x  N: H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " s8 m- b- L$ e7 K! A. y4 K  u
2 V" m- d: \1 M  V, e  p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* N" n% K5 T9 T! Q+ X这是AGV_putin中arrive的method。- f' Y# E1 t  b! B0 ~8 h

9 v$ h3 |" ~; b6 ?) y& F8 y! g当到达物料速度越高时,这个报警更多,

1 f. V( `# `' M; b7 f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-23 19:43 , Processed in 7.864005 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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