设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9475|回复: 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'
8 r9 _( R: l, W1 W1 n7 I*/# p5 {7 J# I8 ?) T% ]. M) a. C
is8 x  ?4 q& B: b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; K0 d1 a; @( G- B1 T+ U% I
do) K( Y+ R4 [; n$ O7 u. k$ O" ~. ]) v
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ ]3 y2 R- D  g, V8 g
        if current = @.Destination -- else return
, K% |* {3 r: m  |        then' G' {4 ]" R/ ?0 K# K# ]
                @.Destination := void;! t" [9 U. ~: H- |2 j; y
                if @.occupied then% H5 @, K, |' t+ i1 u5 \9 @# L
                        part := @.cont;% u1 a7 w: k1 V  R' b! L# b
                        @.transpOrder := void;
/ o0 _$ u6 A) }& Q! S# V- @7 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) H3 X  J$ i' w+ G  z7 ^. t                                @,root.eventcontroller.simTime);
% P/ l3 R$ _+ S4 F                        @.HasOrder := false;0 n& c7 w3 Z1 e4 O
                        @.DrivingHome := true;) }" V  R9 n" Q4 N# [) Q
                        rgManager.tryToStartTransOrder;* c" X4 W3 j: ~6 b
                        if @.Destination = void0 ?$ _$ v* }- z6 U9 k
                        then -- no transport order for vehicle @
9 h6 c# i9 H& g                                @.Destination :=
: `! y& {) h% U  T) P1 R7 x                                rgManager.nearestFreeStation(@,track.~);3 d; I3 f% r1 J" ~
                                newDirection(@);   
# P; v+ L+ q6 f$ ~! y" F& H% F( ~                                if @.Destination /= void then/ y: c. c+ ]+ o# O
                                        @.Destination.NumReservation :=
$ R0 l2 i/ R# X* f9 z                                        @.Destination.NumReservation + 1;9 ?0 N, l5 d, M- T' r! I# K: C
                                end;
3 ~1 R" ~( ]8 j2 |                                @.CurrIcon := "drivingHome";5 K  }. A+ h6 I: P7 D
                                @.DrivingHome := true;2 d1 D+ Y* W+ W2 f, Y3 h
                        end;
% D( P" x! W2 v- i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! F4 ?* ^5 O* [. R                        part := @.transpOrder;8 R0 p6 G/ u; u2 d1 U/ R
                        part.move(@);-- load part" Z1 G" M' ?! b- ?7 E& o" \( \
                        @.CurrIcon := "load";
- R( L3 J& J0 Z# n$ n6 s                        GlobalDistObj := part.globDestination;" a+ ^7 w4 B5 D4 d! K$ L6 J
                        assignLObj := rgmanager.rgAssignL;5 G) c- r) t0 J. h) Y
                        row := assignLObj.getRowNo(GlobalDistObj);
# [3 @1 j2 d  A- W  c                        if Row = -1 then -- since 70
9 j: r: A* b2 v  l- y! X" Y                                if lan=1 then
: x, v7 p' E9 o/ H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. A# f3 C0 c  q# h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( H" W4 v. j. c" T' r% [& {7 s
                                else' o3 h: K: F, q) u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* _" [) t* M/ c6 r9 @; R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
. e. n$ d! S+ M                                end;' T0 u* u! @2 m' _
                        else
" [( J6 H; p% Y9 m6 Q                                @.Destination := assignLObj[1,row];
5 J; s. ~! i5 Z& e. D- }0 m                        end;                       
5 S- q4 Z6 Z4 ?* T" a- M  l                        newDirection(@);
6 b3 n/ Z" w' g) n' S, Q2 `                        @.HasOrder := true;
- N! I: q7 }5 Q. p! `) J4 E4 C                end;
# J* ?: W1 I5 |$ H0 G- ~        end;- V, Z$ ]# |2 D7 ]
end;        -- of the method
$ _' w+ e5 z2 \6 }& ^) t( i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# l6 Z' |4 j# U
$ n; o4 B, Z6 ?. A* E这是AGV_putin中arrive的method。
7 Y3 r3 G5 m6 j8 L5 _0 i
2 ?5 `4 e% n2 T当到达物料速度越高时,这个报警更多,4 Z  k" q7 G3 i! u% M5 w. _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# s8 s1 U9 `  `* P; T  e5 `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& s9 ?9 D/ w, d3 L3 i
& U5 n" J6 G7 C% p$ z: R5 V
另外一个小建议,就是move,所有的move都可以这样
, O, G4 q! }0 t5 e, ^0 m, _4 E: Pif not move() then debug end
$ F3 a$ u! z$ v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ b4 v, e+ z5 k$ splant simulation中的free libraries有AGV模板,) |8 c( ~) `( ~, X8 v
里面也有案例。2 z; D. q0 x' l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* l$ [+ Y+ q, r6 `4 x! }' o
+ k1 f6 @1 D7 @% ^. Q. _3 u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 \: b$ a2 I4 A; x4 l; V5 R: V( m. C
& p+ D! }5 I9 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  y7 j' \: M/ E# J2 N! y( u) P$ L这是AGV_putin中arrive的method。* ?1 ^& ~. k. S) {' J, X# ]
# L& T: ]) s; A% Q4 c; w+ Z
当到达物料速度越高时,这个报警更多,

7 V! e9 k1 O& o# z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 05:26 , Processed in 0.017402 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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