设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6963|回复: 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'
5 r# R! [+ B/ H3 d*/# B8 Q/ u7 B6 @! I! }1 D
is
7 }8 C% s' x; j) \/ R6 T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 a6 D2 R" m: ^$ C$ V$ p- ^do4 i; X& x# C7 p1 o1 S
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ D6 @' `; i' b! n* V; e, m
        if current = @.Destination -- else return* p4 R  ?) e; A  I& s: [
        then! l1 f1 e  O7 G( I
                @.Destination := void;
5 l8 Z4 L# h, I( B& F+ r                if @.occupied then
9 E2 }- Y6 t. Y# c                        part := @.cont;
) H+ x. e3 N2 q) M, I                        @.transpOrder := void;' ~0 Y* b+ t6 g5 @! W8 }( P& L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, c+ s# T+ y  y* D0 Q/ r  s4 y* g3 c                                @,root.eventcontroller.simTime);6 a& N- t" Y  m0 A
                        @.HasOrder := false;
+ w0 B# C  e3 c! w                        @.DrivingHome := true;
0 I0 d  W9 G0 Y& J! ]                        rgManager.tryToStartTransOrder;. k" ]5 y9 N4 _$ _) e, x9 j* ^
                        if @.Destination = void
+ A6 ^4 |7 I- w4 V. }& V; p                        then -- no transport order for vehicle @
0 G: K* G7 |: R; ]6 b# Y                                @.Destination :=0 T) z1 k9 a; g1 _1 g5 B
                                rgManager.nearestFreeStation(@,track.~);
/ Q* z; L5 Y& ~% D7 m$ W  M                                newDirection(@);   2 \. l3 |! R- P% I- O* j8 M
                                if @.Destination /= void then# y8 p- G+ y8 S5 P' l
                                        @.Destination.NumReservation :=. x2 C5 Q8 p0 L
                                        @.Destination.NumReservation + 1;
/ i4 w2 c8 ~. y) w                                end;. C! G- @  g; H
                                @.CurrIcon := "drivingHome";/ e& \- {' _) W, @, U$ F7 p4 t  T
                                @.DrivingHome := true;, Y4 q$ i- A7 z! W! b0 G
                        end;
" C) b  b; E' E$ J' @( i) |# O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 Q7 x; `- L! r# C& T                        part := @.transpOrder;
( J5 j! I& y6 E  v2 ^  ?" Q2 g                        part.move(@);-- load part: }0 ?* H$ H- R, l2 ?& f7 z( N
                        @.CurrIcon := "load";! }. N  ?2 u+ }4 i; \9 M
                        GlobalDistObj := part.globDestination;
/ a$ n, O7 _2 K" o0 r                        assignLObj := rgmanager.rgAssignL;
4 _) q2 [; A# H# n% R7 o+ j                        row := assignLObj.getRowNo(GlobalDistObj);3 Z5 x1 {; R' B2 `* J1 a* |3 F, Q
                        if Row = -1 then -- since 70$ L6 ~5 [4 U0 C( p! d" @. v' N4 ~
                                if lan=1 then
6 D$ x0 a, p9 e" u+ @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" l) L! Q. ~7 }( X# y8 [                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 {, K& b9 D& M
                                else
8 _# g. l! \2 ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% Y1 d# A/ Q$ J: J" }6 M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 `, a; v5 G6 d; P! b; v5 n4 Z% y8 b                                end;
8 @# u7 W7 ]* d0 e( s; {/ a                        else
. _. F' u7 R& l' q; ?4 \; @" T                                @.Destination := assignLObj[1,row];, U/ M' O( E+ n  ^9 H  x
                        end;                        ) N# `# Y+ ?. t
                        newDirection(@);* V$ Q" ?, i9 i) r, j0 v7 }
                        @.HasOrder := true;
( I/ s" K' j# [                end;' n, d. f: M1 U( G9 u6 t
        end;
0 W: y' Y5 M( C5 h+ d/ mend;        -- of the method) u+ r! `3 J' T" m, z" N6 @  o4 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ `% y2 A6 Z( T: b. V" E; S" b9 A' ~

( {. }& V8 b) T) v3 a2 P0 ^; o7 l6 F7 V这是AGV_putin中arrive的method。
( |% |" t" F7 x; w: u$ t* O
) S- V, J/ _# Q当到达物料速度越高时,这个报警更多,) I* Q2 e9 S4 T: M! U2 t4 b8 N
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 J/ H; h: F5 a9 O. J6 b3 D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% D2 ^( y9 r3 j7 M3 ~
. J/ p" R' p6 y& z9 s另外一个小建议,就是move,所有的move都可以这样
4 P5 P1 Y3 K! E$ f" m' Xif not move() then debug end
' }$ {& N8 z) ]/ ~5 o8 @/ v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: [+ `9 s6 ?* I( K& z* A
plant simulation中的free libraries有AGV模板,, L* j7 T8 t# x2 ~7 C( X% ^$ v. L
里面也有案例。
1 m: C" r" T# D+ C0 d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ D  ^" _# m) u, L. I6 h: q/ V
( ^/ ?1 U* V" @; |# E
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 e7 o/ H' i( w+ m  {) X8 X2 ~  U: h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 K; w0 ^! c6 R+ E! R/ @
这是AGV_putin中arrive的method。
* y! }8 \& E, |1 W" q! P: f% M
- v( J3 ~+ C% m" L( O当到达物料速度越高时,这个报警更多,
- Z& s9 V* n: J, q/ u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 12:52 , Processed in 0.016923 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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