设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7323|回复: 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'
$ B7 i# p) I5 W) P: A  l*/
- a) _! o, ]4 }is
& r" S4 c; m  P; S( f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ @! x9 t- x* S( E
do
4 S' s  w' p4 P. E/ q) j        Lan := rootfolder.Internal.Tools.AOLlanguage;
  A6 p) C* |, J; v- G# \        if current = @.Destination -- else return
4 A  \! q( z, K1 }6 n4 E7 ^- ~        then9 b6 d3 |: _& O8 [% w4 Z* {
                @.Destination := void;
4 O2 r, K8 H  |+ I                if @.occupied then: }: ^& W/ l5 I5 ^+ A  ^: J
                        part := @.cont;& H  S2 K0 A- }
                        @.transpOrder := void;
) _, @! H2 i/ g: U2 x/ E8 B6 h8 d# D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 V( k/ Z3 B! y: V& z/ h' c/ l
                                @,root.eventcontroller.simTime);9 a" c3 E. [9 Y8 Y7 G1 ^8 Q
                        @.HasOrder := false;
- n$ Q& R) S: V; W) ~                        @.DrivingHome := true;
. F8 h* q" g  I: U  Q8 V* }9 B1 _                        rgManager.tryToStartTransOrder;& h" g3 x' y8 I8 d+ d8 V4 G, z
                        if @.Destination = void
' Z/ B) q* ^' O4 \1 o+ }                        then -- no transport order for vehicle @
2 V3 C( k1 n* h5 d4 n7 U/ b                                @.Destination :=( `& _" @+ H/ }7 r. F
                                rgManager.nearestFreeStation(@,track.~);
! x( g6 L. t6 F2 M0 r* ]                                newDirection(@);   
: z1 d1 V0 n/ J/ U  n8 n                                if @.Destination /= void then' l3 C1 \7 T( R" K: @0 ^9 o; m
                                        @.Destination.NumReservation :=
1 P4 f4 l* p; J5 P                                        @.Destination.NumReservation + 1;0 r3 C! `6 M8 i, p" c
                                end;
: g. l0 [3 B6 \2 C" d                                @.CurrIcon := "drivingHome";# n: |; D5 d) C5 w; Z0 B6 S
                                @.DrivingHome := true;
4 y- _, V9 z/ s                        end;! W- i" ?4 x' y1 Y4 l. W/ {: q1 l: t+ M9 i
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ _/ U/ c- `1 [+ I. G! y  X                        part := @.transpOrder;
" E. t; {0 I/ v) A. B7 ?* v                        part.move(@);-- load part% n7 U  B6 _" ?( x' s' H
                        @.CurrIcon := "load";, P$ o7 F3 X! o; ?. r" |4 x' Z
                        GlobalDistObj := part.globDestination;
" p" G! ]7 Z$ W1 r5 S$ r$ P% `                        assignLObj := rgmanager.rgAssignL;
9 Y  g* g7 B4 S3 M                        row := assignLObj.getRowNo(GlobalDistObj);
; E% Z7 r" s6 o  E2 n6 m$ A! k6 G                        if Row = -1 then -- since 70# T; C6 r4 ^2 `0 j
                                if lan=1 then
  R+ u1 K- I6 W! @* ~6 G$ T+ U, n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 p* R$ a4 z8 ^2 u1 ?0 J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 P) K, z/ n. R2 A3 B6 J( |                                else% l& P1 B9 r: Q! ~/ A/ c5 N3 I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; \, l/ n- n+ b0 v2 q% t                                                to_str("in docking station: \"",?.~.name,"\""));                                ! Y& ~4 e3 @9 s0 U: _- w) ~" U
                                end;) `5 q  d7 J4 j, l
                        else
- J8 S# J/ }; a$ F) }                                @.Destination := assignLObj[1,row];
/ R4 V  O; L$ W5 r3 {7 d3 ?- Y) A" D                        end;                       
0 @2 E. p8 L6 d  m/ V$ @7 W+ ^8 q                        newDirection(@);
/ v% J5 P2 e) Q5 B+ |: j                        @.HasOrder := true;
3 w8 }# v" d. S                end;4 j' k- p$ a8 n' s7 E6 m2 U/ @  B
        end;! t/ q2 D& j9 A; C; R; }; W
end;        -- of the method
5 Y& i4 i2 f( `' F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. ]" T" A- T* N. c# l: g  S0 V  [* c
这是AGV_putin中arrive的method。
+ Y3 W" q6 \: y% M; `# ]9 ?% W/ I& k5 h, q1 k; Q
当到达物料速度越高时,这个报警更多,( A2 C! B) g' {6 P$ v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# E& k$ {* N7 s5 ~; h) P9 d/ G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! t! c9 ~) R  {
0 O* l" r: d. s( {/ ^! K
另外一个小建议,就是move,所有的move都可以这样4 `: h8 u) D5 z' D" f
if not move() then debug end
7 b9 x/ z; z( D# V7 H7 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 q" C. T" u2 _; D# c
plant simulation中的free libraries有AGV模板,9 e$ |) K0 e4 L) X  Q
里面也有案例。" E+ D1 c/ d3 t% v. \' F- N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, J& l0 z: p9 C

* X3 C: {  [1 h7 F4 I/ S9 d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% `% N4 r' k; K; P2 a( z5 U7 q! q. ~- `. v. a/ l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / J8 i1 Y" G8 p5 B6 a' i9 n% ~  e+ z  A
这是AGV_putin中arrive的method。
/ n2 T' c4 y! h$ P4 J& x4 Y+ L
( z; u9 U0 M1 P/ B* m1 h当到达物料速度越高时,这个报警更多,

$ }( t" w9 j! i- T( r0 O另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 04:19 , Processed in 0.023579 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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