设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4416|回复: 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'
( R% b0 y5 A0 ~. f- m" |$ V) n*/
/ y# S1 e: |9 w9 a3 E9 N1 g6 d' dis
6 q9 h3 o6 l6 e; U# E# M+ ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! D3 L' B7 K; f0 p& Y8 z
do
/ \5 G+ [8 Q" H4 G8 j4 h2 t$ W1 ^        Lan := rootfolder.Internal.Tools.AOLlanguage;4 `0 d. I! I3 N3 w+ Q+ q
        if current = @.Destination -- else return
9 x+ B, b: I% D4 k' J        then3 x2 A* q6 J8 N8 `, H6 [/ x
                @.Destination := void;
5 w( v2 a9 e2 }6 y) A$ k                if @.occupied then
, r3 \. J8 U9 A- b                        part := @.cont;1 ~' k( {4 |9 K. ]! n+ |# F
                        @.transpOrder := void;) Z6 F7 M; y  t( u+ K4 a0 c# v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; i6 T# I8 z( T4 R" n! g
                                @,root.eventcontroller.simTime);
* b1 f1 H' ~" z+ [, F  b                        @.HasOrder := false;
7 H4 [: z! x7 c( O) _- @8 u0 H* m                        @.DrivingHome := true;
$ [5 J( S" d: L% h! ~! O: @/ ?4 p4 L6 D                        rgManager.tryToStartTransOrder;
6 H/ I% M* T& P" R  e                        if @.Destination = void
1 P* i6 A% M& n5 o                        then -- no transport order for vehicle @! @2 h* C( Y% v
                                @.Destination :=
' n: J8 C* L- ~7 N                                rgManager.nearestFreeStation(@,track.~);$ {% N7 N) u& W! k( R3 M
                                newDirection(@);   - U0 E1 j6 c: ?: F, S
                                if @.Destination /= void then* B' [6 U2 s9 D" v1 s' d( r
                                        @.Destination.NumReservation :=
1 M% O5 G; T% j: D# [% b1 p                                        @.Destination.NumReservation + 1;3 T3 Y* A; ?$ ^* Z
                                end;
! p# w- H! C* ~" _# @$ L                                @.CurrIcon := "drivingHome";) T4 u+ l3 L0 f4 k0 S
                                @.DrivingHome := true;1 o5 ~( w) l5 B& U$ V
                        end;/ \. G; c8 j& }9 p# \8 [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; v3 f7 T/ Z3 X: G
                        part := @.transpOrder;
% n# P( Y* J4 l1 B+ a, `# ]                        part.move(@);-- load part
. |: c$ `4 Q* J7 f; ~                        @.CurrIcon := "load";
. N; `! [# b$ T7 s                        GlobalDistObj := part.globDestination;
6 F" e: E7 V# ]& t                        assignLObj := rgmanager.rgAssignL;
: u; ^; l6 t8 P: y/ h                        row := assignLObj.getRowNo(GlobalDistObj);2 r% N3 Z( w, _# b# i, W, M
                        if Row = -1 then -- since 70
4 w* w, ?  i8 J                                if lan=1 then
2 ^3 R3 _  k# J6 R4 l" o& D; j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 q6 i$ E* j- g! D- C; A2 I) b                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- v' u4 I5 A  R( D2 f, {( r                                else
; ^- ^' V6 A- l! h5 i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 M  }0 [2 \1 t% ]4 T! I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 @5 c2 y, E/ o6 ^                                end;
3 Z8 u( J: j8 ^. |                        else
; Y; s# h' m1 ?, q$ |' R( Z% e                                @.Destination := assignLObj[1,row];
7 r% u7 l! R0 Z. Z' U                        end;                       
  s6 ?7 k2 \* o, b* K$ k                        newDirection(@);! h/ q1 E9 m! Z& U
                        @.HasOrder := true;( _3 _- F' G' c4 n' a
                end;
' k8 ]6 }& L7 @! F        end;9 m: |9 @" y8 E$ V. v
end;        -- of the method
- j) R% M& E1 q- u5 L, D7 @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' c9 k0 v5 F" b7 n6 r: {1 X4 _$ g
这是AGV_putin中arrive的method。
2 N) s& H& \- J8 c- Z9 A
+ u! b0 x8 ?' A0 q7 S3 B! q5 F! `当到达物料速度越高时,这个报警更多,
- v' G! {  z9 b8 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& D, b0 T) S' x4 s. r8 J
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( Z+ z# G$ v$ p
& v/ v+ K- t5 k  j) r- k另外一个小建议,就是move,所有的move都可以这样
5 `: T1 f! e4 h% K2 G) j$ x7 d) gif not move() then debug end
4 i; M' t9 G$ g/ C0 \3 j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! ~9 ?$ S- k5 Y: l! g2 s0 tplant simulation中的free libraries有AGV模板,3 z7 l( u; y2 ]8 p+ l. e) h% s- V
里面也有案例。6 |" d3 }! ?) R  X5 Y! N
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 _/ H! h; v& i+ |: l- {1 Z
& }/ D" @7 u0 T1 A0 r
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ J5 D; \9 Z1 M  I
1 D; H! a* N' g! e3 e) \那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - v# U( u1 r" w( e+ e" N
这是AGV_putin中arrive的method。# D9 M# S9 W2 k2 E  L( w. Z! H! H

$ k. s- J2 y7 n# u$ f  b  p当到达物料速度越高时,这个报警更多,

  v4 a# m' Q  Q& j. l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-12 11:14 , Processed in 0.017829 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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