设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7115|回复: 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'
% d$ n6 j- U0 D*/8 G& Z' ~" [0 b% {: e' e
is
  n- `8 o+ d( D/ a9 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# U" c+ O* A1 N+ y, M, ?9 pdo
9 z8 C4 d. S7 B; ^/ }) r. [        Lan := rootfolder.Internal.Tools.AOLlanguage;# a! ?9 u1 q/ i5 [* l2 J% P1 A
        if current = @.Destination -- else return
. ~, Q: E5 i' _0 ?        then
! f+ e% v% |- s% i; Q                @.Destination := void;! Q2 ?! |  R# x/ \2 C9 x( U$ F* U) ?
                if @.occupied then8 k1 B. S7 k7 C5 m8 a6 P' o% C8 A2 R
                        part := @.cont;& t/ c# X+ M3 y( `
                        @.transpOrder := void;; @' ]; `* V; M) [8 {' k  x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 `, m8 U1 Z- {& k
                                @,root.eventcontroller.simTime);
9 F5 `. M% Y9 {: R7 c                        @.HasOrder := false;, {% i/ \3 Y" l5 ~/ D" n5 [+ }9 r( Y6 @
                        @.DrivingHome := true;
; y7 z# o- ?6 A0 l- t! r8 X                        rgManager.tryToStartTransOrder;+ F1 _- L' C! l- p. s0 y; _
                        if @.Destination = void
, p2 C, {" {6 M/ V" ]) K* A( e                        then -- no transport order for vehicle @
! ^0 P# y; m9 Q8 S& U4 D8 R+ l                                @.Destination :=3 g$ B' V8 \: i: S& p0 \- A
                                rgManager.nearestFreeStation(@,track.~);
/ `, J/ e1 c! }4 R& m                                newDirection(@);   / S2 L2 X; f% u: |7 ~! X
                                if @.Destination /= void then
, s$ c* y8 L2 n4 g( E9 l                                        @.Destination.NumReservation :=
4 L' o1 L4 ~9 Y: o$ A- J                                        @.Destination.NumReservation + 1;. v& j. S( i; E# d  N, t
                                end;7 _5 n* t2 s$ N& F4 M0 @3 W" h1 p4 j0 d
                                @.CurrIcon := "drivingHome";! R% P5 T5 k; [- z* V) [' Q7 \
                                @.DrivingHome := true;
0 [9 U- z1 B& z1 v5 B! O7 k, Y                        end;$ y' B' C+ S5 ~5 x0 g! T
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& H: C2 x7 q1 G( a, [4 b+ P- _
                        part := @.transpOrder;
( E0 Y' g5 K; z* m9 z7 i4 a                        part.move(@);-- load part
) Y9 Z) l1 R5 x7 a/ ~                        @.CurrIcon := "load";2 c  B4 a# N+ m6 i2 z5 `
                        GlobalDistObj := part.globDestination;: K5 N7 W5 s6 g9 n+ ^
                        assignLObj := rgmanager.rgAssignL;. m7 U0 n1 d- R6 z7 L
                        row := assignLObj.getRowNo(GlobalDistObj);
1 P1 s4 z' A; s                        if Row = -1 then -- since 70- \0 ?/ Z& r2 W
                                if lan=1 then0 v$ }/ E( Y" Q$ o, P( x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) ?6 l6 Z5 H- [                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) x% k' ~- }; I# P' x' m! s# m3 Y                                else
, V6 y8 d) B' ?# `3 _                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# Z' m. X; h& n1 E5 T1 X
                                                to_str("in docking station: \"",?.~.name,"\""));                                / `2 m, y, m- M( n( B4 f% \, ^
                                end;
4 ]( ^3 ?3 c6 L/ q                        else; l* S- L: C4 z7 [" Y
                                @.Destination := assignLObj[1,row];
7 X$ r" t+ V2 u! p$ T                        end;                       
' o0 f& Q6 Y8 P! u                        newDirection(@);9 [2 u: U, n3 X1 ?; N( }' r4 ^
                        @.HasOrder := true;
9 M; G, k7 @8 P- A2 V+ `( i( H                end;
$ f  H8 ?' x1 @        end;
; G" X- I8 b) R& e3 Yend;        -- of the method; [/ M: f* m) B8 O( J: `+ B$ ]8 n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # w9 k  L- O  t5 C( g* b6 q9 W1 i+ z
5 S4 }. p( v, P* l3 M/ I3 J6 H+ M
这是AGV_putin中arrive的method。
" M. h% h4 `' c8 j+ j' O& E- Y/ a% T" f0 w2 r7 @; T% [: T, T
当到达物料速度越高时,这个报警更多,; I9 c! P1 C$ m+ @2 W  ]7 ^5 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: W( k6 ]7 O4 T  ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# Q5 ^, m& r& S2 r2 w; z* o0 x
' V+ d! a" q  u8 ]
另外一个小建议,就是move,所有的move都可以这样
- h8 M3 T) @5 W. P# d6 ]/ mif not move() then debug end. R4 |" J7 q/ {7 D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, r; a- Q2 O$ m  ~plant simulation中的free libraries有AGV模板,; d& d7 W+ [! w
里面也有案例。; D) W) E) _) x1 d4 `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' A/ U4 u8 A9 ~6 }% ~3 U  [$ w/ G5 w' {: ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' b( G. L/ x  j7 |8 `
' R1 H0 M, F2 h$ \; f5 N4 K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 I  }7 _: o# \
这是AGV_putin中arrive的method。: z3 R7 Y6 e) m# V( B3 i/ _: E

1 P, A. B" S! G1 _4 T1 |  I当到达物料速度越高时,这个报警更多,
! h; ]6 R5 [" q: e2 ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 18:47 , Processed in 0.017660 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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