设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5416|回复: 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'  x5 \$ n1 c! [' \& u/ `
*/0 s2 c; g# ?- g! Y
is0 |4 i0 V; x& Y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% ?* C( C; {3 ~6 Gdo
9 J! Z4 m% C& Q0 r+ l% W        Lan := rootfolder.Internal.Tools.AOLlanguage;, G$ \9 a/ G* s
        if current = @.Destination -- else return
5 _& {: p1 l) v& R        then
4 N; g' F5 D: [8 s; a4 `                @.Destination := void;
  n3 X5 k  s# ^% s) o! H                if @.occupied then
' |$ H# P. T/ [6 J                        part := @.cont;! R$ M( Y0 }3 l
                        @.transpOrder := void;3 W5 D" k8 b( f7 M- V
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ P6 e2 s, P( {8 ?2 D                                @,root.eventcontroller.simTime);
3 \+ X+ M4 P( ~5 {4 Z7 u3 m7 u                        @.HasOrder := false;
6 h0 {6 D% |2 b9 Q  T. Z                        @.DrivingHome := true;; u$ x4 c1 U0 _: x% h5 q: r
                        rgManager.tryToStartTransOrder;0 t: e% M/ P* Y8 y
                        if @.Destination = void6 M! J9 ~4 d' e7 _! u. k
                        then -- no transport order for vehicle @0 P- Q3 R8 _8 f
                                @.Destination :=' m/ T/ W( v. B- A2 E/ f
                                rgManager.nearestFreeStation(@,track.~);
- G: z0 Y7 B, P5 n4 \                                newDirection(@);   
" N  U+ O# u3 [/ y  H0 c1 L                                if @.Destination /= void then
" o/ D5 I% T/ k                                        @.Destination.NumReservation :=2 Y" F' g: d, B+ F
                                        @.Destination.NumReservation + 1;
$ p) p$ E" T6 K                                end;
. |* R4 z7 J$ w6 I! w                                @.CurrIcon := "drivingHome";
' j' S" s) T  H- W( y                                @.DrivingHome := true;! ^4 W* ~9 h# [7 L* A  j
                        end;) Q8 H: \$ m, T! F4 X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: W/ a" _! n4 u% _! O2 j- B) ]! k
                        part := @.transpOrder;! w! X0 t. f" }' {+ `" |; F% a; U
                        part.move(@);-- load part/ q) [1 b3 B& |. n! ?2 e
                        @.CurrIcon := "load";
4 C  {$ C. R5 s3 M                        GlobalDistObj := part.globDestination;# R& c1 q& _7 F; p  P. X1 X
                        assignLObj := rgmanager.rgAssignL;
7 H7 I6 v1 C+ Z                        row := assignLObj.getRowNo(GlobalDistObj);
. u! y6 i! \" Q  O                        if Row = -1 then -- since 705 K9 m! h8 o) D6 o5 R& a. S
                                if lan=1 then
  V2 T% H6 L# t' C* W9 w) X7 d                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 V4 `; |, T. m+ m9 a9 c5 }" g6 l9 I* u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 D2 O8 e  C3 p0 {% j. P$ X+ F" h# S                                else/ p3 d' [5 V- \9 Q; s, S) X  p5 T1 E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. Z4 O+ V$ K5 ^9 b. u- N
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( e8 J6 a8 ~: ~6 L5 v8 }) `
                                end;" q! O7 _; X+ E* s3 Y% x# b
                        else
# D! J9 v! l- Q, }                                @.Destination := assignLObj[1,row];
' N  V" q  H3 S/ V7 B4 i( M                        end;                          F% N2 a1 l: a( C( z) W* E
                        newDirection(@);
7 k% h# e/ T; B7 _* O                        @.HasOrder := true;
6 c& D! W9 }% T7 a, G5 |                end;+ ]0 F1 @  e, h+ a
        end;% L$ a( g  x: m: W
end;        -- of the method1 c, r* a1 g& t; X: u5 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 A; q$ t7 c& Z5 Y2 l. u5 Q
, R7 u3 k3 j. F. N0 c
这是AGV_putin中arrive的method。
7 c! W  o7 ^# n. {8 o  h* f
3 E2 q1 y6 n$ @; ^7 v% J9 [当到达物料速度越高时,这个报警更多,
% f$ h  i' X# Y1 x1 ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 L1 @4 i& s/ {- ^6 ~9 x
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, h. ^. L; a- {% F* t2 {

) B+ o* R2 W3 m( C& t另外一个小建议,就是move,所有的move都可以这样7 X* h: f8 d3 U8 t, C
if not move() then debug end, u' t8 f+ r  x! q) y% w
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ r& Y8 Y8 U$ \) y: x/ Splant simulation中的free libraries有AGV模板,5 r3 _8 U6 T$ r8 ~9 H
里面也有案例。
" ]" \. E. b4 h! x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, _+ V  F) N/ M4 d7 h, ~0 i, o6 J/ y" G) F7 y* {6 p3 }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - {. U/ Z  H  x' z! ^$ U
- T( H0 q; j9 _0 }$ f% Y) M) K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 |: I: |/ x  D& Q7 @2 _这是AGV_putin中arrive的method。
& b9 w3 g: P2 f" f' P; u& ^9 }  S; G& r
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2025-11-22 10:10 , Processed in 0.020409 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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