设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8282|回复: 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'2 D' N" P: b7 [) d
*// T# Y9 _3 ?9 P/ x9 n' ~
is- {+ h5 p* U& L3 q) G$ P4 f, m$ C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: G5 j0 p4 d9 F; T9 A" D% _do* W; ^; a8 q6 ?! m& d
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- ]! R% n# u- r1 ?0 t" R& h        if current = @.Destination -- else return4 l/ ]. V5 K) R
        then$ Q9 g1 ^  P. S9 f. I
                @.Destination := void;
3 J+ e2 \0 F" G5 k, c3 F9 ~                if @.occupied then
, G1 }2 M" K1 M9 C' {0 W2 {                        part := @.cont;
! Z: g1 V3 u3 S                        @.transpOrder := void;* O: w" r( q. ^/ I7 M% x9 c* W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' W5 H1 s! g4 ?# A+ n0 ~2 [                                @,root.eventcontroller.simTime);
, n, y: o" }4 r5 J. p                        @.HasOrder := false;, e+ o( o1 w- x/ @# c
                        @.DrivingHome := true;8 i& e1 ~+ F3 f1 J
                        rgManager.tryToStartTransOrder;0 k% Z! E6 c4 D3 }- j( i# Z- a
                        if @.Destination = void' g: v. b5 W9 J6 ]
                        then -- no transport order for vehicle @
" u$ E1 q5 G6 B& {                                @.Destination :=- f1 S' k  m8 M6 g! m* C
                                rgManager.nearestFreeStation(@,track.~);4 M3 n. f) ?. |8 Q" v- K( h
                                newDirection(@);   
0 E' r' f% P' @" p1 U                                if @.Destination /= void then1 e; W3 |) U0 a1 P2 ?: T5 `2 z
                                        @.Destination.NumReservation :=; {5 X0 U* S6 d7 c
                                        @.Destination.NumReservation + 1;
6 W4 E- c$ w1 {$ ~6 [9 B                                end;+ G# t5 I: A" h% m' c6 z1 G" s0 v
                                @.CurrIcon := "drivingHome";. }* o# D$ Z# X1 T" S$ C
                                @.DrivingHome := true;0 m1 k5 ?0 `2 z# `: ]6 s
                        end;
( M% h' U- y; u& I4 {1 ]) y5 R+ C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; f0 N* z9 I$ w3 p0 E2 ^' C8 N& t$ i                        part := @.transpOrder;- U1 n3 t# q- ~
                        part.move(@);-- load part! i- b: t( B) e; z5 s3 V0 k# o: f
                        @.CurrIcon := "load";% g: `' P4 \1 V" e6 h0 m  ^( Z
                        GlobalDistObj := part.globDestination;9 `, t) L1 Y2 D1 A- r
                        assignLObj := rgmanager.rgAssignL;
- W  V6 E, f2 Z- `  D  Q) Q                        row := assignLObj.getRowNo(GlobalDistObj);/ O* e; }% @, h& A* d+ u7 f
                        if Row = -1 then -- since 70# ^: L3 w9 z% `0 H  \3 ?% W$ U# r
                                if lan=1 then
: s0 v! c3 p# Q* p+ \" B( H  v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 J& M% h' N$ ]8 ]6 ?; M                                                to_str("in der Andockstation: \"",?.~.name,"\""));# V: |* Z! ]4 W% z$ {' w
                                else
, p$ b' Y" e3 G1 q( t( P, ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),& q# x) h. X# s7 O' }! o% V  u) G
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 k3 z% J& A  z  Y/ S  J! F                                end;7 H2 u8 K! R% {7 W5 S; T$ A. M0 U
                        else
9 A+ V7 Z5 }8 X                                @.Destination := assignLObj[1,row];; A7 ~6 f7 B4 ]
                        end;                       
5 X0 b5 Q+ e+ F! e4 G8 ^( A  G                        newDirection(@);
+ c( s4 s- j0 V( x6 o                        @.HasOrder := true;; l+ k; m4 U2 u! A) Y2 K
                end;; W: P% F% @2 Y' T- K) x3 K# c; _4 h$ x
        end;; k: g  o. `  p0 g
end;        -- of the method
, Q* D9 r; v, q1 J" Y% a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) M3 Q5 y9 I0 I2 k# ^' q4 V: q3 _, z9 Q% Z9 U% V
这是AGV_putin中arrive的method。
: m  ~  X! @! R! j, C: O- \5 K
3 ^; {: ^; i/ O0 c# M6 s* T当到达物料速度越高时,这个报警更多,
. _% @9 x+ M/ U* i; U* |  a4 l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ I" f6 e' m* z/ b2 ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 B& l3 M) W) N0 d3 O
2 i. H  X+ C) i! Z; u$ V
另外一个小建议,就是move,所有的move都可以这样+ s, ~4 Q- w! k) G. J% S. P* V
if not move() then debug end
+ m' \5 @4 |, k2 v; E3 u2 y! ]% Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 C0 Y: A7 x) }
plant simulation中的free libraries有AGV模板,
- O6 d  F! X) U7 x; s) O里面也有案例。
/ F1 f4 @# q6 J- @8 H9 ?" t4 N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
( u: c) u  j2 K# j( `: J  O# |0 J8 o' ^# B& a
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 k. M3 o; r# u. Y: O
0 D! N' J  v# \
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + i2 q9 n2 j/ X5 q; e0 w% U
这是AGV_putin中arrive的method。
- k7 K6 k+ q9 j) c; y
* i% k" u1 D5 h! d当到达物料速度越高时,这个报警更多,
0 O1 f, ^( X+ A5 X9 T8 }% F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-25 04:05 , Processed in 0.019380 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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