Статус документа
Статус документа

ГОСТ Р ИСО 15531-42-2010 Системы промышленной автоматизации и интеграция. Данные по управлению промышленным производством. Часть 42. Модель времени (Переиздание)

Приложение В
(справочное)

     
Листинг EXPRESS


В настоящем приложении приведен листинг на языке EXPRESS, текст и аннотация не включены.

В настоящем приложении приведена интерпретируемая на компьютере форма.

(*

JWG 8 N438

2005-01-16

EXPRESS Declarations for ISO 15531-42

*)

SCHEMA domain_property_schema;

REFERENCE FROM measure_schema

-- ISO 10303-41

(unit);

REFERENCE FROM support_resource_schema

-- ISO 10303-41

(label);

TYPE type_of_identifier_of_dom_gen_struct = STRING;

END_TYPE;

TYPE type_of_domain = STRING;

END_TYPE;

SUBTYPE_CONSTRAINT covered_range FOR domain;

ABSTRACT SUPERTYPE;

ONEOF (time_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT compl compos_discrcont_bounded FOR

domain_generic_structure;

ABSTRACT SUPERTYPE;

ONEOF (complete_or_composite_domain, discrete_or_continuous_domain,

bounded_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT complete_composite FOR

complete_or_composite_domain;

ABSTRACT SUPERTYPE;

ONEOF (complete_domain, composite_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT discrete_continuous FOR

discrete_or_continuous_domain;

ABSTRACT SUPERTYPE;

ONEOF (continuous_domain, discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT lower_upper FOR bounded_domain;

ABSTRACT SUPERTYPE;

ONEOF (lower_bounded_domain, upper_bounded_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT compl_continuous_discrete FOR complete_domain;

ABSTRACT SUPERTYPE;

ONEOF (complete_continuous_domain, complete_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT compos_continuous_discrete FOR composite_domain;

ABSTRACT SUPERTYPE;

ONEOF (composite_continuous_domain, composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT cont_complete_composite FOR continuous_domain;

ABSTRACT SUPERTYPE;

ONEOF (complete_continuous_domain, composite_continuous_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT disc_complete_composite FOR discrete_domain;

ABSTRACT SUPERTYPE;

ONEOF (complete_discrete_domain, composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT both_bd_compl_compos_disc_cont FOR

both_sides_bounded_domain;

ABSTRACT SUPERTYPE;

ONEOF (both_sides_bounded_complete_continuous_domain,

both_sides_bounded_complete_discrete_domain,

both_sides_bounded_composite_continuous_domain,

both_sides_bounded_composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT

low_bd_compl_compos_disc_cont

FOR

lower_bounded_domain;

ABSTRACT SUPERTYPE;

ONEOF (lower_bounded_complete_continuous_domain,

lower_bounded_complete_discrete_domain,

lower_bounded_composite_continuous_domain,

lower_bounded_composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT up_bd_compl_compos_disc_cont

FOR

upper_bounded_domain;

ABSTRACT SUPERTYPE;

ONEOF (upper_bounded_complete_continuous_domain,

upper_bounded_complete_discrete_domain,

upper_bounded_composite_continuous_domain,

upper_bounded_composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT

compl_disc_low_both_up

FOR

complete_discrete_domain;

ONEOF (lower_bounded_complete_discrete_domain,

both_sides_bounded_complete_discrete_domain,

upper_bounded_complete_discrete_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT

compl_cont_low_both_up

FOR

complete_continuous_domain;

ONEOF (lower_bounded_complete_continuous_domain,

both_sides_bounded_complete_continuous_domain,

upper_bounded_complete_continuous_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT

compos_cont_low_both_up

FOR

composite_continuous_domain;

ONEOF (lower_bounded_composite_continuous_domain,

both_sides_bounded_composite_continuous_domain,

upper_bounded_composite_continuous_domain);

END_SUBTYPE_CONSTRAINT;

SUBTYPE_CONSTRAINT

compos_disc_low_both_up

FOR

composite_discrete_domain;

ONEOF (lower_bounded_composite_discrete_domain,

both_sides_bounded_composite_discrete_domain,

upper_bounded_composite_discrete_domain);

END_SUBTYPE_CONSTRAINT;

ENTITY domain;

id: type_of_domain;

domain_structure:domain_generic_structure;

UNIQUE

UR1: id;

END_ENTITY;

ENTITY time_domain

SUBTYPE OF (domain);

name: label;

decomposes_into: SET [0:?] OF time_domain;

END_ENTITY;

ENTITY domain_generic_structure;

id: type_of_identifier_of_dom_gen_struct;

UNIQUE

UR1: id;

END_ENTITY;

ENTITY complete_or_composite_domain

SUBTYPE OF (domain_generic_structure);

END_ENTITY;

ENTITY discrete_or_continuous_domain

SUBTYPE OF (domain_generic_structure);

END_ENTITY;

ENTITY bounded_domain

SUBTYPE OF (domain_generic_structure);

END_ENTITY;

ENTITY complete_domain

SUBTYPE OF (complete_or_composite_domain);

reference_to_unit: unit;

reference_to_origin: domain_point;

END_ENTITY;

ENTITY composite_domain

SUBTYPE OF (complete_or_composite_domain);

components: SET [0:?] OF domain;

WHERE

-- components do not overlap

WR1 : (components (domain.id [1]) <>

components (domain.id [2]));

END_ENTITY;

ENTITY continuous_domain

SUBTYPE OF (discrete_or_continuous_domain);

END_ENTITY;

ENTITY discrete_domain

SUBTYPE OF (discrete_or_continuous_domain);

END_ENTITY;

ENTITY lower_bounded_domain

SUBTYPE OF (bounded_domain);

lower_bound: domain_point;

END_ENTITY;

ENTITY upper_bounded_domain

SUBTYPE OF (bounded_domain);

upper_bound: domain_point;

END_ENTITY;

ENTITY both_sides_bounded_domain;

low_bound_assigned_to: lower_bounded_domain;

up_bound_assigned_to: upper_bounded_domain;

END_ENTITY;

ENTITY complete_continuous_domain

SUBTYPE OF (complete_domain, continuous_domain);

END_ENTITY;

ENTITY lower_bounded_complete_continuous_domain

SUBTYPE OF (lower_bounded_domain, complete_continuous_domain);

END_ENTITY;

ENTITY upper_bounded_complete_continuous_domain

SUBTYPE OF (upper_bounded_domain, complete_continuous_domain);

END_ENTITY;

ENTITY both_sides_bounded_complete_continuous_domain

SUBTYPE OF (both_sides_bounded_domain, complete_continuous_domain);

END_ENTITY;

ENTITY composite_continuous_domain

SUBTYPE OF (composite_domain, continuous_domain);

END_ENTITY;

ENTITY lower_bounded_composite_continuous_domain

SUBTYPE OF (lower_bounded_domain, composite_continuous_domain);

END_ENTITY;

ENTITY upper_bounded_composite_continuous_domain

SUBTYPE OF (upper_bounded_domain, composite_continuous_domain);

END_ENTITY;

ENTITY both_sides_bounded_composite_continuous_domain

SUBTYPE OF (both_sides_bounded_domain, composite_continuous_domain);

END_ENTITY;

ENTITY complete_discrete_domain

SUBTYPE OF (complete_domain, discrete_domain);

END_ENTITY;

ENTITY lower_bounded_complete_discrete_domain

SUBTYPE OF (lower_bounded_domain, complete_discrete_domain);

END_ENTITY;

ENTITY upper_bounded_complete_discrete_domain

SUBTYPE OF (upper_bounded_domain, complete_discrete_domain);

END_ENTITY;

ENTITY both_sides_bounded_complete_discrete_domain

SUBTYPE OF (both_sides_bounded_domain, complete_discrete_domain);

END_ENTITY;

ENTITY composite_discrete_domain

SUBTYPE OF (composite_domain, discrete_domain);

END_ENTITY;

ENTITY lower_bounded_composite_discrete_domain

SUBTYPE OF (lower_bounded_domain, composite_discrete_domain);

END_ENTITY;

ENTITY upper_bounded_composite_discrete_domain

SUBTYPE OF (upper_bounded_domain, composite_discrete_domain);

END_ENTITY;

ENTITY both_sides_bounded_composite_discrete_domain

SUBTYPE OF (both_sides_bounded_domain, composite_discrete_domain);

END_ENTITY;

ENTITY domain_point;

unit_of_measure: unit;

END_ENTITY;

END_SCHEMA;

-- domain_property_schema

SCHEMA time_domain_schema;

REFERENCE FROM domain_property_schema

-- ISO 15531-42

(time_domain);

REFERENCE FROM date_time_schema

-- ISO 10303-41

(event_occurrence, time_interval);

REFERENCE FROM measure_schema

-- ISO 10303-41

(time_unit);

REFERENCE FROM support_resource_schema

-- ISO 10303-41

(label, text);

TYPE type_of_description_of_transformation_rule = STRING;

END_TYPE;

TYPE type_of_value_of_point_or_interval_in_time = REAL;

END_TYPE;

ENTITY interval_of_time

SUBTYPE OF (time_interval); -- generic type from 10303-41

unit_of_measure: time_unit;

duration_of_period_in_time:

type_of_value_of_point_or_interval_in_time;

of_time_domain: time_domain;

END_ENTITY;

ENTITY point_in_time;

unit_of_measure: time_unit;

value_of_point_in_time: type_of_value_of_point_or_interval_in_time;

of_time_domain: time_domain;

END_ENTITY;

ENTITY frequence_of_event;

unit_of_measure : STRING;

related_to: event_occurrence;

based_upon : LIST OF point_in_time_event_assignment;

DERIVE

frequ_event: REAL:= frequency (SELF);

END_ENTITY;

ENTITY time_domain_relation;

related_time_domain: time_domain;

relating_time_domain: time_domain;

origin_relation: rule_of_reference_to_origin_relation;

reference_to_unit_relation: OPTIONAL rule_of_unit_relation;

END_ENTITY;

ENTITY rule_of_reference_to_origin_relation;

contents_of_rule: type_of_description_of_transformation_rule;

END_ENTITY;

ENTITY rule_of_unit_relation;

contents_of_rule: type_of_description_of_transformation_rule;

END_ENTITY;

ENTITY time_unit_relation;

relating_time_unit: time_unit;

related_time_unit: time_unit;

reference_to_unit_relation: rule_of_unit_relation;

END_ENTITY;

ENTITY point_in_time_event_assignment;

assigned_2_to: point_in_time;

assigned_1_to: event_occurrence; -- event_occurrence generic entity

from 10303-41

role: point_in_time_event_assignment_role;

END_ENTITY;

ENTITY point_in_time_event_assignment_role;

name: label;

description: text;

END_ENTITY;

FUNCTION frequency

(event: event_occurrence;

id: string;

time_meas_unit:point_in_time;

unit_of_measure: unit;

limit_points: SET [0:2] OF assigned_2_to):REAL;

LOCAL

inf: REAL;

sup: REAL;

time_dist: REAL;

a:SET OF assigned_1_to := event;

b:SET OF assigned_2_to ;

count: INTEGER;

num_event: INTEGER;

END_LOCAL;

inf := LOBOUND (limit_points);

sup := HIBOUND (limit_points);

time_dist := sup - inf;

count := 0;

REPEAT I := 1 TO HIINDEX(a);

IF (b>inf) AND (b<sup)

THEN count := count + 1;

END_IF;

END_REPEAT;

num_event := count;

frequ_event := num_event / time_dist;

RETURN (frequ_event);

END_FUNCTION;

END_SCHEMA; -- time_domain_schema