设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8073|回复: 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'
' R$ @2 i) k! [9 n*/
) e: j, j7 {. K' x0 P3 y7 R7 `) ris( f( n! L4 E$ Q1 y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& p$ A2 n8 B/ h2 M, n9 \4 I
do
+ S3 w+ @+ ^2 k! b        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 R* p' W6 }9 n/ K0 M% H' w        if current = @.Destination -- else return
; Q, E2 n& i' b# f7 Q7 n        then9 M- V" N- @  E. m  a/ K
                @.Destination := void;+ k$ `7 t" o) s- U6 n; L* D8 q' l
                if @.occupied then
0 _& l# |0 F2 _- Q1 J# F- r3 O7 \                        part := @.cont;
0 S8 u3 v$ S" f6 m/ F% Q                        @.transpOrder := void;- X4 u9 g6 |4 ?' U5 _+ w3 _' g4 L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- X% f2 [! ?* e2 M- `: k7 ]8 Z# o$ K                                @,root.eventcontroller.simTime);
( f% R! D3 _8 h$ x                        @.HasOrder := false;
) O. s6 ?. d# ~' @5 G                        @.DrivingHome := true;
: q3 n) U5 K& |! k# h0 M, H                        rgManager.tryToStartTransOrder;
3 G& j7 k. E1 t7 M5 T1 {                        if @.Destination = void
4 {- @% ~/ [5 K                        then -- no transport order for vehicle @" o! ~: ~# k$ }
                                @.Destination :=2 Z1 Q5 r1 z- w. e7 S
                                rgManager.nearestFreeStation(@,track.~);& x; j& G  D3 u4 H; I& m( m; u3 [7 @. }( K
                                newDirection(@);   , C# Y' h+ N/ A7 J
                                if @.Destination /= void then
/ m: D& H" [  n) v. c7 y0 A                                        @.Destination.NumReservation :=
+ R- ~6 O) u+ u9 A/ f) A                                        @.Destination.NumReservation + 1;; G0 I+ _# j7 |/ x! b* B4 H5 Y8 s
                                end;( z+ g- L( ?0 Y7 I
                                @.CurrIcon := "drivingHome";$ N5 Y0 P  H: @0 |& }' E! A
                                @.DrivingHome := true;
" T, r% v/ l3 k: U2 J6 f                        end;
5 r0 h0 v8 g4 u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. i/ H9 R2 ]; C) e8 V
                        part := @.transpOrder;* W7 ~, J* A! U' `! s; c" k
                        part.move(@);-- load part. [. g  t% X# a8 [2 |/ L, U
                        @.CurrIcon := "load";, i9 Y) K# l/ \8 [
                        GlobalDistObj := part.globDestination;0 t' v$ D6 H5 W- M! i2 q0 s* i# p
                        assignLObj := rgmanager.rgAssignL;/ K2 n8 T9 x+ F, `" z7 I
                        row := assignLObj.getRowNo(GlobalDistObj);
2 G4 j. }. e% l4 ^                        if Row = -1 then -- since 70: |* ~+ l- w3 K: y
                                if lan=1 then
" @( z+ i, V; {- Y. v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 P# M$ j' _- u/ R/ _                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ N0 k* w4 ]& B. ]6 t* s                                else
; ~3 z* |% b+ E) C) I9 U8 `+ A3 w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 p! J" F9 B$ |4 h8 G1 _, r6 N/ U                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ _6 Z+ R$ i5 j( t1 a$ j# B                                end;
/ Q3 b+ I1 N; t# d5 T4 L; I+ |                        else: Z4 u  s4 p: R6 P( i$ Q1 b
                                @.Destination := assignLObj[1,row];7 F; `* V% F8 y( l
                        end;                       
* O+ I: s" E/ e; L                        newDirection(@);
: h" @. J2 V( X' Q1 {' I) }                        @.HasOrder := true;* ~  S3 o; w. b+ e5 F- e
                end;
; a0 a! T. o" s9 ~        end;
8 N4 D, |% s0 g) L) C/ Dend;        -- of the method
  e# D+ [/ e& y  t3 t* k9 c! y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 L- b" ~  P% `
* L+ w& E+ [9 t( W  E# w这是AGV_putin中arrive的method。
* N+ X1 l, P. ^9 W( N/ F- x5 n" Z% ^
- U% Y8 f' _( l2 E( @; m* Y) n当到达物料速度越高时,这个报警更多,
; n" n  ]0 S7 Q. E% e* E, k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- M( ]* \5 S: ~- `+ A' n& x
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 E( U8 _* P+ ]* P$ h

6 e' c* y( W1 ^5 w2 o另外一个小建议,就是move,所有的move都可以这样) T' b& t7 S3 C# l9 i0 |
if not move() then debug end
; S; D4 s8 q2 M, M# c) Z" o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ x6 e: x% \& X0 }: w/ ^6 e1 jplant simulation中的free libraries有AGV模板,! Y: }$ g+ {8 o. s1 Y5 d
里面也有案例。
" c$ w2 {# l  M) b3 q- `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* Q4 [6 h& z1 f0 q3 V
, Y# H  n& |! W0 @$ k! q
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 {5 w3 T$ S3 E* |/ ]8 y
3 v) }/ y% M0 E+ B  _# P; c那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( z0 d% j, {, J# ]0 I& b. ~# \7 D这是AGV_putin中arrive的method。* o! P4 B* d' M* s; F7 o) I
8 A* T( w# B: \/ U
当到达物料速度越高时,这个报警更多,

& g  ], s2 V; r% a- ^- U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-13 23:50 , Processed in 0.025984 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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