SIEMENS, DF&PD

Предыдущее посещение: Чт июн 30, 2016 1:08 Текущее время: Чт июн 30, 2016 1:08

Часовой пояс: UTC + 3 часа




 [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 8:13 
Не в сети
Возможно это нечеловек

Зарегистрирован: Ср апр 19, 2006 20:58
Сообщения: 2390
il писал(а):
"Язык ассемблера" - один, "ассемблер" (компилятор типа) - разный под конкретное железо. что не так?

Для введения новичков в курс дела авторам иногда приходится писать на понятном новичкам языке с применением понятных им терминов и аллегорий, чтобы не отпугнуть привыкших программировать на неМЭК языках...

Википедиа писал(а):
Язык ассемблера — тип языка программирования низкого уровня, представляющий собой формат записи машинных команд (конкретного процессора), удобный для восприятия человеком.

Изображение
То есть машинной команде с кодом DB 00 соответствует символическая мнемоника RETS.
А так как нет такого физического процессора с такой аппаратной архитектурой S7, то нельзя и говорить о представлении машинных команд - то есть об ассемблере.
В зависимости от используемых в контроллере микропроцессоров команда ADD может быть представлена в виде одной или нескольких машинных команд или больших подпрограмм (например для обработки чисел с плавающей точкой) конкретного микропроцессора.

Первые шаги писал(а):
Выбор контактного плана LAD, списка операторов STL или функционального плана FBD

В STEP 7 программы S7 создаются на стандартных языках программирования: контактный план (LAD), список операторов (STL) или функциональный план (FBD).

На практике Вы должны решить, в каких случаях какой язык использовать. При этом надо учитывать не только удобство написания программы, но и удобство отладки и поиска логических ошибок.

При отладке и мониторинге можно выбирать наиболее удобное отображение информации, меняя язык отображения.

Для примера выбрана одна и таже операция (включение реле при замыкании 2-х контактов), а в правой части рисунков приведены отображения при отладке для всех языков.

Ветви программы написанные на LAD и FBD можно посмотреть на языке STL, выбрав соответствующий пункт в меню. Обратное не всегда возможно.

Вы можете свободно использовать все три языка выбирая нужный в меню.

Изображение


Контактный план LAD

Понятен для инженеров-электриков, работавших с релейными схемами.

Контактный план (немецкий KOP, английский LAD) – это графическое представление языка программирования STEP 7.

Его синтаксис для команд похож на релейно-контактные схемы: такая схема дает возможность проследить

поток энергии между шинами при его прохождении через различные контакты, составные элементы и выходные катушки.

Изображение


Отображение в режиме отладки:

В контактном плане в сегменте 1 отображается последовательная цепь.

Токовая шина отображается сплошной зеленой линией вплоть до Key_2 - это значит, что в цепь уже подано питание и состояние Key_1=1.

Так как состояние Key_2=0, то сигнал дальше не проходит.

Изображение


Список операторов STL

Понятен для программистов, работавших на языке ассемблера.

Изображение

Список команд (немецкий AWL, английский STL) – это текстовое представление языка программирования STEP 7, подобное машинному коду.

STL не является ассемблером микроконтроллера - это транслятор в машинные команды микроконтроллера.

В разных CPU используются 16-ти и 32-х разрядные микроконтроллеры с различным набором внутренних регистров, не имеющих прямого соответствия регистрам языков программирования.

Если программа написана в виде списка команд, то отдельные команды соответствуют шагам, с помощью которых CPU исполняет программу.

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


Отображение в режиме отладки:

Изображение

При мониторинге справа от команд отображается состояние битов результата RLO и статуса STA и значение аккумулятора.

В контекстном меню можно выбрать отображение других регистров и формат вывода данных.


Функциональный план FBD

Понятен для инженеров-схемотехников, работавших со схемами на основе дискретной цифровой логики.

Изображение

Функциональный план (нем. FUP, англ. FBD) – это графическое представление языка программирования STEP 7, использующее для представления логики логические блоки подобно булевой алгебре.



Сложные функции (например, математические функции) могут быть представлены непосредственно в соединении с логическими блоками.

Отображение в режиме отладки:

Изображение

Функциональный блок &И открывается только при 1 на обоих входах, поэтому сигнал дальше не проходит


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 9:23 
Не в сети
Известный Писатель

Зарегистрирован: Пт ноя 02, 2007 6:19
Сообщения: 458
Откуда: irk
Цитата:
Для введения новичков в курс дела авторам иногда приходится писать на понятном новичкам языке с применением понятных им терминов и аллегорий, чтобы не отпугнуть привыкших программировать на неМЭК языках...

да да и видимо для этого же вставлять во все другие мануалы (которые не Первые шаги) определения типа
Цитата:
Список команд - это текстовое представление языка программирования STEP 7, подобного машинному коду. AWL - это язык ассемблера STEP 5 и STEP 7. Если Вы программируете на AWL, то отдельные команды представляют собой фактические шаги, которыми CPU исполняет программу.Из языков программирования, с помощью которых можно программирования программировать контроллеры S7, AWL наиболее близок к машинному коду MC7 S7-CPU.

можно создать свою терминологическую базу или встретиться с Г.Бергером для
окончательного расставления всех двоеточий над u
и назвать его ассемблером для виртуального s7-cpu.

Ассемблероподобный - не означает целиком и полностью похожий на ассемблер.
что бы его так назвать имхо достаточно и того что
1) STL имеет аналогичный синтаксис,
2) Процесс трансляции программы на языке ассемблера в объектный код принято называть ассемблированием. В отличие от компилирования, ассемблирование — более или менее однозначный и обратимый процесс.
3) Находится в похожем положении (достаточном чтобы проводить аналогии) по отношению к SCL, как скажем обычный ассемблер
по отношению к паскалю

Кроме того всем же прекрасно же известно что
Цитата:
Для введения в курс дела авторам иногда приходится писать на понятном языке с применением понятных им терминов и аллегорий

и поэтому какие могут быть вообще вопросы к этому:
Цитата:
SCL = Pascal
STL = Ассемблер

гг..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 11:28 
Не в сети
Возможно это нечеловек

Зарегистрирован: Ср апр 19, 2006 20:58
Сообщения: 2390
il писал(а):
и поэтому какие могут быть вообще вопросы к этому:
Цитата:
SCL = Pascal
STL = Ассемблер

гг..

У тех кто не знает из Чего Что делается возможно вопросов и не будет и он примет подобные утверждения на веру.
У тех кто знаком с аппаратной реализацией контроллеров и с программированием всего и вся на лице будет ухмылка, выражающая превосходство над дилетантизмом.
На досуге можешь посмотреть систему команд RISC микропроцессора TriCore, используемого в S7-317
Изображение Изображение
и попробуйте найти в доках на 16-ти разрядный микропроцессор С165, используемый в S7-315 AF03, команды умножения чисел с плавающей запятой или вычисление тангенса, используемые в STL.
Цитата:
SCL <> Pascal
STL <> Ассемблер

STL самостоятельный язык программирования стандарта МЭК.
На STL некоторые вещи сделать проще, чем на SCL - поэтому правомерно был предложен простой STL вариант запрашиваемого определения фронта.

------------------------
Дискуссию веду в образовательных целях для искоренения некоторых заблуждений, а не в качестве ответа, встающим перед бронепоездами.
вклеил URL Изображение на труднонаходимый сайт http://www.infineon.com/ и сам S7-317


Последний раз редактировалось Homist Пн июл 28, 2008 20:09, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 11:50 
Не в сети
Известный Писатель

Зарегистрирован: Пт июн 20, 2008 15:42
Сообщения: 105
Откуда: Россия
т.е. ув. Homist вещает, что например строка
Код:
*R

которая внешне выглядит достаточно прозаично в недрах железяк близких по концепции (в частности ЦПУ 300-й серии) реализована разным набором микрокоманд. Тем самым доказывая что не стоит называть всякую там МЭК-овскую шнягу типа STL-я гордым словом асемблер.

Все это конечно буйный флуд, но электроны по дорожкам бегают по еще более запутанным траекториям, а возможно есть и еще более глубокое понимание физики, глубже чем основы электродинамики. Но зачем?
Зачем знать об этих отличиях реализации железок. Что это дает кроме вышеупомянутого превосходства над т.н. дилетантизьмом, иными словами снобизма. Это знание способно как-то прочистить мозги и написать более умное решение алгоритмов? Я считаю, каждый должен заниматься своим делом, - создатели железок делать их надежными и быстрыми, интеграторы - интегрировать согласно ТЗ, а технологи и проектанты придумывать хитроумные формулы и ваять из них ТЗ. И тогда разруха исчесзнет сама собой (с) проф. Преображенский.
имхо, снобизм вреден и не конструктивен, сорри за флуд


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 13:13 
Не в сети
Возможно это нечеловек

Зарегистрирован: Ср апр 19, 2006 20:58
Сообщения: 2390
Nickname писал(а):
т.е. ув. Homist вещает, что например строка
Код:
*R

которая внешне выглядит достаточно прозаично в недрах железяк близких по концепции (в частности ЦПУ 300-й серии) реализована разным набором микрокоманд.

ув. Homist пытается показать, что знание внутренностей иногда позволяет не совершать некоторых ошибок, делаемых при допущениях исходя только из видимых поверхностных данных.
Если смотреть снаружи, то можно сделать вывод, что модули шины "подобны", а если заглянуть внутрь, то можно понять, что они не подобны и поэтому не взаимозаменяемы
http://www.automation-drives.ru/forum/v ... php?t=8813


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 28, 2008 13:51 
Не в сети
Известный Писатель

Зарегистрирован: Пт июн 20, 2008 15:42
Сообщения: 105
Откуда: Россия
Цитата:
Проверили номера шины. Согласно Step 7 для нашего ET200M требуется...
, то есть разбирать все-же не обязательно, все и так есть в каталоге.
Перевожу на наш случай: для правильного и успешного написания пользовательского ПО для контроллеров SIEMENS достаточно освоить стандартные средства, т.е. языки программирования в стандарте МЭК61131/3, ну и науч.поп.лит. типа Бергера, Геттингстарт и массу других полезных источников. А знать особенности реализации набора команд процессора не нужно и разработчик, скрывая эту инфу, явно не желал давать ее в руки русским программистам.
Хотя факт понимания того что STL - это еще не конец, соглашусь с Вами, Homist, способен оказать благотворное влияние на качество кода.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 26 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group