设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6112|回复: 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'
/ f" \0 j' H, B2 W3 |/ r9 Y*/
: ]  k6 [( P: ~- m( ^- Z% fis) w6 N! c4 ~  j$ d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ E) t( h2 R. Q) \
do9 P* t& z9 S4 T1 _+ D' @: b% N& k  Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 u% ]0 N9 o+ S3 h' d        if current = @.Destination -- else return
: N8 K( }2 j4 \+ n" G4 E$ @* @- D        then
; I7 S; m* Q: ?- ?                @.Destination := void;
% C/ @  n8 U! q- T9 w                if @.occupied then% R/ f) ~2 z, U
                        part := @.cont;
! @& z! G1 g5 s0 l! M7 ^. {5 W" ~                        @.transpOrder := void;
4 y8 r- r5 ], f+ t& k9 D, Y                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' s' d" K# }8 l) _, s
                                @,root.eventcontroller.simTime);
, m! f0 v7 f! K" r/ p$ h- S- p                        @.HasOrder := false;
! Q9 y  A7 @( T" ?* P) n. o  k                        @.DrivingHome := true;
8 Y: C% o3 T' z. s                        rgManager.tryToStartTransOrder;
* E+ n3 Z, v( _: d; y* e. C                        if @.Destination = void$ k% a; I* r0 V9 d: d; T1 }  ]
                        then -- no transport order for vehicle @! T# q! B" J$ h- B- Q
                                @.Destination :=& s5 q. F/ U5 D7 Q" ?1 C! X2 ^
                                rgManager.nearestFreeStation(@,track.~);
0 Y1 ?$ I7 E  J; P* V, ^5 \. g) j( z                                newDirection(@);   
; S( u+ ~) T& x8 F                                if @.Destination /= void then
8 `$ \) a4 r# T                                        @.Destination.NumReservation :=  D! p* C. v. X0 M* v5 K
                                        @.Destination.NumReservation + 1;) g5 }: P8 }0 \7 s
                                end;
+ B# m* \  v. W& D                                @.CurrIcon := "drivingHome";
# g2 R1 s% I! P  w9 A* l                                @.DrivingHome := true;) m6 R& L& P2 C, ~5 F
                        end;4 S2 r6 F6 b: C% Z* {( i+ p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 a" _$ D0 {6 i4 D
                        part := @.transpOrder;
1 z6 c- y7 b+ X4 z# X                        part.move(@);-- load part
' r& h/ w* c6 l! A: x1 ^                        @.CurrIcon := "load";
4 k+ A% X' d# Y8 @2 _9 u                        GlobalDistObj := part.globDestination;3 D8 ]; b+ r2 w, v  P0 R
                        assignLObj := rgmanager.rgAssignL;; V" h  P3 Z) _$ c5 ]4 O; s: D: S5 s- G# R
                        row := assignLObj.getRowNo(GlobalDistObj);
8 R) ^3 O$ }: G' M# {                        if Row = -1 then -- since 70
, {2 H6 ]7 g0 Z8 |                                if lan=1 then; R5 p# U: `# u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 `. I! O- O% u+ y1 K                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 N6 o# c) L8 ?& E! ~                                else
: z4 U% w& M& z' t  `8 x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 k1 }! G  K5 R; Q+ s) k7 Z                                                to_str("in docking station: \"",?.~.name,"\""));                                2 N4 P5 C6 X* q+ A, ~  y2 f
                                end;; w$ {2 p; |1 V; ~
                        else( E9 T  `' M) |" B* C* c7 ^
                                @.Destination := assignLObj[1,row];! e, o4 g& ^! A. |5 o2 y, r! j( m* \
                        end;                       
" Z6 w0 ]! Z" |% |" l                        newDirection(@);; f5 K+ P3 l0 h% D2 A
                        @.HasOrder := true;0 a; z& E2 S# d/ r
                end;
' t/ M. o) }: L* z; h! n9 V0 `- s  R        end;
$ g; ], K! T  y  ]# Q6 Kend;        -- of the method
* }7 D4 Q+ Q1 {# w) t) s; l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) N5 C$ r1 Y6 ^' N3 K: @- l0 ~  F! n1 T  \2 s6 U5 L5 b  L! G
这是AGV_putin中arrive的method。
' W) O& k8 W7 v& W7 ^2 L3 l4 K7 r# Q- l8 y* n8 J5 V% ]
当到达物料速度越高时,这个报警更多,
5 w' V+ ?( \3 d9 l# f3 w: D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  P0 J; [; h6 D  Y: ]7 E- c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% M( l2 |' B: |" f9 X( d' b2 S! y' \" K* o# m
另外一个小建议,就是move,所有的move都可以这样. |$ A# p% f8 L$ q$ ~& g, B) |
if not move() then debug end
% P; g# j& {9 f: ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! K4 P( Q2 C+ Y, k% ^3 L  Y1 `5 o
plant simulation中的free libraries有AGV模板,
* F: D& A* Z( ~( X里面也有案例。
& ~" s3 p% b) R, R, d2 m4 }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" S$ s% C( x/ w$ X, f
* k. R: C1 ?; ]. O4 {! k# k* B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, P5 G5 f5 L- I/ ^7 x9 B  ?; S3 j9 v/ [; v- n7 g9 y# t' u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' P9 S: P* A! a: d这是AGV_putin中arrive的method。& u# e& {7 w5 X* d

4 G5 l( C# n( l" j当到达物料速度越高时,这个报警更多,

1 Z! i  ?3 }! M% Y+ ]% |; S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-19 07:11 , Processed in 0.019294 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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