设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8107|回复: 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'
: Q5 x$ ]  d0 Z% D*/6 M3 m% ^2 {4 ^1 U8 R4 M
is; ^, F( f- @* g8 G! U; ~3 U& G7 |
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% d' x+ _$ K, d' e- P; S, D
do
4 w% m+ G' d9 u7 Y2 ?8 O        Lan := rootfolder.Internal.Tools.AOLlanguage;9 r- O8 R( M9 }5 e1 P
        if current = @.Destination -- else return6 p- l% `7 m# w
        then
0 r' r  P; b! E" A: P; Q! G                @.Destination := void;+ |- p8 P% d; q- y
                if @.occupied then+ x+ q- e/ Y. E' c; z' f
                        part := @.cont;
  X/ N4 u% d- P- T1 ^/ r. v                        @.transpOrder := void;
$ F, i! q. t) {! g8 ~1 Z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  D& _) r' S7 Z. @6 `9 a* ]& G3 Z
                                @,root.eventcontroller.simTime);' i6 u9 ]2 `6 H& [: M5 j! X! d9 W) T' K
                        @.HasOrder := false;5 C, N% ?1 B! q: B8 T$ H
                        @.DrivingHome := true;
! H8 }  h" e  ?% I3 `                        rgManager.tryToStartTransOrder;, Y4 T, i3 ?+ A/ Q* t+ P
                        if @.Destination = void4 r7 Y1 R- r) U
                        then -- no transport order for vehicle @) k( n9 v. F8 y' d: a
                                @.Destination :=
5 m) ?  s4 f8 X/ D                                rgManager.nearestFreeStation(@,track.~);" G1 x1 u/ W# y8 h2 @. y
                                newDirection(@);   6 q  q1 Q8 d" \
                                if @.Destination /= void then
8 @% w  @+ O8 M                                        @.Destination.NumReservation :=
/ @6 Y/ S9 B  _9 g1 ?, w% I                                        @.Destination.NumReservation + 1;: _) I: E: q6 |( [" `' X6 h: L
                                end;2 X) x* |/ [3 a; B# P
                                @.CurrIcon := "drivingHome";, U5 A0 k, i! \, g  q) U
                                @.DrivingHome := true;( K3 N! w' a0 \4 s
                        end;
$ S" X* Y- V- P+ g! I; `: F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 c, M+ K; q" v- T1 P. `: P- o                        part := @.transpOrder;
' |  e$ K: @" P& e/ g* M( S5 @4 s9 M                        part.move(@);-- load part4 ]0 O# w# T! l. _3 T6 b
                        @.CurrIcon := "load";
' L/ ~* ^& r1 I8 U) I7 Q! S                        GlobalDistObj := part.globDestination;
0 O' v' Q4 U' m* e5 ]$ S                        assignLObj := rgmanager.rgAssignL;
3 h$ z( P. y- m; [( d( `" S                        row := assignLObj.getRowNo(GlobalDistObj);& N0 f1 |) h: S: R4 Z* s
                        if Row = -1 then -- since 70' T8 `1 K! }9 J+ Q  T
                                if lan=1 then
5 A! ?- R6 r# g) z! ~. U% C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ O, }+ c- ]& p
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* F1 D# P; u$ U# [$ o7 p                                else
, S, c3 Q7 G$ F6 S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ P8 Z# @2 p2 @6 {# f$ J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& R- L: ~) @: W4 x                                end;
; y! w/ ?: p9 q9 r* ^5 B                        else
( j: f& v3 F' b* l) @                                @.Destination := assignLObj[1,row];
+ @0 D2 @8 D. F% {/ _                        end;                       
8 I9 D1 l6 P! z% i( C. p                        newDirection(@);( ~* E8 f/ V: v/ H. ~2 l/ K4 y
                        @.HasOrder := true;' R# i- I8 X- a" ^, n- y4 ]- v
                end;" V( d+ T& F. `# y4 M5 h( J
        end;, Z2 m" i6 D& x" ^# P
end;        -- of the method
& o2 v& \  V7 g) o( g5 U7 D) Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  A, \5 P* z* c) _+ h( F1 u1 b% k: L' L' Y" [7 c2 ^% A8 G
这是AGV_putin中arrive的method。9 b  S8 S6 z$ w" ]
- n& `! g9 L% S/ B5 {) c
当到达物料速度越高时,这个报警更多,& S8 W6 ~; |9 M: J$ u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- @& G0 v. N6 ~  w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  W5 s: \3 w7 z, a6 t

$ F  V3 M4 ]- t$ d' M$ g另外一个小建议,就是move,所有的move都可以这样
7 W8 Y0 b( e8 D  A5 e7 \: m3 hif not move() then debug end3 y# b: D# x9 B, o2 v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% l2 z1 A0 w5 w* @, {+ W7 w
plant simulation中的free libraries有AGV模板,* U" G( ~# x8 R/ s: w$ X+ Y7 k: \
里面也有案例。  O, O# `" D" h( v  }' I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) c8 X2 u) a/ l4 e
. L6 X( @7 G) O$ ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 ?) G: }! K; n% b+ s7 s
6 R, b) X7 d0 d/ i3 e那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 a7 D3 H3 r! K% X$ b. e: S这是AGV_putin中arrive的method。% V2 T6 [+ e8 l- |

8 e; j$ E9 w/ z( y  K/ J当到达物料速度越高时,这个报警更多,
7 B& s) m' z4 x9 y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-15 04:15 , Processed in 0.015361 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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