 | |
Предыдущие результаты
:)
Я рад, что Вам удалось в основном решить эту задчу. Эти характерные затыки обычно бывают не с ОРС и ControlNet, а с процессором, когда ему не дают достаточно времени на то, чтобы он занимался оптимизацией своей мультизадачности и оптимизацией коммуникаций. Периодическая задача как раз даёт процессору такую возможность, оставляет ему время для занятий собой.
Что касается помаргивания - это, скорее всего, с пропусной способностью канала не связано. Известны аппликации с куда бОльшим траффиком, и там ничего не моргает. Тут нужно проанализировать более детально.
Что именно моргает и как именно построено это отображение? Что откуда и когда приходит?
|
Сталкивался с подобной проблемой на ControlLogix, но на этапе наладки, поэтому дело темное (слишком много людей занято).
Также сталкивался с подобной проблемой на SLC 5/05 c EtherNet.
Сначала при наладке 3 года назад, потом недавно 3 месяца назад - после 2 лет нормальной работы.
Поставил Flash. :?
Во втором случае шкаф был закрыт и никто ничего не делал =(
Но в целом контроллерами доволен, т.к. за 5 лет понаставил уже штук 50.
Вспомнил, были такие проблемы с FlexLogix, в котором 64 kb памяти. Этот контроллер использует свой процессор и память и для модулей, и для программы, и для сетевого обмена. Если оставить в нем мало свободной памяти (значение не помню), то он больше недели не работает. :evil:
Видимо происходят коллизии при передаче данных, что требует дополнительной памяти и ... память обнуляется.
|
Вопрос в тему:
Допустим в базе данных тэгов RSvew существуют 10 битовых тегов, ссылающихся на биты DINT-тэга [i:9ed4722585]tagName [/i:9ed4722585]в контроллере [i:9ed4722585]Controller [/i:9ed4722585]следующим образом:
[[i:9ed4722585]Controller[/i:9ed4722585]][i:9ed4722585]tagName[/i:9ed4722585].0
[[i:9ed4722585]Controller[/i:9ed4722585]][i:9ed4722585]tagName[/i:9ed4722585].1
[[i:9ed4722585]Controller[/i:9ed4722585]][i:9ed4722585]tagName[/i:9ed4722585].2
...............................................
[[i:9ed4722585]Controller[/i:9ed4722585]][i:9ed4722585]tagName[/i:9ed4722585].9
Для получения значений этих 10ти битовых тэгов произойдёт 10 запросов данных в контроллер или 1 запрос 32-разрядного тэга [i:9ed4722585]tagName [/i:9ed4722585], а остальная работа по вычислению значения конкретных битов будет выполнена Tag Serverом самого RSView???
|
[quote:22dd915957]Вы не знаете где можно почитать про расположение тегов в памяти(может на примере SLC) и механизмам передачи данных по СontrolNet-у? . [/quote:22dd915957]
В SLC совершенно другой принцип организации памяти, там ничего оптимизировать не надо, там ведь статическое распределние памяти. А в ControlLogix - динамическое.
О принципах оптимизации много написано. Посмотрите, например, вот эти документы, там много полезных советов:
http://www.software.rockwell.com/download/comms/rslinx/controllogix%20data%20collection%20with%20rslinx.ppt
http://www.software.rockwell.com/download/comms/rslinx/clx_perf.zip
http://www.opcwebclient.com/Support/Documents/Performance___Optimization/performance___optimization.html
http://helpdesk.ingeardrivers.com/supportsuite/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=38
http://www.software.rockwell.com/download/comms/rslinx/controllogix%20data%20collection%20troubleshooting%20guide.doc
[quote:22dd915957]Сел, покопался, так пока и не нашел как эти классы к моим тегам прикрутить. [/quote:22dd915957]
Что можно попробовать, так это создать в RSLinx несколько топиков с разными тэгами по группам, а для каждого топика определить настолько болшой интервал сканирования, насколько возможно (для каждого топика в Data Collection определить различные интервалы Polled Messages. Это как бы разные классы сканирования.
[quote:22dd915957]Пока стараюсь настроить RSLinx Gateway, может вытащу одну машину из сегмента ControlNet.[/quote:22dd915957]
Это хорошее решение. У Вас сеть забита в основном unscheduled-тэгами. Надо что-то делать.
(Я включил пока возможность загрузки картинок на этот сервер, смотрите в меню в разделе "Новая информация" - "Добавить картинку")
|
[quote:f5f0ad613e]Тогда нужно радикальное решение, "хирургия". Я думаю, что Вам нужно "отцепить" рабочие станции от шины ControlNet и посадить на отдельный сегмент сети (Ethernet достаточно, но можно и ControlNet). А для этого нужно вставить соответствующие модули в каждое из шасси контроллеров.[/quote:f5f0ad613e]
Хотелось бы радикальные решения пока не применять. :( Вы как то обмолвились, что успешно работают и более сложные системы, дело в правильности конфигурации. Раз у меня не работает, значит что-то не так. Будем искать. :)
[quote:f5f0ad613e]Если Вы уже оптимизировали расположение тэгов в памяти контроллера[/quote:f5f0ad613e]
Вы не знаете где можно почитать про расположение тегов в памяти(может на примере SLC) и механизмам передачи данных по СontrolNet-у? .
Вопросик в тему. У меня есть сотня датчиков температуры. Я определил тип данных TE_Sensor в котором два поля СV-Real(текущее значение в физ. величине); Limit-Real (верхний предел измерения датчика). Стоит ли создавать массив элементов типа TE_Sensor, а в программах работать с алиасами, или можно просто создать сотню тегов?
[quote:f5f0ad613e]поигрались со скан-классами в RSView32[/quote:f5f0ad613e]
нет не поигрался. у меня нет такой возможности. При выборе в редакторе тегов RSView32 в качестве узла локального сервера RSLinx, у меня пропадает список выбора скан-класса. :!: Сел, покопался, так пока и не нашел как эти классы к моим тегам прикрутить.
[quote:f5f0ad613e]поигрались с NUT (а если его увелисить до 15? или больще[/quote:f5f0ad613e]
Уж с кем я наигрался так это с NUT-ом. :D Максимально увеличивал до 40. Видимых изменений так и не получил.
Пока стараюсь настроить RSLinx Gateway, может вытащу одну машину из сегмента ControlNet.
|
Ну, раз у Вас только 2 рабочие станции, то смысла применять сервер, тем более резервированный, нет.
Если Вы уже оптимизировали расположение тэгов в памяти контроллера, поигрались со скан-классами в RSView32 ("быстрые" тэги часто, но по возможности реже, а "медленные"- настолько редко, насколько вообще возможно) и поигрались с NUT (а если его увелисить до 15? или больще?), и т.д., то "терапия! оказлась неэффективной.
Тогда нужно радикальное решение, "хирургия". Я думаю, что Вам нужно "отцепить" рабочие станции от шины ControlNet и посадить на отдельный сегмент сети (Ethernet достаточно, но можно и ControlNet). А для этого нужно вставить соответствующие модули в каждое из шасси контроллеров.
|
[quote:818150be48]Несколько станций выбрано по причине "горячей замены". В предложенном Вами варианте, зависание основной машины приведет к тому, что оператор "ослепнет". [/quote:818150be48]
Вообще-то серверы в RSViewSE распределённые и резервируются, так что не ослепнет :) Просто RSView32 имеет свою нишу применения - 1-2 рабочие станции. Можно и больше. но будет медленнее. Об этом есть соответствующие документы.
[quote:818150be48]Вот уж не думал, что 3 компа это уже тяжело для ControlNet-a Crying or Very sad Надо было изернет для верхнего уровня брать. [/quote:818150be48]
Для собственно ControlNet и больше нетяжело, она прекрасно работает и в более тяжелых системах. Просто надо отчётливо представлять, как она работает, и соответственно этому строить систему :) Это всё опыт, сын ошибок трудных :)
[quote:818150be48]Надо было изернет для верхнего уровня брать[/quote:818150be48]
Да, в многопользовательских системах лучше связывать клиенты с (резервированными) серверами по Ethernet, он именно для этого и предназначен. А уж серверы должны в реальном времени сидеть на шине реального времени ControlNet. Это так было бы идеологически правильно.
[quote:818150be48]
Посчитал сейчас количество тегов, которые таскает 1 "машина" с контроллера 813.(Только как это делается я если честно так и не понял. unscheduled [/quote:818150be48]
Да, именно так. Рабочие станции сканируют тэги циклически и независимо друг от друга, ничего не подозревая о существовании "конкурента". Каждая из них конципирована, как Stand Alone System, а не мультиюзерная HMI, со всеми вытекающими из этого идеологическими последствиями. Для мультиюзерных применений есть ещё Active Display System.
Так что, о scheduled в Вашем случае говорить, увы, не приходится :)
[quote:818150be48]форум вроде на мамбе, да что-то нет такой возможности. [/quote:818150be48]
нет, не на мамбе, а возможность эта отключена из соображений безопасности :)
[quote:818150be48]Кинул Вам по почте пару картинок, писать долго. Если чего-то для полноты картины не хватает, напишите.
[/quote:818150be48]
Да, в принципе, достаточно классический случай. Всё в основном понятно. Я посмотрю, подумаю, как быть, возможно, задам вопрос.
[quote:818150be48]Я в аське на Вас нападать стесняюсь, если вдруг вам будет удобней мой ICQ KPY (256-735-319)[/quote:818150be48]
Спасибо, но мне удобнее так :)
|
[quote:6c6c715f7a]Вот это Вы, безусловно, в точности соблюдвете? [/quote:6c6c715f7a]
ну не безусловно, в выходные буду последние "хвосты" подбирать. Есть мысли, что еще переделать, правда, глаза как обычно боятся.
[quote:6c6c715f7a]Если Вам нужна какая-то синхронность, то нужно, чтобы тэги сканировали себе не все станции, а только одна, а остальные станции получали бы тэги через неё.[/quote:6c6c715f7a]
Несколько станций выбрано по причине "горячей замены". В предложенном Вами варианте, зависание основной машины приведет к тому, что оператор "ослепнет".
[quote:6c6c715f7a]либо RSLinx Gateway, либо вообще RSViewSE сервер(ы) с клиентами.[/quote:6c6c715f7a]
Теперь мне уже прыгать некуда. Денег больше никто не даст. :(
[quote:6c6c715f7a]В принципе, в системах с "тяжелым" траффиком и несколькими рабочими станциями (больше двух)[/quote:6c6c715f7a]
Вот уж не думал, что 3 компа это уже тяжело для ControlNet-a :cry: Надо было изернет для верхнего уровня брать.
[quote:6c6c715f7a]Давайте, может быть, поближе рассмотрим Вашу конфигурацию?[/quote:6c6c715f7a]
Давайте. Я только рад, пока пишу частенько мысли полезные приходят.
Посчитал сейчас количество тегов, которые таскает 1 "машина" с контроллера 813.(Только как это делается я если честно так и не понял. unscheduled ?) Хотел скриншотов парочку прикрутить, форум вроде на мамбе, да что-то нет такой возможности. Кинул Вам по почте пару картинок, писать долго. Если чего-то для полноты картины не хватает, напишите.
Я в аське на Вас нападать стесняюсь, если вдруг вам будет удобней мой ICQ KPY (256-735-319)
|
Постарался исправить проект в соответствии с Вашими замечаниями и рекомендациями указанного Вами документа. Все у меня заработало, но я рано радовался. Появились новые непонятки, я уже голову сломал, поэтому обращаюсь к Вам как к высшей инстанции. Опишу проблему:
Без резервного контроллера все 3 рабочих станции работают отлично, тормозов не наблюдается. (Тормозами я называю реакцию на кнопку включения конура управления) При включении резервного контроллера, рабочие станции вообще перестают управлять процессом. Нормальной работы удалось добиться только при использовании одной машины, то есть как только я запускаю проект на второй, система встает «колом».
NUT 5мс, при использовании других значений, у меня перестает синхронизироваться резервный контроллер. PRI = 160 для всех шасси, выбирал из условий что у меня NUT будет 10. Не знаю уже что бы и придумать. Куда копать, то ли дальше программу оптимизировать, то ли с ControlNet-oм бороться. Задам еще вопросы, может глупые, не судите строго:
1. Передача данных рабочим станциям идет как незапланированные данные? Таким образом, нельзя гарантировать, что измененное значение тега обязательно в реалтайме будет замечено контроллером? Может можно их, каким-то образом запланировать? В проект Logix-а например добавить.
2. В RSLinx окромя создания драйвера и ОРС-топика еще нужно что-то настраивать?
3. После переконфигурации сети RSNetWorx-ом RSLinx надо перезапускать?
4. Непонятна связь системы резервирования и NUT. ИМХО должно же быть наоборот, чем больше время обновления сети, тем больше времени можно уделить синхронизации.
|
Здравствуйте!
Нашел в документации по RSView описание совместного использования значений тегов по сети. В связи с этим возникли вопросы:
1. Правильно ли я понял, что это общение по сети Ethernet?
2. Возможно ли такое общение по сети ControlNet?
3. При таком общении теги считаются внешними или внутренними (т.е. нужна ли на них лицензия)?
|
Предыдущие результаты
Ещё результаты |
|
| |
|