设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5557|回复: 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'' Z3 n( v! _$ N& T% U7 }5 Q
*/& T, m8 S3 E  K; D8 T
is
5 `2 s9 l- X8 j/ x# D% {4 ]+ G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Z; z: z  P8 b( L$ p# X1 F4 q2 `do: K( w+ p6 ~) I; h& a8 Q: w% D1 q
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 b; `  K8 h/ i) B2 q- z        if current = @.Destination -- else return
5 D4 R; y; u' y9 `2 I        then
. k. d/ ^9 s/ q# r& f0 Y# @                @.Destination := void;) _8 U- f" h" c' H
                if @.occupied then. h( D; k: L) q7 F& Y5 K  l( |
                        part := @.cont;
# O6 ~4 E; k# e) H                        @.transpOrder := void;
; C; G! Q( z' [# v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& s( V$ Y/ n8 Z6 ]8 I1 ^+ ~                                @,root.eventcontroller.simTime);, d; ]* Q) q/ B. l! {; A* T
                        @.HasOrder := false;7 x- Y: u9 h6 A0 j8 n( }* d4 z4 R; c
                        @.DrivingHome := true;
: L* y  f% v! L# c; K3 l                        rgManager.tryToStartTransOrder;  S. w# S6 ]% T" H
                        if @.Destination = void: A, e! @% ]  N9 f
                        then -- no transport order for vehicle @
. [6 v1 ]1 P  w                                @.Destination :=
, d/ V, Q7 n9 E$ b                                rgManager.nearestFreeStation(@,track.~);) H# i) X: W. u: n# ^6 N4 R; Q$ u' F
                                newDirection(@);   
% J. |4 @! q1 }! n                                if @.Destination /= void then, q& R2 T) R1 O: Y) Q* ]+ [9 @
                                        @.Destination.NumReservation :=
- {1 H+ Y; x9 y/ L2 g1 k( n                                        @.Destination.NumReservation + 1;
, q# |: l5 j! x7 X                                end;7 l2 J9 k$ d) E. N  Z1 S: v* l; E
                                @.CurrIcon := "drivingHome";
, v, l& @8 ^+ G7 @' m3 @: C                                @.DrivingHome := true;9 @2 i) U, b- K( }! u6 `2 r
                        end;
: N/ `1 V0 _/ k1 C0 K! N& ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 F& E7 C9 l3 [. H' {7 z% O& a
                        part := @.transpOrder;1 |; C& w$ a/ [. H8 l
                        part.move(@);-- load part3 }( o2 G1 I4 L/ ^
                        @.CurrIcon := "load";
# m" g" W  Y: j# k' N                        GlobalDistObj := part.globDestination;
3 ?. n; M' R9 p                        assignLObj := rgmanager.rgAssignL;
6 B! l: q+ J) P2 `                        row := assignLObj.getRowNo(GlobalDistObj);. K! |0 ~, n9 b0 |4 R
                        if Row = -1 then -- since 70
2 E2 o: {/ _2 {9 Q7 V                                if lan=1 then
+ ?3 J! T% [. C" J0 W7 V$ g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- Z7 b; N+ Y0 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 ]# t3 k1 R- K
                                else
0 @2 Z- p2 @/ y+ }" Z; w* @2 W/ t                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. W9 D! M$ a4 p. I: }1 ^
                                                to_str("in docking station: \"",?.~.name,"\""));                               
  |, x- R$ M4 L; V+ a9 u                                end;
5 j9 t$ A9 F3 h( K3 ?                        else
/ W: p( J  O( O                                @.Destination := assignLObj[1,row];- K, f) {% ^% v
                        end;                        - `2 a; g' D5 @: M2 i+ e- F
                        newDirection(@);1 B) x3 F0 q: x. g9 F# L  U+ [1 r
                        @.HasOrder := true;
# M! d. M2 [0 ~4 S                end;
/ X: z% g% Y( g; x: |        end;
7 u0 {1 _7 @# g( Iend;        -- of the method  x) _& a1 l% i, b/ o% f6 M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , i! B  u- `1 d0 ]5 S
: D) `3 T) x4 u) k- B& @. n
这是AGV_putin中arrive的method。! k8 g0 I8 K, e4 h* K$ w

! U& B, ~& j3 R当到达物料速度越高时,这个报警更多,
+ i- h( q. G4 t" t7 _- p' q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 T7 y. O, E4 D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 _3 {# t  L  M: M2 A, \
2 I: W/ R; @5 M# {/ B另外一个小建议,就是move,所有的move都可以这样7 B, \0 a1 o' N% ?/ J7 i) t: R# N
if not move() then debug end. K, ?& Z- u: @3 V% h1 z' T" q$ r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 p( O6 }7 y8 }  L
plant simulation中的free libraries有AGV模板,& u2 @" I+ s. J8 X2 Y" X
里面也有案例。) _' o" s1 U: i. k3 T' ]6 s' ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 }, G3 ~9 I& L- i" g
" O$ [- }7 u; V. ~$ |* H3 v0 W  U1 F& C8 h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 ]4 o* h+ X, v2 |( ]8 P' o
* n) E; Q6 p" t! C# R8 K7 q# W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) V% y7 _/ `" y% i1 M+ i3 R' ?6 f; d这是AGV_putin中arrive的method。: a) g: D  t4 @6 J+ ?

, B+ X3 n; P2 j7 d4 |$ `2 `/ Q当到达物料速度越高时,这个报警更多,

2 I6 j% A: b- x# g/ l+ Z( {另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-5 17:41 , Processed in 0.019146 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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