设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6653|回复: 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'
; ~: C1 c; M/ N& o, s5 v*/
* g! s: c, V' B- f5 k  ois
; l4 s1 M7 X) \6 |, H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ v9 f/ {* v$ Q3 c8 _; Q8 \do+ Q) L( O0 E- \2 @) n% A
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 g' F5 g9 t5 K* E$ l        if current = @.Destination -- else return
2 m" a, l( Q& R7 L1 C5 U        then
& ^$ z4 W; e9 @                @.Destination := void;8 W" c$ U$ X1 ]+ L" J: j
                if @.occupied then
: p* Y$ m. ]5 `7 }6 i3 {                        part := @.cont;
; v7 w5 K( f1 P6 v4 }5 P( b                        @.transpOrder := void;
7 @9 Q- |' Y1 {  u5 p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' H; M+ T. w9 S0 K
                                @,root.eventcontroller.simTime);
& `! `, j: i4 D) N) M7 d                        @.HasOrder := false;
0 G8 e8 N( w% M8 |! M$ O' p! x                        @.DrivingHome := true;
' U4 O' g9 y; K                        rgManager.tryToStartTransOrder;) e2 Q( W7 M% F4 ]$ g
                        if @.Destination = void  {2 V  M8 H' c/ {
                        then -- no transport order for vehicle @: s7 n6 F$ i2 _0 `
                                @.Destination :=
1 F5 y& z. ]/ V% [  C9 g0 G                                rgManager.nearestFreeStation(@,track.~);
9 ~$ N" m3 U0 v0 U( c                                newDirection(@);   6 ^4 T& W' w0 y. l# R" F( ~
                                if @.Destination /= void then
+ ]: X( Y" E( J7 u                                        @.Destination.NumReservation :=
$ O. I( M) o9 }2 L' {" J2 U                                        @.Destination.NumReservation + 1;
9 J9 G( S) S/ d, Z/ S  o5 J+ L                                end;" t& M+ O$ E/ _) a
                                @.CurrIcon := "drivingHome";
/ F3 {4 l8 }4 v( [) J: s) D                                @.DrivingHome := true;
; d9 @1 M8 V6 e% t                        end;" W* [' x' e0 b: b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% j% F% \9 a7 p  w! e4 F( e
                        part := @.transpOrder;
, x. P7 D: i# H; Q* z                        part.move(@);-- load part! a5 t% B* |9 f, \0 \& e: i
                        @.CurrIcon := "load";( u+ t7 \& S' u; ?
                        GlobalDistObj := part.globDestination;7 m0 x; }* r0 y4 z- ?: l
                        assignLObj := rgmanager.rgAssignL;5 J3 K7 h( [* Q* ^, T) q
                        row := assignLObj.getRowNo(GlobalDistObj);% w- p4 s1 u  Y/ q' J. p2 I% P% E
                        if Row = -1 then -- since 70
$ \: Z8 y2 k8 n4 i                                if lan=1 then
. C5 j2 |4 `' y+ w                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. l9 J( M, t, g0 A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. ]; W! t9 E; K1 c) Z                                else& I7 l. T# D1 B- Z5 j& {  W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# s" d- P4 c* ~, X# v7 M$ c
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) A% n! t, H8 x- _2 p/ b# t                                end;6 ^% f" ^' r4 r) u4 ^/ a3 f; w7 R# r
                        else8 v/ r( w; S7 Q: M6 o; a
                                @.Destination := assignLObj[1,row];2 z( g) w! F8 Q. U4 v
                        end;                        * u$ O& p  A( M6 C8 c4 |/ }& [! Z
                        newDirection(@);
: W2 ?. L6 e2 e8 K! K% X' e4 v                        @.HasOrder := true;# e# K; c' p; i
                end;
) N% G7 L5 }8 A1 A& q' P5 \4 }        end;
* G9 D# A- f% A2 fend;        -- of the method
/ {+ Q& N6 E6 j3 ]! {8 I/ _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ s3 ]; z$ M5 X; |2 M' E2 q  p' H

; G8 L4 j/ v+ \7 b! [, V- A这是AGV_putin中arrive的method。* U' _  b  J, W( P& }2 k
6 W3 a+ ~# X" k& A+ k. ]) S
当到达物料速度越高时,这个报警更多,
5 G# ?5 J4 A( w, }) Y3 }9 z. K# K可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: U. n+ \3 o! h7 l4 n' [9 O1 l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 [$ y% t2 V; B* R+ M$ C# i3 n
6 U( N) q, ]0 |* D另外一个小建议,就是move,所有的move都可以这样+ _6 h4 R9 _  b& H1 P5 q- o
if not move() then debug end8 z. Z" W1 g- a4 Z6 ?
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  A6 @4 B( k+ b6 z
plant simulation中的free libraries有AGV模板,* Z* ^0 Q4 r1 f" i: _! E* Z
里面也有案例。
, x0 n, q6 E. s5 J$ o4 a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. C' J  w% X. \: Q& g
. J9 c9 N% y# c+ x+ d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! [4 i* d7 b- w/ R! o3 R* o) ]! d! c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 M1 j7 f9 K. J+ X( ]4 v这是AGV_putin中arrive的method。
1 v5 ^0 }! b$ s+ @/ W( h# }, o/ q
当到达物料速度越高时,这个报警更多,

' H$ L3 ?3 j! u4 N/ m4 Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-18 21:47 , Processed in 0.022042 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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