- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Вопрос от чайника по step
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
Здравствуйте! Недавно занимаюсь программированием плк, изучаю степ 7, в готовом проекте, есть такой тип таймера, как я понимаю, в мануале по степ идет немного другая инструкция по построению таймера, объясните, как он работает, но главный вопрос зачем загружать 0 в аккумулятор после сравнения?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Вопрос от чайника по step
Здравствуйте!
Волшебное слово забыли.
Волшебное слово забыли.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 299
- Зарегистрирован: 15 сен 2016, 18:47
- Имя: Андрей
- Страна: Россия
- город/регион: Вологда
- Благодарил (а): 20 раз
- Поблагодарили: 78 раз
Вопрос от чайника по step
Переключитесь в LAD, может будет понятней. Похоже, что этот кусок в LAD написан, а после преобразования в stl получилось не совсем оптимально. timer_f - это название переменной.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
вид уже LAD, то, что он не смог преобразовать, он оставил в STL, в LAD в других нетворках все понятно, ну да это локальные переменные, спасибо
-
- здесь недавно
- Сообщения: 71
- Зарегистрирован: 12 сен 2017, 08:21
- Имя: Вася
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Вопрос от чайника по step
Если быть точным, то это не таймер, это временная переменная названная словом "таймер".
Это блок FB, это значит, что начинающим тут нужно много читать, прежде чем пытаться разобраться.
Ответ на главный вопрос: загружать 0 нужно, что бы отправить его в переменную "таймер", если вам это поможет.
П.С. Там вообще-то два сравнения, если говорить о втором, то походу для того, что бы "таймер" не стал меньше 0.
Это блок FB, это значит, что начинающим тут нужно много читать, прежде чем пытаться разобраться.
Ответ на главный вопрос: загружать 0 нужно, что бы отправить его в переменную "таймер", если вам это поможет.
П.С. Там вообще-то два сравнения, если говорить о втором, то походу для того, что бы "таймер" не стал меньше 0.
Потребление, потребление и потребление.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
да, это функциональный блок и временная переменная, вопрос не в этом,я знаю, что фактически это не таймер, но сам алгоритм, скорее всего я его не понимаю полноценно, поэтому спрашиваю, он берет из блока данных фронт таймера в 1 сек, далее в другой части программы он загружает число 12С в аккумулятор и выгружает в timer_f, соответственно дальше он начинает с 12С вычитать по 1 сек до 0, как я понимаю, это работа обратного таймера грубо, может я не прав? объясните пожалуйста, а так всем спасибо за ответы
Отправлено спустя 41 минуту 48 секунд:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня
Отправлено спустя 41 минуту 48 секунд:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 36 раз
Вопрос от чайника по step
Ну во первых мы не видим на картинке весь сегмент.
" он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня" - про какую стоку ты говоришь? (номер строки сверху)
" он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня" - про какую стоку ты говоришь? (номер строки сверху)
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 36 раз
-
- здесь недавно
- Сообщения: 71
- Зарегистрирован: 12 сен 2017, 08:21
- Имя: Вася
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Вопрос от чайника по step
Какая проблема выложить весь код?
А еще лучше прямо в коде поставить свои вопросы, и получить прямо конкретно ответы по точкам в коде.
Потому что сначала было:
но главный вопрос зачем загружать 0 в аккумулятор после сравнения?
А потом стало уже:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня
А еще лучше прямо в коде поставить свои вопросы, и получить прямо конкретно ответы по точкам в коде.
Потому что сначала было:
но главный вопрос зачем загружать 0 в аккумулятор после сравнения?
А потом стало уже:
и потом в конце проверки, когда он timer_f, становится равным 0, результат логической операции становится равным 1, то он загружает в аккумулятор 0, а это главный вопрос, если фактически переменная timer_f стала 0, зачем это делается, вот главный вопрос для меня
Потребление, потребление и потребление.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
Да его смысла нет весь выкладывать, здесь в каждом функциональном блоке похожие конструкции, идет программа, потом функция сравнения, переход, если 0, дальше грузится число в аккумулятор и выгружается вот в такие локальные переменные, тут таких конструкций сотни, сам код понятен более менее, не совсем понятна была вот это конструкция, просто почему я подумал, что это обратный таймер, вычитается время по 1 сек, стало ясно, что по фронту, по поводу первого главного вопроса: когда он вычитает и сравнивает с 0 в итоге, допустим он дошел до 0, зачем грузить 0 в аккумулятор снова, вот, что было не понятно, видимо некорректно и не полностью задал вопрос, не серчайте на меня уж сильно , чайник еще
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 36 раз
Вопрос от чайника по step
Да где ты видишь то, что он грузит 0 снова, я не вижу. Укажи номер строки для первого скрина.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
метка _001, строка 9, я не отрицаю, я скорее всего не прав, просто хотел полноценно понять программу
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
а у меня вот еще такой вопрос: у меня в нетворке есть программа маслонагреватель с множеством похожих конструкций по вычитанию по фронту секунды, нужно переделать ее по аналогии в маслоохладитель, могу ли я использовать некоторые общие локальные переменные, которые используются и в маслонагревателе? или использовать отдельные конструкции? и также во втором скрине показано присваивание и загрузка в память L 0.0, L 0.1 и т.д, можно или их отдельно использовать в другом нетворке для другой операции?
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Вопрос от чайника по step
L0.0, L0.1 - обращение к локальному стеку блока через абсолютную адресацию. В основном используется средствами "классического" STEP 7 для преобразования языков высокого уровня (LAD, FBD, SCL, Graph и т.п.) в STL. Ну или для разных извращений - программистами (указатель на тип ANY там собрать, например...).
Совет - определите "родной" язык блока, если не получится - перепишите его логику по-человечески, ведь по сообщениям выше - Вы вполне с ней разобрались. Не усугубляйте ситуацию с исходным проектом - потом сами же (ну или Ваши преемники) намучаетесь.
Совет - определите "родной" язык блока, если не получится - перепишите его логику по-человечески, ведь по сообщениям выше - Вы вполне с ней разобрались. Не усугубляйте ситуацию с исходным проектом - потом сами же (ну или Ваши преемники) намучаетесь.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
спасибо за информацию, "родной" язык блока LAD, но я немного не понял про то, что "переписать логику по-человечески" и не усугублять ситуацию с исходным проектом, что вы имели ввиду? просто я думаю, что придется разбить на несколько нетворков, чтобы переписать логику по-человечески, как вы сказалиwinb писал(а): L0.0, L0.1 - обращение к локальному стеку блока через абсолютную адресацию. В основном используется средствами "классического" STEP 7 для преобразования языков высокого уровня (LAD, FBD, SCL, Graph и т.п.) в STL. Ну или для разных извращений - программистами (указатель на тип ANY там собрать, например...).
Совет - определите "родной" язык блока, если не получится - перепишите его логику по-человечески, ведь по сообщениям выше - Вы вполне с ней разобрались. Не усугубляйте ситуацию с исходным проектом - потом сами же (ну или Ваши преемники) намучаетесь.
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Вопрос от чайника по step
По-человечески, в Вашем случае, это - перейти на LAD и вносить все изменения именно на этом языке. Вмешательство в код на STL, в данном случае, приведет к потере возможности отображения программы на LAD. Да и для дальнейшей эксплуатации контроллера, графические языки более предпочтительны - наглядны и просты для понимания.
Но если уж сильно хочется использовать STL... В этом случае будет более корректным способом написание логики нетворка с нуля, без использования вспомогательных конструкций компилятора, которые служат только для того, чтобы редактор кода смог отобразить код STL в форме элементов языков LAD и FBD
Но если уж сильно хочется использовать STL... В этом случае будет более корректным способом написание логики нетворка с нуля, без использования вспомогательных конструкций компилятора, которые служат только для того, чтобы редактор кода смог отобразить код STL в форме элементов языков LAD и FBD
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
я вас услышал, попробую реализовать эти конструкции в LAD, я не знаю, почему он не может преобразовать из STL, по сути я вот разбиваю на несколько нетворков этот код в STL, и он нормально преобразуется вполнеwinb писал(а): По-человечески, в Вашем случае, это - перейти на LAD и вносить все изменения именно на этом языке. Вмешательство в код на STL, в данном случае, приведет к потере возможности отображения программы на LAD. Да и для дальнейшей эксплуатации контроллера, графические языки более предпочтительны - наглядны и просты для понимания.
Но если уж сильно хочется использовать STL... В этом случае будет более корректным способом написание логики нетворка с нуля, без использования вспомогательных конструкций компилятора, которые служат только для того, чтобы редактор кода смог отобразить код STL в форме элементов языков LAD и FBD
Отправлено спустя 19 минут 41 секунду:
и могу ли я не использовать в LAD локальный стек?по идее он там не нужен на мой взгляд
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Вопрос от чайника по step
Мы друг друга правильно понимаем? На картинке - слева - STL, справа - LAD?
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
конечно, правильно, вопрос в том, что эти конструкции, которые я скидывал, можно преобразовать в LAD, разбив большой нетворк на мелкие таким образом, чтобы он степ 7 смог преобразовать или же писать программу с нуля в LAD, конкретно STL нетворк
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 36 раз
Вопрос от чайника по step
Оставь как есть, не заморачивайся. Ты же уже разобрался как это работает. Лучшее враг хорошему. Ну если только в образовательных целях... опять же машина работающая?... Можно и поломать чего-нибудь. Я обычно делаю копию переписываемого функционального блока, и вызываю его с теми же входными параметрами но с другими выходными параметрами и новым блоком данных. И дальше у же не страшно , можно писать как хочешь. Потом в процессе работы сравниваешь результаты работы обоих блоков, выходные параметры. Для быстрых процессов, конечно тяжеловато, но зато будешь понимать машину, как будто ты сам программу для нее писал.
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 26 сен 2017, 13:40
- Имя: Александр
- Благодарил (а): 2 раза
Вопрос от чайника по step
дело в том, что проект достался готовый по немецкому станку, прога явно дорабатывалась лет 10 назад, но фактически была написана в начале 2000-х, я ее должен отредактировать под конкретное тз, отладить на станке и сдать заказчику отредактированную прогу, ну все как обычно, до этого с плк связан никогда не был, в универе изучал кодесис в LAD и FBD, поэтому пока сложности, пока ждем железо, редактирую прогу, а так проблемы с ней явно дальше будут, сам плк и стойка выделены желтыми вопросительными знаками, не видит конфигурация оборудования, модули некоторые видит и все, разбираться буду по-тихоньку, поэтому да, не хотелось бы ничего поломатьZuElecRu писал(а): Оставь как есть, не заморачивайся. Ты же уже разобрался как это работает. Лучшее враг хорошему. Ну если только в образовательных целях... опять же машина работающая?... Можно и поломать чего-нибудь. Я обычно делаю копию переписываемого функционального блока, и вызываю его с теми же входными параметрами но с другими выходными параметрами и новым блоком данных. И дальше у же не страшно , можно писать как хочешь. Потом в процессе работы сравниваешь результаты работы обоих блоков, выходные параметры. Для быстрых процессов, конечно тяжеловато, но зато будешь понимать машину, как будто ты сам программу для нее писал.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 05 июн 2017, 08:50
- Имя: Александр
- Страна: Россия
- город/регион: Екатеринбург
Вопрос от чайника по step
В этом коде нет смысла разбираться, т.к. его структура очень сильно напоминает автоматически сгенерированный код PCS’омromalex871 писал(а): ↑03 окт 2017, 14:16 Здравствуйте! Недавно занимаюсь программированием плк, изучаю степ 7, в готовом проекте, есть такой тип таймера, как я понимаю, в мануале по степ идет немного другая инструкция по построению таймера, объясните, как он работает, но главный вопрос зачем загружать 0 в аккумулятор после сравнения?