设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8272|回复: 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'
  y1 H3 Y% |5 T; Q3 b! i*/
0 u9 ^5 C4 z/ K" J6 Mis( w# F  D9 [  S' |! U% T" X4 ]. t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 X, M) W$ z' L" e$ M
do
) R. Q: f$ ]' b6 m$ W& X        Lan := rootfolder.Internal.Tools.AOLlanguage;) e& g' x. n% _
        if current = @.Destination -- else return
0 c& U" k7 V, Y7 ]        then
% A7 Y0 m# g3 b% G9 p; |                @.Destination := void;
3 Q: s! T6 q/ S6 l                if @.occupied then+ D( r! |0 R, _  C. d/ @+ O/ v
                        part := @.cont;
/ W- c' h2 F# X% G. c3 x+ P                        @.transpOrder := void;) R& k; H6 b5 b7 A) L5 ], i' F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) U4 t; Z" H/ |+ }3 m' O3 h                                @,root.eventcontroller.simTime);% _3 Q  r5 f: l8 M% b
                        @.HasOrder := false;
" T- `4 W* m, k5 ]                        @.DrivingHome := true;, w8 N  l4 g/ y2 }
                        rgManager.tryToStartTransOrder;' I/ e7 ?% }0 H, m
                        if @.Destination = void5 K6 Y) F  C* |$ t; }+ v/ I+ i2 @6 k
                        then -- no transport order for vehicle @4 D  N* A! R* t- U
                                @.Destination :=" A7 [" Q/ P$ R! y6 T
                                rgManager.nearestFreeStation(@,track.~);
* i' Q5 n+ G% |& j/ e  I! l" f; x                                newDirection(@);   
; u- C% r$ _4 c: Y" g                                if @.Destination /= void then
4 S; Y% i! f. w  G# M                                        @.Destination.NumReservation :=, v# r* L1 d9 |6 m9 f9 ]* u
                                        @.Destination.NumReservation + 1;# q: U, V6 _$ `) s
                                end;2 X) b" T0 R  P1 x
                                @.CurrIcon := "drivingHome";, I: v1 B- v1 Z1 w
                                @.DrivingHome := true;
( @6 m. ~# S% ]9 V4 I4 y, w                        end;' f8 ]1 b5 U% W  y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- h3 ?' \1 w7 ]9 |9 q                        part := @.transpOrder;
) d6 D" I& |4 K' w                        part.move(@);-- load part# B& @* ~- P- Z: ?0 C, ^
                        @.CurrIcon := "load";
6 {+ i0 {! g4 h9 a/ _' G) i$ ?                        GlobalDistObj := part.globDestination;
* t$ _* C# F* ^5 m, ^* c                        assignLObj := rgmanager.rgAssignL;  ]4 w( x6 t& T
                        row := assignLObj.getRowNo(GlobalDistObj);0 M! H# W( c) X4 I' i7 ^
                        if Row = -1 then -- since 707 b7 u' ^  n" X; S) m
                                if lan=1 then
) b" B/ I( K* v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 K% M* Y. l8 B  M. y, E" a: C                                                to_str("in der Andockstation: \"",?.~.name,"\""));! x+ M# S0 m8 \7 W3 g
                                else6 N, N5 Y7 ?4 _* o" P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 g/ Z5 l" z+ q6 e- [6 X( ]7 M                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ }/ [, U+ t) M7 s$ w) A                                end;
- Z# _; W; x; E% s* w) o                        else; H0 u3 ?2 p5 z4 L9 r
                                @.Destination := assignLObj[1,row];" g: `! i7 @) ]# m  Q
                        end;                        1 q& i% j2 y9 C, w- P
                        newDirection(@);* S7 i8 v6 W/ J. h
                        @.HasOrder := true;- J7 D1 B! x# Q# {
                end;
6 G2 [" r) h) w0 X        end;
0 R2 s- {7 Q. R* b+ p6 A2 Cend;        -- of the method- N9 z2 I* d& P/ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 ~. s  E4 D8 @( M1 S

$ o% A- I) J! J7 @3 |' }" J( @这是AGV_putin中arrive的method。
4 i2 c; K* ]! L) j$ l' d* m6 Q+ P2 j9 H+ d8 v- r
当到达物料速度越高时,这个报警更多,0 d4 g0 Y3 h/ F" x3 o
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ o# G7 v" m3 x5 G. ?4 {程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 Y5 Y1 Q0 F4 @1 g  y- o* j  Q- J1 C9 F4 q* t) ^( k0 U2 j, Z
另外一个小建议,就是move,所有的move都可以这样. N- c( v( Y: N" V8 D
if not move() then debug end
6 @# K9 E/ A3 ]! s1 y% \7 W/ A. P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, O5 G6 V) z9 ?6 `% M' }plant simulation中的free libraries有AGV模板,
7 Z, u* {4 A* K4 n: S里面也有案例。
7 I$ x& W6 m: Q9 U( I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ s) }7 L* q) }1 p2 A  y- z2 c& O) G$ @* c* h) W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 P# ]  P$ t% S) I3 s0 q" F1 s' Y
; V- i3 q, W: y+ b5 N; L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 K) P  I6 O. Q- f5 o
这是AGV_putin中arrive的method。0 q1 N: {. ~, D& c8 J8 E% R

; M+ s& R  y: T当到达物料速度越高时,这个报警更多,
; C* X0 e/ B( p8 L8 q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 10:26 , Processed in 0.016258 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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