设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8198|回复: 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'0 a. w7 J! W5 g0 o/ O8 q
*/
9 ]$ j2 _5 [" E4 L) pis
4 }( P5 d8 \& N1 w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! F& I0 Q  r; a" q: L
do
6 Q7 F. G/ G9 i: X: p) |        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 y6 v6 Y1 }( f' _8 F        if current = @.Destination -- else return
! X5 j# }: V% d) {* g' W        then4 z+ M: e9 i( a+ B& E' I
                @.Destination := void;! d$ X, F3 Y5 _0 w2 Q
                if @.occupied then* C% M" x) O5 }( g" a
                        part := @.cont;
8 H' E+ n* `) d                        @.transpOrder := void;
( t* U: F; J1 F6 Y0 |# E% h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 D( g3 E0 v/ W9 N! e% |                                @,root.eventcontroller.simTime);
1 K/ U+ `9 E5 {                        @.HasOrder := false;" {- B/ w1 {( v. i# Q
                        @.DrivingHome := true;
$ T( o) _) z7 S                        rgManager.tryToStartTransOrder;
- b0 s4 H1 ^; p4 K  g% l/ m                        if @.Destination = void7 h0 s4 Y9 h. E/ V0 ^
                        then -- no transport order for vehicle @3 V+ {; v4 b0 D
                                @.Destination :=9 d8 |8 s1 \- F  S  K
                                rgManager.nearestFreeStation(@,track.~);
$ s% f8 u% ~* m# F7 M  k6 d. H                                newDirection(@);   ( ^% t' v3 ?" [' [1 p
                                if @.Destination /= void then
9 G. b( z. K% U% a) z% G6 d                                        @.Destination.NumReservation :=
  M( a( b0 b4 q7 r                                        @.Destination.NumReservation + 1;
5 ~( }1 I9 M* P4 J                                end;
# c9 Q8 Q- f4 l. X2 Q. z3 e                                @.CurrIcon := "drivingHome";( B7 G; D5 B. ?5 w8 W
                                @.DrivingHome := true;
' N9 M5 _: }# O) y( I$ r                        end;
6 j* V0 V' F- H  f                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* C' T. d) ]( J- |1 U6 t" w1 W. V
                        part := @.transpOrder;
& s( u7 ?. g) T: Z, R/ @                        part.move(@);-- load part+ H- p" n& l6 j, q$ ?0 {& A( Z
                        @.CurrIcon := "load";7 h, ~* _9 V& r% F% n
                        GlobalDistObj := part.globDestination;6 M; P, _5 T. I6 m# e% ~. p  j
                        assignLObj := rgmanager.rgAssignL;4 U& j% t6 ?  P2 c0 C5 r( F& N+ O9 ~7 b
                        row := assignLObj.getRowNo(GlobalDistObj);
1 A+ r7 K$ h9 ]) `3 \3 k. {  [                        if Row = -1 then -- since 706 L& Y+ T2 B: c8 m: ^6 H% s
                                if lan=1 then
4 q% Q% J, I* l4 d5 f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 e" |& ]+ I7 S; e8 G9 o
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% S  z: u6 D6 u0 I# W4 \                                else
$ r, Q" |& {7 e8 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; e8 \' e* \6 S. \& U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 w% h( l6 p: Q% o/ X  L) J4 W                                end;( g4 {* `% x; l/ k" x9 P
                        else0 t- M+ L) F! L$ _; P/ N
                                @.Destination := assignLObj[1,row];, V! c2 R+ \, _8 h
                        end;                       
, f& Z( a/ ~$ q& L/ ]% D                        newDirection(@);
2 {' l) B2 y" t/ l! X                        @.HasOrder := true;4 N$ ]: ?2 r3 b. r7 j
                end;
5 P: |. @+ k$ t! k        end;
4 N4 e0 l, O1 @7 d5 Pend;        -- of the method1 T0 o) K4 [: y& [" w1 K+ I6 b5 l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , A8 o! `/ v$ ]- W, w; S
% v5 ]: ~, A" q( W1 U8 n
这是AGV_putin中arrive的method。
' J$ S! I. x) N5 K* N+ R; q- R
! Z6 T9 ?7 t8 n/ q' ^9 e当到达物料速度越高时,这个报警更多,% B2 U! U. u" k4 p
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 X. ~9 ]! Z/ p3 Z. K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. c) f! y& L" Y$ K8 r, V
1 A6 [% a' v" E7 n5 e  p. l另外一个小建议,就是move,所有的move都可以这样
! z- `/ K4 z0 z( u# Qif not move() then debug end, K' d+ Y( e7 z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ l( [, A+ U  E6 w/ nplant simulation中的free libraries有AGV模板,
( z# _5 J7 i7 L7 Y: _4 w% P里面也有案例。
; C' U/ d+ L  J( E* Z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" Q% t; f) N, b0 e5 G
6 A# Y* F8 y# }; E1 x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( c# L& r. t. A* }# I+ ~  F
; U' q9 I7 k- F$ V! R: H# b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & y: a) q& u; `6 e
这是AGV_putin中arrive的method。
" s) I# W' E( `' ]+ ~; Z
9 E3 f. G$ ]4 w8 G6 O( ^8 e9 \5 f当到达物料速度越高时,这个报警更多,
: q; \; P# t# @' j0 w8 Y5 L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 09:02 , Processed in 0.017836 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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