设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8126|回复: 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'5 L: Y9 m  b- B6 U. F3 J' }
*/1 s! C' [$ M) k3 Y" U
is
0 C) d/ A2 p) F8 y% m7 P' P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 a; ]: b* p' ]. k) ]do
1 C  }: k- @3 O8 p8 D8 M1 S        Lan := rootfolder.Internal.Tools.AOLlanguage;# ]9 J3 M( {1 F+ A$ y% r* j; r
        if current = @.Destination -- else return* O" e0 ^& l9 e$ m2 h" D
        then
; i4 ]) `+ T8 Q+ E, D6 K- Z! [' c                @.Destination := void;* h3 @1 Q4 l5 C6 g. \
                if @.occupied then
$ l3 A6 |/ X! a/ O" M! ?2 V  v  [                        part := @.cont;3 h& r3 ~( l6 g% h9 M
                        @.transpOrder := void;
/ b  b4 e* y; e* e7 V                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ a" T3 Y9 P" t, k, j' Y& a                                @,root.eventcontroller.simTime);' d* Y( c% A: M  m) n, j! o0 z
                        @.HasOrder := false;* ~% U! X0 h1 Q1 [8 r4 j! ?/ E
                        @.DrivingHome := true;. H4 {; A* a  B2 `! ^! C
                        rgManager.tryToStartTransOrder;$ d) G/ \' t8 Q
                        if @.Destination = void# |+ Z9 M# ?/ H  g2 U
                        then -- no transport order for vehicle @
+ V. U0 E  Y6 H                                @.Destination :=
8 F9 e" j1 N7 t7 D                                rgManager.nearestFreeStation(@,track.~);
' f" e! s, `0 e# f) f  t4 c$ R                                newDirection(@);   8 I: _8 L; s* p7 G2 w4 S2 f
                                if @.Destination /= void then
/ g# Z2 `5 W5 D' r5 E, {1 l: I! w" d                                        @.Destination.NumReservation :=: @& o+ I# i- e2 I
                                        @.Destination.NumReservation + 1;
. g# b. T& Z3 \' g( S                                end;. K/ p, J7 `' c( M
                                @.CurrIcon := "drivingHome";
& a$ R$ R; A9 I8 `2 ~+ o; N* Y3 h                                @.DrivingHome := true;
  `& ]; P3 w  E/ z                        end;
2 j! J: D- u7 {# T* W* c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 |" ?0 [7 s% `1 N+ {
                        part := @.transpOrder;
. B: |! q" K7 k9 r3 [* p                        part.move(@);-- load part
: s/ ~1 T; k+ d3 D/ E+ l                        @.CurrIcon := "load";4 n$ j3 g9 e* E. G* g+ u- j: N
                        GlobalDistObj := part.globDestination;' h0 X$ m1 |% [7 L" k
                        assignLObj := rgmanager.rgAssignL;1 `) E- T  p$ o" G
                        row := assignLObj.getRowNo(GlobalDistObj);7 @7 M, @, M. J+ A0 \$ U5 k
                        if Row = -1 then -- since 70
0 {* ?+ B9 d% D2 P6 |                                if lan=1 then
( i# k, l8 c0 w3 P& k3 ]6 i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! M# q' H1 R4 w+ t/ u                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* N$ `; M2 u! C. d* C1 W, J                                else( d# O" }1 C9 f) I7 K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* W! x3 C! d- q4 }/ _                                                to_str("in docking station: \"",?.~.name,"\""));                                7 v* P9 i0 I: l2 U5 C
                                end;  l5 g, z) N" E! Z
                        else: A" S( p7 Z3 h$ w1 O. `" `
                                @.Destination := assignLObj[1,row];
- \3 r  Z! X; u, g4 \                        end;                        " N3 _/ C( c8 K8 R! a( @( Z+ v
                        newDirection(@);, D) B  z" d! `0 ?
                        @.HasOrder := true;6 N" M# `+ d, F) b) t% Y
                end;
3 p* t+ O! j8 f5 H        end;
, B) a; e2 Y, S9 ^end;        -- of the method3 D1 N6 V8 f- X3 w1 P& b# \! l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 M4 W5 X  J/ S% t3 C/ ~2 n
7 y- @1 ]$ ~: d3 w$ r, {
这是AGV_putin中arrive的method。
$ j/ @3 F, s+ Q2 _) B: `
* v: L0 P: A" Q" r5 S! D6 H1 `7 h. E当到达物料速度越高时,这个报警更多,$ O# x$ f5 n  y8 L4 ^* Q2 j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 P) p$ ^& {  E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ j' {9 p& v5 G1 ~! {( G7 e; C4 N+ }8 M* F: }, ^* U7 A. K9 k
另外一个小建议,就是move,所有的move都可以这样
2 X. `1 m  v2 E- X* s; V4 P9 a' e& }if not move() then debug end
/ S) V1 _' _  x! V9 j( N7 r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' ^6 a( }4 a3 v3 U4 B
plant simulation中的free libraries有AGV模板,4 A  p% x, e1 m4 K% p1 r; h
里面也有案例。
* s: P, ]- R' ?/ S/ o$ ]! j0 i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# F2 X7 i. G& Z, y5 A; J* l
* M' X& g5 W( \) f: z5 |8 \$ Y+ a  k* X- z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / [  d8 O% w0 P& l
' _( a3 c! t" t5 t6 H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . K4 y# [' L+ k% G) V# G+ t
这是AGV_putin中arrive的method。
! A' U9 {) P: o( U4 V1 P- [/ l
, U! q1 K9 M9 w' \6 W# N当到达物料速度越高时,这个报警更多,

, V; m$ K/ }/ n! r6 q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-16 03:44 , Processed in 0.025595 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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