设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8169|回复: 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'
' \( ?# v% i/ T*/
" ^/ v$ ~1 u$ j( Z9 w; T( sis; o/ g/ \1 t& C. T0 O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* i, k! Y$ u* q; B
do
0 P  h" Q( i7 i( z: z. T        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 x/ R0 Y# f6 R- [1 k- K  A        if current = @.Destination -- else return
) ]3 V3 F, ?- F9 p  i        then
- z, `* F8 F  r, P6 [6 o0 y                @.Destination := void;$ ?+ ^2 h. B5 {- M
                if @.occupied then! m, w1 J/ Y9 j6 O
                        part := @.cont;
/ Y( o" A! W. M# ^6 G4 y0 G                        @.transpOrder := void;. S1 ~2 R( T0 }/ m; S4 @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* {- c' J& r. t: w5 a& r, q
                                @,root.eventcontroller.simTime);
5 u  ^4 A6 o: x) ]+ {. r& G                        @.HasOrder := false;
! @1 z9 d" G. A& ^8 H% S. y                        @.DrivingHome := true;
. i- w" t' R5 f' @6 Y* p/ x                        rgManager.tryToStartTransOrder;; G1 {! Z% L; i
                        if @.Destination = void. ~0 X. s8 C& f- K4 m* m
                        then -- no transport order for vehicle @
5 m( \- o3 u) I                                @.Destination :=$ T: Y2 \/ B9 G* v2 t, Z
                                rgManager.nearestFreeStation(@,track.~);1 ?- {0 p/ G. {; K2 b8 D4 V( Q4 A4 E
                                newDirection(@);   
% [! o* `$ g# |! X3 o+ d7 ?                                if @.Destination /= void then
5 ~+ K' X: P; b- ?5 G( d                                        @.Destination.NumReservation :=% {9 P' {9 A* I
                                        @.Destination.NumReservation + 1;
5 ^- Y$ s! C, ^; P; J. w, [/ N                                end;2 L5 e0 b, [  m: h( `6 o
                                @.CurrIcon := "drivingHome";" u# A  @5 x) B* y( X& R5 N
                                @.DrivingHome := true;5 N/ m# n# F+ K/ A
                        end;
# e) @7 o3 ]/ f- F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# |& l8 R0 w3 Q' E
                        part := @.transpOrder;* Y3 \) {& r9 `) ~
                        part.move(@);-- load part1 J9 t4 v4 |- f; d/ M( V$ Z
                        @.CurrIcon := "load";" ?; i9 P5 S) C* W& m8 p! z; }
                        GlobalDistObj := part.globDestination;1 \. j$ J- p/ e! u  v
                        assignLObj := rgmanager.rgAssignL;( Y) s9 W4 X/ n$ ~+ k
                        row := assignLObj.getRowNo(GlobalDistObj);9 ~( R: O/ T6 k
                        if Row = -1 then -- since 701 W- l: T: q1 {! w  J9 e% |
                                if lan=1 then
2 A+ x- L$ ]4 A+ E0 {* ?2 S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 ^* ^, o* _5 A" C; q3 g9 }                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  ]7 F$ m0 x1 ]) [& t$ R" ^( M                                else, S# O; o/ d: q9 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% ?8 n  {) K# x
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 T: Z' ]$ J1 h( Q5 k8 a% ^
                                end;
+ U1 G( g; q3 }                        else
2 a$ {" X* w9 `7 p- R7 j                                @.Destination := assignLObj[1,row];8 e, _1 B- R) j: B* w3 f
                        end;                        8 n. l) ~% r2 h) q' M  B+ w
                        newDirection(@);  O2 c- @9 v4 A+ e' n* T- D
                        @.HasOrder := true;
" r/ V/ c5 I1 C3 ?* m9 c  T  X% w                end;/ p- l( D8 }- ^( L
        end;" x4 M+ e9 A* o; ]0 w6 S) A/ R5 N
end;        -- of the method
) A% p3 E2 f- ]9 z. i( }3 @: f4 C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* n4 g# {# I3 w7 g$ h1 c, ]
3 }1 @" F' x% _9 m这是AGV_putin中arrive的method。; `) J0 L2 {/ H" C

3 @/ _" t  \$ ^, Q0 r: z8 c7 u当到达物料速度越高时,这个报警更多,9 M3 E/ o( v# P" g8 G/ K2 _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ H- b7 r4 F: O, _# n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- i7 ]' y9 {6 a8 v- \. o: w9 W
$ q  v4 `8 M# d0 H; }0 w
另外一个小建议,就是move,所有的move都可以这样
6 A' m' z4 N5 ?  \2 b8 lif not move() then debug end: v% K% y% @$ P  F3 y- O* p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 b! T& J- A! V# m, Eplant simulation中的free libraries有AGV模板,( T8 U" i( y) f& {4 a, @: D
里面也有案例。2 i; p+ ^5 h7 Y2 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ X& c* M$ |9 W9 E' j4 a

: O+ k4 p: \7 Y0 N! A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' X0 l5 M' ~4 o0 K+ g% s

1 t! w! e4 Y+ [6 n! T2 _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# a1 a! v4 T9 e  ?这是AGV_putin中arrive的method。, N/ u: T0 s7 X+ h
8 I" ~( E! N; [$ Z7 I5 [
当到达物料速度越高时,这个报警更多,
' R9 O* ^3 m* W0 Y+ F" t/ |: \# R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-18 19:09 , Processed in 0.018604 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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