设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9967|回复: 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'5 @# {0 ~8 ^/ N# u# _
*/
9 {+ Q3 G! q( m$ l! Vis4 x2 N  M* r1 q" v6 v7 r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; y4 J) j: X% n$ J9 Vdo; ~4 `3 h' H% E& d5 {7 S  b: n
        Lan := rootfolder.Internal.Tools.AOLlanguage;
+ R/ d2 ]; p+ F        if current = @.Destination -- else return: {! u( c# \7 L% N3 l) k
        then
7 ]/ r5 a6 _) I) j( F) i4 g                @.Destination := void;3 I$ i  E' ?9 A1 w2 |
                if @.occupied then* o  I7 v6 ]" l
                        part := @.cont;
) _. C9 h9 M+ ~* `0 c$ ~1 C1 ^1 k* _4 H                        @.transpOrder := void;) K6 [  x2 M: U4 S9 f/ E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: B. D* e/ p8 o  p
                                @,root.eventcontroller.simTime);
2 F. c; k: \* ]6 M/ t8 E9 F0 v: J# f+ Y                        @.HasOrder := false;
5 m- D0 b: e* d% l& K+ _% f- T5 l                        @.DrivingHome := true;
4 l0 Y# h7 w+ G  ?                        rgManager.tryToStartTransOrder;; f# L  t( N& V; H
                        if @.Destination = void
* _/ R- H7 S- Z, d0 K7 l' d                        then -- no transport order for vehicle @3 w/ h6 ~; Z: m: C& d, F, G
                                @.Destination :=7 w4 Z6 W+ v$ k* Y6 m9 @
                                rgManager.nearestFreeStation(@,track.~);% z+ q( ]" }9 H) N2 c$ T# o" W
                                newDirection(@);   ( w0 e* S" c' c
                                if @.Destination /= void then
) g7 f  M- g* S" z4 d+ D7 d' ~+ g                                        @.Destination.NumReservation :=
  c& ~" e! k, C3 z7 F* z/ h0 H                                        @.Destination.NumReservation + 1;
6 l- {0 v/ T" a                                end;5 {* t& Y  N* {# z9 i; t! s
                                @.CurrIcon := "drivingHome";0 O5 E2 W- M' G) h. Z
                                @.DrivingHome := true;
, F$ ~0 ?* Y! H- Y                        end;
% V7 E& d) Z: s) ~3 d# h                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; G" s. f6 r. E1 n- W, e" T+ o
                        part := @.transpOrder;
, {: Z# @+ F  G( y) A/ @5 b# N                        part.move(@);-- load part
/ |7 |' i  H3 x% _% K                        @.CurrIcon := "load";. M; H9 K& m8 J) e6 l
                        GlobalDistObj := part.globDestination;5 Q) {+ [3 x) J: n/ k
                        assignLObj := rgmanager.rgAssignL;
! \2 G4 B1 n) a; k                        row := assignLObj.getRowNo(GlobalDistObj);0 o8 S) r- I  f/ A) y
                        if Row = -1 then -- since 70
: |6 D) g) D3 G% r                                if lan=1 then- t/ A9 M. [2 V( Q1 w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& L/ H+ r8 D* @  Y5 ^& S! _5 O: g                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! O4 \+ D! v+ n                                else
" L) s& i' S# n0 b+ K+ _7 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 A* U$ W" H3 E% E7 p                                                to_str("in docking station: \"",?.~.name,"\""));                                1 N& @- s$ L7 @
                                end;
& v3 r, W2 s4 C: k; I  K                        else
. _& t# [5 \5 V; d6 R                                @.Destination := assignLObj[1,row];1 v# f5 k% k/ B5 ]5 ^0 Q, ~7 x( X
                        end;                        3 ?% {/ P* Y3 v! ]& B1 G
                        newDirection(@);
- ~% Y$ J7 g3 Y% g% \0 A                        @.HasOrder := true;
$ x1 E1 p; Y7 k- n; k7 ^0 ^                end;2 N" ]% _& H' I2 l4 u  J8 J+ S2 b
        end;
) ~! G$ W1 v  j( b; qend;        -- of the method5 L$ @4 _- U3 j2 c. U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% O% A2 s8 t+ y9 F, m" r; d4 w6 k
6 z# ]5 n7 [$ G这是AGV_putin中arrive的method。) C( l7 N% ]8 `1 X% L4 I' g% n0 M
1 b  E2 d/ h% K. T# f; E& x
当到达物料速度越高时,这个报警更多,
+ {* q* Y3 }7 A% n3 }) k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 u/ C" M7 E" r% _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 _; q4 U$ ^3 Q% b: Y
0 s1 n# h' |7 s) k另外一个小建议,就是move,所有的move都可以这样
" X) e  l6 J$ z0 [8 |6 p3 H( ?4 ^if not move() then debug end
6 I8 Y2 c* B5 ~/ g2 \% @: N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ S! ^" b% D$ O  ]+ {3 O
plant simulation中的free libraries有AGV模板,
& B$ t% I; U. R) f里面也有案例。8 o" q$ E/ S$ q8 V3 n
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ D! d8 h( z! u' W! J
! U; m0 M& I) _5 m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ m' F. E3 Z4 t4 i5 _6 s0 v- ?
3 z  j7 B8 @* {, H0 Y$ s5 g: m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& `5 J; ^$ u5 C; j  p这是AGV_putin中arrive的method。
; }$ _. G3 n6 a  N- H  [3 C- i" ?! i* ~; d/ Z# R& `1 R* O: G0 d' H
当到达物料速度越高时,这个报警更多,

* D+ U, {6 w" b# d* i" W) K& m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 01:44 , Processed in 0.021141 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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