Доброго времени суток. В проекте есть резервуар,там стоит уровнемер. Т.е. уровень в сосуде измеряется и на экран выводится. Объем жидкости в кубических метрах необходимо рассчитать согласно табличным данным. Таблица выглядит как: 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 :