Показать сообщение отдельно
Старый 09.07.2008, 12:05   #7
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Arrow Ответ: Switch-технология

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

Реализация данного метода в FBD (при помощи мультиплексоров) – ресурсоемкая задача, как по количеству элементов, так и по затратам процессорного времени на проверку всех условий на всех переходах (а т.к. состояния кодируются многозначно, то и проверка занимает больше времени), да и отсутствие условных и безусловных переходов, как таковых, не позволяет использовать «вложенные автоматы», которые надо запускать последовательно, а на время их работы запускающий автомат должен ждать.
Для S7-300/400 есть решение в виде
Альтерман И.З., Шалыто А.А. Формальные методы программирования логических контроллеров

Эту проблему, в принципе, можно решить методом включения всех вложенных автоматов в состояния, из которых они запускаются. Об этом написано тут на стр. 6
Козаченко В.Ф.Эффективный метод программной реализации дискретных управляющих автоматов во встроенных системах управления
но данный метод превращает красивые «читабельные автоматы» в 1 «нечитабельный», хотя в SMLogix можно использовать макросы для вложенных автоматов, что повысит их «читабельность».

Альтернативным методом решения задач логического управления являются Сети Петри.
По сети Петри можно также формально построить управляющую программу на FBD, применяя регулярный подход синтеза управляющего автомата на базе стандартной позиционной структуры (СТПС). В итоге, каждому состоянию соответствует RS триггер, что, в принципе, уменьшает размеры итоговой программы, и избавляет от лишних операций, но уменьшает «читабельность и понимаемость».
Об этом методе можно прочесть в книге «Логическое управление дискретными процессами: Модели, анализ, синтез. Юдицкий С.А. Магергут В.Э.» : М. Машиностроение 1987 г. 176 с. 681.511.01 Ю 165.
К сожалению эту книгу в интернете я найти не смог, в библиотеке тоже , а того что нам давали в универе очень мало.

Если применять процедурные языки программирования PLC (Си, ST) то все перечисленные проблемы снимаются, и Switch-технология становится мощным инструментом правильного программирования.

Цитата:
но - есть такая шняга, читабельность кода называется, так в автоматных структурах - это полная бредятина
с точностью, да наоборот

Цитата:
можно и нужно создавать автоматные проги для серийных дивайсов. убить на это время и деньги а потом тупо тиражировать. потребовались изменения - не вникая создали всё с чистого листа и опять в тираж
Пример: попался новый объект с большой, сложной задачей логического управления, написали прогу обычным способом, сколько времени убили на то, чтобы отладить ее до правильно работающего состояния, потом поставили на объект, там еще месяц отлаживали, потом сдали. Новый объект, другая область, опять сплошные мучения, программирование, отладка, наладка. И бах, вам говорят что ваша прога на первом объекте не так как то работает в определенной ситуации,(хорошо если ничего не произошло серьезного), и вам надо во первых вспомнить что там когда-то было, что вы писали, о чем думали в этот момент, (а это все очень хорошо забывается), и потом еще и внести изменения в прогу.
А применяя Switch-технологию, в которой нужны 4 документа для полного понимания процессов происходящих в объекте и контроллере (словесное описание, схема связей автоматов, граф переходов, и сама прога), может быть вам и не придется ехать на объект, потому что заказчик при приемке мог ознакомиться с точным алгоритмом функционирования, понять ваши мысли, и если есть навыки, сам сможет внести изменения в программу, т.к. он и вы четко знаете и понимаете в каком состоянии сейчас объект, какие условия переходов сейчас проверяются и в каком автомате, и внести изменения очень легко…

В любом случае, применяете вы атоматы при программировании или нет, когда вы пишите программу классическим способом, вы все равно мысленно декомпозируете объект на состояния, только при этом они все у вас в голове, и они как правило не умещаются, и поэтому моск начинает напрягаться и пухнуть, и из за этого появляются такие места в программе про которые вы не подумали, а в Switch-технологии или в любой автоматной, вы думаете 1 раз, проектируя граф переходов, а дальше, вопрос механического преобразования графа в текст программы.
gtfox вне форума   Ответить с цитированием