设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6710|回复: 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'
" b8 J4 F2 G9 l2 b+ {. F*// i0 E4 Q" L3 E5 X6 X
is
1 d8 {! l6 C% R& A  R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% F" P3 {/ f5 Z4 v# kdo8 e9 H9 U- l: U# U0 K% l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 a6 d/ h- q1 J& q5 m        if current = @.Destination -- else return
6 ?7 {8 F! e: q/ B/ G3 t        then
8 [* Z4 ~- s% X& H* x& Y                @.Destination := void;
" P3 J% I7 y2 C2 I* l6 ?                if @.occupied then
4 z# f# [- n9 F" N                        part := @.cont;; }8 r+ P0 J9 z% Z6 c% S: F+ g9 }
                        @.transpOrder := void;2 o" z2 c; T1 i9 y% X; _. I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 g) j& U0 H* \) E% R5 f' p8 Z. e% j! e
                                @,root.eventcontroller.simTime);3 r& l) g: H. q; L% `& f; E
                        @.HasOrder := false;6 q, A/ r% B5 W3 ^9 x& H+ t
                        @.DrivingHome := true;
+ h5 J- g' e* g; m& M9 z                        rgManager.tryToStartTransOrder;
$ }3 I% K1 Y4 c: v9 f  r9 g                        if @.Destination = void8 x2 m9 L- J# C9 F( @2 q0 S( `
                        then -- no transport order for vehicle @
6 \% |8 t& x& s1 w& N                                @.Destination :=
# J! z+ V+ y2 Q. x! I, F/ e                                rgManager.nearestFreeStation(@,track.~);
4 F( T4 }9 p: m6 H( a                                newDirection(@);   
6 L% E/ R0 S! v1 [; w                                if @.Destination /= void then) I4 \! d6 s3 Z; p
                                        @.Destination.NumReservation :=
1 `" q" Y5 g7 X                                        @.Destination.NumReservation + 1;
4 y; y- a) i2 m9 R8 W0 S0 f) h* E                                end;
: i% f9 g* C& v- T$ X                                @.CurrIcon := "drivingHome";. N4 C6 J6 f" T7 k
                                @.DrivingHome := true;
. }0 a# {' c$ }                        end;4 Y9 k- N1 w2 Z* X' |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ I' q0 q" L: b, Q3 X: y2 n                        part := @.transpOrder;. N- ], D/ @1 {" f, Z  E0 \# G
                        part.move(@);-- load part, _2 C" S* v  i+ j2 d1 M
                        @.CurrIcon := "load";
5 J9 b4 X1 N4 H6 g2 Z                        GlobalDistObj := part.globDestination;
/ `8 F1 T( z6 {6 R) A                        assignLObj := rgmanager.rgAssignL;; W0 q- y" X2 K( H! H
                        row := assignLObj.getRowNo(GlobalDistObj);. k4 A, c, Y& d  s, A2 Y
                        if Row = -1 then -- since 70; u( B; h* a! |# G# m
                                if lan=1 then
% R( H. o. |8 k  F! d* D                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 l3 u( |0 i' S2 ?* P
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 }+ O) {2 d' N6 y
                                else; m; @$ P8 h/ C* r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 Q9 z0 f+ s  j7 z) Z+ U$ C0 x                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 C% U* H& D9 o% G; f9 [) f  k5 W                                end;, {) ^4 C5 m8 M0 V9 M0 v
                        else
2 X, S3 Q/ y8 e  a. S/ H" G                                @.Destination := assignLObj[1,row];
/ c8 Z: H8 N# m4 a1 V                        end;                       
9 w8 U7 ?: y3 o% }& e8 O+ H0 e                        newDirection(@);* a8 X# U2 U  O/ ?. T! S5 N  P' f$ {
                        @.HasOrder := true;
/ X% c. z+ L) L# }                end;
6 N, z+ V7 M" z* }$ v: d        end;
$ A+ q5 }( r4 t) p) A0 hend;        -- of the method# `9 |4 d: A: k: ?: ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / z2 ]( d, V* y: j* b! G- @
; x& u; V$ \5 R- L
这是AGV_putin中arrive的method。2 }' g. J; i  x* P9 j# P$ P

7 A) n4 f, p5 x" E8 B+ R/ D3 N; Z  R当到达物料速度越高时,这个报警更多,3 R. }- R0 A8 h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ b) K, n4 e) T1 u* i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ N" [: B: b9 ~4 l& i! H* g

9 M% g$ e' a- p  e- W另外一个小建议,就是move,所有的move都可以这样4 u6 p* h, C' g0 p5 f0 _0 q* i$ N
if not move() then debug end, V: A; H" Q+ ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 ]" `* H  z& _! ^1 A
plant simulation中的free libraries有AGV模板,
- q% r4 x; _8 ?里面也有案例。
: a. X# J8 V9 S% R) P: E- p我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* r0 j; T. C9 V* R9 E% `
! f' ~2 l0 l  f' b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ ~7 Z0 j$ U1 r# B: e" G4 o) \# S& x0 ^: k  I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" w7 E. X: M8 T4 O, f这是AGV_putin中arrive的method。
! _! l/ ~8 p7 d) s1 ?0 u! T7 ^% c; U. R% p: C
当到达物料速度越高时,这个报警更多,

& r! d4 \+ F8 E$ a9 T  Y0 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 03:01 , Processed in 0.021569 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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