设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8674|回复: 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'
7 N5 \" T) \7 J1 F# p  t*/
* `( `1 o. N& u, E% R. `1 Ais
4 V" F9 N' Y% @8 B. B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ m; K* V$ s% }# Ado' X' z- A4 j6 N, R
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, t/ X5 D* `- W        if current = @.Destination -- else return+ |3 O2 L' b8 b8 ^& K
        then8 w7 J% L- s9 d$ O5 e$ R+ E# }
                @.Destination := void;
$ }4 c; D2 n" O1 u+ g+ t                if @.occupied then
0 v$ H- `% y; q8 a                        part := @.cont;  }& ~% p/ T) l1 g. a6 d9 ?  h" g/ e' G
                        @.transpOrder := void;
3 @5 }( d3 X+ q  l0 V( |; p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- w6 C: X4 }4 s: o' Z
                                @,root.eventcontroller.simTime);4 u6 n1 t+ ^; ^; [5 g# D
                        @.HasOrder := false;1 W; x- g/ b" A  M+ u
                        @.DrivingHome := true;
( w7 j* f- b" F2 L! M4 [( k+ _" l; q                        rgManager.tryToStartTransOrder;
: O/ M7 s( e; s8 p9 m- w' i+ O                        if @.Destination = void
$ _; E# c  D4 t7 s+ I9 X3 p                        then -- no transport order for vehicle @
4 k9 e7 q; d: H1 o: {/ m  J  @0 b+ j# V0 H                                @.Destination :=+ |" g. ~6 @& [9 n. K- n- C
                                rgManager.nearestFreeStation(@,track.~);! n. h. E; a+ r% _
                                newDirection(@);   3 K. F5 x1 V% @
                                if @.Destination /= void then
" y8 j5 s2 u! F% c( g# \                                        @.Destination.NumReservation :=
8 n! `+ N) o$ f' c: }                                        @.Destination.NumReservation + 1;& _4 }2 V+ W, ]0 M
                                end;
5 b4 P. e" n; O5 m* u( B                                @.CurrIcon := "drivingHome";
- ]% I1 u! C( V' V" X7 x                                @.DrivingHome := true;
9 @+ S5 `  A: ]2 R# A                        end;
3 H  _+ h" b7 \# c8 y# p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" ]9 p. u$ S1 W
                        part := @.transpOrder;; k% ]3 }/ h3 S$ p% P
                        part.move(@);-- load part
5 |* K" e$ {2 q  d) C! H$ K, o9 M                        @.CurrIcon := "load";- E4 o5 m, A2 }) |6 N8 ]7 G! @
                        GlobalDistObj := part.globDestination;) w! s5 u: b& {4 F$ j3 S
                        assignLObj := rgmanager.rgAssignL;
6 i5 W# h- W4 q% v( K  a                        row := assignLObj.getRowNo(GlobalDistObj);
( q6 M1 x4 _% `7 c( V: P1 O! _                        if Row = -1 then -- since 70' @4 `/ S6 \2 W: ?: [1 e5 c
                                if lan=1 then+ R$ m4 W  K2 L; O9 E5 Q) [2 J. r
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 G3 ]& J7 `( ~! K8 v                                                to_str("in der Andockstation: \"",?.~.name,"\""));: j3 u' q; t: W
                                else5 Z( w* I+ g! Y4 A' G) y% b
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# Q/ I7 i& J. E" W/ H  G9 s9 D                                                to_str("in docking station: \"",?.~.name,"\""));                                ! B$ w, n, e, A$ Q
                                end;
$ v, s& U( Q3 x$ u                        else" K! v" ~" v( r4 b+ e, X, p9 P
                                @.Destination := assignLObj[1,row];/ i2 S% o: F2 }
                        end;                       
& E$ H& a) D  D8 J5 N( g                        newDirection(@);& X  e/ F- e4 I; x) m
                        @.HasOrder := true;& F0 A2 b) H3 k' h. [# Q' d" X
                end;
& O: P- j0 X. h5 X' N/ A! G( W% P        end;3 }7 b3 S. W/ e5 R' ^% |
end;        -- of the method
, A. N! y+ t( w# _0 W3 ^5 A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 K6 D; K& _0 N! M3 i" X
. z; n7 u/ }* ^) U. n- ^- }; y9 b* g
这是AGV_putin中arrive的method。
3 [8 n; L  J6 L' R+ a) N
- z( C* D" h8 @% ~! w$ }3 B  V% ^当到达物料速度越高时,这个报警更多,
7 s  m) M" y$ ]5 f可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! C; L6 S( ?7 T) Y5 d  F7 L6 b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 z. s( [8 w! \: D) \, d
4 y/ f: N2 _- d5 R- _& f+ v' h
另外一个小建议,就是move,所有的move都可以这样
4 o  _& L% A7 {. r: j& [if not move() then debug end
% d2 _# n$ p8 j" ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 f2 a! r6 h- C6 y- t* z, N3 W  d
plant simulation中的free libraries有AGV模板,' T$ ~- n+ Y; K6 Q5 M9 K- d+ u
里面也有案例。6 N7 \0 [/ `/ E/ Q& u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& q! E8 l% x# l" {$ ~

. p& }; q7 m. v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ T: i* A% x8 s: z% C: z! X% q/ \8 w3 U- \. {: ^$ u' T) L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - l* D  M) D- N5 w  }! d' {
这是AGV_putin中arrive的method。& I5 W7 j1 k2 g8 i
. f7 b( O  U4 f* v' ?# h' ?: Q
当到达物料速度越高时,这个报警更多,

/ \% c" b: ?0 c# A; f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 13:09 , Processed in 0.028602 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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