设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4565|回复: 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 F( O7 R" j2 o1 q*/7 [; R& v' \5 l) J+ Q( ?5 D: u  N/ }
is* [6 i' U7 Z; {; W
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 B% {6 g; @' y( s
do8 q( N; v$ d8 S$ v0 f- u: h
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ u/ n$ ~9 x" i) U6 h' G* C4 v
        if current = @.Destination -- else return' J7 w- z6 b: G$ b
        then
$ T1 }. L( S1 S! C$ E                @.Destination := void;
! C) ?. F+ ^, o% O% X                if @.occupied then  A. [1 b# X5 w% X
                        part := @.cont;
9 Q8 X1 Q6 P; @* r+ Q                        @.transpOrder := void;9 g* q( k1 z2 P$ i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 u4 v5 C9 A, `1 A6 b                                @,root.eventcontroller.simTime);
- l# X9 g2 `( e( n8 ]0 p# B                        @.HasOrder := false;4 C/ i. t/ K% l+ D& @
                        @.DrivingHome := true;
2 a% X& m1 ~2 H  p9 O                        rgManager.tryToStartTransOrder;( H+ V2 S3 K- e% ]: {( V
                        if @.Destination = void
3 Y. |* a- P4 d) P  j                        then -- no transport order for vehicle @
$ I! ]8 U3 @3 [  L$ X                                @.Destination :=
$ c5 }, r- O1 c                                rgManager.nearestFreeStation(@,track.~);
3 W4 E$ Y8 }: j1 O                                newDirection(@);   
# M. U/ W7 U; D5 J                                if @.Destination /= void then
" i$ N/ x4 F6 W0 p( |+ y                                        @.Destination.NumReservation :=( N! T- j1 p1 F" d8 x7 `
                                        @.Destination.NumReservation + 1;+ y% j* k% h! }6 L* o4 l$ S, h
                                end;
1 ]( a: q  S- e& v& [6 Y5 O                                @.CurrIcon := "drivingHome";; k! q9 y! M1 W: a. l
                                @.DrivingHome := true;7 |1 N# s0 g4 [' b
                        end;
1 y& l, Z! T0 f9 ^) M* z; j- O0 N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 C  u, S/ G0 b! ^( F# Q5 i
                        part := @.transpOrder;. ~7 d/ K, Z! M9 y2 f9 a1 R
                        part.move(@);-- load part
* k6 \+ e* n# E( j. q                        @.CurrIcon := "load";8 b" R! R$ ?2 i3 Q
                        GlobalDistObj := part.globDestination;
  Q  J7 O3 ]! r, Z" J- f                        assignLObj := rgmanager.rgAssignL;
  h3 [9 A& U. |  J! R9 @                        row := assignLObj.getRowNo(GlobalDistObj);
6 m6 ~6 L2 V! e9 _/ m% {                        if Row = -1 then -- since 70" j+ ^) ?! ^! _/ G6 V5 }& i
                                if lan=1 then7 b+ g' L  M8 {0 [8 N; }* {6 n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# C/ ]1 @4 r# T0 q# h$ j5 ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. ~! y& G8 e; g! G( h# A* F7 o: d                                else
& L- l: q. x% t                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 W  t% x0 q$ E- y                                                to_str("in docking station: \"",?.~.name,"\""));                               
  d( K5 k) q1 P! O7 \( l                                end;
, N- P+ H* B. B1 W  R                        else% j& T/ b' ]( O' b( a3 V
                                @.Destination := assignLObj[1,row];  V8 Z3 `3 _4 C/ Z
                        end;                       
7 {# K/ b( D" e4 [. Z) E* A. b                        newDirection(@);
; O1 ^0 v8 Q0 E                        @.HasOrder := true;3 j: r  \: k: r  Y  I9 Z' N
                end;
* L0 X2 B2 m7 C        end;; X' B2 s8 [* u! m: y6 i
end;        -- of the method
# h/ ]  h% g$ t$ y# @( K* q" V' v+ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 S+ b. X9 N  ]2 h, e- d7 W8 `5 I2 l% j4 \5 I% I# H: Y* x
这是AGV_putin中arrive的method。
7 J1 Q1 m# Y- X! v1 s% o# e. E1 F7 L
当到达物料速度越高时,这个报警更多,
9 l; a+ ?. m" B7 x# @& B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 _- k9 S) V1 X1 X1 D9 J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 H* C# u- W9 P' S( [, }7 ?) l. S+ d
) v+ ]+ D& t7 F, s& N另外一个小建议,就是move,所有的move都可以这样
& d3 r. X3 W/ G$ F( ~if not move() then debug end+ I, I. c5 \* R" y* P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: @8 |3 J% a0 [$ Tplant simulation中的free libraries有AGV模板,  `' U0 p* s6 z3 [
里面也有案例。/ B8 D) T: \! g* J1 p/ i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! X2 C: n! Y! n* y- q: J& F0 O2 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 d* O/ y5 i+ R/ I) r7 }& }* \; e
( |% W; O9 u6 n. a, r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 c, ~4 S. o8 Q& k  N: j
这是AGV_putin中arrive的method。# ~. c/ Q, l  ~9 R! I( M

* _: Y* o3 ^* {0 _" v3 t  U当到达物料速度越高时,这个报警更多,

/ w4 k8 J7 j- d& p9 o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-30 15:06 , Processed in 0.014905 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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