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

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Языки программирования (IL/FBD) / Algorithm Programming Languages » Вопрос по Техно IL

   
Автор / Author Тема / Topic: Вопрос по Техно IL
Droshnev
Forum Member / Участник форума
Участник № / Member № 132


Icon 1 отправлено / posted      Профиль для / Profile for Droshnev           Редактировать/удалить сообщение / Edit/Delete Post 
Возникла странная ситуация.

Есть три алгоритма: Запуск насоса, стоп насоса, вывод насоса в ремонт.
Мы реализовали эти алгоритмы с помощью FBD-программ, прописанных в процедуре управления.
FBD-программы состоят из стандартных FBD-блоков и из FBD-блоков написанных нами на Техно-IL.

Странность ситуации в том, что алгоритмы "Запуск насоса" и "вывод насоса в ремонт" работают без нареканий, а вот алгоритм "Стоп насоса",
составленный из тех же функциональных блоков работает не адекватно [Неодобрение / Frown] В режиме эмуляции в РБК все ОК, с выхода Q1 блока 4:14 "Zapusk" идет единичка при наличии единички
на входе I1. В базе каналов этот выход(через блоки 9:10 и 10:11) привязан к каналу "33B2.ЗК.OUT". Эта единичка
держится там до прихода единички на вход I2 этого же блока. , Если в течении 15секунд на входе I2 Единичка не появляется,
то блок выводит на выход Q2 - единичку(код сообщения) и прекращает работу.
Повторюсь в режиме эмуляции в РБК все именно так и происходит,
Причем этот же блок, в алгоритме Zap_NS работает идеально как в эмуляции РБК, так и в РПД.
А вот в РПД блок 4:14 из алгоритма STOP_NS работает так: на выходе Q1 - единичка не появляется, если этот выход через
блоки 9:10 и 10:11 привязан к каналу "33B2.ЗК.OUT"(даже если он привязан непосредственно напрямую к каналу - ситуация не меняется)
И так по всем 6-и насосам [Неодобрение / Frown] . А если этот выход привязать к любому другому каналу напр. 33B2.СТ.OUT, то все ОК.

Релиз ТМ 5.11, В 5.12 СИТУАЦИЯ НЕ ИЗМЕНИЛАСЬ.

Высылаем Вам проект, эти каналы находятся на узле Node1.. На экране "Странно", алгоритм STOP_NS, запускается по кнопке
"авт СТОП"

Ждем Ваших комментариев.
Файл "Algoritm.zip" выслан Вам на forum@adastra.ru

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Мы проанализировали присланный Вами проект.
В указанный Вами канал 33B2.ЗК_OUT сигналы передаются от FBD, вызываемых двумя каналами - STOP_NS3 и REM_NS3. Первый канал пытается передать туда "1", а второй - "0". Поэтому означенная Вами функция "Стоп насоса" не работает. Вам надо каким-то образом разрешить этот конфликт на уровне Вашей программы.

Попутно хочу дать Вам некоторые рекомендации.

1. Для анализа и диагностики таких ситуаций удобно пользоваться механизмом объектов. Я создал в базе каналов объект, "Зависящий от канала 33B2.ЗК_OUT". Этот объект собрал все каналы, которые в своих FBD имеют ссылки на атрибуты канала 33B2.ЗК_OUT. В объекте обказались каналы STOP_NS3 и REM_NS3. Когда я в реальном времени изменил СОСТОЯНИЕ канала REM_NS3 на "1" (выключил его), алгоритм "Стоп насоса" стал передавать "1" в канал 33B2.ЗК_OUT.

2. В Ваших программах Вы чрезмерно увлекаетесь IL-блоками. Многие из реализуемых ими функций относительно просто решаются с помощью FBD. Язык Техно-IL реализуется с повышенными по сравнению с FBD ресурсами.

3. Согласно нашей документации в имени канала не рекомендуется использовать символы математических операций, спецсимволы, знаки препинания и пробелы. Вы эту рекомендацию нарушаете.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Droshnev
Forum Member / Участник форума
Участник № / Member № 132


Icon 1 отправлено / posted      Профиль для / Profile for Droshnev           Редактировать/удалить сообщение / Edit/Delete Post 
>В указанный Вами канал 33B2.ЗК_OUT сигналы передаются от FBD, вызываемых двумя каналами - STOP_NS3 и REM_NS3. Первый канал пытается передать туда "1", а второй - "0". Поэтому означенная Вами функция "Стоп насоса" не работает.
>Вам надо каким-то образом разрешить этот конфликт на уровне Вашей программы.

Подскажите, каким образом на уровне системы мы можем разрешить этот конфликт?
Повторюсь у нас на каждый насос должно быть 3 алгоритма, в двух из них (STOP_NSx и REM_NSx) используется один и тот же канал 3xB2.ЗК_OUT, а всего 10 насосов.

Как бы Вы решили данную задачу?

> В Ваших программах Вы чрезмерно увлекаетесь IL-блоками. Многие из реализуемых ими функций относительно просто решаются с помощью FBD.

Да, они реализуются, но целиком алгоритм в FBD блоках получается очень громоздким и не наглядным.Вносить в него какие-то поправки очень не удобно.
Обидно, что в редакторе FBD нет возможности копировать FBD-блоки, группировать их.

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Я не случайно предложил Вам решать этот конфликт на уровне Вашей программы, т.к. в системе такая ситуация не блокируется. Предполагается, что в каких-то пользовательских программах такое решение может оказаться предпочтительным.
С моей точки зрения, наиболее эффективное решение состоит в том, чтобы реализованный алгоритм управления насосом всегда выдавал только одну команду. Полагаю, что для такого решения у Вас есть основания: ведь в каждый момент времени для определенного насоса реализуется только один из трех алгоритмов? Можно было бы создать одну комплексную функцию, которая, в зависимости от ситуации, реализовывала бы нужный алгоритм. Кстати, аналогичные проблемы у Вас могут быть при передаче "сообщений" из алгоритмов.

Если для Вас такое решение затруднительно, то, по крайней мере, управляя входами RUN FB, которые выдают сигналы управления и коды сообщений и шага в каждом алгоритме, можно обеспечить отсутствие конфликтов.

Что касается наглядности и расширения сервисных функций в языках программирования, то мы планируем в версии Трейс Моуд 6 принципиальные шаги в этом направлении.

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Закрыть тему / 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