Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

MR_113_V2 - расчет свойств нефтяного газа


Назначение.
Функциональный блок используется для расчета свойств природного газа по методу ГСССД МР 113-03 (263...500 К, до 15 МПа), при этом значение влажности должно быть вычислено в нормальных условиях (температура 20 оС и абсолютное давление 0,101325 кПа). Блок выполняется асинхронно и не влияет на цикл контроллера, отследить окончание вычислений можно с использованием выходного параметра READY.
 
Состав структурной переменной.
Переменная со структурным типом MR_113_V2 будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
Соответствие элементов вещественных массивов X_in и X_out компонентам газа:
Элемент массива
Компонент
Элемент массива
Компонент
X[0]
Метан
X[7]
Гексан
X[1]
Этан
X[8]
Гептан
X[2]
Пропан
X[9]
Кислород
X[3]
и-Бутан
X[10]
Азот
X[4]
н-Бутан
X[11]
Диоксид углерода
X[5]
и-Пентан
X[12]
Водяной пар
X[6]
н-Пентан
X[13]
Сероводород
Выходной параметр Ready - признак завершения операции.
Значение параметра
Описание
true
Операция завершена
false
Блок в процессе выполнения
Выходной параметр ok - признак обнаружения ошибок:         
Значение параметра
Описание
true
Есть ошибки
false
Нет ошибок
Коды ошибок на выходе err с кратким описанием.
Код ошибки
Краткое описание
0
Ошибок нет
1
Ошибка обмена с задачей связи
2
Недопустимый тип данных или размер массива
3
Недопустимая ссылка на массив
4
Недопустимое значение температуры (норма от 263 до 500 К);
8
Недопустимое значение давления (до 15 мПа);
16
Недопустимое значение доли компонентов
32
Недопустимое значение суммы компонентов газовой смеси
64
Недопустимое значение относительный влажности
128
Недопустимое значение абсолютной влажности
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MR_113_V2(T1, P, Type_V, Vlag, TypeX, X_in, X_out);
//чтение выходных параметров
Z := Block.Z;       
Zc := Block.Zc;       
K := Block.K;        
Dens := Block.Dens;   
DensC := Block.DensC;  
ka := Block.ka;       
Visc := Block.Visc;   
Tcm := Block.Tcm;      
Denscm := Block.Denscm;
M := Block.M;          
Xp := Block.Xp;       
Ready := Block.Ready;  
ok := Block.ok;       
err := Block.err;