设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8786|回复: 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'# a- `3 G4 Q6 u/ X1 V5 |
*/
! x3 u$ P" u6 [' C' m+ X6 P  Nis- ]! }9 e" z! Q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" J$ H: z) A6 K  y
do
, L4 S% W% W( i1 l        Lan := rootfolder.Internal.Tools.AOLlanguage;
! }% O  V( [* I2 @, c        if current = @.Destination -- else return5 ?, {0 U5 d. D6 J
        then
  @' e' T' h6 p                @.Destination := void;3 |5 C+ h$ N& x9 Y
                if @.occupied then+ w+ ^0 y5 \) x% f4 Z
                        part := @.cont;1 b7 s' Y& A: |9 F
                        @.transpOrder := void;$ A; N" r7 t' f0 L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, a- N" N0 E% \9 v9 O0 ]. G  s
                                @,root.eventcontroller.simTime);
$ a. [1 W0 d& z2 B) \; x7 S! j                        @.HasOrder := false;& H! E5 ^: N5 e5 m" c
                        @.DrivingHome := true;
# X7 |5 [6 R( y                        rgManager.tryToStartTransOrder;
) C/ N# c+ A+ e. s1 h* j6 I                        if @.Destination = void; U3 k8 Y# X4 ]8 [5 \
                        then -- no transport order for vehicle @+ S# U, H" I& w; ^
                                @.Destination :=
" F! H! _! M* a8 g6 u4 _. M; _                                rgManager.nearestFreeStation(@,track.~);/ c1 k0 f4 }1 e* O
                                newDirection(@);   
3 f+ M7 _/ b9 ^% @                                if @.Destination /= void then9 ~- N7 x- a' C) h. |# P' U
                                        @.Destination.NumReservation :=( g/ T. Y- V3 E5 s/ N" o$ p) G
                                        @.Destination.NumReservation + 1;
* u3 [$ i9 @" Z4 W7 s                                end;
9 D& h; I# K; t/ F# D9 x                                @.CurrIcon := "drivingHome";: M, T) B) p& \  x: E) F
                                @.DrivingHome := true;1 {' U% d7 ?3 B/ }, J/ K9 a
                        end;8 ?# a  A, F9 O4 n- q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 a. N  ^2 }+ m7 N
                        part := @.transpOrder;
8 z- C4 A1 t& ?- R9 w                        part.move(@);-- load part$ Y% R! D" u+ |9 z, c9 J
                        @.CurrIcon := "load";
! p4 J; Q! }2 j                        GlobalDistObj := part.globDestination;
. |, j7 o; w3 b1 p, c                        assignLObj := rgmanager.rgAssignL;
) }2 ^% A+ p; S0 F                        row := assignLObj.getRowNo(GlobalDistObj);7 c! l" Z1 z) [& r' @& R! J
                        if Row = -1 then -- since 70+ |& x6 S& w1 b8 `/ v. m
                                if lan=1 then
: H! T! R3 L: ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 Z7 X" P2 g7 ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; \3 D8 |; A' P7 ~- Y7 P4 s                                else, r; d" B( q" G+ l
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 T8 o6 H+ p6 k6 w9 P" ~                                                to_str("in docking station: \"",?.~.name,"\""));                               
% M( v: W+ |/ h' s0 y! ]! A5 _                                end;0 j# E6 W9 `& _' j. X
                        else& `9 _' n* `; @* q* w3 Y
                                @.Destination := assignLObj[1,row];
9 e' B$ J: G8 s/ a5 s& ~) i                        end;                        / O% a7 g+ E7 `# a  B; G( s+ e, k4 M3 C
                        newDirection(@);( T/ s7 O! l7 u8 S0 P$ F# B" @" K
                        @.HasOrder := true;8 ~( T7 ?: d, l$ ]2 S! V+ X/ a' ]
                end;8 z9 ~! Y6 b" n' [1 ?% V
        end;9 U2 u- n6 S: o  ?" h( m
end;        -- of the method$ c% B4 b  B+ X  W% _/ F$ w, g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 V- _, N- `  h) M" g" E

+ S1 u; J6 z: y) M0 N这是AGV_putin中arrive的method。5 |& P8 [# H, O& [* K# }3 h

5 [+ G) z$ y6 @' T2 f. f$ p# P/ |- S8 t/ S当到达物料速度越高时,这个报警更多,0 G3 f! ~7 a9 q# |) r1 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 p; @2 @) z% }6 ]7 r3 Y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& T8 n  T5 N( [- T) S6 q5 G3 T1 L, ^6 H1 o5 b) f; j+ T( {
另外一个小建议,就是move,所有的move都可以这样: k: \* x: `5 _5 D- W6 |: n
if not move() then debug end
2 d6 _3 B4 c, L3 S$ Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 Z5 d% Z& I! Fplant simulation中的free libraries有AGV模板,; }+ e' }% U. g
里面也有案例。
  v% O; c4 M8 [+ m' Y0 g8 Z# {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ q- U  L' C2 o2 X" c$ e+ i
& G5 C" i! O& w- [0 n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 z1 T( V6 z) P: ]9 D/ _' m
" ?0 }' {7 _2 ^4 M4 L( i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: J, i$ l6 F% ^9 J& g$ ]这是AGV_putin中arrive的method。
* E" p' c. [' ]9 Z( |3 _3 i7 O( k; G2 q. e2 t
当到达物料速度越高时,这个报警更多,

2 ^1 @* Z5 ^6 y7 p( e* @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 03:32 , Processed in 0.018129 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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