全球FlexSim系统仿真中文论坛

标题: 处理器的处理状态如何触发?仿真速度加快,动作出错。 [打印本页]

作者: qiush1234    时间: 2011-9-20 15:35
标题: 处理器的处理状态如何触发?仿真速度加快,动作出错。
本帖最后由 qiush1234 于 2011-9-20 16:14 编辑 ; ^5 n6 m) I, \& @

5 a# u  j6 s. d. }" l" z7 T如题:最近在做一个课题时。遇到一些问题。
8 ~% w9 ~1 h+ L4 \2 W, [  j- j0 t行车将工件吊运到在等待中的运输车,运输车将工件送达处理区域。
% i2 T: A! G. ]: E, }. X此时运输车不能离开处理区域。
$ |9 {! e) u# W# F0 u, T. B: b由顶升装置将运输车连同工件一起上升至处理位。
( R$ ^4 r/ y2 l  Z, T! ]9 R等处理完成后,运输车再次运送工件到卸载位。8 a5 [2 P' A) l8 ?
仍然由行车将工件吊运到储存区。
* X3 S% b9 N0 O- |问题1:; @" z' j* l( S1 V* D
下面是一段顶升装置上升下降的代码:
0 `6 Z2 m* f" ?# _& u# mif (msgparam(1)==1)
6 N/ C: C: B+ L" D{
1 M3 e9 q3 x+ E. H& A9 q0 d# \* Ginitkinematics(ki,sup);
/ u- _! s& C9 ]. W8 J7 zdouble time1=addkinematic(ki,0,0,fl,1,0,0,0,0,time(),KINEMATIC_TRAVEL);
. R  e, @! x' `5 B' Xsenddelayedmessage(zzc,time1-time(),current,1,0,0);( o- z/ i2 P2 Q) c3 v7 e( S
double tiup=time1-time();
; C+ d( N1 r& c2 ]: i6 _}" p4 b) c, g8 O3 W  T0 L7 y& x
else if(msgparam(1)==2)/ t( H6 _- F5 y* P" \
{2 D" {5 V' I0 c" m* l5 `4 \
initkinematics(ki,sup);
- x9 F( b3 n1 j, ?double time1=addkinematic(ki,0,0,-fl,1,0,0,0,0,time(),KINEMATIC_TRAVEL);( ]: s' x8 X/ w
double tidown=time1-time();
* X9 p# O9 r( ^}  S4 y  f" m0 e" ^6 k" Z* t! W
如何计算下降完成时间点-上升起始点的时间段?
" [4 K0 `, u  A7 z( O我现在是将这两个数值输入到标签中来进行计算。应该可以直接在代码中将它们提取出来吧。
; W2 z7 Z& R5 k问题2:仿真速度对比中,按500~1000倍的速度模拟没有出现问题,上升下降后Z轴回到0点。
- j" E, a3 z( ~( C5 S$ I/ e' c* j       当仿真速度调到1000倍以上时,动作出现错误,一直上升或是下降,不回到起始位置?8 M5 Y# {: G6 l! v, n
问题3:如何在临时物体不进入处理器的情况下触发处理器的处理行为?
作者: domcylai    时间: 2011-9-20 17:21

作者: xiexiaoch134    时间: 2011-9-20 19:06
问题1:可以通过getkinematics来获取对应的时间。
7 w7 U/ L  z6 K2 @问题2:flexsim中如果仿真速度过快,会出现动力学执行不完整的现象。
3 ?6 n; v8 I) z3 [( A问题3:没有临时实体的处理行为有意义吗?如果你的意思只是想触发处理器的某一触发器的话,sendmessage命令可以任意时间任意地点触发处理器。
作者: qiush1234    时间: 2011-9-20 20:15
因为临时物体经过处理后仍然是由运输车运输到卸载位。
' w% P( b' |$ F* M0 r进入处理器后如何让临时物体返回运输车,再由行车运输到卸载。
作者: xiexiaoch134    时间: 2011-9-20 22:19
请上传模型,不能因为人总会饿所以不要吃饭。
作者: qiush1234    时间: 2011-9-26 08:15
完善了模型后出现临时物体消失的问题:6 ?6 v: Z3 ^; t
流程简介5 X9 n; u' ~8 F5 N* T9 ?% P6 T4 x  U
1.自发生器644生成货物,
; X# s9 i: u% @7 E. _2.由行车吊运至暂存区578
& M9 \) B0 o. R: z) E7 t7 [' j3.暂存区578的到处理器579由任务执行器运输到位,上升后将临时物体移交至处理器579中。+ \0 p+ A; D! C
4.当处理器579处理完成后,又由任务执行器将货物运输至暂存区693,然后任务执行器中的升降装置返回。) K) P- e- X# L6 U" |) Z, ]
5.最终由行车将暂存区693处理完成的货物运输到下一个处理器。2 j" t0 b2 ~; t7 Z% ^$ G% {& t) Q1 Z

1 N6 K  a5 ?, R. X& y9 w当程序运行到第4条时临时物体出现了位置错误。(临时物体的位置:X:8655644.000,Y:0,Z:-3)3 j% M! w: j# w% _9 ~4 Z  E
直到进行到暂存区693时又出现了。
# G- j( x2 ^' A8 a6 B3 S我在任务执行器的进入触发中已经设置了临时物体的坐标的,为何临时物体还会移动到很远的地方呢?
作者: vivion    时间: 2012-5-15 15:25





欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3