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

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE » Проблема с Local Statistic (Страница / Page 2)

  Этот топик включает в себя следующие страницы /
This topic is comprised of pages 1  2  3 
 
Автор / Author Тема / Topic: Проблема с Local Statistic
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


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

а то у меня результаты появляются, но реальности не соответствуют. мне нужно среднее за один заданный час
использую LocalStatistic, Parameter=32, на вход подаю 1 - при чем всегда надо часто подавать единицу, потому что канал CALL не реагирует и не выдает никаких результатов; пришлось дописывать программу, которая подает запрос пока нужный мне Arg_11 не изменится

я правильно понял что Arg_11 должен быть равен Arg_005 / ( Arg_012 / Период_опроса_привязанного_канала ) ?
вот пример моих результатов:
период = 5 сек
Arg_005 = 79190
Arg_006 = 79190
Arg_011 = 238
Arg_012 = 790.79

делал экспорт архива и подсчитывал среднее в MS Excel - среднее вышло приблизительно равным значению, высчитаному по формуле Arg_005 / ( Arg_012 / Период ) -- 501.2


перепроверьте, пожалуйста, подсчет среднего.
и обратите внимание на его целочисленность. меня настораживает, еще ниразу не получал дробное число или число, больше, чем 256
________________________________
провел эксперимент.
сделал выборку за час (c 12:00 до 13:00):
Arg_003 = 6040
Arg_004 = 6590
Arg_005 = Arg_006 = 4553340
Arg_011 = 171
Arg_012 = 3599.6
Arg_020 = 0
Arg_027 = 27.12.2010 12:00:00
Arg_028 = 27.12.2010 13:00:00

4553340 / ( 3600 / 5 ) = 6324.083
6324 = 1 1000 1011 0100
1011 0100 = 180

теперь экспортирую архив в html. там нашел 721 значение с 12:00 до 13:00
их сумма = 4553390
среднее = 6315.381415

6315 = 1 1000 1010 1011
1010 1011 = 171

у всех числовых аргументов тип real, у даты - date_and_time
________________________________
еще заметил, что если к Arg_011 привязать канал типа Float, то среднее значение будет усечено до 1 байта. а если ничего не привязывать и на экран выводить значение Arg_011 путем привязки аргумента экрана к аргументу канала типа CALL, то среднее значение не будет усечено

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте.
Подавать регулярно на вход канала 1 неправильно. Чтобы выяснить причину того, что канал "не реагирует" посмотрите значение атрибута 92,I2 канала. В него записывается код ошибки.
Ваша формула не верна. Запись происходит при изменении значения канала значения, а не по времени.
Вышлите Ваш проект на hotline3@adastra.ru.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


Icon 1 отправлено / posted      Профиль для / Profile for SATER           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Из справки: "Атрибут 92, I2 индицирует число архивных записей, помещенных в канал."
Разве это код ошибки?
Подаю 1 на вход канала CALL, при этом атрибут 92 равен нулю. Подаю еще раз - молчит. Подаю единицу очередью одну за другой - появился результат, І2 = 732 - оно и понятно, 732 * 5сек = 1 час

Формула моя верна для тех случаев, когда значение канала постоянно меняется. У меня он привязан к секундам текущего времени - постоянно изменяется

Только что препроверил все на тестовом проекте - там все работает, но в архиве есть дублирование
А в моем рабочем проекте Arg_011 обрезается..
проект выслал

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
По поводу 92 атрибута Вы правы. Код ошибки нужно смотреть в атрибуте 7,P.
Надо заметить, что для корректной работы метода нельзя работать с данными за текущий час.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


Icon 1 отправлено / posted      Профиль для / Profile for SATER           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Исправил ошибку:
В проекте канал типа Float, в который записывается среднее значение, еще привязан к аргументу одной программы - этот аргумент с типом OUT и типом данных USINT. Так вот, среднее перестало усекаться, когда USINT поменял на REAL
По-моему, в предыдущих версиях ТМ такого эффекта не было.

Выходит, тип аргумента влияет на тип канала в целом, а не только на тип числа, которое записывается в канал через аргумент?

Между прочим, даже если в теле программы этот аргумент не вспоминается вообще, но его тип OUT, тогда тип канала Float меняется. Если тип аргумента IN - не меняется

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


Icon 1 отправлено / posted      Профиль для / Profile for SATER           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Понял, почему не реагировал CALL.LocalStatistic: я подавал 1 на вход канала через программу на языке FBD - а там если не подается одно значение (например, 1), то подается другое (например, 0), тоесть программа преждевременно останавливала обработку канала.
Отключение блока не поможет, буду переписывать на языке ST

Еще есть такая задача:
В начале часа мне нужно достать среднее значение за предыдущий час по 7ми параметрам, которые архивируются в один СПАД. Для этого взял 7 каналов CALL.LocalStatistic. Когда все каналы обработаны, одним запросом посылаю все средние значения во внешнюю СУБД.

Так вот, можно ли обработать все 7 каналов одновременно или же нужно по очереди?

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Каналы CALL.LocalStatistic нужно обрабатывать по очереди.
И лучше всего это сделать при помощи rаналf CALL.AsyncCollection.

Но если Вам необходимо именно "достать среднее значение за предыдущий час по 7ми параметрам,", то можно обойтись и без архивных выборок: надо использовать 1 канал CALL.RT_Statistics.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


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

CALL.AsyncCollection - хорошая идея, но не работает, а почему - не понятно. Подаю единицу на вход, она держится 180с и CALL стает недостоверным. Но если после 1 на CALL.AsyncCollection, еще подам единицу на CALL.LocalStatistic (это первый аргумент канала CALL.AC), то CALL.AC увидит, что CALL.LS запущен и после его обработки, попробует запустить следующий аргумент, но следующий CALL.LS тоже не реагирует. и т.д.

То же самое с CALL.RT_Statistics - как подал 1, так и держится. И не понятно, что при этом происходит, куда уходит 1

Так что буду програмно контролировать обработку CALL.LS

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Почтой отправлены примеры по обоим механизмам.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


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

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


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


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправлено.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


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


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправлено.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


Icon 1 отправлено / posted      Профиль для / Profile for Сергей К.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо! Очень помогло.
Сообщения / Posts 24 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
tsssm
Junior Member / Новичок
Участник № / Member № 3564


Icon 1 отправлено / posted      Профиль для / Profile for tsssm           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Почтой отправлены примеры по обоим механизмам.


Сообщения / Posts 13 | Из / From: РФ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


Icon 1 отправлено / posted      Профиль для / Profile for SATER           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Почтой отправлены примеры по обоим механизмам.
Вы сказали, что AsyncCollection_LocalStatistic.prj - фрагмент из реального пользовательского проекта. Может, это слишком урезаный фрагмент?
Мне кажется, что Защелку каждого канала Call.LocalStatistic нужно самостоятельно обнулять - в "фрагменте" этого нету
Первый раз Call.AsyncCollection нормально обработает все Call.LS, потому что их Защелки равны нулю, но после обработки Защелки остаются в единицах. При повторном запуске Call.AC он бегом обойдет все свои аргументы не дожидаясь конца фактической обработки каждого из них.

Или же просто сменить тип каждого Call.LS с Input (как в примере) на Ouput.

Я верно истолковал?

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Еще раз проверил работу AsyncCollection в присланном Вам проекте AsyncCollection_LocalStatistic.prj.
И в отсутствие архивов, и с реальными архивами пользователя.
Все работает правильно.
Ничего в проекте переделывать не надо.
Он хотя и усечен, но только за счет функций, не имеющих отношения к AsyncCollection_LocalStatistic.

Почему Вас беспокоит атрибут "Защелка каждого канала Call.LocalStatistic"?
Согласно документации "этот атрибут используется в каналах FLOAT и HEX16".

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414


Icon 1 отправлено / posted      Профиль для / Profile for SATER           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Из справки.
Раздел "Канал CALL.AsyncCollection"
Если Параметр=0:
- если некоторый целочисленный аргумент argN INPUT не привязан, его значение передается каналу CALL, привязанному к следующему за argN аргументу OUTPUT. Это необходимо, например, при каскадном запуске CALL.LocalStatistic. При этом проверяется b14 (бит 0 атрибута 46 [Защелка]);


В Вашем примере как раз этот случай. Когда Вы проверяли CALL.AsyncCollection, обращали внимание на Реальные значения каналов CALL.LS ?
При первом запуске CALL.AC значения CALL.LS.R по очереди стают равными 1, после чего скидываются в нули. А при повторном запуске CALL.AC каналы CALL.LS обрабатываются по 2-3 шт. за раз - видно по их реальных значениях. Но, если перед повторным запуском CALL.AC поскидывать Защелки CALL.LS, то обработка происходит по очереди.

Сообщения / Posts 141 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Видимо, разница в "наблюдениях" объясняется тем, что в нашем эксперименте использовался очень мощный ПК и время на выборку оказалось достаточно коротким.
В Вашем случае надо привязку OUT-аргументов канала CALL.AsyncCollection осуществлять к атрибутам 120 (ACK) каналов Call.LocalStatistic.

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


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


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправлено.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день! Как раз подобрался к теме статистической обработки, очень бы помог Ваш пример с CALL.LocalStatistic и CALL.AsyncCollection, вышлите, пожайлуста, тестовый проект.
Сообщения / Posts 82 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
См. ссылку на http://forum.adastra.ru/cgi-bin/ultimatebb.cgi/ubb/get_topic/f/31/t/000581.html?
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nikem
Junior Member / Новичок
Участник № / Member № 5109


Icon 1 отправлено / posted      Профиль для / Profile for Nikem           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Можно и мне выслать этот пример. Очень нужен. Спасибо.
Сообщения / Posts 3 | Из / From: Казахстан  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
  Этот топик включает в себя следующие страницы /
This topic is comprised of pages 1  2  3 
 

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