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

как писать в STL

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить
Аватара пользователя

Автор темы
satrew
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 13 мар 2021, 21:02
Имя: Азат
Благодарил (а): 10 раз

как писать в STL

Сообщение satrew »

Доброго
занимаюсь самообучением. все пока нормально, но вот иногда про некоторые детали спросить не у кого, разрешите поинтересоваться у Вас.
вопрос вот в чем когда я захотел написать на СТЛ длинную и объёмную функцию она не заработала, не понял как это написал её на ладе и перевел её в стл и тут оно мне выдало нечто, с какой-то матерью я разобрался в машинном формировании программы. Но осадок остался. пришел к выводу что лучше писать большую программу разбив её на короткие команды, в литературе про это мало да и то если есть то только битовые команды. но это по моему муторно очень много само повторов получается, легко запутаться. Поэтому прошу знающих людей подсказать как писать программы. тут я пример накатал. не могли бы вы на её примере или на своём если не сложно как писать объёмные программы с задействованием множества элементов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Parliament74
корифей
корифей
Сообщения: 792
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 202 раза

как писать в STL

Сообщение Parliament74 »

Сначала надо на STL базовые функции научиться писать и по меткам переходить, потом уже можно переходить на "длинные и объёмные функции".

Вот этой книги более, чем достаточно, чтобы понять, как писать на STL то, что в примере сделано на LAD:
Бергер Ганс. Автоматизация посредством STEP 7 с использованием STL и SCL, она спокойно находится во всемирной паутине.

Кстати, в STEP7 любой код из LAD спокойно переводится в STL, а в обратную сторону - нет (точнее не всегда, но более/менее сложные функции в LAD практически никогда не переведутся), поэтому нарисовать что-то в LAD и перевести в STL, пытаясь таким методом понять язык STL, это не самая хорошая идея.

Вообще, на STL можно хоть в одном нетворке написать весь код и всё будет работать, правда потом будет не легко искать ошибки и т.п., а вот с LAD так не получится...

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

как писать в STL

Сообщение Dmitriy1983 »

Доброе утро. Данные примеры можно написать вот так. А вообще сейчас STL уже не популярен и сам Siemens от него к сожалению по потихоньку отказывается. В нем есть смысл разбираться если у Вас на предприятии проекты написаны в нем. Мой Вам совет напишите небольшой код, запустите симуляцию, экспериментируйте и разбирайтесь по потихоньку, потом усложняйте. Со временем начнете разбираться, я сам начинал с LAD, но когда попал на предприятие где разработчики были Немцы, у них что на LADe небыло ни одной программы. Пришлось разбираться, сейчас на LADe не пишу.
// Пример с Network 2

A I0.2
AN I0.3
NOT
JCN J001
L 30
L MW11
+i
T MW5
L MW5
T MW6
J001: NOP 0

A I0.2
AN I0.3
NOT
L MW2
SP T1
L T1
T MW3
LC T1
T MW4

A I0.0
JCN J002
L MW7
T MW 8
L MW9
T MW10
J002: NOP 0

// Пример с Network 1
A I0.0
S Q0.0
A I0.1
R Q0.0
A Q0.0
JCN J001
L 20
L MW1
==I
JCN J001
L MW2
T MW3
L MW4
T MW5
J001: NOP 0
Аватара пользователя

Автор темы
satrew
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 13 мар 2021, 21:02
Имя: Азат
Благодарил (а): 10 раз

как писать в STL

Сообщение satrew »

Dmitriy1983, спасибо ОГРОМНОЕ, да так и есть у нас завод по немецкой технологии собран, контроллеры 300 й серии и все в СТЛ написано ну кроме разрешающих команд там что то вроде реле безопасности на ЛАДЕ через 20 проходов идет и это то что мне нужно было Спасибо еще раз.

AlexeyCh
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 16 июл 2021, 13:15
Имя: Алексей

как писать в STL

Сообщение AlexeyCh »

Извините, что встреваю, но у меня такой же случай. Надо разобраться в коде и научиться вносить правки, ибо пока немцы соизволят откликнуться на жалобу и поработать, русские клиенты звереют.
Так вот вопрос: кто-нибудь знает, почему немцы до сих пор предпочитают писать на STL? Код чище или просто больше времени занимает при почасовой оплате труда? Это чтобы потом сказать: "Смотри, босс, что я тут наработал, аж на стопитсот человекочасов. Денег давай!"

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

как писать в STL

Сообщение Andreywys »

Я тоже предпочитаю stl scl'лю. В контроллере оптимизация и скорость работы должны быть на первом месте, а удобство программиста на втором. То, что нельзя написать в lad, я пишу в stl. Конечно, scl я тоже использую. В нем удобнее писать всякие высокоуровневые вещи и математику.

AlexeyCh
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 16 июл 2021, 13:15
Имя: Алексей

как писать в STL

Сообщение AlexeyCh »

Вот и я подозреваю, что можно было хотя бы иногда LAD и SCL использовать. Но нет. Сотни килобайт чистого STL.

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

как писать в STL

Сообщение ZuElecRu »

Если компания древняя, то некоторые фрагменты программ серийных станков еще с 5-го симатика тянутся...или программисты просто используют свои древниие наработки, болки готовые на пример.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1105
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 255 раз
Поблагодарили: 184 раза

как писать в STL

Сообщение Looker »

ZuElecRu писал(а): 16 июл 2021, 17:58программисты просто используют свои древниие наработки
Встречал подобное, но на технике AB: тупо перенесли код для SLC-500 на платформу Logix. У AB для этих целей есть конвертатор кода с PLC-5 и SLC-500.
Про "тупо перенесли код": имена тегов для физических I/O это наглядно показали. Агрегат был из USA, программеры - мексиканцы.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

как писать в STL

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

Инструкции STL делятся на инструкции-условия и инструкции-действия. Пока это не поймешь, общего понимания не будет. В прочем такое же деление есть и для LAD/FBD, но там не инструкции, а цепочки контактов и катушек...
В общем, деление инструкций на условия и действия - это особенность микропроцессоров ПЛК. У обычных процессоров AMD/Intel инструкции в основном безусловны и лишь некоторые имеют условия, которые реализуются вручную программистом через флаги и условные переходы. Короче, основные инструкции-условия - A, AN, O, ON, A(, O(, ). Основные инструкции-действия - S, R, =. Сначала идет последовательность инструкций-условий, затем одна инструкция-действие. Иногда бывают сдвоенные цепочки (networks): сначала идут инструкции-условия А, затем инструкции-условия Б, затем одна инструкция-действие АБ. Одним словом, надо научиться различать инструкции. Инструкция-действие всегда завершает цепочки (network), таким образом цепочка начинается после инструкции-действия предыдущей цепочки и заканчивается на инструкции-действии. Увидел такие инструкции - идентифицировал все networks и все условия.

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

как писать в STL

Сообщение Andreywys »

Parliament74 писал(а): 26 июн 2021, 09:19 Бергер Ганс. Автоматизация посредством STEP 7 с использованием STL и SCL
Кстати, а по tiapoltal großBuch еще не перевели? Столько страниц читать на английском очень не хочется.

AlexeyCh
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 16 июл 2021, 13:15
Имя: Алексей

как писать в STL

Сообщение AlexeyCh »

ZuElecRu писал(а): 16 июл 2021, 17:58 Если компания древняя, то некоторые фрагменты программ серийных станков еще с 5-го симатика тянутся...или программисты просто используют свои древниие наработки, болки готовые на пример.
Очень правдоподобный вариант. Компании больше полувека, программисты там с девяностых не менялись, если не ошибаюсь. Боюсь, копируют наборы блоков невзирая на нужность. Например, в первом же нетворке OB1 устанавливается согласование времени с панелью оператора каждые пять секунд с помощью job mailbox. Так вот в одной программе у панели оператора в connections есть ссылка на структуру обмена job mailbox, но отсутствует привязка в Date/time (кстати, уважаемые специалисты, куда в этом случае при задании 40 в mailbox.jobnumber на считывание времени из панели оператора, будет записываться значение Date_And_Time? Просто в следующую за тегом mailbox структуру в памяти?), а в другой программе в connections даже привязки к mailbox нет. То есть, по моему профанскому разумению, здесь синхронизация работать вообще не должна. При этом установить системное время с экрана можно (вернее, в экранах есть бокс с отображением системного времени с input\output). Вот и спрашивается, какой возраст у основы этой программы? Конечно, остаётся вариант, что окончательная настройка происходит удалённо уже у клиента и теги привязываются, но сомнения остаются.
(Извините, я просто вчера чуть мозг не сломал, ничего не зная про mailbox, зачем какие-то числа 40, 14 и 15 записываются в непонятный тег :crazy0to: )
Ответить

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