This is topic Отработка каналов в заданные моменты времени in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


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

Posted by stepan (Участник № / Member № 3589) on :
 
Здравствуйте уважаемая техническая поддержка!

Требуется реализовать следующую задачу:

Считывать из прибора каждый час среднечасовые архивные значения, записывать и в СПАД архив и затем формировать отчетности по данным этих архивов.

Для этого требуется реализовать примерно следующий алгоритм:

Имеется 20 каналов привязанных к оборудованию. Нужно каждый час в (XX часов 30 минут (точность в +/- 10 минут не сыграют роли)) производить чтение значений этих каналов, формировать метку времени и записывать эти значения в СПАД архив с заранее сформированной меткой времени.

Например.
- 22 июня в 22.30 отработать 20 каналов. Записать значения в СПАД архив с меткой времени 22:00, 22 июня.

- 22 июня в 23:30 отработать 20 каналов, получив их значения, И записать эти значения в СПАД архив с меткой времени на 23:00, 22 июня. ( дата должна быть часовой давности)

- 23 июня в 00.30 отработать 20 каналов. Записать значения в СПАД архив с меткой времени 00:00 23 июня.
И так далее…

Для этого попытался написать программу, которая бы анализировала системную переменную t_Set_Date.

Однако столкнулся с проблемой анализа и формирования даты-времени, т.к. время представляется как количество секунд с 1.1.1970 г. Как мне узнать какой сегодня год, месяц, число, час, минута имея только данные о количестве секунд? И как мне сформировать нужное мне время? Например 27 июня 2009 г, 11:00 – как вычислить количество секунд с 1.1.1970? Должно быть, есть какая то формула?! [prey / молящийся]

После того как программа проанализировала текущее время и сделала вывод, что нужно заставить каналы отработаться программным путем. Какую конфигурацию каналов сделать и на какой атрибут канала воздействовать, чтобы он отработался?

Для принудительной записи в СПАД архив, как я понял, используется канал CALL.writer. С этим пока проблем нет, т.к. руки до него еще не дошли [Улыбка / Smile]

Помогите пожалуйста разобраться с проблемой. И если можно сделайте тестовый пример для наглядности. Уверен что и остальным участникам данного форума этот пример может принести пользу.

Спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Все операции с текущим временем осуществляются с помощью системной переменной @t_Set_Date и FBD блоков для работы с временем.

Для Вашей задачи лучше всего использовать FBD блок Alarm.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2