设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5842|回复: 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'
8 n# t; {5 r' Q& u& l, c( a*/
6 [7 \! b9 i+ y4 g$ I" Cis
* H- V# I3 T2 D8 K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 O# d, e8 j2 f1 p  Udo3 i, @* G) d6 I* r" m
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ \- z) w( X7 o: Z
        if current = @.Destination -- else return; `( |7 s* g( M% v! C" _* k
        then3 J* g8 j% J" [, ]
                @.Destination := void;* B" t8 I1 e; z3 \( l! F2 A1 T
                if @.occupied then
5 U. e' A, s, a3 p$ n8 V3 v                        part := @.cont;; X2 y! j8 S. E; r, x' t
                        @.transpOrder := void;2 ]) Y( K% Z6 p1 s7 J/ [' A0 _5 M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; C) t8 n0 T  y) X
                                @,root.eventcontroller.simTime);/ ?. M' V6 ]% c* {7 V* p% S
                        @.HasOrder := false;' D0 p$ w6 O$ m0 R0 A1 r
                        @.DrivingHome := true;8 c6 l) D6 Z1 Y6 w, ?
                        rgManager.tryToStartTransOrder;8 W9 y* E! x# U6 R3 [' c1 x
                        if @.Destination = void& r, R- b/ t9 @; s
                        then -- no transport order for vehicle @1 Y% I4 F; ~1 _4 |& y
                                @.Destination :=
; j- O- v1 G- b                                rgManager.nearestFreeStation(@,track.~);
, [; y, m8 `5 N! Y) |! S; i- M                                newDirection(@);   8 k% f+ P) b1 b% i8 L& l8 w- G5 F
                                if @.Destination /= void then
+ Y4 y# X) g; h* M, L; C2 B                                        @.Destination.NumReservation :=
+ w' x( }4 F0 p( t: q$ f% N                                        @.Destination.NumReservation + 1;  }' n# z, X* S% U0 J
                                end;8 p4 C% V+ L. T/ x( r5 V8 I& @7 [, O
                                @.CurrIcon := "drivingHome";
0 r& L" S1 j) H( I                                @.DrivingHome := true;
9 `+ q3 H! b: H7 i- `2 [3 a4 e4 _                        end;, c, Q7 H; r) V" y5 h' N- r( Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  M; H5 A. G5 P( p                        part := @.transpOrder;7 i: @$ B$ L6 |: Q2 t
                        part.move(@);-- load part7 k3 W2 H) ]' Q: }# ^; \* {" T- R
                        @.CurrIcon := "load";. i$ z& t4 w) b% X7 s$ N8 p; x
                        GlobalDistObj := part.globDestination;
% V" @  U% l# a3 P& y                        assignLObj := rgmanager.rgAssignL;
9 S+ e# a2 {6 o" _8 s                        row := assignLObj.getRowNo(GlobalDistObj);
3 I$ s* Z) u( }! M9 Q                        if Row = -1 then -- since 70# N, J4 w6 G5 A, N% f
                                if lan=1 then7 E- N# c. W$ x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ z% I! F* P* {* e- c" R( V1 _7 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- ~( {; _' B6 i& h3 o) A# E& J                                else0 S/ L& l" k. l: E2 M" J3 F. a4 A
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 y, `5 Y( M& W1 d9 f, o6 i                                                to_str("in docking station: \"",?.~.name,"\""));                               
! H' A+ D1 R3 z: s' x0 d8 d  \                                end;
$ s+ O6 h- [, S: u4 w& ^. }" x                        else
1 }4 ^) r( e" J6 g+ A5 \; [+ F" y; l: j                                @.Destination := assignLObj[1,row];
- I7 j" b$ X& T0 j+ `8 C) l                        end;                       
  Q( t  `- j) K( o: p* A/ F                        newDirection(@);; _; j- I, d7 [, g, _
                        @.HasOrder := true;. [2 [1 q9 o7 r2 w; ]$ Q, y
                end;7 x7 i* v; H, c0 [& k+ ?. D+ \. X
        end;
- C( [, X% m+ `$ Y  qend;        -- of the method2 q9 `- _2 k* R; D6 }1 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 X: g( M; z* E- s  u" e& Q: }0 u# _* N
这是AGV_putin中arrive的method。7 F6 }9 `2 M; ^! j
6 V8 E5 M0 D* @4 ?
当到达物料速度越高时,这个报警更多,/ B/ J5 V' D) g5 a0 Y  ]6 |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 n' k; {! O6 y+ i/ z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 d- ~2 [7 T! H4 c" I- e$ ^- y* P! Z" `. T9 `1 Q
另外一个小建议,就是move,所有的move都可以这样' O! y6 N. X. K6 t0 K$ Q
if not move() then debug end
4 v& T' |/ |0 Z3 H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 [; `+ _( y8 P9 n* h. \7 x" cplant simulation中的free libraries有AGV模板,' }. ]8 v- f7 w& C$ w# F5 L
里面也有案例。
. }7 S9 t5 Z; ^" p: j" {& s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# M  i2 w: ?  L$ w8 m. d& Z1 U9 `/ l/ P0 l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # ~# f# ?: Y0 y

2 i5 m6 p+ S% S那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# M1 o5 b0 D; a! W3 I这是AGV_putin中arrive的method。
6 j/ s8 e+ Z) n
5 g+ W! Z0 P* j( e$ u当到达物料速度越高时,这个报警更多,

1 z9 e" E' M0 x* n, ]" X$ n! N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-26 00:47 , Processed in 8.866775 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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