设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8425|回复: 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'
' V( [# ^8 j- Z0 T% L* {+ Y$ L*/
0 D9 ]- e# g5 M- h/ o" [+ W0 A# h. Bis
$ Y: C: v9 m3 N' Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* D- V5 _. Y0 O9 x6 U# u+ h) V4 edo
7 k1 u' _, o+ h3 @        Lan := rootfolder.Internal.Tools.AOLlanguage;. e1 ]; ^# h! d* ]6 v% n; V
        if current = @.Destination -- else return
! V) a& k( @% }- z; s# y        then( ~6 W- y0 ?, d0 c* B
                @.Destination := void;' X) U7 N. P: _; j
                if @.occupied then6 \" D- X* P! N" ?0 j! s1 V
                        part := @.cont;7 w+ \9 B% x% @  c6 g* u; Y
                        @.transpOrder := void;; r. q. g  G5 d0 @1 G% g
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 {4 E' h) N/ g6 V. s1 L+ k: S" f" d! h
                                @,root.eventcontroller.simTime);5 F, M- @0 n4 \
                        @.HasOrder := false;
* ~$ x9 J1 E; \2 S2 f                        @.DrivingHome := true;
4 Q- N9 ]) M! |6 l1 h& E                        rgManager.tryToStartTransOrder;% G' n5 m/ M" @1 z( r
                        if @.Destination = void3 ?( [2 l- H( z* G1 U0 s' x
                        then -- no transport order for vehicle @2 B& a( b5 x) P" \
                                @.Destination :=
! u7 e* P/ H- o3 [# x# k& m                                rgManager.nearestFreeStation(@,track.~);4 ]& e& X1 y; t" b  G
                                newDirection(@);   
, k, h, g2 S3 X, \                                if @.Destination /= void then$ _& `. R$ g/ X+ ~
                                        @.Destination.NumReservation :=1 z7 g4 r( J) ]3 I' r2 W3 K
                                        @.Destination.NumReservation + 1;
. m% y9 n: m3 D; U                                end;) e- W: b! F$ X# h6 \+ [) S
                                @.CurrIcon := "drivingHome";, l5 ?8 t1 e5 ]3 t  i
                                @.DrivingHome := true;9 N2 p7 H# e$ x& w/ y6 J
                        end;- G: `9 d2 g' x" ~8 X# K) l
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  G* s' s7 v6 M; S. M" m
                        part := @.transpOrder;
" k5 s' J+ `" z* a                        part.move(@);-- load part: P, {% K& r* c$ \! O! n
                        @.CurrIcon := "load";
1 V/ @  H8 d; L+ f3 O3 j                        GlobalDistObj := part.globDestination;4 ]! i5 L; u; e" a
                        assignLObj := rgmanager.rgAssignL;( S! b9 U4 u3 p7 i: z1 b5 \
                        row := assignLObj.getRowNo(GlobalDistObj);
" r8 D: w7 \$ T$ }4 g                        if Row = -1 then -- since 70/ }8 j, ]& L( T. _/ w1 Q6 U
                                if lan=1 then
0 t; l; C# j" c* L8 C+ P! q. E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& e: j3 [  ~- |! t. ]9 l; N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( L. S0 ]# a, R$ p: E% D                                else# Z3 J( y- \+ ~1 y5 Q! T8 z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* c2 T$ q  }8 `/ V                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 Q1 {; `1 s: L8 l  c" G( x  Z. k                                end;
. e0 i) ?' Z, C3 u0 B9 m                        else* l4 y: Y1 N5 l0 Z* q+ {
                                @.Destination := assignLObj[1,row];8 B6 A9 F) ~6 t6 A& @* p, B, d
                        end;                        $ `: l$ l  G; _% {8 J
                        newDirection(@);
* l* }! ~8 s3 k                        @.HasOrder := true;
4 t8 j- K/ n  ]! [1 {( v7 x! ]) V                end;
& z' K5 `4 O1 J# I) Z        end;
0 f% {5 W9 b* X, P6 n1 cend;        -- of the method7 R/ ?) t  ?  ~* `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ k7 s" O5 |( Q' a- E; f; Q/ X" v
- [1 ~: E: A- k4 `这是AGV_putin中arrive的method。
+ v8 `6 G- H5 s9 b, k6 G8 \8 v% X% t8 s3 w" p
当到达物料速度越高时,这个报警更多,0 Z+ o+ S  H! m2 `/ W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 f+ h1 R1 X8 y1 y. h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ s& L* P  ?  F2 u0 L8 S. Z* d! n3 h: _# l9 k. `5 g2 V; S
另外一个小建议,就是move,所有的move都可以这样8 M, p1 i9 N. V' X
if not move() then debug end. j3 @3 T4 r8 Q6 [9 _0 m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) X0 E$ {3 L7 p
plant simulation中的free libraries有AGV模板,/ C2 p/ m2 ^* B% M* _2 _
里面也有案例。; }4 \% Q- t. C0 ?' e1 k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 X7 X& I& q( p! Y* {0 u( u3 O! y: s9 j0 v( }" S
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 X4 m/ L; X7 X! F! r3 K" W
' v2 v! o1 O) h; s' O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* M6 P1 |; s; z- j% _这是AGV_putin中arrive的method。) j! U' W: K$ }+ V$ l2 O3 c( @

5 l0 Q6 C! w& H( P& Y2 Z3 R  c2 p2 D当到达物料速度越高时,这个报警更多,
5 R" D8 f4 D6 K: o/ f  n; X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-3 02:22 , Processed in 0.016793 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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