[TIA Portal] Какой язык программирования вы предпочитаете?

Инженерное программное обеспечение

[TIA Portal] Какой язык программирования вы предпочитаете?

LAD
12
41%
FBD
2
7%
STL
6
21%
SCL
9
31%
SFC
0
Голосов нет
 
Всего голосов : 29

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Михайло » 12 дек 2016, 16:07

aktivizator писал(а):Что конкретно нельзя на LAD написать.

Andrey.wys писал(а):Преимущество у STL по сравнению с LAD - на нем можно написать все.

На LAD тоже можно все написать, но выглядеть кое-что будет, мягко говоря, страшновато (т.е. громоздко и трудночитаемо). Прежде всего, к этому "кое-что" относятся циклы FOR. Циклы достаточно часто используются в языках программирования типа С++, когда пишутся приложения для Windows, Android и т.п. В программе ПЛК циклы используются намного реже, но все же они попадаются и в этом случае для данного кусочка программы лучше использовать язык STL, а лучше даже SCL (язык STL пытаются признать мертвым). То есть считаю, что программист ПЛК должен знать языки (LAD or FBD) and SCL.
Михайло
Администратор
 
Сообщения: 3454
Зарегистрирован: 19 сен 2012, 19:16

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Andrey.wys » 12 дек 2016, 19:22

SCL неудобно отлаживать. Иногда проще написать на stl пару строчек прямо в блоке, чем на scl исходник городить. Вообще, под каждый кейс свой язык.
Например:

STL
Код: Выделить всё
L 0
T #STEP
.....
L #STEP
L 1
==I
JCN _ST2
.....
JU _END
_ST2: L 2
L #STEP
==I
JCN _ST3
....
_END: NOP 0



SCL
Код: Выделить всё
IF RecipeNumberFromHMI>0 AND RecipeNumberFromHMI<99 THEN

   DB601.DD4:= WORD_TO_BLOCK_DB (600).DD[RecipeNumberFromHMI*4];
ELSE
 FC600:=FALSE;
END_IF;
Andrey.wys
Любитель
 
Сообщения: 26
Зарегистрирован: 10 янв 2016, 00:35

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Strohmann » 13 дек 2016, 05:03

Andrey.wys писал(а):STL


Насколько я понял, на STL приведён пример программного регулятора. Хотелось бы подсказать Вам замечательный инструмент - распределитель переходов (например, описан у Бергера в "Автоматизация посредством STEP 7 с использованием STL и SCL и программируемых контроллеров SIMATIC S7-300/400"). Он позволяет не проводить проверку текущего шага каждый раз:
Код: Выделить всё
L 1
==I
JCN _ST2

Код: Выделить всё
      L     #MODE_Selector.OB_Current_Mode
      JL    END
      JU    MODE_Locked          // 0 - блокировка
      JU    MODE_Disabled        // 1 - отключен
      JU    MODE_TEST            // 2 - Включен вручную
      JU    MODE_Calibration     // 3 - Калибровка
      JU    MODE_PID_MAN         // 4 - Ручной режим регулятора
      JU    MODE_PID_Auto        // 5 - Автоматический режим регулятора
END:  NOP 0
Strohmann
Дилетант
 
Сообщения: 23
Зарегистрирован: 26 апр 2014, 05:58

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Andrey.wys » 13 дек 2016, 09:36

Пример - пошаговое исполнение чего-либо. Или реализация case на stl. Это теоретический пример и не более того.

язык STL пытаются признать мертвым

Если посмотреть компилированный scl, то понимаешь, что ни о какой экономии памяти речи быть не может, т.к. код, который генерит компилятор, разрывает мозг напрочь и количество ненужных операторов, которые занимают память контроллера и увеличивают время такта зашкаливает. Поэтому, если нужно написать быстрый и оптимизированный код, то это только stl. У меня есть в обслуживании сушильная камера, где весь климат написан на scl и там это оправдано, т.к. написать на lad/stl такие вещи было бы очень сложно. А работа транспортной системы сделана в lad/stl, т.к. отлаживать и искать неполадки проще. Из всех проектов, которые я видел, мне попался один или два, которые написаны на fbd/stl. Один был на sfc и там нужды в нем не было, а было какое-то извращение программера. Часто пишут на scl чтобы скрыть исходники.
Andrey.wys
Любитель
 
Сообщения: 26
Зарегистрирован: 10 янв 2016, 00:35

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение dimon64 » 13 дек 2016, 16:22

]
Andrey.wys писал(а):Преимущество у STL по сравнению с LAD - на нем можно написать все. Недостаток - неудобно. Как ассемблер на PC.

Ну не знаю, у Allen Bradley LAD вообще основной язык, и ничего - живут как-то.
А вот когда заходишь в онлайн и видишь такое:
Код: Выделить всё
 AN    I      6.0
      =     M    131.0
      AN    I      1.3
      =     M    131.1
      AN    I      2.7
      =     M    131.2
      AN    I      3.4
      A     T      7
      S     M    131.3
      A     I      5.0
      R     M    131.3
      R     M    131.5
      AN    I      3.5
      =     M    131.4
      AN    I      4.2
      A     T     21
      S     M    131.5
      AN    I      1.1
      =     M    131.6
      AN    I      6.1
      =     M    131.7
      AN    I      6.2
      A     I      6.0
      =     M    130.0
      AN    I      6.3
      A     I      6.0
      =     M    130.1
      AN    I      6.4
      A     I      6.0
      =     M    130.2
      A     M     14.0
      AN    I      5.2
      AN    I      5.3
      =     M    130.3
      A     M     14.2
      =     M    130.4
      A     M     14.4
      O     M     14.6
      =     M    130.5
      A     I      5.3
      =     M    130.6
      A     I      5.2
      =     M    130.7
      O     M      2.2
      O     M      2.3
      =     M    133.0
      O     M      2.4
      =     M    133.1
      A     T     35
      =     M    138.1
      AN    T     35
      L     S5T#2S
      SD    T     35
      A     M    138.1
      JC    M001
      BEU   
M001: S     M    138.0
      L     MD   125
      L     0
      ==D   
      JC    M002
      L     MD   125
      SLD   1
      T     MD   125
      JU    M003
M002: L     1
      T     MD   125
      S     M    137.0
M003: L     MD   130
      L     MD   125
      AD   
      T     MD   120
      L     MD   120
      L     0
      ==D   
      JC    M001

Сразу хочется настучать по голове "писателю".
dimon64
Любитель
 
Сообщения: 29
Зарегистрирован: 12 мар 2015, 14:30

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Andrey.wys » 14 дек 2016, 00:52

Ну тут не так уж и сложно. Верхнюю часть с присвоениями и так понятно, перенос в двойное слово MD130 сигналов с входов. А после beu, это проверка битов в слове md130 на true. Возможно, надо чтобы сработал/не сработал один из входов. Надо смотреть ниже, зачем это все. Ну, конечно, голова пухнет от попытки отследить rlo. Вот напишите подобное на lad :)
Andrey.wys
Любитель
 
Сообщения: 26
Зарегистрирован: 10 янв 2016, 00:35

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Nicolayy » 09 сен 2017, 20:22

Весь вопрос не в том, какой язык лучше, а в том, кто вообще занимается программированием ПЛК в конкретном случае - программист или же
"человек с опытом разработки релейных схем" (как было сказано в одном из ответов здесь).

Для меня лично, как для программиста, все эти языки в виде разного рода блоков - это какой-то бред. Любые операции с числами на любых этих FBD/LAD выглядят дико, даже простое присваивание на языках этих блоков, я уж не говорю о сложных вычислениях.

Что касается плюсов LAD/FBD, то "зелёные цепочки" и впрямь наглядны, и не только при отладке. Но я много лет программирую на C++,и ни меня, ни других программистов никогда не смущало отсутствие "зеленых цепочек" при отладки компьютерных программ. Также как не было никакой проблемы с отладкой при компьютерном программировании, также нет и при программировании ПЛК.

Конечно, есть чисто логические задачи - какая-нибудь система вентиляции, например. Т.е. сплошная булевая алгебра и больше ничего. Но это не задача для S7, тем более уж для S7-1500. Это задача для LOGO, вот на нем можно LAD использовать. FBD - это вообще не серьезно (по крайней мере, ни одного преимущества у FBD перед LAD нет, только недостатки).

Для ПЛК есть сегодня нормальный язык - SCL. Кроме того, есть разные удобные функции на языке STL (также как на компе кое-что удобнее реализовать ассемблерными вставками). Я по большей части сейчас программирую S7-1200, очень не хватает STL, пришлось даже написать свои функции на STL, которые являются своеобразной интерпретацией некоторых функций STL.

>>> Иногда вызывают на линию где-нибудь за полночь (что-нибудь не запускается), заходишь в онлайн, а там одни буковки и циферки,
Сразу хочется удавить этого писателя.

А у меня наоборот. Когда на STL - всё по порядку, в онлайн-режиме по строкам быстренько пробежался - нашел проблему. А в этих блоках - черт ногу сломит. Особенно когда встречается чисто "китайский код", где в одну network запихают много-много блоков на FBD, которые в пять мониторов не влезут, и вот сиди и лазей по ней как по карте с лупой, хехе))

Короче, SCL и STL - это всё, что нужно (imho). LAD может быть актуален, когда решаются элементарные задачи или когда надо наглядно продемонстрирвоать алгоритм людям, далеким от программирования.
Nicolayy
Профан
 
Сообщения: 4
Зарегистрирован: 09 сен 2017, 18:40

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение ward » 10 сен 2017, 10:02

вот-вот, вроде как и наглядные LAD и FBD, но когда блоки и цепочки большие, то это превращается в полный маразм, и программа становится нечитаема. Сам предпочитаю только STL, отличный язык, мне нравится. Хотя раньше не нравился и предпочитал LAD
ward
Специалист
 
Сообщения: 411
Зарегистрирован: 12 ноя 2012, 08:44

Re: [TIA Portal] Какой язык программирования вы предпочитает

Сообщение Бардичев Виктор » 07 дек 2017, 12:24

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

Я предпочитаю SCL. То, что на нем умещается в несколько строк, на LAD/FBD приходится городить огород.
И хорошо переносится между проектами, и даже контроллерами разных производителей.

Если нет SCL, то STL. На S7Manager если учитывать некоторые правила, можно было писать так,
чтобы любители цепочек потом могли переключить на LAD/FBD.
И тоже переносится, правда у разных производителей свои команды. Что-то поиском и заменой не решишь.

Единственное, мне не нравится реализация SCL в TIA от Сименса. Материшься каждые десять минут.

С какого дерева слезли эти программеры, если они делают свой инструмент для обезьян?!
"Ненавязчивый" сервис убивает. Не успеешь дописать одну букву, как появляются куча неубиваемых сообщений об ошибках, закрывающий текст программы.
Постоянно текст форматируется, отступы меняются, как программеры посчитали паравильным. Хоть Enter не нажимай.
Чтобы поменять индекс в массиве, нужно сначала поставить новый, а потом убрать старый.
Если согласишься показывать поля структуры, то зае..зацелует. Если не согласишься, то потом и по Alt-пробел не добъешься.
И много-много подобных примеров, и в графическом редакторе, и в симуляторе.
И скорость работы TIA поражает... Если нет SSD, то можно не начинать.

Те-же немецкие программисты делают CoDeSys. Так в нем пишешь программу и радуешься.
Интерфейс дружественный для программиста. Помогает, но не надоедает, и не меняет ничего.
И еще мне там понравилась работа с указателями: логично, просто и контролируемо.
А у Сименса многие возможности недоступны, а многие неконтролируемы, можно легко ошибиться, и долго разбираться.

С уважением, Виктор.
PS: У Allen Bradley на RXLogix 5000 тоже вполне приличный Structered Text.
Бардичев Виктор
Профан
 
Сообщения: 2
Зарегистрирован: 06 дек 2017, 11:18

Пред.

Вернуться в Simatic TIA Portal / Step7

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron