Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ОТКРЫТЫЕ ФОРУМЫ / OPEN FORUMS » TRACE MODE 6 бесплатная версия / TRACE MODE 6 Free version » Программа на Техно ST

   
Автор / Author Тема / Topic: Программа на Техно ST
Booster0
Junior Member / Новичок
Участник № / Member № 8431


Icon 1 отправлено / posted      Профиль для / Profile for Booster0           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Для подсчета расхода воды в емкости использую следующую программу


PROGRAM
VAR_INPUT ТУ : LREAL; END_VAR
VAR_INOUT период : REAL; END_VAR
VAR_OUTPUT текущийРасход : REAL; END_VAR
VAR_OUTPUT М3 : REAL; END_VAR
VAR_INPUT T2 : LREAL; END_VAR
VAR lT2 : LREAL; END_VAR

if фЗ==0 then
фЗ=1;
L1=ТУ;
T1=T2;
goto pExit;
end_if;
lT2=T2+getAttributeI[1,88]*0.001;
if [lT2-T1]<[период*0.001] then
goto pExit;
end_if;
текущийРасход=[ТУ-L1]/[lT2-T1];
М3=текущийРасход*3.6;
L1=ТУ;
T1=lT2;
pExit:
END_PROGRAM


аргумент______значение___________привязка
ТУ____________тек. уровень воды__значение датчика
период________период расчета,мс__задано 55 мс
текущийРасход_текущий расход,л/с_выходное значение
М3____________тек. расход,м3/ч___выходное значение
T2____________тек. время_________атрибут 45 основного экрана


глобальные переменные
фЗ int признак работы
L1 LREAL уровень воды на предыдущем подсчете
T1 LREAL время на предыдущем подсчете

при отладке выяснилось, что значение T2 меняется 1 раз в 128 секунд, а значение getAttributeI[1,88] всегда равно 0
Что не так?
Прим.Круглые скобки не пропустили, вместо них квадратные

[ 06.10.2020, 14:09: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]

Сообщения / Posts 28 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by Booster0:
значение getAttributeI[1,88] всегда равно 0

Проверьте через Панель МРВ значение атрибута 88 канала с ID=1.
У канала Call.Screen атрибут 88 всегда равен 0.

quote:
Отправитель / Originally posted by Booster0:
...
VAR_INPUT T2 : LREAL; END_VAR
...
T2 текущее время атрибут 45 основного экрана

при отладке выяснилось, что значение T2 меняется 1 раз в 128 секунд, ...

атрибут 45 имеет тип не LREAL, а DATE_and_TIME.
атрибут 45 изменяется с заданной периодичностью. Смотрите настройки канала вызова основного экрана Период и Единица Измерения.

Сообщения / Posts 16077 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Booster0
Junior Member / Новичок
Участник № / Member № 8431


Icon 1 отправлено / posted      Профиль для / Profile for Booster0           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А где тогда взять милисекунды?
Сообщения / Posts 28 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Опишите решаемую Вами задачу. Как Вы планируете использовать миллисекунды отработки канала вызова экрана?
Сообщения / Posts 16077 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Booster0
Junior Member / Новичок
Участник № / Member № 8431


Icon 1 отправлено / posted      Профиль для / Profile for Booster0           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Это нужно для точного подсчета расхода воды. На каждом цикле вычисляется разность текущего уровня и уровня на предыдущем цикле и делится на разность текущего и предыдущего времен. После вычисления в глобальные переменные записываются текущие расход и время, которые на следующем цикле будут использованы в качестве предыдущих. Периодичность опроса - 55 мс.
Сообщения / Posts 28 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В этом случае рекомендуется использовать значение атрибута 88 числового канала, который получает от датчика значение текущего уровня воды.
Сообщения / Posts 16077 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2