设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5462|回复: 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'
, T/ F+ b% s* O2 F8 r*/
- t& U) A) p8 I3 {. ~& Kis# ]; b: ~1 w5 t5 r, ^3 e6 q4 v% r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 k- e2 {6 |; ?- \% C* P: Xdo
" D; M+ ]; @! L        Lan := rootfolder.Internal.Tools.AOLlanguage;
  H1 h; B/ e, s- A) Q! c        if current = @.Destination -- else return
2 s4 g! L5 z. I0 H! b' ^        then
2 H. Z  n" H, F' _% O3 s# L                @.Destination := void;  d9 H  R0 `) T  W: J5 Q: @: t
                if @.occupied then3 Q2 P4 n" V3 W9 h/ ?
                        part := @.cont;
- S9 a: k; c  H                        @.transpOrder := void;
/ H3 j! @2 {( E/ g' D7 w) v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ j4 H$ F9 s: G. f- o8 w                                @,root.eventcontroller.simTime);
5 P1 |& G1 [! G" G5 y% y* Z                        @.HasOrder := false;2 F4 d; c1 ]6 K8 y0 M! n5 y
                        @.DrivingHome := true;
3 T2 c/ u8 o) E3 T                        rgManager.tryToStartTransOrder;
" |8 ]; |) @4 G2 }% p" K                        if @.Destination = void: Y+ _- @1 b& d* D* ^$ n
                        then -- no transport order for vehicle @1 E2 J3 b9 J: [, U+ |, `
                                @.Destination :=
. l) p( v; ^8 l6 D- O+ ^4 p) B8 k: @                                rgManager.nearestFreeStation(@,track.~);* s2 v9 |! Y7 {4 k/ h/ a/ y! t
                                newDirection(@);   & ?& I4 D. O2 j/ z
                                if @.Destination /= void then3 G  Q+ |' ~3 G* Y9 ^- |( r% l
                                        @.Destination.NumReservation :=
" {/ Z0 b8 p8 R- r( i. \8 r) h                                        @.Destination.NumReservation + 1;
9 M8 m9 a! B' k7 @9 t  l, [                                end;
; P: Q- f% L- Z, L- O7 a4 ~; F                                @.CurrIcon := "drivingHome";. h! w& m! S- b$ Y1 }
                                @.DrivingHome := true;& C+ J+ V' ]  w
                        end;( V3 F5 a5 V. h1 Q* ?' L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 j; n5 r* E5 \0 l  b# T                        part := @.transpOrder;' j0 y. w% K$ `
                        part.move(@);-- load part
+ c2 x1 e8 f9 N% u$ c                        @.CurrIcon := "load";" Z5 [2 p5 S' ~) Q7 r
                        GlobalDistObj := part.globDestination;& t" e, H& N8 M) u2 k
                        assignLObj := rgmanager.rgAssignL;/ ^7 `* S1 h4 b4 B3 |$ w: m
                        row := assignLObj.getRowNo(GlobalDistObj);7 I3 C+ Z: ?6 B. r
                        if Row = -1 then -- since 70
2 u/ V& R. n0 {8 G                                if lan=1 then. G5 ]! w3 m& E* A' S( p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- @( W# Q  N& A: b0 R8 }. t                                                to_str("in der Andockstation: \"",?.~.name,"\""));$ g" H, B0 X9 z
                                else
) R# h& F2 y" p* B8 N( O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& Z' s% G4 L* K4 ]                                                to_str("in docking station: \"",?.~.name,"\""));                                5 D) ]1 Q& S4 `( W+ w
                                end;
1 ~2 [" L" d) A                        else( l! K% d, Y2 y8 `8 s+ a
                                @.Destination := assignLObj[1,row];
4 }5 R; N# ?. M1 h1 m                        end;                        2 c- b! I$ `1 b: B; d4 X: H
                        newDirection(@);
' z7 @5 _" n/ d                        @.HasOrder := true;
; S6 h' z  x  x8 Y+ x3 |1 N- q, ~                end;
0 w" a' A% V6 t: a6 n        end;
6 B& x; `8 }# y( M/ rend;        -- of the method
( v2 Z$ U' w/ |, |. H+ K2 Q# v1 K; T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - f' g) t6 E( W5 B! T
+ Q, r" z1 Z$ u; D, A
这是AGV_putin中arrive的method。
) \# n5 z% X4 N* H
/ H+ R( f" E" s3 [# R# S" r7 p当到达物料速度越高时,这个报警更多,) z/ u4 |# U$ V! @1 W" I7 w0 B: r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" l. p, x1 N; e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 B' @8 z- }/ O; f
; E; }9 T% h: m! z9 S- d2 z
另外一个小建议,就是move,所有的move都可以这样  b, }3 r) w  N+ Z: q/ ]* [
if not move() then debug end
' X5 B7 s" l" ]* ~: T3 n/ M# @0 n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& B& @+ O! d/ r, {
plant simulation中的free libraries有AGV模板,
- \$ a; @$ G* t6 L( V# H9 t0 z1 @里面也有案例。2 _; F6 A5 q% E  t+ c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& [+ X/ o" n$ Q4 ]7 v6 J& y4 ]4 i+ C: `
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  E8 [: |% c" g6 O* i
! e) q6 s2 D7 }, S" O4 ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 D+ h' ~* X& A这是AGV_putin中arrive的method。
/ R3 x" C: o) ~& d3 z9 z4 {( N" x
$ I9 A. R% l8 J9 W7 y% ?当到达物料速度越高时,这个报警更多,
2 L; i! w4 F8 l+ M* u1 R: d: F6 v7 l
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-25 16:18 , Processed in 0.019963 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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