设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8825|回复: 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'! p& m5 X, `. B( W
*/
1 g. i+ q3 X' h9 I# Vis
; a" O# L: C1 L+ c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& M/ v7 l. P# L9 R: Bdo
- R  d* @1 u1 D5 [. |        Lan := rootfolder.Internal.Tools.AOLlanguage;
; y+ S0 I3 s9 }' R        if current = @.Destination -- else return3 M$ Y- M) `' d/ |) D- K: Z6 Y
        then7 R# W4 Z4 _- X" e4 l. U8 W
                @.Destination := void;$ b- m: d2 _! z% X- S& @; g- B6 w
                if @.occupied then
1 y' [2 A- I! ~7 C; o& l                        part := @.cont;
) ~* T0 q- N% C                        @.transpOrder := void;
0 N& ^$ T  F* W) l: V6 |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 w/ {1 j: y- y! }5 e
                                @,root.eventcontroller.simTime);) C4 Z7 a# |( I" ^9 j. w+ l. ~
                        @.HasOrder := false;' C7 C- g8 s9 s
                        @.DrivingHome := true;/ m) k; d# C5 m/ s8 y
                        rgManager.tryToStartTransOrder;* _! ^$ ?2 {8 j" t9 E" t5 i
                        if @.Destination = void
- k  B8 Y9 Z6 f/ N                        then -- no transport order for vehicle @4 H6 c- }' s, c5 j/ c# B& X
                                @.Destination :=
3 `& r' h) v) d# p7 h  b4 \4 R! i                                rgManager.nearestFreeStation(@,track.~);$ L4 @7 Q' W3 f7 o% Q" j6 P% b
                                newDirection(@);   
. B: F: F1 `% a9 ^# d                                if @.Destination /= void then
5 |; g3 @0 C- S$ x9 n5 S6 V                                        @.Destination.NumReservation :=. Y# q- _3 n% w) w- N; [
                                        @.Destination.NumReservation + 1;5 E9 u, U2 U! r) r  a/ w" {( ^
                                end;+ y+ Z+ E! S% Y2 V+ O
                                @.CurrIcon := "drivingHome";
/ ?  {$ ~: G% J, T2 I                                @.DrivingHome := true;% \: I, B8 c, m5 r
                        end;3 A1 J9 O/ A4 j) [; ]1 \- {- e3 t, x9 C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) G+ k$ O# v5 v9 g                        part := @.transpOrder;9 v; Z! D( }4 P7 L0 _
                        part.move(@);-- load part
7 ?0 S: f1 X4 S) n4 Q* R: |                        @.CurrIcon := "load";
6 A: {3 {1 f' W: F* S6 f  D                        GlobalDistObj := part.globDestination;8 \( g. l' U! s" a. n
                        assignLObj := rgmanager.rgAssignL;
/ V# \/ i) g1 W1 S! C) m5 ~6 G9 f                        row := assignLObj.getRowNo(GlobalDistObj);& E2 H* p* W5 P' s- s
                        if Row = -1 then -- since 70# z7 o$ S, `5 T8 `+ I9 g& q& P2 b
                                if lan=1 then# V6 |7 s# E  w7 ]* [5 e& ~) n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ r1 C3 j6 W. F8 f* @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 I" r6 X3 ]# a9 S, c                                else& \2 w; V: d" v( V. Z" G' X! U
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, O! M' r+ ^3 F
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! c% R) R' D% r# l7 K                                end;  J  ~& W- o, F+ F+ @& D0 d
                        else' o3 F, V4 C" v4 H, L
                                @.Destination := assignLObj[1,row];
" [* |* `5 Q' {9 h% d8 U# M" A                        end;                        , T* m4 Y; B! G7 ~) U* }
                        newDirection(@);" F3 ]% j2 `& S& A1 O8 w
                        @.HasOrder := true;
6 f7 ?" o& H% [3 C                end;
: n$ c) F5 |; B        end;
& x* q. k8 v! F# B3 x5 o9 Jend;        -- of the method+ b: [: l' ^$ g  M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / J" l- S( n! f; S9 D/ x8 \
4 I) J- a$ n: Z+ Z5 n2 R3 k
这是AGV_putin中arrive的method。5 y- p! c8 k$ K2 k

3 Y3 l# ]# m: n# _当到达物料速度越高时,这个报警更多,$ r% Z( J- e. u, S: f. H3 n5 O7 A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ Z/ g' S. y* z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ v, M8 q1 H% f' c: p) g% B3 B
; J' s: T: L6 F4 K; \
另外一个小建议,就是move,所有的move都可以这样& D6 E$ g: F, n" w
if not move() then debug end: b  B* G4 O: F  j. J$ j$ r1 X: A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 d* x' L& b# W4 \+ i  B
plant simulation中的free libraries有AGV模板,
9 P. H! x, M2 ~4 e: ^. n1 T里面也有案例。
  W" u* n9 D& t. I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( L4 [9 s0 @8 H0 D3 q

2 x0 W4 r3 W% p: V4 ~/ j: _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  @2 W# |" z3 Q7 y, m# @0 Y
2 V! [0 g6 e$ t8 F, Z  `$ z' x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - |( Q) U2 v6 ?) y% v& p2 b3 A& T
这是AGV_putin中arrive的method。
7 r, e" `( I6 L2 {3 `6 c
5 N) G/ S* G9 z) L# g" d" |: h当到达物料速度越高时,这个报警更多,

- @; r& M5 U/ D: F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 14:05 , Processed in 0.017373 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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