This is topic передача значений канала в контроллер по OPC in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


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

Posted by serg5raz (Участник № / Member № 4267) on :
 
ДАНО:
на экране 2 кнопки и 1 аргумент
кнопка SET передает аргументу значение 1
кнопка RESET передает аргументу значение 0
с аргументом связан канал, к каналу привязан источник (бит памяти контроллера через OPC сервер, направление - выход)
и все замечательно работает: при нажатии SET бит памяти устанавливается в 1, при RESET - сбрасывается в 0, но...

ПРОБЛЕМА
все работает только если нажимать на кнопки последовательно не торопясь.
Если же, например, RESET нажать очень быстро после SET (интервал - доля секунда, как только можно щелкнуть мышкой), то бит памяти контроллера не сбрасывается, но канал при этом (смотрю в разделе компоненты профайлера) показывает значение 0, как и должно быть

ВОПРОС
откуда берется зависимость от скорости переключения? источник OPC привязан же только к каналу, а канал-то сбросился в 0, значит и бит должен установиться в 0.
Приходиться, чтобы сбросить-таки бит, снова жать SET, а потом не так быстро RESET
Повторяю - некорректная работа проявляется только при высокой скорости переключения

надеюсь, что доходчиво объяснил ситуацию
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Такая ситуация возникает из-за асинхронности потоков.

Если упрощенно, то происходит все примерно так:

Вы посылаете 1.
1 отсылается в контроллер.
Посылаете 0.
Приходит подтверждение о приеме 1 и в канале сбрасывается битик отправки.

Т.е. 0 из канала не успевает отправиться в контроллер, т.к. его отправку сбрасывает подтверждение о установке 1.
 
Posted by Svasl (Участник № / Member № 4229) on :
 
Задача - есть кнопка, при нажатии на которую во входное значение (2,In) канала float-output связанным с OPC-OUT посылается 1. Первый раз это отрабатывается,на контроллере соответствующая переменная меняет значение на true и после обработки на false. Повторные нажатия уже не влияют на значение в контроллере. Понятно, что необходимо, чтобы поменялось значение в канале, делаю отправку в канал последовательности 1-0, но из-за вышеописанной ситуции результат тот же.
Что и куда посылать, чтобы была возможность повторной отправки и изменения значения на контроллере, т.е на нажатие кнопки первое - прямая передача 1 во входное значение, а вот что вторым пунктом в свойствах кнопки, отправка нуля не влияет.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Нужно посылать дополнительно к значению 1 в атрибут 39, Exec этого канала.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2