设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8750|回复: 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'$ k& G& ]3 @/ J  W1 [: a" Z
*// y& W) S, v- T/ I% P* K. q* _' c  @
is
0 X/ X/ h/ g1 h        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 G( g; B. R: s: Kdo" w4 N8 T8 X7 P' d; S
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ W6 ?3 v/ E: Q! W
        if current = @.Destination -- else return
- t* B/ T. ^5 \$ G& v1 [        then/ }2 v9 C3 k) @1 v! u
                @.Destination := void;* p0 E4 G) r+ ^$ S* f& q
                if @.occupied then
" o, M% `1 O" w6 j                        part := @.cont;
" B9 m. i0 g8 B9 `+ d) ^                        @.transpOrder := void;
( z2 w, `+ i" i. T( a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 d* t- f$ [  a
                                @,root.eventcontroller.simTime);. Z3 ^5 `9 p% O$ B! |0 C6 r3 ^
                        @.HasOrder := false;
0 l' ~; k: q$ a# ]6 K                        @.DrivingHome := true;
( r! g0 z" @4 C( X( S                        rgManager.tryToStartTransOrder;
0 u7 S. \2 {# r# W# ^+ L                        if @.Destination = void
6 `) B- ^1 i6 h8 S+ A: o( k) x( _                        then -- no transport order for vehicle @
4 H) q# R# e7 j$ p: q% z, b- g3 G1 G                                @.Destination :=
; e! v1 w, {$ w- I: @0 A% g4 `                                rgManager.nearestFreeStation(@,track.~);
/ f7 y  A* E# M. {! `  w& T                                newDirection(@);   
1 \7 y; r4 g: ]6 {1 @% P                                if @.Destination /= void then( S6 i: W+ x# o% S
                                        @.Destination.NumReservation :=
* ^- a" E" O3 H                                        @.Destination.NumReservation + 1;
  _. n' }8 q% E( N( J6 A/ R: p, G                                end;
* Y' n+ ?/ Z) v& |  L                                @.CurrIcon := "drivingHome";( c) |, k; f6 B% y% A4 S4 d
                                @.DrivingHome := true;
) o+ U/ _) k/ [$ c+ m3 I                        end;
- ^* o0 Z/ p$ u; b2 n0 r                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ A; b0 I) B; d& q9 N8 a1 {
                        part := @.transpOrder;% q) B9 V8 g, f2 |
                        part.move(@);-- load part
, x: r, Y+ a+ y$ V                        @.CurrIcon := "load";
2 b& y+ V0 a! R( e9 |- [; f/ }                        GlobalDistObj := part.globDestination;
! Y; o: V# O6 y2 f/ K& x6 C. s  c                        assignLObj := rgmanager.rgAssignL;
' Q" s" f; u2 [. e                        row := assignLObj.getRowNo(GlobalDistObj);
* V1 _5 a3 J9 L: }+ p/ h# Y6 [2 M                        if Row = -1 then -- since 70
- Y4 @. G  j. l7 }                                if lan=1 then
& [) a, T3 Q7 a; z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 Y1 J. [+ f1 v, K7 z1 ^( Y% v2 L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% t! E) C6 H; x/ Z                                else9 E. ^) z' |3 v  Q; h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 K* `- F' }. i% i' ?                                                to_str("in docking station: \"",?.~.name,"\""));                               
: j% j' j8 u6 A$ ?                                end;
" a$ Z4 t% [9 f! c  n- G                        else
& Y, G1 U8 H; w! y( w! A0 l7 \                                @.Destination := assignLObj[1,row];
* t+ E- |& y* q: l# ^* C                        end;                       
2 v# j" i+ K* g# A                        newDirection(@);
' }# ^0 G# ^' k8 s7 k                        @.HasOrder := true;3 R* f1 k' d/ v! F8 {$ ~  ~
                end;
( X1 c7 a$ a8 L, A, j+ W        end;
- n0 ]/ }4 ~5 ?6 mend;        -- of the method  a/ }4 |, w4 c$ }5 V! @6 G" A: K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 {4 h4 M( R, F5 ^5 J
4 ~0 r. H8 k1 M6 C/ B这是AGV_putin中arrive的method。) m- N( J; N: e8 W: L1 F

: j, s8 F1 [$ c# g3 [( @当到达物料速度越高时,这个报警更多,% r4 Z5 @1 S. [% E# |2 U; I6 [; h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) d$ e% b- T! t( L: U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& ~3 p+ f, [' W, X) H) J# l* p* m4 G  u  Y5 ]1 y! b6 z
另外一个小建议,就是move,所有的move都可以这样
+ }4 b. x1 ^5 f9 m' Pif not move() then debug end
7 j$ _, S# v: |, k0 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 ~% B0 F& L* m: e" _$ rplant simulation中的free libraries有AGV模板,
0 R4 g- Q3 B6 S: j里面也有案例。1 N; u/ g7 ?/ `/ v; R5 m/ q+ E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) I, d# Q! x# Z' |1 J" e0 e

  j% f2 R6 B# K* B; ^# G我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! M; j, q% k. X1 v/ f) d1 d

; D+ A: P. b$ F/ W1 l) G" M( ?那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 U6 i' \9 W- p1 V这是AGV_putin中arrive的method。+ v2 V8 Q! @( B# S
* y1 V5 _+ x+ ~! h% J
当到达物料速度越高时,这个报警更多,

( O7 J3 c7 u6 C9 R% `! ]/ }2 F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-24 04:36 , Processed in 0.019226 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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