设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10190|回复: 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'
$ B% w" M2 G4 T*/7 n. A- A5 n3 o, G" |, x0 H
is
  j& Y! A- J8 J1 G! ?1 C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ n5 `/ G2 ]1 E- o- D
do
; C7 s9 \# n( h# Q3 ]( u- G        Lan := rootfolder.Internal.Tools.AOLlanguage;8 ?) T, y, m( R# G" ]4 H
        if current = @.Destination -- else return
% Y  `' h! S" V; d8 J; K1 h- O4 O        then/ t; [  N. m+ x4 O: C7 E
                @.Destination := void;
8 }0 @% S- u) V/ h. ~                if @.occupied then' a$ L4 k6 d% S0 x9 ]* O
                        part := @.cont;
% t2 K0 O8 B# b( t7 g                        @.transpOrder := void;
+ Z2 K$ x  q/ _5 }, _* B& Y( d! X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 S8 i5 R/ Q! F( n1 O: X
                                @,root.eventcontroller.simTime);, F4 l- H  k% `' J* t. G
                        @.HasOrder := false;
- ~5 r% L+ p6 ?) u1 s8 U                        @.DrivingHome := true;8 t0 U9 K6 U5 v! h2 z5 t
                        rgManager.tryToStartTransOrder;
1 B! B$ M( _/ p! c! m                        if @.Destination = void$ C* h3 w5 ]$ u& \$ k3 Z+ ^$ F. o+ |
                        then -- no transport order for vehicle @" W; _' r' C" p
                                @.Destination :=8 A1 q0 \" ~- ~' }4 u) h; b
                                rgManager.nearestFreeStation(@,track.~);
# d0 ]+ L! V, A, h                                newDirection(@);   2 i' d) J  y+ s+ w! l* G
                                if @.Destination /= void then: Y  A+ c& T1 X3 M5 j2 M7 F5 p
                                        @.Destination.NumReservation :=
( }  d4 N) h/ n; B4 U2 R                                        @.Destination.NumReservation + 1;# q) D- n# A1 H: I4 b% p
                                end;- c* ?1 I9 d1 k8 v% U* {; F. N: @+ L
                                @.CurrIcon := "drivingHome";
1 o2 [! D3 h/ r                                @.DrivingHome := true;9 W3 a  b9 O" y& `
                        end;
" n$ C3 g' }3 B1 k0 D8 @' O/ l                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 u$ d( {& J7 r- v6 p; Q
                        part := @.transpOrder;
" v# |+ z: K9 }) `! l$ D                        part.move(@);-- load part
: }/ y2 F) B7 G( ^% s4 Q3 S1 A                        @.CurrIcon := "load";
) h: Q1 f  E, r$ R7 q                        GlobalDistObj := part.globDestination;! |; b/ b1 l3 ?! H
                        assignLObj := rgmanager.rgAssignL;
+ ]* l5 t7 N2 R6 \* n5 d3 v                        row := assignLObj.getRowNo(GlobalDistObj);5 p( k1 \/ J3 G& S0 Y5 q' V7 A
                        if Row = -1 then -- since 70
3 Z# h* F: G7 f! ]% r0 b9 }                                if lan=1 then8 X1 l# q3 p+ e  G" a, m+ d5 \% X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 N4 N% H6 C8 ?# _. `' m                                                to_str("in der Andockstation: \"",?.~.name,"\""));! D  V- V& G* u7 G7 O5 ?
                                else% v9 O' g# ~0 w; H7 @1 X# P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ x1 l9 g  ~# w                                                to_str("in docking station: \"",?.~.name,"\""));                               
) C) ?+ s: [( _- _5 Z                                end;2 H0 [2 y% P4 o, M
                        else3 N; l9 l" o  J+ \! L' w. ^) Y
                                @.Destination := assignLObj[1,row];
5 h$ e1 ]& y! B                        end;                       
! T2 N: h+ S# H. L1 _. r* a3 j                        newDirection(@);
! J7 {5 E. [* S3 o                        @.HasOrder := true;; v8 i3 |; ^4 g% n2 b# `
                end;
$ S% i8 \& P( c8 H        end;
5 `8 r. j5 C) k2 B5 D) aend;        -- of the method/ g( ?% Q4 |0 d, X  R0 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " F! J8 _0 z' L8 Z6 |) F! A

) R9 H" x: [( K# e8 U, s, M5 a这是AGV_putin中arrive的method。' j- J; J; D# ~7 ]$ G. X
/ S! f/ `% b) C: e2 I
当到达物料速度越高时,这个报警更多,
7 A$ D5 ^4 ^* s1 t% {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 E. N6 a. d  y- a! E/ a" W1 |% d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' z8 f% W; j3 O( u! `; J) d9 O
2 l4 J4 w3 u! N  r$ h
另外一个小建议,就是move,所有的move都可以这样1 b0 |; Y) k7 M
if not move() then debug end% c  ~. B' P% I8 \) Z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- d" D  T. Q7 _4 [1 Eplant simulation中的free libraries有AGV模板,
* ^/ p: d: O1 |& ?0 Q里面也有案例。
; P9 v3 _& Y2 x9 _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 E7 M) P4 q2 N' _/ I1 J- x2 F# i

' ^6 s$ o4 p9 Z+ @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 l; V) S9 i- }& H4 I4 D) b/ i) x' O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * u- \9 [0 \4 ^2 s' @
这是AGV_putin中arrive的method。' p/ w( |) [' U; o' o, r! h. N; b
9 T0 g2 d5 Q  Y+ p- L* _
当到达物料速度越高时,这个报警更多,
9 x$ s  ~2 h- K* _) ]2 ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-19 07:44 , Processed in 0.019688 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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