设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9097|回复: 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'4 n  w  f) h8 q+ V# q+ A
*/
. f/ z# J) v( Ais
/ b- O2 }. |! S3 i! ^# m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ C; I+ Y  o; Mdo
! |  m8 k9 m/ ]+ |+ U" d, f0 \        Lan := rootfolder.Internal.Tools.AOLlanguage;% I$ E2 ]9 |5 [0 Z3 |) R* g
        if current = @.Destination -- else return
9 ^) V4 z! V& T' X8 I, O$ J        then9 x5 H/ G: s- i5 g. V
                @.Destination := void;
5 _; e) l- t0 B* V                if @.occupied then5 u  r' _4 e* ^, `. r9 z5 x; ^6 P
                        part := @.cont;0 T# O* T6 @9 V' e$ J
                        @.transpOrder := void;9 Z  _: W2 a8 @1 `4 |( Y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ Z$ {; E' V  z; G# ?( O                                @,root.eventcontroller.simTime);
0 l2 p, I2 x) n5 b                        @.HasOrder := false;8 t: V; I, G( N$ m8 D( ]- b
                        @.DrivingHome := true;$ i9 J9 c' x+ T# N
                        rgManager.tryToStartTransOrder;; _/ @: }5 M; h/ y% ~
                        if @.Destination = void
; N3 w. `- {3 d! U  X* |                        then -- no transport order for vehicle @& @2 j4 ]& ?" Q& ~
                                @.Destination :=
$ Y  s; Y* ?% g1 f' A; b7 E- R1 m                                rgManager.nearestFreeStation(@,track.~);7 f7 ^  R5 w( ^. l) h6 L1 u
                                newDirection(@);   . a/ @. c* Z) U  o1 N; S
                                if @.Destination /= void then
- S" ~/ n% ^* R                                        @.Destination.NumReservation :=
1 {+ j& X/ p' y' R9 k" i9 J                                        @.Destination.NumReservation + 1;
& {9 ^. b( l7 @4 o! F                                end;" W2 d4 j+ a- m, S, Y
                                @.CurrIcon := "drivingHome";4 M4 A% R: G* ^9 m
                                @.DrivingHome := true;0 l" b, `6 r) k2 c) `' d
                        end;7 L7 w2 `  K4 K" O* e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- K, @8 T* g- n                        part := @.transpOrder;
. L- R1 @" ^6 s6 q8 Z8 j9 ?) S                        part.move(@);-- load part
( h9 w2 @+ [! \2 `2 q+ v* k; e                        @.CurrIcon := "load";6 Q: ?' a! [" b7 e# t; V9 R
                        GlobalDistObj := part.globDestination;
+ a3 Z6 |) ~: C9 b1 A( R2 n& X; T                        assignLObj := rgmanager.rgAssignL;
0 _- S! J3 l  V8 X  x# T                        row := assignLObj.getRowNo(GlobalDistObj);/ N, D$ n( e- ]5 O; j* r& A
                        if Row = -1 then -- since 70' D( X1 f7 B% v! [9 E6 |2 W* Y
                                if lan=1 then7 v% \+ q, z* H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 I; b" _9 u# S8 i                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 Y; k! n2 j& a3 n& `* Y  W5 z
                                else
5 {4 ~$ |. t0 A1 B$ Q1 ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 w  `1 r# e6 f/ {9 L
                                                to_str("in docking station: \"",?.~.name,"\""));                                % X$ S2 d2 i' q
                                end;6 |. s# f5 V7 B# }  t
                        else& g$ K1 |' M" n- D
                                @.Destination := assignLObj[1,row];
$ m9 @: T+ v4 z" w                        end;                        5 ?$ I1 |! ^( ^6 D2 Y( i
                        newDirection(@);: L0 o6 n6 g7 V5 K
                        @.HasOrder := true;4 c0 ^: Y) M* U8 d
                end;) a4 ], P. K$ c5 m: M* k3 c' W
        end;" [- U/ u9 ]+ Q2 H; A; _
end;        -- of the method
& }# f; H1 q# w- h$ W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 ]# n3 x( ]$ a+ B6 p* a6 P: g! T$ a$ q1 }3 [& O9 x& p
这是AGV_putin中arrive的method。$ [) ]2 O$ P+ A* B
# m8 p* W6 p' l  s; E
当到达物料速度越高时,这个报警更多,
" c) J. @2 A6 y5 E, p7 T  o- U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 O5 |2 A: r$ i( q- q4 Q, i5 E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ C0 s& r1 R# E% {7 [5 W

" d9 P* f* v: u5 M) A另外一个小建议,就是move,所有的move都可以这样0 E7 J6 P, y- {# I  g$ m& L+ `+ w
if not move() then debug end
% K" p% R/ \7 k' u6 [0 j; j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 L1 ~" u$ N9 B; \! i
plant simulation中的free libraries有AGV模板,
# ]. u* v, F# x7 {7 L3 P里面也有案例。
) A' }7 o$ q1 T0 r& }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' O0 |3 {& Y1 ]

7 `$ ~* Q/ J/ ^" a/ Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 G2 f8 H6 }. z$ W4 T' k7 d0 f

( i, k5 F6 C7 F* M& @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) }  ~* \' \" z7 f( z
这是AGV_putin中arrive的method。) O. Q& H0 Y0 L' |& z: X1 a
& k9 H4 f2 b* a# F6 m) ~
当到达物料速度越高时,这个报警更多,

; C# {: Z6 _. S$ \2 ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 19:47 , Processed in 3.806047 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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