Концерн Siemens уже несколько десятилетий занимается производством регулируемых электроприводов. Не осталось, пожалуй, ни одной области жизни, где бы они не применялись. Существенная экономия электроэнергии, снижение затрат на эксплуатацию и техническое обслуживание — далеко не все плюсы новых технологий.
Помимо того, что преобразователи частоты позволяют управлять производительностью отдельных элементов системы, они также позволяют сберечь электроэнергию и сделать инженерные системы более энергоэффективными. В ряде случаев экономия электроэнергии достигает 70%.
Преобразователи частоты SiemensК числу инновационных разработок концерна Siemens относятся надежные и удобные для любого | |
Устройства плавного пуска SiemensУстройства данной серии имеют небольшие габаритные размеры, встроенный шунтирующий контактор | |
Контроллеры Siemens | |
Регулирующие и смесительные клапаны SiemensВ данном разделе представлены долговечные и надежные клапаны Siemens, совместимые с любыми | |
Автоматические регуляторы перепада давления SiemensУстройства Siemens VSG и Siemens VHG применяется в качестве регуляторов перепада давления или | |
Газовые клапаны SiemensКлапаны Siemens газовые предназначены для применения на газовых теплогенераторах, в | |
Радиаторные клапаны SiemensЭто позволит вашему бизнесу не только начать новую жизнь, но и обойти всех возможных конкурентов | |
Приводы для регулирующих клапанов SiemensВыбирая оборудование из модельного ряда приводов Siemens, Вы получаете полный спектр приводов | |
Приводы для газовых клапанов SiemensПривод Siemens для газовых клапанов служит исполнительным механизмом и обеспечивает выполнение функций | |
Приводы воздушных заслонок SiemensПриводы воздушных заслонок Siemens характеризуются низким энергопотреблением, высокой | |
Сервоприводы SiemensЭлектромоторные приводы Siemens применяются совместно с различными клапанами Siemens | |
Автоматы горения SiemensПриводы воздушных заслонок Siemens характеризуются низким энергопотреблением, высокой | |
Менеджеры горения SiemensМенеджер горения это устройство на основе микропроцессора с соответствующими компонентами для | |
Датчики и сенсоры для горелок SiemensДатчики для контроля пламени газовых и жидкотопливных горелок, а также для проверки наличия искры | |
Датчики для помещений SiemensДатчики перепада давления используются для считывания показаний перепада давления | |
Термостаты комнатные SiemensSiemens выпускает обширный модельный ряд термостатов и температурных регуляторов практически для любых приложений: для частных домов, гостиниц | |
Термостаты капиллярные SiemensЛинейка продукции включает как электромеханические, так и электронные приборы. Мы выпускаем приборы практически для любых приложений | |
Контроллеры AlbatrosAlbatros — это контроллеры для автоматизации котельных (линейка RVA) и индивидуальных тепловых пунктов (линейка RVD) | |
Контроллеры SigmagirSigmagir — контроллеры тепловых пунктов. Управление тепловыми пунктами с контуром отопления и ГВС. Оптимизирован для управления температурой в обратной магистрали | |
Контроллеры SyncoРяд контроллеров Synco 100 состоит из температурных контроллеров для прямого монтажа (не требуется панели управления) и контроллеров комнатной температуры | |
Контроллеры универсальные SiemensУниверсальные контроллеры для поддержания комфорта в помещениях при помощи управления системами вентиляции, отопления, кондиционирования и |
Отдельное внимание стоит уделить коммутационной технике и частотным преобразователям. Данные продукты идеально подходят для автоматизации процесса производства каких-либо изделий в различных отраслях промышленности. При этом осуществляется компьютерное управление согласно современным тенденциям и технологиям. Качественные преобразователи частоты Sinamics, которые применяются к различным типам оборудования.
Siemens Sinamics — сегодня это универсальный функционал базирующийся на одной платформе, открытый подход для инжиниринга, широчайший диапазон мощностей, встроенные системы безопасности и самодиагностики, высокая рентабельность и энергоэффективность.
К числу более популярных и универсальных преобразователей частоты можно отнести Micromaster, серия которых уже не первый год находится на данном рынке и остается наиболее запрашиваемым выбором на рынке.
Серия преобразователей частоты Micromaster — это синоним слова «качество». На сегодняшний день компания Siemens выпускает четвертое поколение преобразователей — Micromaster 4.
Софт-стартеры или устройства плавного пуска SIRIUS 3RW осуществляют плавный пуск и останов трёхфазных электродвигателей методом нарастания/спада напряжения. Устройства данной серии имеют небольшие габаритные размеры, встроенный шунтирующий контактор.
3RW30 — Это серия цифровых устройств плавного запуска для асинхронных электродвигателей мощностью от 0,25 до 55 кВт включительно. Этот тип устройств плавного пуска широко используется в холодильном оборудовании, кондиционерах, системах управления насосами, ленточными конвейерами и многих других применениях. За счёт двухфазного управления на протяжении всего разгона ток во всех трёх фазах поддерживается на уровне минимальных значений.
3RW40 — Устройства плавного пуска SIRIUS 3RW40 обладают такими же преимуществами, как и 3RW30/31. Однако данные модели оснащены функциями, уникальными в данном диапазоне мощности: полупроводниковая защита от перегрузки двигателя и встроенная защита устройства, регулируемые ограничения тока и двухфазный метод управления (баланс полярности).
3RW44 — Помимо плавного разгона/торможения, полупроводниковые устройства плавного пуска SIRIUS 3RW44 предоставляют множество функций для повышенных требований эксплуатации. Устройства плавного пуска SIRIUS 3RW44 характеризуются компактным размерами, благодаря которым возможна экономия пространства и четкая планировка шкафа управления.
Электрические асинхронные двигатели с короткозамкнутым ротором — это наиболее распространенные двигатели в современном производстве и промышленности. Основная суть такого электродвигателя — превращение электрической энергии в механическую, с минимальной потерей энергии. Асинхронные двигатели Siemens на данный момент весьма распространены в силу своей надежности и малых энергопотерь, что в свою очередь приводит к экономии средств на запчастях и электроэнергии.
Из-за стремительного роста конкуренции практически во всех нишах предприятия требуют максимальной степени автоматизации производства. Такое преимущество позволит выбиться в топ и стать лидером на конкретном сегменте рынка.
Но успех автоматизации и бизнеса в целом зависит от грамотного внедрения качественного и надежного оборудования, к числу которых можно отнести программируемые логические контроллеры (ПЛК) и программируемые реле, а также многих других представителей микроконтроллеров.
Несмотря на изменчивость рынка, Simatic не сдает лидирующие позиции, обеспечивая предприятиям надежное и качественное функционирование. При этом данная линейка поддерживает такие популярные протоколы как Ethernet и MPI, Point to Point и PPI, и многие другие. Это позволит вашему бизнесу не только начать новую жизнь, но и обойти всех возможных конкурентов.
Серию недорогих логических модулей представляет Siemens Logo! цена которых намного ниже возможностей и качества, которые предназначены для логической обработки информации и выполнения не сложных программ. Основное преимущество данной серии заключается в гибкости модификации модуля и его невысокой стоимости.
Комплексная автоматизация способна кардинально изменить процесс производства, сделав его более оптимизированным и удовлетворяющим современные требования. Убедитесь в этом, сделав заказ умного оборудования именно у нас.
03.11.2020Интернет-шлюз SINAMICS CONNECT 300Интернет-шлюз для сбора данных через порт USS преобразователя и синхронизации данных с MindSphere, операционной системой Siemens Industrial Cloud | |
03.11.2020Новое сетевое программное обеспечение SINEC INS V1.0 от SiemensПрограммное решение SINEC INS (Infrastructure Network Services) это WEB приложение, которое сочетает в себе различные сетевые инструменты и сервисы. | |
03.11.2020LOGO! теперь с облачным функционалом!Самый маленький контроллер от Siemens в новом обновлении v8.3 получит облачный функционал, который раскроет его с новой стороны! | |
03. 11.2020Система мониторинга персонала SIWATHРоссийское подразделение Siemens разработало собственную систему по мониторингу персонала на базе носимых устройств типа «Умные часы». |
S I E M E N S
Промышленные контроллеры SIMATIC S7-300/400 Описание_системы_команд
Содержание
S7-300/400 Система команд | Описание |
|
|
|
|
|
|
|
| Стр. |
Вступительное_слово | 4 | |||||||
|
|
|
|
|
|
|
|
|
Работа_с_аккумулятором | 10 | |||||||
|
|
|
|
|
|
|
| |
Команды_битовой_логики | 13 | |||||||
Команды_сравнения | 22 | |||||||
Команды_преобразования | 25 | |||||||
Счетчики | 33 | |||||||
|
|
|
|
|
|
| ||
Команды_для_работы_с_блоками_данных | 37 | |||||||
Команды_переходов | 39 | |||||||
Команды_загрузки_и_передачи | 44 | |||||||
Математика_с_плавающей_точкой | 49 | |||||||
|
|
|
|
|
| |||
Целочисленная_математика | 53 | |||||||
|
|
|
|
| ||||
Команды_программного_контроля | 61 | |||||||
Команды_сдвигов | 66 | |||||||
Таймеры | 72 | |||||||
Логика_для_WORD_и_DWORD | 77 | |||||||
|
|
|
|
|
|
|
|
|
Начало
3
S7-300/400 Система команд | Описание |
Вступительное_слово | Содержание |
Система команд – это тот инструмент, с помощью которого пользователь пишет программу для контроллера. Собственно, речь идет о модуле CPU, который является центральным устройством любого контроллера. Размещенная в энергонезависимой памяти операционная система реального времени дополняет систему команд, предоставляя пользователю множество сервисных функций.
Общее правило состоит в том, что чем старше модель CPU, тем она более производительная, тем больше у нее возможностей.
Рассмотрим области, в которых могут находиться операнды:
∙Отображаемые области цифровых входов I и выходов Q (немецкие сокращения E и A соответственно). Программа пользователя не обращается непосредственно к входам/выходам, обращение идет в память, в область отображения.
∙Область неотображаемых входов PI и выходов PQ (немецкие
сокращения PE и PA соответственно). Программа пользователя обращается непосредственно к этим входам/выходам.
Модули цифровых входов/выходов располагаются в адресном пространстве ввода/вывода, начиная с нулевого адреса, и попадают в область отображения. Модули аналоговых сигналов располагаются сразу за отображаемой областью (начало неотображаемой области адресного пространства ввода/вывода, типичным значением является начальный адрес 256)
∙Область локального стека L.
Размер этой области зависит от максимально возможного числа одновременных1 событий. Старшие модели CPU реагируют на большее число событий, также как и число одновременно обрабатываемых событий у них больше. Суть состоит в том, что для каждой модели CPU в любой момент времени не может возникнуть одновременных событий больше, чем Х (например, для S7-312 IFM Х=2, причем общее число обрабатываемых событий равно 3). С каждым событием жестко связан конкретный организационный блок, то есть ОВ является обработчиком события. Если событие возникло, и пользователь на этапе программирования создал соответствующий ОВ, то возможно управление будет передано этому ОВ. Это произойдет, если приоритет текущего ОВ ниже приоритета вызываемого ОВ.
Содержание
1 Под выражением “Одновременные события” понимается ситуация, когда в процессе обработки предыдущего события формируется новое, более приоритетное событие, и т.д. То есть, образуется цепочка вложенных обработчиков событий.
4
S7-300/400 Система команд | Описание |
Вступительное_слово Содержание
Как только ОВ получит управление, он считается активным до того момента, пока не завершится. Каждый активный ОВ имеет свой локальный стек в области локального стека. В этом стеке хранятся временные переменные, как самого ОВ, так и все фактические параметры, локальные переменные функций и функциональных блоков, вызываемых из данного ОВ. Для примера, снова вернемся к модели CPU S7-312 IFM, область локального стека имеет размер 512 байт, что позволяет одновременно открыть только два ОВ, по 256 байт на блок.
∙Область меркеров М используется для хранения рабочих параметров, промежуточных результатов, каких-либо флагов и так далее. Если операционная система контроллера обслуживает Ваш запрос (например, Вы вызвали функциональный системный блок), то следует учитывать, что SFB или SFC могут использовать область меркеров для работы со своими переменными. Обычно SFB и SFC используют старшие адреса, поэтому пользователю рекомендуется использовать память меркеров, начиная с младших адресов.
∙Глобальные блоки данных DB
∙Локальные блоки данных DI
∙Таймеры Т и счетчики С (немецкое обозначение Z)
∙Регистры процессора
Операнды могут принадлежать одному из множества допустимых
типов:
∙BOOL
∙BYTE
∙CHAR – символьный тип, например “А”, длина 1 байт
∙WORD
∙DWORD
∙INT – целое число со знаком, длина 1 слово (Integer)
∙DINT – длинное целое число со знаком, длина 2 слова (Long Integer)
∙REAL – число с плавающей точкой, формат представления IEEE, длина 2 слова
∙TIME – текущее время, длина 2 слова
∙TIME_OF_DAY – время дня, длина 2 слова
∙S5TIME – совместимость с серией S5, длина 1 слово
∙DATE – дата, длина 1 слово
∙DATE_AND_TIME – сложный тип данных, длина 4 слова
∙ARRAY – сложный тип данных, массив
∙STRING – сложный тип данных, строка
∙UNDEF – неопределенный тип
Содержание
5
S7-300/400 Система команд | Описание |
Вступительное_слово Содержание
TIME |
|
Интервал | [-24d20h41m23s647ms … +24d20h41m23s647ms] |
Формат соответствует DINT, единица измерения 1 ms | |
Пример: | T#5h20s |
Рассмотрим еще один пример: | |
T#24d59s999ms → 7B99 8A5F h | |
T# -24s | → FFFF A240 h |
Небольшое отступление. Как получить -24 [s]? Ответ:
24 [s] = 5DC0 h [ms] = 00000000 00000000 01011101 11000000 [ms] Теперь вычитаем 1 и инвертируем, в результате получится: 11111111 11111111 10100010 01000000 = FFFF A240 h. То есть
получили -24 [s].
Естественно, обратное преобразование (инвертируем, затем прибавляем 1) позволяет из отрицательного числа получить положительное.
TIME_OF_DAY
Интервал | [00:00:00.000 … 23:59:59.999] |
Формат соответствует DWORD, единица измерения 1 ms, | |
значение 00:00:00.000 – полночь. | |
Пример: | TOD#00:18:25.207 |
| TOD#07:10:02 |
Миллисекунды указывать необязательно. | |
S5TIME – Совместимость_с_серией_S5, длина 1 слово | |
Интервал | [0 ms … 2h56m30s] |
Пример: | S5T#10ms |
| S5T#1h25m20s |
Рассмотрим более подробно используемый формат:
Напомним общее правило. Адресация слова, двойного слова осуществляется по адресу старшего байта (более значащие разряды), так как он располагается в памяти по младшему адресу.
Биты 15, 14 не используются Биты 13, 12 определяют базис времени:
Бит 13 | Бит 12 | Базис времени | В этом случае рабочий |
|
|
| диапазон составляет |
0 | 0 | 0.01 s | [10ms … 9s990ms] |
0 | 1 | 0.1 s | [100ms … 1m39s900ms] |
1 | 0 | 1 s | [1s … 16m39s] |
1 | 1 | 10 s | [10s … 2h56m30s] |
Содержание
6
S7-300/400 Система команд | Описание |
Вступительное_слово Содержание
Биты 11, 10, 9, 8 – старшая BCD цифра, определяет число сотен Биты 7, 6, 5, 4 – средняя BCD цифра, определяет число десятков Биты 3, 2, 1, 0 – младшая BCD цифра, определяет число единиц Эти три BCD цифры определяют значение коэффициента в
диапазоне [0 … 999]. Зная значения базиса и коэффициента, можно рассчитать заданное время:
ВРЕМЯ := Коэффициент * Базис ;
DATE
Интервал [1990-01-01 … 2168-12-31]
Формат соответствует WORD, единица измерения 1 день, нулевое значение соответствует дате 1990-01-01.
Пример: D#1998-11-23
DATE_AND_TIME |
|
|
| |||
Интервал | [1990-01-01/00:00:00.000 … 2089-12-31/23:59:59.999] | |||||
Пример: | DT#1996-09-15-19:54:15.228 |
| ||||
Для записи данных такого типа используются 8 байтов, | ||||||
содержимое представляется в BCD формате. Как Вы помните, старший | ||||||
байт располагается в памяти по младшему адресу. |
| |||||
Значащи | Условный | Адрес | Назнач | Диапазон значений | ||
е | адрес |
| байта в | |||
разряды | байта |
| заголовк | ение |
|
|
|
|
| е ОВ1 |
|
|
|
Ст. байт | 0 |
| 12 | Год | [00 … 99], значение 00 | |
|
|
|
|
| соответствует 1990 | |
| 1 |
| 13 | Мес | [01 … 12] |
|
| 2 |
| 14 | День | [01 … 31] |
|
| 3 |
| 15 | Час | [00 … 23] |
|
| 4 |
| 16 | Мин | [00 … 59] |
|
| 5 |
| 17 | Сек | [00 … 59] |
|
| 6 |
| 18 | ms | В данном байте находятся 2 | |
|
|
|
|
| старшие | ms, определяя |
|
|
|
|
| сотни и десятки [00x … 99x] | |
Мл. байт | 7 |
| 19 | ms | Старшая | тетрада задает |
|
|
|
|
| единицы ms [0 … 9] | |
|
|
|
|
| Младшая тетрада содержит | |
|
|
|
|
| день недели [1 … 7], | |
|
|
|
|
| значение | 1 соответствует |
|
|
|
|
| Sunday (Воскресенье) | |
Относительно столбца “Адрес байта в заголовке ОВ1” хотелось бы | ||||||
сделать некоторые пояснения. |
|
|
| |||
|
|
| Содержание |
|
|
7
S7-300/400 Система команд | Описание |
Вступительное_слово Содержание
Как Вы знаете, каждый активный ОВ имеет стек в области локального стека. В момент вызова ОВ, в его стек автоматически записывается заголовок. Среди прочей информации, в заголовке присутствуют дата и время запуска ОВ. Эти дата и время размещены по приведенным в таблице адресам.
| Наряду | с переменными, | в качестве операнда могут | |||
использоваться константы: |
|
|
| |||
№ |
| Константа |
|
| Пример | |
1 | Константой является |
| L | ‘ABC’ | ||
| группа символов в ASCII |
|
| |||
| коде |
|
|
|
|
|
2 | 2 или 4 байта |
|
| L | B#(100,12) | |
|
|
|
|
| L | B#(50,8,3,72) |
3 | BYTE, | WORD | или | L | B#16#F7 | |
| DWORD, представленные | L | W#16#12 | |||
| в 16-ричной системе |
| L | DW#16#EECD03E1 | ||
4 | WORD | или | DWORD, | L | 2#1000111101010011 | |
| представленные | в | 2- | L | 2#11110000111100001010101011101110 | |
| ичной системе |
|
|
|
| |
5 | Константа типа INT |
| L | -27 | ||
6 | Константа типа DINT |
| L | L#19346458 | ||
7 | Константа типа REAL |
| L | -8014. 01 | ||
8 | Константа типа TIME |
| L | T#500ms | ||
|
|
|
|
| L | T#1d5h4m21s2ms |
9 | Константа типа TIME OF | L | TOD#12:31:05.314 | |||
| DAY |
|
|
|
|
|
10 | Константа типа S5TIME | L | S5T#10ms | |||
11 | Константа типа DATE |
| L | D#1996-05-22 |
12Указатель на адрес Формат константы соответствует формату адресного регистра, что дает
возможность указать не только адрес, но и область, в которой должен
находиться операнд.
LP#22.1 //Не указывая конкретно в какой области должен //находиться операнд, сообщается, что этим операндом будет бит, //расположенный по адресу 22.1
LP#Q22.1 //В отличие от предыдущего примера, в данном //случае дополнительно сообщается, что операнд будет именно из //области выходов
Содержание
8
S7-300/400 Система команд | Описание |
Вступительное_слово Содержание
Замечание относительно использования указателя. Если указатель должен указывать на байт, слово или двойное слово, то необходимо задавать адрес байта и номер бита, причем номер бита должен быть равен 0 (L P#124.0). Данное требование обусловлено специфичным форматом адресных регистров.
Приведем несколько примеров адресации:
AN | I3.7 | //Адресуется входной бит |
L | MB4 | //Загружается в ACCU1 меркерный байт |
T | QW0 | //Передается слово на выход |
LPIW258 //Читаем аналоговое значение
OPN DB3 | //Открываем блок данных | |
L | DB3. DBB14 | //Читаем 14 байт в этом блоке |
LDB3.DBX0.5 //Там же читаем 5-тый бит из нулевого байта
Общий формат команды при использовании косвенной адресации: <команда> YX [адресный регистр, указатель], где Y определяет область нахождения операнда (и его указывать не обязательно), X задает размер операнда (B – байт, W – слово, D – двойное слово).
Приведем пример:
LB [AR1, P#8.0]
Данная команда загружает байт в ACCU1. Адрес этого байта представляет собой сумму адресов: адресный регистр AR1 и адрес 8.0. Область, в которой должен находиться операнд, определяется адресным регистром. Например, адресный регистр можно проинициализировать двумя командами:
LP#Q116.0
LAR1 //Таким образом, AR1 будет указывать на область выходов Еще один пример косвенной адресации:
LMB [AR2, P#12.0]
Второй пример отличается от первого тем, что явно задана область нахождения операнда (байт из области меркеров)
Выше были рассмотрены примеры абсолютной адресации. STEP7 дает пользователю возможность работать с именами. Такая адресация носит название символьной.
В заключение отметим, что SIEMENS постоянно совершенствует свои изделия, поэтому при работе с этим документом следует учитывать фактор старения информации. Обращайтесь за актуальной
информацией к официальным партнерам фирмы SIEMENS, либо непосредственно в SIEMENS.
Как в процессе подготовки, так и после завершения работы над документом, мы проверяли его на отсутствие ошибок, неточностей и опечаток. Однако мы не гарантируем полное их отсутствие. Поэтому, во всех неясных случаях советуем обращаться к оригиналу.
Содержание
9
S7-300/400 Система команд | Описание |
Работа_с_аккумулятором | Содержание |
Команды данной группы не зависят и не воздействуют на регистр флагов:
Декремент_Аккумулятора
Инкремент_Аккумулятора
Вталкивание_в_старшие_Аккумуляторы
Выталкивание_из_старших_Аккумуляторов
Загрузка_старших_Аккумуляторов
Разгрузка_старших_Аккумуляторов
Поменять_содержимое_Аккумуляторов
Загрузка_первого_адресного_регистра
Загрузка_второго_адресного_регистра
Холостые_команды
Содержание
10
S7-300/400 Система команд | Описание |
Работа_с_аккумулятором Содержание
1. Декремент_Аккумулятора Формат: DEC <byte>
Описание. ACCU1_LL :=ACCU1_LL — <byte>
2. Инкремент_Аккумулятора Формат: INC <byte>
Описание. ACCU1_LL :=ACCU1_LL + <byte>
3. Вталкивание_в_старшие_Аккумуляторы Формат: PUSH
Описание. На всех моделях CPU имеется два Аккумулятора, а на нескольких более производительных – четыре. Для случая двух Аккумуляторов выполняется присваивание ACCU2 :=ACCU1. Для четырех Аккумуляторов выполняются три присваивания ACCU4 :=ACCU3, ACCU3 :=ACCU2, ACCU2 :=ACCU1.
4. Выталкивание_из_старших_Аккумуляторов Формат: POP
Описание. Действие данной команды противоположно предыдущей. В случае двух Аккумуляторов действие состоит в присваивании ACCU1 :=ACCU2. Для четырех Аккумуляторов выполняются три присваивания ACCU1 :=ACCU2, ACCU2 :=ACCU3, ACCU3 :=ACCU4.
5. Загрузка_старших_Аккумуляторов Формат: ENT
Описание. Данная команда работает только в том случае, если в модуле процессора контроллера имеется четыре аккумулятора. Она загружает старшие Аккумуляторы ACCU4 :=ACCU3, ACCU3 :=ACCU2, ACCU2 и ACCU1 без изменения.
6. Разгрузка_старших_Аккумуляторов Формат: LEAVE
Описание. Данная команда работает только в том случае, если в модуле процессора контроллера имеется четыре аккумулятора. Она разгружает старшие Аккумуляторы ACCU2 :=ACCU3, ACCU3 :=ACCU4, ACCU1 и ACCU4 без изменения.
7. Поменять_содержимое_Аккумуляторов Формат: TAK
Описание. Содержимое ACCU1 и ACCU2 меняется местами.
Содержание
11
Стандарт IEC 61131-3 определяет 5 языков программирования ПЛК: 3 графических языка (релейная диаграмма, функциональная блок-схема и последовательная функциональная схема) и 2 текстовых языки (список инструкций и структурированный текст). Подавляющее большинство производителей ПЛК используют эти стандартные языки.
В среде Siemens язык IL называется STL для списка операторов. Это низкоуровневый язык ассемблера. Это означает, что мы используем инструкции для непосредственного управления процессором. Хотя Siemens начал отказываться от этого языка (например, он не поддерживается семейством S7-1200, а семейство S7-1500 должно его эмулировать), он по-прежнему широко используется. Особенно в старших семействах S7 (S7-300 и S7-400). Пока они все еще поддерживаются, вы неизбежно столкнетесь с этим языком в своей карьере.
STL, будучи языком низкого уровня, предлагает полный контроль над вашей программой, поскольку вы манипулируете данными внутри самого процессора. Это также позволяет вам полностью понять работу архитектуры ПЛК.
В этом руководстве мы рассмотрим некоторые из наиболее распространенных инструкций STL и запрограммируем простую машину для сортировки коробок в Siemens TIA Portal.
Чтобы следовать этому руководству, вам потребуется установить TIA Portal. Мы будем использовать TIA Portal v17, но вы можете использовать любую другую версию. Никакого другого оборудования или программного обеспечения не требуется.
Кроме того, вы можете обратиться к этому учебному пособию Siemens Ladder Logic, чтобы полностью понять машину, которую мы будем программировать в этом учебном пособии.
Прежде чем давать какие-либо инструкции процессору, важно понять, как он работает. В этом разделе мы рассмотрим внутреннюю архитектуру ПЛК.
ЦП использует два 32-битных регистра, называемых Аккумуляторами (аккумулятор 1 является основным). Они используются для выполнения операций над данными, переданными им из любой области памяти. Плюс 16-битный регистр под названием «Слово состояния» (только 9-битный регистр).LSB), где каждый бит указывает на определенную информацию о выполнении программы. Наиболее важным битом состояния является RLO (результат логических операций), который содержит окончательный результат последовательности логических операций в программе (И, ИЛИ, исключающее ИЛИ и т. д.)
Память разделена на 7 областей, каждая область предназначен для одного типа данных. Эти области:
Каждая область представляет собой таблицу байтов. Битовый адрес обозначается как:
(Например, I 1.5 означает «бит номер 5 из байта номер 1 в области изображения процесса ввода).
В случае байтов (8 бит), слов (16 бит) и двойных слов (32 бита) вы должны добавить B, W или D после типа данных, а затем указать начальный номер байта (например, MB1 означает «Байт номер 1 в области памяти». MW5 означает «Слово, начинающееся с байта 5 в области памяти». MD8 означает «Двойное слово, начинающееся с байта 5 в области памяти»).
NB: будьте осторожны с перекрытием памяти при адресации данных. Например, MW5 принимает как MB5, так и MB6. Использование любого бита из байтов 5 и 6 в другой части программы будет противоречить значению, записанному в MW5.
Две области изображения процесса немного своеобразны. Они не обновляются постоянно в режиме реального времени. Область IPI считывает состояние физических входов только в начале каждого цикла. Затем ЦП записывает все новые значения, вычисленные во время выполнения программы, в область OPI, которая обновляет физические выходные данные в конце цикла.
Это означает, что если значение физического ввода изменится во время выполнения, это не повлияет на значения, которые программа обрабатывает в данный момент. Значения IPI и OPI являются статическими во время выполнения цикла.
Следующая диаграмма суммирует общую работу ПЛК Siemens.
Рисунок 1.1: Архитектура ПЛК Siemens TLDR.Язык STL — это текстовый язык, на котором вы пишете 1 инструкцию в строке. Существует два основных типа инструкций:
Когда задан 1 или более логических запросов (И, ИЛИ, исключающее ИЛИ и т. д.), окончательный логический результат присваивается RLO. (Например, если «X И Y ИЛИ Z = 1», то RLO устанавливается равным 1). Существуют условные инструкции для обоих состояний (0 или 1) бита состояния RLO.
После создания нового проекта (с любым CPU, кроме S7-1200). Откройте «Теги ПЛК» в дереве проекта, дважды щелкните «Таблица тегов по умолчанию» и определите теги, показанные на следующем рисунке.
Рисунок 2.1: Теги ПЛК.Создайте новый OB (организационный блок), дважды щелкнув «Добавить новый блок» в дереве проекта.
Рисунок 2.2: Добавление нового блока.Откроется окно «Добавить новый блок». Выберите «STL» в качестве языка и нажмите «ОК».
Рисунок 2.3: Окно добавления нового блока.Заполните (введя или скопировав) содержимое Сети 1 в Сеть 4 следующим образом.
Сеть 1:
O «Пуск»
S «Авто_режим»
Сеть 2:
o «Stop»
R «Auto_Mode»
Сеть 3:
O «PE_LOW»
A «PE_HIGH»
= #LARGE_BOX
NETTEN AN «PE_High» = #Small_box «O» — это запрос бита «ИЛИ». Когда он используется отдельно, это простой опрос битов, RLO назначается состоянием бита, который мы опрашиваем. Когда он приходит после очередного опроса бита, он формирует с ним логическое ИЛИ, а результат присваивается RLO. В этом случае, если бит «Старт» равен 1, RLO устанавливается на 1. Если он равен 0, RLO устанавливается на 0. «S» — это инструкция «SET». Он устанавливает назначенный бит в 1. В этом случае, если «Start» равен 1 (означает, что RLO = 1), бит «Auto_mode» устанавливается в 1. «R» — инструкция «СБРОС». Он устанавливает назначенный бит в 0. В этом случае, если «Stop» равен 1 (означает, что RLO = 1), бит «Auto_mode» устанавливается в 0. «A» — это запрос бита «И». Когда он используется отдельно, это простой опрос битов, RLO назначается состоянием бита, который мы опрашиваем (как и инструкция «ИЛИ»). Когда он приходит после очередного битового опроса, он формирует с ним логическое И, и результат присваивается RLO. В этом случае, если оба «PE_Low» и «PE_High» равны 1, RLO устанавливается равным 1. Если они равны 0, RLO устанавливается равным 0. «=» — это инструкция присваивания, она копирует состояние RLO в назначенный бит. В этом случае бит #LargeBox будет установлен в 1, если «PE_Low» И «PE_High» равны 1, и будет установлен в 0, если либо «PE_Low», либо «PE_High» равны 0. «AN» — это инвертированный запрос бита «И». При отдельном использовании RLO устанавливается в 1, если запрошенный бит равен 0. В этом случае, если «PE_Low» равен 1 И «PE_High» равен 0, RLO устанавливается в 1. Программирование переходов STL , таймеры и счетчики в TIA Portal Заполните (введя или скопировав) содержимое Сети 5 следующим образом. Сеть 5: O «Auto_mode» A #Large_box = #Lbox_passed JC Lbox O «AUTO_MODE» A #SMALL_BOX = #SBOX_PASSED JC SBOBE LBOX: CALL_TIMER TIMER_TYPE: = IEC_TIMER
000 300000 300000 300000 39000 300000 300000 39000 39000 300000 3
9 TP, «timera_db»Time_type: = Time
in: =#lbox_passed
Pt: = T#5S
Q: = «Motor1»
ET: =
BE
Sbox: Call Reset_timer
Timer_type: = IEC_TIMER
TIMER: = «TimerB_DB
Call TP,» TimerB_DB «
Time_type: = Time
in:#lbox.
Q: = «Motor1»
ET: =
RESET_TIMER
TIMER_TYPE: = IEC_TIMER
TIMER: = «TIMERC_DB»
CALL TON, «TIMERC_DB»
time_type:=Time
IN :=#Lbox_passed
PT :=T#5s
Q :=»valve_motor»
ET :=
O «valve_motor»
= «Solenoid_valve»
CALL Reset_timer
Timer_type: = IEC_TIMER
TIMER: = «TIMERD_DB»
CALL TP, «TIMERD_DB»
TIME_TYPE: = Time
in: = «Solenoid_valve»
Pt: = T#5s: = T. 5s
.0006
Q :=»Motor2″
ET :=
BE
«JC» — это инструкция условного перехода. Если RLO равен 1, программа начинает выполнение инструкций, начиная с метки, связанной с инструкцией перехода. Чтобы создать метку, просто напишите имя метки, а затем «:».
Например, если «Auto_mode» И #Large box равны 1, программа выполнит инструкции, начиная с метки LBOX в строке 11 и заканчивая BE (конец блока) в строке 22.
Инструкция «CALL» — безусловная инструкция, запускающая выполнение вызываемой функции (FC или FB). Поскольку это безусловно, мы используем переходы для выполнения нужных частей программы в соответствии с правильными условиями.
Использование переходов — это способ превратить безусловные инструкции в условные!
Каждый раз, когда вы вызываете функцию, ее параметры появляются автоматически. Параметры функций таймера:
Чтобы удовлетворить требования машины, мы должны сбрасывать каждый таймер перед его выполнением. Вы можете найти более подробную информацию об этом в учебном пособии Siemens Ladder Logic.
Затем заполните (напечатав или скопировав) содержимое Сети 6 следующим образом.
Сеть 6:
CALL CTU, «CONTROL_DB»
Value_type: = int
Cu: =#lbox_passed
R: = «
PV: = 0
Q: =
CV. :=»num_L»
CALL CTU , «CounterS_DB»
value_type:=Int
CU :=#Sbox_passed
R :=»Stop»
PV :=0
Q :=
CV :=»num_S»
Рисунок 3. 2: Сеть 6.Заполните (напечатав или скопировав) содержимое Network 7 следующим образом.
Сеть 7:
L «num_l»
L «num_s»
+I
T «Total_box»
Рисунок 4.1: Сеть 7.«L» — инструкция загрузки (безусловная). Он копирует значение, расположенное по указанному адресу, в ACCU 1. Если он используется второй раз подряд, первое загруженное значение перемещается в ACCU 2, а второе загруженное значение записывается в ACCU 1. В этом случае это означает что «num_L» загружается в ACCU 2, а «num_S» — в ACCU 1.
Команда «+I» добавляет содержимое АККУ 2 в содержимое АККУ 1 в виде целых чисел. Результат сохраняется в ACCU 1.
«T» — инструкция по передаче (безусловная). Он передает содержимое ACCU 1 по указанному адресу. В этом случае мы переносим содержимое ACCU 1 (которое содержит сумму «num_L» и «num_S») в «total_box» (MW6).
Затем заполните (введя или скопировав) содержимое сетей 8, 9 и 10 следующим образом.
Сеть 8:
L «Num_l»
ITD
DTR
T «NUM_L_REAL»
L «Num_S»
ITD
DTR
T «num_s_real»
L »
T «Total_box_Real»
Сеть 9:
L «num_l_Real»
л «» Total_box_Real «
/R
L 100. 0
9000 *R/R
L 100.0
9000 *R/R
0005 T «процент_ларже»L 100,0
L «процент_ларже»
-R
T «процент_SMALL»
Сеть 10:
L » R «auto_mode»
L 0.0
T «num_l_real»
T «num_s_real»
T » реалы.
Чтобы преобразовать целые числа в действительные, мы должны использовать 2 инструкции преобразования: Инструкция ITD преобразует Int в ACCU 1 в двойное Int. Затем инструкция DTR преобразует двойное значение Int в ACCU 1 в действительное значение. Преобразованное значение (хранящееся в ACCU 1) передается по нужному адресу с помощью «T».
Аналогично тому, что мы делали в Сети 7. «/R» делит ACCU 2 на ACCU 1 как действительные числа, «+R» складывает ACCU 1 и ACCU 2 как действительные числа, а «-R» вычитает ACCU 1 из ACCU 2 как действительные числа. реалы. (Результаты всегда сохраняются в ACCU 1).
«==I» проверяет, равно ли целое число, хранящееся в ACCU 2, значению, хранящемуся в ACCU 1. Если это правда, RLO устанавливается равным 1. В этом случае, если «total_box» равно 1000, Бит «Auto_mode» установлен на 0.
В этом руководстве вы узнали, как данные обрабатываются ЦП с использованием языка STL.
Хотя STL менее понятен и удобочитаем, чем графический язык, он остается очень мощным инструментом, позволяющим разрабатывать сложные программы, точно соответствующие вашим требованиям. Кроме того, он обеспечивает более четкое представление о внутренней работе ЦП и памяти.
Возможно, вы будете удивлены, когда узнаете, что язык Ladder используется не только для программирования устройств ПЛК, что было одобрено Международной электротехнической комиссией IEC .
Существует пять типов языков, которые можно использовать для программирования ПЛК:
Как вы могли видеть, язык списка операторов (STL) не является одним из языков IEC, он создан специально для ПЛК SIEMENS, а на с другой стороны, мы обнаружим, что языки STL и IL на 95% идентичны.
Между ними есть лишь несколько различий, но в целом, если вы можете использовать один из них, вы обязательно сможете использовать и другой.
Как мы уже говорили выше, существует пять типов языков ПЛК, и программисту ПЛК не нужно быть профессионалом во всех них.
Во-первых, вы должны очень хорошо выучить язык LAD , так как он является базовым, и чтобы стать продвинутым программистом, вы должны выбрать другой язык, чтобы выучить его очень хорошо, а в остальном вы просто должны знать основной инструкции к ним.
Итак, если вас интересует язык STL, вот некоторые из его преимуществ и недостатков:
Преимущества | Недостатки |
Список операторов часто является самым быстрым способом написания кода ПЛК. Выполнение более сложных операций, таких как циклы, переходы и косвенная адресация, становится проще в STL. Это действительно очень лаконично и действительно сэкономит вам много сетей. | Слишком сложно отлаживать код. Вполне возможно написать код STL, но Шаг 7 не сможет преобразовать его обратно в LAD или FBD. |
Пожалуйста, Перед выбором языка проекта. Просто задайте себе эти два вопроса:
80
В нашем первом уроке с языком STL мы обсудим, как выполнять инструкции (И, ИЛИ, НЕ-И, НЕ-ИЛИ, Присвоить) на простых примерах.
А также, мы конвертируем некоторые сложные сети на языке LAD в STL .
Приведенные ниже инструкции представляют собой формат адресации инструкций И и И НЕ на языке STL.
Формат
A <адрес бита> // Это для и
А. <битовой адрес> // Это для, а не
Описание
(a) проверяет, является ли состояние адресного бита «1», — «1», и объединяет результат теста с RLO.
(AN) проверяет, равно ли состояние адресованного бита «0», и объединяет результат теста по И с RLO.
Примечание: RLO является результатом логической операции, этот бит отвечает за добавление логики каждой сети и ее сохранение, так как это поможет выполнить логику кода по желанию, и это действительно очень поможет вам в отладка.
Здесь у нас есть два входа (если I0.0 ложно, RLO = 0, а если верно, RLO = 1).
И для других входных входов (I0.1, когда он неверен, чтобы сделать RLO = 1, а когда он верен, чтобы сделать RLO = 0) эти два входа управляют выходом (Q0.0).
Рис. (1)
Рис. (2)
Здесь, как видно, для Рис. ноль переводится в РЛО в единицу и наоборот.
Кроме того, вы можете видеть на рис. (1), когда RLO равен (единице) до конца сети, Q0.0 будет назначен равным единице, но, как показано на рис. (2), RLO равен (единице) только для первой строки, поэтому Q0.0 будет равно нулю.
Приведенные ниже инструкции представляют собой формат адресации инструкций ИЛИ и ИЛИ НЕ на языке STL.
Формат
O <Битовый адрес> // это для ИЛИ
ON <Битовый адрес> // это для ИЛИ НЕ
Описание
(O) проверяет, равно ли состояние адресуемого бита «1», и выполняет операцию ИЛИ результата теста с RLO.
(ON) проверяет, равно ли состояние адресуемого бита «0», и выполняет операцию ИЛИ результата теста с RLO.
Вот простой пример, показывающий три разных входа (I0.0 – I0.1 – I0.2), когда любой из них переведен в состояние ВКЛ, которое назначает выход (Q0.0).
Рис. (3)
Рис. (4)
Рис. (5)
Как мы можем видеть на Рис. (3,4,5), когда любой из трех входов включается, RLO становится ИСТИННЫМ и по своей роли выход Q0.0 должен быть включен.
Наконец, чтобы убедиться, что вы усвоили идею статьи, предлагаем вам простое руководство, иллюстрирующее преобразование сложной сети LAD в язык STL .
Рассмотрим приведенный ниже пример релейной логики.
Приведенная ниже программа является кодом, эквивалентным приведенному выше примеру лестничной логики.
В приведенном ниже видео мы объяснили простые шаги по написанию программы STL на примере релейной логики.
Если вам понравилась эта статья, подпишитесь на наш канал YouTube для видеоуроков по ПЛК и SCADA.