![]()   Подсчет единичных битов в DWORD без циклов и условных переходов. |
При программировании PLC, необходимость в подсчете единичных битов возникает довольно часто, например: определение колличества нарушений. Алгоритм взят из книги Генри Уоррен, мл. "Алгоритмические трюки для программистов" издание 2004 года.
|
![]()   Шпаргалка по SCL |
S7-SCL (Standard Control Language) - это паскалеподобный язык высокого уровня, предназначенный для программирования контроллеров фирмы Siemens. S7-SCL удобно использовать для комплексных алгоритмов управления и обработки данных. (формулы, обработка массивов данных)
|
![]() |
После компиляции двух почти идентичных SCL исходников, мы получаем два различных блока, которые при сравнении выдают разницу. При попытке перейти в место различия Simatic Manager открывает STL редактор с указанием точки различия в STL коде, эта информация мало полезна в поиске места различия. Конечно, можно скопировать данные исходные тексты во внешнюю утилиту (например, Windiff)и там сравнить, но не всегда данная утилита находится под рукой.
|
![]() |
Два SCL примера поиска в массиве из элементов REAL максимального числа. Первый использует для указания массива POINTER и функциональный блок, второй выполнен в виде функции и использует параметр типаANY для задания массива.
|
![]() |
При отладке отдельных блоков в Step7 иногда возникает необходимость подать на вход переменный сигнал, данный блок, реализованный на SCL, позволяет задать амплитуду и период этого сигнала.
|
![]() |
Пошаговая инструкция. Видео приложение к статье
|