设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9492|回复: 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'3 J* Y0 Z. B  Q6 G6 K) |# K6 I
*/  `; c; L% C: I" t' S
is
7 S' n6 f% D& Z7 D$ \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- }3 g3 q6 T% f  f
do
3 p) S# [2 }! a( k, v: D. w        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 f0 }. E3 }' n2 j3 }        if current = @.Destination -- else return
) U& |3 P0 T' T6 P8 k  P  `        then
6 a; S/ s" m. _; Q* L                @.Destination := void;
  b% T$ @% g1 f9 Y                if @.occupied then3 w) R% e$ t: M. I: c5 O( Z
                        part := @.cont;
; i" D4 p2 `) f; i                        @.transpOrder := void;
1 C4 y4 F1 W4 @% j: r5 j. T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ B- `/ k! {8 e! n( b& l; j. S! Z7 U3 Y( X
                                @,root.eventcontroller.simTime);
  m0 e- l" i. Y' @0 f6 q                        @.HasOrder := false;
! W. }: m. R" F2 f                        @.DrivingHome := true;. W! \* s, ^2 b
                        rgManager.tryToStartTransOrder;0 s' q$ i; \+ }& l# ?% @/ u4 H
                        if @.Destination = void# V/ d9 e, ~# ]4 ?8 A: e; s# _* B
                        then -- no transport order for vehicle @9 r9 t; S' ]4 l' x  r6 O) s, o& h; g
                                @.Destination :=; p9 X! o- @6 M' |; O" O$ \" W7 u, G. Q
                                rgManager.nearestFreeStation(@,track.~);
; g' j- S2 ^3 U) l# G2 G                                newDirection(@);   
2 f- ?) P& o( W( S8 {: Q: ]. l                                if @.Destination /= void then, K; ~* V) \- z% |
                                        @.Destination.NumReservation :=
1 S1 ^. _6 }/ [5 {                                        @.Destination.NumReservation + 1;
# v- H0 E; w( G8 Z7 ~7 D% P3 `                                end;; p$ p7 ?( w2 Q
                                @.CurrIcon := "drivingHome";1 r4 g6 p+ S9 G& \4 v
                                @.DrivingHome := true;! s5 d+ ~! \# z2 B. y% ^
                        end;* `$ W, w3 Z6 w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 r+ v, R$ C/ W' R( X; p6 k- G9 q                        part := @.transpOrder;' Y+ L" G- H4 ^5 T# q1 s+ E- M% W
                        part.move(@);-- load part
5 }, M2 t& d- b* x1 j                        @.CurrIcon := "load";: |$ Z* p4 f$ q% z
                        GlobalDistObj := part.globDestination;, T" {! ^- \6 n/ F8 J
                        assignLObj := rgmanager.rgAssignL;
9 @' B  ?0 _# `/ H/ w& a                        row := assignLObj.getRowNo(GlobalDistObj);
) g$ t; S# S0 a6 v                        if Row = -1 then -- since 70
4 G8 S+ X' V1 h, s" E1 ?! H/ Z* f                                if lan=1 then
  a) [* u* C+ h# a4 N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* M, i6 e# v+ s5 \" ]+ C: @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- {5 H  |; Y/ h6 V: ^9 Q: A6 ~
                                else
- F# ?" H3 _+ S5 y3 T& d# F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# p3 [: a- a: h" C, u8 D
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& J0 e0 e7 u+ e# ?8 y+ x! o- x                                end;# @5 @( t& a! Q9 i" L8 T. G% F
                        else
0 N1 m  x9 k3 A                                @.Destination := assignLObj[1,row];
  b* p) P) V0 r; x+ n' N6 [! ~                        end;                       
3 b) Y/ F8 B4 X; H, k! Q                        newDirection(@);* J6 j* K" O/ I
                        @.HasOrder := true;3 ?. p  s1 w- t7 L5 G3 N
                end;, L! v4 Z5 r" G2 \
        end;+ i; |4 [6 j4 w
end;        -- of the method
) n( t/ @2 L1 N3 j1 I: H) X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! I: j# `; p( a& A+ p( F* L

6 E0 R4 O1 f) {4 K7 @% @; g6 u这是AGV_putin中arrive的method。5 C, ~$ E4 W+ ^0 v: z  G

" ]' M! z8 v1 y# {当到达物料速度越高时,这个报警更多,& F' T! s7 Y( j9 ~7 O* A2 f* R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" o) e" O. C1 v* r5 e2 M, p7 [
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- b" \/ `2 d6 ~$ J6 g7 S* Q& C# B- t1 b6 n/ N- x  e
另外一个小建议,就是move,所有的move都可以这样8 k7 R, [- o7 y
if not move() then debug end
2 t. d; ?! S% X# h8 ^. ^" t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ ^7 D' g% v8 v( j8 Lplant simulation中的free libraries有AGV模板,' o8 }! _- L) ~( A' X) _! }- b
里面也有案例。
" U4 ~. O2 A3 N/ z" p# a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" w6 }% X0 k7 b8 e& k. L
) m4 N5 l! I, d# f* R$ r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( V8 [5 D3 z0 x! ]! y) \9 ^' Z2 ]/ n6 J1 p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + h/ C( {" s) j  |: ~3 ?5 |3 z
这是AGV_putin中arrive的method。
" M2 v; @" ~/ {( k3 Z$ x- v/ Q+ J9 K2 b/ T
当到达物料速度越高时,这个报警更多,

6 ~- D5 B9 h6 n# k2 x- S5 ^另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 00:39 , Processed in 0.017190 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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