设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10208|回复: 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'
/ Z" y, ^  d. C. |8 g6 ~4 I) P5 G*/
" ]' }0 \( n4 U9 |5 wis
6 w  o, u! S5 d0 ]/ t' a  I8 d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 ~7 O7 p: D) O9 y  R2 I' K# h
do
, Z' Y# [: d9 |' w7 R        Lan := rootfolder.Internal.Tools.AOLlanguage;' l& L3 D( K' U2 B
        if current = @.Destination -- else return1 N+ m  ~  X5 y. ^; i9 t; I
        then! R% E( ^+ r$ m0 x1 r: H) B
                @.Destination := void;
0 {% c/ D5 g2 \, O  Q- L                if @.occupied then
4 g9 j% Y* T% E- j* q6 |5 N                        part := @.cont;
! c6 `4 q& W  h, m2 |# y! a6 I                        @.transpOrder := void;8 }+ R4 r8 I9 H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ j* t' A- V  W                                @,root.eventcontroller.simTime);
; @3 e) {% Q" [- k                        @.HasOrder := false;9 a# z( j; g0 {1 q0 N* S
                        @.DrivingHome := true;$ g- l9 [9 x& U/ Y; X% L
                        rgManager.tryToStartTransOrder;
1 K- N9 l8 q5 e                        if @.Destination = void$ W0 H$ }4 v2 R9 X9 P: A% L
                        then -- no transport order for vehicle @
( A  A2 w/ O5 C* Y' r; @- K                                @.Destination :=" |" h$ ]" R3 u9 j
                                rgManager.nearestFreeStation(@,track.~);
3 k) w: P: ~, n0 A; }0 t                                newDirection(@);   
* ~* X8 G' I3 `. t4 j                                if @.Destination /= void then
4 y2 D0 `  E1 S) a                                        @.Destination.NumReservation :=
$ x! ?" P9 k1 _0 j2 g                                        @.Destination.NumReservation + 1;' ~7 E* }" F8 U% Q
                                end;5 T$ L9 u$ s7 f
                                @.CurrIcon := "drivingHome";
3 a1 P; a! o# J3 g- _                                @.DrivingHome := true;$ P- g# c  g1 C9 e. Q  K( i" Z& z' ]
                        end;% g  ]5 A4 l+ [  H# P; ?
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( X' {6 y- }* T4 a* e
                        part := @.transpOrder;
4 v7 Z$ ^4 Q; V                        part.move(@);-- load part
1 t" X4 m5 ]* S                        @.CurrIcon := "load";& b6 A9 w- r( c
                        GlobalDistObj := part.globDestination;
2 ]/ }9 Y9 f: W: @& T# o                        assignLObj := rgmanager.rgAssignL;
( A9 v3 B+ Z% ^5 ^                        row := assignLObj.getRowNo(GlobalDistObj);
/ W  M7 g  _. T) D# _- ?8 r, ]( M+ g                        if Row = -1 then -- since 70
6 o9 ?, l9 D# p) ~% F1 M                                if lan=1 then5 s9 j1 M+ N+ u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) m, n: ?* z4 w1 i4 J+ t" J+ q. y3 @* V
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 w% w9 [" t/ l, f
                                else
7 g8 T+ y9 t( t3 c3 z! z+ F) N; A. x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 X, H7 R- b1 d                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 W( ]3 f# V5 y* {                                end;+ [, F0 _, j4 h6 Y& l# z) U
                        else
5 a$ H: w$ E$ y) I. ~                                @.Destination := assignLObj[1,row];7 N+ a+ F$ |' P' n4 `
                        end;                        & ]: |$ t' U- m5 Q4 X: U
                        newDirection(@);
1 \+ i. i- x4 v                        @.HasOrder := true;
% e8 M, n0 F6 D$ `                end;8 v9 g8 E0 H# D0 m( P
        end;
; ?! ~1 C' V. ~8 h7 u  Zend;        -- of the method
. l! L( R* a% r& }) \; }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 c! k# Q, D5 \1 z- D! ?  A- n
0 H* I$ i& K: p这是AGV_putin中arrive的method。3 a, F+ C" ]) V, q4 k8 |) \& x2 N

% Q$ V4 }+ r8 g1 U当到达物料速度越高时,这个报警更多,. a* W* g- k( [% m  O) C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# n+ j0 g9 W* H: }
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ w! T" ?; j3 ?" i6 i! i4 z7 `, L

9 e9 ~5 ]2 J" f' @4 }% ?" ?4 a另外一个小建议,就是move,所有的move都可以这样5 R! o) O. D  m8 c8 e9 _/ j! T8 B
if not move() then debug end% N8 Z2 w! Y8 P: r/ y2 P/ i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 d; ~- b) k$ t. |, B
plant simulation中的free libraries有AGV模板,
( p+ u8 u* l1 Q1 V) X里面也有案例。
/ E+ |4 U/ |8 j9 A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" {! j$ c) q4 Y% q  |) O) Z; K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 `. a1 v# @# F" s9 a) |! S6 L* x; ?9 G* w: z5 F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " I" V4 E" d* Y8 |
这是AGV_putin中arrive的method。2 H2 ?, K2 `1 }9 q" X# ^+ j( Y5 F* d
0 Y& G$ B5 P% I$ ~8 o6 a# ]( i2 Y
当到达物料速度越高时,这个报警更多,
. V, |0 E, Z+ F; m
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-20 07:20 , Processed in 0.017304 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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