设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6994|回复: 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'
7 k! D* ^7 V; m* |*/& I' ]- B5 O6 ?
is
; z+ L/ [$ j! _# ~$ G; j# G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% N' o! ?* V1 Z5 D( V2 `9 i: R: A
do
6 \. V3 x2 L1 D3 a        Lan := rootfolder.Internal.Tools.AOLlanguage;+ n# n  y# N$ }# s: I! \, H3 R6 _
        if current = @.Destination -- else return( Q' l" _4 l( K1 X) ]
        then$ m- A+ @% Q1 S4 m/ N+ s& g6 V, Z
                @.Destination := void;% a- f2 j* \8 t' ~8 t
                if @.occupied then
2 q" N' \2 o# G, B& s  P$ v4 y4 W                        part := @.cont;
) l% W: z9 H  i0 X                        @.transpOrder := void;
) n1 |6 \# `4 k9 f5 b7 f# @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 a; s2 K5 h, Y% y                                @,root.eventcontroller.simTime);) j; _. X/ ?8 E- E' j9 u' n
                        @.HasOrder := false;5 k2 ?  [" {0 ^* V( W- t
                        @.DrivingHome := true;! F' ?: u. L8 i9 c
                        rgManager.tryToStartTransOrder;
6 a; i+ V3 k% e/ _2 O                        if @.Destination = void
3 z( a1 r1 g/ g0 m8 y                        then -- no transport order for vehicle @- j- ?$ R6 x, H3 C4 r& h
                                @.Destination :=$ ~- ]: w5 E% P3 |; p( I
                                rgManager.nearestFreeStation(@,track.~);7 B, [& u0 `- K" A
                                newDirection(@);   ' ]3 R7 H3 N: y+ D  L
                                if @.Destination /= void then
( i7 B7 g6 p1 g# e                                        @.Destination.NumReservation :=
" `+ c3 C7 O2 u/ o) R                                        @.Destination.NumReservation + 1;; `8 F* v% k- ]1 D
                                end;( f. ]6 I# j+ k9 C( \! P
                                @.CurrIcon := "drivingHome";: U5 y! n& P; O* I* {
                                @.DrivingHome := true;
' J. R- z& j& N1 W/ l                        end;
* d- m; |! l3 |9 F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) p, M& e9 |% H1 V  a! D
                        part := @.transpOrder;
- t$ Z( `5 w' m! m                        part.move(@);-- load part, M0 @8 _- D6 {+ p+ \$ j  R9 `
                        @.CurrIcon := "load";! ]- |/ [' |5 s
                        GlobalDistObj := part.globDestination;* F+ M- F7 Q; R! F- [( E7 M
                        assignLObj := rgmanager.rgAssignL;% B8 k' I) N. y6 F! c
                        row := assignLObj.getRowNo(GlobalDistObj);: ~& S! \9 e( A+ {% p/ j: Z- O
                        if Row = -1 then -- since 70
1 z6 i0 V- A2 a2 G& s; i* U8 d5 }                                if lan=1 then
6 h9 X' C$ z6 ], z# T" {& T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  F$ S5 {/ N. [9 b% x+ I/ ?' l* }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 Y1 q6 c  F/ T* @; A7 _- _                                else
" {: V6 q5 L. V' o8 z6 v- [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ ?- t4 s7 {# O, ^/ M; [; j& p* `
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 n7 u5 e. }6 Q( f' @
                                end;
1 A, j& ?8 v0 L                        else
! G6 e$ \1 Z  T' q                                @.Destination := assignLObj[1,row];
, p8 \$ |, P' q% v: F                        end;                        & G5 ]( w) @2 {7 y3 o8 Z3 G+ G% F
                        newDirection(@);7 ]# A2 n; {1 p2 d: v& z1 f
                        @.HasOrder := true;
" J* M# k* O" [# o                end;
* m( P2 J$ b( v7 n        end;
/ ~* \  [+ p! I0 t) U: Uend;        -- of the method( u* a1 T" R0 B: ?# s9 n9 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, [! H: A& W' T6 a
1 K' f# R4 t5 G; Y- k2 o这是AGV_putin中arrive的method。- @7 ?% c- M# `4 c; n* k

1 |( w* W( g% `& _. |- R) Z1 J当到达物料速度越高时,这个报警更多,/ E7 b0 K+ `( M- t( a3 m7 ?
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# {# c$ e! \& \% [& G+ f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ ^) N/ {; k/ w* ?9 V0 V! m: o, e* f: @) p7 w- f
另外一个小建议,就是move,所有的move都可以这样
2 g( H% a$ @" r/ [* i7 uif not move() then debug end2 ~8 m7 Y3 m0 e* ?5 |7 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 n$ P2 ~& }; C( R: U- m# D
plant simulation中的free libraries有AGV模板,
3 x# {/ P7 s7 k' P0 f0 v" c$ c: t4 d里面也有案例。9 H, ^4 E6 r. E( u- o! P
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; o1 f" P4 g7 F0 i% u$ E
$ u" Y" Q" {$ m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, m- K( |/ m. p* s: A$ j7 V' ~% x5 _- T& {/ z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 {9 a+ D1 i# [( t+ n, ]这是AGV_putin中arrive的method。2 ?5 c/ V5 M  k
. w- P9 _; |& `
当到达物料速度越高时,这个报警更多,

4 M2 c9 ?' Y# a6 o% P2 y& H8 Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-10 05:02 , Processed in 0.018669 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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