设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7278|回复: 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'
  P9 M. ^9 z! L) z; |/ Z: O, {$ r*/* l) L, _1 p2 z& @
is
1 m! `4 M* G( \9 I/ n) P1 ~/ P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, B# \2 Z6 x9 c, j+ x' ]
do
# o6 `- c8 `( ^7 ?4 u7 [        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 x' k& q7 \* M& x* g/ t1 l        if current = @.Destination -- else return2 @) ~9 n0 \4 `' L& h" u
        then! b  H( r- V" H+ V
                @.Destination := void;; x- z( G7 L# R) ?! [
                if @.occupied then1 B. K. t  T  \3 y
                        part := @.cont;
/ g7 D5 [+ a. M; z2 v                        @.transpOrder := void;! _# {0 X, M: S. Z3 {+ v/ A0 n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 e3 h$ V0 G) h' j& _1 L% a                                @,root.eventcontroller.simTime);
9 {8 i  Q# p' N5 H4 H# U                        @.HasOrder := false;
; x1 H& b2 }: e/ w6 B- C  }                        @.DrivingHome := true;4 u7 w/ u5 H( I# U9 M" W
                        rgManager.tryToStartTransOrder;
. f% k0 O2 ]9 m' V" X" h                        if @.Destination = void
4 J( z3 B$ S6 `" s! a* U2 Y' W6 s4 y                        then -- no transport order for vehicle @1 G2 S1 d6 W' [) Y, ~1 [
                                @.Destination :=" t9 a0 D& f( U7 G
                                rgManager.nearestFreeStation(@,track.~);
0 J+ J5 R9 {" _, ?+ K                                newDirection(@);   
1 ~0 s/ Y6 @( P2 k: @; I                                if @.Destination /= void then- i* R4 ?' E3 p
                                        @.Destination.NumReservation :=" Y6 F5 G( J! q0 @& k5 s- y
                                        @.Destination.NumReservation + 1;
- h2 J- _1 h* _6 ~                                end;
/ Z/ o8 N9 ?1 J                                @.CurrIcon := "drivingHome";
- a; J; ?4 o2 Z                                @.DrivingHome := true;
9 t8 [! ^! [; M% m8 S                        end;' X  s0 b* G% f8 s; |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& m9 c8 s; l; q/ J                        part := @.transpOrder;; f- H6 K+ L1 e0 o0 @
                        part.move(@);-- load part) K$ ]( m4 @7 V/ S' q" M; i( u
                        @.CurrIcon := "load";
1 d9 c( w/ o! ]! N0 T: |( ?/ _                        GlobalDistObj := part.globDestination;
( Q9 s) |0 }! x0 s: u2 I$ J1 g                        assignLObj := rgmanager.rgAssignL;
* T, w+ s+ w  E% h) I                        row := assignLObj.getRowNo(GlobalDistObj);% h4 `5 c# \0 [. @& u
                        if Row = -1 then -- since 70  H1 N; x$ w& U/ m/ {- q( }
                                if lan=1 then+ n" O0 Z- ?$ J0 P$ v& h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ w# f# Y8 l) @2 @" p                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 S5 `& N. x2 d8 g
                                else+ w- y8 [4 ^- y% d; J8 ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) T+ D7 d3 ^! J8 B3 i
                                                to_str("in docking station: \"",?.~.name,"\""));                                - v4 p  j7 p: \* U+ m
                                end;
8 i) s+ f2 f1 x" l; D# P                        else9 M8 }1 E8 ]2 [  `
                                @.Destination := assignLObj[1,row];$ R5 [- |8 @  W* O* ?
                        end;                        1 Z, Y5 v8 F8 L6 W5 t+ A9 R
                        newDirection(@);
6 k( I  `0 G7 D) o( W. i7 ?                        @.HasOrder := true;; v- Q) J& m( S" Z  {# ^
                end;
# G  X+ P# n$ V        end;
" c+ ]/ b4 F6 M+ L, qend;        -- of the method
$ e" Q6 m8 ?; C8 E7 \. S7 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ ?3 n% F9 K0 p0 s$ b) U. j, B
+ ]+ x4 s5 [4 w这是AGV_putin中arrive的method。
& S# U/ i. b5 E. i* p/ p9 ~. a" `- g. I- [, m! q$ ]/ {
当到达物料速度越高时,这个报警更多,
) R4 i! @$ L/ A9 P# d; z$ b0 O7 J2 M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 s. _$ P8 }; m$ G- r6 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- l/ f' v/ F* _4 K1 n! z

# M& [! ~1 |4 N) A; t: J5 V* l另外一个小建议,就是move,所有的move都可以这样
* W" o3 m1 }" S: O0 Wif not move() then debug end  _- c7 z% U# [. |9 w) Z/ m% ?  n
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 w8 F8 K8 c5 b2 M1 N6 x3 t! a
plant simulation中的free libraries有AGV模板,
% P! c8 O7 x# H0 @, ~0 j里面也有案例。% d# V5 `8 O/ \& i: B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; O/ b7 E; o  x" p) s

, S6 d9 n( Y$ t0 `0 ?4 x7 D2 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 [% V, x/ S3 D' [8 K* G! L9 X7 t" f3 F- M. T0 `3 F* q/ `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* M' t$ l1 }" j+ [, h这是AGV_putin中arrive的method。; ?+ X# j7 Q- h- |3 S
. A8 }5 L: D9 w. |+ |. \8 x; Y$ ^
当到达物料速度越高时,这个报警更多,

" `  V: l+ H0 m3 t  ]) b) v+ E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-1 12:14 , Processed in 0.021752 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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