设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3386|回复: 8

[求助] 几个小问题,寻求帮助,谢谢各位

  [复制链接]
发表于 2015-1-22 17:50:28 | 显示全部楼层 |阅读模式
本帖最后由 qzm555 于 2015-1-23 10:47 编辑 % R4 z) I- w7 A4 y+ j0 l
! h  k3 t& p0 p+ E
接触eM-Plant半个月,几个小问题,希望得到指点,
$ w- r& P3 ]0 v2 ~9 G/ I1 a5 `9 C" `( y% `) t: ~, D; s4 H
1.SimTalk语言什么时候应该大写,大小写错误对程序运行有无影响;
- P( h" o7 T8 Y& w2.若某Transporter上载有数个无差别的Entity,如何选取其中一个进行装卸操作;
8 D+ V$ ?" b. U  ]% _$ I9 {3.某SingleProc里有一Transporter,Transporter上有一Entity,Entity有一自定义属性为Color,请问在语句中引用Color的路径是什么(SingleProc.cont.cont.Color 可以吗?);
' U: S. Y1 D/ k5 I4.如何定义一个全局变量,使它的值永远等于当前的仿真时间(i:=eventController.Simtime 可以吗?)) S6 k3 j3 K& `1 l+ j1 {
5.Assembly进行组装作业时,如何实现零部件自定义搭配,即第一次组装用1个主料3个辅料,第二次组装用2个主料4个辅料(将一个自定义Method指派给Assembly对象的入口 可以吗?)
0 D' b& [" G8 F! ?( r" p
' |! @7 c( |) b
) B4 I0 B6 ^0 M6 y  q
谢谢了
发表于 2015-1-22 20:41:57 | 显示全部楼层
1.simtalk不区分大小写,但要注意不能用SIMtalk的保留字;! \4 e* w  r0 v! v/ r
2.for i := 1 to transporter.numMu loop3 `( d) a3 L- B. l' W1 _/ E! E
       transporter.mu(i).move;
5 S" O( n9 a% f# O" ^   next;
! C- x3 `% n' x( _9 O) }- P3.貌似可以,你可以自己试一下;! m4 X& I/ Y/ e
4.好像不能,但是eventController.Simtime本身就相当于一个全局变量,可以直接用;6 l$ K3 V) A8 j$ R
5.可以,每次组装作业前就触发Method,使得主料的个数与辅料的个数发生变化;比如服从均匀分布,正态分布等等,当然个数要取整;6 m2 H3 a! W, \

评分

参与人数 1仿真币 +20 收起 理由
taoyifei2000 + 20 赞一个!

查看全部评分

 楼主| 发表于 2015-1-22 21:42:39 | 显示全部楼层
11111 发表于 2015-1-22 20:41
2 O0 w; B7 T7 T+ ^. {# P1.simtalk不区分大小写,但要注意不能用SIMtalk的保留字;
( y& D" O3 w7 t, B) p/ U2.for i := 1 to transporter.numMu loop5 G$ r; v0 g4 K& D3 O  o3 L& N" `
       ...

, M) c5 D9 Q3 ]" \* D7 X) W# d5 W谢谢您~
8 W5 r9 Q7 ?( r2 s2 G8 U. t$ q8 b' I) q8 k6 O  w
关于第5个问题,今天下午又琢磨了一下,疑惑重重,再请教几句,
6 l" s9 c5 d# z入口触发的本质是当有对象进入Assembly时调用一段Method对吧?1 W$ p1 V0 `# W' q
但是Assembly是要wait until前续节点的主料和辅料都ready的时候才会开放出口,这个时候主料和辅料一同进入Assembly,既然主料和辅料都已经进入开始组装了,再去触发一个用来规定主料和辅料数量配比的Method是不是就没用啦# c& p! m& M* {8 T0 N- d& J
打个比方,就好像一个女人开门进屋的时候,触发了一个规定只有男人才能开门的程序,那这段程序就没意义了啊
' [: r: `9 D! y( P
  ~/ S% U( i: z假设我的疑惑是错的,那么您说可以让主料和辅料服从一定的分布函数发生变化,如果我想实现按表变化呢,每次组装都按预设好的值?
( }! v+ N/ `7 t# Y+ g, K+ k' a. e" o: g$ U) L
不胜感谢
3 G) F' z) X9 b8 `, P
发表于 2015-1-23 09:06:15 | 显示全部楼层
qzm555 发表于 2015-1-22 21:42
# B$ C$ J+ r1 n谢谢您~
! P  S' \+ p" \4 M( B
" ~# u) x% A! {0 T5 A+ Q% O1 R关于第5个问题,今天下午又琢磨了一下,疑惑重重,再请教几句,

. _$ D! q# k5 v你可以在上一次组装作业结束时触发程序将下一次组装的主辅料数量确定也行啊;+ x% c  O# s( O
       关于数量按预设值来也可以实现;你将预设值放在表中(两列:主料、辅料),在设定一个全局整形变量(例如命名为N),每次组装就取表格第N行的预设值,加工完了N就加1,下一次组装就取第N+1行的数据,依次向下......( C# }8 G: H$ i8 F  p) N4 Z: a1 y
 楼主| 发表于 2015-1-23 10:45:33 | 显示全部楼层
11111 发表于 2015-1-23 09:06 * f4 d. T* P: X# ?  q* _
你可以在上一次组装作业结束时触发程序将下一次组装的主辅料数量确定也行啊;
7 W0 Z+ d- N: }) r  J8 S8 F       关于数量按预设值来 ...

( }0 s/ y/ Y- O大神将我今天上午没有抢到mate7的阴霾一扫而光 谢谢~
 楼主| 发表于 2015-1-24 17:36:22 | 显示全部楼层
11111 发表于 2015-1-23 09:06 0 h. z: F0 C7 T- e1 Y3 N
你可以在上一次组装作业结束时触发程序将下一次组装的主辅料数量确定也行啊;5 U" `' u) l/ z0 A4 [4 H, t
       关于数量按预设值来 ...

1 n3 Y. ?( S* F. O+ s9 }抱歉打扰一下,请问如果有一个method想要在仿真期间每秒都运行一次,应该怎么做呢,想用eventcontroller调用,但是不知道该怎么做
发表于 2015-1-25 11:43:21 | 显示全部楼层
qzm555 发表于 2015-1-24 17:36
9 ~" l0 B9 V$ p# d. m3 @抱歉打扰一下,请问如果有一个method想要在仿真期间每秒都运行一次,应该怎么做呢,想用eventcontroller ...
/ c, ^) J  _! r0 l" E; {
可以在程序末尾加一句
9 U! v; C: H8 S9 b9 O3 n/ _self.methcall(1);( g) s% {; f, K5 C7 N. H# n! e
意思是每隔一秒自我调用一次,即每隔一秒再执行一次程序本身;
 楼主| 发表于 2015-1-25 12:05:35 | 显示全部楼层
11111 发表于 2015-1-25 11:43 / o' ]- i. S$ c& G
可以在程序末尾加一句& c: ~( `% r5 Q9 n
self.methcall(1);2 ^' @, @- ^# y
意思是每隔一秒自我调用一次,即每隔一秒再执行一次程序本身; ...
7 d, c3 N2 M; [! g+ T
谢谢啦~
发表于 2015-1-26 19:33:30 | 显示全部楼层
qzm555 发表于 2015-1-25 12:05
# u2 |! H% c' e* n* ~7 p+ z( d0 H谢谢啦~

7 {* s6 i3 I# T1 K: o- s! P4 y# D不客气
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 18:30 , Processed in 0.017854 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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