This is topic Блок FBD LINTER in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000572.html

Posted by Vladimir_tnb (Участник № / Member № 5824) on :
 
Доброго времени суток.
В проекте есть резервуар,там стоит уровнемер. Т.е. уровень в сосуде измеряется и на экран выводится. Объем жидкости в кубических метрах необходимо рассчитать согласно табличным данным. Таблица выглядит как:
1 12
2 15
3 16
4 19
5 23
....
и т.д.

Т.е функция не линейная. Там внутренние перегородки и непостоянный диаметр.
В 5-й версии Трейс Мода использовалась функция LINTER (алгебраические блоки FBD) которая логично привязывалась к файлу ITABL.txt где и находилась эта таблица пересчета. Т.е если уровень был, например, 4 (см) - мне возвращалось значение 19 (м.куб).

В ТрейсМод6, в руководстве о блоке LINTER сказано только о номере таблицы. И ВСЕ.


Дословно: "Аргументы канала CALL задают в табличном виде некоторую функцию y(x). Четные аргументы, начиная с нулевого, определяют абсциссы, последующие нечетные – соответствующие ординаты точек. Значения четных аргументов (абсцисс) должны монотонно возрастать. Номер таблицы задается начальным значением канала CALL.

Байт 0 неотрицательного значения входа SEL блока LINTER указывает номер используемой таблицы (1...32), байт 1 определяет алгоритм работы блока"


Вопрос: А где все-же таблица должна быть? Как ее создать или привязать?

Спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Из Вашей цитаты "НОМЕР ТАБЛИЦЫ ЗАДАЕТСЯ НАЧАЛЬНЫМ ЗНАЧЕНИЕМ КАНАЛА CALL".

Для каждой таблицы задается свой CALL.TableFunction в аргументах которого задается таблица. Ему задается начальное значение - номер этой таблицы.
На входе SEL блока LINTER Вы указываете номер используемой таблицы. По этому номеру вызывается именно тот CALL.TableFunction, начальное значение которого совпадает с искомым номером таблицы.
 
Posted by Vladimir_tnb (Участник № / Member № 5824) on :
 
Спасибо за оперативный ответ.

Можно еще уточнить: значения аргументов забиваются в РУЧНУЮ? Это я к тому что у меня есть резервуар 12 метров высотой, с шагом 1 см. пересчет в м.куб... Это Х(1200) + У(1200) = 2400 строк получается?
Или я опять что-то не понял?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если кривая включает в себя 1200 точек, то надо у канала создать 2400 аргументов.
Значения аргументов можно задавать непосредственно в проекте, а можно считать программной командой при загрузке проекта из текстового файла (см. описание атрибутов 128 и 129 каналов CALL).
 
Posted by Vladimir_tnb (Участник № / Member № 5824) on :
 
А вот тут засады нет?

"Чтение из файла (128, RFile) – при посылке в этот атрибут неотрицательного значения V в аргументы канала считываются значения из файла <имя канала>_<N>.dat или из файла <имя канала>.dat или из секции N файла с именем <строка1> без расширения (см. выше описание атрибута 129, WFile).

!!!!! Единовременно может быть отработано чтение из файла или запись в файл только для одного канала.!!!!!

А... если у меня штук 10 емкостей (каналов)? Уже никак? Или "единовременно" - это в пределах одного цикла?
Пугает фраза - "только для одного канала".
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
"Единовременно" - это в пределах одного цикла.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2