nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 14:22



Reply to topic  [ 38 posts ]  Go to page Previous  1, 2, 3  Next
Контроллеры Siemens SIMATIC S7-300 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да вроде язык инструкций STL (IL) у них один на всех, нет разве? ...

Ну вот, к примеру, описание аккумуляторов:
Attachment:
akk.gif
akk.gif [ 17.32 KiB | Viewed 5222 times ]

Вот описание логических команд:
Attachment:
Log.gif
Log.gif [ 26.56 KiB | Viewed 5222 times ]

На мой взгляд - типичный ассемблер незнакомого мне процессора.

Для высоких уровней абстракции такая мелкая детализация, на мой взгляд, излишняя.

_________________
iLavr


11 Aug 2020 20:46
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Есть система команд не высокого уровня, а типа ассемблерных, упоминаются регистры...
Даже если это всё виртуальное - блок схема вполне может быть.

Есть такое зрелище! Я ж говорил - не может быть, чтобы не было...
Attachment:
reg.gif
reg.gif [ 30.54 KiB | Viewed 5219 times ]

Attachment:
regs.gif
regs.gif [ 15.5 KiB | Viewed 5219 times ]

_________________
iLavr


11 Aug 2020 21:32
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22520
Location: Silicon Valley
Reply with quote
я думаю основа системы команд живёт с 70х, она с годами обросла "мясом" типа плавающей точки и сейчас поддерживается чисто виртуально из-за того, что куча существующих промышленных внедрений её использует

P.S. целочисленное сложение за 0.6 мкс? это 1.666 миллионов инструкций в секунду - явно симуляция...

_________________
:dj: https://mastodon.social/@Shaos


11 Aug 2020 21:32
Profile WWW
Senior
User avatar

Joined: 21 Aug 2018 07:39
Posts: 164
Location: Кемеровская обл.
Reply with quote
Чувствуется полный контроль над программой пользователя.
Явные ошибки типа "деление на ноль" и "выход за границу массива" не то чтоб полностью игнорирует... увидеть можно только в журнале аварий да и красной лампочке на самом ПЛК.
Есть еще некоторые нюансы типа "виртуальные" входа/выхода (выражается в том что состояние реальных входов/выходов не меняется пока не завершится цикл программы).
Контроль времени выполнения цикла (можно предположить что это ватчдог, но это не он).
Аппаратное решение в виде камня будет слишком дорого и весьма не гибко в плане масштабируемости.


11 Aug 2020 21:48
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А ассемблерный текст входит составной частью в язык STEP.
Attachment:
step.gif
step.gif [ 33.89 KiB | Viewed 5217 times ]


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

А "обросло мясом" - это нифига не понятно... так, глядя на плату, может быть с 1958 года оно наоборот
"сбросило излишний жир" дискретных компонент? :lol:
Attachment:
S7315AF03_CPU.gif
S7315AF03_CPU.gif [ 388.7 KiB | Viewed 5217 times ]

_________________
iLavr


11 Aug 2020 21:50
Profile
Admin
User avatar

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

Attachment:
Screenshot from 2020-08-11 21-58-51.png
Screenshot from 2020-08-11 21-58-51.png [ 59.97 KiB | Viewed 5213 times ]


Пример программы с плавающей точкой:

Attachment:
Screenshot from 2020-08-11 22-06-14.png
Screenshot from 2020-08-11 22-06-14.png [ 13.75 KiB | Viewed 5212 times ]


Это явно не для "микроконтроллера" написано...

_________________
:dj: https://mastodon.social/@Shaos


11 Aug 2020 22:08
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)

Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?

_________________
iLavr


11 Aug 2020 22:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
STL (IL) это не ассемблер - даже в твоём тексте написано "подобно обычному языку Ассемблера", т.е. лишь подобие ибо нет непосредственного соответствия между инструкцией этого "ассемблера" и операцией процессора, например та же инструкция загрузки более интеллектуальная чем просто копирование состояния входа в аккумулятор - она типа как стек работает выполняя 2 операции - сдвигает ACC1 в ACC2 и потом загружает требуемое в ACC1 (причём после обнуления ACC1, т.е. это даже 3 инструкции получается):
Да какая разница "подобно" или не подобно, когда для всех команд, "подобных обычному языку Ассемблера"
приведено точное время их выполнения?

_________________
iLavr


11 Aug 2020 22:16
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22520
Location: Silicon Valley
Reply with quote
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 инструкции получается):
Да какая разница "подобно" или не подобно, когда для всех команд, "подобных обычному языку Ассемблера"
приведено точное время их выполнения?

не точное, а "типичное" :)

_________________
:dj: https://mastodon.social/@Shaos


11 Aug 2020 22:18
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Lavr wrote:
Shaos wrote:
Судя по википедии серия контроллеров SIMATIC родилась в 1958 году (см. https://en.wikipedia.org/wiki/Simatic)

Один момент не совем понятен... если у Siemens был такой довольно неглупый процессор в 1958 году,
пусть даже из очень мелкой рассыпухи, то почему тогда так превозносят PDP-8, которая вышла в свет
аж в 1965 году и разработана была для тех же целей - управления чем-то?

Ещё PDP-11 был, который также активно использовался в промышленной автоматизации, будучи по сути конкурентом Сименса

PDP-11 - совсем неподходящий пример, поскольку слишком поздний...
Quote:
PDP-11 — серия 16-разрядных мини-ЭВМ компании DEC, серийно производившихся и продававшихся в 1970—80-х годах.

Более подходящий - Hewlett-Packard HP 2100 - он вышел в году так 1967 и был лучше PDP-8.
Самым прямым конкурентом был, пожалуй, LINC (Laboratory INstrument Computer) - он предтеча PDP-8.

Непонятно только, как в 1958 году Siemens в отсутствие GUI обрабатывал вот такие "программы": :wink:
Attachment:
Leg.gif
Leg.gif [ 34.55 KiB | Viewed 5210 times ]

_________________
iLavr


11 Aug 2020 23:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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 году было вот что:
Attachment:
hist.gif
hist.gif [ 20.41 KiB | Viewed 5198 times ]

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

А у Siemens ничего не содрали, значит и сдирать-то было нЕчего... :wink:

_________________
iLavr


12 Aug 2020 06:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22520
Location: Silicon Valley
Reply with quote
А я нигде и не писал, что они сразу в 50х стали программироваться - серия существует с 50х, а программироваться начало в 70х:
Shaos wrote:
я думаю основа системы команд живёт с 70х, она с годами обросла "мясом" типа плавающей точки и сейчас поддерживается чисто виртуально из-за того, что куча существующих промышленных внедрений её использует

см. https://www.cnsiemensplc.com/news/history-of-siemens-plc-18853727.html - S7 появилась в 1994, но она на основе S5 возникла, которая в 1979 появилась на замену S3, появившейся в 1975 - все они были программируемыми

_________________
:dj: https://mastodon.social/@Shaos


12 Aug 2020 07:14
Profile WWW
Fanat

Joined: 23 Feb 2018 22:20
Posts: 91
Reply with quote
Я Ladder Logic для программирования своего недоплк использовал.

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

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

Дополнительные функции, реагирование на прерывания или работа с энкодером, у таких контроллеров как правило завязана на определённые входы и работает через "регистры". Для работы с этими регистрами в LD есть костыли - арифметика работает через команду MOVE. Вся периферия настраивается из среды разработки, например, подключение панели оператора по modbus, где в качестве переменных прописываются нарисованные кнопки и лампочки.


12 Aug 2020 07:18
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
А я нигде и не писал, что они сразу в 50х стали программироваться - серия существует с 50х, а программироваться начало в 70х: ...

Так а я тебя и не упрекаю ни в чем... :wink: Я просто внимательно прочитал Википедии на слово SIMATIC.
И уточнил здесь информацию: что за чем... а то как-то исторически превратно выглядело. :-?

_________________
iLavr


12 Aug 2020 07:19
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Электромонтёр wrote:
Сам по себе Siemens SIMATIC S7-300 стандартный промконтроллер и программируется на одном из пяти стандартных языков, чаще всего мне попадались LD - релейно-контактной логики, и ST - паскалеподобный недоязык программирования.

А вы не могли бы привести небольшой но понятный пример программирования на этом "паскалеподобном недоязыке"?

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

_________________
iLavr


12 Aug 2020 07:54
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 38 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 13 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.