设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10118|回复: 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'
4 C8 z7 n! c0 t: ?/ n*/# x' N! i3 L6 Z/ j
is
  g# D4 `; ^6 P! A# Q' f( R- ^& @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ k" c# o: r9 u6 A" @
do
" v9 m$ @' q# o) J/ L* j& B        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 j# a# a3 g  }) e        if current = @.Destination -- else return
6 N$ q2 _: z! W        then
8 A1 i" f4 g1 N9 {/ {. T" e+ t                @.Destination := void;
% J4 L2 q: o& k6 m8 G8 ^3 ~                if @.occupied then
  u5 S4 X1 H1 {# I7 f6 L# ?                        part := @.cont;
& J0 S) J1 Q0 t& p& n! b3 t                        @.transpOrder := void;
0 Z! N; h# o) d  i" x/ m, j7 m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: F" N: [/ z  o: H                                @,root.eventcontroller.simTime);
; g; g' ]: p& Z. N) O7 g                        @.HasOrder := false;
  H1 q/ d* e8 g3 |& N                        @.DrivingHome := true;
$ @6 H. i3 P; X. P( q( a                        rgManager.tryToStartTransOrder;
, [  y, o5 W+ i* k; \* Y; E                        if @.Destination = void
, A" G) S+ q8 g9 U# v3 p+ A6 Y9 H0 k- m                        then -- no transport order for vehicle @6 N6 p+ I, r% S- b* e% x
                                @.Destination :=
# R6 ?) ]; ~# u( i* z                                rgManager.nearestFreeStation(@,track.~);
' w5 Q% S$ l5 i) c                                newDirection(@);   7 q" U# [) r0 U; V; W: Y
                                if @.Destination /= void then
. l! |( m) q( E: h                                        @.Destination.NumReservation :=
6 W& X: u# ~9 ?$ T& N                                        @.Destination.NumReservation + 1;
; x. k9 V5 r" d6 @                                end;! p& V# {/ Q6 X: u1 v" k1 R
                                @.CurrIcon := "drivingHome";* f8 l0 a& g; m
                                @.DrivingHome := true;
, M5 Q0 ~( P8 y; W                        end;. R* G+ {$ W6 p! k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; k1 T- T7 }' ^, ^9 H% J* I
                        part := @.transpOrder;- g; f& Q1 O- B# W, s7 X' ?$ H
                        part.move(@);-- load part
% W6 y4 x9 _/ `4 V- j% Z6 r; d2 k                        @.CurrIcon := "load";" D; f3 k; r4 u; E; n
                        GlobalDistObj := part.globDestination;
0 O1 k% y5 W: Q2 B& n                        assignLObj := rgmanager.rgAssignL;
7 |: Z) V) M$ F9 ~                        row := assignLObj.getRowNo(GlobalDistObj);* y% I& U  O1 {( j: n" a
                        if Row = -1 then -- since 70$ Q4 ^* x( @0 ?3 b
                                if lan=1 then
0 ~  U5 r; F# q7 U: G; }1 c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! f# b" A+ o! q3 Q  j3 e8 H/ Y                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 E% m/ v( F" }- C2 w7 F- p% b& o( ?- n                                else/ @" W' m5 o2 w7 p) r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),1 O, G0 X, I. w, m3 R& w0 C% O
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" ]+ [$ k/ P" {1 J                                end;: A5 R; ?  L+ O9 k  C. K9 [
                        else" y, b& z. K, Z1 |% X# b
                                @.Destination := assignLObj[1,row];
4 p  s$ Q8 m4 m, A8 O5 A/ ]                        end;                        2 B4 I7 f8 U) k1 V. I
                        newDirection(@);$ w0 L: K* M4 {! G- q) |
                        @.HasOrder := true;# Z. T, ]$ t  u# l- [
                end;
' r& @. f  m$ E4 K        end;; T+ G" ^" a! x4 U
end;        -- of the method/ H/ a8 M: X+ x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( U3 X8 Z: R, V' {
/ y! `: s  F# m! R3 d4 O! p: c
这是AGV_putin中arrive的method。
7 ^/ u( F- U, c+ M% g$ M) [' d6 G
0 h% Y! S% v) K1 c/ J/ F1 ]当到达物料速度越高时,这个报警更多,
/ C! ?. O$ B; ^! W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" E- z% k! g" r- h. v! _7 A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; y' K" N$ b; a/ U9 N( R' d( X- F3 z. W
另外一个小建议,就是move,所有的move都可以这样' j, f) x9 C; g; L: ~
if not move() then debug end
" {$ |/ {/ T6 R6 B2 r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 d0 J" I1 D1 R7 ~' H+ e. x
plant simulation中的free libraries有AGV模板,/ O6 e' o% F& `6 n& I. A- W+ q
里面也有案例。) ~1 \7 O! t# n! F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 O. `7 a6 Q# b( c
# {  H- U: \( x* b
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% q% ^4 r; d( e5 Z2 F: @) H
1 {( P0 R' B; H7 f* s# i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 H  S2 R/ r' U! Q这是AGV_putin中arrive的method。
. c$ W6 I' O! ^0 A
4 v3 Z9 D3 c4 \4 p6 M当到达物料速度越高时,这个报警更多,
7 W4 Z" I3 l' b. D- U8 m& X  |) y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-14 09:52 , Processed in 0.020191 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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