设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7321|回复: 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'" [' e; n; |8 g
*/
& u( l, U4 J! B0 D* }) W0 _8 m$ Ais. c- z2 M+ }6 N" x+ V, r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ n% s: a2 O7 c) jdo
' j6 O+ c4 L4 t        Lan := rootfolder.Internal.Tools.AOLlanguage;  ^3 n2 ]7 t+ k/ C
        if current = @.Destination -- else return
7 P& J. N; n+ F6 b1 I9 c        then
2 s3 _5 E$ T0 x( Q                @.Destination := void;
" S( O/ ]7 J  `8 R                if @.occupied then/ l9 A: d: ^; ~* S1 ]
                        part := @.cont;( j, Y7 u9 e9 `& n/ C+ g6 R. _/ f2 y
                        @.transpOrder := void;
4 [+ E2 ?7 d  |6 S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# A" {3 I2 E6 w/ e! {7 r- X) G
                                @,root.eventcontroller.simTime);
7 Y/ H' c5 M% x8 h8 R9 ~                        @.HasOrder := false;' M7 I3 c' }  v; z( Y  h# m
                        @.DrivingHome := true;% o* L  l  ^5 g, _8 g2 p- w
                        rgManager.tryToStartTransOrder;; u, d: a  M7 z) v; @
                        if @.Destination = void
# s$ X% I' A5 G0 T: R                        then -- no transport order for vehicle @8 j! `( U7 U* m8 C
                                @.Destination :=
4 d. k& Q8 @9 k' [$ k                                rgManager.nearestFreeStation(@,track.~);& G- `4 ]9 s2 |+ {0 b
                                newDirection(@);   0 p$ ]8 O& c& e$ B* }+ g7 T) t
                                if @.Destination /= void then$ g$ h- [4 B+ \# [
                                        @.Destination.NumReservation :=& j+ i/ Y8 P. h
                                        @.Destination.NumReservation + 1;
( }) V" H: S8 ^' q# e                                end;
, i5 ^7 L" H+ e1 r* W& f8 z                                @.CurrIcon := "drivingHome";
% I- c& |, {. r: N) O8 K/ G. r) u                                @.DrivingHome := true;
/ J+ j& n! X/ c                        end;
1 o3 S3 Z7 ]; j- U/ ^8 |/ T# W5 ]& c* f                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 S+ N$ u- s' B9 z/ L
                        part := @.transpOrder;
% F( o. i) a) w. x: g                        part.move(@);-- load part9 w2 F) F. Q; o& M/ e+ m4 ?
                        @.CurrIcon := "load";5 b: H% B; P* B4 K* d% ?( ~. V
                        GlobalDistObj := part.globDestination;
9 z/ E5 j5 j) J- d$ k                        assignLObj := rgmanager.rgAssignL;. E+ D2 n$ G# }+ h! v4 X
                        row := assignLObj.getRowNo(GlobalDistObj);! _7 w5 N' s4 j  H$ D- m
                        if Row = -1 then -- since 70
9 g! Z$ B5 n$ n% I$ b                                if lan=1 then, r! }, p2 ]( Z  ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ [; w+ \1 C3 ]  K3 [7 `4 m                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 b& u0 O& a0 Q" b1 r+ K, F                                else
9 Y6 ~$ _! K1 j+ t$ J5 Y: N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) D/ L0 a. ~3 @1 s                                                to_str("in docking station: \"",?.~.name,"\""));                               
, K/ w% q* p; D0 [                                end;
% N3 I( Y5 p2 f& m4 ^& H                        else
* z; ]* {) i# d- I  q" j! |+ _' V+ C                                @.Destination := assignLObj[1,row];9 J- b; H( [, k2 O5 l
                        end;                        $ L( e: U0 C5 q0 ~
                        newDirection(@);, ~' }3 a7 G# y. g
                        @.HasOrder := true;
' Q; S0 B8 u, w3 a* C& b1 H+ m                end;
; z& v+ b3 C; g- P0 |; s        end;
7 J( d" {+ f& F$ U5 A2 f. K+ e; Oend;        -- of the method# U4 c+ g6 x% P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( x% a' ]0 c/ w; m1 d1 V. H* S2 k* P- c3 l+ F' k
这是AGV_putin中arrive的method。1 r8 b% i7 ~( @1 b
. ?( V, n" C* \* r9 X
当到达物料速度越高时,这个报警更多,
& c& w8 @# S4 n# Q: f& W, R可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 B. m/ k7 n; Z( F3 ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( f8 ?; s- k3 ?0 u
1 c+ _! N( |2 {% Q$ R5 P另外一个小建议,就是move,所有的move都可以这样
1 |9 O0 F8 j* d) Iif not move() then debug end/ g( A7 a1 F4 B2 d& z4 p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) n- Z: c6 O. \  x9 g1 H
plant simulation中的free libraries有AGV模板,
& E- C8 _/ p& x2 K$ }里面也有案例。$ {* R) P- Q* q" w4 P: `* ?$ f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, R3 f% Z2 L$ c( v! X' X
) r9 ~! C# t3 r# H# }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " G8 S; p( [: Y* o: a

$ @4 e3 }6 q8 `/ b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, Z$ a2 V8 K7 n3 \+ N这是AGV_putin中arrive的method。+ }7 p% D: U' B" I& R& D! v* `
8 `' p& G* J( d: n
当到达物料速度越高时,这个报警更多,

# ?0 V- c5 S. r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-3 23:54 , Processed in 0.022983 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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