Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - Время цикла программы SLC 5/05 + Время отклика с OPC
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Время цикла программы SLC 5/05 + Время отклика с OPC

 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации
Предыдущая тема :: Следующая тема  
Автор Сообщение
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Пт 28 Сен, 2007 7:48:51    Заголовок сообщения: Время цикла программы SLC 5/05 + Время отклика с OPC Ответить с цитатой

Описываю задачу:
Есть контроллер SLC 5/05, время цикла программы 0,3 секунды (вычисляю вручную).
Scan Times-Average показывает 300 ms (или 30 *10 ms).

OPC RS Linx 2.51 подключен к контроллеру через Ethernet.
Scada Genesis32 читает данные с RS Linx. При подаче команды время отклика составляет ~ 3-x секунд, что непонятно и недопустимо!

Если через мониторинг подавать ту же команду, то тоже самое!

Где копать, и что делать?

Спасибо за поддержку!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Пт 28 Сен, 2007 8:09:49    Заголовок сообщения: Ответить с цитатой

Делал объект на этом контроллере + OPCRSLinx + RSView32.
Самое тормозное звено в этой цепи RSView, но и то время отклика (отсылка+цикл программы+отсылка) было примерно 1 сек.

Напишите, как вы считаете время отклика. В это время у вас входит время реакции исполнительного механизма?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Пт 28 Сен, 2007 8:37:33    Заголовок сообщения: Ответить с цитатой

Время отклика считаю так
Команда на включение-обработка программой-включение выхода на контроллере
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Пт 28 Сен, 2007 8:40:45    Заголовок сообщения: Ответить с цитатой

Поробуй управляющий сигнал через OPC Test Client послать.
Тогда будет ясно в каком звене у тебя затык.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Пт 28 Сен, 2007 9:02:29    Заголовок сообщения: Ответить с цитатой

так ведь и Genesis32 тоже клиент. Ладно, я попробую!

А как на счет того что управляющая команда выдается из самого RS Logix 500? Открываю файл команд устройст B20, выставляю бит, команда также приходит только через ~3 секунды!

И еще вопрос? в Закладке Scan Times (жму Processor Status), Average в чем меряется? Точнее у AB 100ms чему равно 1 секунде или 0,1 секунде?
Я указал что Average = 300ms может это и есть 3 секунды?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Пт 28 Сен, 2007 9:14:32    Заголовок сообщения: Ответить с цитатой

Raven999 писал(а):

А как на счет того что управляющая команда выдается из самого RS Logix 500? Открываю файл команд устройст B20, выставляю бит, команда также приходит только через ~3 секунды!


Тогда опыт с OPC Test Client проводить не нужно. Все и так ясно.

Raven999 писал(а):

И еще вопрос? в Закладке Scan Times (жму Processor Status), Average в чем меряется? Точнее у AB 100ms чему равно 1 секунде или 0,1 секунде?
Я указал что Average = 300ms может это и есть 3 секунды?


Там-же написано Maximum[*10 ms], т.е. если у вас в ячейке показывае 300, то это 300*10 ms= 3 сек.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Пт 28 Сен, 2007 9:24:20    Заголовок сообщения: Ответить с цитатой

!!!average поле = 30!!!
!!!или 300 мс но не 3000.!!!!

И самостоятельное вычисление показывает тоже самое! = 0,3 сек

А может мне помочь команда SVC ???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Вт 02 Окт, 2007 5:41:52    Заголовок сообщения: Ответить с цитатой

Сам отвечу на свой вопрос!

Проблема решена!

Причина: 5 циклов.

НИКОГДА, НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ЦИКЛЫ, ОСОБЕННОЕ ЕСЛИ ЕСТЬ КАКОЙ НИТЬ ОБМЕН

Задача решается так:
По возможности сделайте так чтобы за один цикл программы обрабатывался один элемент цикла.
Времени обновления хватает на все элементы цикла

У меня время скана стало равно 40 мс.

Все спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Вт 02 Окт, 2007 12:00:59    Заголовок сообщения: Ответить с цитатой

Raven999 писал(а):
НИКОГДА, НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ЦИКЛЫ, ОСОБЕННОЕ ЕСЛИ ЕСТЬ КАКОЙ НИТЬ ОБМЕН


Тут вы не правы, просто циклы нужно правильно использовать. Это кстати в любой документации на контроллеры A-B написано.

Если у вас в цикле очень много шагов, то разбейте их по 100 за цикл программы или как вы сделали по одному и.т.

В общем-то закон известный: либо ты выигрываешь в скорости и проигрываешь в ресурсах (память), либо наоборот.

Я когда начинал писать программы, в циклах много использовал косвенную адресацию. Со временем понял, что иногда для повышения быстродействия лучше вначале положить в промежуточные переменные, а потом обратно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Raven999
Частый гость
Частый гость


Зарегистрирован: May 19, 2007
Сообщения: 14
Рейтинг: +0/-0

СообщениеДобавлено: Ср 03 Окт, 2007 5:04:29    Заголовок сообщения: Ответить с цитатой

Я для битовых переменных использую косвенную адресацию, для целых или вещественных через промежуточные переменные!

Так например аналоговый канал имеет и косвенную адресацию и копирование параметров датчика во внутреннюю переменную а потом измеренные значения уже обратно!
В принципе уйдя от цикла я ничего не потерял, время обработки одного канала, или цифрового или аналогового в результате осталось тоже самое, а время цикла снизилось с 300 до 30 мс. В общем я для себя решил что циклы буду организовывать только так!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Ср 03 Окт, 2007 5:46:15    Заголовок сообщения: Ответить с цитатой

Я вот прочёл и стал вспоминать, когда этоя использовал циклы. И не вспомнил реально ни одного случая, когда бы пришлось их использовать. На мой взгляд, циклы нужны, если привык программировать на обычных компьютерных языках и никак не представляешь себе архитектуру программы, которая циклов не содержит вообще. Но если подумать, что каждая контроллерная программа - это принципиально цикл, то начинаешь понимать, что циклами ползоваться совершенно необязательно.

А как вы думаете, коллеги? Можете ли вы привести пример, когда использование цикла необходимо и оправдано, и никак без него нельзя?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Dvoeglazov
Эксперт
Эксперт


Зарегистрирован: Mar 06, 2006
Сообщения: 278
Рейтинг: +1/-0
Откуда: г.Киров-Чепецк

СообщениеДобавлено: Ср 03 Окт, 2007 7:01:22    Заголовок сообщения: Ответить с цитатой

Под циклом я понимаю связку LBL----JMP (это в данном форуме уже обсуждалось).

Без циклов не обойтись, когда обрабатываешь принятые данные, по какому-то протоколу (ASCII модуль).

Если объект большой, то удобно оборудование разбить на группы, которые обрабатываются по циклу. Например у вас 2000 аналоговых сигналов, которые нужно проанализировать на выход за диапазон, привести к тех.шкале, проверить на аварийные, предаварийные уставки и т.д.
Если у вас 1000 отсекателей, то вероятность ошибки значительно повышается, если каждый из них вы будете делать отдельно (памяти съестся тоже много). Разумнее алгоритм их работы сделать "подпрограммой", которая вызывается по циклу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Ср 03 Окт, 2007 7:36:46    Заголовок сообщения: Ответить с цитатой

Цитата:
Без циклов не обойтись, когда обрабатываешь принятые данные, по какому-то протоколу (ASCII модуль).


Почему не обойтись? Кто мешает получить из буфера символ, положить его куда надо и пойти дальше? А следующий символ получить (если он есть) в следующем скане программы?

Цитата:
Если объект большой, то удобно оборудование разбить на группы, которые обрабатываются по циклу. Например у вас 2000 аналоговых сигналов, которые нужно проанализировать на выход за диапазон, привести к тех.шкале, проверить на аварийные, предаварийные уставки и т.д.


А вот файловые операции, например, FAL: определили массив, задали длину, выражение для обработки переменной в массиве, количество единиц массива за один проход скана, определили стартовые условия FAL, и всё. Процесс пошёл параллельно времени скана и независимо от него, а Вы только проверяете, а не закончилась ли обработка. Зачем цикл?


Последний раз редактировалось: oldDad (Вт 30 Окт, 2007 10:15:29), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Ср 03 Окт, 2007 14:06:05    Заголовок сообщения: Ответить с цитатой

Присоединяюсь к oldDad - циклы вред.
А команда SVC - усугубление вреда.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.133 секунды
/n