设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5507|回复: 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'/ ^( J/ M6 o! F, F: C: E( D: F
*/
, R2 _; w6 B0 G* s- c# sis
  v% p$ T; L& q6 J" ^: i) M; D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 O; I/ W* [8 u6 j8 a& [" q* qdo
, N- ]9 F* u& j/ R        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 i$ q7 A  z; m        if current = @.Destination -- else return
; M  W1 t5 w+ C4 y9 D/ Y3 u+ X9 A: _        then. A+ T1 p" d" R& p# l
                @.Destination := void;
4 t0 \' f/ [/ N8 h( e) {                if @.occupied then
8 P2 i: L8 \) `' _9 G% `6 g                        part := @.cont;3 k+ s2 [) B* |$ u
                        @.transpOrder := void;' m: T) _# o& a& |7 |5 C( j- L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! u  ~! o+ V/ c+ i. i- M0 B- q
                                @,root.eventcontroller.simTime);$ s' g6 T' M4 U* p2 a( [
                        @.HasOrder := false;4 d6 |6 A- G/ `! d5 K
                        @.DrivingHome := true;" I4 q4 |; N  ~/ F8 z0 ~
                        rgManager.tryToStartTransOrder;
1 z- q1 t' Q# z                        if @.Destination = void
6 c9 q# T; R7 k' Q" l                        then -- no transport order for vehicle @
) P2 _6 V* ~; T* c                                @.Destination :=
) Z7 v0 ^  A5 ~- _                                rgManager.nearestFreeStation(@,track.~);
" ^2 v1 h" @+ M- n                                newDirection(@);   ( C4 W4 x& ?: |7 j
                                if @.Destination /= void then; j9 |4 O9 k- ?* Q. u
                                        @.Destination.NumReservation :=" Q  E' \' x, x4 G$ ]6 u
                                        @.Destination.NumReservation + 1;; x: U# `2 O4 W$ M7 Q+ m: R
                                end;% B, d: ~( P! a% P- Y
                                @.CurrIcon := "drivingHome";
. ], i+ O7 J# Y$ H- g) R                                @.DrivingHome := true;
% F4 j9 E$ u6 c4 b+ P5 E" w" l                        end;$ f" I2 k7 O, ~( g; O! [# U8 {
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 z) I  P9 y% v& o$ d" @                        part := @.transpOrder;
+ T0 w7 ~# d# B8 Y5 y8 X( w1 }                        part.move(@);-- load part
( y0 w) E. G% w; c; G                        @.CurrIcon := "load";; P- y  _) q$ |: J9 v" k: [
                        GlobalDistObj := part.globDestination;
6 w7 I6 ^, g, U$ C9 H/ E$ @  A9 {                        assignLObj := rgmanager.rgAssignL;
  E8 C! P1 g9 {5 F  H/ `                        row := assignLObj.getRowNo(GlobalDistObj);9 _9 a% a- [2 P# P
                        if Row = -1 then -- since 70
5 `0 A" }3 s$ T1 @                                if lan=1 then- B% \- f5 V" B/ Z7 I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 d- j: _6 M+ n- q& Z( }, T  X# D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& t% b0 n; n. f% d5 K' A( p                                else
; l* n: U. S2 e% Q" m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 B( v4 K: F* k* ~' Y7 l                                                to_str("in docking station: \"",?.~.name,"\""));                                ( f  r) @+ @: S! U2 P4 ]
                                end;
0 B$ {# o9 f1 o( L                        else
- `8 O- }7 o& c! N9 X( x4 a' J                                @.Destination := assignLObj[1,row];
. V" J2 G' l  b: e                        end;                       
4 v9 h4 Z, W3 J                        newDirection(@);7 p2 U; f2 n, w, w& k
                        @.HasOrder := true;
/ I) f$ j6 P) R3 u7 [% Q                end;
" L3 h4 H+ R2 I& r' ?8 P        end;
& y7 `- d' H+ M+ i1 S6 _1 Y6 Nend;        -- of the method" l7 [6 l5 _! {$ \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * J" n, i, ]) R% w9 @1 Q, j
: G# F+ t9 u( \! ]0 i& _
这是AGV_putin中arrive的method。% j1 t, `; [" M6 Q& _

; c; Q' b* f6 i) @8 S8 ~当到达物料速度越高时,这个报警更多,
5 D7 [$ j, S  Q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 C5 G6 g" @: g1 U: O: P. N4 i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( G- B3 [9 m2 [* y# S" X; ]7 E5 C6 L3 H! N/ z
另外一个小建议,就是move,所有的move都可以这样1 M% D& e& L: [) a( S$ ~% \/ M8 a$ S
if not move() then debug end
8 h0 b  |" T! C+ N* Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 b$ T" }, Q0 k5 x6 i
plant simulation中的free libraries有AGV模板," a! X% s1 i6 G4 G, W
里面也有案例。& {7 b; P$ J- O+ T8 Z& D# H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 \" f. h9 B( x2 x
( ~. ^6 R! O% }7 Z1 e# f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 Z7 R7 |$ Q1 @* U6 `. ~

9 z% W) Z3 N" ]+ j; ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% ], j) c. G7 ^  l2 V! q/ v这是AGV_putin中arrive的method。
; h4 S: N$ `- D2 W! b( N3 P* v0 X* L
当到达物料速度越高时,这个报警更多,
" \+ q" I% ]; g- \: o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-29 00:41 , Processed in 4.400136 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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