设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6816|回复: 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'
6 m0 Q+ _; `( @*/+ T; F9 f# I# F0 w9 ^9 t
is
4 W, i$ t  S7 L( v) Y5 ^$ U# n% l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ z7 S& W5 z( ^9 U0 K3 F
do
* y/ D2 ~! M8 m1 Z        Lan := rootfolder.Internal.Tools.AOLlanguage;
) u+ Q* d5 ^. \( |( i        if current = @.Destination -- else return
2 [5 b0 {' G4 _+ M! f6 H+ k9 W4 @        then
& [$ d! B" f7 J                @.Destination := void;
  M0 R" b5 E; W7 T                if @.occupied then
3 j# D, b1 A% d                        part := @.cont;0 o7 J* F5 J- G- @2 X
                        @.transpOrder := void;
5 v" O6 ~8 h% i) S+ |2 c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- Z7 _& W' X' v: s                                @,root.eventcontroller.simTime);/ |2 f' F- K% `2 _2 u9 S
                        @.HasOrder := false;
  h; d1 X8 j  w1 y: T7 y0 F. C                        @.DrivingHome := true;& R# c  L) q/ r( W
                        rgManager.tryToStartTransOrder;
0 T) o; _3 [# c2 {$ m  B1 Y9 r                        if @.Destination = void
! I3 B3 i  |' [                        then -- no transport order for vehicle @
# S( o0 j0 k" @/ [                                @.Destination :=4 @# D# O; O. I9 s  l3 A, j
                                rgManager.nearestFreeStation(@,track.~);) m! E. d# f  j+ K  Z
                                newDirection(@);   0 E( q+ f7 i( r" t* X8 w
                                if @.Destination /= void then6 n7 p+ _' t& I( J8 H( p. M4 K5 E0 z
                                        @.Destination.NumReservation :=- A0 D5 e4 \; ]$ C8 ~, F0 f& f
                                        @.Destination.NumReservation + 1;
5 m' Q# b+ s# i+ |* H                                end;8 `, V! c8 ~8 T* B, D
                                @.CurrIcon := "drivingHome";, w( }0 P0 Z. x6 X3 O
                                @.DrivingHome := true;( I7 _8 a/ n5 f- P# |
                        end;
3 w  J" _2 b6 j6 f  ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* q0 {5 c2 B' u4 ?4 `. }1 T
                        part := @.transpOrder;" a  C* H1 [# p  R- t
                        part.move(@);-- load part  Z* x' |" L6 ~* k6 _8 r
                        @.CurrIcon := "load";9 H! W6 G' X* w0 U7 T+ G2 }& N* q
                        GlobalDistObj := part.globDestination;/ I2 ^  T* w5 [# z( M# t
                        assignLObj := rgmanager.rgAssignL;7 l* |+ Q$ D0 R2 W5 O
                        row := assignLObj.getRowNo(GlobalDistObj);
+ v9 o: Q1 \" M. {8 v                        if Row = -1 then -- since 70
* _3 k7 w5 o0 |& }2 K                                if lan=1 then
2 G* A9 E0 J) g& j: z" N" k! C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* C7 w6 @: F! L4 ^5 I9 e! _! g. \+ c                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% \* x' u7 j' r  F6 |7 h7 \7 r0 @                                else! h% M6 w' v7 ?  H" u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ G) ?/ C6 u1 y# K! l7 [5 Y4 }7 _- b
                                                to_str("in docking station: \"",?.~.name,"\""));                                : F0 z; A+ F$ J6 o7 A+ U/ Q
                                end;
) g" t2 @5 D) H9 Z: A                        else4 l; X3 K4 g9 M) c0 P
                                @.Destination := assignLObj[1,row];+ K& {4 P& o; d! J
                        end;                        ) p# @* u; T+ l
                        newDirection(@);$ {2 O# |2 L+ j' l+ w3 m9 f
                        @.HasOrder := true;, `( E  Y! Y, C$ |1 {
                end;8 ^3 ?; o/ a5 \4 A( C5 B7 K
        end;9 U  t6 d( K0 u4 e1 {3 j
end;        -- of the method
1 c) q2 W( |% X2 b' X9 V9 _7 l( u8 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . q) q: [, p1 y- u3 C7 w( _5 }; u
. N* c. v8 B0 C( X$ C  B1 l
这是AGV_putin中arrive的method。
# m( O% q. s0 n" N; S: G- U- K
) ~! o( k3 M% ~5 K  f- j当到达物料速度越高时,这个报警更多,4 j5 Y- o) I7 B- i" U
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ e# t7 f* o5 j+ ~2 W程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ i5 W) P4 H- H: C. |; s0 H! x1 s0 ~+ g6 d" ?
另外一个小建议,就是move,所有的move都可以这样* C/ H9 B4 j0 p* U! m& ~$ w% ~3 X/ {
if not move() then debug end
+ y2 x# @2 K5 O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& o& h8 H5 ^! q; ]- Zplant simulation中的free libraries有AGV模板,
% F0 G: B: T6 Z( x/ V( C里面也有案例。# B' B5 D  j; e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( |0 C+ U& D1 F8 C# I
2 b  T6 v& v7 g9 u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * j1 b  |4 L! n* s) t6 u

: f, ^* `1 r) X4 X3 ?* o! J那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # \% c8 ^# \+ l+ j* H2 ^! M
这是AGV_putin中arrive的method。5 J% p; S3 v0 C

; n" @( {5 p1 ?当到达物料速度越高时,这个报警更多,

- X0 m+ x" s6 F" _2 N4 m! N1 a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-28 07:37 , Processed in 0.017972 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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