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

помощь с STL

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

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

Ответить

Автор темы
Sew_Eurodrive
освоился
освоился
Сообщения: 220
Зарегистрирован: 04 фев 2019, 07:07
Имя: Андрей
Благодарил (а): 14 раз
Поблагодарили: 3 раза

помощь с STL

Сообщение Sew_Eurodrive »

Есть отрывок из программы.

A #wiegeSchritt
AN #O_Test
JCN wei1
L #rampeEnde
L #Istwert
>R
JC REG2
L #P_MinLeistung
T #Stellwert
S #Feinstrom
R #Grobstrom
JU e004 /
Вопрос следующего плана. Нигде в литературе этого не нашел. Загружаем #rampeEnde загружаем #Istwert сравниваем дальше идет JC тоесть если результат положительный программа начинает идти дальше? А если отрицательный ? Потом если программа идет дальше загружаем #P_MinLeistung передаем в #Stellwert и триггеры идут в set и reset. И в конце безоговорочно прыгаем на метку e004. тоесть мне не совсем понятно как читать как выполняется программа отдельные операнды я читаю но не совсем понятно как выполняется булевая логика в перемешку с риал или интеджер.

Отправлено спустя 3 минуты 24 секунды:
Или по другому когда триггеры пойдут в S и R а когда нет. Как они привязаны к выполнению условия риал

Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

помощь с STL

Сообщение Velt »

А это разве STL? Больше на IL похоже...

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

помощь с STL

Сообщение POV »

Velt писал(а): 18 дек 2020, 11:02 А это разве STL? Больше на IL похоже...
Разные названия.
Сименс англ.\интернац. STL
Сименс немецкий AWL (если не путаю)
У многих производителей IL

Отправлено спустя 9 минут 32 секунды:
Sew_Eurodrive писал(а): 18 дек 2020, 10:47 сравниваем дальше идет JC тоесть если результат положительный программа начинает идти дальше? А если отрицательный ?
Условие выполнено (больше) перейдет на метку, не выполнено - не перейдет. Вы как то странно описали.
Там же хелп встроенный неплохой. Встали курсором на инструкцию, нажали Ф1, там расписано какие флаги влияют на выполнение и какие флаги меняются (или не меняются) после выполнения инструкции.
В данном случае если меньше перехода не будет, будет выполнено присваивание L T, сет и резет битов S R. Потом безусловный переход на метку. Кусок кода соответствует стандартному IF THEN ELSE ENDIF.

SMax
не первый раз у нас
не первый раз у нас
Сообщения: 325
Зарегистрирован: 17 июн 2016, 14:18
Имя: Максим
Благодарил (а): 7 раз
Поблагодарили: 118 раз

помощь с STL

Сообщение SMax »

В результате сравнения устанавливается флаг RLO и функция перехода JC осуществляется по этому битовому флагу
Sew_Eurodrive писал(а): 18 дек 2020, 10:47если результат положительный программа начинает идти дальше?
Нет если результат положительный программа переходит на метку REG2.
Sew_Eurodrive писал(а): 18 дек 2020, 10:47А если отрицательный ?
Выполняются команды следующие за JC.

Отправлено спустя 2 минуты 21 секунду:
Sew_Eurodrive писал(а): 18 дек 2020, 10:47когда триггеры пойдут в S и R
Когда rampeEnde не будет больше Istwert

SMax
не первый раз у нас
не первый раз у нас
Сообщения: 325
Зарегистрирован: 17 июн 2016, 14:18
Имя: Максим
Благодарил (а): 7 раз
Поблагодарили: 118 раз

помощь с STL

Сообщение SMax »

У вас нет необходимых прав для просмотра вложений в этом сообщении.

Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

помощь с STL

Сообщение Velt »

POV писал(а): 18 дек 2020, 11:39Разные названия.
У STL и IL всё же принцип написания программы разный. IL больше похож на ассемблер, STL - на Паскаль. Это разные языки.

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

помощь с STL

Сообщение POV »

Velt писал(а): 21 дек 2020, 16:02 У STL и IL всё же принцип написания программы разный. IL больше похож на ассемблер, STL - на Паскаль. Это разные языки.
Вы путаете с SCL - этот паскалеподобный, а STL - как я написал.

Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

помощь с STL

Сообщение Velt »

POV писал(а): 21 дек 2020, 16:12 Вы путаете с SCL - этот паскалеподобный, а STL - как я написал.
Если уж сравнивать по "паскалеподобности", то SCL и STL в этом смысле очень похожи. И то и другое - структурированные языки. А вот IL больше похож на Ассемблер.

Принципиальное отличие в том, что в на структурированном языке код пишется в виде "повествовательного" текста, а в IL это всегда формат <код операции> <операнды>.

Вот, посмотрите, как выглядит SCL.https://assets.new.siemens.com/siemens/ ... 14-rus.pdf
Вот как выглядит ST https://ru.wikipedia.org/wiki/Structured_Text
Много отличий?
А вот как выглядит IL https://ru.wikipedia.org/wiki/Instruction_List
Теперь сравните эти примеры с тем кодом, что написал ТС в первом посте. Неужто он похож на STL или SCL? Больше на IL.
Да и по лексическому значению, приведенный ТС код это больше "список инструкций", чем "структурированный текст".

POV
авторитет
авторитет
Сообщения: 802
Зарегистрирован: 12 авг 2008, 11:05
Имя: Патрушев Олег Валерьевич
Страна: Россия
город/регион: г. Н.Новгород
Благодарил (а): 110 раз
Поблагодарили: 158 раз

помощь с STL

Сообщение POV »

ST и STL разные вещи. Внимательно перечитайте мой первый пост. Я писал про сименс и его термины, а не стандарты. STL и есть IL. Код автора как раз и написан на STL.

Velt
освоился
освоился
Сообщения: 233
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 15 раз
Поблагодарили: 38 раз

помощь с STL

Сообщение Velt »

POV писал(а): 21 дек 2020, 21:08 Я писал про сименс и его термины, а не стандарты. STL и есть IL.
Да, точно, это у Сименса так, STL=IL.
В других средах разработки привык, что STL=ST.

Dmitriy1983
здесь недавно
здесь недавно
Сообщения: 94
Зарегистрирован: 29 окт 2017, 19:52
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 18 раз

помощь с STL

Сообщение Dmitriy1983 »

Доброе утро. Тут все просто...
A #wiegeSchritt //Если Сигнал - true
AN #O_Test // и Если Сигнал - false
JCN wei1 // Если это не так (RLO=0), переход на метку wei1, если так ( RLO=1) программа идет дальше
L #rampeEnde
L #Istwert
>R //Сравнение #rampeEnde > #Istwert ?
JC REG2 // Если так (RLO = 1) переход на метку REG2, если нет ( RLO=0), идем дальше
L #P_MinLeistung
T #Stellwert //Записываем в переменную #Stellwert значение из переменной #P_MinLeistung
S #Feinstrom //Устаавливаем
R #Grobstrom //Сбрасываем
JU e004 // Независимо переходим на метку e004
Ответить

Вернуться в «Simatic Step7»