设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5989|回复: 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'
4 I3 ~; b2 h8 \: D*/
. _& g- d* T) u% V( kis
( E5 X( @! P3 c' ]  E. N5 y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 ^; a9 e; n+ I6 bdo
; h* t! |( s* [7 e6 c- T        Lan := rootfolder.Internal.Tools.AOLlanguage;6 l( N5 m8 R* p8 |9 b# p1 P1 j
        if current = @.Destination -- else return  X- x) u3 ]0 C2 E/ R
        then
0 [# ?% N1 i$ L                @.Destination := void;" l% {4 g* _( C4 Q" H4 L: v
                if @.occupied then9 A% t- o" q& X" Z1 H* i  L
                        part := @.cont;. Z5 U4 q) ]6 j4 o. @0 }
                        @.transpOrder := void;
! F7 N. l3 k* i; E1 F, o  \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 `2 C$ T! i" m- T: c                                @,root.eventcontroller.simTime);" `$ I, o4 A; P1 \/ n+ @" l
                        @.HasOrder := false;
4 G, u9 D( h8 O* K                        @.DrivingHome := true;+ W' f5 _9 A' v& T
                        rgManager.tryToStartTransOrder;
$ \% C- `0 W" ^3 B( u, y                        if @.Destination = void3 C/ K9 H' N) K0 G, O3 _' s2 Q
                        then -- no transport order for vehicle @
: u( p* w5 W: s                                @.Destination :=
$ |4 B% w1 K" K/ H                                rgManager.nearestFreeStation(@,track.~);) @( e! d  B+ L! W* h! i
                                newDirection(@);   " P0 s4 G7 D2 T& \
                                if @.Destination /= void then
0 ]6 o3 a8 y, U) B5 \) b                                        @.Destination.NumReservation :=
/ z0 F: X* [4 B; \# O6 W                                        @.Destination.NumReservation + 1;
% N: b$ F" [) Q, Q" P                                end;- @# I. X& ~0 N5 K- F1 }1 }" _
                                @.CurrIcon := "drivingHome";0 [5 |, K0 @1 J9 |% D
                                @.DrivingHome := true;1 K* A+ ^/ F, n  p+ i' f6 v
                        end;
, h9 D% c6 |5 f" R5 @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% L; s5 {6 ]# i) s  N6 b                        part := @.transpOrder;3 ?, e' [" k2 I% u; d5 I7 g
                        part.move(@);-- load part+ y2 i0 S, z7 ]  y5 y- A- y, q. Z
                        @.CurrIcon := "load";4 J% T9 i. z+ p: k
                        GlobalDistObj := part.globDestination;
# W9 n+ O/ ?5 \$ [) |* H' f                        assignLObj := rgmanager.rgAssignL;
2 a" G+ c- ?, z7 p, }                        row := assignLObj.getRowNo(GlobalDistObj);
. ^  Y9 Y0 a' f3 d1 F7 j; u                        if Row = -1 then -- since 70
7 ?/ }7 H0 K7 I1 R, }! Q  S' t                                if lan=1 then
; l! ]8 b+ w3 M" V5 N! I+ ]9 |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: ^& ]/ q# f5 d3 ?5 A                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 F0 F/ i5 L3 O0 x/ @) F7 z
                                else
6 r: {: J; V$ ]2 a: S$ @0 l1 a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, R1 O! v( c& v* @. w4 Z9 W, S                                                to_str("in docking station: \"",?.~.name,"\""));                                $ G9 o" ^. z  U
                                end;
0 `1 m. n0 [6 b4 s; j. }! O  A                        else
2 o  H- S4 ~# E/ d7 _2 G, j                                @.Destination := assignLObj[1,row];% b! {' F' |# h" F4 t" V  W3 `
                        end;                        , T# y- b% Z8 m$ @
                        newDirection(@);0 q3 r+ {* z2 ^
                        @.HasOrder := true;
6 q, m9 R, ?( M6 \) ^7 @                end;) i- a9 [6 y9 q7 O' `
        end;6 T8 n1 n7 ]+ Q% A0 A2 {. Y* K) C
end;        -- of the method* z( g5 B' {9 R4 M0 f& d8 V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 E" Q( _" _2 J, J& P2 P- T  m

5 w" V3 t+ @( D) r这是AGV_putin中arrive的method。" e9 u5 C; S; m) ^
8 T# W( }: f8 U+ i) J% F
当到达物料速度越高时,这个报警更多,4 Z/ [2 P" f" P* B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ y1 ~/ C. C4 R. r! b9 |) X5 Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 f4 P+ i, W5 G5 b" W0 u" a

# k+ f  }2 d' Y, Z另外一个小建议,就是move,所有的move都可以这样
+ J# G% u9 ~/ u) c$ V( [if not move() then debug end
  R- M/ N4 M, f0 L3 h6 L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; b' \6 ?6 g. J% e, W0 ?! Mplant simulation中的free libraries有AGV模板,+ x% w3 f! N4 f8 N& k  j
里面也有案例。" p, _4 ~0 c- O" A& m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& Y( M! e2 b2 V: ~" Q) [  W( c. U: F6 g4 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! \$ ^# r! b: W" B# m# C1 }

9 _2 M6 e  W$ P" ~0 ^; K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ ^5 z: `: X0 B( i# f3 y这是AGV_putin中arrive的method。8 P+ X2 q2 F+ j! P2 s! _4 }
2 v8 A* \  J& d- V! o; j
当到达物料速度越高时,这个报警更多,

! y' F2 O( s5 }! S; E. K2 j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-11 14:12 , Processed in 0.024369 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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