Форум 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 7 » TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version » БАЗА ДАННЫХ

   
Автор / Author Тема / Topic: БАЗА ДАННЫХ
ДИМА
Forum Haunter / Завсегдатай форума
Участник № / Member № 6145


Icon 1 отправлено / posted      Профиль для / Profile for ДИМА           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день.
Столкнулся с такой интересной проблемкой в ТМ7,
Создал проект с передачей данных в БД MS Access,
запускаю проверку через профайлер, данные отправляет, но через импульсный триггер по переднему фронту отправляет несколько запросов сразу, причем запросы отправляет сразу при включении профайлера, и что интересно еще несколько запросов отправляет при выключении профайлера.Запускаю этот же проект в мониторе и ничего не происходит, даже если подаю команду на триггер.
Получается что в профайлере передача есть а в мониторе нет, и вот еще, при подаче сигнала на вход триггера, на выходе создается импульс который идет в БД соответственно запрос должен пройти один раз, а по факту запрос идет постоянно пока на вход триггера поступает сигнал. Триггер использую rTrig.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте.
Первым делом стоит разделить вопрос на две части.
Во первых, блок rTRIG в 7.00.2 работает корректно и под Профайлером, и под МРВ. После подачи любого положительного значения во вход блока, выход блока держит значение "1" ровно один цикл (цикл пересчета канала).

Во вторых, с каналом Call.SQLQuery нельзя работать с помощью rTRIG. В канал необходимо подавать положительное значение, а канал сам его сбросит. Однако, по Вашей схеме Call.SQLQuery будет принудительно остановлен через один цикл.

Рекомендую, отдельно проверить rTRIG, отдельно проверить работу Call.SQLQuery.

Для активации записи в БД, проще всего запускать по кнопке (прямая передача значения во входное значение канала Call.SQLQuery).

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


Icon 1 отправлено / posted      Профиль для / Profile for ДИМА           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день.
давайте разбираться, я не говорил что триггер не работает, в отладчике как и положено дает импульс на один скан, с этим все в порядке, я писал что запрос в БД происходит сразу после запуска профайлера, сигнал на триггер я даже не подавал, и сигналов проходит порядка 200шт. Мне необходимо считывать показание счетчика 1 раз в сутки, т.е. 1 запрос!
Тоже самое происходит при выключении профайлера, тоже происходит самопроизвольный запрос. После вашего ответа я переделал программу, в шаблонах БД создал DB, отредактировал его. В узле РТМ создал канал Call c типом SQLQuery и вызовом DB.
Создал программу FBD с блоком MOV на входе аргумент real, на выходе тоже аргумент real, перетащил программу в РТМ и привязал аргументы к каналам соответственно, аналоговый с типом rial(R)
и call DB(R), в справочной написано что "Для выполнения SQL-запроса в реальном времени в узле должен быть создан канал класса CALL с типом вызова SQLQuery, настроенный на вызов шаблона связи с БД.
Запрос выполняется при присвоении любого натурального числа атрибуту (0, R) канала."
Все скомпилировал и запустил профайлер, пропал самопроизвольный запрос, но при подачи команды на запрос происходит не один запрос а 103 запроса, т.е. подаю единицу на вход программы и канал SQLQuery отправляет 103 запроса вместо одного. Это происходит в профайлере, а в мониторе запрос вообще не проходит, как с этим бороться?

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


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

Вы же допускаете ошибку в написании FBD-программы.
Когда Вы использовали MOVE (пожалуйста, ознакомьтесь с описанием блоков), то выход MOVE равен входу. Когда Вы подали 1 на вход, то выход будет равен 1 до тех пор, пока Вы его не сбросите.
Т.е., в Вашей конструкции, будет постоянно отрабатывать Call.SQLQuery (он отработает, а MOVE его снова активирует).

Так как Вам необходимо раз в сутки записывать данные в БД, то лучше всего в шаблоне программы задать условие отправки команды по времени, например, текущее время (часы, минуты и секунды) равны заданному значению. Тогда посылаем 1. Все. В указанное время будет подана команда, а в следующую секунду уже условие выполняться не будет и 1 не будет подана на выход программы.

Данный топик переносится в раздел "базовой версии".

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


Icon 1 отправлено / posted      Профиль для / Profile for ДИМА           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Кнопка мне не подходит, команду на запрос отправляет контроллер, а далее ТМ передает в БД, в ТМ6 у меня это было реализовано именно через импульсный триггер и все прекрасно работает. Задача заключается в передаче показания счетчиков по команде контроллера, время передачи определяет контроллер. Я могу отправить Вам проект ТМ7 и ТМ6, и если Вы сможете посмотреть и подсказать что не так, то буду вам признателен. Проект ТМ6 работает нормально, а вот с ТМ7 проблемы, или если можно вышлите пример передачи в БД одного запроса INSERT по команде от внешнего контроллера,
Сообщения / Posts 121 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
пришлите проект ТМ7 (упрощенный, удалите все лишнее) на электронную почту Службы технической поддержки, с описанием что и где.
Сообщения / Posts 17114 | Из / 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



Powered by Infopop Corporation
UBB.classic™ 6.7.2