设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8008|回复: 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'8 b( B; h! K* ]6 _9 @! q- Y+ C
*/
: S9 t; q. d' v& X# C$ Ais9 u4 k+ }3 _$ I3 I( I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- t3 Q1 d7 e# ^) ^
do
- v: B4 l( y: q* i8 D$ o        Lan := rootfolder.Internal.Tools.AOLlanguage;  A5 o  I0 X9 J, \- N2 F0 [
        if current = @.Destination -- else return/ d& V# k! [4 B1 b# W
        then3 `! P2 h7 c4 r) i8 g
                @.Destination := void;* Q& ~+ ~! @8 f" I
                if @.occupied then
6 J) o8 n' |3 j; u' [                        part := @.cont;. n0 W* B* \  ?" n
                        @.transpOrder := void;
1 O! j' z+ X" R$ N% g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ r% j+ S6 O: l! V1 s                                @,root.eventcontroller.simTime);6 ~8 R6 Z- `+ [
                        @.HasOrder := false;8 p; \4 c+ u9 m: ?6 P8 b
                        @.DrivingHome := true;
3 D" p8 ]7 @8 W; \: a                        rgManager.tryToStartTransOrder;4 X) Q, f- I& ~0 F/ J3 h8 q
                        if @.Destination = void) p% W( Y$ J' ?* ?. B
                        then -- no transport order for vehicle @, O! L8 ~5 d: t% c4 V8 Q; P" c
                                @.Destination :=% A/ i# K$ t' ]; M  g* m7 m" ^
                                rgManager.nearestFreeStation(@,track.~);
4 {; x/ b+ R0 I8 y/ {- H" Y                                newDirection(@);   
$ N0 t; r9 |6 @& |2 q                                if @.Destination /= void then
' S# O' |& Z2 [5 w* L+ N                                        @.Destination.NumReservation :=
/ p1 o5 F6 I& k& R; T( v2 Z: a                                        @.Destination.NumReservation + 1;, E# c: _& w7 i  I9 ~: f- J2 b
                                end;
. w) Z( e: V) q$ p% d. f) R, f                                @.CurrIcon := "drivingHome";- y' c' j9 O: a8 z% h5 q8 k" V
                                @.DrivingHome := true;; s8 f! J" l/ ?/ F
                        end;: x! {6 t" E0 u5 [) p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; r6 X3 }1 z+ s3 ]5 g# [
                        part := @.transpOrder;% M* m; |. q! i; I& v3 k
                        part.move(@);-- load part
' \, q. O8 ~' ^5 m+ @% P                        @.CurrIcon := "load";
( o6 [- _" d: |4 g* w& L: R: ]8 S                        GlobalDistObj := part.globDestination;
# q% w! p# ]5 u' ]9 n. |1 ~) M                        assignLObj := rgmanager.rgAssignL;
! ~/ G+ Q7 q( Q( [. s/ w4 L                        row := assignLObj.getRowNo(GlobalDistObj);
. o8 h. G0 s5 q% C! d                        if Row = -1 then -- since 70/ W& Z; y$ V; c6 ~/ N
                                if lan=1 then2 s. V% i7 `1 t/ ?9 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- V4 G8 B: w, A, i; n                                                to_str("in der Andockstation: \"",?.~.name,"\""));' W  p; a6 D% x0 D( o7 X
                                else
7 ~! o2 ^" o9 k- u9 }8 h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" W* L$ Z. b% x6 C! a' v4 k                                                to_str("in docking station: \"",?.~.name,"\""));                                ) n0 C# M! L% E5 \! i, K) T
                                end;( T  h4 \( B5 \+ @/ Z
                        else
* Y5 M4 R  C8 H                                @.Destination := assignLObj[1,row];
, u5 `8 L6 O  m! S4 f  @$ \2 y                        end;                        - D  D6 {$ @9 e$ n- }/ U; Y
                        newDirection(@);
. Q5 r& S* A4 t6 M" e- l                        @.HasOrder := true;
* t  R2 G( s$ z6 w& J                end;
" t( j9 Y* N  t        end;
. y# o/ d! K7 R$ D4 r" [end;        -- of the method! f" e6 {, ^2 C- a* e( U4 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : q/ a8 _$ G; G
% l$ O9 _" E" t& K
这是AGV_putin中arrive的method。
% f* O  z! A4 q* k( g
5 M0 Y9 }4 f; D$ d) D! G! I$ c当到达物料速度越高时,这个报警更多,
/ C& O: |) a+ D6 {8 m: L' H$ V可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 ?$ V: v5 e; H6 F( J3 b& ~+ r- e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# ^$ N: N" I7 v; K, ~. Y8 ?$ L3 q# b+ T4 v7 K: Y
另外一个小建议,就是move,所有的move都可以这样$ `% f* a1 x6 L/ t# B" x
if not move() then debug end
% S6 u2 X3 p) G4 e5 G4 j  E+ C# n" L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 }. O0 Y# ?5 d$ }/ k/ ~5 F# |, `
plant simulation中的free libraries有AGV模板,, q8 f; ^# z! b$ a6 X3 \+ N, h
里面也有案例。
9 V/ m' l- J, y# z我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ q# b8 `# p- U2 |
; p. z& [( H  Z) Q+ K( O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . ^, b# k+ K  \( ]& K
& H% n+ \1 D$ I/ Q+ M6 Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + n" Y$ G4 l/ M7 H
这是AGV_putin中arrive的method。
6 A* l2 {) g0 V0 J, e% m/ l8 b  \$ l
当到达物料速度越高时,这个报警更多,
: h% F! O* G' x! S; [9 X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-10 18:52 , Processed in 0.021896 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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