设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5575|回复: 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'
' M2 G, t+ q' Y- O: {* T*/! @( D1 `$ I) t8 N/ Y3 f; o
is
1 X6 L" K/ X4 ?2 D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 r7 E" G3 `; |do
* F2 s7 \3 g: i0 L- S. |8 N        Lan := rootfolder.Internal.Tools.AOLlanguage;  w5 x1 U! c# m; F" o
        if current = @.Destination -- else return3 D  b+ C9 V5 A; G2 u1 f
        then: U) |3 u; `/ q* W! {
                @.Destination := void;- E5 w* K+ k; Q6 }, d+ |
                if @.occupied then
/ h* P, v6 L5 ]' s2 _3 R                        part := @.cont;
9 `/ K* }& g# S, l                        @.transpOrder := void;/ h' S8 m8 ?' J  g7 _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 D2 h, D# E' E
                                @,root.eventcontroller.simTime);
1 `/ \( a1 d; m1 ]- Y4 `! {                        @.HasOrder := false;8 X" f7 X- P9 g! C  _! D) }
                        @.DrivingHome := true;
% a1 }" A# `' [" ^                        rgManager.tryToStartTransOrder;
4 K- h- g; ?6 L  S6 E3 U                        if @.Destination = void8 p0 e- |0 O% j8 z  U
                        then -- no transport order for vehicle @- ?8 _! j5 Q6 P- t) t0 q7 I
                                @.Destination :=; l; t6 v/ A' G
                                rgManager.nearestFreeStation(@,track.~);
2 ]5 A( y* Z5 r( O$ x. K7 c                                newDirection(@);   8 _$ ~" u: h+ n! |
                                if @.Destination /= void then
1 H" ]! j0 z8 N  U) t4 @: ]                                        @.Destination.NumReservation :=0 w, C$ h! V) s+ R- H
                                        @.Destination.NumReservation + 1;
0 ]# d% S# C) x+ c/ I                                end;* s. {6 _' e' r2 J
                                @.CurrIcon := "drivingHome";
; t" M5 Y  I, X$ a% ]  U# W6 c                                @.DrivingHome := true;
& z3 i) J$ N- ]2 y. ~                        end;+ V# G  i, H1 F7 g, W/ @
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' S* n, Q2 n4 x# Z
                        part := @.transpOrder;7 K- j1 Q8 e/ `+ P* ?
                        part.move(@);-- load part
" M1 z6 L. |. I                        @.CurrIcon := "load";) Y( L* K0 D3 I: ]6 x1 f  P) }
                        GlobalDistObj := part.globDestination;; G$ ~% a' [( u) ?' M) F
                        assignLObj := rgmanager.rgAssignL;  M$ f) U: I. o, ]* O
                        row := assignLObj.getRowNo(GlobalDistObj);8 g8 ^1 W' K2 Y# Y) ^
                        if Row = -1 then -- since 70' [4 t% A0 [% r  e% `- p
                                if lan=1 then
- o! R' ?: n4 D8 x" m2 m( B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ r- c# g8 W5 ?! j: e0 l+ ~; I                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 t2 h9 U% ~) f- g1 F8 i2 T                                else5 E' f2 }4 _. Q7 `  `# A# [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& H3 _( I- B1 I% i  B
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 i# _  [, r* O2 G6 B+ H4 H
                                end;5 }! ?8 a' w2 ~0 N( @
                        else
% x) V; |& d1 x" z4 l9 x                                @.Destination := assignLObj[1,row];
# b* O2 y+ e3 p/ {                        end;                       
  U( e5 P8 l% H7 L4 S                        newDirection(@);1 A) d$ S0 }5 K+ @8 o
                        @.HasOrder := true;
0 N) n( L$ c# Z  H6 {                end;4 @- a. T" k7 _$ t2 s! o
        end;
; H6 [7 A2 u9 y8 T0 Y9 l& Bend;        -- of the method
: {' `: v0 b& y" @2 f. M: ?, K/ h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + b, x  B+ v0 d) p4 f0 P& c1 L0 u
; g# L! a' _) @4 T1 D1 u* A
这是AGV_putin中arrive的method。- l, g% u8 Y1 N9 u. g: o% q
7 t) ^) X4 h, D. Y+ q+ B
当到达物料速度越高时,这个报警更多,
! A- Z! u) B' ~1 Z, ~- k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  j$ n, e! d: y- o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ @) O% x9 h1 Q" T$ w! u" R  l2 d& N4 e: O! Z# I
另外一个小建议,就是move,所有的move都可以这样
. V/ I% c; K. [; I' i  l* _, i) c; \if not move() then debug end- R- I! D# U( Q, K8 u  {6 c: c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, j, `) l  X9 Z; e  o
plant simulation中的free libraries有AGV模板,' z4 a7 e2 y- P3 A
里面也有案例。: R- y' n. N& N5 A6 i5 ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 a: x, U( q: V1 _/ h6 w
, b0 e" S+ m3 t6 f6 I3 m, A我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 `2 _4 h$ q6 L, I
# r' q+ `  _5 u( |+ f
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 a( J  o7 o# M& b这是AGV_putin中arrive的method。( Z7 `! ]3 a: s% @1 M
+ k, L# D! }0 r' y$ |
当到达物料速度越高时,这个报警更多,
- s  G. l* w- E( S  V  W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-6 19:15 , Processed in 0.018820 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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