设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7855|回复: 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 C3 m% S* _- [% H. l" Z, k
*/; j& J8 {; o/ u- B7 I5 P
is
3 N7 e- ], l* x% ?) T$ j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  q/ v' s. I1 K3 p# n& {& mdo
& F# B. B  f3 j9 {7 v        Lan := rootfolder.Internal.Tools.AOLlanguage;- V& k# A5 l( U. v' T( {* i
        if current = @.Destination -- else return% Y5 p9 L' F# G) K7 w9 Q7 g
        then" }* l  e4 B1 s# Q& z$ X
                @.Destination := void;
9 K' r9 s, I' u3 q8 C                if @.occupied then( S( o4 d; i" u1 g- O  E
                        part := @.cont;" e  d; x7 U& q* g& j; L
                        @.transpOrder := void;; V. ^! Q) E- V( H4 v  r+ [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) b. h/ E* ^8 A/ m+ m                                @,root.eventcontroller.simTime);
. ?, I8 a8 P; T0 c                        @.HasOrder := false;
/ W) L; N- X: q, T                        @.DrivingHome := true;
: t  w/ z; e$ G0 Z+ ?! D8 ^! K                        rgManager.tryToStartTransOrder;
9 H- @! |6 g" X$ R% S                        if @.Destination = void
$ v% W3 m& W' H& L# z* V" T" n                        then -- no transport order for vehicle @
$ _# F% }: }0 v                                @.Destination :=
0 u% d$ R8 v' u7 n9 J# ~( ~: r                                rgManager.nearestFreeStation(@,track.~);
' d% Y" N7 X# D7 t/ f3 d. b$ o; {                                newDirection(@);   " h8 J  O; @, |. R! t1 X% F% s" S
                                if @.Destination /= void then9 R, [# p9 @7 L, ^
                                        @.Destination.NumReservation :=
0 P3 m3 @" O7 X( T  q. Y                                        @.Destination.NumReservation + 1;3 C3 Z) v. m. _& ^; Y/ b( v6 v
                                end;5 d, c+ N' d) D/ d
                                @.CurrIcon := "drivingHome";$ j: ?% S. K+ ^- _& h) b
                                @.DrivingHome := true;% t/ J$ a& n8 h8 N* `2 Q
                        end;
. W7 x. A* ~$ j* }  \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; e- y  K: N7 K. d$ p
                        part := @.transpOrder;
  Y9 F* n* t& m7 d. ~                        part.move(@);-- load part/ y) i8 K1 O% V/ e* s( t
                        @.CurrIcon := "load";( T5 T# d7 Y3 J/ R2 K- z( I" I" J
                        GlobalDistObj := part.globDestination;- H; A+ A  A% B) Z4 I, F
                        assignLObj := rgmanager.rgAssignL;4 E/ p2 x; Y3 S- s9 s% |
                        row := assignLObj.getRowNo(GlobalDistObj);
4 E7 V7 F4 d+ n7 T+ j                        if Row = -1 then -- since 70
+ ~% a$ d% C% s* E                                if lan=1 then2 c5 W3 M9 {$ B  z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! L  b) \9 S  ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 _1 s1 |* w* N9 Y. w                                else% ~$ J  I3 j6 Q- |% |% U
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ N9 V3 e/ K  {" J* Q
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( j. A/ ?+ G* V0 {2 x% z, k: g
                                end;9 Z0 k+ ?, [/ s" X9 J) `
                        else
, ?0 n2 v# o; j) U. p% ^8 ^; Q( J                                @.Destination := assignLObj[1,row];! G+ N: e' ~  C# Z* W4 c1 |0 R. f
                        end;                       
2 X( G; G9 W8 Q7 w4 F                        newDirection(@);
: v8 V5 X- b+ K! X: [; ?                        @.HasOrder := true;2 x: L+ Q/ r- L( L9 d
                end;8 E2 @- r) \* J$ u( e
        end;
+ b6 b/ L+ y* V# [3 Gend;        -- of the method. l; S3 U$ V4 _8 p8 g! ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: n2 m  ?+ L; i: I. @
! q8 N6 P" y& @8 h( [2 V* P4 L这是AGV_putin中arrive的method。: \. z5 ]# c( e& V& p- o; X" P
9 C$ c" O7 C6 S, u* [; g
当到达物料速度越高时,这个报警更多,* J* B* |$ Y4 |, @4 H4 Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ G( y% }* q! a& m: ]  D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 t' J- n1 K# W) U( Z1 U

; p) Q1 I! c! k/ q9 m' ?* g9 j另外一个小建议,就是move,所有的move都可以这样
* Q/ P- P/ w9 l$ \0 _if not move() then debug end
. M2 Y( X. r- C2 `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 E* k3 H5 c/ t7 j5 \, mplant simulation中的free libraries有AGV模板,
3 {3 O; c# Q1 y* i- }8 p里面也有案例。
. `% Z' g+ a' N, \我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ l' f3 d9 J5 |& d; H; R% a9 v9 w- @1 s* U- [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' t" w+ C0 o$ c8 @" C

. F5 m/ m5 K" X+ Z! L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 G5 ~/ R  {- M* p( f这是AGV_putin中arrive的method。4 D; E2 k8 ]3 {' H6 S" B

* f  A4 S" A5 x7 |& ]当到达物料速度越高时,这个报警更多,

& A9 \: o+ i: M' u# a! ?) c3 T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 00:01 , Processed in 0.019442 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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