设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9414|回复: 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': Y  }: x* @# }* S
*/
& Z0 p# L. r4 t& Mis/ {! N/ y2 s6 ?. i- w
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ Z1 D* D9 O1 r6 @2 C- D
do) h) H) A! j/ ~% W) ^$ \
        Lan := rootfolder.Internal.Tools.AOLlanguage;  Y2 {' d! }. B- R, q
        if current = @.Destination -- else return6 M. ^* C: M) D2 j; j, n
        then
6 n" {1 i( C3 {5 y  j. ?                @.Destination := void;+ g3 Y- a9 k3 U; K8 \
                if @.occupied then
1 h$ ]. a8 E& q. @                        part := @.cont;  R( j  c) U: v( O" H
                        @.transpOrder := void;
+ P! E+ I: E9 ]$ r% Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) @- e$ [; ~2 s; n
                                @,root.eventcontroller.simTime);
( \7 K/ \5 f7 T4 c% i0 i: B                        @.HasOrder := false;
5 d: l( _; H. d1 x0 b                        @.DrivingHome := true;
6 @9 N9 |% |* j6 ]3 B5 i                        rgManager.tryToStartTransOrder;9 q  u4 n, g. f9 J0 ?3 o+ b3 w
                        if @.Destination = void
0 m# B4 o* Y9 q/ H                        then -- no transport order for vehicle @1 F7 `  j* B; m/ ^6 @/ F6 R4 @6 ]
                                @.Destination :=
# g8 F7 R  X% r* y( u" m                                rgManager.nearestFreeStation(@,track.~);' l( c" F) w5 ~, H0 D1 h
                                newDirection(@);   8 ]$ [% {/ g0 r1 f/ H% V# n' B7 f
                                if @.Destination /= void then5 i+ F! ^$ e2 D2 G- d  u
                                        @.Destination.NumReservation :=
4 M( {; U" n0 O) q4 Q, b1 Y. M' v                                        @.Destination.NumReservation + 1;! J; m& k: N8 W9 ?. @- N, A/ W
                                end;! W" D$ C, y; t
                                @.CurrIcon := "drivingHome";* M2 [$ l+ l; b; ?' t+ C
                                @.DrivingHome := true;  P3 z* N" P$ e; I" _& F3 |* [7 U
                        end;, @; I; a7 z% O0 v) h
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! G' Z; w+ Q5 T& U& ~6 I
                        part := @.transpOrder;
0 O8 b) O3 b4 Z                        part.move(@);-- load part
$ q1 l- [* i; v                        @.CurrIcon := "load";% ~" r; P, u: B  t
                        GlobalDistObj := part.globDestination;
8 B- S5 b7 o& d' D                        assignLObj := rgmanager.rgAssignL;
! q! T9 Y$ `& z1 y# Y/ V                        row := assignLObj.getRowNo(GlobalDistObj);% ^: f1 Y# A- A; |+ o5 m
                        if Row = -1 then -- since 70& w8 H; p/ M3 A+ M- g$ Z- U
                                if lan=1 then
% U' I4 d6 {2 p7 Q. f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- p" w& j: p! u3 T- {: R9 x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 \9 ?  a6 I7 w* M" m
                                else# S9 v  C2 v# a! O4 [* L
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' m8 C$ N! A2 m" y0 i  a, j                                                to_str("in docking station: \"",?.~.name,"\""));                               
' B) j& e+ F. a' u- D: e" U                                end;% X! }6 Q9 z& B
                        else
" D; D* Y. I/ Q- I; @  ]                                @.Destination := assignLObj[1,row];
  T+ S5 L. C* X% t7 r                        end;                        & ]9 ^  S3 e& _/ N  A; U4 L
                        newDirection(@);& V8 C1 H9 K7 E2 X5 v
                        @.HasOrder := true;# o  b$ F, P* s8 D/ \) P# V
                end;
2 j' ]& @! e  G        end;% e/ Q2 U# M5 J& A! [/ L3 E
end;        -- of the method
# ]7 @9 s. O4 i" ^# L8 S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / G( D  E9 I# C( V5 G: {  t4 T

" K3 {7 L- }2 ^这是AGV_putin中arrive的method。
5 y9 C5 Z% x, V0 I& u
0 V( R( o6 B7 R( W1 e, G9 @; W当到达物料速度越高时,这个报警更多,
7 l+ R+ T4 M" f; }4 i5 j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ \5 T0 u  [6 E; p; _0 K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# Z8 Z9 w" Q  b- l6 Q
& ?5 o" ?1 W) G
另外一个小建议,就是move,所有的move都可以这样; X/ u; w/ a8 I9 C) r, F
if not move() then debug end
0 C$ J: S- e9 \9 `& z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! U* I2 Q, R$ m+ s* j- X6 E$ Lplant simulation中的free libraries有AGV模板,
8 J: k% @- W5 \! Y" }里面也有案例。% T! Z" b# H1 _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) U- P5 C4 R7 ?, l1 c1 A
* Q- g" \- Q- N1 n/ H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * {6 t2 a% n6 |- R7 a/ `

2 j& j5 e; t5 ~7 ?, v% C+ y4 M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( m- W: R; B4 o% ]2 e) V1 \
这是AGV_putin中arrive的method。
5 S" n% f0 \4 _- t) ]/ e
& [2 K( Y1 s2 Q  S: U( h当到达物料速度越高时,这个报警更多,
7 n5 t# a! s3 ]: N& U% v  N6 G8 z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 02:46 , Processed in 0.017840 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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