设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9922|回复: 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'4 R9 y2 b# i1 R& {1 t
*/
4 ~" T9 e! f* W5 T0 ?- r) G) vis% H* e$ f0 w( S) f6 ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ K* X6 k$ o( A$ [( x
do
: Y3 L9 [2 e  b: E" I9 G        Lan := rootfolder.Internal.Tools.AOLlanguage;; g, G0 O: H5 B. A
        if current = @.Destination -- else return; A- J; n& E* u& |
        then
, g0 Q! G) @# P                @.Destination := void;
# A: |6 A1 r' K- b2 ?                if @.occupied then
+ m" M! {+ D% \7 _% Q& }                        part := @.cont;  A9 V' I2 t! x4 q
                        @.transpOrder := void;0 a' {1 w. C5 h& G' c" O" J" C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 v  _5 p$ t7 _' f8 |) v
                                @,root.eventcontroller.simTime);
! ~8 u$ }9 T: [2 u5 b1 ?                        @.HasOrder := false;
/ \+ f/ G( `' \4 l  m                        @.DrivingHome := true;
1 |/ V" ?! q2 s, q2 z                        rgManager.tryToStartTransOrder;
$ c0 v3 L1 ^3 Z* M7 b, X$ b7 g% m                        if @.Destination = void; n! @2 g, _2 p  z
                        then -- no transport order for vehicle @0 v( A& l* n$ M0 w3 ^
                                @.Destination :=, ^7 O/ [+ D2 h2 j7 ]7 l
                                rgManager.nearestFreeStation(@,track.~);
5 Y; ]7 J3 A" V                                newDirection(@);   
3 w+ c2 G; S) C. b5 B                                if @.Destination /= void then6 j6 V7 s0 {0 A; w  _- \
                                        @.Destination.NumReservation :=! x6 @0 p2 d6 F4 ^
                                        @.Destination.NumReservation + 1;
7 r1 Y7 A4 L" Z# ]! z                                end;# Q: @4 z& n$ S# B; w9 ^4 r) e
                                @.CurrIcon := "drivingHome";
2 {1 G$ U& W2 H% B7 a                                @.DrivingHome := true;" K& s! c7 Q0 ^& G
                        end;
. I+ k# q4 T/ k! l. }" [1 A* C' B3 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 w3 W" a4 _( \
                        part := @.transpOrder;/ F8 g+ _! f% Q
                        part.move(@);-- load part- w, `2 N7 k8 E. `8 j3 G5 u5 j2 [
                        @.CurrIcon := "load";
. R' e! u; y) i: f4 F4 @                        GlobalDistObj := part.globDestination;
/ c3 W# x/ p: O- M/ P+ M' z                        assignLObj := rgmanager.rgAssignL;
# J, l! E+ G% k) ?$ e! c( m                        row := assignLObj.getRowNo(GlobalDistObj);
4 }# I3 m/ T8 p8 D. o                        if Row = -1 then -- since 705 [/ n9 ^! G1 Y
                                if lan=1 then' G/ x2 `5 k% q: Y* @# M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' f8 C. B, \' T6 Y& N0 ]6 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 E/ B8 w( Q. G' j; o" e+ b                                else5 y" x0 Z% K9 V
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ z# R  F& u1 C6 T% |  m9 M& V5 S
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( ^1 t2 m, y$ j                                end;! `. L5 m2 X! _) g
                        else( A* s% d/ }# r+ r6 M
                                @.Destination := assignLObj[1,row];/ h/ M1 m  S" u
                        end;                       
; |$ N6 B; q5 P7 i$ J5 [6 N                        newDirection(@);( c$ O; @2 k8 r3 a
                        @.HasOrder := true;8 R' [( |, W$ A
                end;% _/ u  ], S/ L) u5 M; a
        end;% l" D0 _- {* L# @% l. Y
end;        -- of the method# G- c, \1 n2 h$ z* s9 a! n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
0 t- s% _5 K6 E6 \! L- d
6 W2 q7 ?3 s! t" }6 b) b这是AGV_putin中arrive的method。- f* X3 X( A9 t9 l1 O

2 g4 |* k1 g+ i+ ]- R( u当到达物料速度越高时,这个报警更多,
8 _0 q! R# {/ c5 u" {可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
% L- U2 `8 T3 |) B! V! Y, d5 x% e  y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- R% d) b9 B$ s  ~( l2 f
2 O2 C" _; D; j& \3 ]" Z  l% [
另外一个小建议,就是move,所有的move都可以这样2 j* S' M/ X$ K5 J% q: j/ M+ E
if not move() then debug end
# x1 S& E  ?  v8 U/ R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  |# R( I% o, f7 ~( P
plant simulation中的free libraries有AGV模板,* T: Q! l: M: f
里面也有案例。
2 f, @/ d3 O0 M/ P2 z8 r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ q9 m6 {$ W, M

* y& ]  [& R5 B. x# E. Q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 ^0 K# j$ S! y8 c2 I$ s* s6 W
) K6 V+ J( j6 G; l) K% N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& v0 p$ L/ r0 \  v这是AGV_putin中arrive的method。
6 e+ \( j; z) @9 ]" m5 {# [* k5 W  D, Z% ?" E3 k$ i
当到达物料速度越高时,这个报警更多,

  l0 o9 D' M. w  U$ s% L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-2 22:51 , Processed in 0.016431 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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