intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Здравствуйте, уважаемая техподдержка! У меня вопрос, который в принципе уже затрагивался в топике 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,канал отрабатывается, а оператор только готовится ввести значение в диалоге "Ввести и передать". В результате получается, что значение в контроллере принимает не то значение, которое нужно оператору. Как это обойти? Неужто только программным путем для такой простой ситуации?
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Спасибо за ответ. Попробую решить программным путем. Однако, учитывая, что таких каналов в проекте 642, получается не очень удобно. В одной программе точно не получится сделать, будет сильно превышено максимальное количество аргументов. Попробую реализовать в нескольких программах.
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Здравствуйте, уважаемая техподдержка! Можете ли Вы привести пример программы, которая бы решала описанную выше проблему? Понимаю, что разработка программных алгоритмов не входит в функции техподдержки, но мне кажется, тут особый случай, который заслуживает внимания. Спасибо!
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Я это и так понимаю, что примера программы нет, меня интересует, эта задача, кстати, тривиальнейшая, вообще решаема? И если решаема, то как?
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
NestorIT
Forum Member / Участник форума
Участник № / Member № 4337
отправлено / posted
Ну мы вот вместо стандартного диалога "Ввести и передать" используем самопальный: всплывающий экран с кнопкой "Передать" и ActiveX Microsoft Forms 2.0 TextBox, а уж те значения, что с них приходят в программе обрабатываются.
Сообщения / Posts 35 | Из / From: Россия
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
NestorIT, спасибо за ответ! Про ActiveX мы думали, просто не хотим прибегать для решения такой элементарной проблемы, о возможности возникновения которой в других скадах даже не подозревали, к сторонним средствам.
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414
отправлено / posted
Здравствуйте, intellis! как Вам такой вариант:
нужно добавить канал для считывания с ПЛК изменяемого значения - in_R. при нажатии кнопки для передачи нового значения, сначала будет передано текущее значение: из in_R в out_In - программе ПЛК это никак не должно напакостить, ведь значение переменной не изменится. а потом оператор пошлет новое значение через диалог "Ввести и передать". только и того, что по умолчанию оператору будет предложено ввести не то значение, которое он вводил в предыдущий раз
Сообщения / Posts 141 | Из / From: Украина
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Sater, спасибо за отклик! Отличная идея! Если честно, перепробовал кучу вариантов, в основном программных, но до этого не додумался! Должно получиться. Буду пробовать! Спасибо!
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Идея действительно хорошая. Надо только иметь в виду, что при аснхронности потоков чтения и и записи по внешним каналов возможны варианты, что за время генерации такой посылки реальное значение параметра в ПЛК изменится (если оно в принципе может меняться не только от нашей операции. но и каким-то другим способом). Если такие ситуации исключаются, то это решение наиболее рационально.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
intellis
Active Forum Member / Активный участник форума
Участник № / Member № 2383
отправлено / posted
Здравствуйте! Сегодня начал реализовывать, все отлично получилось! У операторов руки уже "набиты", ввод значений происходит быстро, поэтому в нашем случае вероятность изменения значения в ПЛК во время посылки крайне мала, так что этот вариант для нас оптимален! Еще раз спасибо SATER за отличную идею!
Сообщения / Posts 95 | Из / From: Россия
| IP / IP: IP адрес / IP address |