设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7030|回复: 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'
, M7 S* Q6 ^! d*/
+ _0 o2 i7 n) o. G, r9 D3 }is* E+ A: t( L$ ?/ s1 |- _& {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  e; x* h* P, v, Y6 n8 f
do
8 \( W' g+ H8 z9 W        Lan := rootfolder.Internal.Tools.AOLlanguage;2 S' U3 u6 o$ S0 [
        if current = @.Destination -- else return( I. c- l) N8 h& R: x4 M
        then
6 l0 {) Q1 J0 a, B  R  `                @.Destination := void;/ D/ M1 ^' ]5 X3 F
                if @.occupied then7 y) f& u% A5 a
                        part := @.cont;, A0 w! t4 y" M: [& L
                        @.transpOrder := void;5 f& r0 Z7 r  M2 x: U6 o* H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 S0 d- X' d! Z" _  f6 j3 A                                @,root.eventcontroller.simTime);
* s6 M) q& a, p: f4 D. S                        @.HasOrder := false;2 J8 p/ T( {8 u: ?( e  ?+ R
                        @.DrivingHome := true;' F# k' T  g! |2 H# \* A. K: z" L
                        rgManager.tryToStartTransOrder;
0 e: I7 m" z4 P2 R: `6 d+ n                        if @.Destination = void
! N" k# R5 T; M7 X) r$ [                        then -- no transport order for vehicle @0 X' ~; h# F; P$ `1 p1 B& Z
                                @.Destination :=
$ j/ p5 z2 L1 E4 F, Q' G& }+ Q( R                                rgManager.nearestFreeStation(@,track.~);9 O7 L1 a* L, P) v; M0 Z7 u+ J5 R
                                newDirection(@);   
; Z2 a7 I4 ?' g4 n                                if @.Destination /= void then2 E# A6 @# Q7 ^- ?+ N' W
                                        @.Destination.NumReservation :=) _, ?+ U0 d, V6 W
                                        @.Destination.NumReservation + 1;1 R) {! v  @4 r% g# C7 a
                                end;, _! n6 c) W. ?4 G4 i
                                @.CurrIcon := "drivingHome";1 Y$ S  M$ S# T5 d
                                @.DrivingHome := true;6 k0 c  r6 b/ [0 O2 F5 @
                        end;1 f( u' e: o3 k0 k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 u4 _/ A% e% B' N4 Q( [0 I
                        part := @.transpOrder;
$ y8 G3 z1 m5 c  _, q% [5 ?                        part.move(@);-- load part
1 S! v$ L% n1 z$ w                        @.CurrIcon := "load";9 ]7 o' ?/ Q/ |2 \
                        GlobalDistObj := part.globDestination;1 ~, A" |" S1 J' V. [4 ?
                        assignLObj := rgmanager.rgAssignL;3 D6 R5 B" x* o  F2 C$ |
                        row := assignLObj.getRowNo(GlobalDistObj);2 O1 R- i0 T- q" j# |- L
                        if Row = -1 then -- since 707 z0 x9 P1 a/ I
                                if lan=1 then. ]% t  O5 t4 Y- [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 v2 z, T/ c' i2 ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 q& Q6 s8 E8 o0 K/ X
                                else; f, K, Z2 p) Z3 A/ H2 y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! F9 C- f9 b. R! e, g/ B4 q                                                to_str("in docking station: \"",?.~.name,"\""));                                4 X5 y! i$ q1 q% S/ }2 ?2 y4 @
                                end;
$ ~1 ^. m) i0 G3 I; G6 }                        else
9 y% X$ U& a$ |3 F% p                                @.Destination := assignLObj[1,row];
6 S* Q) w3 [9 ^& \9 ^& R                        end;                        9 v1 l2 Z7 n) Z
                        newDirection(@);+ C/ r, D( ^# P( T& R& U
                        @.HasOrder := true;5 z  i8 R4 p5 D! ~* ]+ c+ g4 ^- M6 p/ x
                end;
6 h' Y; P: M7 Q; D9 d$ X' X3 H        end;
! Y2 Z, [$ v$ X8 o/ m# |) H8 oend;        -- of the method
! z+ k1 E7 j" x4 s9 a, @6 K. P; v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) n4 i( d* S/ ~
3 i: c5 o" l0 ~0 v2 V
这是AGV_putin中arrive的method。. G* [3 ?: j/ @+ ~8 J) S

& G) I+ ~8 H( M! |' i7 a' \当到达物料速度越高时,这个报警更多,
. p/ u: s2 _& f- W. w8 t6 f/ I1 g7 C- U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% ?4 x& s* `7 Y( n( g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# V1 c$ h: x1 T# M
7 Y. |  ]) m9 F# |% O
另外一个小建议,就是move,所有的move都可以这样
7 e9 z* M) B" U9 C" T4 Iif not move() then debug end! Z8 Q  r7 t! T8 _" I0 C( E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 r6 S6 J' L- S' [plant simulation中的free libraries有AGV模板,
7 S, z) a3 O/ b' t% ?  t% ^里面也有案例。
5 n3 D  A" U. C% [5 `" |2 u7 @  h5 `& C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# T0 O6 c! z: u" L
! _. |1 q, S0 i% G* w/ [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - T9 K$ r7 S9 e
" v0 P# ?7 s4 _- m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 P1 X- v: O9 B; t" S
这是AGV_putin中arrive的method。
! a4 N5 C: O& w- _/ E7 j5 T, w+ h/ Z1 X8 j
当到达物料速度越高时,这个报警更多,

7 B$ U! W6 Q$ H! H; ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-12 03:27 , Processed in 0.020446 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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