设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7372|回复: 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'
3 g: M( O; j: J, j: b& G* O*/
% c% z, n. p1 b" k& M7 c9 Y1 i- `is# z/ J! f4 S$ v; o6 a: v6 {9 n& f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( Z4 l) T! x! w, N. Cdo
1 O# L1 Q% p( V) z# I" u  b        Lan := rootfolder.Internal.Tools.AOLlanguage;
* M4 R, C, J- C        if current = @.Destination -- else return
( ]$ @9 J' {5 L" Z5 E        then
* m, n( @" }2 G                @.Destination := void;' V4 J) o9 r1 |1 N  n# W4 y/ u' {
                if @.occupied then
% [, C+ Z- Q, {3 f. W& X3 \% C                        part := @.cont;
5 k, V! J: g+ m, e3 @( o$ F                        @.transpOrder := void;" k3 [8 O: G6 a* ^) |- D' n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) h1 T" c' J8 H
                                @,root.eventcontroller.simTime);
2 j$ a  R/ Y8 z5 j$ o" s- i9 V                        @.HasOrder := false;
  k  T% ?5 ~1 D# ^5 Z  N                        @.DrivingHome := true;
2 K) w+ W1 k2 o0 ], p                        rgManager.tryToStartTransOrder;
0 p4 q% g1 k# m! M% f& l                        if @.Destination = void" \& W9 ]: p6 i, H
                        then -- no transport order for vehicle @( u( D+ [; m" [9 Q3 n
                                @.Destination :=" \0 E# H5 J1 X; x* n% j' h* |
                                rgManager.nearestFreeStation(@,track.~);4 v' a9 i+ y& x. Q& v, T; ^' W- K
                                newDirection(@);   $ v9 u* l+ m: e, o2 j7 o7 j
                                if @.Destination /= void then
/ `3 Q8 g- t; s                                        @.Destination.NumReservation :=
  t+ |. ]1 J: n3 q5 l7 T/ I2 v& W$ X                                        @.Destination.NumReservation + 1;# b( q+ ~) A% B2 a% H& q
                                end;
- }7 G; S) ~3 h  Z0 g& d7 z) f7 C                                @.CurrIcon := "drivingHome";
2 C$ d3 \( F+ g0 ]2 S                                @.DrivingHome := true;! F- A+ ~$ h* ?* }9 @5 P
                        end;
+ F8 n6 j' }- s/ }8 c! k1 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. l6 q( x4 g1 D3 h; q                        part := @.transpOrder;
. O4 r: K- Q0 n* g- J                        part.move(@);-- load part) v4 u$ ^3 h/ s& k# }0 Q; n4 o
                        @.CurrIcon := "load";
1 h( r. z, f" \                        GlobalDistObj := part.globDestination;2 i; Z) K( M$ s( T9 `! H$ V
                        assignLObj := rgmanager.rgAssignL;* C* T! P# C9 U6 A) L) ~$ m
                        row := assignLObj.getRowNo(GlobalDistObj);
/ E: m/ R* N# q9 j$ S9 s/ S                        if Row = -1 then -- since 70
+ K" C, x6 ~# M- e4 F6 j) B. A% `5 i                                if lan=1 then" ~6 y' y0 q8 y% }% g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. W# v. q* t  O$ I                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 i, f6 S0 n; {0 a8 G& K8 X                                else. y$ E! n8 h9 Z) `+ l( f0 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 q/ z) l+ g) |& p1 ?                                                to_str("in docking station: \"",?.~.name,"\""));                               
  I" K( g: ~4 O3 H1 D. t8 W                                end;
' b7 m, S/ z; a                        else
0 W# u- H5 o. b+ t0 E9 F3 C2 x+ |                                @.Destination := assignLObj[1,row];
) M/ x! r$ ~3 f2 H. m1 L                        end;                        . m9 u6 s- O  |* i5 A
                        newDirection(@);
" r3 b* E0 W9 ^2 j& g% y  Y, ~                        @.HasOrder := true;
1 |( d1 b7 H% v* h& d                end;1 K9 N* {4 D5 p: u! D
        end;$ V6 o" s0 y5 e- ^8 B' M- D
end;        -- of the method) R( n& z8 l, E% v; [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ p6 e  ^4 z6 p+ f1 N9 I0 w
# P; W! G1 M- b0 ]这是AGV_putin中arrive的method。
, I# F+ ~( E' u2 t- {. q6 J2 t
. S; c1 p( V* g" Q当到达物料速度越高时,这个报警更多,
9 c# M3 U& e& e2 @& T可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 _1 w3 h5 w# U' V/ I0 ^. f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% Y: G# n4 Y3 r1 M# k3 I1 [& R1 R' E$ a- y- E# l
另外一个小建议,就是move,所有的move都可以这样
5 Z# D: m/ X$ M9 _* iif not move() then debug end
* ?: U# `* W+ Z% e: n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 V- D1 k! U1 x6 z% O# j/ E6 p8 l
plant simulation中的free libraries有AGV模板," L8 J: E( [" z; X
里面也有案例。
: z, @( a% o( T* h- d: o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ r& i7 w" A6 W- |
/ ]7 ^  h7 v9 L' Q# l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   U! v5 X7 N* b  K. g9 Y

+ g4 g: j- ^9 o  e4 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 p* `4 l0 u/ z; p) Y, K" F这是AGV_putin中arrive的method。
+ m1 s& _8 W" N  y! f" V8 z+ n2 S0 p( }1 ?' y; t+ ~
当到达物料速度越高时,这个报警更多,

. o) K' \0 @7 \7 X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-7 20:52 , Processed in 0.016685 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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