Рейтинг
5.46
голосов: 2
avatar

PLC

О блоге

Программирование логических контроллеров. Direct Logic, Simatic, Omron Zen, Siemens Logo и подобных. Также описание железа и работы с ними.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (30)

Vga Leopoldius sunjar Lifelover Helix Payne87 abigsam juray dima32rus PPetrovich JeckDigger Listunov DOOMSDAY Fahivec Const kalik aen petro-ew amsterdam golf2109

Все читатели блога

Beremiz - свободная среда программирования ПЛК. Часть 2

PLC
Надеюсь, что заинтересовавшиеся, прочитав первую часть, установили себе Beremiz и пролистали руководство пользователя. Тогда у читателя совершенно закономерно должен был возникнуть вопрос: а как и кому Beremiz может быть полезен?


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

Beremiz - свободная среда программирования ПЛК. Часть 1

PLC
Beremiz — это интегрированная среда разработки для ПЛК с открытым исходным кодом, которая полностью соответствует стандарту МЭК-61131-3. Beremiz опирается на открытые стандарты, которые не зависят от целевых устройств. Так что вы можете превратить любой процессор в ПЛК. Также Beremiz включает инструменты для создания HMI и подключения ваших программ PLC к наблюдению, базам данным или полевым шинам.




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

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
  Масштабирование — это функция, которая преобразует входной набор данных в выходной набор в заданном диапазоне. Функция обеспечивает удобный способ сопоставления входного набора данных и данных, которые будут участвовать в вашей визуализации.


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