设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9591|回复: 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'
6 v1 V  P9 ?" a9 R, L# b*/2 y2 j/ j) v! J. ~( f, P" ~2 J  k3 y
is
, A0 `2 P: N. ~; Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 b/ p1 y: ?6 ~4 |9 F7 w4 {
do
! G: J( I6 }  }( L# E, A        Lan := rootfolder.Internal.Tools.AOLlanguage;
% G4 d' w5 Z. c' p0 h* s        if current = @.Destination -- else return
: P7 e; |* v# q5 P% h( |3 w+ t        then( `' {. n* J1 @# k
                @.Destination := void;
: V/ j8 Q2 W8 k4 }                if @.occupied then
  N  j0 V8 E/ @2 [; c                        part := @.cont;
& W8 C4 W: J5 _% c( {3 p9 I                        @.transpOrder := void;
+ a& Z) {* k, g( |- l# y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 l# C8 C5 {7 n6 E                                @,root.eventcontroller.simTime);
1 x8 l: m6 J; m, {* [- S! q- m                        @.HasOrder := false;
0 g: t% W% N( d% w8 T& \; b' J                        @.DrivingHome := true;2 t' _1 _) F) V, ^" I( H3 q% U- a
                        rgManager.tryToStartTransOrder;
/ e/ T5 b. \' h                        if @.Destination = void
7 C, |: [% ^3 ^; Z                        then -- no transport order for vehicle @
7 s+ W7 z9 M+ G; E- t                                @.Destination :=5 F8 Q2 b6 j7 v# L$ _
                                rgManager.nearestFreeStation(@,track.~);' \4 v% {. _1 ^$ h* ~7 L' c
                                newDirection(@);   
5 M7 ^- k8 U- E% x. A; w                                if @.Destination /= void then. y, a" Q  f9 z
                                        @.Destination.NumReservation :=$ p- u9 G# o. L0 k: h  z5 }
                                        @.Destination.NumReservation + 1;1 s* m, h0 {/ X: I
                                end;9 h  Z) g9 |6 W" A3 d
                                @.CurrIcon := "drivingHome";
4 L7 `$ Y2 u+ D6 @; c; Z; [                                @.DrivingHome := true;
7 E" Q% M. X' [) C& M- E' I2 l                        end;  e6 L5 X( A% Y  z( r" ], ^) S! B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ `, [3 ^" @/ j4 W5 C( j8 A                        part := @.transpOrder;2 W# ?. o8 m8 S. }) |1 L- k% _
                        part.move(@);-- load part
. j  f) I7 p; ^* z5 z                        @.CurrIcon := "load";
8 n/ k& o; Q* I" v0 h                        GlobalDistObj := part.globDestination;/ }0 I: \# {6 P
                        assignLObj := rgmanager.rgAssignL;" L: d4 f. B* m  g" X6 R" C5 e
                        row := assignLObj.getRowNo(GlobalDistObj);
: [& k8 G" j6 R) ]4 B                        if Row = -1 then -- since 706 w4 k) U3 s' y/ Y1 `
                                if lan=1 then
$ J5 e0 w+ ^% T9 c; C2 d$ u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  i: d# H9 t, U4 Y! E                                                to_str("in der Andockstation: \"",?.~.name,"\""));; x& g7 z; C5 z' b# ^
                                else# @4 ~, N% l0 S0 g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ x7 M  y, E: n3 I6 j# R  b7 H                                                to_str("in docking station: \"",?.~.name,"\""));                                2 U! @4 }1 L# L5 _6 i
                                end;1 w. {, v& W( R
                        else4 I4 ]4 c2 h8 j& U
                                @.Destination := assignLObj[1,row];% [" @' v# ~3 v
                        end;                       
- f4 a5 G  a# P5 `- a$ L2 a  n                        newDirection(@);) q8 R: X- g- c
                        @.HasOrder := true;5 c2 A' I9 s1 o  ~6 ^- w5 H
                end;  a" W0 T* `" D3 ^9 y# A
        end;
3 F6 A7 {' h: E  Fend;        -- of the method
+ t/ z. V4 M+ x( A# c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 y& `: k0 }1 M2 Z7 {
& @/ g. |+ I8 @) H! |
这是AGV_putin中arrive的method。
5 i' P7 `! {9 A" N+ q8 \! k2 l4 A
8 }$ _) D# ]0 y- i% b- @& K当到达物料速度越高时,这个报警更多,
  x( B" P7 z8 T) \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 r/ _! p3 Z# b9 m; L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% i0 r8 @: n- F8 m: i( w
* R/ j" m* l3 |4 H
另外一个小建议,就是move,所有的move都可以这样+ j+ v  D9 e$ p! y- l$ g
if not move() then debug end
5 L/ \- q1 J5 B. b$ T; Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 l/ N$ u3 K3 Pplant simulation中的free libraries有AGV模板,
3 L% x9 V7 C7 V/ Z& [( Q里面也有案例。6 d+ n) K: }" ]8 g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* s5 K5 o  t. ?2 w! Y8 U& H; a& K

1 s& h! P  f. c4 n9 M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; o. N' S/ Q9 Q9 Q" D1 o* @7 Q# r
: s" G7 `1 l  a; @4 w$ ^" p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 U) k7 K/ ~2 \( z" Y
这是AGV_putin中arrive的method。
, y8 k) v2 s7 k4 }3 _! x- J+ K. ?. _2 C" G/ E) I9 y( S1 `7 }
当到达物料速度越高时,这个报警更多,

8 v9 W6 c' r. K4 R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-10 10:30 , Processed in 0.017721 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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