设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9006|回复: 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'
, o% \+ ^3 Z! ?* q% l*/! Y; X/ d* B1 _8 J
is! Z6 @, G* }- F" E& k8 v4 S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) e! t) w7 Z4 |
do% b2 R7 O" l/ X, z8 j+ _
        Lan := rootfolder.Internal.Tools.AOLlanguage;; t: |$ U3 l, g9 y
        if current = @.Destination -- else return) e" M  u; M  Y$ x2 T% E4 L. X
        then. B! M+ }; \) _8 R6 ~8 J) q
                @.Destination := void;, {" M- @7 u, A( |. ]; {; Z; ?
                if @.occupied then
/ e+ C0 P1 u$ f9 ^& H) ?! h                        part := @.cont;
. D; Z/ D7 W+ J% v7 ~0 K                        @.transpOrder := void;
. s! h% O2 I5 b7 `0 Q* E. y& h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 M4 W) n$ e" a* \0 p                                @,root.eventcontroller.simTime);2 E7 ^( A4 s+ J, m& Z* u) {) S) a" y
                        @.HasOrder := false;
+ R, T1 {! M0 C/ u. P3 D                        @.DrivingHome := true;; P. ?4 H1 }) E9 r
                        rgManager.tryToStartTransOrder;
- d- ?  c  w  O# ^+ i+ j                        if @.Destination = void0 n8 D8 f4 v/ E% ?6 U9 `2 H. V
                        then -- no transport order for vehicle @% E8 V  z- u; r: O: O( w5 m: H
                                @.Destination :=& `: `! t) P; t  P" r; r5 J
                                rgManager.nearestFreeStation(@,track.~);
* n. f5 g; o8 q; g                                newDirection(@);   + J5 ?3 C1 z/ h- u: l
                                if @.Destination /= void then
1 G- [7 n  \3 o* h9 O, f                                        @.Destination.NumReservation :=
4 @; H* {9 g' M                                        @.Destination.NumReservation + 1;
3 g% r  {5 P( ^- _                                end;
) d/ s. h/ q  D9 N5 m* u                                @.CurrIcon := "drivingHome";
1 n% V+ J/ j$ y% E9 x; ^                                @.DrivingHome := true;1 \* T4 e8 C+ |
                        end;% K7 E3 y5 P+ `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 g; P! \& v4 Q% l6 F) B3 }2 g( Y
                        part := @.transpOrder;
# M0 Y- v+ v% j                        part.move(@);-- load part
* p2 B. t* A. e( F                        @.CurrIcon := "load";: Q* \- J) d7 I5 X. g6 \
                        GlobalDistObj := part.globDestination;% |- A- W0 m' Z/ _/ f
                        assignLObj := rgmanager.rgAssignL;
7 M- m" Z9 L4 c" L+ L                        row := assignLObj.getRowNo(GlobalDistObj);
5 Z* a6 i6 R5 A* `                        if Row = -1 then -- since 704 i7 W5 ]9 O( r
                                if lan=1 then# o/ Y9 m0 L" @. X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* t  A% i* A1 i* S: X# s                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' j: e6 ~8 M) l5 D                                else7 d) P6 Q: c5 c! t( l8 O* D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ S+ z  F  f4 B- D* G+ q                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ [6 D. F2 r* \- X                                end;
- O7 O. p- W2 S# [" D                        else
  R5 N- ?4 x2 L0 t# @, U                                @.Destination := assignLObj[1,row];
" g5 `. s0 y+ R                        end;                       
. c5 C* M6 d8 [- J/ H                        newDirection(@);
( q- T+ A4 b" x& H7 f* ]                        @.HasOrder := true;
- ~5 ], h' {2 U/ h  E, K3 ~                end;
6 t% V5 z5 {( K6 E- ^3 ^0 a        end;  H9 F$ b1 x7 K1 q+ p2 u! z4 j
end;        -- of the method* @9 H1 h. B: N; u% J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  x* z) \6 S$ d8 d7 P3 [7 F6 u# ]$ T5 X, J5 |3 y+ l
这是AGV_putin中arrive的method。
5 q3 K- l; g+ [* |/ E2 T) b' [: i; z" ^0 w
当到达物料速度越高时,这个报警更多,/ E& H5 b  l. u3 {3 G) j9 s& {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 Y4 m. r. _6 N) S0 f2 q+ G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ E3 t. `1 s$ m2 @- K3 D! N. ]* Q7 D4 c3 i! s( p0 ~& o. O8 m
另外一个小建议,就是move,所有的move都可以这样
) C6 N, D& N) M5 C4 g& k: Kif not move() then debug end
1 i) C/ P5 {- Q8 h2 k, u$ u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' ?$ [& I% N; h, |) [7 Q( Pplant simulation中的free libraries有AGV模板,* u1 ?0 b8 O& A8 x) ~
里面也有案例。& u3 C0 f2 t* n* P! t2 r) A8 o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  Z8 s& m8 j8 v; ?4 G
6 U3 ~9 a, G; `( i8 H9 B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 N( U5 e% z7 n  E/ l$ I' w
* A0 l/ w1 u& A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 ^4 F) h1 \# |5 {/ I7 @0 r3 H* k
这是AGV_putin中arrive的method。
9 q7 D/ {0 {- n% {; |# t, u3 g% [, b) g7 v; ?0 y
当到达物料速度越高时,这个报警更多,

9 |( u% F8 N$ S3 T' _4 A3 y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 15:26 , Processed in 0.015691 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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