设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9324|回复: 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 `9 m) E% n0 e% Q0 O*/
/ i* r1 T3 c, i! E) L$ Z# F" fis
8 |7 N* X6 I) \4 s; e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 H; S; J( u, pdo
, j6 j' F0 n& H! S4 {) n6 \        Lan := rootfolder.Internal.Tools.AOLlanguage;
& I! V% y) w% x2 v* k  Q9 \7 U        if current = @.Destination -- else return
) Y% n- K- T9 u2 e! i        then2 [8 `) G! U, I" `* J0 _, J  b
                @.Destination := void;
1 j9 [6 W# z+ H9 I                if @.occupied then4 `0 _- y8 T! ]; P- B+ m
                        part := @.cont;
! t/ h' H" |. U  h6 W( K8 N                        @.transpOrder := void;
: D9 M6 U1 C1 y, K. c& x: F                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. x: v& r7 W& ~. w- k                                @,root.eventcontroller.simTime);
$ l. `+ x, I' w+ k                        @.HasOrder := false;
6 M2 p3 [' X! j6 {; \; _5 v                        @.DrivingHome := true;
, d; ^0 d9 h$ p6 _- |7 f% Q! b/ s' R* d                        rgManager.tryToStartTransOrder;
' P9 o" {* q) L, S9 A- ~                        if @.Destination = void
1 Z- a9 c3 ?# J& q5 v                        then -- no transport order for vehicle @
( P) Q5 W) I% g1 }% z                                @.Destination :=
6 m0 h4 ^& b. q" _                                rgManager.nearestFreeStation(@,track.~);$ T0 j) z0 s5 L$ J4 Q8 {
                                newDirection(@);   7 t( B3 O+ k" Z
                                if @.Destination /= void then
) ~6 k: @) t- U8 W2 E5 i, F, r                                        @.Destination.NumReservation :=/ U# `! c, y) V4 @2 K: s
                                        @.Destination.NumReservation + 1;
: h' F5 z: V4 B& D1 C% {                                end;
' [$ I, y) Y" @2 y2 m" m                                @.CurrIcon := "drivingHome";
' s) K! j9 b/ p, C( \- A                                @.DrivingHome := true;) ?9 M% m( g/ Y
                        end;
- ?6 Q" J& V" v  ?4 Z" L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. {$ T, t+ _$ m                        part := @.transpOrder;
# k+ T+ x1 H/ Z                        part.move(@);-- load part9 s& F& J, h1 r; B" h
                        @.CurrIcon := "load";' U  F2 Q  ^6 N4 r- s2 F/ D
                        GlobalDistObj := part.globDestination;
$ V8 H& z5 M9 w' F- O                        assignLObj := rgmanager.rgAssignL;' Y( Y& t; {( N6 t; D4 s
                        row := assignLObj.getRowNo(GlobalDistObj);
1 ]/ G8 h- z( a9 C# C+ v                        if Row = -1 then -- since 70" b, A# ^/ z8 W9 o$ L
                                if lan=1 then
! R/ `$ X' P4 i$ d7 }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ Q$ U4 d4 {* K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- H. Y7 ~9 O/ p- Z' c
                                else
" w: [) z% ~9 l" |8 o* K4 E2 H  Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 B) ]6 q3 P9 |% K7 a# S1 ?: F- f                                                to_str("in docking station: \"",?.~.name,"\""));                                ) C7 {  ~3 h; C: u& {4 k0 B
                                end;
% w: A3 p6 D4 {                        else
. Z0 v% k2 O2 C* ^+ \0 r5 R                                @.Destination := assignLObj[1,row];" o8 V" W$ K2 Y0 O2 R
                        end;                        3 R4 ^6 m* y/ ^% ]! T& f
                        newDirection(@);9 a  F$ K" a# [6 R5 u
                        @.HasOrder := true;3 a4 G6 L- X$ ~1 r3 L: A+ I% c
                end;1 c" u- I# Y: z6 v: o
        end;- {4 p' o& n! e! R
end;        -- of the method
+ r& W" e. g( e1 U4 u$ Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 b- p' E3 X1 Y  H% D9 \; L' C
9 M3 Y1 L5 Q! R  [2 W  F
这是AGV_putin中arrive的method。
* X/ A5 _& G. n! l7 J
$ U8 v+ _$ T* c6 I) t当到达物料速度越高时,这个报警更多,
; [: t$ I" v0 f; e" b! N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) s8 q5 C8 t. J7 l* ]4 W& r5 b! j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  e6 R7 T+ i8 `- ?$ w1 v0 Q6 r

6 x, A$ K& v. y4 J5 e) \  A  v7 o另外一个小建议,就是move,所有的move都可以这样
* H1 y# B( ^3 n' [if not move() then debug end5 i# ?" w4 s0 _" }0 u# d/ y7 e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) l( A6 v3 ^* W8 _5 p9 Q1 `% r
plant simulation中的free libraries有AGV模板,5 g3 O7 c. L5 N& E
里面也有案例。
& R6 @" l2 ?% |1 Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 }9 I$ R2 }* D

3 c. E" w4 ~' Y0 u& }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ |* N# W* t  @+ E" v+ T/ o" C& N4 V& a( ~( |
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 n* b: l1 ~+ X; F6 a% ?这是AGV_putin中arrive的method。
$ V. B2 m. m$ A7 ^- E4 V4 F6 A3 G7 V8 X  m
当到达物料速度越高时,这个报警更多,

( C/ A+ W* z5 d" s$ D  @另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-25 09:20 , Processed in 0.014004 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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