设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7777|回复: 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'
* h, R+ F5 A2 q6 z: `*/. t8 {5 ~% v  n1 ~3 W
is: O) e; n: C5 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( J) r' H5 I! R, Z7 H
do
: ^# ^3 W  ~; O8 `        Lan := rootfolder.Internal.Tools.AOLlanguage;
& B( q2 r: f. k: p/ W) c# o        if current = @.Destination -- else return, _) E7 p* l8 ^& R# A
        then
1 Q. g: Y2 Y, K, b6 O  \                @.Destination := void;6 Q$ ~- i$ m' n8 W1 q/ w
                if @.occupied then: O) V/ H, H& N2 U. S0 l
                        part := @.cont;, |3 A2 U) S& a1 y) j
                        @.transpOrder := void;# ]7 s. k1 r# ]3 f, i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 g1 ^' T$ Z) v4 ^2 P                                @,root.eventcontroller.simTime);
' n$ s( r7 y7 q  f                        @.HasOrder := false;
: I6 W3 j! P2 z& f4 ?% ?7 Y                        @.DrivingHome := true;
, y2 A# e& ?' `3 u# c                        rgManager.tryToStartTransOrder;5 D+ B' \9 v1 N% l
                        if @.Destination = void
1 c; G" @6 W# S" A                        then -- no transport order for vehicle @
% |0 J, ^; [. F4 N0 c                                @.Destination :=
4 G0 J1 B* O; F% ~4 ^                                rgManager.nearestFreeStation(@,track.~);
( E2 r9 |* F$ T8 r$ A( U                                newDirection(@);   
! I% f+ m3 z, d$ {                                if @.Destination /= void then
  t; y' z, T  x& V8 ~+ f; a: q; |                                        @.Destination.NumReservation :=
0 c3 W5 }- p$ T1 D! B2 Q  ~                                        @.Destination.NumReservation + 1;
* @  |; L- N( H3 ~. r3 H                                end;
+ `0 S% u0 c' w. [                                @.CurrIcon := "drivingHome";
1 [4 g3 n9 E4 L+ a8 m& v' t" H, L                                @.DrivingHome := true;- m# m5 n  C3 ~% f, o4 e* S# F, u: n
                        end;
9 ~% t  U4 Z$ B: R" i3 P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) e6 l: u  Q' K* c' C/ ?2 d1 k3 `0 g: k
                        part := @.transpOrder;. l' }# q! D9 i$ T9 M: o
                        part.move(@);-- load part  j  Q. @. |7 d
                        @.CurrIcon := "load";
& o7 s6 g9 J  _2 a& B; Q3 v- ~0 N0 v                        GlobalDistObj := part.globDestination;/ z$ b& U+ X2 z* E" x
                        assignLObj := rgmanager.rgAssignL;
, Z( j3 @4 Y$ G- l7 S8 s7 R  B1 L7 ]                        row := assignLObj.getRowNo(GlobalDistObj);
$ e! m; B5 Q7 t* V                        if Row = -1 then -- since 70) m! U# M3 R0 x' _3 {# T7 W) K
                                if lan=1 then
- R% G2 J# c& u0 C! u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 S3 u  Q' U% h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ M& D1 h  u  K8 H
                                else
% u* n" K1 L: @. x2 f* v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 a1 a; {% r+ K1 Z                                                to_str("in docking station: \"",?.~.name,"\""));                                ' {7 `! ?3 k- f/ ?
                                end;
8 G& z; i$ c- r3 }; B                        else
5 _" x1 J1 j3 {" b" ?                                @.Destination := assignLObj[1,row];
! g& f  y4 d* g  K1 b                        end;                        / I0 I; A! o2 j
                        newDirection(@);
* d" V6 E) r7 Z- _4 `+ y                        @.HasOrder := true;
# W. V+ E* S1 Y9 p$ f                end;( Y* R% `, `* k4 l
        end;
; V. ~* l% N' P$ A( P! x% i) F3 c3 Pend;        -- of the method# d2 J6 m% ]$ y4 j: g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( r" [: l/ q2 ]' s& T
9 P. x8 M& }/ w& @* H  `& p
这是AGV_putin中arrive的method。
+ f+ _) L$ b* h( E$ y- S8 i. [) b5 d' M6 s
当到达物料速度越高时,这个报警更多,& d% X7 u( |. X3 E. A% ~! l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 ~1 @- {7 n: `  B0 }3 S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; d+ ]: C: Z! m1 x, {* B
1 u. K' m/ y: g2 D" G1 D
另外一个小建议,就是move,所有的move都可以这样- K' B3 P. E4 o' Y9 y  W
if not move() then debug end
& l+ T4 ?- g( f- F$ d+ S! x( n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 ]6 D' `2 A' c; f( N% {
plant simulation中的free libraries有AGV模板,8 h. F1 g9 ~% M5 _: f+ u
里面也有案例。
- Q6 j7 K; w% V! q, l我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 v3 T7 h# x' @$ O+ p+ l: T$ g! W. J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 F- T) Y4 O5 G, G( F
' V6 ]6 \0 _/ y- N) [' b0 k3 I那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  U% s; H3 U& I& m3 c, M6 I这是AGV_putin中arrive的method。
8 ^/ O8 d$ {% a3 ~' f7 h: F4 V
当到达物料速度越高时,这个报警更多,

$ A5 k& K. c2 y# N0 t  J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 00:59 , Processed in 0.017432 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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