设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7819|回复: 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'+ M5 F* e, f( v+ Z. T- I4 \
*/5 v/ h- G: z3 d, T$ v7 v
is& }# y! U) v$ H$ N
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 f" b; C% r& M% U! W
do0 g- Q3 ^/ J3 c. [$ h0 C7 A" v
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 v* I/ {" ?; c* O5 X& s        if current = @.Destination -- else return% [: |: R9 n9 ]1 B
        then
& r- }7 g6 _1 x1 N9 J3 _! M                @.Destination := void;
1 K( R6 G; M: O  u                if @.occupied then
% p) N7 G; C9 D  N# J7 m                        part := @.cont;
  J' \5 B% C2 X+ f4 k+ ~4 X                        @.transpOrder := void;3 I2 ~9 s7 J3 M+ T% J- z7 B9 d- t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( L) X  g4 T) |5 v4 F" b+ h                                @,root.eventcontroller.simTime);; d" m& \' V, F3 J- I# \
                        @.HasOrder := false;5 _. R8 _' Q9 _/ K8 d( D
                        @.DrivingHome := true;
9 C0 }; P: I$ E: {2 ?1 r6 U; A                        rgManager.tryToStartTransOrder;
3 I: n9 B) E0 y, W                        if @.Destination = void
5 b0 V# s) U7 y                        then -- no transport order for vehicle @7 e3 F' k1 H; c2 ]) z0 M0 [
                                @.Destination :=: N0 ]5 m, o, I/ F
                                rgManager.nearestFreeStation(@,track.~);1 ^2 L, P$ P4 j$ h( N: n
                                newDirection(@);   / }4 n: W! O1 L8 N+ W7 B% x/ v
                                if @.Destination /= void then/ {9 d" c2 F) m/ O
                                        @.Destination.NumReservation :=2 l+ _, ^5 E* P- I! f7 i0 n, n$ z
                                        @.Destination.NumReservation + 1;2 ^' O5 P2 B& ^2 J+ |- s
                                end;& ]5 z1 A/ i/ g0 n% V
                                @.CurrIcon := "drivingHome";
9 h. R, d% j; v7 r0 e/ X                                @.DrivingHome := true;
5 d. ^% h- \; c+ P8 e3 R                        end;# \% v  I( a/ z: A. {- I6 Q. C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ \6 c7 _# x3 J                        part := @.transpOrder;
4 t. F4 t5 h; @                        part.move(@);-- load part$ ?' C3 [. P. f
                        @.CurrIcon := "load";) d- g8 ]! K# ^4 L$ E% Z+ r4 }
                        GlobalDistObj := part.globDestination;4 `" L7 d' F  b  ]$ w  D% @
                        assignLObj := rgmanager.rgAssignL;3 a( W& i  _. t, X! k# T6 d
                        row := assignLObj.getRowNo(GlobalDistObj);& s) Y6 E7 D  P9 q: r* ~& b2 K
                        if Row = -1 then -- since 70
6 q; M" y$ {& {5 }: ^, f0 p                                if lan=1 then0 W+ H. F# P, U+ |2 h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 _- `9 x8 [, n- i+ `2 T                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 y: w, h+ q) G8 U
                                else: V  d7 e1 _/ Q5 M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% n/ ]7 J3 B2 ~; n  F8 _& t1 h                                                to_str("in docking station: \"",?.~.name,"\""));                               
, m* q/ m$ `3 O6 ]: n+ d7 s  V                                end;: i$ x' T3 w0 I+ C- a9 Y2 }' {4 i$ x
                        else
) C; M8 H- g) v, [7 I: h                                @.Destination := assignLObj[1,row];/ t9 ^  q6 c$ m( R8 _8 z; R. s; k
                        end;                       
/ ]- ^% ]) _- k9 J/ W1 K, O                        newDirection(@);! D0 Y4 s4 R4 Y* K0 ^
                        @.HasOrder := true;
( o* s, z- N' v0 c# e3 B" D( F                end;+ k& y; ]( c* ~9 V& G/ b
        end;
; J4 C! M- {3 ]$ @. {end;        -- of the method
! y( L( F3 m% Y8 i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # x9 k# E1 i) H7 k

# K; s6 T: b1 G( V0 H* b: t" n" r这是AGV_putin中arrive的method。
6 d- B! n. N. }4 [2 p
, h3 X5 J' J4 u# z当到达物料速度越高时,这个报警更多,, _9 j$ |; v: [- [, [6 {6 o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 o0 `. ~# |. {; ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% R  ^# A/ z( N2 W. r& h) p4 Z$ G2 ^
; }. v; I$ m  y' j5 [6 H; q另外一个小建议,就是move,所有的move都可以这样7 S0 C& G# |' P& q/ N
if not move() then debug end: R4 O9 o6 w+ F! R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- x" N" }/ p+ V8 e# U% ~9 f9 Aplant simulation中的free libraries有AGV模板,& v: h  ^& O) G
里面也有案例。3 d! |. @6 @3 X6 V
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 ?" u% n) w5 V, j& m
9 @" R) z, o0 L" ~) o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
/ J, J3 w1 C, q2 r
, c1 Z# a4 ?  K" B3 P6 n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) X" ]; J+ C# \. e# |
这是AGV_putin中arrive的method。, x6 O9 O9 S7 S9 [0 K  `

# s* [% L4 @: H: Q& o当到达物料速度越高时,这个报警更多,

9 z% V/ q  d- Z! v5 ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-30 13:12 , Processed in 0.022431 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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