设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8356|回复: 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'9 ^" \3 G2 R: d5 V* `8 c
*/; I  G1 B% V# ?/ f! y
is* A( Y9 q) j! X& R0 h, u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; Q0 S9 q% P& W: `# C
do
6 T. j4 e  X9 ~' _7 y        Lan := rootfolder.Internal.Tools.AOLlanguage;& @2 A& m. t! V
        if current = @.Destination -- else return1 U, M% _! O# e
        then
5 }: B, I/ T1 S4 C! h4 M; ~8 G                @.Destination := void;8 M4 _3 J8 K) T8 I+ [  D/ _; \5 X
                if @.occupied then
, Q6 I' C, s& @  k, b% X                        part := @.cont;
% X, E* c5 C: b! a' ^7 H2 R                        @.transpOrder := void;
* k3 j9 R- @/ ?7 N" u( X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# I* A& I) ~& \$ c7 Y. }; M: Q                                @,root.eventcontroller.simTime);# X" J: b0 S, u' }6 @$ M
                        @.HasOrder := false;* @5 l9 X- A( r+ E& n& ?
                        @.DrivingHome := true;
4 k% d5 g0 V( |9 t1 N( I3 h                        rgManager.tryToStartTransOrder;
7 Y2 S4 c; N( R                        if @.Destination = void5 w& X6 t9 Z( S' w9 J, k
                        then -- no transport order for vehicle @
6 f. }! A: y, U: ~/ P- K                                @.Destination :=) e" b- R7 C9 H% O% Q) Z
                                rgManager.nearestFreeStation(@,track.~);0 H6 ?7 {$ S% U# O. {0 v. e
                                newDirection(@);   
' i2 ~8 l0 r! Q4 @2 B                                if @.Destination /= void then
  i* M% o7 A+ ]                                        @.Destination.NumReservation :=
6 g" s" x# E, U- W                                        @.Destination.NumReservation + 1;
5 K# W5 Z! _8 X. P% d+ n+ O0 _" ]                                end;9 V/ X" \2 v* s$ @& K2 f* \
                                @.CurrIcon := "drivingHome";
( R4 L5 a5 ^4 H4 R  D% q                                @.DrivingHome := true;* f8 Z6 e4 r& B7 x/ ?
                        end;
1 O8 s  ^$ |. p4 z8 ]+ k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" K2 m) Q0 a/ b3 A; A                        part := @.transpOrder;6 M/ Z, A) S7 W5 f/ m! D% Q3 Q
                        part.move(@);-- load part
/ x" a- ^- I- y5 Y0 d                        @.CurrIcon := "load";3 v# L  M( c: Q, Q' v
                        GlobalDistObj := part.globDestination;+ V! X6 H- w. ~2 ], P
                        assignLObj := rgmanager.rgAssignL;
- _! H# ]7 I1 h7 S/ @, N" O+ I                        row := assignLObj.getRowNo(GlobalDistObj);
/ h) r+ \( i/ C* ^6 Y* J- I+ {                        if Row = -1 then -- since 70- t7 W% O. o! P+ P$ Y7 A
                                if lan=1 then' h" [! D+ I7 T+ ?! K- G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 `9 x6 i9 `7 E/ p: x# {                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* c: `9 I/ O9 ?$ c! X9 e7 q                                else
3 b) i# ^( T& Y: p, a* t( w. o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ l! y6 K! u& U- ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( r  o0 l* P& i                                end;
( _7 U1 o9 h& H2 l6 s3 o                        else+ j/ T: `4 G" I$ q
                                @.Destination := assignLObj[1,row];
" T" [' K. \8 j* {) [0 s( I3 m                        end;                          v5 |; {! V9 x2 j9 ]0 r: r; `- u' j
                        newDirection(@);1 @- C8 \, e/ |2 i4 Y
                        @.HasOrder := true;; l3 W9 H/ h& W! r8 l! k. M
                end;7 Z* E. E: a* p4 c
        end;3 X" {. j) p" [" R8 a: }# W: c
end;        -- of the method
/ N$ g/ R1 t6 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 \% U. V5 y" l4 W! c- c5 E: B

* H& I7 s* P  E, E5 A2 @这是AGV_putin中arrive的method。
( P/ }% H' k8 d& e2 U  l% ~. ]/ ~" l
当到达物料速度越高时,这个报警更多,
& [9 _; K, Z1 u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 M: F' R2 a9 G5 [$ y" p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 m. c$ ~& t, h7 Z& ~
( o) _% K; E- h) L另外一个小建议,就是move,所有的move都可以这样0 s1 h$ f& H& `2 D; _
if not move() then debug end. r( M+ S4 \& s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 y6 l1 Q8 Y, D, r) _plant simulation中的free libraries有AGV模板,
. v1 D% ?7 Z, C; T9 ]5 D里面也有案例。
- W  `6 x  y& R! f; t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) e8 J4 n1 s2 n
5 r) j' }1 C- ?; m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 M3 U9 y, A+ |) _' q
, m0 G! O- n7 o4 e& x& e: D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; q$ \1 |$ h% N( r
这是AGV_putin中arrive的method。6 V8 `; F/ o  A; ]% f" S

6 r4 p3 z4 \" M; d( t- }+ ?当到达物料速度越高时,这个报警更多,
2 K+ Q7 A' `8 x7 U1 u3 d' @
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-30 05:37 , Processed in 0.018611 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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