设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5838|回复: 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'
9 ?$ o* F  f& |. b# W' ?$ l9 b# y*/3 e! Q2 @& _2 L% x" ?8 A" p4 ]* ^
is  L) B! ?3 A4 V/ p& Z) v, b: n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 T6 @1 U3 z7 S  G0 _7 _
do
# i' w- ~; B9 Q' o! S+ i        Lan := rootfolder.Internal.Tools.AOLlanguage;
& S1 M3 x- ]" z# N: ?5 W        if current = @.Destination -- else return* E6 }- k) f2 v" \
        then( y7 u, a( k2 U% k2 ]
                @.Destination := void;" d& P" {( I& Q0 h7 G2 D
                if @.occupied then! D7 O, }9 e& E: b: ^
                        part := @.cont;
$ r5 t# m- w, b" |( O+ Q' S. c                        @.transpOrder := void;
5 v$ ?4 @# b9 {7 a# N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 B! y. m# A5 q6 s
                                @,root.eventcontroller.simTime);9 f: }: l# }; q4 H/ h
                        @.HasOrder := false;
: X8 d8 b9 V5 G( |5 _: c5 M% I                        @.DrivingHome := true;
9 c+ C8 N! ]0 ?" y# k+ b  ]                        rgManager.tryToStartTransOrder;
: q6 e. }* J2 ~6 h4 |# i                        if @.Destination = void
# o  o2 L6 v$ \. M7 P: V8 @                        then -- no transport order for vehicle @
1 B9 o8 N$ T/ Q5 V' T* S                                @.Destination :=) n. u5 d% K/ d
                                rgManager.nearestFreeStation(@,track.~);# f% _9 v0 Z, E7 D% _) ~  j' _
                                newDirection(@);   
: o4 ?, \/ L0 ~! f' k' L                                if @.Destination /= void then
4 o9 O! r  f7 g5 L! m( p5 D                                        @.Destination.NumReservation :=
8 o% }( w7 Z' p5 M! ]                                        @.Destination.NumReservation + 1;! E2 \4 q7 @3 ]4 F/ u7 v: }) H
                                end;; w  T( R) I* k
                                @.CurrIcon := "drivingHome";
, j9 p* d6 V- p$ A6 Q                                @.DrivingHome := true;
# O" k' d, ~) p# R& L                        end;
; e2 a# g' ?9 M                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& H; }9 G' Q' V. q8 [$ |
                        part := @.transpOrder;
. [, b0 t9 g+ t: b0 q+ R                        part.move(@);-- load part
, J  v5 B, O, X" ^0 R                        @.CurrIcon := "load";" a: k" S$ G& c
                        GlobalDistObj := part.globDestination;
- X* Q0 S9 n" c, o                        assignLObj := rgmanager.rgAssignL;
& N" A* x5 U. C! j( G; t7 C                        row := assignLObj.getRowNo(GlobalDistObj);9 ^0 G$ ?0 r) i
                        if Row = -1 then -- since 70
4 w8 C- H2 y! j8 v! J6 c                                if lan=1 then$ R, Z0 [+ L# {4 O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& Y' X% `4 t. W) q3 W0 Y2 j" E                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 L. S* {8 W/ s. Z
                                else
5 V) ^+ z- f; _5 }' F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 {# `8 ]3 X6 A; h/ k# j& H; l1 A
                                                to_str("in docking station: \"",?.~.name,"\""));                                % t+ d! ~( O0 z- G# ]$ A8 o
                                end;+ t1 a. w9 L- L3 c$ U# I
                        else. K7 A- e9 o" G4 m$ X
                                @.Destination := assignLObj[1,row];
% O( \' A! A5 F# a3 Q5 b, i/ v# E+ f                        end;                        + ]$ Z! J* S6 o# m5 D( i
                        newDirection(@);
( N& a% T/ H8 F' S" d& ]                        @.HasOrder := true;5 \5 D5 H; y" ?/ B* e! A# G) }6 M* ]) D
                end;. t& n2 L! Q8 q4 u6 W2 `* b
        end;) Q& ~. b  g( v3 f  O  K
end;        -- of the method& m. V8 N1 U) _& e' d# K0 X5 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) o+ F8 R$ X9 S: S
! }. E. u. c# K: m$ R* M9 f2 s这是AGV_putin中arrive的method。7 P, a4 J' d  Q

2 E# w: x, Y8 l  e, f" r; l当到达物料速度越高时,这个报警更多,
; o9 a: f3 |) u7 O0 o: b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  h' }6 x, _) U3 D( Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 h  o" X  c) ^- H3 V  E/ u5 d
' T+ y( H% w: o4 K( x另外一个小建议,就是move,所有的move都可以这样3 E$ B  D+ d: B" L8 s# s. Z% s
if not move() then debug end
8 S( A2 e- c) h- d2 G, i这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 i8 W% q) W3 h+ u2 |plant simulation中的free libraries有AGV模板,/ U/ v. p; v. z; G; E) N
里面也有案例。" K1 P" _4 e" J4 I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 t$ W( V; b4 @. q( F( m) \% U
! A8 i( Y  N* O- v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& m! s7 f' |4 x) j4 Y* f6 i: {' t6 o, Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 l6 \% T0 H9 k) x3 x  `3 }9 u
这是AGV_putin中arrive的method。  T" }6 G5 W5 o" a

  `0 c. V4 C4 [$ ^( s* L) {( J当到达物料速度越高时,这个报警更多,

7 l. [! r4 |# L) E; ]( i& H1 ^另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-25 18:00 , Processed in 0.024263 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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