设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8588|回复: 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'
: ]7 |; }6 }# K0 Y*/
0 r8 V) W: C! O& [is
0 A% N+ m% r: L( V+ k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 w& q7 U6 x( ]% Ido
$ _8 z+ L4 N0 K/ K1 y        Lan := rootfolder.Internal.Tools.AOLlanguage;
' t4 z+ _# x: Q6 [7 z# S) @# ~        if current = @.Destination -- else return* m8 R- e7 ]( B2 J
        then
+ u0 A- U" }, F7 |' V" G1 ]+ G                @.Destination := void;+ m% N  g. v9 o" ~& \7 S
                if @.occupied then
( a3 {: N; n$ s+ s) D                        part := @.cont;/ W/ s' n# y; [$ J; K5 R8 D6 i0 M
                        @.transpOrder := void;. |. M& Z# n/ v2 I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% d+ h9 Z- i' f7 T8 Z* R' N
                                @,root.eventcontroller.simTime);8 Y7 O) F$ S+ J. \; u3 c' o
                        @.HasOrder := false;6 N9 Q2 P" _7 {0 ^) u" c2 [
                        @.DrivingHome := true;
8 Z9 o  v1 O* C2 u. T                        rgManager.tryToStartTransOrder;
! P+ K& j" A. |: w* `( A$ b                        if @.Destination = void
4 F4 K" F" J& w  Y' V' X                        then -- no transport order for vehicle @" Z, l) [; b) V& V+ u% i
                                @.Destination :=1 P; n1 C1 n0 S. {* S
                                rgManager.nearestFreeStation(@,track.~);. O: }% ?% @( p, d! E
                                newDirection(@);   
5 f1 N  T/ ]; _. E) K3 b, q# m                                if @.Destination /= void then2 d- Z2 j$ w. Y- R# R1 T" i! r
                                        @.Destination.NumReservation :=) u. G) n, o: G9 e$ Y/ k! l
                                        @.Destination.NumReservation + 1;; [1 f: U& y7 c( I6 [4 d1 L
                                end;
  M$ p. [3 G/ \( k                                @.CurrIcon := "drivingHome";
% L2 Y' V/ c7 M3 }+ T# j) ^                                @.DrivingHome := true;
. I7 t' H! w& i5 ^8 s- R2 L                        end;
7 n" P( o+ u$ f: t& y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; K, ~$ O7 b: U! q; k  ^0 A/ e                        part := @.transpOrder;
' p# G6 p  s+ u- c5 P( y                        part.move(@);-- load part$ Q  P( _8 |1 w3 s; K0 d
                        @.CurrIcon := "load";& z( f9 U( |  l  L6 l: ]; I
                        GlobalDistObj := part.globDestination;# j+ x* l. J# j& M* w: f
                        assignLObj := rgmanager.rgAssignL;% u/ f; [3 W+ a) g6 R7 O
                        row := assignLObj.getRowNo(GlobalDistObj);
6 o# T1 e" v3 ]0 ]" J% }. [                        if Row = -1 then -- since 70
: C5 V. I0 W8 w& O. A                                if lan=1 then# l) C4 W0 O" O+ `- {$ g/ Y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( g* t7 e' c' _' X& ]& K$ \' w% m- @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 f4 _; K6 y+ ?% D5 @) |) y
                                else7 `7 `. V+ W' |5 }6 I2 ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 \% w  v/ D. P7 ]1 X: J* q                                                to_str("in docking station: \"",?.~.name,"\""));                                1 U) g8 X/ @6 W5 V$ B4 D3 j; l
                                end;
* o/ O* j- q  p9 X2 o: }& P                        else& L( B" K2 ~6 z  l- Q  [  o0 {
                                @.Destination := assignLObj[1,row];
7 y* t# O; L7 h8 u% q" b5 e                        end;                       
* a7 h+ \' R5 c) A5 T0 \                        newDirection(@);
3 z, I8 J% _. F; @. e8 I3 d                        @.HasOrder := true;# A0 b2 U2 q2 \6 O
                end;
& s$ E" h: v. _+ T/ P3 O" h6 U        end;
, M  |2 I1 n, Kend;        -- of the method# d2 V' @9 k5 C# r! x% _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 V" X% C0 H, z( B8 o' s4 a* G

$ |# C/ @1 e* c9 v这是AGV_putin中arrive的method。0 A5 V7 Q, r. ?0 E  |# v: K' `5 C  g
7 C% z; d6 ^$ i9 O* r
当到达物料速度越高时,这个报警更多,- e" r) z7 P. J9 x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  G' R- ^8 s- i8 p. Y/ [+ \) l
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 _0 `+ D2 G& p+ g4 d. `$ R+ c: }) s) k! t9 I
另外一个小建议,就是move,所有的move都可以这样6 f' A/ y& @& n
if not move() then debug end
# H% F0 x5 n5 N) X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 a& e3 k! `6 L. Tplant simulation中的free libraries有AGV模板,0 w% @0 U! b' {/ L
里面也有案例。7 e$ G) \( ^1 X* Z7 U9 T# m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. h+ j+ C" m2 [" B/ R3 x/ C, E2 E4 S, y, l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' `$ T9 x# C8 Q2 t) t
) O# S* [6 U1 f) U: C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 a2 Y+ N1 ~7 D) Y6 `( R+ Q这是AGV_putin中arrive的method。
- H2 E+ ^1 M% e% ~# A
  \2 d. f) |. g2 {1 ^  N- r当到达物料速度越高时,这个报警更多,

! P; m" q5 T# u另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 23:58 , Processed in 0.016561 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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