设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6701|回复: 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'2 u: x" e4 G+ Z/ y* n) F
*/5 x( G1 K$ b+ s
is6 G( j* m( q- L8 x! [, @
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ m  A7 i7 O) Rdo
: [" w: n* q/ G$ G$ D( K        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 Y* G' C4 {7 B8 b! ^- T3 f        if current = @.Destination -- else return; H$ B% L! Q; v8 J( f7 \: ~
        then2 w4 R0 I" b1 K9 A9 n( b$ q1 q/ n
                @.Destination := void;& {% p; F  h8 W
                if @.occupied then
! L+ u. y' P" R- W  i  Y$ L9 q. _& G                        part := @.cont;0 z* U& U0 H, S+ f
                        @.transpOrder := void;; I- Y" Y+ O* v. D: u+ k- Z# m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( C/ r6 Y# Z8 [8 l                                @,root.eventcontroller.simTime);6 d+ E9 S( o( {# _9 n* M
                        @.HasOrder := false;% l7 G) G9 [/ V8 a
                        @.DrivingHome := true;2 I! u# _  P  u$ }7 d
                        rgManager.tryToStartTransOrder;
# N) E: ]  F" b1 c                        if @.Destination = void5 q- T$ {$ O  i
                        then -- no transport order for vehicle @. O' l2 E) v- m  Z
                                @.Destination :=
" s1 X+ t& D- Y: A                                rgManager.nearestFreeStation(@,track.~);
6 M5 s# A% ]- E; {! O! ]9 O                                newDirection(@);   
; w9 ?4 p& r; {0 ~                                if @.Destination /= void then5 S$ F/ W, a8 b+ h9 ^6 p# B8 z3 P9 V
                                        @.Destination.NumReservation :=
4 K/ @4 U7 X# J9 K                                        @.Destination.NumReservation + 1;
; J+ @$ T7 m" }: m6 |                                end;7 b2 [% I( Y- u: m4 Q1 G
                                @.CurrIcon := "drivingHome";
4 m: C& N' n1 ^  [, u: M                                @.DrivingHome := true;
( @( w4 m& ^1 n% J* o# f                        end;' N' F( [1 S5 X  ]
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
, v: L+ N' I. s# \4 V  W                        part := @.transpOrder;7 `  b# f: Q. b. z5 ]9 W# I, @
                        part.move(@);-- load part# U$ D1 u/ k; ]! T; |( ~- a
                        @.CurrIcon := "load";6 ]3 Y' P$ B3 `( Y- E% ]# \% Q9 k" ]# W$ \
                        GlobalDistObj := part.globDestination;
8 O3 f) I/ `: k7 M$ y' }                        assignLObj := rgmanager.rgAssignL;
9 [8 c8 g! ]3 @4 x: J2 v4 w+ O                        row := assignLObj.getRowNo(GlobalDistObj);
; _! n3 u$ `: w( R0 t7 e) Y                        if Row = -1 then -- since 70, U# V6 A/ |; Y- o8 i5 ^* Z, G
                                if lan=1 then
; _: D$ C& l$ X1 S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 L, w* p2 I: O2 y$ @( j" j# M0 K9 i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' ~% d$ w1 F& P" h; b8 U
                                else
' i1 T- B+ [" ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' Y+ i0 F6 K3 J9 S                                                to_str("in docking station: \"",?.~.name,"\""));                                + f( W2 g1 i# N% P  y
                                end;# J3 H. @4 D$ L* m" q
                        else
, o7 N1 ?- l- V& _                                @.Destination := assignLObj[1,row];/ L1 j, ^9 R& e4 E1 O/ S
                        end;                        1 d6 }" A/ l, j" n
                        newDirection(@);
1 S( Q; Q  G% q4 e                        @.HasOrder := true;
- C6 N; y) X6 A. L                end;
7 |+ L1 Z7 Q1 t5 I$ o        end;: s$ p! w. M, h. Y9 X" z$ ^
end;        -- of the method+ y: T" B& M8 L* @: x4 |7 k- Q5 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& k, i  q, V8 z% g0 h3 m. H
" J) B) {8 N/ s+ e2 P' o这是AGV_putin中arrive的method。6 h' O4 D4 B) w- Y
3 b! x1 ~0 U1 r# D$ |
当到达物料速度越高时,这个报警更多,! L' f' Y, S( N3 m/ m4 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. |) p) S9 O+ ?( ^" p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# {2 r4 v4 K2 d- x

# l) l) N: ^% S( B" c% A4 \/ j另外一个小建议,就是move,所有的move都可以这样
& W2 ^% ?! g; f2 o8 Zif not move() then debug end
& T6 p* X, Z) k! A3 {! h这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 a1 J; n0 |) s- s$ F2 O
plant simulation中的free libraries有AGV模板,
# M/ P* l; c, s" T6 Q2 F! i- G, J里面也有案例。* {# i3 [. e3 A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' W4 b' {2 j8 `% b1 H9 l' z
4 S, M. g: U' p我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 M1 q6 K% j" [* F4 O, s1 ]& F: Z& E. H/ V0 W" K& t# H3 h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 @- ~  I7 N! a% V* N( f0 j
这是AGV_putin中arrive的method。
# |+ [/ t/ |6 I1 ?! O7 R( P- ?2 x8 E' G' w/ C* f  V
当到达物料速度越高时,这个报警更多,
! Q0 E$ D3 I0 d( H8 T# p
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 15:32 , Processed in 0.015984 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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