设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8404|回复: 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'
4 Z; A  M. S1 n  I2 K/ ?/ D$ ?. q*/% H8 ^& f2 @; I4 e4 d) V( ^
is
% ^1 y& A8 _2 [9 H* h  d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& Y1 N3 d6 [1 ?! L; A4 s0 n
do
1 f. a) K+ ^0 t' g  J0 n3 z        Lan := rootfolder.Internal.Tools.AOLlanguage;: ~6 R7 v3 ?' H7 U' l, ^) c
        if current = @.Destination -- else return" `1 J' e+ M6 o7 G+ d" h
        then) ]* X; m& `& H# \1 I) {
                @.Destination := void;
4 r4 t0 ~0 C) Y- m* Q+ W2 Q                if @.occupied then
2 @+ X6 I) s# o                        part := @.cont;2 O, H7 a. {) u1 \( y" G+ ~
                        @.transpOrder := void;% ]  W& Q# C. X3 s. f* b6 C' J
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: t' I! {! T* _- K0 N6 f$ m                                @,root.eventcontroller.simTime);
5 h9 S9 Z) f3 u& t: l                        @.HasOrder := false;
# L; X  R- Z. f                        @.DrivingHome := true;
( w4 ]+ {+ K! x! H- m$ K                        rgManager.tryToStartTransOrder;* P5 u3 [- u% G# }/ ?
                        if @.Destination = void
1 p7 G- Y% _. C0 _                        then -- no transport order for vehicle @
0 S* u7 Y& K& o% D                                @.Destination :=2 ~4 }7 H% r6 l
                                rgManager.nearestFreeStation(@,track.~);
! D" }  j8 x8 K; \- `4 `% C                                newDirection(@);   
; c$ r8 ?: T* C: q/ z+ W9 i                                if @.Destination /= void then: h0 j5 k+ g; J6 N
                                        @.Destination.NumReservation :=
- J' z( R! z8 g% L                                        @.Destination.NumReservation + 1;5 l5 U- ?9 W8 g- V6 L
                                end;) X+ Q6 o1 J+ v* ~& ?
                                @.CurrIcon := "drivingHome";% O- u; [; t" P0 h5 W
                                @.DrivingHome := true;
: Q: t# y5 t8 Y) x" ~% X8 F                        end;: p( R# z' Q: z* S: R' u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# D: V0 E2 C# X) B+ k. w- W
                        part := @.transpOrder;. j3 B8 k! I" S5 `
                        part.move(@);-- load part6 N' C& g( S* T; h3 ]
                        @.CurrIcon := "load";
9 @0 m( G* _2 d/ A8 s& @/ H" \& ^                        GlobalDistObj := part.globDestination;
. w+ O) z' h% g% [9 {* L! g) l/ Q                        assignLObj := rgmanager.rgAssignL;
! \% p# m+ h4 W5 a# [                        row := assignLObj.getRowNo(GlobalDistObj);
, ^5 v0 b$ W% w) B0 H                        if Row = -1 then -- since 70+ L, f5 h9 Y$ H, m% N8 }; z
                                if lan=1 then. C! g) N6 x* u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% b2 w; s' N3 q( h- m4 [( R5 W                                                to_str("in der Andockstation: \"",?.~.name,"\""));" T# `% W% ^% q
                                else& ~5 A1 F" [9 Z2 j# |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  S5 X( v' m1 a9 H% z+ i7 [4 V                                                to_str("in docking station: \"",?.~.name,"\""));                                ) F4 q4 _# t4 ?) T
                                end;
. n$ E% i& N6 ^3 X7 A                        else
* }) z3 u4 W; b+ G3 k6 |% C                                @.Destination := assignLObj[1,row];9 e+ o8 u# C2 b5 @1 s- @
                        end;                       
9 H5 _( ?! r* s- s                        newDirection(@);$ v' O: W; ^) s* g
                        @.HasOrder := true;
, L( Y9 U4 I- E! }9 W5 M                end;2 E' h' W( P' y9 C, K$ a6 Q
        end;
. j3 ~( i0 R; j3 `$ Eend;        -- of the method4 B" G* ^8 j( M  E0 Y% v6 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 {1 F; E* i3 C, g# C) x

- c; {: k/ k5 F# _* a这是AGV_putin中arrive的method。! k) b. M5 N5 q( P: F2 P1 ~9 W

4 R( x- `2 m1 f2 X5 ^5 P当到达物料速度越高时,这个报警更多,
8 Z0 K2 X- u, x. M' {8 d- X' W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: W7 P! m* O, b& U* X. U- D6 F6 S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' m8 Z1 |1 C/ O1 s  v0 G: ]* i$ g3 {. S5 j7 h$ e8 k0 y4 U8 {5 z8 ]
另外一个小建议,就是move,所有的move都可以这样
" k% N, Y# f* F! Tif not move() then debug end
8 B  E( P4 Q' j7 C6 n. G7 a这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  j$ k% f% e7 \9 z$ {" T& {& e+ eplant simulation中的free libraries有AGV模板,. T, x5 b$ v; r5 h4 D, g" n
里面也有案例。
' ^3 C$ O+ G# F0 Q$ ]+ S  v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. C1 h/ d6 @+ A$ j0 a1 M
) q4 m" y8 M* b4 b( i我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( h4 n7 T8 k1 |

$ ?3 c5 q6 y2 v2 R6 B7 W/ M那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  ?! {- ]# K3 [/ V这是AGV_putin中arrive的method。% }; t1 i" v/ d3 ]  H4 w3 [0 T

) e* B1 G9 q3 }/ c( P$ s) k当到达物料速度越高时,这个报警更多,

  z+ ^3 d2 n  \4 f/ E5 Z* X* p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-1 23:32 , Processed in 0.015654 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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