设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8181|回复: 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 R) b* `; i2 p  G' w. p; B. i
*/
7 Z( o" N" }. L# Lis6 l0 `/ @/ ~- s* G8 V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% P- d! F0 z) q8 `; h/ J4 s) |% m
do& Y: d$ Y) `, L$ n" _$ C
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 ?2 V7 e$ r. X& Q
        if current = @.Destination -- else return
, {* e+ a" t6 m0 R' S# \        then
" G- `! N9 t% |. ?$ j' q0 T                @.Destination := void;$ w- D; [# v5 [0 K
                if @.occupied then3 Y- p# D$ T2 |4 f+ P
                        part := @.cont;' b6 U/ g" g7 H- [5 _
                        @.transpOrder := void;8 }' w1 C! u0 R. n. l
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 F, _' i* y/ ^% W; f% y
                                @,root.eventcontroller.simTime);$ W: ]$ E# H& L* D
                        @.HasOrder := false;0 g. w2 n1 p/ z/ [4 V7 R
                        @.DrivingHome := true;: P4 i5 A% U" f# J8 ?
                        rgManager.tryToStartTransOrder;
7 X9 w) x) ~+ }! J( W- H                        if @.Destination = void
. W6 c9 O2 e$ m8 ~$ t                        then -- no transport order for vehicle @
5 O1 i& C5 `* }% E: Y                                @.Destination :=$ |3 M7 \: f9 m  z4 E4 Z
                                rgManager.nearestFreeStation(@,track.~);7 U- `8 O, }& U1 x7 ^2 q
                                newDirection(@);   : r" K" C( R, U( y
                                if @.Destination /= void then9 Y$ l( T* t' V- d
                                        @.Destination.NumReservation :=1 y+ d; _& F, w
                                        @.Destination.NumReservation + 1;& Q- k8 v' B. c
                                end;2 B" @4 o- e8 x9 X& w6 a
                                @.CurrIcon := "drivingHome";
4 d  H& I) i7 l                                @.DrivingHome := true;7 I! Q  N3 i) A/ J7 @# n/ |
                        end;
& _/ P1 {4 S/ J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ D5 ~4 x* `0 O9 G8 ~6 g
                        part := @.transpOrder;9 n/ E$ s# U' C# g& j
                        part.move(@);-- load part  A" I4 z7 X" S" x& X9 X0 }
                        @.CurrIcon := "load";/ k4 |0 _% U" d
                        GlobalDistObj := part.globDestination;
$ \$ X) b) B. O  T' H# R                        assignLObj := rgmanager.rgAssignL;/ d5 ~: \: e; l2 {5 d  q
                        row := assignLObj.getRowNo(GlobalDistObj);. r. L. b& C5 Q2 }4 b/ y' x  c
                        if Row = -1 then -- since 700 j) O: }- o  k2 Q6 C
                                if lan=1 then
6 }; p: x& P. O4 k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! Q$ k1 w3 d1 c8 I6 h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 _. Z6 ^1 f) e/ p& q' }
                                else
# Z9 d8 N+ O1 {0 v6 u. u; P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 j5 U( b5 D* y$ J$ c
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ `; L; C3 k, }. L4 K' s                                end;
1 U! y2 ]- v# O                        else( K! }7 F" A- r- d( [
                                @.Destination := assignLObj[1,row];
, Z0 K. o2 @9 u; N% b1 J                        end;                       
. d2 b7 x; {  C0 H                        newDirection(@);
$ O; F; z, |9 n/ E5 Y; }# p% u                        @.HasOrder := true;
6 e5 k7 x) W7 q: y% z" {# A                end;
, m" H  n4 L: u, S5 }        end;
0 A5 c+ T* w6 v0 Cend;        -- of the method
* p7 z& C' t- f" ~& M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 ]; t' Y9 g/ }5 U# o' d8 I0 W& Z+ F3 C3 A7 U- K
这是AGV_putin中arrive的method。1 C; I. O2 B" Y( S( a

: B- ]* m+ m% r1 |# k2 Y当到达物料速度越高时,这个报警更多,6 G! }9 M' e) l$ ~' Q# n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( T5 K# X" d' T# [  E, \: m程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 |2 q% Q2 n: }) G1 S; B% z. t/ a
, ~+ }* G8 x% V
另外一个小建议,就是move,所有的move都可以这样
! q* F9 g* h$ S4 W: _6 Eif not move() then debug end; Q/ D  B3 O: {& d+ Y% }1 B& `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- b, s  S/ \1 L. d1 Qplant simulation中的free libraries有AGV模板,: T3 ]9 s7 N; a" J' t' m
里面也有案例。
4 A* X$ u1 k( H  H) w6 t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% O. X# H# S) S" _9 ~( Y* G. _3 k, m3 v9 Q. w6 W% @3 m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 @2 {- h7 c: U9 i$ o* z' K
9 r. s* a! A" @$ J$ S7 U
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) f. u+ A0 f$ s- y, N# S3 X! N
这是AGV_putin中arrive的method。0 f/ D/ _8 S* h. I
8 Q- |/ ~% B8 n% ^1 j4 G
当到达物料速度越高时,这个报警更多,

% c$ a# z4 y$ R) W7 W! q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 09:32 , Processed in 0.018669 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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