设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6867|回复: 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'7 s' ?; Z9 O# Q( `: A; V  m7 j; p1 X
*/
4 J# C5 _- l8 [is: Y6 V  F( s, _. G9 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! r4 o/ k2 d( x8 R! B; O' u
do; Q) e  d" h" e, `2 @& ~$ Z
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 r0 Q: J5 `# a, g
        if current = @.Destination -- else return# f9 f6 X- }7 r  l" |
        then' M& q: m; e% `) c! J# U
                @.Destination := void;
# d! U9 z/ O* U+ d$ F                if @.occupied then+ \- k, K: [* v
                        part := @.cont;0 o3 H: g% G8 y9 M4 d
                        @.transpOrder := void;
' |3 A0 o* _$ X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( N1 b" E) L3 l& V( j. ^                                @,root.eventcontroller.simTime);6 M$ w7 ?: Y, f0 M* p
                        @.HasOrder := false;8 L8 j4 z- a& Q
                        @.DrivingHome := true;
5 f& s- k: D$ w# g$ K                        rgManager.tryToStartTransOrder;
- U7 z6 d8 _' s6 N& w& }                        if @.Destination = void( K$ v" U" X/ C5 g7 y
                        then -- no transport order for vehicle @
: r9 O' w- P. p- P& f                                @.Destination :=/ ^& m. f% Q7 b" c+ \
                                rgManager.nearestFreeStation(@,track.~);
! Y5 O& d6 J% v, X) w  q7 n                                newDirection(@);   ; s# j: Z: D' d" D& ^
                                if @.Destination /= void then* w2 L" w! \4 P- k+ E( p9 S% t
                                        @.Destination.NumReservation :=
  g( j3 Q3 `& K) R( l% J                                        @.Destination.NumReservation + 1;; w' [! O. e, v, j' s) w1 j! ~
                                end;
6 G7 \9 h: n6 e7 x                                @.CurrIcon := "drivingHome";
& T  L/ z% q) z/ S5 x                                @.DrivingHome := true;, b- S7 E* P/ ~3 F& F- t/ V
                        end;
8 g- I1 Q: X' ?1 j: J/ I" x) D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" Q: f: e( B+ {( q: G
                        part := @.transpOrder;
. [% ^4 Z) e( L/ X                        part.move(@);-- load part2 y7 N1 T6 f7 K* h
                        @.CurrIcon := "load";
# z$ g- Y: t2 Q7 e) n$ n" [                        GlobalDistObj := part.globDestination;! ^* y6 {- y7 p8 N4 y0 P0 s% o
                        assignLObj := rgmanager.rgAssignL;
$ R% E( ]) r& w2 x+ q                        row := assignLObj.getRowNo(GlobalDistObj);
* O9 \; B$ g* B: u5 V                        if Row = -1 then -- since 70
; G: [: @2 [0 p& Y, z8 c: V# ]; O                                if lan=1 then
; X, ~8 }# {) |* H% u' |: h/ b3 |( L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% Y# s  W! ~, q3 w6 L6 N' z0 E$ I1 J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. h$ c) J, c' s/ @* C) k                                else
. h3 K! a; Y0 q! ~& N0 X) X  p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 V: n$ _8 B! t4 w5 T                                                to_str("in docking station: \"",?.~.name,"\""));                                , |/ }4 C* q) Z0 z
                                end;7 Z! R& y6 _* m; x* r
                        else9 Y3 Q7 I# D6 c6 g6 Y& a' H9 q+ R
                                @.Destination := assignLObj[1,row];" s$ ]2 }3 G$ S# m6 U5 H7 P) y8 C7 E
                        end;                       
# b/ ]+ ~5 c4 I+ s                        newDirection(@);
& @6 V$ T  _. f! Y# f2 Z' O                        @.HasOrder := true;
' ~# J! f( X! P# i+ R6 A, ?                end;
, Y) V7 t' {4 G! b' G        end;
8 F( ]! w0 t( g1 X  X1 Uend;        -- of the method
8 G4 H' A: j5 |5 l- z8 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! i$ ]; n" m" o  X* E
  a+ x! F8 @- W; \! ]" n这是AGV_putin中arrive的method。* k: D' Q; L/ U. A5 k: ?

% h' D9 s) M5 B4 \3 O6 L当到达物料速度越高时,这个报警更多,, z# {* X9 T7 g
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 I+ m) h7 _5 e& k. d, t& h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 Z5 i' n; j3 a" I5 U; v$ T! N
7 G( |$ `$ q1 ?
另外一个小建议,就是move,所有的move都可以这样% N2 ]5 }6 g6 c6 v- ]0 p& v2 I7 m
if not move() then debug end& }& T! r. u$ ], Z; j9 o0 d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ j! V& J6 ^' Z* h- |# n/ Hplant simulation中的free libraries有AGV模板,; B8 e+ s; C4 U! \" r5 Q
里面也有案例。$ v. k- K8 G0 N. c7 Y6 e) y  b7 Q: G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ n3 Z( J/ v- {$ Y2 y# @3 L
4 S2 {: }, Q3 w/ ^9 P) \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ) f7 C) V7 G" q7 w8 j' O. t
: S- @1 s# {/ {5 S8 P5 P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  W! i3 w+ U! d1 p# T这是AGV_putin中arrive的method。
+ N; x% }& W% E/ m" ~$ i6 y
" Z9 ^" B. |# Q4 w当到达物料速度越高时,这个报警更多,
% l* K& x" k6 l# `8 [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-3 15:04 , Processed in 0.020657 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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