设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6966|回复: 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'5 X. y, l+ X8 y8 \4 [
*/
5 F- V5 M: `6 Y8 D6 A9 ois: T9 o" F( A2 D# S& e5 ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' o+ i$ Z! ?% T3 v# M% l! Y
do
+ D3 {5 {. c7 f; u- W0 m* V        Lan := rootfolder.Internal.Tools.AOLlanguage;* z4 }. Z& a: F* T# B
        if current = @.Destination -- else return
: W$ A- g) ^7 C# u' T        then
/ l0 ^5 s8 C6 P4 V" S                @.Destination := void;
6 J7 Z* P6 O& ~) ]0 q                if @.occupied then
7 d* u7 ?/ i1 p; f# v                        part := @.cont;
. Y3 d$ |8 b2 H5 N# r; h( U% k9 y                        @.transpOrder := void;
, ]  u9 k! u6 `) E% m2 n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' E1 a6 C- E( E! R* L5 v
                                @,root.eventcontroller.simTime);" E) X, A# l+ G6 U
                        @.HasOrder := false;
  s) f" k2 F. h' _; L                        @.DrivingHome := true;( \* x" v/ F2 ?; T! V$ n
                        rgManager.tryToStartTransOrder;0 B! \! T" x- l& i' I, r  u( }: [
                        if @.Destination = void: @9 Y* U3 p# b3 F  D
                        then -- no transport order for vehicle @
' j0 V" i- ^- s6 c                                @.Destination :=
4 y6 R/ r. P' g7 M                                rgManager.nearestFreeStation(@,track.~);, A, V$ D% x# e) D4 K* i
                                newDirection(@);     [4 k4 g7 \: S4 {* Q5 N( m
                                if @.Destination /= void then0 R0 L9 X+ ~5 j, }! z! s
                                        @.Destination.NumReservation :=
1 }! {! j% H7 i  A; s5 M# V9 j                                        @.Destination.NumReservation + 1;
* e9 `% |# W' W1 B/ k2 U4 x                                end;7 p: Z9 s' @# ]/ ^1 i& V) R
                                @.CurrIcon := "drivingHome";; T1 i+ |: u' g# c4 l  ?: L
                                @.DrivingHome := true;* C9 l0 o5 m! F+ [
                        end;
7 g5 I) C6 f* t, l, C( X1 ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( l& E5 `: u' V9 G' }/ z: J' e( [
                        part := @.transpOrder;
8 t0 _7 c1 Q9 t; P/ a                        part.move(@);-- load part+ b" R# y" H7 w" B3 j: f
                        @.CurrIcon := "load";
+ n3 ]. ^/ i+ f4 K. Y, B6 N                        GlobalDistObj := part.globDestination;; ]2 E8 _- |5 @" E8 O
                        assignLObj := rgmanager.rgAssignL;1 |# u" h: G" N5 F* E7 q
                        row := assignLObj.getRowNo(GlobalDistObj);7 w1 D% ]2 V* e8 P; d
                        if Row = -1 then -- since 70, b* q+ d, E( H' P$ u
                                if lan=1 then
9 Y, [9 t0 m0 w9 ^# |, E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  s( @+ {6 d8 X& S8 b5 {                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 `5 c: V8 i; z0 n- U" P$ _/ i1 w
                                else
5 }) I* H1 l0 H2 w6 C% W0 H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 r% _: k& b# ?                                                to_str("in docking station: \"",?.~.name,"\""));                               
! y9 ~( G: a( i- m1 A8 Z/ g7 Z                                end;
  L  [( N; d2 J2 }( T: L                        else
! t8 o! o$ S: r( V                                @.Destination := assignLObj[1,row];% y$ U5 W' z$ s' U7 A
                        end;                        ; R/ z& X0 n1 H7 J) v6 f/ e
                        newDirection(@);
+ e' \; C' K5 k  D0 E                        @.HasOrder := true;# h, O, s# u6 y
                end;
+ k" j9 e- n. }. n) y        end;" o5 M3 I* q5 s5 p5 Q: U3 q! D) m5 I
end;        -- of the method" Z$ c" q7 l% `" j* h* W7 d3 a/ z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, @' M: j/ c9 u7 z  V0 `5 l; ^+ b3 c: u4 e
这是AGV_putin中arrive的method。
5 r$ m5 b' q5 n  k; u! J; z4 J8 d  u' {6 k4 ?1 I5 p2 D
当到达物料速度越高时,这个报警更多,
5 n: |( j4 s. B7 U5 {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ S% p2 j. ^4 j) I, a
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 l+ p$ s8 N9 d  p. Q( `/ r
: Q8 r  [# m7 D+ A
另外一个小建议,就是move,所有的move都可以这样
5 C7 V+ m+ E. \; dif not move() then debug end+ x) n2 p' Z& }& O+ W1 r3 u- y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 c# `  E2 s- Qplant simulation中的free libraries有AGV模板,
) t& y* w1 {# Q里面也有案例。, v/ {9 q# f/ \/ ~* m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; ]5 {$ H: I( l) D* q1 `1 O. Y
. U$ `5 D: K5 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + O) E& Z( M  `9 b, X

" b: j; ]2 k$ ^% z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ P9 w: {; X* y3 [% f5 ~% x  r9 k这是AGV_putin中arrive的method。. ~6 f' R4 ?/ z, j3 Y# t. A% F/ t

8 ~! n, T& ]4 e& N5 g/ o8 G6 F1 R当到达物料速度越高时,这个报警更多,
: S' K3 h* q2 w6 y# A0 n- K' z# @
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 18:17 , Processed in 0.022527 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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