设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6533|回复: 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'
% V2 l5 j9 P* _. e2 [; d*/
5 X( x; J% F, r+ S3 p: l6 tis
. V4 O& L9 \. n: n$ b* |* n        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. b& l1 }0 x" d
do+ i2 i' K' g) o& B
        Lan := rootfolder.Internal.Tools.AOLlanguage;" C5 h6 G3 E0 J. U% v' z& p
        if current = @.Destination -- else return3 G% R# u0 A8 h# @
        then0 X7 W: s7 V4 Z8 c% `% u0 J& f# g
                @.Destination := void;) U8 X5 E) \# A9 x
                if @.occupied then
, A; z; y) a! v8 Z* L                        part := @.cont;( @* f. a, {; d
                        @.transpOrder := void;' j+ c, v" g0 E3 @' a2 L3 W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) `- T  B0 v( z4 L                                @,root.eventcontroller.simTime);* T  C6 Z4 }9 n' O+ J# u
                        @.HasOrder := false;% |% z" g( c5 Q
                        @.DrivingHome := true;3 ^0 U$ R9 e# ~- `% N
                        rgManager.tryToStartTransOrder;
& w& R- o1 q) `: F4 X  Y                        if @.Destination = void
8 I' Y7 r3 @) V6 O; N' r" o                        then -- no transport order for vehicle @7 H7 V  J& D3 m% Q3 K) j6 W: I  b
                                @.Destination :=% X' k& y8 \7 {4 Z* M# g) W: D
                                rgManager.nearestFreeStation(@,track.~);
& \5 v# u9 L2 f9 [1 \                                newDirection(@);   , W1 P) d  R0 ~" F/ ?
                                if @.Destination /= void then% d& U8 R+ @, {9 ]8 [
                                        @.Destination.NumReservation :=) D& y  K( h# J' T2 b) N
                                        @.Destination.NumReservation + 1;
! C4 a8 [7 q7 ]! ^1 Z1 ^                                end;* g& F6 {! `- Z* f1 R* E7 x0 f, F4 K
                                @.CurrIcon := "drivingHome";, L* b5 p3 `. g' t
                                @.DrivingHome := true;) Q* h5 }2 X; C, z" @$ [
                        end;
9 o  _  n! ^$ U6 O3 P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, o5 y* S  o! a! Z
                        part := @.transpOrder;
2 D5 y7 r! k4 Z                        part.move(@);-- load part" U4 @0 P' V, D: I" A5 x0 C# c
                        @.CurrIcon := "load";+ i& I1 n, `% E9 R
                        GlobalDistObj := part.globDestination;# H4 @! C+ @0 ^
                        assignLObj := rgmanager.rgAssignL;$ i: \  k& o+ F
                        row := assignLObj.getRowNo(GlobalDistObj);7 k, k) M& |5 i/ Y0 X4 [
                        if Row = -1 then -- since 70; o4 }1 W' E& N: k. [3 w
                                if lan=1 then5 }, o" R9 p' J5 z* v  p
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 f. ?: u7 s! m2 X                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 A# o8 K5 l- Y) w; |4 |
                                else
8 [7 O( Z) i9 I! z' k8 p5 W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. H# d7 |2 B+ y( m                                                to_str("in docking station: \"",?.~.name,"\""));                               
& C  P$ A8 M9 g7 y# f  ~! R- m: z                                end;
7 @1 C7 _, N0 t7 v                        else+ `0 N9 g+ I! Z
                                @.Destination := assignLObj[1,row];
/ b$ @3 s5 z& M                        end;                       
* Z& O: ~: l  U% h( l& W3 i                        newDirection(@);* r+ _: ^/ k) ^6 T0 `. `- C
                        @.HasOrder := true;+ H1 k7 y" j/ b; a
                end;
( [( S, p  X- V        end;8 ~4 \! S6 b% o- a8 M
end;        -- of the method
6 V; u: n3 c+ e+ `1 T- e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! y* \% }! w3 T' o: R* p3 F8 p
; x4 z2 i4 c) I这是AGV_putin中arrive的method。; W! l% K" c, ?; p) ^/ X
9 S; c% L" b0 i& q! U) `! V
当到达物料速度越高时,这个报警更多,
% |+ w1 @6 [% h9 Q, f可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. n' |6 J) B( w程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ K( G* c: t3 w# w6 @' j
8 M  ^9 F) g8 t9 |
另外一个小建议,就是move,所有的move都可以这样3 j# G9 a2 x+ `" j1 r+ O2 ~
if not move() then debug end
$ S9 u) V) @4 w& M! W2 w0 I9 ]! d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) x9 v) Y7 I9 e) e
plant simulation中的free libraries有AGV模板,
# C0 A$ ]3 e- V& |$ e4 B# I里面也有案例。6 y2 n! f' |" i# q$ t" ?, o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# j! I( o0 p$ \, P4 ~; s

+ \2 a* v  S7 ~1 `5 f' x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % l! R  V# ]7 a& O9 H# L8 C
; F! N+ a3 \  f& c5 z4 z( m6 O& g- r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 {% X# x5 d) X- A
这是AGV_putin中arrive的method。/ |+ M) ~: n7 X* s7 `( F; y

# h4 X1 ?* Z2 f& w- ]$ Y当到达物料速度越高时,这个报警更多,

/ ^2 T4 \2 F4 j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 10:08 , Processed in 0.018521 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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