设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6263|回复: 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'" L3 @9 P/ H5 W( _* [
*/. ^/ O0 n$ J( a8 t
is
7 r8 }& f3 K8 |: R, V# B# d8 i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: K6 f: d/ ~1 T, b* e
do- X6 T# A" B" U& n
        Lan := rootfolder.Internal.Tools.AOLlanguage;6 g1 c7 r" G$ g! a9 p
        if current = @.Destination -- else return
) e: W6 G; F, M( C2 `8 _. R  y        then# N7 }& `' R% R
                @.Destination := void;  |+ J# X5 m" s& q! i
                if @.occupied then6 E  F, [0 s+ t  F" O. v  ?
                        part := @.cont;4 m/ f: d2 |/ s- }+ j
                        @.transpOrder := void;
3 O: d7 W6 t! @. U& T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- W/ B# z% j+ ~8 Q; Z4 o
                                @,root.eventcontroller.simTime);! z7 K6 l9 G( V% C" c
                        @.HasOrder := false;0 O( v, N$ p4 m/ u/ s
                        @.DrivingHome := true;4 ]3 v5 {9 p% u4 K- ~! D3 @# w9 s
                        rgManager.tryToStartTransOrder;
0 f" T5 @" W' A7 n                        if @.Destination = void, y' n' j3 [- i9 c
                        then -- no transport order for vehicle @
1 i3 L4 Z) U$ \; V# E                                @.Destination :=
. G7 q9 U9 g+ b& g                                rgManager.nearestFreeStation(@,track.~);
. m9 [2 M) [% q* A                                newDirection(@);   
$ t- I; i' w2 n! A1 Z, C# Y9 P0 B: |8 C6 ^                                if @.Destination /= void then
9 T! x, d2 {! P7 p+ S' s                                        @.Destination.NumReservation :=
5 m' N3 C! X( _& t9 v                                        @.Destination.NumReservation + 1;) c5 {7 L# L( B2 n8 [: E. Y
                                end;# N! x2 P8 b. B  Z' Q
                                @.CurrIcon := "drivingHome";
3 Z: o# @. b% p3 o: x+ u                                @.DrivingHome := true;, h5 K4 l; K- L
                        end;
. ]- ^+ k; G# D6 @, y$ z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* x! C2 H/ }# f- i: u( g
                        part := @.transpOrder;
5 T4 \/ [2 @/ C0 p, T% g9 O/ W                        part.move(@);-- load part
0 }+ `$ M7 S4 h4 C8 v7 D2 V# x2 y                        @.CurrIcon := "load";
0 [  L( M! @) k: P$ }4 j$ E                        GlobalDistObj := part.globDestination;
0 n, T9 f6 Y: R% g# [1 k                        assignLObj := rgmanager.rgAssignL;. d6 w- k/ c- ^! L, E3 [
                        row := assignLObj.getRowNo(GlobalDistObj);, g; G2 r% @) a$ s0 ]) h
                        if Row = -1 then -- since 70
& R' ?6 h/ o! a+ _- a: s2 m                                if lan=1 then( d9 r. S) p" M1 g/ _, v* i( i# x5 p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( E  Q- m4 \$ O) a. L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" v: q1 ]) b$ |2 m% P% S
                                else8 U( V5 }: J, L6 _' d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* D4 [; L% g3 M  H  C                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 l1 e2 k' o0 w$ i) r7 I                                end;
. x5 ]: i9 U# s& Z0 I* \0 d' v                        else
% W/ H: f! }7 U% c% j8 e                                @.Destination := assignLObj[1,row];
  N* x/ `0 @! U3 M8 i% K7 e, J$ H                        end;                       
$ u! S( X% D9 }) N4 @2 X                        newDirection(@);
, C& l  q0 c# w$ b6 B                        @.HasOrder := true;
7 E6 ?& z% O! o- m) M' {# W                end;4 {/ E0 l( K5 \1 ]4 g% e# B
        end;/ K/ d3 H" ?/ K. i5 a
end;        -- of the method
3 l- F' ]5 d$ G- ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 q7 B1 [* B! ?8 a. e' A& d

( E. O- R$ U2 L2 Z8 E这是AGV_putin中arrive的method。2 u4 t. ^! o. Q* w6 z% v( \2 h
# g' M% r! Q* ?. {
当到达物料速度越高时,这个报警更多,
/ E% d0 l) p( Y$ T  M8 X5 Y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 ]' k5 G6 T/ C7 V" o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! V: Q+ u& `/ A# P6 M( o
8 a+ O* Y; a" ]* |8 i" {另外一个小建议,就是move,所有的move都可以这样
0 J+ A* _. D; q  O7 xif not move() then debug end3 s' j9 F" d3 X' {& x7 q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 g% q2 |0 K( s0 E  N0 J" `1 Y
plant simulation中的free libraries有AGV模板,
- V2 b: |* v4 e  y1 {. J里面也有案例。5 F8 K6 W9 R1 v1 `1 [8 p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 @4 J* S- O4 T- _6 M* W& e6 J# m

/ S! A( S+ }6 q, y: |& V* }0 J! S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / O" h( Q' h  s- z1 |
8 _/ @6 D# O# v2 L, g
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 R$ V9 J7 q; }  J+ f4 Y' e
这是AGV_putin中arrive的method。. Z. v7 b% Z% G- h5 G4 P
8 k# @9 X( e- |/ S
当到达物料速度越高时,这个报警更多,

4 G8 M3 G/ U! t4 J0 `, B另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-27 19:47 , Processed in 0.016222 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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