PDA

Просмотр полной версии : Master SCADA и ПЛК100



dikkobraz
24.03.2014, 08:55
Добрый день.
Помогите, пожалуйста, новичку разобраться в проблеме.
Суть в следующем:
Используется связка MasterSCADA-Modbus Universal ОРС-сервер-ethernet-ПЛК100. В ПЛК есть дискретная переменная, меняющая свое значение каждую миллисекунду на противоположное. В тренде же не удается увидеть идеальную картинку, значение меняется каждые 10...30 мс, причем временной интервал изменяется хаотично. В MasterSCADA и ОРС-сервере периоды опроса заданы равными 1 мс, опрос по изменению входов.
Подскажите, пожалуйста, с чем может быть связана данная проблема. Заранее спасибо.

SCADAMaster
24.03.2014, 09:55
За одну миллисекунду вы никак не сможете опросить вашу переменную. На один запрос по Ethernet уходит 10-20 мс.
Какая у вас задача?

Вольд
24.03.2014, 09:57
Это значит, что получить период опроса 1 мс не реально.

dikkobraz
24.03.2014, 10:20
Пока задача состоит в том, чтобы передавать изменение состояния дискретных входов ПЛК в MasterSCADA с минимальной погрешностью. По ТЗ погрешность не должна превышать 1мс. Что можете посоветовать? Использовать другой интерфейс?

SCADAMaster
24.03.2014, 10:46
А дальше как нужно с этими изменениями поступать?
Другой интерфейс тоже проблему не решит.
Использование архивации в контроллере вас не устроит? Правда в контроллерах ОВЕН с такой скоростью архивировать нельзя.

Вольд
24.03.2014, 10:52
Пока задача состоит в том, чтобы передавать изменение состояния дискретных входов ПЛК в MasterSCADA с минимальной погрешностью. По ТЗ погрешность не должна превышать 1мс. Что можете посоветовать? Использовать другой интерфейс?
Тут тебе кроме цифрового осциллографа ничего не поможет.

dikkobraz
24.03.2014, 11:12
Время изменения контролирует оператор в тренде. Планировалось так.
Осциллограф конечно лучшее решение, но к сожалению применять его нет возможности)))
Спасибо большое за ответы, буду думать дальше.

Вольд
24.03.2014, 12:25
Время изменения контролирует оператор в тренде. Планировалось так.
Как оператор может контролировать такие быстрые изменения ? Это физически невозможно.

dikkobraz
24.03.2014, 12:44
Но тренд же сохраняет историю изменений. Никто не говорит, что нужно контролировать в режиме реального времени)))

Вольд
24.03.2014, 15:10
Но тренд же сохраняет историю изменений. Никто не говорит, что нужно контролировать в режиме реального времени)))
А ты представляешь какой длины получится тренд ? Жизни человеческой не хватит чтобы просмотреть и проанализировать этот тренд. А сколько памяти понадобится в ПК чтобы сохранить эти данные ? ТЗ надо писать грамотно.

dikkobraz
25.03.2014, 06:36
Я не описал все тонкости работы) Значение будет изменяться не более 10 раз в день. Главная проблема в том, чтобы проконтролировать время этих изменений с точностью 1 мс. Историю хранить нужно максимум пару дней. Думаю проблем с памятью не должно возникнуть)

dikkobraz
25.03.2014, 07:37
Может быть есть еще варианты, кроме осциллографа, добиться такой точности?

SCADAMaster
25.03.2014, 09:25
Я не описал все тонкости работы) Значение будет изменяться не более 10 раз в день. Главная проблема в том, чтобы проконтролировать время этих изменений с точностью 1 мс. Историю хранить нужно максимум пару дней. Думаю проблем с памятью не должно возникнуть)
Ну тогда проблема решается другими путями.
Создаете две переменных - значение и метка времени (можно в виде строки). Оба этих параметра передаете в ОРС сервер. Наш Modbus Universal может поставить произвольную метку времени значению (то есть полученную от контроллера).

Вольд
25.03.2014, 10:37
Может быть есть еще варианты, кроме осциллографа, добиться такой точности?
Если Вы собираетесь зафиксировать время возникновения события (астрономическое время) с точностью 1 мс, то это весьма проблематично. Сдается мне, что Вы не можете грамотно сформулировать свою мысль.

dikkobraz
28.03.2014, 12:52
Не могли бы вы поделиться ссылкой на пример работы с метками времени. Не могу разобраться как в ОРС-сервере поставить произвольную метку времени значению.

SCADAMaster
28.03.2014, 17:18
Описание работы с метками времени есть в справке.
Вот пример:
TimeString="2013-05-03 12:34:45.100";
NowStamp=time.StringToTimeStamp(TimeString);
server.WriteTagByRelativeName("Tag3",true,192,NowStamp);