Уважаемый Владимир Невзоров, Ваша первая схема прекрасна в своей простоте и понятности. Её улучшать (усложнять?) более и не требуется. Конечно, это моё имхо : )
Всю детализацию можно поместить в программный код, который будет привязан к определённым иконам.
Ваша схема наглядно показывает план создания программы (и, таким образом, представляет собой укрупнённый (функциональный (?), технологический (?)) алгоритм взаимодействия ПК с прибором.
Владимир Паронджанов писал(а):
Я не понял насчет таймера.
Таймер в начале надо явно обнулить.
Для этого в иконе "Пуск таймера" я бы написал Тimer = 0
Нет никакой необходимости указывать «мелкую» техническую деталь на верхнем уровне алгоритма, который всё равно не будет расписан «до последнего предела». А вот время таймаута информация важная и её присутствие в алгоритме обосновано.
Владимир Невзоров писал(а):
Программа имеет интерфейс. Если мы будем стоять в точке "Пришел ответ?", то окошком не подвигаешь, кнопки не понажимаешь - программа будет только ждать прихода ответа и ни как не реагировать на действия пользователя.
Я тоже сталкивался с подобной проблемой. Начинаешь рисовать алгоритм — вроде бы всё получается. Пытаешься его реализовать — возникают технические трудности. Начинаешь отрисовывать «борьбу с трудностями» - расползается первичный алгоритм.
Через какое-то время я осознал причину : )
Это происходит из-за смешивания понятий.
В Вашем случае:
1.
Алгоритм взаимодействия ПК с прибором («технологический» (?) или «функциональный» (?) или … (?) алгоритм). Фактически реализация некоторого протокола обмена данными.
2.
Управляющий алгоритм работы ПК по реализации протокола взаимодействия ПК с прибором.
В первом случае, алгоритм представляет собой описание последовательности событий, происходящих при определённых условиях и являющихся внешним проявлением существования объектов в «физике» доступного им пространства и изменениями «физики» самого этого пространства. В этом случае не важно внутреннее состояние объектов (ПК и прибора). Важно внешнее проявление поведения этих объектов. Это «технологический» алгоритм. Он изображён на Вашем первом рисунке.
Во втором случае, алгоритм представляет собой описание программы, исполняемой в ПК, со всей совокупностью технический средств ПК, обеспечивающих реализацию протокола взаимодействия ПК с прибором. В большинстве (по крайней мере во многих) случаях этот алгоритм достаточно прописать в тексте к иконам на каком-либо ЯВУ. После трансляции схемы в текст ЯВУ (в данном случае имеются ввиду схемы ИС Дракон) получится программа, реализующая протокол взаимодействия ПК с прибором.
Нет никакой необходимости детализировать схему с точностью до каждого оператора выбранного ЯВУ.
Итак:
Технологический алгоритм конструируем в виде дракон-схемы, а управляющим алгоритмом наполняем иконы. И всё будет хорошо : )
P.S. Кое-что о технологическом (тогда я его ещё так не осознавал : ) алгоритме
здесь.