设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7266|回复: 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'
0 F# f1 B, F& b6 D*/( D! r4 O" P  P8 I/ B
is
* M+ {9 q' ^2 n; U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 H3 Y- x4 a, ^3 ?+ v- u1 h% m6 L3 Y
do
" |, b* k3 v# ?        Lan := rootfolder.Internal.Tools.AOLlanguage;
; J" Y( G6 L2 m/ ^8 Z! {, [        if current = @.Destination -- else return, e, q9 }" t7 R$ c
        then* O% \' r, g- u( w, Y. T: A" m
                @.Destination := void;6 C5 n; o! x% D4 h  W
                if @.occupied then3 e  N! x; f  L: ]! u- n7 n7 A
                        part := @.cont;0 h9 ^6 p9 M" O6 {
                        @.transpOrder := void;
' c5 u' ^# g, U9 c& \9 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 ]$ h# R+ p" w. a/ `) G1 t
                                @,root.eventcontroller.simTime);$ B3 D& k0 ?' p0 u) z: m
                        @.HasOrder := false;
7 F/ B7 {5 n7 A  _) ]                        @.DrivingHome := true;
  A0 I9 o+ _& T0 _0 `                        rgManager.tryToStartTransOrder;5 r2 ~9 q+ z$ s# j3 C$ N6 U# O
                        if @.Destination = void5 u" n, I6 y+ ?' |
                        then -- no transport order for vehicle @' l: R4 d2 _0 {/ W  P
                                @.Destination :=
- G, J% q' P, x* B                                rgManager.nearestFreeStation(@,track.~);
+ {$ D& L& q5 I4 `( p                                newDirection(@);   ) m; m2 \+ d# q. T) [3 M
                                if @.Destination /= void then  B9 p; M# R9 r4 s4 e+ G
                                        @.Destination.NumReservation :=6 J9 b9 T* u- k0 N
                                        @.Destination.NumReservation + 1;* Q) I% P( M  f  S) f2 I9 h8 z
                                end;- Z* M7 k) @8 k6 b7 J
                                @.CurrIcon := "drivingHome";
8 [4 ~5 \8 `, m. h                                @.DrivingHome := true;. s  M, G; P$ J4 M) T* j2 @
                        end;2 r- A( s4 f  Y! S. H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 P+ ]% L. l! M+ g+ a2 E6 @
                        part := @.transpOrder;7 I! R, F; G3 u( b1 E
                        part.move(@);-- load part( A5 @- F1 }/ |% I
                        @.CurrIcon := "load";4 S% Z3 W0 |5 I$ j0 {2 o6 I
                        GlobalDistObj := part.globDestination;5 m& w2 v8 p+ e" s3 {' H( P8 P7 o" T
                        assignLObj := rgmanager.rgAssignL;5 ~5 e) Y" D# I" ~( R" l: K$ h/ H# n% h
                        row := assignLObj.getRowNo(GlobalDistObj);
0 t( Q6 M  _( v8 ]# H/ t                        if Row = -1 then -- since 70
  x7 ]9 l! Q" j  p8 o5 {                                if lan=1 then/ @/ _; ?2 h9 P( I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ q. B6 h. [3 B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) V; s+ x) l& M, R+ O9 p5 x                                else
9 w% h4 _& @7 b' i. ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 y1 q/ a' ?2 ?% r
                                                to_str("in docking station: \"",?.~.name,"\""));                                & S3 u' A' |4 Q
                                end;+ X1 @( o/ K& [4 e( }
                        else
' G  h! U, t8 e* S2 s                                @.Destination := assignLObj[1,row];
. i; f/ y/ y- `5 h. B                        end;                       
5 k# O; {. k2 _, F* S                        newDirection(@);& f" y) t& W$ c
                        @.HasOrder := true;
4 s! `$ S, Y: l0 V                end;
# {: p* L$ ?) O9 Y  v" U        end;
1 u. S9 H# y! ]! ^& J4 Tend;        -- of the method
$ y6 c- j7 V2 Q! B; R+ u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 L6 h& _: e1 \$ X5 T4 _

. P- r5 S- d2 M8 A/ i6 Z这是AGV_putin中arrive的method。
5 M1 k" d- S1 e( w9 u' g
( u/ C# A# Z  i+ Y$ _2 h当到达物料速度越高时,这个报警更多,  k! S3 b6 ^# B: B! K, n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 ^6 ~) l# K5 j7 a* \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 _6 Y: [& Q" r5 @$ h! W$ K. _6 v( V
另外一个小建议,就是move,所有的move都可以这样2 X; p/ q& y' K/ n
if not move() then debug end3 M7 f5 g6 k0 l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; a2 b0 i) W1 A3 ]9 `: `plant simulation中的free libraries有AGV模板,1 y! f1 B4 Q8 E* m
里面也有案例。
/ k; O+ i3 K' q' g4 j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 J- M- o8 Y# P. x) _

% Y$ j5 t! C2 J  N2 \5 Q4 g我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 @+ ?* T3 a( A+ p

5 V6 z& e1 {; |2 {( k# g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / L4 `* Y0 Q8 V6 `
这是AGV_putin中arrive的method。! ]# L5 y/ t1 H

( J& L% o3 f! m当到达物料速度越高时,这个报警更多,

$ K. r7 l& J4 ]( s& B另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-31 18:58 , Processed in 0.019537 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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