设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9917|回复: 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'% h' e. M5 [0 K
*/) r9 }: w, M! |0 d5 q  r
is
% y& B) P' u: T% [4 W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: c; S7 c$ U$ Q- a" M% r
do
, J, L8 n: G" ~- [" a        Lan := rootfolder.Internal.Tools.AOLlanguage;
& L. s. p6 t5 R& b        if current = @.Destination -- else return* _4 }% L) j9 {% S: y4 z  d
        then
4 l; Y& G) U* U4 x' `                @.Destination := void;, h' [; @, K3 X& \) c7 t2 B/ Y
                if @.occupied then
. Z* k# y8 V6 `. V                        part := @.cont;
% |2 p- {5 y6 d" C* q" _- c3 u                        @.transpOrder := void;
# K8 r) M9 t5 w! E5 U# x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! C9 Q, [' @/ N                                @,root.eventcontroller.simTime);
" x$ m' Q8 D! t! w! y% F                        @.HasOrder := false;5 B7 h5 r, R* u  S
                        @.DrivingHome := true;
0 n# s3 O3 Y4 z- `                        rgManager.tryToStartTransOrder;7 Q. g9 `8 V0 ]# [0 i. l9 t
                        if @.Destination = void
& o3 {9 s+ X  L# d, z                        then -- no transport order for vehicle @
0 E  @& h5 `6 p! v; ]                                @.Destination :=
6 h6 h4 t; {- |1 q                                rgManager.nearestFreeStation(@,track.~);
! D& Q) O. q* P8 J  h# e: c" T                                newDirection(@);   
, w+ N& W7 R. ~- v8 f, S2 f, C' ?                                if @.Destination /= void then* }& m7 f2 }3 C) Z# p( l: o8 `
                                        @.Destination.NumReservation :=
2 K: j7 h+ X% T  a4 A                                        @.Destination.NumReservation + 1;! u( c& v# Q( l
                                end;
: W% u& p' Z! p/ Y2 b& X2 p                                @.CurrIcon := "drivingHome";
& a6 _) f5 d" \  X5 V                                @.DrivingHome := true;
! K* V! J' `9 @" [/ s( m                        end;2 k, L7 O' i7 }0 H. g  S
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% F8 V+ q0 v. j" {! ~- c/ Q                        part := @.transpOrder;& _' Y6 a! @( j# e7 L- g
                        part.move(@);-- load part
: z+ y2 S0 J" O* m6 X+ |                        @.CurrIcon := "load";
. i2 G, c& L" q  |, G6 f3 O                        GlobalDistObj := part.globDestination;( i0 L9 c% W) l/ C2 \. U
                        assignLObj := rgmanager.rgAssignL;- q8 P' r- p; T9 `# Q! ]* a
                        row := assignLObj.getRowNo(GlobalDistObj);( z$ C* P6 {' K4 Y
                        if Row = -1 then -- since 70  B6 x6 S2 n  }' Z/ ]% s
                                if lan=1 then
  o# `! T: u6 M$ z8 z4 ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. D* F2 V- B6 b0 |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; q0 _! s+ `- [' t7 v  m
                                else1 p3 i0 O" {3 w9 D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% U! n5 t  ~" _5 r0 K
                                                to_str("in docking station: \"",?.~.name,"\""));                                8 B: C4 m3 m9 Z6 {, W0 ?/ O
                                end;- _" Z! l9 g( w$ w
                        else. O% p$ L2 Y# x
                                @.Destination := assignLObj[1,row];
' a# Z$ e2 ?" Q                        end;                       
7 v5 Q( V& Z4 U* n, Y) V                        newDirection(@);1 d9 ?% y) S! B9 S0 W5 d. @; \6 w* Q
                        @.HasOrder := true;2 L, d1 u1 K1 M) s
                end;' P) V/ y/ ]" x" _' l
        end;
4 w! b, ^3 l" ^! Z9 E  Rend;        -- of the method
' Q$ {0 C( c- L9 m3 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. t0 U3 }' R- X
  [6 D  C. ~6 H( A这是AGV_putin中arrive的method。
; X  v' V! q( B  X+ W' D, W/ c% l8 O0 v8 y; K. d! a. `9 |
当到达物料速度越高时,这个报警更多,, Z7 Q$ W" J  g( |: S( g; T# \0 ?
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  V' c* s& k4 r! v) w! E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! M: R' f3 y9 Z9 g. i9 Y' `

! U' `* z7 ?9 F) w. B  o* g另外一个小建议,就是move,所有的move都可以这样, x* P3 \6 l  @' p1 a. x
if not move() then debug end7 j, D8 v7 F: S7 U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ {) x5 A: O! D5 P, U! o6 vplant simulation中的free libraries有AGV模板,, a" }/ a8 d; b+ g. `) ?1 v
里面也有案例。
" F1 M: j$ D7 d# C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 ?6 y3 K+ I% c, b& C- T! C& v8 V2 @% R+ ~
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' a8 V/ F$ y2 z( C5 g* z

! b& a, L6 e& V6 e& m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) m: t1 G' G# `9 u这是AGV_putin中arrive的method。* @* |* I% R3 L4 {; s5 _0 o, V

  ^# C$ b8 `- N  W+ c4 C0 E- [& m当到达物料速度越高时,这个报警更多,

5 [$ C0 l* @4 t) \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-2 14:11 , Processed in 0.021367 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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