计时器的实现方法
在 Plant Simulation 中经常会遇见需要间隔一段时间执行一个操作的问题,例如间隔一段时间生成一批任务,或者间隔一段时间统计数据信息等。所以就会需要用到计时器。
计时器的实现方式有多种,这里列出几种计时器的实现方式。这几种方式的模型可在文末下载。
方法1:利用Trigger进行计时
Trigger是 Plant Simulation 软件自带的计时器,可以根据设定的时间触发相应的方法。
优点:使用方便。
缺点:时间间隔为固定时间,无法使用随机时间。
方法2:利用Source+SingleProc+Drain进行计时
利用Source产生MU,让MU触发相应的控制方法。根据SingleProc的处理时间,决定触发控制方法的时间间隔。
如果触发控制方法的时间间隔为固定时间,还可以不用SingleProc,利用Source可以根据时间间隔产生MU的特性计时。
优点:使用方便。可以根据需求修改时间间隔。
缺点:需要增加三个对象,模型外观不简洁。
方法3:利用 MethCall 使用程序计时
MethCall 可以在一段时间之后触发一个Method,使用方法为:
ref(<obj>).methCall(CallAt:<time>[,Argument1:<any>, …]);
示例:ref (Method). MethCall (10, “a”) //在10秒之后触发Method这个程序,传入值为”a”,没有传入值可以不填
优点:方法灵活,可以自由设定时间。完全在Method内操作,模型简洁。
缺点:使用较为复杂,需要一定的基础,容易产生死循环。
仿真模型示例:计时器-SimTalk 1.0-Plant Simulation 11 TR3 计时器-SimTalk 2.0-Plant Simulation 13.1