This is topic Exec in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


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

Posted by intellis (Участник № / Member № 2383) on :
 
Здравствуйте, уважаемая техподдержка! У меня вопрос, который в принципе уже затрагивался в топике http://forum.adastra.ru/cgi-bin/ultimatebb.cgi/ubb/get_topic/f/32/t/000378.html?#000000, но тот топик закрыт, поэтому создаем этот. Проблема в принципе банальна: по нажатию кнопки с помощью диалога "Ввести и передать" изменяем значение в контроллере,ставим к примеру 10. После этого значение изменилось в контроллере на 12. Если мы попробуем опять ввести 10 то ничего не выйдет, это значение осталось на выходе канала, канал не меняется и не отрабатывается. Тут казалось бы, стандартное решение - послать 1 в атрибут Exec вместе с нажатием кнопки. Для этого на ту же кнопку, которой меняю значение канала, вешаю дополнительно прямую передачу 1 в атрибут Exec того же канала. Проблема в том, что когда я нажимаю кнопку, единица сразу же посылается в Exec,канал отрабатывается, а оператор только готовится ввести значение в диалоге "Ввести и передать". В результате получается, что значение в контроллере принимает не то значение, которое нужно оператору. Как это обойти? Неужто только программным путем для такой простой ситуации?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Только программным путем.
 
Posted by intellis (Участник № / Member № 2383) on :
 
Спасибо за ответ. Попробую решить программным путем. Однако, учитывая, что таких каналов в проекте 642, получается не очень удобно. В одной программе точно не получится сделать, будет сильно превышено максимальное количество аргументов. Попробую реализовать в нескольких программах.
 
Posted by intellis (Участник № / Member № 2383) on :
 
Здравствуйте, уважаемая техподдержка! Можете ли Вы привести пример программы, которая бы решала описанную выше проблему? Понимаю, что разработка программных алгоритмов не входит в функции техподдержки, но мне кажется, тут особый случай, который заслуживает внимания. Спасибо!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Примера программы нет.
 
Posted by intellis (Участник № / Member № 2383) on :
 
Я это и так понимаю, что примера программы нет, меня интересует, эта задача, кстати, тривиальнейшая, вообще решаема? И если решаема, то как?
 
Posted by NestorIT (Участник № / Member № 4337) on :
 
Ну мы вот вместо стандартного диалога "Ввести и передать" используем самопальный: всплывающий экран с кнопкой "Передать" и ActiveX Microsoft Forms 2.0 TextBox, а уж те значения, что с них приходят в программе обрабатываются.
 
Posted by intellis (Участник № / Member № 2383) on :
 
NestorIT, спасибо за ответ! Про ActiveX мы думали, просто не хотим прибегать для решения такой элементарной проблемы, о возможности возникновения которой в других скадах даже не подозревали, к сторонним средствам.
 
Posted by SATER (Участник № / Member № 1414) on :
 
Здравствуйте, intellis!
как Вам такой вариант:
 -

нужно добавить канал для считывания с ПЛК изменяемого значения - in_R. при нажатии кнопки для передачи нового значения, сначала будет передано текущее значение: из in_R в out_In - программе ПЛК это никак не должно напакостить, ведь значение переменной не изменится.
а потом оператор пошлет новое значение через диалог "Ввести и передать".
только и того, что по умолчанию оператору будет предложено ввести не то значение, которое он вводил в предыдущий раз
 
Posted by intellis (Участник № / Member № 2383) on :
 
Sater, спасибо за отклик! Отличная идея! Если честно, перепробовал кучу вариантов, в основном программных, но до этого не додумался! Должно получиться. Буду пробовать! Спасибо!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Идея действительно хорошая.
Надо только иметь в виду, что при аснхронности потоков чтения и и записи по внешним каналов возможны варианты, что за время генерации такой посылки реальное значение параметра в ПЛК изменится (если оно в принципе может меняться не только от нашей операции. но и каким-то другим способом).
Если такие ситуации исключаются, то это решение наиболее рационально.
 
Posted by intellis (Участник № / Member № 2383) on :
 
Здравствуйте! Сегодня начал реализовывать, все отлично получилось! У операторов руки уже "набиты", ввод значений происходит быстро, поэтому в нашем случае вероятность изменения значения в ПЛК во время посылки крайне мала, так что этот вариант для нас оптимален! Еще раз спасибо SATER за отличную идею!
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2