设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5451|回复: 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'
; S/ b7 |3 ?3 s8 Q2 [8 R*/
/ I; H6 l' ?7 Q2 eis
# o" }/ N/ }9 o  }0 Q* d' s$ F0 u' |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 G( n# a3 {, i2 w- t1 ]5 F
do: t" q- h1 T4 S- {( ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 U6 T% |) ?7 N. m' k9 }        if current = @.Destination -- else return6 D( c, P3 Q1 {7 t+ s; z. S
        then6 w9 M* K" a. b) L4 M/ r2 c2 h
                @.Destination := void;& ^! K; ~2 P( c. i2 e7 y
                if @.occupied then3 ~0 Y1 Y7 I4 a$ x& L
                        part := @.cont;3 i4 d3 i6 O8 V1 g8 u9 i6 A
                        @.transpOrder := void;
2 t$ q1 o+ W: H                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) q' g. Q7 o, M- k                                @,root.eventcontroller.simTime);
) r2 k7 N2 l. V6 l5 F( V: {' Q                        @.HasOrder := false;5 k6 k+ ]( q5 y, p8 V
                        @.DrivingHome := true;
5 z1 w$ _$ i, I4 _, `% e                        rgManager.tryToStartTransOrder;' {+ @; H: [/ ?  V) Y
                        if @.Destination = void; F1 ?' ~) j$ V: d: i9 n4 n" b2 I
                        then -- no transport order for vehicle @" k: E& {; Q, Y2 ?/ D9 i+ t
                                @.Destination :=0 m/ K: u: E" x2 z; s) P; g
                                rgManager.nearestFreeStation(@,track.~);% L* }% T7 p9 S1 K( j$ g
                                newDirection(@);   
) n9 ^% \. |5 V2 n" ?4 D                                if @.Destination /= void then
* M9 W, ^' Z; P- f$ k$ D9 p                                        @.Destination.NumReservation :=' Z: T6 X; g& D+ f/ Y
                                        @.Destination.NumReservation + 1;
8 ^. d/ }, q% G$ E" J$ X                                end;
$ c! N/ V, m, o                                @.CurrIcon := "drivingHome";
0 \. B7 t) K5 {' R( K( Q* w/ O                                @.DrivingHome := true;
8 O1 N; K4 f8 P1 W$ H6 j- l                        end;
' _' U" N* Y7 I9 W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# s4 t- c4 Z' k: L( b
                        part := @.transpOrder;
+ P- t/ A# b% z  v" [                        part.move(@);-- load part
8 w$ [' I$ M0 U) S. h  `                        @.CurrIcon := "load";
8 ^$ {8 T% L3 C+ o                        GlobalDistObj := part.globDestination;$ t0 N" K5 y) n6 F% L. t
                        assignLObj := rgmanager.rgAssignL;
! f7 }5 D9 N" t. r                        row := assignLObj.getRowNo(GlobalDistObj);
6 d5 J8 |# W. z' M4 r' [+ g. b                        if Row = -1 then -- since 708 p/ o0 B0 I. h+ _
                                if lan=1 then
0 B; i9 x' s  q1 p( a: ?) K9 l* i. T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 }2 f) d7 _3 L$ s                                                to_str("in der Andockstation: \"",?.~.name,"\""));- F% h& Q$ B& Q- H0 J4 H! K/ D
                                else& v: V8 h: G: `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 K& Q+ u/ F; C
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' |% b( R" V' @5 s
                                end;( \: f  C$ b* e. `0 I* m( E. U$ z
                        else6 G# q3 ]- z2 }6 W( q0 V4 n9 o! s
                                @.Destination := assignLObj[1,row];8 k. J/ U; u8 H1 P# ]  [$ Z
                        end;                        " ?9 L( e" H8 ~6 O1 L2 B# \. J
                        newDirection(@);
6 {5 A' p+ \$ v' Q4 `                        @.HasOrder := true;/ K0 ^! M; Y# T- T& U/ z& x4 w
                end;
( |# ^+ N+ U& r! F1 D1 X  ^        end;6 L$ }9 ?/ W: d: v7 y; f: y, `+ h1 V
end;        -- of the method7 T5 T7 ]0 e7 S; L0 o! z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & L; l. i& {9 X  D3 x' c
; u/ q3 y: a! ~/ ?1 v5 Q
这是AGV_putin中arrive的method。
- N3 K; {" @0 g7 x2 {, L  u
/ o% u2 @' x; W- m. F当到达物料速度越高时,这个报警更多,2 N1 Z( M* p7 [9 ~0 r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! K/ V% c; u) G: c2 M, q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 `& |0 q) h4 u' g' E
3 t* z' Y) a. K  h. E另外一个小建议,就是move,所有的move都可以这样
7 P6 V' }3 L2 C8 o( pif not move() then debug end- \- u) {2 @3 B6 H- R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 K/ q- q+ O6 j( Z1 ~) P0 @
plant simulation中的free libraries有AGV模板,
% e) O0 k) v$ I5 J$ ]& {里面也有案例。6 i, _& c  K' P( G) o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( m& g- t  t4 w( x$ `# y8 Y8 w
/ N. z. t1 o6 I6 X, x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ q' S" V* f2 s1 \8 t' H* B5 W$ c3 ]9 k2 B# p# t& K% O3 }$ `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / [" @" i1 G) h4 i' D+ m4 s5 }
这是AGV_putin中arrive的method。" F7 I! N' r$ F8 I

& |+ t; S: u1 A$ o当到达物料速度越高时,这个报警更多,
* M5 E) s& O" S# n. V' ]- G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-25 01:40 , Processed in 0.020941 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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