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

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

 Ответить Ответить Страница  123 7>
Автор
Сообщение
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Многопоточность в ADAM 5510( или прерывания)
    Опубликовано: 10 Апрель 2009 10:32
у меня имеется котнтроллер ADAM-5510M. Надо чтобы в бесконечном цикле выполнялись куча алгоритмов, с другой стороны постоянно надо опрашивать DI ( входы к которым подключена клавиатура ) и если кто клацнет например кнопку СТОП надо моментально среагировать

Можно ли это организовать с помощью мульти потоков, есть ли Multithreading в библиотеках для ADAM5510? или недокументированное что-нибудь, Или как можно это сделать с помощью прерываний?

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


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

Просто сделать опрос IO - одной из задач

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

Наверх
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 09:36
Первоначально опубликовано sanwork

Просто сделать опрос IO - одной из задач


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



Просто у меня получаются циклы в циклах,
а проверять надо постоянно, что муторно.

Ладно, спасибо и на этом
Наверх
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 09:37
Первоначально опубликовано sanwork

Просто сделать опрос IO - одной из задач


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



Ладно, спасибо и на этом

Просто у меня получаются циклы в циклах,
а проверять входы надо постоянно, что муторно.



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


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

Циклы в циклах ? ...

Я ваще-то по другому представлял :  один общий цикл обходит все задачи, и самое главное (!) - не на одной не застревает, а проходит каждую независимо от результата её выполнения. Если чо не сделал в текущем цикле - доделает в следующем и т.д.

Каждая задача состоит из нескольких шагов, и по мере выполнения, если шаг выполнен, переходит на следующий шаг в каждом цикле (или не переходит), может  торчать на одном шагу (тогда используется счетчик) и т.д. и т.п...

И никакой возни с приоритетами и прочее. Такая схема задумана исключить всякие зависания. Простая - как "два байта отослать" !

Конечно есть и недостатки. Так, из-за отсутствия приоритетов все задачи вынуждены работать с одинаковой скоростью. Но, если подумать, то например, чтение вх/вых нет смысла делать чаще других задач, потому что результаты вх/вых нужны всем задачам !

Такой организацией я уже давно с успехом пользуюсь. Практика показала -

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

Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 12:52
В общем тебе нужно реализовать так называемую машину состояний (state machine).
ЗЫ: Почему то практически все программеры про нее забывают.
С уважением!
Наверх
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 14:28
Первоначально опубликовано globus

В общем тебе нужно реализовать так называемую машину состояний (state machine).
ЗЫ: Почему то практически все программеры про нее забывают.


А что за машина состояний ? Я про нее не слышал
Наверх
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 14:29
Первоначально опубликовано sanwork

Циклы в циклах ? ...


......

Такой организацией я уже давно с успехом пользуюсь. Практика показала -


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



Лан спасиба
попробоую
Наверх
QWERT Смотреть выпадающим
Участник
Участник


Присоединился: 10 Апрель 2009
Категория: Afghanistan
Online Status: Offline
Публикации: 55
Свойства публикации Свойства публикации   Ответить, цитируя автора - QWERT Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Апрель 2009 15:29
[QUOTE=sanwork]

Циклы в циклах ? ...


Я ваще-то по другому представлял :  один общий цикл обходит все задачи, и самое главное (!) - не на одной не застревает, а проходит каждую независимо от результата её выполнения. Если чо не сделал в текущем цикле - доделает в следующем и т.д.


Каждая задача состоит из нескольких шагов, и по мере выполнения, если шаг выполнен, переходит на следующий шаг в каждом цикле (или не переходит), может  торчать на одном шагу (тогда используется счетчик) и т.д. и т.п...





вообще приколно, но
одну вещь я не понял:
если я выполнил 5 шагов задачи, 6-ой не прошел
при новом прохождении задачи как мне узнать что сразу на 6-ой шаг
записываь в переменные?
и в самой задаче проверки - если шаг равен 1, равен 2 и т.д.?
Так я понял
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


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

[/QUOTE] ...
А что за машина состояний ? Я про нее не слышал ... [/QUOTE]

Чаще называют  "команд-аппарат", и еще другие названия ..

Надо сказать, что этот механизм обладает широкими возможностями.  Основное  - одна задача может управлять любой другой.  То-есть, если при выполнении процесса нужно вызваать какую-нибудь подзадачу то не надо делать "цикл-в-цикле", а просто нужная задача взводится в состояние активного выполнения. При этом все задачи и подзадачи выполняются на одном уровне, без всяких вложений !  Когда позадача выполнит все нужные шаги, то она переходит в состояние  "выполнено", и при очередном обходе главного цикла  диспетчер задач её больше не вызывает. Вот и всё !

Хоть я и говорил, что в этой многозадачной системе нет приоритетов в явном виде - функционально они есть !  Взаимное управление задачами - не что иное как гибкий механизм динамического формирования приоритетов. И при этом сохраняется предельная простота схемы, что спасает от ненужной путанницы !

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

Наверх
 Ответить Ответить Страница  123 7>

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

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