Segnetics

Вернуться   Segnetics > Форум Segnetics

Форум Segnetics Территория общения

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2008, 17:50   #1
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Switch-технология

Очень полезный сайт.

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ Кафедра «Технологии программирования» http://is.ifmo.ru

Раздел КНИГИ

Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления СПб.: Наука, 1998., 628 с
Шалыто А.А. Логическое управление. Методы аппаратной и программной реализации СПб.: Наука, 2000., 780 c
Шалыто А.А. Алгоритмизация и программирование задач логического управления СПбГУ ИТМО. 1998.
и др.

Раздел Статьи по автоматному программированию

Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию
Шалыто А.А. Автоматное проектирование программ. Алгоритмизация и программирование задач логического управления
Шалыто А.А., Туккель Н.И. SWITCH-технология - автоматный подход к созданию программного обеспечения "реактивных" систем
Шалыто А.А. Алгоритмизация и программирование для систем логического управления и "реактивных" систем
Шалыто А.А., Туккель Н.И. Реализация автоматов при программировании событийных систем

и самое интересное: Как же применить эту технологию к языку программирования FBD!

Шалыто А.А. Реализация алгоритмов логического управления программами на языке функциональных блоков

и это лишь небольшой перечень очень полезной литературы
gtfox вне форума   Ответить с цитированием
Старый 04.07.2008, 15:43   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

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

Контроллеры пока не дожили до этого. Автомат на 20 входных событий выглядит просто чудовищно для сегодняшних ПЛК.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 04.07.2008, 18:26   #3
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Exclamation Ответ: Switch-технология

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

Цитата Этот способ программирования, как и любой способ, связанный с автоматами, позволяет программировать функции только с малым количеством входных данных.
Как раз наоборот, с увеличением сложности проекта, эффективность данного метода возрастает

Примеры
А.А. Шалыто, Н.И. Туккель Проектирование программного обеспечения системы управления дизель-генераторами на основе автоматного подхода

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

Рассмотренный пример демонстрирует то, что разработанные программы позволяет реализовать весьма сложные алгоритмы управления. Их непросто понять, даже используя предложенную технологию, включающую различные схемы, диаграммы и протоколы. Авторам остается только догадываться, насколько возросла бы сложность программирования данной задачи и последующего понимания построенных программ при применении традиционного подхода, в котором для реализации логики используются флаги.
"

Вавилов К.В. LabVIEW и SWITCH-технология. Методика алгоритмизации и программирования задач логического управления

На последней странице даны количественные характиристики оъекта

Вавилов К.В., Шалыто А.А. Что плохого в неавтоматном подходе к программированию контроллеров?

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

Цитата Контроллеры пока не дожили до этого. Автомат на 20 входных событий выглядит просто чудовищно для сегодняшних ПЛК.
Входные события, (логические условия, разрешающие переход по дуге), реализуются стандартной логикой И, ИЛИ, НЕ и автоматы здесь не причем, структура автомата остается не изменной
Шалыто А.А. Реализация алгоритмов логического управления программами на языке функциональных блоков
а если использовать возможности создания макросов в SMLogix то все автоматы будут выглядуть просто замечательно

См. картинку: Структура всех автоматов одинакова. Число мультиплексоров = числу состояний.

Другой вопрос - возможная нехватка памяти. Этот вопрос может решится программированием на СИ (при помощи конструкции оператора switch и многозначным кодированием состояний), причем Visio2Switch сгенерирует код всей логики автоматически, по нарисованному в Visio графу переходов.
Еще один момент - не все любят и умеют программировать PLC на СИ, (в основном из за проблем с реализацией системозависимых операций. Логика программируется элементарно ), поэтому и был придуман язык ST (Pascal-е подобный), который избавляет от системозависимого программирования, и одновременно предоставляет все возможности языка высокого уровня (операторы Case, If, For), он присутствует в CoDeSys, и было бы хоро ввести его в SMLogix, что представляется мне маловероятным
Миниатюры
Нажмите на картинку для увеличения

Название:  1.PNG
Просмотров: 591
Размер:  24.3 Кбайт  
gtfox вне форума   Ответить с цитированием
Старый 05.07.2008, 19:21   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

Так речь как раз о том, что от количества входных данных растёт количество состояний, соответственно растёт число переходов. Получается (!), точнее даже (_!_)

PS. Книжки пока не прочитал, поверхностно оглядел.

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


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 05.07.2008, 22:53   #5
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 058
Благодарил(а): 237 раз(а)
Поблагодарили: 158 раз(а) в 150 сообщениях
По умолчанию Ответ: Switch-технология

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


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 07.07.2008, 14:22   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

Про гемор думаем, вырабатываем решения.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 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 вне форума   Ответить с цитированием
Старый 09.07.2008, 13:07   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

А что "мельницы" - я готов подписаться под всеми словами насчёт графов и трудоёмкости и отладки. И особенно про "моск"

Думаю, что для Си и прочих, умеющих "свитчи" это тоже немного трудновато будет из-за "человеческого фактора". Моск-то пухнет в любом случае, а перебрать все состояния у большого автомата не все могут.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.07.2008, 14:33   #9
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Question Ответ: Switch-технология

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


Этот диалог переходит в разряд "бессмысленных", поэтому на этот вопрос ответа я не требую.
gtfox вне форума   Ответить с цитированием
Старый 10.07.2008, 11:30   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

Если коротко, то проектирование идёт примерно так (не расписана реализация и тестирование):

1 Ознакомиться с заданием, в том числе изучить все доступные материалы, идущие с заданием.
2 Найти информацию по заданию на сервере. Папка PUB/Docs.
3 Провести исследование задачи в интернете. Приоритетна информация производителей, информация с форумов имеет низший приоритет.
4 Составить примерный план реализации задачи: что примерно нужно сделать (несколько вариантов), в каком виде это сделать (в макросе, в нескольких макросах, в существующих макросах).
5 Составить список рисков для задачи. Оценить по списку, затрагивает ли решаемая задача существующие функции, реализуема ли задача в существующих условиях (задача, например, может быть технически невыполнимой или её объём будет заведомо большим - "занять миллион блоков"). На этом этапе допустимы пробные реализации.
6 На основе карты рисков составить детальный план реализации задачи.
7 Провести презентацию задачи для других участников проекта так, как буд-то задача уже реализована, рассказать о задаче, о вариантах её решения, о выбранном варианте, о сопутствующих задаче функциях. О том, как работает задача в рамках существующего продукта.
8 Написать Руководство Пользователя по будущим функциям, которые будут введены/изменены в процессе реализации задачи. Это нужно для более глубокой оценки взаимодействия функций и выработке примерно интерфейса с пользователем (если задание имеет этот интерфейс).
9 Учесть все замечания, полученные в ходе презентации. Если замечания существенны, то вернуться к составлению карты рисков.
11 Реализовать задание.
12 Автономно протестировать реализованную задачу.
13 Если задача взаимодействует с существующими функциями, то провести пробную интеграцию и осуществить тестирование в комплексе.
14 Описать интеграцию, если таковая требуется.
15 Отредактировать Руководство Пользователя, если в процессе реализации что-то было изменено.
16 Работа окончена.
17 Тестирование реализации задания сторонним тестером.


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


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 11.07.2008, 15:15   #11
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Arrow Ответ: Switch-технология

Спасибо за развернутый ответ!

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

Не очень понял, эта папка PUB/Docs у вас на сервере или на segnetics.com
gtfox вне форума   Ответить с цитированием
Старый 11.07.2008, 15:30   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

Это у нас на сервере


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 24.12.2011, 22:58   #13
gtfox
Новичок
 
Регистрация: Dec 2007
Сообщения: 28
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Switch-технология

По этой теме есть сдвиги, относительно языка программирования ST. кому интересно - сюда


---------------
* "Сюда" работает только у зарегистрированных ТАМ пользователей. Поэтому ссылка была удалена модератором.

Последний раз редактировалось Arsie, 26.12.2011 в 10:41
gtfox вне форума   Ответить с цитированием
Старый 14.09.2012, 21:27   #14
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Продолжу по теме Switch-технологии.
Данный подход можно было реализовать еще на Ремиконте Р-130, с определенными ограничениями. Для контроллеров фирмы Segnetics предлагаю использовать следующий макрос (Программа пуска). Граф состояний и переходов легко переложить на шаги. В предлагаемой программе у шага 3 условия: время, С1 и С2. Если заглянуть внутрь шага (блок sw_step) можно увидеть, что его легко массштабировать на большее количество условий. Так же количество шагов можно менять в широких пределах. Конструкция достаточна простая, можно реализовать и в лоджике в виде блоков. Тем более пока альтернативы в виде намечавшихся блоков IF ELSE нет. Так же приведен пример использования номера шага для включения клапана.
Вложения
Тип файла: pdf Программа_пуска горелки.pdf (58.0 Кбайт, 229 просмотров)
Тип файла: msl Программа пуска.msl (346.8 Кбайт, 148 просмотров)
Тип файла: msl PILOT VALVE.msl (4.3 Кбайт, 111 просмотров)
Тип файла: pdf Этап.pdf (215.7 Кбайт, 174 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 17.09.2012, 11:05   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Switch-технология

Цитата:
Сообщение от ujin
Конструкция достаточна простая, можно реализовать и в лоджике в виде блоков.
Поясните, почему именно в виде блоков, а не в виде макросов?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 17.09.2012, 19:28   #16
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Это уменьшит объем этого куска моей программы. Так как подобных макросов у меня используется 6 штук, следовательно уменьшится и общий объем моей программы. Программа будет понятнее для двух других наладчиков, так как будут отсутствовать дополнительные блоки, необходимые для реализации переключений.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 18.09.2012, 20:04   #17
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Цитата:
Сообщение от Arsie
Поясните, почему именно в виде блоков, а не в виде макросов?
Предыдущий ответ конечно же был шуткой.
Ваш вопрос уважаемый Арсений меня несколько удивил.
По моему все достаточно очевидно.
Данный макрос это попытка реализовать SWITCH - технологию.
Которая по сути является неким применением автоматного подхода.
Так же можно говорить о реализации языка SFC в специфическом виде.
Хотя проработав эту тему в виде блоков, применив к реализации ограничения, можно говорить и о поддержке языка SFS с ограничениями.
Реализация автоматного подхода при помощи FBD а не напрямую далеко не самый оптимальный вариант с точки зрения затрат памяти.
Я думаю это надо всем программистам контроллеров. Другое дело, что не все этот подход используют. В приложении два примера: размышления по реализации вообще и пример реализации автоматного подхода в частности на контроллерах TAC. Так же могу привести пример 15-летней давности использования автоматного подхода на ассемблере на первых контроллерах Atmel.
Вложения
Тип файла: pdf По макросу программа пуска.pdf (97.4 Кбайт, 114 просмотров)
Тип файла: pdf Пример автоматного подхода на TAC.pdf (60.5 Кбайт, 128 просмотров)
Тип файла: txt Автоматный подход на ассемблере.txt (1 015 байт, 102 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 17.01.2013, 01:44   #18
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Исправил некорректную работу таймера.
1 отставал на один тик при смене шага.
2 Если задать время 0 загружалось 60 сек.
3 Отображение секунд при тике 0,3 с. было неправильным за счет целочисленного деления. Перед делением увеличил на 10.
Вложения
Тип файла: msl Программа пуска пример.msl (176.2 Кбайт, 133 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 04.02.2014, 22:46   #19
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Увеличил количество состояний (шагов) до 20.
Увеличил количество ветвлений с каждого состояния до 4х (хотя в основном требуется 3 - авария и 2 варианта)
Радикально сократил объем обработчика до 57 блоков. Константы конечно тоже место занимают.
С этим же набором блоков можно увеличить количество состояний до 255 (как правило больше 30 не нужно)
Для сокращения объема памяти можно все ненужное поудалять. Мультиплексоры уменьшить.
В связи с этим применение switch технологии стало доступнее. А реализация, как я и писал ранее, вырождается в набор таблиц переходов и небольшой обработчик.
Вложения
Тип файла: rar Stage_v3.rar (44.2 Кбайт, 84 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 04.02.2014, 23:29   #20
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Проверил на 25 пикселе. Влезло 35 таких макросов в рабочей компоновке. Объем программы FBD 2241, UI 0161. Тик 95.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 17.03.2014, 09:49   #21
Faster
Senior Member
 
Аватара для Faster
 
Регистрация: Jun 2012
Сообщения: 187
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Switch-технология

Вау ... аж удивился увидев тут такое, хочу процитировать слова одного программиста:

Настоящим программистом может себя называть только тот кто не видит разницы между языками программирования и как переводчик знающий 12 языков на вопрос "а на каком языке вы думаете" отвечает "на всех сразу".

Добавлю :

Switch технология не панацея есть задачи реализация которых на ней не просто будет сильно затруднена но и подчас просто иметь не реальный размер и уж я мочу про читабельность...

В действительности тут упоминались языки SFC и ST , собственно SFC это не что иное как попытка писать программу чем то приближенным к диаграмме состояний, что на мой взгляд очень специфично ...
ST это конечно не вариант паскаля, но тоже не плохой вариант хотя нет жёсткой реализациии четких правил что приводит к тому что могут быть разночтения, и только LI и FBD имеют жёсткие требования и 100% переносимость... если речь идет об этом, но увы с читабельностью у обоих не ахти ...

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

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

По этому стоит использовать наиболее оптимальный язык для каждой задачи...


еще тут упоминалась КодеСис, честно считаю данный софт самым неуданым примером универсализации, и попыткой впихать не впихуемое...


Вот все говорят Asembler какая гадость ... как можно на нем писать , можно и даже нужно ибо быстрее и эффективнее чем на нем написать не на чем, но сразу встает вопрос о том что это мутарно, да именно по этому и не кто не пишет ... хотя вспоминаю времена Tasm Masm а постоянное чтение NG ох и времечко жэ было ...


__________________
дайте мне компилятор ДНК и сотворю мир (с) Я
Faster вне форума   Ответить с цитированием
Старый 17.03.2014, 13:23   #22
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Цитата:
Сообщение от Faster Посмотреть сообщение
Switch технология не панацея есть задачи реализация которых на ней не просто будет сильно затруднена но и подчас просто иметь не реальный размер и уж я мочу про читабельность...
Switch технология не панацея, но есть задачи реализация которых на ней не просто будет сильно облегчена, но и подчас просто иметь значительно меньший размер и уж я мочу про читабельность...
Ваше выражение истинно, однако после применения NOT к Вашему выражению получается так же истинное выражение. Следовательно Ваше выражение не несет информации.
Цитата:
Сообщение от Faster Посмотреть сообщение
ST это конечно не вариант паскаля, но тоже не плохой вариант хотя нет жёсткой реализациии четких правил что приводит к тому что могут быть разночтения, и только LI и FBD имеют жёсткие требования и 100% переносимость... если речь идет об этом, но увы с читабельностью у обоих не ахти ...
Посмотрите IEC 61131, IEC 61499. Все там определено насчет IL, ST, LD, FBD, SFC.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 24.03.2014, 14:26   #23
1exan
Senior Member
 
Регистрация: Nov 2008
Адрес: Алтайский край
Сообщения: 133
Благодарил(а): 2 раз(а)
Поблагодарили: 6 раз(а) в 6 сообщениях
По умолчанию Ответ: Switch-технология

ujin, а не приходилось решать задачу, когда программа представляет собой не последовательность состояний, а что-то похожее на граф, когда переходы могут осуществляться в различных направлениях между состояниями?
Что-то похожее на это:
Цитата
Сообщение от gtfox Посмотреть сообщение
По сети Петри можно также формально построить управляющую программу на FBD, применяя регулярный подход синтеза управляющего автомата на базе стандартной позиционной структуры (СТПС). В итоге, каждому состоянию соответствует RS триггер,...
1exan вне форума   Ответить с цитированием
Старый 24.03.2014, 17:02   #24
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Цитата
Сообщение от 1exan Посмотреть сообщение
ujin, а не приходилось решать задачу, когда программа представляет собой не последовательность состояний, а что-то похожее на граф, когда переходы могут осуществляться в различных направлениях между состояниями?
Что-то похожее на это:
Количество ветвлений по событиям из каждого состояния в ранее выложенном макросе равно 4 плюс ветвление по окончанию времени.
Т.е. из каждого состояния можно разойтись в 5 разных сторон.
Вот например недоделанная заготовка на насосную станцию. В порядок не стал приводить так как стало все понятно по переходам.
Работает на объекте.
Вложения
Тип файла: pdf Насосная группа_все_частот.pdf (95.4 Кбайт, 163 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 25.03.2014, 14:33   #25
1exan
Senior Member
 
Регистрация: Nov 2008
Адрес: Алтайский край
Сообщения: 133
Благодарил(а): 2 раз(а)
Поблагодарили: 6 раз(а) в 6 сообщениях
По умолчанию Ответ: Switch-технология

Спасибо, попробую разобраться в макросе
1exan вне форума   Ответить с цитированием
Старый 16.05.2014, 07:27   #26
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 759
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Switch-технология

Исправлены мелкие недостатки. Сигнал окончания выдается постоянно.
Переходы по нулевому времени выполняются каждый такт. Убрал ветвления по условиям больше 2. Так как больше 2 х ветвлений по условиям и одно по времени используется очень редко. Если надо больше можно поставить дополнительно мультиплексоры.
Вложения
Тип файла: rar Stage2_v3.2.rar (59.4 Кбайт, 147 просмотров)


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 05:08.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023