Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Блог / Публикации anakost / Сообщество EasyElectronics.ru

Simatic Step 7. STL. Бит четности (паритета).

PLC
  Под четностью битовой строки понимается, какое кол-во единичных бит — четное или нечетное — содержит эта строка. Правильнее было бы назвать его битом нечетности, т.к. нечетному кол-ву бит соответствует единичный бит четности, четному кол-ву — нулевой. Математически результат представляет собой сумму всех бит слова по модулю 2, т.е. над всеми битами выполняется операция исключающее ИЛИ. В стандартной библиотеке такой функции нет.


Читать дальше

Simatic Step 7. STL. Установка/сброс бита по номеру

PLC
  По сути это программная реализация двоичного дешифратора (декодера). Он преобразует двоичный код номера бита в унитарный код со значащей единицей (нулем).


Читать дальше

Simatic Step 7. STL. Реверс бит

PLC
  Под операцией реверса битов понимается отображение содержимого регистра относительно середины слова, т.е. отображение битов в слове в обратном порядке.
  В языке Simatic STL такой команды нет, имеющиеся CAW, CAD реверсируют байты в слове и двойном слове, т.е. преобразуют между форматами little-endian и big-endian. В стандартной библиотеке подобной функции так же нет. Для реализации был выбран алгоритм реверсирования на основе бинарного обмена из книги Генри Уорена «Алгоритмические трюки для программистов», 2014 г.


Читать дальше

Simatic Step 7. STL. Подсчет установленных бит.

PLC
  Эта функция возвращает кол-во установленных (единичных) бит в аргументе. Иногда возвращаемое значение называют весом Хемминга. Кроме самостоятельной ценности, по возвращаемому значению функции легко определить четность аргумента (нулевой бит).


Читать дальше

Simatic Step 7. STL. Номер установленного/сброшенного бита.

PLC
  По сути это программная реализация приоритетного шифратора (кодера). Он преобразует унитарный код с ведущей значащей единицей (нулем) в двоичный код номера установленного/сброшенного бита.
  Есть две разновидности алгоритма, поиск старшего или младшего бита. Например, в системе команд i386 для этого есть специальные команды BSR и BSF. Очевидно, если установленный бит один, результат будет одинаковый для обоих. Соответственно, если установленных битов несколько, результат будет отличаться.


Читать дальше

Simatic Step 7. STL. Доступ к текущему времени.

PLC
  В предыдущей статье Simatic Step 7. STL. Вычисление числа дней в месяце (DayOfMonth) пришлось немного углубиться в преставление системного времени Simatic Step 7. Получилось не очень (ни туда, ни сюда), решил оформить эту тему отдельной статьей. Разговор пойдет только о системном формате времени DATE_AND_TIME. Simatic поддерживает и другие форматы (TIME_OF_DAY (DWord, время суток), S5TIME (Word, время в формате Simatic, для таймеров и счетчиков), TIME (DWord, время в формате IEC), DATE (DWord, дата в формате IEC)), межформатные преобразования предусмотрены стандартной библиотекой.


Читать дальше

Simatic Step 7. STL. Вычисление числа дней в месяце (DayOfMonth).

PLC
  Понадобилось программно контролировать правильность введенной оператором даты для просмотра показаний в хозрасчетном архиве. А для этого нужна функция, возвращающая кол-во дней в любом месяце любого года. В стандартной библиотеке такой функции не нашел, пришлось разбираться.


Читать дальше

Simatic Step 7, STL, масштабирование (Scale) сигнала аналогового входа 4-20mA.

PLC
  Масштабирование — это функция, которая преобразует входной набор данных в выходной набор в заданном диапазоне. Функция обеспечивает удобный способ сопоставления входного набора данных и данных, которые будут участвовать в вашей визуализации.


Читать дальше

Simatic Step 7, STL, сглаживание (Smooth) сигнала аналогового входа 4-20mA.

PLC
  Simatic это абревиатура семейств PLC фирмы Siemens для общепромышленного применения (SIMATIC S7-300/S7-400/C7/WinAC). Сейчас есть и более новые SIMATIC S7-1200/S7-1500, программируются через TIA Portal.
  Siemens выпускает и узко специализированные линейки PLC (Sinumerik — для станков ЧПУ, Simadyn — линейка повышенной производительности, многие задачи решаются аппаратно, специализированными блоками). Так же широко распостранены абревиатуры, которые относятся к области применения, а не к линейке аппаратного обеспечения на котором оно собрано, естественно оно должно поддерживать стандарты фирмы Siemens (SIMATIC HMI — управление оборудованием с панели оператора, SIMATIС NET — все что связано с межблоковой связью, SIMOTION — моторизованные приводы, управляющие движением, SIMODRIVE — инверторы, управляемые через ProfiBus, и еще куча абревиатур на которые Siemens имеет товарные знаки).
  Step 7 это IDE для программирования всего этого хозяйства (кроме устаревшего S7-200, для него используется STEP 7-Micro/WIN, несмотря на схожее название, это отдельная программа и в IDE Step 7 не интегрируется). Составить представление можно почитав статью на Хабре Программирование ПЛК Siemens на Simatic Step7. Дополнительные языки программирования, драйвера оборудования и т.д. интегрируются в Step 7. Доступны драйверы для широкой номенклатуры стороннего оборудования (не Siemens).
  Инструментальные средства STEP 7 позволяют выполнять:
      Конфигурирование и определение параметров настройки аппаратуры;
      Конфигурирование систем промышленной связи и настройку параметров передачи данных;
      Программирование, тестирование, отладку и запуск программ отдельных систем автоматизации, а также их локальное или дистанционное обслуживание;
      Документирование и архивирование данных проекта;
      Функции оперативного управления и диагностирования аппаратуры.
  STL — один из МЭК (IEC) стандарта IEC61131-3 языков программирования (англ. Statement List, список операторов). Немцы зовут его AWL (нем. Anweisungsliste), это же расширение имеют и исходники, написанные на STL. Тут есть несоответствие в абревиатурах стандартных языков МЭК и фирмы Siemens. Дело в том, что по стандартам МЭК язык STL должен называться IL (Instruction List), а абревиатура ST (Structured Text) зарезервирована за Pascal-подобным языком, который у Siemens называется SCL (Structured Control Language).
  Кроме STL, Step 7 включает в дистрибутив поддержку МЭК языков LAD (Ladder Diagram, язык релейной (лестничной) логики) и FBD (Function Block Diagram, программирование функциональными блоками). При приобретении лицензии интегрируются языки SCL (Pascal-подобный язык), S7-GRAPH (позволяет выполнять конфигурирование и программирование систем графическими способами, стандарт DIN EN 6.1131-3), S7-HiGraph (позволяет разрабатывать программы систем автоматизации SIMATIC в виде графа состояния системы), S7-PDIAG (позволяет разрабатывать однородные процедуры диагностирования систем автоматизации SIMATIC), S7-PLCSIM (позволяет эмулировать работу систем автоматизации SIMATIC, предназначен для отладки программ указанных систем на программаторе/компьютере без использования реальных технических средств автоматизации).
  В настоящее время Siemens активно рекомендует переходить со Step 7 на TIA Portal. Это логическое развитие Step 7, но не всегда однозначное (IMXO, что-то теряем, что-то находим...).
  Представленный функциональный блок выполняет функции ограничителя аналогового сигнала (4..20mA) с индикацией выхода за диапазон (Limiter) и его сглаживания по алгоритму простого (арифметического) скользящего среднего (SMA).
  Алгоритмов скользящего среднего несколько, SMA (простой, Simple Moving Average), EMA (экспоненциальный, Exponential Moving Average), WMA (взвешенный, Weighted Moving Average). Последние еще и разновидности имеют. Здесь рассмотрен только первый.


Читать дальше

Особенности адресации контроллера TM1638 для индикаторов с ОА.

Приобрел модуль для экспериментов и возможно встраивания «LED&KEY» на чипе TM1638 от китайского чипмейкера Titan Micro Electronics. В пакете кроме самого модуля ничего не было, пришлось разбираться, благо модули на чипе TM1638 популярны у Ардуинщиков и в инете разрозненная информация по ним есть.
Все разнообразие модулей сводится к трем разновидностям, о них ниже…


Читать дальше