设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6802|回复: 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'* v* N8 y' g3 f* E+ D* x
*/
. K  O+ c0 u& X" mis
0 m6 C( c) i, A        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 q" r- |0 V+ W
do5 a4 B* v& _8 C1 ]: T. j
        Lan := rootfolder.Internal.Tools.AOLlanguage;" p1 Q7 p/ b# Q0 q! R& v
        if current = @.Destination -- else return
' o7 a' T, v, O4 |2 I6 |0 \        then1 B: M) T0 N' ~5 }) Y" I
                @.Destination := void;
; G: I, e" P' R  S                if @.occupied then; x+ l" {" V, J4 v
                        part := @.cont;
( Y6 u  v: H% K7 L! {) W                        @.transpOrder := void;
( K# R) l+ J# f" ?: w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, }- y, F1 I& t) x6 c" b5 X) {" a6 d
                                @,root.eventcontroller.simTime);
' e! i2 T, t$ N# x' ~                        @.HasOrder := false;
8 M$ ^) o7 E" g6 m7 {                        @.DrivingHome := true;
3 g! E' D$ }/ `+ R* v, C2 d                        rgManager.tryToStartTransOrder;
2 g4 l3 ]3 b$ B, I                        if @.Destination = void" F# S2 X: q4 q0 r
                        then -- no transport order for vehicle @! A) Z. Y, T8 _
                                @.Destination :=
- L# }2 L% T7 \! a. n; s                                rgManager.nearestFreeStation(@,track.~);: x# x" \/ x% Q5 V4 n
                                newDirection(@);   ! i  E" _" b+ F6 P3 x9 R3 c; O
                                if @.Destination /= void then
; i' ]! a2 u! Y5 Q) d( X- K+ b                                        @.Destination.NumReservation :=
& }1 K2 o; {# D7 ^                                        @.Destination.NumReservation + 1;
3 A* e7 T/ g" q. i, o: g  j+ z7 m                                end;. V4 L1 Q0 j7 b4 p2 z! \8 _; s+ w7 i2 X
                                @.CurrIcon := "drivingHome";' ~/ ~% P3 ?8 W9 z! o1 f
                                @.DrivingHome := true;- \* Z8 n  j+ X  G
                        end;, l8 A$ k9 r# g  p/ k4 E7 r4 W, |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ {3 _- r) N8 L% t                        part := @.transpOrder;
( f+ U: U3 S/ L- ^# }2 D                        part.move(@);-- load part5 i6 ]' z- Q1 P+ m# w7 M
                        @.CurrIcon := "load";
8 n) w- p! V+ Z! m5 U5 p9 B& T                        GlobalDistObj := part.globDestination;
5 n. e5 P: j# G. L8 ^; j3 M                        assignLObj := rgmanager.rgAssignL;3 z0 H2 q$ e& {2 V- f
                        row := assignLObj.getRowNo(GlobalDistObj);
' g: g. v  G) U$ ~1 c7 b                        if Row = -1 then -- since 702 N. l  A0 x: ]2 H& {/ x
                                if lan=1 then
& l8 n' v3 r- p( q6 B/ J% x2 ^  i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 o, O6 W# E  a) R; ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: ^" {$ n7 m1 D& ^$ o/ f
                                else
/ U) g: {( F' G7 _6 C2 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," Q! J5 S6 f1 A( Y9 Q9 I: }' Z
                                                to_str("in docking station: \"",?.~.name,"\""));                                . v) }4 W( ^: s9 i
                                end;+ h) g* R/ {( Y0 G! t# e- n, k6 L
                        else
' J- G. @6 k4 B7 t                                @.Destination := assignLObj[1,row];& A( S; A0 T$ \: X. r4 R( q0 B
                        end;                        ( v3 c+ j, o6 _& I/ `
                        newDirection(@);
$ O; |' Q0 @% P4 h) Y0 J                        @.HasOrder := true;
5 V; Y1 Y8 Y6 H1 L& D" Z* R5 g                end;! x, Z& h' p$ w! i. |% o
        end;
# D( i7 A. N* V) j. }2 f" c; ^end;        -- of the method
$ m6 Q' u. w3 q: Q  |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; x1 g' u4 k0 a) T. C
$ }$ Y8 ^3 Z/ v- Z% ^  n0 A这是AGV_putin中arrive的method。4 _7 n: w2 }- f* h3 @
' O0 e- h" t* v, o/ e  e
当到达物料速度越高时,这个报警更多,
+ ~: I' c* C2 C可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; u' ^7 k% ]+ t  M: g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ @2 b, v5 `: I6 Y! P

" U) [- n6 i7 l2 z另外一个小建议,就是move,所有的move都可以这样) g7 z! ?7 H& |; Y2 g
if not move() then debug end
# v" s. p( w1 d% S+ g" N! T: {! E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 i6 b( E! ~2 q
plant simulation中的free libraries有AGV模板,6 Z) o( s, `( H  @
里面也有案例。( H2 W( [" `& j$ x
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ s5 Y' y# R1 W6 i0 I3 Q+ E
# R6 K8 P% E  j/ w: m$ b0 o1 s4 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% c, P. T  n8 ^, ?, J  q' f  F, z8 L; Y3 ?4 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & q, E- E0 E8 b6 g" I! m" j
这是AGV_putin中arrive的method。
4 E# D. p4 s! i9 ~4 j, m9 Q0 a2 X$ K& I+ e" H( }) l2 E
当到达物料速度越高时,这个报警更多,

- e/ j- o# {) k9 u# H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-27 13:08 , Processed in 0.020096 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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