设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9174|回复: 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'2 W! [) K1 Y6 k% `( P
*/
6 f+ @, [4 ~! R# ?is
+ @& k1 S1 I3 e! k. T' J. m. Z. ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& a% Z* _& S! _. C8 Vdo
$ C, h$ g$ u* P# B9 n  E        Lan := rootfolder.Internal.Tools.AOLlanguage;9 y% C; D' z  S. ?) J( c/ F" W
        if current = @.Destination -- else return+ ^/ R5 n2 w4 `; \
        then
5 l/ B$ g; H2 g4 h3 p1 V3 @                @.Destination := void;% P1 M) \& T1 v+ \( \% k- c
                if @.occupied then$ E4 Y9 I: S. l( a3 y/ _, f6 ?
                        part := @.cont;
) H6 `8 `" n, A7 ?3 Y                        @.transpOrder := void;+ X* Q' o% k8 x" M5 J# v/ Y, A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 O: D0 _. S) V/ u# f0 T                                @,root.eventcontroller.simTime);, Q1 a0 P3 Q" [5 |
                        @.HasOrder := false;
* J& N6 O; u9 a' h* O% n3 w                        @.DrivingHome := true;
- X) i' X3 {$ A% {& f2 b                        rgManager.tryToStartTransOrder;$ J( o* d+ R9 w+ D
                        if @.Destination = void! b/ B! G. G; U6 M  O: D
                        then -- no transport order for vehicle @+ l$ K0 ^" ~8 j; U* L9 X, P) x
                                @.Destination :=. A2 |5 @2 P! |! F& o; C6 x' r* n% `
                                rgManager.nearestFreeStation(@,track.~);
, E" P+ v4 p) |: Z3 ?                                newDirection(@);   
) ~& b3 n! n/ {4 ~7 \* F                                if @.Destination /= void then
+ y0 Y8 }$ ]. A' @; D8 f                                        @.Destination.NumReservation :=
4 u2 u& C5 Y  m& a                                        @.Destination.NumReservation + 1;
2 {9 h& ~, x7 ], u                                end;1 ~1 j; M" x' s% `# n" y; M
                                @.CurrIcon := "drivingHome";7 R9 W, r  R2 b* ^1 r0 [. H
                                @.DrivingHome := true;
- X; d" Y+ l! _& \+ u                        end;6 r( U* K/ K- U/ q& n& F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 e7 \8 j8 Q2 y" u                        part := @.transpOrder;3 j2 i2 a& y  H; g3 g
                        part.move(@);-- load part* O+ K5 I7 P/ K1 `7 f1 D  h
                        @.CurrIcon := "load";7 H9 B: l3 T# ?5 X8 c5 o1 U, N
                        GlobalDistObj := part.globDestination;1 N8 k9 ~4 m4 @3 X4 w+ f
                        assignLObj := rgmanager.rgAssignL;
8 @* j4 p' y8 L5 T4 ]# {3 C! X                        row := assignLObj.getRowNo(GlobalDistObj);
7 V' D" J  V9 M                        if Row = -1 then -- since 70
+ E5 C0 [( a: G. |$ N                                if lan=1 then/ \  o4 {1 y8 {! m0 j. ~- S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. M9 Y9 _) M) l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* l5 D" q# c) I- X  Z
                                else
+ L' h( V: T1 z) x( o( b                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* f6 Y2 P& R4 l* D+ r# O; y
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 @  L% ?& o- x# j: S7 U8 [$ ?                                end;
! d* M6 z( F% `- p/ D1 F" {+ e5 G                        else
% X( u, Q) g- j+ Z6 @+ u                                @.Destination := assignLObj[1,row];6 |) D* n2 P' y4 p0 Z0 b
                        end;                        0 V8 v+ _% {" h  C' c# ~  g
                        newDirection(@);
: {) B  U$ h0 I5 u) i" Y/ h                        @.HasOrder := true;
7 }9 u9 W  @. v7 U9 S* V/ G                end;; ]6 X9 C" Y/ @' R
        end;
  j1 `0 d# c' i% k4 Zend;        -- of the method1 n" T  O1 U0 ^* @0 s- Y& s3 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- Q7 d3 }' g% p7 m8 a% }$ t" _& Q% I. |% z0 _1 H! L2 p
这是AGV_putin中arrive的method。& [2 M% S$ {  R4 g, ^+ R

( t" Y" F9 N; n' l& M& c当到达物料速度越高时,这个报警更多,
" y7 |* t- W1 Z! q8 j9 s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! x( g$ e" _' y1 N5 W0 E* a程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, \; i5 U4 I0 f$ i4 B9 F+ Y( L& y! V4 S! l! n; ^; d. l; k- I
另外一个小建议,就是move,所有的move都可以这样
7 M5 a3 g* E0 ^! uif not move() then debug end" k) R! v  X3 J' D! \4 H' c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# G" d1 J7 o/ Eplant simulation中的free libraries有AGV模板,
- {+ A; j& M; {4 N里面也有案例。* `: a! j& A+ N+ ]* \: l5 b' }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ y: q! J. h1 Y3 E3 v
; A" I' ^6 \" ?. v8 R7 }1 ^5 v7 F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 l; B+ y, i: K7 I) U. B  d
, F8 X1 R& _: c# f3 D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 P! O/ H$ V# r1 v8 o  w1 i4 T
这是AGV_putin中arrive的method。3 C- l( c9 }& I' R  B

* a! I" [$ W1 r# R0 Y) U当到达物料速度越高时,这个报警更多,
! k/ Q* t, [3 Z' g* B$ ?; Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-17 22:49 , Processed in 0.022517 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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