Вопрос о сохранении памяти состояния S7-300

ПЛК / Децентрализованная периферия
Ответить
Henek
Любитель
Сообщения: 44
Зарегистрирован: 30 апр 2018, 00:42

Вопрос о сохранении памяти состояния S7-300

Сообщение Henek »

Всем привет.
Такой вопрос. Есть контроллер S7-300 CPU315
Написал тестовую програмку. Всё работает вроде как и нормально, только не совсем. Дело в том что контроллер в момент выключения, другими словами физического отключения напряжения питания пишет свое состояние. Это конечно же весьма забавно и в каких то случаях весьма удобно и необходимо.
Как сделать так чтоб не сохранял своего состояния на момент выключения или сохранял но не полностью, а только то что нужно?
Получается смешная ситуация после включения контроллера программа стартует не с начала, а с того места где пропало питание. Так как основное тело программы в графсете и сразу за первой секвенцией идет секвенция которая делает своеобразную инициализацию безопасно приводя например какой то механизм в исходное состояние и покуда не возникнет такое состояние то ничего дальше происходить не должно. И только потом главный цикл. А получается что стартует сразу в главном цикле там где пропало питание. Как сделать так чтоб контролер стартовал с начала программы всегда?

Михайло
Администратор
Сообщения: 4024
Зарегистрирован: 19 сен 2012, 19:16

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение Михайло »

Язык GRAPH?

POV
Специалист
Сообщения: 116
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение POV »

Henek писал(а):
22 янв 2020, 16:03
А получается что стартует сразу в главном цикле там где пропало питание. Как сделать так чтоб контролер стартовал с начала программы всегда?
Это не так. Вы путаете понятия, ваш "главный цикл" и главный цикл программы ПЛК немного разные вещи. Изучайте матчасть, например, назначение OB1, OB35 и OB100. Оттуда будет понятно, что вам при запуске контролера надо перевести ваш цикл (совершенно неважно на графе он написан или еще на каких языках от сименса) в стартовое состояние. И это ваша забота как программиста. Хотя бы Бергера полистали вместо "легкого чтения".

Henek
Любитель
Сообщения: 44
Зарегистрирован: 30 апр 2018, 00:42

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение Henek »

POV писал(а):
22 янв 2020, 18:03
Вы путаете понятия, ваш "главный цикл" и главный цикл программы ПЛК немного разные вещи.
Не непутаю. Возможно и путаю.
Вся программа написана как отдельный FB со своим именем и блоком вставлена OB1
Весь FB написан в графе все секвенции написаны отдельными блоками FB и функциями.
Так как OB1 дефакто есть главный цикл MAIN то весь этот блок должен крутится с верху до низу с лева на право. Если вошел в цикл то крутится в цикле внутри себя.
Но после подачи питания все начинатся должно с первой секвенции, а не с того места где закончили.
На сколько я понимаю OB1 вообще не позволяет создавать что либо в графсете. Либо я не понял как это сделать.
На самом деле я знаю как решить эту проблему. Но хочется решить более красиво как на мой взгляд. Да и более детально разобраться в такой проблеме было бы не плохо.
POV писал(а):
22 янв 2020, 18:03
Хотя бы Бергера полистали вместо "легкого чтения"
Как там бергер написал - бойтесь бесконечных циклов без условий выхода.
Есть у меня Бергер. Я его распечатал и сшил. Хорошая книга.

POV
Специалист
Сообщения: 116
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение POV »

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

Henek
Любитель
Сообщения: 44
Зарегистрирован: 30 апр 2018, 00:42

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение Henek »

POV, при всём уважении, но то что я накарябал своими кривыми руками это всего лишь стандартный пример из пакета STEP7. Я всего лишь немного изменил цикл. Потому как грешным делом подумал что делать проход от первого шага и сверять инициализацию не самый большой смысл. Хотя смысл есть.
То что Вы приводите блоки всё вроде как бы так. Но пример который дает сименс выглядит по другому, не используются дополнительные блоки, к тому же если не изменяет память FB35 связан с прерываниями, а я их не использую. Примеры которые я имею дополнительно это программы с действующего оборудования, хотя там всё намного сложнее.
Просто хотелось сделать более просто.

Henek
Любитель
Сообщения: 44
Зарегистрирован: 30 апр 2018, 00:42

Re: Вопрос о сохранении памяти состояния S7-300

Сообщение Henek »

PS
POV Подскажите где руководство толковое по графсету взять на русском языке?
Очень нужно.
Искал, не нашел.

Ответить