DRAKON.SU

Текущее время: Суббота, 27 Февраль, 2021 03:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Взаимодействие ПК с прибором
СообщениеДобавлено: Среда, 30 Декабрь, 2015 12:24 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Здравствуйте уважаемые форумчане!
Выкладываю очередную схему!
Владимир Паронджанов, если не сложно могли бы подсказать что так/не так.

|-------------------------------------|
|Дополнительная информация |
|-------------------------------------|
1. Подключение прибора
Чтобы установить связь с прибором нужно выполнить следующий алгоритм:

1. Взять провод USB-A <-> USB-B.
2. Воткнуть провод в ПК концом USB-A.
3. Воткнуть провод в прибор концом USB-B.
4. Запустить программу
5. Нажать в программе кнопку "Поиск приборов"
6. Дождаться вывода информации о найденном приборе

2. Общение с прибором по протоколу modbus
По протоколу есть 1 ведущее и до 255 ведомых устройств.
У каждого ведомого устройства есть свой уникальный адрес (с 1 по 255).
Ведущим в данном случае является ПК.

Чтобы найти прибор программа:
1. Создает команду на чтение определенного участка памяти в приборе - регистр с информацией ("номер прибора").
"Номер прибора" - просто дополнительная информация о приборе.
2. Отправляет команду на чтение по адресу "1"
3. Если есть прибор с таким адресом, он ответит.
Если никто не ответил, будем посылать по адресу "2" и т.д.

4. Как только прибор ответил, мы отправляем новую команду на чтение.
Читаем еще один регистр с информацией ("маска").
5. Выводим информацию о найденном приборе.


Вложения:
Поиск приборов(2).png
Поиск приборов(2).png [ 28.54 КБ | Просмотров: 14225 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Среда, 30 Декабрь, 2015 13:33 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Я не понял насчет таймера.

Таймер в начале надо явно обнулить.

Для этого в иконе "Пуск таймера" я бы написал Тimer = 0

Когда он досчитает до 100 мс (или до другого нужного Вам времени), надо использовать икону "Синхронизатор (по таймеру)".

Подробности прочитайте здесь, стр. 205 - 221.

Что такое "таймер сработал?" не ясно. Предполагаю, что это значит Timer = 100 mc

Или нет? Надо уточнить.

Предполагаю (но не уверен), что Синхронизатор надо прицепить слева от иконы Вопрос "Пришел ответ?"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Понедельник, 04 Январь, 2016 14:44 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Владимир Паронджанов писал(а):
Я не понял насчет таймера.
Предполагаю (но не уверен), что Синхронизатор надо прицепить слева от иконы Вопрос "Пришел ответ?"

Всё верно! Я понял Вас!
Единственное, вопрос оказался глубже, чем на первый взгляд.
Расшифрую "Пришел ответ?".

Чтобы программа не стояла на одном месте данная функция реализована параллельно.
Здесь бы применить "вставку" + "параллельный процесс".

Насчет "вставки". В учебники про сам Дракон Вы описывали как ее использовать.
Там смысл, что помещаешь рядом с силуэтом.
Затем, в самом конце, Вы говорили, что "вставку" нужно делать отдельной веткой.
Пока не разобрался...

Я понимаю, что сейчас, возможно каша в голове, т.к. я не совсем точно выражаю, что хочу получить.
Попробую еще раз, более обстоятельно описать суть.

Программа имеет интерфейс. Если мы будем стоять в точке "Пришел ответ?", то окошком не подвигаешь, кнопки не понажимаешь - программа будет только ждать прихода ответа и ни как не реагировать на действия пользователя.
Поэтому, здесь, после запуска таймера, программа просто ожидает других действий пользователя и реагирует на них.
Таймер крутится сам по себе где-то.
И, если за 100мс что-то пришло - таймер останавливаем и запускаем алгоритм обработки принятого сообщения.
Если за 100мс ничего не пришло, таймер сам остановится и что-то выполнится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Вторник, 05 Январь, 2016 11:52 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Владимир, показываю, как использовать иконы Пуск таймера и Синхронизатор.
Обозначим через А переменную таймера.

А := 0 означает обнуление и запуск таймера.
А = 100мс означает, что переменная таймера А достигла значения 100мс. В этот момент надо остановить таймер А.
Таймер работает параллельно с другими процессами.

Я бы, например, предложил такую схему (если у Вас нет возражений). Эту схему надо совместить с Вашей схемой.
Сделайте это и покажите, что получилось.

Вложение:
Рис. 999. Пуск таймера для Невзорова  .png
Рис. 999. Пуск таймера для Невзорова .png [ 14.64 КБ | Просмотров: 14170 ]


Владимир Невзоров писал(а):
Насчет "вставки". В учебники про сам Дракон Вы описывали как ее использовать.
Там смысл, что помещаешь рядом с силуэтом.
Затем, в самом конце, Вы говорили, что "вставку" нужно делать отдельной веткой.
Тут что-то не то. Желательно дать точную цитату из моей книги.

Икона Вставка может выполнять три задачи:

— процедура,
— функция,
— икона-заместитель, которая говорит, что алгоритм с таким названием нарисован в другом месте (собственно "вставка").
Можно сказать по-другому:
Икона Вставка содержит название алгоритма и сообщает, что алгоритм с таким названием нарисован в другом месте.

Владимир, мои электронные книги Вы можете скачать здесь:
http://drakon.su/knigi_vladimira_parondzhanova._skachat

Лучше всего пользоваться книгой "Учись":
http://drakon.su/_media/biblioteka_1/01 ... linnik.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 09 Январь, 2016 13:34 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Владимир Паронджанов, вот что получилось.

Вложение:
4. Алгоритм программы, доработанный с Владимиром Паронджановым.png
4. Алгоритм программы, доработанный с Владимиром Паронджановым.png [ 43.61 КБ | Просмотров: 14136 ]


Как Вы показывали таймер не совсем получилось применить.
Таймер останавливал иконой "Действие".

По поводу программы. Подразумевается, что все начинается с того как пользователь нажмет кнопку (запустит первую ветку - "Формирование запроса на чтение № прибора") и завершится, когда данные с прибора будут\не буду прочитаны, т.е. прибор будет\не будет найден.

Ветка "Обработка входящего сообщение" здесь - это прерывание, которое наступает само по себе - когда придет сообщение.
Подразумевается, что на приход сообщение отводится 100мс. Если в это время сообщение не пришло, нас больше не интересует, что пришло. К примеру, если ответ пришел на 101 миллисекунде - он никак не обработается.

По поводу книг. Понимаю, что, может быть, основы не использую. На самом деле я прочитал две Ваших книги. Первая про Дракон, вторая "Как улучшить работу ума". Просто давно не применял то что изучил.
Купил две Ваших книги - "Дружелюбные алгоритмы...", "Учись писать, читать"... В скором времени собираюсь их прочесть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 09 Январь, 2016 23:40 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Владимир Паронджанов писал(а):
Владимир, показываю, как использовать иконы Пуск таймера и Синхронизатор...
Обозначим через А переменную таймера.
А := 0 означает обнуление и запуск таймера.
А = 100мс означает, что переменная таймера А достигла значения 100мс. В этот момент надо остановить таймер А.
Таймер работает параллельно с другими процессами.
Вложение:
Рис. 999. Пуск таймера для Невзорова .png


Данный пример иллюстрирует достаточно тонкую и проблематичную вещь.

ДРАКОН вроде бы отражает (в виде линий) управляющий граф программы - с единственным потоком управления.
При "взводе" таймера на самом деле запускается параллельный процесс - о чем и пишет выше Владимир Даниелович.
При истечении УВИ (уста(вки)новленного временного интервала) произойдет активация иконы, к которой "присоединена" соответствующая. Однако! Это должно быть выполнено не сразу же после выполнения действия "взвод таймера". А своевременно - по истечении УВИ.

После этого логично было бы прервать линию, отражающую поток управления (в данном примере Владимир Даниелович использует пунктир). Нарисовав, например, икону "Конец" (или некую ее вариацию). По истечении УВИ у нас будет некий новый "вход" в программу.

Однако! На большинстве известных мне ДРАКОН-схем рисуется линия, от иконы "взвод таймера", к следующей иконе. Возникает неоднозначность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Пятница, 15 Январь, 2016 09:41 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
TAU писал(а):
Владимир Паронджанов писал(а):
Владимир, показываю, как использовать иконы Пуск таймера и Синхронизатор...
Обозначим через А переменную таймера.
А := 0 означает обнуление и запуск таймера.
А = 100мс означает, что переменная таймера А достигла значения 100мс. В этот момент надо остановить таймер А.
Таймер работает параллельно с другими процессами.
Вложение:
Рис. 999. Пуск таймера для Невзорова .png


Данный пример иллюстрирует достаточно тонкую и проблематичную вещь.

ДРАКОН вроде бы отражает (в виде линий) управляющий граф программы - с единственным потоком управления.
При "взводе" таймера на самом деле запускается параллельный процесс - о чем и пишет выше Владимир Даниелович.
При истечении УВИ (уста(вки)новленного временного интервала) произойдет активация иконы, к которой "присоединена" соответствующая. Однако! Это должно быть выполнено не сразу же после выполнения действия "взвод таймера". А своевременно - по истечении УВИ.

После этого логично было бы прервать линию, отражающую поток управления (в данном примере Владимир Даниелович использует пунктир). Нарисовав, например, икону "Конец" (или некую ее вариацию). По истечении УВИ у нас будет некий новый "вход" в программу.

Однако! На большинстве известных мне ДРАКОН-схем рисуется линия, от иконы "взвод таймера", к следующей иконе. Возникает неоднозначность.


К сожалению, Владимир Даниелович не отвечает...
А это был бы мой следующий вопрос. Я хотел предложить полный алгоритм работы программы. Он как-раз и подразумевает главный поток управления и действия при нажатие разных кнопок. Т.е. это прерывания. Как изобразить алгоритм с этом случае?Писать ли в основном потоке управления switch - т.е. какая кнопка нажата и переходить ли в соответствующую ветвь? Может так сделать? Опять же, что делать с таймером? Так же как сейчас оставить?

А ведь по этому принципу и работают все программы на нашем предприятии. Опиши я принцип, смог бы описать любую программу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Пятница, 15 Январь, 2016 10:12 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Владимир Невзоров, в Вашей последней схеме я не заметил ошибок.

Мне очень нравится Ваше стремление добраться до сути. Вы очень хорошо делаете, выкладывая дракон-схемы на общее обозрение.

У меня есть мелкое замечание. По-моему, Вы не поняли назначение иконы "Синхронизатор" и не используете ее.

Отсутствие синхронизатора в Вашей схеме это не ошибка. Но синхронизатор мог бы упростить схему, сделать ее более красивой и точной.

=======================

К сожалению, я очень ограничен по времени. TAU сделал интересное замечание, я отвечу на него позже.

Владимир, советую Вам выкладывать побольше дракон-схем. Вы получите больше замечаний от разных участников форума.

Успехов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Пятница, 15 Январь, 2016 13:34 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Владимир Паронджанов писал(а):
Владимир Невзоров, в Вашей последней схеме я не заметил ошибок.
У меня есть мелкое замечание. По-моему, Вы не поняли назначение иконы "Синхронизатор" и не используете ее.

Отсутствие синхронизатора в Вашей схеме это не ошибка. Но синхронизатор мог бы упростить схему, сделать ее более красивой и точной.

=======================

К сожалению, я очень ограничен по времени. TAU сделал интересное замечание, я отвечу на него позже.


Еще раз изучил работу таймера с синхронизатором в книге "УЧИСЬ ПИСАТЬ, ЧИТАТЬ И ПОНИМАТЬ АЛГОРИТМЫ".
Везде синхронизатор останавливает выполнение алгоритма до наступления нужного события ( события = таймер принял определенное значение). У меня же в программе за эти 100 мс обрабатываются все действия пользователя. Программа не стоит в одной точке. Я думаю Ваш ответ TAU многое прояснит.

P.S. Возможно ответ кроется в использование вставок, но практически я их еще не применял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Пятница, 15 Январь, 2016 17:07 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Давайте посоветуемся. Владимир, у Вас в иконе Выбор написано "Флаг запроса". Мне кажется, можно слева к этой иконе прицепить икону синхронизатор, внутри синхронизатора написать Т = 100мс

Как Вы считаете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 16 Январь, 2016 18:21 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Владимир Паронджанов писал(а):
Давайте посоветуемся. Владимир, у Вас в иконе Выбор написано "Флаг запроса". Мне кажется, можно слева к этой иконе прицепить икону синхронизатор, внутри синхронизатора написать Т = 100мс

Как Вы считаете?


Владимир Даниелович, я там понимаю Вы говорите про ветку "Рабочий режим программы", т.е. как выразился TAU "Главный поток управления."?

Конечно можно.
Т.е. мы проходим по развилке |T = 100 мс?|------- >|Да|
И снова зачем-то подстраховываемся синхронизатором?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 16 Январь, 2016 20:31 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Цитата:
Конечно можно.
Т.е. мы проходим по развилке |T = 100 мс?|------- >|Да|
И снова зачем-то подстраховываемся синхронизатором?


Это не подстраховка. Мне кажется, использование синхронизатора позволит удалить две иконы Вопрос:

— Таймер Т включен?
— Т = 100мс

Вы согласны? Если да, то выложите исправленную схему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 16 Январь, 2016 20:55 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Просто следую Вашему совету. Правильно ли я сделал?

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

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

P.S. Владимир Даниелович, не могли бы дать свой действующий e-mail. Я немного не по теме хотел бы у Вас спросить


Вложения:
Эра.png
Эра.png [ 15.44 КБ | Просмотров: 13987 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Суббота, 16 Январь, 2016 22:34 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5090
Откуда: Москва
Владимир Невзоров писал(а):
Просто следую Вашему совету. Правильно ли я сделал?
Да, правильно.

Владимир Невзоров писал(а):
Мне кажется в таком варианте программа будет висеть в одной точке - в точке с синхронизатором.
Да, она будет ждать наступления момента Т = 100мс. В этот момент программа опросит переключатель и пойдет дальше.

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

Или я не прав? Если не прав, объясните в чем разница.

==================

1. Таймер — это параллельный процесс, который работает одновременно с основной программой.

2. Возможны два режима работы.
— Таймер запускается с помощью RTOS (опрационная система реального времени).
— таймер создается без RTOS.

Мой адрес vdp2007@bk.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 13:59 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Владимир Паронджанов писал(а):
Владимир Невзоров писал(а):
Просто следую Вашему совету. Правильно ли я сделал?
Да, правильно.

Владимир Невзоров писал(а):
Мне кажется в таком варианте программа будет висеть в одной точке - в точке с синхронизатором.
Да, она будет ждать наступления момента Т = 100мс. В этот момент программа опросит переключатель и пойдет дальше.

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

Или я не прав? Если не прав, объясните в чем разница.


Попробую объяснить что имел в виду.

Моя программа работает следующим образом.
Есть основной интерфейс программы - разные поля и кнопки.
При нажатие на какую-нибудь кнопку программа реагирует - выполняется определенный алгоритм.
Если в алгоритме запускается таймер, программа не теряет возможность отвечать пользователю (выполнять определенный алгоритм) при нажатие на какую-нибудь другую кнопку.

Пример.
Вторая выложенная мною схема является примером обработки события (запуска выполнения алгоритма) при нажатие на кнопку "Поиск приборов".
На ней присутствует ветка "Рабочий режим программы". Ветка, подразумевающая способность программы реагировать на действия пользователя.
Чтобы было наглядней, приведу мою версию реализации данной возможности с помощью переключателя
Вложение:
Эра2.png
Эра2.png [ 21.83 КБ | Просмотров: 13968 ]


Плюс данной реализации - видно, что инкрементирование таймера не мешает возможности программы по обслуживанию действий пользователя.
Минус данной реализации - непонятно как программа выйдет на обработку события по таймеру. Т.е. началась выполняться, к примеру, ветка "Запуск теста №2". В это время T = 100 мс. Ничего не произойдет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 14:10 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1154
Владимир Невзоров писал(а):
Ветка, подразумевающая способность программы реагировать на действия пользователя.

Не бывает веток способных реагировать на действия пользователей.
Ветка выполняется только при передаче ей управления.

Взаимодействие программы с программой возможно 2-я способами:

1. При отсутствии ОС. В программе (процедуре) в цикле запрашивается состояние органов управления, при изменении выполнение передается на выполнения соответствующего действия, при его завершении выполнение возвращается в цикл запроса состояния органов управления.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 14:44 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
LKom писал(а):
Владимир Невзоров писал(а):
Ветка, подразумевающая способность программы реагировать на действия пользователя.

Не бывает веток способных реагировать на действия пользователей.
Ветка выполняется только при передаче ей управления.

Взаимодействие программы с программой возможно 2-я способами:

1. При отсутствии ОС. В программе (процедуре) в цикле запрашивается состояние органов управления, при изменении выполнение передается на выполнения соответствующего действия, при его завершении выполнение возвращается в цикл запроса состояния органов управления.

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


Программа выполняется на ОС Windows. Вот мне и надо показать, что в целом Программа находится в состоянии ожидания. При это программа ожидает:
1) Воздействия пользователя на органы управления;
2) Наступления T = 100 мс (если таймер T запущен);
Как возможно это изобразить?


Последний раз редактировалось Владимир Невзоров Воскресенье, 17 Январь, 2016 14:46, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 14:46 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Уважаемый Владимир Невзоров, Ваша первая схема прекрасна в своей простоте и понятности. Её улучшать (усложнять?) более и не требуется. Конечно, это моё имхо : )

Всю детализацию можно поместить в программный код, который будет привязан к определённым иконам.

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

Владимир Паронджанов писал(а):
Я не понял насчет таймера.

Таймер в начале надо явно обнулить.

Для этого в иконе "Пуск таймера" я бы написал Тimer = 0


Нет никакой необходимости указывать «мелкую» техническую деталь на верхнем уровне алгоритма, который всё равно не будет расписан «до последнего предела». А вот время таймаута информация важная и её присутствие в алгоритме обосновано.


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


Я тоже сталкивался с подобной проблемой. Начинаешь рисовать алгоритм — вроде бы всё получается. Пытаешься его реализовать — возникают технические трудности. Начинаешь отрисовывать «борьбу с трудностями» - расползается первичный алгоритм.

Через какое-то время я осознал причину : )

Это происходит из-за смешивания понятий.

В Вашем случае:

1.
Алгоритм взаимодействия ПК с прибором («технологический» (?) или «функциональный» (?) или … (?) алгоритм). Фактически реализация некоторого протокола обмена данными.

2.
Управляющий алгоритм работы ПК по реализации протокола взаимодействия ПК с прибором.

В первом случае, алгоритм представляет собой описание последовательности событий, происходящих при определённых условиях и являющихся внешним проявлением существования объектов в «физике» доступного им пространства и изменениями «физики» самого этого пространства. В этом случае не важно внутреннее состояние объектов (ПК и прибора). Важно внешнее проявление поведения этих объектов. Это «технологический» алгоритм. Он изображён на Вашем первом рисунке.

Во втором случае, алгоритм представляет собой описание программы, исполняемой в ПК, со всей совокупностью технический средств ПК, обеспечивающих реализацию протокола взаимодействия ПК с прибором. В большинстве (по крайней мере во многих) случаях этот алгоритм достаточно прописать в тексте к иконам на каком-либо ЯВУ. После трансляции схемы в текст ЯВУ (в данном случае имеются ввиду схемы ИС Дракон) получится программа, реализующая протокол взаимодействия ПК с прибором.

Нет никакой необходимости детализировать схему с точностью до каждого оператора выбранного ЯВУ.

Итак:
Технологический алгоритм конструируем в виде дракон-схемы, а управляющим алгоритмом наполняем иконы. И всё будет хорошо : )

P.S. Кое-что о технологическом (тогда я его ещё так не осознавал : ) алгоритме здесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 15:01 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Владимир Невзоров писал(а):
Программа выполняется на ОС Windows. Вот мне и надо показать, что в целом Программа находится в состоянии ожидания. При это программа ожидает:
1) Воздействия пользователя на органы управления;
2) Наступления T = 100 мс (если таймер T запущен);
Как возможно это изобразить?

Например, через события. Что-то похожее было здесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Взаимодействие ПК с прибором
СообщениеДобавлено: Воскресенье, 17 Январь, 2016 15:14 

Зарегистрирован: Понедельник, 14 Декабрь, 2015 19:18
Сообщения: 126
Ильченко Эдуард писал(а):
Владимир Невзоров писал(а):
Программа выполняется на ОС Windows. Вот мне и надо показать, что в целом Программа находится в состоянии ожидания. При это программа ожидает:
1) Воздействия пользователя на органы управления;
2) Наступления T = 100 мс (если таймер T запущен);
Как возможно это изобразить?

Например, через события. Что-то похожее было здесь.

Ильченко Эдуард, спасибо! Прочел про насосную станцию и данную схему тоже посмотрел.

Насчет приведенной Вами схемы "Двойной бункер". Всем хороша. Только таймер ни как не получается использовать как он работает у меня. В моей программе при наступление T = 100 мс исполнение программы перескакивает в место обработки соответствующего события.

У микроконтроллеров это называется "прерыванием". Его суть:
1) Запоминание нынешней строчки программы;
2) Переход на строку обработки прерывания;
3) Выполнение данного куска программы;
4) Переход на строчку из п. 1)
5) Продолжение выполнения программы

===============================
Моё видение построения алгоритма изменилось.
1) Изначально я хотел попросить Вас помочь мне в описание алгоритма "Поиск прибора", который существует в моей программе.
2) Затем, хотел предоставить полное описание работы моей программы.

Сейчас находясь на шаге 1) я понимаю, что у меня не получается его описать в полной мере не переходя на шаг 2).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2021, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB