Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.12.2015, 16:38   #1
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Smile Секвенции как?

У меня есть задача автоматизации котла газового. Там есть 2 процессе где ябы использовал SFC.

1, Запуск котла. Начинается с продувки котла умтановлено количество времен, потом включается запальник и клапан газовый запальника. Потом искра выключается но газ идет. Потом включается малое горение и идет прогрев котла и потом включается большое горение.

2, Переключение из малого в большое горение и обратно. Здесь сначала задвижка переходит в положение нужное потом срабатывают клпана с разницой примерно в 100мс. И обратно так же.

Скажите как можно имулировать или можно пример программы проследовательных действий. Не обязательно по теме можно просто что угодно что бы понять принцип как правльно на FBD писать SFC.
Sergey Romanov вне форума   Ответить с цитированием
Старый 24.12.2015, 17:25   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение

Потом искра выключается но газ идет.

Потом включается малое горение и идет прогрев котла
Я понимаю как работают котлы, но позвольте придраться. Иначе трудно будет вам объяснить, что и как делать.

Чем выделенные режимы отличаются друг от друга?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 24.12.2015, 22:44   #3
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
принцип как правльно на FBD писать SFC.
Если в двух словах, то SFC - набор шагов с переходами между шагами. В шаге что-то выполняется (обработка выходов), а в переходе что-то сравнивается с условием (обработка входов).
Если я правильно понял, то основное затруднение - это выполнение FBD активных шагов и невыполнение FBD неактивных шагов. Так?
Тогда проблема решается очень просто: на поляну ставятся RS-триггеры по количеству шагов. На вход S триггера подключается выход FBD выполнения условия перехода в данный шаг. На вход R триггера подключается выход FBD выполнения условия перехода из данного шага. Выход триггера является разрешением для FBD выполнения действий в шаге.
Все очень просто...


__________________
Автомат АК - самый распространенный преобразователь стека в очередь
Sergey Cherevko вне форума   Ответить с цитированием
Старый 25.12.2015, 09:27   #4
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата:
Сообщение от Arsie Посмотреть сообщение
Я понимаю как работают котлы, но позвольте придраться. Иначе трудно будет вам объяснить, что и как делать.

Чем выделенные режимы отличаются друг от друга?
Трудно ответить не понимая к чему вы хотите подвести. И чем?

Вы понимаете что это все не идеально описаный процесс? Там много других дейсвий еще есть которые я не упомянул. Может вы это имеете в виду?
Sergey Romanov вне форума   Ответить с цитированием
Старый 25.12.2015, 09:32   #5
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата:
Сообщение от Sergey Cherevko Посмотреть сообщение
Если в двух словах, то SFC - набор шагов с переходами между шагами. В шаге что-то выполняется (обработка выходов), а в переходе что-то сравнивается с условием (обработка входов).
Если я правильно понял, то основное затруднение - это выполнение FBD активных шагов и невыполнение FBD неактивных шагов. Так?
Тогда проблема решается очень просто: на поляну ставятся RS-триггеры по количеству шагов. На вход S триггера подключается выход FBD выполнения условия перехода в данный шаг. На вход R триггера подключается выход FBD выполнения условия перехода из данного шага. Выход триггера является разрешением для FBD выполнения действий в шаге.
Все очень просто...
Звучит не сложно. А если нужно сбрость секвенцию и начать с начала, можно просто R на все тригеры шагов. Ну честно сказать я что то подобное и предпологал. Спросил, чисто для того что бы убедится что нет методики лучше.
Sergey Romanov вне форума   Ответить с цитированием
Старый 25.12.2015, 10:02   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Трудно ответить не понимая к чему вы хотите подвести. И чем?

Вы понимаете что это все не идеально описаный процесс? Там много других дейсвий еще есть которые я не упомянул. Может вы это имеете в виду?
Значит вы понимаете, что на некорректно заданный вопрос возможно дать только некорректный ответ.



Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Звучит не сложно. А если нужно сбрость секвенцию и начать с начала, можно просто R на все тригеры шагов. Ну честно сказать я что то подобное и предпологал. Спросил, чисто для того что бы убедится что нет методики лучше.
Нет методик лучше или хуже, просто SFC не оставляет вам выбора, а в FBD выбор есть. В том числе можно и "эмулировать" SFC на триггерах.

Программной памяти в наших контроллерах достаточно, поэтому не вижу ничего плохого в таком подходе, если он вам привычен.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 25.12.2015, 11:28   #7
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата:
Сообщение от Arsie Посмотреть сообщение
Значит вы понимаете, что на некорректно заданный вопрос возможно дать только некорректный ответ.

Нет методик лучше или хуже, просто SFC не оставляет вам выбора, а в FBD выбор есть. В том числе можно и "эмулировать" SFC на триггерах.

Программной памяти в наших контроллерах достаточно, поэтому не вижу ничего плохого в таком подходе, если он вам привычен.
Я удивляюсь вашей способности столько писать и ни чем не помочь. Можно пример эмуляции на тригерах? Это был мой вопрос. В реале я просто хотел посмотреть как разработчик котролера решил бы эту задачу. Мне не нужно решать именно мою задачу с котлом. Как я и сказал если вы сделаете постую программу в 2 шага и одним переходом, мне будет достаточно что бы понять принцип и технику которую вы бы использовали.

В чем не коректность моего вопроса я не понимаю. Ну не описал я задачу четко, но мне не нужно помочь решить задачу, я сам ее решу. Я вообще ее описал для примера. Сейчас мне интересно как вы решилибы какойто секвенционный код. Любой. Прочто пример.
Sergey Romanov вне форума   Ответить с цитированием
Старый 25.12.2015, 11:48   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Я удивляюсь вашей способности столько писать и ни чем не помочь. Можно пример эмуляции на тригерах?
Sergey Cherevko исчерпывающе это показал, мне добавить нечего. Я и не добавлял.




Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
В чем не коректность моего вопроса я не понимаю. Ну не описал я задачу четко, но мне не нужно помочь решить задачу, я сам ее решу. Я вообще ее описал для примера. Сейчас мне интересно как вы решилибы какойто секвенционный код. Любой. Прочто пример.
Я бы решил её автоматным программированием.

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

Часто, если человеку нужен пример - я могу его сделать, но только не в том случае, когда человек задаёт вопрос в стиле "давайте, рассказывайте, как космические корабли бороздят просторы Большого театра".

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


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 25.12.2015, 12:28   #9
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Спасибо за сылку, почитал.

Я согласен со всем. Четко поставленная задача помогает более точно дать советы как ее решить. Я не просил меня учить програмировать на FBD я принцип понимаю и делал уже несколько программ. Но нужно понимать что до этого я работал в CodeSys и мыслю как бы теми категориями. Я знаю что ваш FDB тоже в стандарте IEC-61131-3 но для решения определнных задачь я привык использовать SFC.

Сейчас меня привлекли ваши котроллеры. Мне нравятся некоторые решения но я пытаюсь выяснить для себя на сколкьо сложно мне будет перейти на них в плате программирования которое будет ограничено только FDB. Я знаю что практически любую задачу можно на этом решить.

Я думаю что я пошел правильным путем и задал правильный вопрос. Если бы вы просто сделали небольшую программу с 2 шаками и одним перходом, возможно зацикленную, где каждый шаг это просто счетчик или таймер это не важно, то мне этого хватило бы что бы начать переносить свой код из CodeSys.

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

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

Цитата Sergey Cherevko исчерпывающе это показал, мне добавить нечего. Я и не добавлял.
Ну от куда мне можно было понять что вы согласны и что вам нечего добавить? Ведь вы так же написали.

Цитата Программной памяти в наших контроллерах достаточно, поэтому не вижу ничего плохого в таком подходе, если он вам привычен.
Что ввело меня в заблуждение. Этот ответ предпологает что есть и другие подходы и возможно они даже лучше, но это не важно вы можете пользоваться этим если вам это привычней. Вот я и подумал что есть что-то еще.

В любом случае спасибо за помощь. Очень ценю то что вы на форуме так хорошо помогаете. Это дает мне уверености перейти на ваш котроллер и что я всегда смогу решить задачу если зайду в тупик.
Sergey Romanov вне форума   Ответить с цитированием
Старый 25.12.2015, 13:27   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Если бы вы просто сделали небольшую программу с 2 шаками и одним перходом, возможно зацикленную, где каждый шаг это просто счетчик или таймер это не важно, то мне этого хватило бы что бы начать переносить свой код из CodeSys.
В FBD нет циклов, шагов и переходов - там вся программа является одним бесконечным циклом.

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

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

Переходы можно сэмулировать на блоках AND.

Счётчик - просто отдельный блок. Если заданием счётчика является время, то этот счётчик выполняет функцию таймера.

Примеры всегда есть в справке:

http://dl.segnetics.com/WebHelp/SMLo...y_function.htm

http://dl.segnetics.com/WebHelp/SMLo...l_function.htm

http://dl.segnetics.com/WebHelp/SMLo...le_dfilter.htm

http://dl.segnetics.com/WebHelp/SMLo...le_afilter.htm


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

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

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
У меня есть задача автоматизации котла газового. Там есть 2 процессе где ябы использовал SFC.

1, Запуск котла. Начинается с продувки котла умтановлено количество времен, потом включается запальник и клапан газовый запальника. Потом искра выключается но газ идет. Потом включается малое горение и идет прогрев котла и потом включается большое горение.

2, Переключение из малого в большое горение и обратно. Здесь сначала задвижка переходит в положение нужное потом срабатывают клпана с разницой примерно в 100мс. И обратно так же.

Скажите как можно имулировать или можно пример программы проследовательных действий. Не обязательно по теме можно просто что угодно что бы понять принцип как правльно на FBD писать SFC.
Посмотрите тему Switch технология. Есть работающий макрос. Работает давно. Применял даже на тех средах программирования, где свои подходы есть. Этот мне показался поудобней
http://forum.segnetics.com/attachmen...2&d=1400207210
Миниатюры
Нажмите на картинку для увеличения

Название:  Пример switch-технологии.jpg
Просмотров: 144
Размер:  340.6 Кбайт  


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 25.12.2015, 17:42   #12
djaval
Senior Member
 
Регистрация: Nov 2013
Адрес: Санкт-Петербург
Сообщения: 213
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Если актуально, могу скинуть пример небольшой программы в SMLogix, реализующей управление схемы АВР с основным вводом и дизель-генератором. Там нечто среднее между SFC и автоматом состояний (что, в принципе, после пары кружек пива почти одно и то же). Там всего 4 состояния и переходы между ними в зависимости от условий. Плюс определение начального состояния, при включении контроллера.
djaval вне форума   Ответить с цитированием
Старый 27.12.2015, 07:29   #13
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от djaval Посмотреть сообщение
Если актуально, могу скинуть пример небольшой программы в SMLogix, реализующей управление схемы АВР с основным вводом и дизель-генератором. Там нечто среднее между SFC и автоматом состояний (что, в принципе, после пары кружек пива почти одно и то же). Там всего 4 состояния и переходы между ними в зависимости от условий. Плюс определение начального состояния, при включении контроллера.
Да буду очень признателен.
Sergey Romanov вне форума   Ответить с цитированием
Старый 28.12.2015, 09:12   #14
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Да буду очень признателен.
Кстати, метод построения экранов в SMArt таков, что на его базе очень легко секвенции делать. Управление - через сигналы "экран активен" и "переход на экран".


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 29.12.2015, 14:33   #15
alex.vas
Senior Member
 
Аватара для alex.vas
 
Регистрация: Jul 2009
Сообщения: 247
Благодарил(а): 0 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Секвенции как?

Вы бы сразу попросили программу, а самому лень писать, там есть еще такой параметр как опрессовка газового блока, котле какой? Е1,0-0,9??
alex.vas вне форума   Ответить с цитированием
Старый 29.12.2015, 17:05   #16
djaval
Senior Member
 
Регистрация: Nov 2013
Адрес: Санкт-Петербург
Сообщения: 213
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Да буду очень признателен.
Куда кинуть?
djaval вне форума   Ответить с цитированием
Старый 29.12.2015, 20:39   #17
alex.vas
Senior Member
 
Аватара для alex.vas
 
Регистрация: Jul 2009
Сообщения: 247
Благодарил(а): 0 раз(а)
Поблагодарили: 9 раз(а) в 9 сообщениях
По умолчанию Ответ: Секвенции как?

Пиши адрес кину прогу на ешку.
alex.vas вне форума   Ответить с цитированием
Старый 30.12.2015, 14:35   #18
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

По идее шкаф будет универсальным под любой котел с одной горелкой до 5 меговат. В наличии горелка для теста ГГ1. Не произведение искуства, но тот же принцип, планируертся сделать универсальную программу.

Скинуть можно на почту serg4172 собака майл ру. Но вобщемто можно и тут закачать прям в теме. Вдруг кому еще понадобится. Ну или на крайняк в личку можн.

Программа мне нужно не потому что писать лень, а что бы посмотреть как делают другие, и соеденив со своим опытом, сделать совершенно новую программу.
Sergey Romanov вне форума   Ответить с цитированием
Старый 30.12.2015, 14:40   #19
Sergey Romanov
Member
 
Регистрация: Nov 2015
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата:
Сообщение от Arsie Посмотреть сообщение
Кстати, метод построения экранов в SMArt таков, что на его базе очень легко секвенции делать. Управление - через сигналы "экран активен" и "переход на экран".
Звучит как очень интересное решение. Тем более что на экране я все равнопланировал отображать текущий статус на каждом шаге. Но вот тут мне нужен будет пример это точно.

Не совсем понимаю как сигнал активного экрана мне тут помогает?

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

И что лучше использовать экран активен или переход на экран? Послединй это импульс как я понимаю? Так?
Sergey Romanov вне форума   Ответить с цитированием
Старый 30.12.2015, 15:08   #20
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 885
Благодарил(а): 15 раз(а)
Поблагодарили: 647 раз(а) в 591 сообщениях
По умолчанию Ответ: Секвенции как?

Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Звучит как очень интересное решение. Тем более что на экране я все равнопланировал отображать текущий статус на каждом шаге. Но вот тут мне нужен будет пример это точно.
1) Открываете SMArt

2) Добавляете второй экран

3) Смотрите внимательно под изображением контроллера

Там всё очень просто.

http://forum.segnetics.com/showthread.php?t=1097

http://forum.segnetics.com/showthread.php?t=1014

http://forum.segnetics.com/showthread.php?t=1613




Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
Я правильно понимаю что я просто когда в первом шаге закончил, просто запускаю следующий экран, а уже следующий шаг начинает работать по сигналу активноси?
Именно так. Перейти можно как руками, так и по сигналу из FBD посредством UI-переменной.



Цитата
Сообщение от Sergey Romanov Посмотреть сообщение
И что лучше использовать экран активен или переход на экран? Послединй это импульс как я понимаю? Так?
Как вам удобнее.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SM CONNECT (Подробная инструкция в картинках как настроить) alekseyeve SMConnect & SMConfig 222 10.12.2023 19:02
Как построить отказоустойчивую сеть SMconnect? Bayk SMConnect & SMConfig 19 16.05.2020 14:31
Как подключить привод к контроллеру Pixel Arsie ЧаВо - Часто задаваемые Вопросы 0 31.10.2013 18:04
Как оценить время выполнения программы в контроллере? Arsie ЧаВо - Часто задаваемые Вопросы 0 04.10.2013 16:51
Не понятно как настроить 165 SMConstructor (теплопункты) 10 24.09.2013 13:53


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


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