设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6318|回复: 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'" n' U, M5 u2 ~8 P- ]
*/
# v/ ]9 `# n# E7 jis# |2 Q3 p& T- j( ]5 j3 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; c* S- M. X) J1 m0 v
do4 t8 k) `8 p1 A% `' h
        Lan := rootfolder.Internal.Tools.AOLlanguage;% Y# a& t' F) V1 y2 u, h. T7 L
        if current = @.Destination -- else return
9 M6 O' X5 l! b        then: L, @+ H* @* d% R- O
                @.Destination := void;
0 `3 P4 Y+ [" r0 j                if @.occupied then! Y6 ]$ e: q9 N2 v
                        part := @.cont;( p- W" e; ?$ z/ h
                        @.transpOrder := void;- s0 n5 f2 ~, h+ f2 N/ L6 N! E6 ?3 F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 k+ V  F" a2 o/ d# @3 I& }. X8 X, m                                @,root.eventcontroller.simTime);* z- o( j/ S: f4 {
                        @.HasOrder := false;+ V# Q. n0 L# L, X4 v
                        @.DrivingHome := true;
8 {9 R, q* g, G7 q* D0 m+ r                        rgManager.tryToStartTransOrder;5 `- {$ |4 S8 e1 A2 |; h
                        if @.Destination = void
! e+ w4 q! M. {+ s                        then -- no transport order for vehicle @
/ n5 ]; f+ Q3 n4 G0 b! k) N                                @.Destination :=1 c6 W) E4 l0 r3 L! w' W) _, i, b
                                rgManager.nearestFreeStation(@,track.~);% I1 w% \4 P7 b
                                newDirection(@);   
" j$ K* P; B- N6 A' C                                if @.Destination /= void then' ^2 p7 X/ H2 C6 E& ]# u
                                        @.Destination.NumReservation :=. N+ w/ E/ X5 e& X
                                        @.Destination.NumReservation + 1;; Z8 ~+ C+ m7 G/ w' j% n- j; x
                                end;
, I4 r1 ]" D0 `5 A& |7 S4 q& O0 w, o                                @.CurrIcon := "drivingHome";
9 o, j/ R& O8 p. I4 c                                @.DrivingHome := true;; _( Y# ]7 o5 ^; B) p4 @
                        end;
7 p+ |8 g; H( a- T2 F. B. a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ m. k( g' {( o                        part := @.transpOrder;
' D+ F7 [1 t5 \) T+ D- A9 ~0 x9 J% e                        part.move(@);-- load part
7 {& b% J/ D% H  r                        @.CurrIcon := "load";
6 F; G7 ^$ r1 ?+ W; }                        GlobalDistObj := part.globDestination;: A1 L: L# [5 a" T5 n' }% x0 u$ I: R
                        assignLObj := rgmanager.rgAssignL;
  [/ D5 D6 \/ j) `5 H/ ^% j8 d                        row := assignLObj.getRowNo(GlobalDistObj);
  E5 s1 W1 ]" s" b; p9 Y; a, f2 p! F                        if Row = -1 then -- since 70$ N0 e1 H' Y, I9 w  E2 s" X
                                if lan=1 then
6 b; H8 R4 Z& l- @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- ]4 v9 y8 Q5 n& H0 c0 o! q1 y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));. c! v( |4 `* P' y
                                else
0 u' A% L( ]7 L) o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( b7 o. h5 T6 R0 b4 Q                                                to_str("in docking station: \"",?.~.name,"\""));                                - e) L" L1 J6 D) y. o# M
                                end;
  z! B2 l0 ?7 w" d, s3 Z* P2 u                        else
# O4 T; R* h* g$ h: J                                @.Destination := assignLObj[1,row];  ]  n% E! K, Z
                        end;                        ( o, b! ~" j. l$ B
                        newDirection(@);
4 T4 |7 L8 D3 A                        @.HasOrder := true;$ h6 J3 @: k. w! K
                end;
& E- \5 P6 r+ `/ {4 d, j, [        end;
+ \: d" ^( P1 u; V, Oend;        -- of the method- C1 u8 k3 X5 m9 m  @+ D. A/ V9 k: x( a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' T2 R! y! Y) R# j
) @. r# l: v( Y5 O这是AGV_putin中arrive的method。- t3 a4 {( }1 q/ f: F4 X3 G8 a+ ?

8 A) C( w, i. Y( C; d$ K当到达物料速度越高时,这个报警更多,- e7 H# t" v: }' T! f- x6 ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: A  r5 E" }9 C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- q% v$ O, F: M$ e* t6 \& ^
2 g8 j, Y6 P, N$ r% y% `另外一个小建议,就是move,所有的move都可以这样% p8 u6 N7 ]; t8 s- T. P4 s
if not move() then debug end
" p2 @% n* |! n. Q; J+ |: H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) T! `3 L! f; k& z
plant simulation中的free libraries有AGV模板,% j0 e" x7 s6 |% s. Q3 p% K5 a4 k- O
里面也有案例。: w! t% [4 G+ d/ j" A9 Z+ E* d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 d. t7 C4 D9 S4 i( f6 G5 C

( C6 f, `' w9 `; [; j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , I) Y+ G$ Z2 f2 z6 G- \0 g: |
) _- D2 G' f! o; X( O0 C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; B/ B' S. p  g3 I7 {
这是AGV_putin中arrive的method。
% [' Q0 h( K# O7 D3 w. X( Z, u. _; `  b( r( G
当到达物料速度越高时,这个报警更多,

8 e: F/ C9 z* X. b3 ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-30 15:14 , Processed in 0.020606 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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