Plant Simulation 常用的代码
plant simulation 常用的代码
清空控制台
1 | clearConsole |
统计故障时间
1 | if ?.failed 修复时间统计[1,修复时间统计.ydim+1]:=?.getDisruptionendtime-eventController.simTime |
查找表格的内容
1 | var m,n :integer |
打印受限制的元素个数
新建Method,写入如下代码:
1 | print numOfLimitedObjects |
定义一维数组并打印
案例一
1 | clearconsole --清空控制台 |
案例二
1 | clearconsole --清空控制台 |
定义二维数组
1 | clearconsole --清空控制台 |
使用嵌套循环打印二维数组所有元素
1 | clearconsole --清空控制台 |
switch case的用法
注意:simtalk 2.0 已经弃用了inspect .. when ..的句法,
旧的用法如下:
1 | is |
新的用法
1 | var n : integer := 1 |
while循环
1 | var i : integer := 1 |
repeat循环
类似于c语言的 do..while..循环
1 | var i : integer |
For循环
1 | var i : integer |
Plant Simulation里输入数据
使用prompt功能
The function prompt asks the user to enter data.
1 | -- method for querying the number of pallets in a model |
举例:使用用户输入的值来计算圆的周长
用户输入半径
1 | ->integer --定义需要的返回值是整形 |
计算面积的方法
–定义一个计算园面积的方法
1 | var r :integer |
以上需要两个方法来实现计算。以下可以在一个方法内实现:
1 | var l : real |
传递两个参数
传递的方法:
1 | param m , n :integer -> integer |
返回原程序
1 | var s : integer |
传递1个参数
程序1
1 | var L : integer |
程序2
1 | param n : integer -> real |
waituntil 和 stopuntil
1 | waituntil condition [prio number] [wait timespan:time] |
1 | prio number 中的number越大,优先度越高 |
其中prio 3的级别是最高的。一直停止到缓冲区空,所以缓冲区会有

#设定设备或者工位的定期保养策略
打开工位或者机器人,在故障里新增Failure,填写如下,
如果故障持续时间duration为0,则表示没有故障。如果不填写间隔,则表示只出现一次故障。
- 开始start:即仿真开始多久后开始故障。
- 间隔duration:每间隔多久发生故障。
- 持续时间interval:故障的持续时间,即维护时间。
- 下图即为每1000h的工作时间,保养3h。


故障时间选择:
- 仿真时间simulation time:与系统的仿真时间有关,而与其他,如工作站的作业时间无关。
- 操作时间operating time:For this setting,Plant Simulation consumes the time you have entered as the interval, if the object is not paused (working or waiting).
- 处理时间processing time:For this setting, Plant Simulation consumes the time you have entered as the interval while the object is working (not paused, waiting, or unplanned).

还可以通过设置多个Failure的参数来使模型更加的贴近生产。
- 设置TMP(Total Productive Maintenance的缩略语,中文译名叫全员生产维护,又译为全员生产保全)为每周保养1次,1次2H.

- 工装更换时间,每3H,更换一次工装,耗时20min。

- 随机故障,按照RO,95%,故障修复时间10min.

如何设置缓冲区的大小?需要学习
重置数据表的命令
移动零件至传送带指定位置
1 | @.move(传送器11,3) |
删除表中的主数据
此命令为删除表中的数据,而非删除表
1 | table.delete |
transfer station的用法
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 记录我自己!
评论