Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Многопоточность в ADAM 5510( или прерывания)

 Ответить Ответить Страница  <1 34567>
Автор
Сообщение
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Многопоточность в ADAM 5510( или прерывания)
    Опубликовано: 30 Апрель 2009 19:10

1. Ну ваще-то, программа не должна падать по определению. Если падает - то надо переписывать, пока не достигнет нужной устойчивости. Это как организм - пытается жить до последнего, даже при тяжелых повреждениях. Винда - прямая противоположность: чуть чо не так - лапки кверху.

Когда я говорил о выборе ОС то забыл одну очень интересную вещь - драйверы Реального Времени встраиваемые в стандартные ОС.  Из которых я встречал, самая серьезная -  SP RTE , входящая в состав среды CoDeSys.
Этот драйвер пролазит до самого железа, колет кирпич на две части, и делит его с Виндой.  После этого комп часть времени работает на Винду, а часть на ПЛК.  Соотношение частей можно устанавливать с шагом 0,1 мкс.
У системы  SP RTE  есть свой развитый планировщик задач, удобно строится в  CoDeSys.
О серьезности софта говорит тот факт, что когда мы подвешивали Винду  -  ПЛК-часть продолжала работать как ни в чем не бывало !

Вот отличный пример компромисса !  Каждая часть занимается своим делом :  Винда - для раскрасок, расписных интерфейсов (уж это-то она могет !),  РТ-часть - для классического ПЛК, без всяких декораций и с присущей ему надежностью.

Интересно, что обе части могут находиться как на одной машине, так и на разных, обмен данными - по любому современному интерфейсу.  Второй вариант намного лучше, потому-что процессорный модуль можно подобрать наиболее оптимально:  под Винду с графикой - свой,  а под ПЛК - другой, которому даже графическая карта не нужна.  Все вместе получается дешевле чем одна общая машина.

С уважением, SAN

Наверх
SIBER Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 15 Апрель 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 101
Свойства публикации Свойства публикации   Ответить, цитируя автора - SIBER Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 01 Май 2009 22:57
Первоначально опубликовано sanwork

О серьезности софта говорит тот факт, что когда мы подвешивали Винду  -  ПЛК-часть продолжала работать как ни в чем не бывало !

С уважением, SAN

Если Вам удастся привести убедительный пример, когда при зависании Windows (или чего другого) отваливался "нижний уровень" в какой-нибудь системе - будет для всех без исключения крайне интересно и поучительно.

Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 01 Май 2009 23:14

Немного уточню. Винда очень болезненно переносит дисковые операции, особенно с CD/DVD приводами. Это сложилось исторически, и чо-та так и не смогли поправить. Эти типы зависаний довольно глубоко уходят корнями в ядро.  SP RTE  проверялась при вот этих глюках, что весьма убедительно.

С уважением, SAN

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Май 2009 07:53
Первоначально опубликовано sanwork

Немного уточню. Винда очень болезненно переносит дисковые операции, особенно с CD/DVD приводами. Это сложилось исторически, и чо-та так и не смогли поправить. Эти типы зависаний довольно глубоко уходят корнями в ядро.  SP RTE  проверялась при вот этих глюках, что весьма убедительно.


С уважением, SAN


Опишите условия проверки если не трудно. При дисковых операциях подвисает Shell причем если этот Shell эксплорер, что кстати вовсе не обязательно. Процессы не завязанные на неуспешную дисковую операцию протекают в штатном режиме. Попробуйте контролировать работу испытуемого хоста по удаленке, оснастки производительности в этом помогут.
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Май 2009 12:00

 Свои пять копеек внесу. 

Еще DOS  при выполнении файловых операций отключала все прерывания на 10 мс (примерно) при обращении к сектору.  Как результат, отставание часов машины при большом объеме файловых операций и сбои в работе последовательного обмена в момент файловых операций , когда буферизация не спасает (а буфер в 14 байт, вообще говоря, далеко не всегда спасает).  Это собственно все видели.  Скорее всего, этот же механизм перенесен и в винду - винчестеры- то что при  DOS,  что при винде одинаково с компом общаются.  Может его чуть подправили, но скорее всего нет, если было бы можно - сделали еще бы в  DOSе.  Так что, чудеса при файловых операциях во многом отсюда произрастают. Скорострельность машины выручает, но до тех пор, пока работа не связана с прерываниями.

 

Видел такую штуку: при неуспешной файловой операции убивался  Diskonchip.  Причем происходило это настолько достоверно и регулярно, что от него пришлось просто отказаться в компьюторе и уйти на  Diskonmodul, там то уж такого не было.

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Май 2009 12:32
Гадать назачем
Берите "Внутренне устройство Windows..." от Русиновича и Соломона, там все подробно расписано. Windows действительно маскирует все ниже лежащие по приоритету прерывания и операции на момент обработки текущего прерывания. Но приоритет прерывания занимаемого часами один из самых высоких, во всяком случае файловые операции он прерывает. В основе любой платформы лежит простая концепция, принцип. Он как Конституция прост и он же закладывает базовые достоинства и недостатки любой платформы. Так сказать клей для религиозных войн. Если вы хотите понять суть недостатков платформы эта книга вам поможет. Поможет понять также и неоспоримые достоинства коих данная платформа вовсе не лишена как многие полагают. Вопрос применяемости той или иной концепции постороения платформы ИМХО должен рассматриваться этом разрезе, а не сравнением с продуктами дефекации
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Май 2009 13:20
Файловые операции прерывают операции с часами.  Если написано наоборот - врут, мин херц! Вернее так: если идет обращение в файлу - запрещаются все прерывания. Поэтому каков бы приоритет ни был - прерывание будет пропущено. То что я видел в  DOSе - именно пропущено (утеряно). Уже не помню, но когда смотрел как контроллер прерывания работает, то всплыло то, что чтобы было не совсем плохо (вернее плохо, но по очереди) приоритеты прерываний после каждого прерывания вращаются.  Мои попытки жестко назначить приоритеты (хотел чтобы порты все же не теряли символы при обмене) не увенчались успехом, падала система.
При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Май 2009 13:44
эээ... вы сказали что этот механизм был перенесен в Windows, я вам сказал, что это не так. Но как говорил Морфеус я могу только показать вам дверь, войти в нее вам нужно самому
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Май 2009 11:42

Эээ.  Вы прочитали в книжке.  Но, когда вам придеся поправлять обмен или добиваться нормальной работы часов в компе или контроллере, в котором стоит винда, вспомните не соломона, а то что я написал:)

Кстати, писатели на чистую воду выводятся очень просто.  Запускается компьютор на 3 часа без задач. Просто работает.  Смотрим его часы по внешним эталонным. Через три часа опять смотрим.  Второй подход. Все три часа должна крутиться задача которая пишет в файл без перерыва.  Вы получите отставание во втором случае примерно в 5-6 секунд.   Я уже насмотрелся на это, но вы можете посмотреть.

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Май 2009 12:29
Ни разу не видел ничего подобного на своем файловом сервере, 2000 Windows Advansed Server SP 4 синхронизируюсь переодически (раз в неделю) с пулом NTP серверов со стратумом 2 компенсирую отставание порядка 12-15 секунд стабильно. Нагрузка имеет рваный неравномерный характер. По поводу пренебрежения к теории могу сказать, что мифы рожденные невежеством порождают неверные выводы от объема практики не зависящие. DIXI
Наверх
 Ответить Ответить Страница  <1 34567>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz