1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Вопрос от чайника по step

Модератор: Глоб.модераторы

Ответить

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

Здравствуйте! Недавно занимаюсь программированием плк, изучаю степ 7, в готовом проекте, есть такой тип таймера, как я понимаю, в мануале по степ идет немного другая инструкция по построению таймера, объясните, как он работает, но главный вопрос зачем загружать 0 в аккумулятор после сравнения?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 18758
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 973 раза
Поблагодарили: 1854 раза

Вопрос от чайника по step

Сообщение Jackson »

Здравствуйте!

Волшебное слово забыли.
По вопросам работы Форума можно обратиться по этим контактам.

Andreywys
освоился
освоился
Сообщения: 299
Зарегистрирован: 15 сен 2016, 18:47
Имя: Андрей
Страна: Россия
город/регион: Вологда
Благодарил (а): 20 раз
Поблагодарили: 78 раз

Вопрос от чайника по step

Сообщение Andreywys »

Переключитесь в LAD, может будет понятней. Похоже, что этот кусок в LAD написан, а после преобразования в stl получилось не совсем оптимально. timer_f - это название переменной.

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

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

Dfcz
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 12 сен 2017, 08:21
Имя: Вася
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Вопрос от чайника по step

Сообщение Dfcz »

Если быть точным, то это не таймер, это временная переменная названная словом "таймер".
Это блок FB, это значит, что начинающим тут нужно много читать, прежде чем пытаться разобраться.

Ответ на главный вопрос: загружать 0 нужно, что бы отправить его в переменную "таймер", если вам это поможет.
П.С. Там вообще-то два сравнения, если говорить о втором, то походу для того, что бы "таймер" не стал меньше 0.
Потребление, потребление и потребление.

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

да, это функциональный блок и временная переменная, вопрос не в этом,я знаю, что фактически это не таймер, но сам алгоритм, скорее всего я его не понимаю полноценно, поэтому спрашиваю, он берет из блока данных фронт таймера в 1 сек, далее в другой части программы он загружает число 12С в аккумулятор и выгружает в timer_f, соответственно дальше он начинает с 12С вычитать по 1 сек до 0, как я понимаю, это работа обратного таймера грубо, может я не прав? объясните пожалуйста, а так всем спасибо за ответы

Отправлено спустя 41 минуту 48 секунд:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня

ZuElecRu
освоился
освоился
Сообщения: 290
Зарегистрирован: 09 авг 2016, 13:49
Имя: Чистилин Андрей Анатольевич
Страна: Россия
город/регион: Малоярославец
Благодарил (а): 31 раз
Поблагодарили: 36 раз

Вопрос от чайника по step

Сообщение ZuElecRu »

Ну во первых мы не видим на картинке весь сегмент.

" он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня" - про какую стоку ты говоришь? (номер строки сверху)

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 19 раз
Поблагодарили: 64 раза

Вопрос от чайника по step

Сообщение winb »

ZuElecRu писал(а): Ну во первых мы не видим на картинке весь сегмент.

" он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня" - про какую стоку ты говоришь? (номер строки сверху)
Я бы ещё и тип таймера запросил - вдруг самописный?

ZuElecRu
освоился
освоился
Сообщения: 290
Зарегистрирован: 09 авг 2016, 13:49
Имя: Чистилин Андрей Анатольевич
Страна: Россия
город/регион: Малоярославец
Благодарил (а): 31 раз
Поблагодарили: 36 раз

Вопрос от чайника по step

Сообщение ZuElecRu »

winb писал(а): Я бы ещё и тип таймера запросил - вдруг самописный?
тут нет таймера, обычное вычитание по фронту секунды.

Dfcz
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 12 сен 2017, 08:21
Имя: Вася
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Вопрос от чайника по step

Сообщение Dfcz »

Какая проблема выложить весь код?
А еще лучше прямо в коде поставить свои вопросы, и получить прямо конкретно ответы по точкам в коде.

Потому что сначала было:
но главный вопрос зачем загружать 0 в аккумулятор после сравнения?

А потом стало уже:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня
Потребление, потребление и потребление.

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

Да его смысла нет весь выкладывать, здесь в каждом функциональном блоке похожие конструкции, идет программа, потом функция сравнения, переход, если 0, дальше грузится число в аккумулятор и выгружается вот в такие локальные переменные, тут таких конструкций сотни, сам код понятен более менее, не совсем понятна была вот это конструкция, просто почему я подумал, что это обратный таймер, вычитается время по 1 сек, стало ясно, что по фронту, по поводу первого главного вопроса: когда он вычитает и сравнивает с 0 в итоге, допустим он дошел до 0, зачем грузить 0 в аккумулятор снова, вот, что было не понятно, видимо некорректно и не полностью задал вопрос, не серчайте на меня уж сильно :ext_dont_ment: , чайник еще
У вас нет необходимых прав для просмотра вложений в этом сообщении.

ZuElecRu
освоился
освоился
Сообщения: 290
Зарегистрирован: 09 авг 2016, 13:49
Имя: Чистилин Андрей Анатольевич
Страна: Россия
город/регион: Малоярославец
Благодарил (а): 31 раз
Поблагодарили: 36 раз

Вопрос от чайника по step

Сообщение ZuElecRu »

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

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

ZuElecRu писал(а): Да где ты видишь то, что он грузит 0 снова, я не вижу. Укажи номер строки для первого скрина.
метка _001, строка 9, я не отрицаю, я скорее всего не прав, просто хотел полноценно понять программу

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

все, я разобрался, спасибо всем

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

ZuElecRu писал(а):
winb писал(а): Я бы ещё и тип таймера запросил - вдруг самописный?
тут нет таймера, обычное вычитание по фронту секунды.
а у меня вот еще такой вопрос: у меня в нетворке есть программа маслонагреватель с множеством похожих конструкций по вычитанию по фронту секунды, нужно переделать ее по аналогии в маслоохладитель, могу ли я использовать некоторые общие локальные переменные, которые используются и в маслонагревателе? или использовать отдельные конструкции? и также во втором скрине показано присваивание и загрузка в память L 0.0, L 0.1 и т.д, можно или их отдельно использовать в другом нетворке для другой операции?

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 19 раз
Поблагодарили: 64 раза

Вопрос от чайника по step

Сообщение winb »

L0.0, L0.1 - обращение к локальному стеку блока через абсолютную адресацию. В основном используется средствами "классического" STEP 7 для преобразования языков высокого уровня (LAD, FBD, SCL, Graph и т.п.) в STL. Ну или для разных извращений - программистами (указатель на тип ANY там собрать, например...).
Совет - определите "родной" язык блока, если не получится - перепишите его логику по-человечески, ведь по сообщениям выше - Вы вполне с ней разобрались. Не усугубляйте ситуацию с исходным проектом - потом сами же (ну или Ваши преемники) намучаетесь.

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

winb писал(а): L0.0, L0.1 - обращение к локальному стеку блока через абсолютную адресацию. В основном используется средствами "классического" STEP 7 для преобразования языков высокого уровня (LAD, FBD, SCL, Graph и т.п.) в STL. Ну или для разных извращений - программистами (указатель на тип ANY там собрать, например...).
Совет - определите "родной" язык блока, если не получится - перепишите его логику по-человечески, ведь по сообщениям выше - Вы вполне с ней разобрались. Не усугубляйте ситуацию с исходным проектом - потом сами же (ну или Ваши преемники) намучаетесь.
спасибо за информацию, "родной" язык блока LAD, но я немного не понял про то, что "переписать логику по-человечески" и не усугублять ситуацию с исходным проектом, что вы имели ввиду? просто я думаю, что придется разбить на несколько нетворков, чтобы переписать логику по-человечески, как вы сказали

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 19 раз
Поблагодарили: 64 раза

Вопрос от чайника по step

Сообщение winb »

По-человечески, в Вашем случае, это - перейти на LAD и вносить все изменения именно на этом языке. Вмешательство в код на STL, в данном случае, приведет к потере возможности отображения программы на LAD. Да и для дальнейшей эксплуатации контроллера, графические языки более предпочтительны - наглядны и просты для понимания.
Но если уж сильно хочется использовать STL... В этом случае будет более корректным способом написание логики нетворка с нуля, без использования вспомогательных конструкций компилятора, которые служат только для того, чтобы редактор кода смог отобразить код STL в форме элементов языков LAD и FBD

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

winb писал(а): По-человечески, в Вашем случае, это - перейти на LAD и вносить все изменения именно на этом языке. Вмешательство в код на STL, в данном случае, приведет к потере возможности отображения программы на LAD. Да и для дальнейшей эксплуатации контроллера, графические языки более предпочтительны - наглядны и просты для понимания.
Но если уж сильно хочется использовать STL... В этом случае будет более корректным способом написание логики нетворка с нуля, без использования вспомогательных конструкций компилятора, которые служат только для того, чтобы редактор кода смог отобразить код STL в форме элементов языков LAD и FBD
я вас услышал, попробую реализовать эти конструкции в LAD, я не знаю, почему он не может преобразовать из STL, по сути я вот разбиваю на несколько нетворков этот код в STL, и он нормально преобразуется вполне

Отправлено спустя 19 минут 41 секунду:
и могу ли я не использовать в LAD локальный стек?по идее он там не нужен на мой взгляд

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 19 раз
Поблагодарили: 64 раза

Вопрос от чайника по step

Сообщение winb »

Изображение
Мы друг друга правильно понимаем? На картинке - слева - STL, справа - LAD?

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

winb писал(а): Изображение
Мы друг друга правильно понимаем? На картинке - слева - STL, справа - LAD?
конечно, правильно, вопрос в том, что эти конструкции, которые я скидывал, можно преобразовать в LAD, разбив большой нетворк на мелкие таким образом, чтобы он степ 7 смог преобразовать или же писать программу с нуля в LAD, конкретно STL нетворк

ZuElecRu
освоился
освоился
Сообщения: 290
Зарегистрирован: 09 авг 2016, 13:49
Имя: Чистилин Андрей Анатольевич
Страна: Россия
город/регион: Малоярославец
Благодарил (а): 31 раз
Поблагодарили: 36 раз

Вопрос от чайника по step

Сообщение ZuElecRu »

Оставь как есть, не заморачивайся. Ты же уже разобрался как это работает. Лучшее враг хорошему. Ну если только в образовательных целях... опять же машина работающая?... Можно и поломать чего-нибудь. Я обычно делаю копию переписываемого функционального блока, и вызываю его с теми же входными параметрами но с другими выходными параметрами и новым блоком данных. И дальше у же не страшно , можно писать как хочешь. Потом в процессе работы сравниваешь результаты работы обоих блоков, выходные параметры. Для быстрых процессов, конечно тяжеловато, но зато будешь понимать машину, как будто ты сам программу для нее писал.

Автор темы
romalex871
здесь недавно
здесь недавно
Сообщения: 15
Зарегистрирован: 26 сен 2017, 13:40
Имя: Александр
Благодарил (а): 2 раза

Вопрос от чайника по step

Сообщение romalex871 »

ZuElecRu писал(а): Оставь как есть, не заморачивайся. Ты же уже разобрался как это работает. Лучшее враг хорошему. Ну если только в образовательных целях... опять же машина работающая?... Можно и поломать чего-нибудь. Я обычно делаю копию переписываемого функционального блока, и вызываю его с теми же входными параметрами но с другими выходными параметрами и новым блоком данных. И дальше у же не страшно , можно писать как хочешь. Потом в процессе работы сравниваешь результаты работы обоих блоков, выходные параметры. Для быстрых процессов, конечно тяжеловато, но зато будешь понимать машину, как будто ты сам программу для нее писал.
дело в том, что проект достался готовый по немецкому станку, прога явно дорабатывалась лет 10 назад, но фактически была написана в начале 2000-х, я ее должен отредактировать под конкретное тз, отладить на станке и сдать заказчику отредактированную прогу, ну все как обычно, до этого с плк связан никогда не был, в универе изучал кодесис в LAD и FBD, поэтому пока сложности, пока ждем железо, редактирую прогу, а так проблемы с ней явно дальше будут, сам плк и стойка выделены желтыми вопросительными знаками, не видит конфигурация оборудования, модули некоторые видит и все, разбираться буду по-тихоньку, поэтому да, не хотелось бы ничего поломать

Jallo
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 05 июн 2017, 08:50
Имя: Александр
Страна: Россия
город/регион: Екатеринбург

Вопрос от чайника по step

Сообщение Jallo »

romalex871 писал(а): 03 окт 2017, 14:16 Здравствуйте! Недавно занимаюсь программированием плк, изучаю степ 7, в готовом проекте, есть такой тип таймера, как я понимаю, в мануале по степ идет немного другая инструкция по построению таймера, объясните, как он работает, но главный вопрос зачем загружать 0 в аккумулятор после сравнения?
В этом коде нет смысла разбираться, т.к. его структура очень сильно напоминает автоматически сгенерированный код PCS’ом
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»