设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9239|回复: 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 j/ C$ u2 J# [& a( i. f*/! i/ i  C! h. x6 r
is6 u0 g- K4 o3 |2 `! b0 S* H2 L& h6 H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: {% K. T- K; P4 ~- M1 v
do
) |7 r2 O0 i$ J4 k: c        Lan := rootfolder.Internal.Tools.AOLlanguage;" A# V) ~2 C4 ]( p
        if current = @.Destination -- else return0 _- U) R$ j0 k9 I
        then8 H, @4 w/ D4 h
                @.Destination := void;$ Q. V! ~1 N7 S$ O" w8 ?9 ?
                if @.occupied then
# y  t5 D+ D+ f7 M( v                        part := @.cont;: H/ k8 D- D+ d+ F7 n
                        @.transpOrder := void;2 B1 o  r  i9 ^9 K
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ U3 j8 M( Y0 _1 r                                @,root.eventcontroller.simTime);3 I% f  e5 H/ h/ X3 v7 s" F) I
                        @.HasOrder := false;0 K3 O9 i3 N  P. `6 n
                        @.DrivingHome := true;! k0 t4 s+ Z2 C; W2 r
                        rgManager.tryToStartTransOrder;
* `' t4 e! o) m  F1 S                        if @.Destination = void
/ i! B& q* ^& z. `4 a! u                        then -- no transport order for vehicle @
) m' H0 q+ W1 f% f4 M7 |                                @.Destination :=
; Y3 f/ g3 |( `; Z7 g. ~0 r                                rgManager.nearestFreeStation(@,track.~);3 {" K' ~+ z) F
                                newDirection(@);   
4 Y3 x& l, Y7 d                                if @.Destination /= void then* K* B( b! N( m
                                        @.Destination.NumReservation :=5 s0 n, u8 [# U2 p0 O  I% o5 |7 H8 @
                                        @.Destination.NumReservation + 1;
5 h1 ^( b4 ^* w1 V4 S1 m6 M8 `9 b                                end;' b/ ^6 t* U9 ]
                                @.CurrIcon := "drivingHome";
( z8 Y* v. P/ @5 m  `7 C                                @.DrivingHome := true;" K- v2 j: \( z6 `( J5 D* J& [. e
                        end;
$ [+ p) f! @3 T+ g" ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# G6 V2 S# b6 r& X  F+ N: ?. p
                        part := @.transpOrder;
# C& ]$ y; K; x# P, _9 P9 w* c6 s                        part.move(@);-- load part
5 o2 a9 C0 ]/ J9 O  T' y                        @.CurrIcon := "load";
! N7 i" L7 Z5 `( {% N" [' v) V                        GlobalDistObj := part.globDestination;
1 q  d, C, g7 a% _$ S) f2 C                        assignLObj := rgmanager.rgAssignL;
4 `( E" Z: K) J/ a9 K' `$ y                        row := assignLObj.getRowNo(GlobalDistObj);
% C6 D2 F: f9 a; S) v1 I4 D# R                        if Row = -1 then -- since 70
& [. e  a9 W' u, ~* |8 a" h                                if lan=1 then
5 I" h  W& J9 y' y' F: R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 G5 _" `$ m% E! Y. d                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* _/ _9 x3 n% x% B+ E1 ]* C$ V( K                                else$ ?/ g- J$ l0 a* M( c, x$ t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, p0 v* y9 h% D, K. I, F! M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ g5 D& T3 f8 L0 S! d                                end;
0 n3 Y# J) V9 |  F) L                        else
# f, {( X1 Y( ^# R- D% p                                @.Destination := assignLObj[1,row];% n9 m0 T+ w1 N2 M8 ?
                        end;                        / ?" |" ^& p! |8 H
                        newDirection(@);/ z* k" X/ w. N. G# M' j7 {
                        @.HasOrder := true;5 |- @; C7 Q3 I
                end;& E6 \$ k3 s& c: f; P+ Y4 S- H
        end;8 T% S  a& d( d; n+ h
end;        -- of the method
2 p; _3 _8 |; b- x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . N" W1 E( x3 J9 L! k$ M8 A
: X. A& M7 g! |+ Q
这是AGV_putin中arrive的method。+ S' t. g- w. e1 j2 F' z
' @7 \- G) J) Z8 v% m( f
当到达物料速度越高时,这个报警更多,
5 @: U' T5 v8 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, I; [! R1 P) O7 K' K1 `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- J: N& t: d2 \4 @5 t5 R7 [$ c
1 [7 u5 C5 k# z+ W另外一个小建议,就是move,所有的move都可以这样' ?  }* f$ q+ M* t" _1 u
if not move() then debug end! @" r9 S% t: Q. w0 B2 o  Q, A
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, q5 f' r6 O1 q2 \+ v6 iplant simulation中的free libraries有AGV模板,2 K' l0 E0 O! g& V  ~
里面也有案例。
" T0 j+ ~  [; U5 G9 s# k8 y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ Z* d3 n  g5 G, Z
+ g3 |1 _8 |# s2 f( e4 O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ H( z7 `( j. ?& _1 [

! q/ q8 @! N, O( a0 _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! ^( d( n. t3 u6 x3 o) P; {% \这是AGV_putin中arrive的method。! P1 f7 O3 K: X9 Y0 T

4 d1 H9 e8 c0 A4 {, J1 S  }! f+ z: x当到达物料速度越高时,这个报警更多,

# ^% g0 k  u  ^) s& O; L* X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 18:27 , Processed in 0.014680 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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