设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7762|回复: 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'
. M% H5 x: B" e0 y) g. j*/
1 H# D: A6 }& s: A2 xis
8 ?5 |( F+ n' b( k# n. X. ^- I! I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' H( J* E" K+ s  I) v
do
, e1 c/ c, \9 q2 f6 w" O        Lan := rootfolder.Internal.Tools.AOLlanguage;! Z3 F7 R' Q" {) o1 T2 @* G
        if current = @.Destination -- else return: j2 g2 ~; Z1 D+ L+ v
        then
2 `! p$ a0 j0 a                @.Destination := void;
9 J9 q" T& {& M2 k                if @.occupied then4 b& `1 c& Q) `! Q# m3 z
                        part := @.cont;! {) N4 k% {* O! Y2 `) h& f
                        @.transpOrder := void;9 a6 A' m8 b- l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 a: n0 k# n$ d
                                @,root.eventcontroller.simTime);
/ l' l+ h+ W" F, _, a                        @.HasOrder := false;- C6 f# T* Q# G5 w( S# S0 C" P5 z% `, X
                        @.DrivingHome := true;
  X  c' \" p$ `* I" I8 E0 J+ ^                        rgManager.tryToStartTransOrder;
' T( F: C# o% s                        if @.Destination = void
; v4 C" K! Y& g: I# {% D# j& x                        then -- no transport order for vehicle @& j# X( R- o0 T- @1 U
                                @.Destination :=5 D6 V- I, V) u3 _' \6 j
                                rgManager.nearestFreeStation(@,track.~);- d, D# f3 Y# Z7 A, M
                                newDirection(@);   * n) e; W9 q% x7 _& _4 {
                                if @.Destination /= void then
, ?" s' b- o0 r' g                                        @.Destination.NumReservation :=1 n7 w* p" M* [- u3 r
                                        @.Destination.NumReservation + 1;* y' H3 X8 g& g' }% k* r
                                end;/ G% ~- e$ o! r7 i: n, q
                                @.CurrIcon := "drivingHome";% F8 D" }  t3 ~9 Y* C7 b
                                @.DrivingHome := true;  i' D6 o& |5 u+ `, Y
                        end;: J0 x- F$ i# J; H/ }6 W  X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( [1 C- C: I! A5 O* F0 w! k
                        part := @.transpOrder;5 _5 g% O  A" `
                        part.move(@);-- load part
% M4 [. X; g% z; O                        @.CurrIcon := "load";) M  G- {5 V7 z& ~# s! I/ [
                        GlobalDistObj := part.globDestination;7 Z4 }9 P, }( |3 a8 s( L/ m, y: N
                        assignLObj := rgmanager.rgAssignL;
( s6 D$ X1 i/ I% ]9 }/ S: Z                        row := assignLObj.getRowNo(GlobalDistObj);
, e2 P6 ?. [1 w6 T: R7 G  [                        if Row = -1 then -- since 70
. b9 S* ^/ o0 A4 }, f7 g2 @, r                                if lan=1 then
* J% l9 Q! B. h+ o9 Y- t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ q$ D4 r# A( n+ H
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& a+ O+ [' b7 `" n$ I
                                else6 b5 y* Q! k( D9 `. W; T, J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," k' o9 ~2 q0 d' g% n, V; [
                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 q( c. o: p7 d" h& c  q2 `  S& \                                end;( D# i, G0 g/ L9 _
                        else& b4 h; U0 k' ~: C+ H+ ]' t
                                @.Destination := assignLObj[1,row];* n' q! U6 G0 z
                        end;                       
9 P4 U6 L$ B  ]8 w  L& g                        newDirection(@);
# K; e/ c% ~  K                        @.HasOrder := true;
, A6 o- Z$ }9 L- x6 L& f: E                end;
1 U1 W% \2 V* V- M/ N) w        end;" O( ~: I7 s; B( S9 f4 y1 J
end;        -- of the method
$ G1 x6 w) \1 S) i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 R/ u7 ]0 o1 m5 @3 y8 ?/ K" X

1 B7 P, M& \& v, R% W! E. P% q这是AGV_putin中arrive的method。
( N5 |) t# R- x- L4 Q5 c+ i- o1 ~: w; K
当到达物料速度越高时,这个报警更多,
5 v6 J  c' Q% H. |* E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: d' r6 r2 G4 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. }/ W5 l7 ~3 H7 A, ^" s4 M
/ c( }% E: M7 ]$ z另外一个小建议,就是move,所有的move都可以这样
( H( ^/ R' x3 s+ C: d. ~if not move() then debug end: H* Q" _! \; B9 s5 I! M. ]; t# i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 t% P# ^7 `5 t& u8 D
plant simulation中的free libraries有AGV模板,
$ u5 p  X- ~/ v3 f里面也有案例。
, [# t! X5 n9 z- P; h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 x3 G' b1 m' w) |

% t2 s6 |/ [  S. J( C. ?3 H" e2 }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 W% d9 Z1 p4 {& L* |

1 a6 \1 q5 s* w0 Y3 Q7 ]/ Q( H; h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - C) n: @7 f' ?) C
这是AGV_putin中arrive的method。
* b3 b/ s3 t6 O, M4 V+ ]8 Z' F/ I5 y7 k) w, L' E
当到达物料速度越高时,这个报警更多,

$ b, G  I1 O3 Y/ z1 n5 o0 {# R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 10:25 , Processed in 4.549557 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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