设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5406|回复: 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'
2 z' D' n5 M* U' q/ `3 d*/$ L: x. O+ c. ~" G$ A
is
: l, r2 u  a' J6 D$ b$ f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 ?7 v! ^: _, Z, l. Z3 xdo
) n* J% n& ?% u, d5 b5 l: Y        Lan := rootfolder.Internal.Tools.AOLlanguage;
! [2 l! S( `3 Y( `1 p: D2 u3 e! u        if current = @.Destination -- else return7 {2 z5 L1 u3 v+ C+ |
        then
4 x% n* D, p& ^1 X' h                @.Destination := void;
' F2 X6 ~* m  R) R                if @.occupied then
1 O7 L0 Q6 v7 Q8 ]$ b& b' F                        part := @.cont;
+ n  s! A# ~* ~/ N- ?/ F/ O* ]                        @.transpOrder := void;3 `3 `0 `# H$ E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. ~% \$ i4 c3 I  y6 x" @
                                @,root.eventcontroller.simTime);
0 j; j4 u, ]# {                        @.HasOrder := false;
# w- S6 s; ]% C5 X                        @.DrivingHome := true;
* Z. ]3 t5 P) A* {                        rgManager.tryToStartTransOrder;$ c" y( G; X' ?( T
                        if @.Destination = void
+ K# C' Q' S  a  Z                        then -- no transport order for vehicle @
% M3 h/ v9 [" c1 ]/ M                                @.Destination :=
' K* u) }& x* J: q                                rgManager.nearestFreeStation(@,track.~);. [5 f- M# A- }* {! H
                                newDirection(@);   $ n3 S$ Z& V% Q( n! G- }
                                if @.Destination /= void then4 |: I5 B$ J6 H7 C; G6 _
                                        @.Destination.NumReservation :=- t0 q1 t2 U/ s- S3 r% z9 Y$ a; E
                                        @.Destination.NumReservation + 1;" }! G' e5 g9 _6 ?9 ^; [) ?
                                end;4 E: |$ x+ l4 Z9 o. z
                                @.CurrIcon := "drivingHome";
/ x* k* \5 x% O9 _3 q, ]4 O9 \2 C. H                                @.DrivingHome := true;
7 ^( O" O% h% `* D- V) ?5 v; h                        end;
: F; c! t* M( ^                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. Y  y6 k& |) n* Z1 w* A. o                        part := @.transpOrder;
2 S# A6 q! b1 V% i' G1 L# T                        part.move(@);-- load part3 C2 o8 L8 L4 a  u1 k4 A
                        @.CurrIcon := "load";; w2 l4 O+ y7 n& g' S
                        GlobalDistObj := part.globDestination;% M4 p4 Q8 a1 [' ?
                        assignLObj := rgmanager.rgAssignL;
! l! c1 \, I4 @, s  W6 k, N                        row := assignLObj.getRowNo(GlobalDistObj);
( V. _# A/ S. u, \( Q# ~% K8 f                        if Row = -1 then -- since 70
" t2 D5 I- R0 g$ R- ?1 j0 l                                if lan=1 then
: [4 Z' J$ L3 A4 g- U' L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' \: K& s- I% |3 Z# K+ q+ d1 i                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# Y1 r+ S  d0 Q  }3 V0 o+ s, x                                else- x$ \% f+ S$ b, g4 E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 M/ q& X  P( |% s  [" ?* D* S( H                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 q* E! g# v1 ]' e, H0 `                                end;
& b1 ^; [. U; @% y, W                        else
+ F5 r% d* H+ s( [+ _" J2 U- N                                @.Destination := assignLObj[1,row];0 k" m3 c2 G, I! I( w, n
                        end;                        8 o3 n$ p, @$ c
                        newDirection(@);/ m. Z% H5 @7 J9 O
                        @.HasOrder := true;
/ Z+ M- F7 e6 B/ K9 G8 N0 X+ @$ P                end;+ D5 w' M6 Z2 t# ?7 h( [4 Z/ p- T7 P
        end;
' {/ n# y7 e3 V. I- C) Z' [+ H+ Gend;        -- of the method& S) y; @: t: e: w9 ?: g! N' J4 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- M& {) b. r; \& r+ i/ r: ~8 C, f( ^
- a- }0 I" H5 E' m$ U. d这是AGV_putin中arrive的method。
$ N9 G; z" D6 {( m2 o+ C3 x/ |( ^) h; V4 A5 U9 b9 l. w" M/ l- n& i
当到达物料速度越高时,这个报警更多,
* i. g9 x& N# c* D. v4 E  I可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# q  K4 q- x3 u% n# V7 n% j! E; g" h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& _* M/ ^* O4 Q$ {5 f

; K2 ^6 p: o0 g, u( e另外一个小建议,就是move,所有的move都可以这样
  F' @0 `/ o0 i' W6 kif not move() then debug end
1 ~. @2 A2 U  e% E1 n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( N8 q6 d8 k/ x4 K0 x; C& ]
plant simulation中的free libraries有AGV模板,  @- j% s8 x3 u- |( ?" Z% u
里面也有案例。
$ l$ O) K4 ~, q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, W3 b2 J5 C0 v- y6 V* q7 s2 M5 v: C& h: W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 x# Z  V3 y# x$ Q, ^' b# J4 E

" c8 }. L, k* n  x% U. n, q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; t# Z- @. e$ ?. W% c' L
这是AGV_putin中arrive的method。! k7 K' y) g8 p5 s( V7 V( E3 J

( q/ ^3 y5 o! M- F, a( ?" O当到达物料速度越高时,这个报警更多,
, }4 y8 o8 f; M) I1 J3 J: x
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-21 02:34 , Processed in 0.027544 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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