设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6270|回复: 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'
, V9 t5 I4 n  X" P1 E% {*/) H: W2 O+ b/ f
is! w3 y- B; i+ q% x& D
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* I' `) [) f- R: \" e) `
do; @1 P% Z0 d$ A1 ]
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! M5 ~8 y+ k4 D8 U# m& U8 c8 B: |        if current = @.Destination -- else return. @2 k8 M+ e# W% J
        then
. }8 u  h  B: R0 r5 _% |+ C" S                @.Destination := void;
- E8 J6 d+ r3 A. r' i. y+ c- j                if @.occupied then7 q9 b3 {( N# C2 p/ m
                        part := @.cont;! U! [2 g' B' o( [
                        @.transpOrder := void;1 X" C! _! e, w: H4 P  p8 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, F; W9 w$ U' Q: J6 O) R$ z
                                @,root.eventcontroller.simTime);. V& ~3 b! q4 V5 j) Z5 i
                        @.HasOrder := false;
. R6 m5 ?- l3 X2 U. A, k/ A5 W                        @.DrivingHome := true;5 t; N$ [' l2 ?, s
                        rgManager.tryToStartTransOrder;. a* i! L. n2 B* G4 y
                        if @.Destination = void3 L) f* l: q  e* Q# ?
                        then -- no transport order for vehicle @2 U/ I: q9 \. R0 }+ Z% g' J
                                @.Destination :=
+ V! P% \* l0 ^0 h2 R1 }! f                                rgManager.nearestFreeStation(@,track.~);5 y% ]% j# `" H6 d. I7 |
                                newDirection(@);   : l3 N, N3 C9 I0 z
                                if @.Destination /= void then7 h. m! J  O* T5 {" k& `4 Y; ?
                                        @.Destination.NumReservation :=0 e0 X$ `) `/ `3 E6 O$ Q
                                        @.Destination.NumReservation + 1;
9 l( y  W3 F2 C) f& I                                end;
7 B1 c% X& P3 x; B                                @.CurrIcon := "drivingHome";9 ]: i3 \5 v( P! r1 H- \- X3 t
                                @.DrivingHome := true;
4 C+ u; a- I7 F9 Q& L8 P                        end;8 Z' r3 @1 M1 k3 m. A* o( Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& x  d7 I3 g3 L! ^1 [                        part := @.transpOrder;0 q% |5 b' w4 m0 f  t, q
                        part.move(@);-- load part
! ?7 c7 \& ?) E0 Z                        @.CurrIcon := "load";3 B: A2 r% _4 S7 f; b/ R1 u- o
                        GlobalDistObj := part.globDestination;3 E0 Q: Y8 ]8 v, p
                        assignLObj := rgmanager.rgAssignL;2 N- k* M  R* `/ p) L
                        row := assignLObj.getRowNo(GlobalDistObj);
. w; x& p: L! L. J' T                        if Row = -1 then -- since 70* x8 C% }1 F' a- ]; R" y5 T+ R. o0 A
                                if lan=1 then" T4 y; `* @) q; ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ R5 Q: J$ C5 {3 _. H/ \
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# B( I1 p* b% v: \/ C
                                else( A' q  r9 D, L# R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" U, A$ s  u4 m# x                                                to_str("in docking station: \"",?.~.name,"\""));                                # A3 {) S3 n( B
                                end;; @1 e1 `& M3 \% ~
                        else
! o6 b" E. J2 v( W  `5 {! I                                @.Destination := assignLObj[1,row];3 z- |2 d9 z, l( E% L
                        end;                          Q9 F7 a# Q- _; L9 W
                        newDirection(@);" `4 C, C9 V9 i
                        @.HasOrder := true;
8 \9 o4 m- A: \/ \" L2 C                end;1 ?" i- ^" q0 ^3 Z
        end;, m5 }1 Z' ~* O1 u
end;        -- of the method6 T) P2 J2 d# d+ Z/ G, _4 B- v8 p+ u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! K2 }: N' ~6 C: k9 l4 i5 k
) [2 q( i2 j1 H
这是AGV_putin中arrive的method。3 p- H* s6 W: f- [2 y
9 t2 p2 C; v2 o( }. v* F
当到达物料速度越高时,这个报警更多,7 h/ }1 C! X1 q! f. B7 ?2 Z2 |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 _* }- [/ g" s' I
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 f' K. W) l- s3 n: k8 Q* ^
' D0 e8 E" D5 s* C4 J& R另外一个小建议,就是move,所有的move都可以这样) A. w# E) ^7 L: s% M; m. r! G
if not move() then debug end
6 A. t* B0 g+ b9 A& `( m这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ r# e' t' c3 }1 z9 Splant simulation中的free libraries有AGV模板,! {$ q/ W6 a) b4 `8 A: |& `, h
里面也有案例。" P9 J  h) y; {/ U
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) K& p$ H! K/ l  }( }7 V5 K+ w+ r5 R

0 r1 F6 ]) O3 d5 y1 Q9 H0 M' `. ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ h; e8 Y5 M# f9 X+ e1 ?6 Z1 |" g/ Z3 C$ y; R) d0 j7 U( s5 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' t0 u; R# h+ r7 J# N! j+ G这是AGV_putin中arrive的method。
6 O' J2 ~8 E8 Z9 L$ f- X; p" y8 \' v7 h' r. p+ }0 P3 J3 ^
当到达物料速度越高时,这个报警更多,
9 m* H6 u* m. b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-28 02:12 , Processed in 0.014241 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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