Класс: matlab. DiscreteEventSystem
Пакет: matlab
Создайте событие приобретения ресурса
event = eventAcquireResource(resourceSpec,tag)
создает событие для получения ресурсов из существующих блоков Resource Pool. Можно задать имена и количество ресурсов для приобретения. Для получения дополнительной информации смотрите event
= eventAcquireResource(resourceSpec
,tag
)resourceSpecification
.
Если все запрошенные ресурсы недоступны во время выполнения события, событие сбора остается активным. Когда запрашиваемые ресурсы становятся доступными, событие переносится на немедленное выполнение.
При вводе сущности в элемент памяти сущность получает один ресурс типа Test1
. Тег этого события приобретения ресурса TestTag
.
function [entity,events] = entry(obj, storage, entity, source) % On entity entry, acquire a resource from the specified pool. resourceSpec = obj.resourceSpecification('Test1', 1); event = obj.eventAcquireResource(resourceSpec, 'TestTag'); end
В этом примере показано, как использовать методы управления ресурсами для создания пользовательского блока хранения сущностей, в котором сущности получают ресурсы от указанных блоков Resource Pool.
Предположим, что вы управляете оборудованием, которое производит детали из двух различных материалов, материалов 1
и материальное 2
, для выполнения порядков. После производства детали ее оценивают на предмет обеспечения качества.
Два метода проверки для контроля качества:
Тест 1 используется для деталей, полученных из материала 1
.
Тест 2 используется для деталей, полученных из материала 2
После производственной фазы позиции маркируются на основе материала для применения правильного теста.
Дополнительные сведения см. в разделе Создание пользовательского блока Resource Acquirer.
classdef CustomBlockAcquireResources < matlab.DiscreteEventSystem % Custom resource acquire block example. methods(Access = protected) function num = getNumInputsImpl(obj) num = 1; end function num = getNumOutputsImpl(obj) num = 1; end function entityTypes = getEntityTypesImpl(obj) entityTypes(1) = obj.entityType('Part'); end function [input, output] = getEntityPortsImpl(obj) input = {'Part'}; output = {'Part'}; end function [storageSpec, I, O] = getEntityStorageImpl(obj) storageSpec(1) = obj.queueFIFO('Part', 1); I = 1; O = 1; end function resNames = getResourceNamesImpl(obj) % Define the names of the resources to be acquired. resNames = obj.resourceType('Part', {'Test1', 'Test2'}) ; end end methods function [entity,events] = entry(obj, storage, entity, source) % On entity entry, acquire a resource from the specified pool. if entity.data.Test == 1 % If the entity is produced from Material1, request Test1. resReq = obj.resourceSpecification('Test1', 1); else % If the entity is produced from Material2, request Test2. resReq = obj.resourceSpecification('Test2', 1); end % Acquire the resource from the corresponding pool. events = obj.eventAcquireResource(resReq, 'TestTag'); end function [entity,events] = resourceAcquired(obj, storage,... entity, resources, tag) % After the resource acquisition, forward the entity to the output. events = obj.eventForward('output', storage, 0.0); end end end
cancelAcquireResource
| eventForward
| eventReleaseResource
| getResourceNamesImpl
| matlab.DiscreteEventSystem
| resourceReleased
| resourceSpecification