设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10033|回复: 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'
; l, s# J% \( Y0 K0 J*/
" C! Y0 V/ M: K; b0 d8 H" L  Tis8 e$ v, H  u/ {$ F8 K' ]! [
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, N! K2 a; ?5 A" o' |, a1 W
do
3 l; t  o/ R- Z$ T6 V        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 s  S& z) ]4 o% k' D5 T: ?& e        if current = @.Destination -- else return
  W* j2 @5 U% |* ?        then! e! f  J7 J5 k) M1 R$ N( }
                @.Destination := void;
7 w7 I# u& o4 E% q8 ?                if @.occupied then+ t6 c2 Q+ `! K) b, f; h# t8 t
                        part := @.cont;
. w  _1 M6 z" m: n3 |* @                        @.transpOrder := void;# s8 ^+ f5 G7 r4 y8 b; o" `) K
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ i" T1 A- `! O! J
                                @,root.eventcontroller.simTime);8 N7 m, y8 y! r4 t
                        @.HasOrder := false;, k4 T0 s/ \. T: K
                        @.DrivingHome := true;' H: h, v* A& h: h& y- L
                        rgManager.tryToStartTransOrder;& K$ T0 t$ P% L: n7 E
                        if @.Destination = void  }+ ~/ S' y. q: M! O6 W, W
                        then -- no transport order for vehicle @
5 z5 E; J- |( p                                @.Destination :=+ N0 y% L( Q* @5 V' i1 [8 E/ \
                                rgManager.nearestFreeStation(@,track.~);( g3 I. U& a/ e& x% Y
                                newDirection(@);   
8 n, L% X% B8 n7 U                                if @.Destination /= void then' w; }5 ?6 \* b* @; ?
                                        @.Destination.NumReservation :=. S# j" Y: R+ T  U* ~" {
                                        @.Destination.NumReservation + 1;
- m' o  O6 u' h9 V4 X) L& p" p                                end;! r2 V, ]+ P$ u  c6 Z* t: ~/ u' m
                                @.CurrIcon := "drivingHome";* A9 w- |0 Z% Y* K6 z* t: ~/ u
                                @.DrivingHome := true;; ~" H  A9 d& x) ~1 }2 @8 x
                        end;) {% N: b8 s2 b4 j! y. {1 z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' Y; x3 W9 [6 ?7 a' p! z                        part := @.transpOrder;5 X4 s8 P4 R% A+ Y( S4 ~" j2 Q
                        part.move(@);-- load part
6 u' j4 e7 j# @, M1 S                        @.CurrIcon := "load";
7 E. ^: P. O5 p4 n                        GlobalDistObj := part.globDestination;1 B$ s! n5 ]( s9 a4 |. p: p0 J
                        assignLObj := rgmanager.rgAssignL;
! D5 l0 G1 |1 W, Z6 j0 V                        row := assignLObj.getRowNo(GlobalDistObj);1 P+ d9 d3 n) \4 t
                        if Row = -1 then -- since 70
" [1 H& [+ i0 D9 B8 i                                if lan=1 then- w2 b) N7 a* n! |' o- ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' O$ G* q4 K: O/ G) i4 P
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" Q: g& j$ g* m4 s2 H5 Y                                else
/ f$ W0 q2 C/ i. \4 p$ a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 s$ Y4 U3 r6 O" V6 h/ w3 n
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 x2 j  U: p. {
                                end;# ~! o) z  r7 s% l" ^
                        else
; H2 y# G$ P. n, w                                @.Destination := assignLObj[1,row];" i' z7 H* Y9 W- i
                        end;                       
& e) k/ R6 X2 l  Y                        newDirection(@);
0 Z2 V0 Z7 f- Z: J8 V                        @.HasOrder := true;
" [+ f! |9 v& L3 n                end;3 w7 y3 P$ V) g
        end;
5 A& h2 ]* }7 B% v! Fend;        -- of the method
$ }2 ]5 v  u/ o  r4 N: }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
# x+ x+ W% z! h
' A1 P' q- \1 v9 z3 {- W这是AGV_putin中arrive的method。
( i! O5 J0 {1 A1 R) l4 ^' E) s1 R- Q) l$ c! F+ X
当到达物料速度越高时,这个报警更多,
# @' \' {* T( S( [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ p3 \6 L! g; x  E  Y' G7 e" i) Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 M/ I' ]& G& u6 ~* e& D% y, a6 G+ Q1 n. z: N
另外一个小建议,就是move,所有的move都可以这样
5 l. e0 f# t6 Q4 oif not move() then debug end
! f0 z( i) [4 x4 z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; v' o; B5 p3 w$ |- {
plant simulation中的free libraries有AGV模板,5 C; p9 w9 P( h" g0 R4 u
里面也有案例。4 W; J: s$ w- R' ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 A7 g$ f6 c  F9 f0 m3 D2 m

( `, w7 ~' [* g* E4 s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & P8 Z2 a8 \% m3 o$ t
5 g$ A% P! `) V1 u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 B% T5 r2 K6 X; o/ |
这是AGV_putin中arrive的method。+ [3 g6 x+ F" K+ f! N4 x

+ q2 ?0 c- d% Z& _% W当到达物料速度越高时,这个报警更多,

! m8 D6 m( O; p6 u2 W" S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-8 19:04 , Processed in 0.023169 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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