Страница 2 из 2

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.

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

Добавлено: 12 дек 2016, 19:22
Andrey.wys
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;

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

Добавлено: 13 дек 2016, 05:03
Strohmann
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

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

Добавлено: 13 дек 2016, 09:36
Andrey.wys
Пример - пошаговое исполнение чего-либо. Или реализация case на stl. Это теоретический пример и не более того.
язык STL пытаются признать мертвым
Если посмотреть компилированный scl, то понимаешь, что ни о какой экономии памяти речи быть не может, т.к. код, который генерит компилятор, разрывает мозг напрочь и количество ненужных операторов, которые занимают память контроллера и увеличивают время такта зашкаливает. Поэтому, если нужно написать быстрый и оптимизированный код, то это только stl. У меня есть в обслуживании сушильная камера, где весь климат написан на scl и там это оправдано, т.к. написать на lad/stl такие вещи было бы очень сложно. А работа транспортной системы сделана в lad/stl, т.к. отлаживать и искать неполадки проще. Из всех проектов, которые я видел, мне попался один или два, которые написаны на fbd/stl. Один был на sfc и там нужды в нем не было, а было какое-то извращение программера. Часто пишут на scl чтобы скрыть исходники.

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

Добавлено: 13 дек 2016, 16:22
dimon64
]
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
Сразу хочется настучать по голове "писателю".

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

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

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

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

Для меня лично, как для программиста, все эти языки в виде разного рода блоков - это какой-то бред. Любые операции с числами на любых этих 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 может быть актуален, когда решаются элементарные задачи или когда надо наглядно продемонстрирвоать алгоритм людям, далеким от программирования.

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

Добавлено: 10 сен 2017, 10:02
ward
вот-вот, вроде как и наглядные LAD и FBD, но когда блоки и цепочки большие, то это превращается в полный маразм, и программа становится нечитаема. Сам предпочитаю только STL, отличный язык, мне нравится. Хотя раньше не нравился и предпочитал LAD

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.

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

Добавлено: 21 июн 2018, 00:33
Nicolayy
Бардичев Виктор писал(а): "Ненавязчивый" сервис убивает. Не успеешь дописать одну букву, как появляются куча неубиваемых сообщений об ошибках, закрывающий текст программы.
Постоянно текст форматируется, отступы меняются, как программеры посчитали паравильным. Хоть Enter не нажимай.
Чтобы поменять индекс в массиве, нужно сначала поставить новый, а потом убрать старый.
Если согласишься показывать поля структуры, то зае..зацелует. Если не согласишься, то потом и по Alt-пробел не добъешься.
И много-много подобных примеров, и в графическом редакторе, и в симуляторе.
На самом деле, всё не так и плохо. Многое отключается в настройках, у меня вот отступы не меняются и вообще особо интерфейс среды разработки не достает после некоторых манипуляций. Но не всё, конечно, в настройках можно отключить... Меня вот раздражает то, что TIA на кой-то черт группирует открытые вкладки, если их открыто более 4 штук. Вот открыл 5 штук FB и FC - он их в группу Code Block запихивает. ЗАЧЕМ он это делает?? На экране ведь полно места! И никак это не отключается, хоть дизассемблируй проклятую софтину и удаляй это вручную...

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

Добавлено: 21 июн 2018, 04:59
Михайло
Nicolayy писал(а):На экране ведь полно места!
Да, я тоже раздражаюсь от этой фичи. В Windows по умолчанию тоже такое же творится, но там хотя бы изменить можно (а Windows 10 надо активировать).

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

Добавлено: 21 июн 2018, 07:15
Nicolayy
Михайло писал(а): В Windows по умолчанию тоже такое же творится, но там хотя бы изменить можно
Дай бог здоровья создателям Classic Shell
Михайло писал(а):а Windows 10 надо активировать).
На самом деле, не надо вообще пользоваться этой ужасной версией Windows!

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

Добавлено: 26 июн 2018, 08:57
Andrey.wys
Подскажите, в ТИА портале есть slt или нет? Или есть, но только для 300-400 серии?

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

Добавлено: 26 июн 2018, 09:38
Nicolayy
Andrey.wys писал(а):Подскажите, в ТИА портале есть slt или нет? Или есть, но только для 300-400 серии?
Угу, всё так.

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

Добавлено: 03 июл 2018, 22:38
fuzzy_l
Лучьше всего Граф! Цепочка к цепочке, веточка к веточке и автоматический режим готов на 5 балов.

Всю безопасность лучше писать на Lad или Fbd.

Танцы с косвенной адресацией могут привести к экзотическим глюкам случающимся 1 раз в год и при хз каких условиях. Шел в автомате со свежей и по пути ему приснилось что везет уже зрелую и давай ее к ребятам на выгрузку.

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

Добавлено: 03 июл 2018, 22:56
fuzzy_l
5 копеек за зеленые цепочки в LAD и FBD. Когда время 4:00 ночи, ты сидишь с программатором на кране, а там адски жарко и кран сволоч не едет и ни чего не пишет или наоборот делает не то что ему велят, То вся надежда только на зеленые цепочки и крос референс. Тк спокойно подумать тебе не дадут, дергать тебя будут каждую минуту. А ты только неделю как отстажировался на самостоятельную работу в смену.
Все языки хороши, но чем проще и наглядней, тем лучше.