Класс: matlab.DiscreteEventSystem
Пакет: mATLAB
Действие события, когда таймер завершается
[entity,events]=timer(obj,storage,entity,tag)
[entity,events,out1,...]=timer(obj,storage,entity,tag,in1,...)
[
задает действия события для того, когда запланированный таймер завершается.entity
,events
]=timer(obj
,storage
,entity
,tag
)
[
задает такие действия события, когда блок имеет один или несколько портов входного сигнала и/или выходных портов сигнала.entity
,events
,out1
,...]=timer(obj
,storage
,entity
,tag
,in1
,...)
Передайте сущность, когда таймер завершится для объекта obj дискретной системы событий.
function [entity,events] = timer(obj,storage,entity,tag) % Check which timer of the entity has expired, and forward the % entity to the next location accordingly. switch tag case 'ServiceComplete' entity.done = 1; events = obj.eventForward('output', 1, 0); case 'Timeout' entity.done = 0; events = obj.eventForward('storage', 2, 0); end end
Этот пример использует пользовательский блок системы хранения сущности с одним входом, двумя выходными параметрами и запоминающим элементом. Сущность типа Part
с TimeOut
атрибут вводит устройство хранения данных пользовательского блока, который будет обработан. TimeOut
определяет максимальное позволенное время вычислений частей. Когда часть вводит устройство хранения данных, два события таймера активируются. Один таймер отслеживает время вычислений части в духовке. Когда этот таймер истекает, сущность передается выходу 1
. Другой таймер действует как отказоустойчивое и дорожки, если максимальное позволенное время вычислений превышено или нет. Когда этот таймер истекает, процесс отключен, и сущность передается выходу 2
.
Для получения дополнительной информации смотрите Пользовательский Блок системы хранения Сущности с Несколькими Событиями Таймера.
classdef CustomEntityStorageBlockTimer < matlab.DiscreteEventSystem % A custom entity storage block with one input port, two output ports, and one storage. % Nontunable properties properties (Nontunable) % Capacity Capacity = 1; end methods (Access=protected) function num = getNumInputsImpl(~) num = 1; end function num = getNumOutputsImpl(~) num = 2; end function entityTypes = getEntityTypesImpl(obj) entityTypes = obj.entityType('Part'); end function [inputTypes,outputTypes] = getEntityPortsImpl(obj) inputTypes = {'Part'}; outputTypes = {'Part' 'Part'}; end function [storageSpecs, I, O] = getEntityStorageImpl(obj) storageSpecs = obj.queueFIFO('Part', obj.Capacity); I = 1; O = [1 1]; end end methods function [entity,event] = PartEntry(obj,storage,entity,source) % Specify event actions when entity enters storage. ProcessingTime=randi([1 15]); event1 = obj.eventTimer('TimeOut', entity.data.TimeOut); event2 = obj.eventTimer('ProcessComplete', ProcessingTime); event = [event1 event2]; end function [entity, event] = timer(obj,storage,entity,tag) % Specify event actions for when scheduled timer completes. event = obj.initEventArray; switch tag case 'ProcessComplete' event = obj.eventForward('output', 1, 0); case 'TimeOut' event = obj.eventForward('output', 2, 0); end end end end
blocked
| destroy
| entry
| exit
| generate
| getEntityTypesImpl
| iterate
| matlab.DiscreteEventSystem
| setupEvents