设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8415|回复: 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 T" i  }0 T& A3 a- T: n; h
*/+ m6 N: L, k7 p/ q& d
is$ w- ?; g4 d( T, [6 j
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; ^6 A& d7 Q8 o4 p- a: z
do8 G" b  F7 X, E' Z- |+ f
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ {* `9 E  j( U% \$ y. k
        if current = @.Destination -- else return
8 Y: H: @% m3 H8 X  Y        then
( K* t( D: ?% R% f                @.Destination := void;& y$ D2 g& u' @' ?8 b% r- {  |
                if @.occupied then' x* F+ _9 W1 U# F0 \. Z9 A* ?
                        part := @.cont;$ }% ^4 N8 X) X6 T
                        @.transpOrder := void;
7 r2 M" l; R. |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! Z; c5 C) c9 c: c6 A                                @,root.eventcontroller.simTime);/ Z: T+ j4 m$ t7 N% I
                        @.HasOrder := false;/ {' {: R4 m  e7 r1 k
                        @.DrivingHome := true;: M/ X: K* ^* y/ z8 n: N8 D
                        rgManager.tryToStartTransOrder;* {/ h% K: [: \# V
                        if @.Destination = void
& F, o% f. o) d" Q                        then -- no transport order for vehicle @
9 u! B0 O* H5 d5 y  H; ^                                @.Destination :=
# P( X* F! x( v, _) n9 M                                rgManager.nearestFreeStation(@,track.~);6 I) H) l8 s- x& ^% F
                                newDirection(@);   
4 d( J) S2 p4 M9 ~                                if @.Destination /= void then
! }2 W: M1 ~1 H1 J                                        @.Destination.NumReservation :=8 j* L2 t) \$ r. e
                                        @.Destination.NumReservation + 1;
' a3 r& T9 H5 d4 T4 Q. Z                                end;
+ b+ K% D1 Y6 h1 o                                @.CurrIcon := "drivingHome";
( C: r# q: z1 U" G& R8 G                                @.DrivingHome := true;* g8 Y! x$ w( `) X
                        end;
6 o/ B6 [' P% H% h                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 }5 n8 o  v- \! p8 \
                        part := @.transpOrder;
( D8 M$ ^4 Z! a/ l9 Z8 ?' x                        part.move(@);-- load part, H. R! _' {2 l+ d# v( N8 R
                        @.CurrIcon := "load";4 R+ ?5 X0 D# a; o( N5 u
                        GlobalDistObj := part.globDestination;1 O6 t( q2 P5 y* G
                        assignLObj := rgmanager.rgAssignL;% B! T# x- S% o
                        row := assignLObj.getRowNo(GlobalDistObj);
9 u% ]7 x0 q4 r& T                        if Row = -1 then -- since 70* t8 ]5 V9 k) `6 ^
                                if lan=1 then! I; d- z8 m2 q* w8 l
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 s1 r9 s- U5 V" _. x+ I# z' k
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 |  \. D- P# y, I
                                else2 n: v, z. z0 C) i% J; Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: I3 E+ g) a: r0 H
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! [' X4 x0 R* t: b& ?9 \: L
                                end;
, A% A% n6 x$ b7 N0 y( P                        else
; Z$ W. X8 A2 R6 N2 Z( ]# Q- J& S+ u2 G                                @.Destination := assignLObj[1,row];/ @0 B+ j. F9 L. Z
                        end;                        / X8 V  _$ C7 X7 n8 ^
                        newDirection(@);
! U) y3 C8 z8 [/ n: y' U* c5 ?                        @.HasOrder := true;4 n9 A  X3 d: m, I6 b( c1 h
                end;" M! q% H1 f* u; T! j
        end;
, C! E5 J+ Q8 p0 r& S2 D5 Kend;        -- of the method1 ~* _* i3 y' `& Y+ |' y0 \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & O) d" s! M. g" V- H

" ]& H3 Q+ ?) d: N5 L( }7 |0 }7 m这是AGV_putin中arrive的method。
7 Z% F7 _) l  f% t4 k" E/ {& H. D5 o/ D0 u# G# i5 ^/ j# ]
当到达物料速度越高时,这个报警更多,: o, l( l0 V: F6 F9 P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  J' o. ?5 |: L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, m" G# D9 ~" h

5 i7 s) @' P9 W3 k, d另外一个小建议,就是move,所有的move都可以这样
- F3 W, ~5 J; V- M# V5 Oif not move() then debug end
' G0 J" X2 y# G, J6 T这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 R- E! k. S4 ]4 ^. D
plant simulation中的free libraries有AGV模板,
, c- l1 P" a9 q- G$ O  o5 L2 T里面也有案例。5 H9 x2 {, q7 H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 a0 i, O& t3 Q- L3 h5 b# ~$ D& t
2 G7 l- ^6 S. W. C* Z. x0 `% |# n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 M6 e& o1 O" v
: G( w# A, [- B2 r) o那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 a: |- C; F( J% _, A
这是AGV_putin中arrive的method。
% V/ Y. W. N. Q& m! M, x6 c/ Z7 C  d1 j. t/ b8 c7 A+ L9 t# K
当到达物料速度越高时,这个报警更多,
# c  Z' ]; H9 P9 A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-2 12:15 , Processed in 0.017630 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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