班级:离散事件系统
包裹:matlab软件
计时器完成时的事件操作
[实体,事件]=计时器(对象,存储,实体,标记)
[entity,events,out1,…]=计时器(obj,storage,entity,tag,in1,…)
[
指定计划计时器完成时的事件操作。实体
,事件
]=计时器(目标
,存储
,实体
,标签
)
[
当块具有一个或多个输入信号端口和/或信号输出端口时,指定此类事件操作。实体
,事件
,出口1
,…]=计时器(目标
,存储
,实体
,标签
,内
,...)
离散事件系统对象计时器完成时转发实体目标.
功能[实体,事件]=计时器(对象,存储,实体,标记)%检查实体的哪个计时器已过期,并转发%实体相应地移动到下一个位置。转换标签案例'服务完成'entity.done=1;事件=obj.eventForward('输出', 1, 0);案例'超时'entity.done=0;事件=obj.eventForward('存储', 2, 0);结束结束
本例使用一个具有一个输入、两个输出和一个存储元素的自定义实体存储块。类型的实体零件
具有超时
属性输入要处理的自定义块的存储。超时
确定零件允许的最大加工时间。当一个部件进入存储器时,两个定时器事件被激活。一个计时器跟踪烤箱中零件的加工时间。当此计时器过期时,实体将被转发到输出1.
. 另一个计时器充当故障保护,并跟踪是否超过了允许的最大处理时间。当此计时器过期时,进程终止,实体被转发到输出2.
.
有关详细信息,请参阅具有多个计时器事件的自定义实体存储块.
类定义CustomEntityStorageBlockTimer%具有一个输入端口、两个输出端口和一个存储器的自定义实体存储块。%不可更改的属性属性(不可更改)%容量容量=1;结束方法(访问=受保护)功能num=getNumInputsImpl(~)num=1;结束功能num=getNumOutputsImpl(~)num=2;结束功能entityTypes=getEntityTypesImpl(obj)entityTypes=obj.entityType('零件');结束功能[inputTypes,outputTypes]=GetEntityPortSiml(obj)输入类型={'零件'}; 输出类型={'零件''零件'};结束功能[storageSpecs,I,O]=getEntityStorageImpl(obj)storageSpecs=obj.queueFIFO('零件',目标容量);I=1;O=[11];结束结束方法功能[实体,事件]=PartEntry(对象,存储,实体,源)%指定实体进入存储时的事件操作。ProcessingTime=randi([1 15]);event1=obj.eventTimer('超时',entity.data.TimeOut);event2=obj.eventTimer('处理完成',处理时间);事件=[event1 event2];结束功能[实体,事件]=计时器(对象,存储,实体,标记)%指定计划计时器完成时的事件操作。event=obj.initEventArray;转换标签案例'处理完成'event=对象eventForward('输出', 1, 0);案例'超时'event=对象eventForward('输出', 2, 0);结束结束结束结束