Контроллеры Siemens SIMATIC S7-300

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Shaos wrote:Да вроде язык инструкций STL (IL) у них один на всех, нет разве? ...
Ну вот, к примеру, описание аккумуляторов:
akk.gif
Вот описание логических команд:
Log.gif
На мой взгляд - типичный ассемблер незнакомого мне процессора.

Для высоких уровней абстракции такая мелкая детализация, на мой взгляд, излишняя.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Lavr wrote:Есть система команд не высокого уровня, а типа ассемблерных, упоминаются регистры...
Даже если это всё виртуальное - блок схема вполне может быть.
Есть такое зрелище! Я ж говорил - не может быть, чтобы не было...
reg.gif
regs.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Контроллеры Siemens SIMATIC S7-300

Post by Shaos »

я думаю основа системы команд живёт с 70х, она с годами обросла "мясом" типа плавающей точки и сейчас поддерживается чисто виртуально из-за того, что куча существующих промышленных внедрений её использует

P.S. целочисленное сложение за 0.6 мкс? это 1.666 миллионов инструкций в секунду - явно симуляция...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Icer
Senior
Posts: 163
Joined: 21 Aug 2018 07:39
Location: Кемеровская обл.

Re: Контроллеры Siemens SIMATIC S7-300

Post by Icer »

Чувствуется полный контроль над программой пользователя.
Явные ошибки типа "деление на ноль" и "выход за границу массива" не то чтоб полностью игнорирует... увидеть можно только в журнале аварий да и красной лампочке на самом ПЛК.
Есть еще некоторые нюансы типа "виртуальные" входа/выхода (выражается в том что состояние реальных входов/выходов не меняется пока не завершится цикл программы).
Контроль времени выполнения цикла (можно предположить что это ватчдог, но это не он).
Аппаратное решение в виде камня будет слишком дорого и весьма не гибко в плане масштабируемости.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

А ассемблерный текст входит составной частью в язык STEP.
step.gif
Shaos, я вот не люблю абстрактных понятий для такой конкретной вещи, как процессор.
Вот то что выше пОстом - это мне четко понятно: это т.н. программная модель процессора.
Также понятно, что, видимо, отдельного компилятора ассемблера нет, но выражения на ассемблере
входят составной частью в язык STEP.
Паскалей, С и Васиков - не наблюдается... :wink:

А "обросло мясом" - это нифига не понятно... так, глядя на плату, может быть с 1958 года оно наоборот
"сбросило излишний жир" дискретных компонент? :lol:
S7315AF03_CPU.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Контроллеры Siemens SIMATIC S7-300

Post by Shaos »

STL (IL) это не ассемблер - даже в твоём тексте написано "подобно обычному языку Ассемблера", т.е. лишь подобие ибо нет непосредственного соответствия между инструкцией этого "ассемблера" и операцией процессора, например та же инструкция загрузки более интеллектуальная чем просто копирование состояния входа в аккумулятор - она типа как стек работает выполняя 2 операции - сдвигает ACC1 в ACC2 и потом загружает требуемое в ACC1 (причём после обнуления ACC1, т.е. это даже 3 инструкции получается):
Screenshot from 2020-08-11 21-58-51.png
Пример программы с плавающей точкой:
Screenshot from 2020-08-11 22-06-14.png
Это явно не для "микроконтроллера" написано...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Shaos wrote:Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)
Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Shaos wrote:STL (IL) это не ассемблер - даже в твоём тексте написано "подобно обычному языку Ассемблера", т.е. лишь подобие ибо нет непосредственного соответствия между инструкцией этого "ассемблера" и операцией процессора, например та же инструкция загрузки более интеллектуальная чем просто копирование состояния входа в аккумулятор - она типа как стек работает выполняя 2 операции - сдвигает ACC1 в ACC2 и потом загружает требуемое в ACC1 (причём после обнуления ACC1, т.е. это даже 3 инструкции получается):
Да какая разница "подобно" или не подобно, когда для всех команд, "подобных обычному языку Ассемблера"
приведено точное время их выполнения?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Контроллеры Siemens SIMATIC S7-300

Post by Shaos »

Lavr wrote:
Shaos wrote:Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)
Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?
Ещё PDP-11 был, который также активно использовался в промышленной автоматизации, будучи по сути конкурентом Сименса
Lavr wrote:
Shaos wrote:STL (IL) это не ассемблер - даже в твоём тексте написано "подобно обычному языку Ассемблера", т.е. лишь подобие ибо нет непосредственного соответствия между инструкцией этого "ассемблера" и операцией процессора, например та же инструкция загрузки более интеллектуальная чем просто копирование состояния входа в аккумулятор - она типа как стек работает выполняя 2 операции - сдвигает ACC1 в ACC2 и потом загружает требуемое в ACC1 (причём после обнуления ACC1, т.е. это даже 3 инструкции получается):
Да какая разница "подобно" или не подобно, когда для всех команд, "подобных обычному языку Ассемблера"
приведено точное время их выполнения?
не точное, а "типичное" :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Shaos wrote:
Lavr wrote:
Shaos wrote:Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)
Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?
Ещё PDP-11 был, который также активно использовался в промышленной автоматизации, будучи по сути конкурентом Сименса
PDP-11 - совсем неподходящий пример, поскольку слишком поздний...
PDP-11 — серия 16-разрядных мини-ЭВМ компании DEC, серийно производившихся и продававшихся в 1970—80-х годах.
Более подходящий - Hewlett-Packard HP 2100 - он вышел в году так 1967 и был лучше PDP-8.
Самым прямым конкурентом был, пожалуй, LINC (Laboratory INstrument Computer) - он предтеча PDP-8.

Непонятно только, как в 1958 году Siemens в отсутствие GUI обрабатывал вот такие "программы": :wink:
Leg.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Lavr wrote:
Shaos wrote:Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)
Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?
Нет, не было у Siemens в 1958 году никакого процессора - правильно я высказал подозрение,
поскольку, как ни крути, именно PDP-8 в 1965 году была бюджетным коммерческим прорывом
в процессах автоматизации, и размером была с маленький холодильник...

И "Саратов", "Саратов-2" содрали с PDP-8 именно чтобы иметь компактную УВМ для процессов
автоматизации.

А у Siemens в 1958 году было вот что:
hist.gif
А что-то процессорное появилось в году так 1975, но это уже не так интересно, поскольку в этом году,
действительно, была в деле легендарная PDP-11, с которой в СССР содрали систему команд для 1801хх.

А у Siemens ничего не содрали, значит и сдирать-то было нЕчего... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Контроллеры Siemens SIMATIC S7-300

Post by Shaos »

А я нигде и не писал, что они сразу в 50х стали программироваться - серия существует с 50х, а программироваться начало в 70х:
Shaos wrote:я думаю основа системы команд живёт с 70х, она с годами обросла "мясом" типа плавающей точки и сейчас поддерживается чисто виртуально из-за того, что куча существующих промышленных внедрений её использует
см. https://www.cnsiemensplc.com/news/history-of-siemens-plc-18853727.html - S7 появилась в 1994, но она на основе S5 возникла, которая в 1979 появилась на замену S3, появившейся в 1975 - все они были программируемыми
Я тут за главного - если что шлите мыло на me собака shaos точка net
Электромонтёр
Fanat
Posts: 97
Joined: 23 Feb 2018 22:20

Re: Контроллеры Siemens SIMATIC S7-300

Post by Электромонтёр »

Я Ladder Logic для программирования своего недоплк использовал.

Сам по себе Siemens SIMATIC S7-300 стандартный промконтроллер и программируется на одном из пяти стандартных языков, чаще всего мне попадались LD - релейно-контактной логики, и ST - паскалеподобный недоязык программирования. Некоторые инженеры предпочитают писать на FBD - блок-схемы на триггерах и логических элементах.

Архитектура процессора полностью скрыта от пользователя! А у нашего "овна" прошивки компилируются на компе разработчика и в таком виде пишутся в сам контроллер, исходников из овеновского плк вытянуть невозможно.

Дополнительные функции, реагирование на прерывания или работа с энкодером, у таких контроллеров как правило завязана на определённые входы и работает через "регистры". Для работы с этими регистрами в LD есть костыли - арифметика работает через команду MOVE. Вся периферия настраивается из среды разработки, например, подключение панели оператора по modbus, где в качестве переменных прописываются нарисованные кнопки и лампочки.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Shaos wrote:А я нигде и не писал, что они сразу в 50х стали программироваться - серия существует с 50х, а программироваться начало в 70х: ...
Так а я тебя и не упрекаю ни в чем... :wink: Я просто внимательно прочитал Википедии на слово SIMATIC.
И уточнил здесь информацию: что за чем... а то как-то исторически превратно выглядело. :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Контроллеры Siemens SIMATIC S7-300

Post by Lavr »

Электромонтёр wrote:Сам по себе Siemens SIMATIC S7-300 стандартный промконтроллер и программируется на одном из пяти стандартных языков, чаще всего мне попадались LD - релейно-контактной логики, и ST - паскалеподобный недоязык программирования.
А вы не могли бы привести небольшой но понятный пример программирования на этом "паскалеподобном недоязыке"?

Или, возможно, коллега Icer может такой пример привести тут? :wink:
Icer wrote:...вероятно из-за паскаля головного "моска").
iLavr