设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9225|回复: 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', r/ M. @3 Z; G
*/0 q$ D; O$ A8 ^+ ]& E6 x% [
is
# G9 ?# @2 V8 B6 \. J2 y" r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 _' ^3 W% k! [1 j2 P
do2 y7 _/ q! f3 y2 H1 T# |0 B
        Lan := rootfolder.Internal.Tools.AOLlanguage;# n, ?# _* v9 J  D  E; b
        if current = @.Destination -- else return
4 t! l" q4 O  t0 ]1 ?        then' K' `4 _9 r. n
                @.Destination := void;
9 M8 R1 {8 _1 {( O" z+ z                if @.occupied then
$ j3 {3 v8 g: K4 F- m                        part := @.cont;
* s4 F8 j$ q9 Q5 e                        @.transpOrder := void;* p7 N! {% h3 z4 `3 r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ m9 X6 K6 ?( v- t                                @,root.eventcontroller.simTime);! d; H% j* c) G) M6 u
                        @.HasOrder := false;% o* I- S( K4 N/ T# I0 u
                        @.DrivingHome := true;' p  O: k2 a8 K& s+ T
                        rgManager.tryToStartTransOrder;+ R2 s% _4 A. _  n' y* n  ?& l
                        if @.Destination = void# \! Y0 X$ C5 D3 z$ @" N
                        then -- no transport order for vehicle @1 c! W5 u- P9 u  u
                                @.Destination :=3 n! u2 ]+ o* M
                                rgManager.nearestFreeStation(@,track.~);
. C) x' T* Y9 o* W! c6 v                                newDirection(@);   * E) _" e2 z, w, i4 c
                                if @.Destination /= void then
5 i; H' W: j) R# [% ^0 @5 J0 I                                        @.Destination.NumReservation :=
% V/ O. `6 X5 e' t0 W  X# j1 \                                        @.Destination.NumReservation + 1;! i- [0 y& q. F( E; Y
                                end;
* S% |9 R* l0 M0 P& j$ X* O                                @.CurrIcon := "drivingHome";- k! Y$ z! z0 e* [. z
                                @.DrivingHome := true;* n  F  ~/ n2 z) _2 p0 y
                        end;# S/ ^" i7 D: N7 k2 a) f
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 E- g8 x7 ]% {8 Q8 L
                        part := @.transpOrder;0 r9 |# z9 e7 ^) E. J- e
                        part.move(@);-- load part3 {( g) Y" {+ H1 W' p- d, V
                        @.CurrIcon := "load";
0 o9 K) M: M% E, ^                        GlobalDistObj := part.globDestination;* b& m; L/ O" q0 Z7 m
                        assignLObj := rgmanager.rgAssignL;; J+ F" j- p. L6 S* w
                        row := assignLObj.getRowNo(GlobalDistObj);
$ x# O4 I8 R- g, m% o2 O. b% [                        if Row = -1 then -- since 70
9 t. B; u8 D0 h& a/ G                                if lan=1 then& J  R3 Y# [% e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," I+ x( V/ t; _3 x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  O  Q1 h* E; o                                else
: J' `" R' L# k8 n5 R* ?, J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! H% s& ~1 X" O
                                                to_str("in docking station: \"",?.~.name,"\""));                                " }! Z" g" i" Z. A
                                end;
; z* N6 L4 B. p                        else
' {/ r1 N6 F6 N. x6 {0 D                                @.Destination := assignLObj[1,row];- R4 i$ b! u6 j9 I
                        end;                       
3 L: A2 K4 p# ^  d: m                        newDirection(@);
2 W! _1 P: r- W) d) o/ d4 x: i                        @.HasOrder := true;
& \( A: R- T+ L+ H& V& L                end;
; E7 k3 `4 c4 O: _0 c        end;
5 y& g: ~) }2 @8 |/ q3 a: Pend;        -- of the method3 x. y1 B& @+ R8 K( T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 y4 J2 F3 I" ]$ U
  z4 d" D. }7 t7 i( u% D这是AGV_putin中arrive的method。/ A9 e6 Y* u, g& c  n9 T9 {6 n

( w$ T3 \# v5 l: E$ e& S9 N当到达物料速度越高时,这个报警更多,
9 B9 \/ _$ p: u) G5 @) v- i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 k% F, I- b4 I. ^/ L9 F  a程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, b( H, y. N4 Y

+ _" O& s, u1 u. T另外一个小建议,就是move,所有的move都可以这样
5 ^% i3 H2 P' e( ~/ M" j8 |  Cif not move() then debug end$ l5 ^. h, L, ~- z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 O5 u+ x5 ^5 {3 }9 p( s, `
plant simulation中的free libraries有AGV模板,
# a: ]7 A4 W; N+ c! v! O5 b里面也有案例。: Z" V  K4 O; ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- x( X. J: H% ]4 O( h. t
1 o" b5 N7 ]% \- ?, ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- A3 B7 H8 Y: y/ }  g1 i5 s
1 M" ^+ ^( i0 i5 p4 D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & R- J; z# Q5 U1 C
这是AGV_putin中arrive的method。% ^2 w! Y2 L& L8 ~: {0 _% H! ?

4 O6 F# v& O0 L当到达物料速度越高时,这个报警更多,

& x1 ?9 E: _( O2 e另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 03:39 , Processed in 0.016205 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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