Замена RSLogix 500 SCP в Studio 5000: AOI + масштабирование модуля
Замените инструкцию RSLogix 500 SCP в Studio 5000 Logix Designer. Сравните масштабирование инженерных единиц модуля ввода-вывода 1756, загрузку AOI и пользов...
Инструкция SCP (Scale with Parameters) знакома каждому программисту RSLogix 500. В Studio 5000 Logix Designer на панели инструкций нет готовой SCP, которую можно сразу добавить. Ту же линейную зависимость приходится заново реализовывать через масштабирование аналогового модуля в инженерных единицах, пример AOI Scale от Rockwell или локальную для проекта последовательность AOI/CPT. На предприятиях, где просто оставляют необработанные значения до «потом», вскоре обнаруживается, что теги PID, HMI и архиватора используют разные инженерные единицы.
Y = ((X − Xmin) ÷ (Xmax − Xmin)) × (Ymax − Ymin) + Ymin — и ограничивайте результат так же, как это делала SCP.
Сохранение поведения ограничения
RSLogix 500 удерживает результат на уровне Ymin/Ymax, когда необработанное входное значение выходит за пределы настроенного диапазона. Любая замена Logix должна делать то же самое, иначе неисправности датчика приведут к передаче в систему управления значений за допустимыми пределами. Используйте вычисления REAL на всём пути: целочисленное деление отбрасывает разрешение меньше одного младшего разряда, необходимое контурам PID.
Решение 1: инженерные единицы модуля
Для передатчиков с фиксированными диапазонами включите Engineering Units на аналоговом канале (1756-IF8/IF16, 1769-IF4/IF8, 5069-IF8 и аналогичных модулях). Задайте нижний и верхний пределы сигнала, а также нижнее и верхнее значения инженерного диапазона, загрузите конфигурацию и напрямую используйте масштабированный тег REAL. Математика в лестничной логике не требуется. Ограничение: диапазон фиксируется при загрузке — для изменения диапазона с HMI во время выполнения потребуется AOI.
| Семейство модулей | Масштабирование в инженерных единицах | Примечания |
|---|---|---|
| 1756-IF8 / IF16 | Для каждого канала | Предпочтительный вариант для ControlLogix |
| 1769-IF4 / IF8 | Для каждого канала | CompactLogix |
| 5069-IF8 | Для каждого канала | Studio 5000 v28+ |
Решение 2: импорт SCL_AOI
Скачайте пример AOI Scale (Answer ID 52412 / пакеты класса SCL_AOI.L5X), импортируйте его в разделе Add-On Instructions и добавьте инструкцию в строку. Свяжите параметры Input, InputMin/Max, ScaledMin/Max и ScaledValue. Поскольку параметры являются тегами, экранные формы HMI могут изменять диапазоны онлайн — это типичный запрос на объекте, когда диапазоны резервуаров меняют без загрузки новой программы.
Решение 3: пользовательский AOI или ST
IF (InMax - InMin) = 0.0 THEN ScaledValue := OutMin; ELSE ScaledValue := ((InputValue - InMin) / (InMax - InMin)) * (OutMax - OutMin) + OutMin; IF ScaledValue > OutMax THEN ScaledValue := OutMax; ELSIF ScaledValue < OutMin THEN ScaledValue := OutMin; END_IF; END_IF;
Эквиваленты на лестничной логике используют SUB/DIV/MUL/ADD вместе с ветвями ограничения GRT/LES. Предусмотрите защиту от деления на ноль, когда InMax равен InMin. Откройте для внешнего доступа Read/Write параметры InMin/InMax/OutMin/OutMax, чтобы HMI могла записывать их значения.
Соответствие параметров SCP
| RSLogix 500 SCP | AOI Studio 5000 |
|---|---|
| Input (INT/DINT) | Input (предпочтительно REAL) |
| InputMin / InputMax | InMin / InMax |
| ScaledMin / ScaledMax | OutMin / OutMax |
| Встроенное ограничение | Явная логика ограничения |
Процесс изменения диапазона с HMI во время выполнения
Если операторам нужно менять инженерные диапазоны без загрузки новой программы, свяжите числовые поля с тегами InMin, InMax, OutMin и OutMax AOI и разрешайте запись только через импульсный бит подтверждения. Физически реалистичные ограничения HMI (например, необработанные значения 0–32767 и инженерные единицы в пределах возможностей передатчика) предотвращают ошибки ввода, при которых диапазон инвертируется. Задокументируйте заводские диапазоны по умолчанию на экранной форме, чтобы после ошибочного изменения их можно было восстановить без открытия Studio 5000. Если вместо AOI использовалось масштабирование модуля в инженерных единицах, планируйте контролируемую загрузку конфигурации при каждом изменении инженерного диапазона — для большинства модулей безопасно изменить эти свойства каналов онлайн невозможно.
Проверки при вводе в эксплуатацию
Задайте для Input минимальное, среднее и максимальное значения и проверьте ScaledValue. Задайте значение выше Xmax и убедитесь, что срабатывает ограничение сверху. Проверьте обратные инженерные диапазоны (OutMin > OutMax), если в унаследованной SCP они использовались. На экранах HMI для изменения диапазона требуйте условие InMax > InMin и импульсное подтверждение, чтобы частичное редактирование не оставило нулевой знаменатель. Миграцию строк SCP следует выполнять в рамках того же управления изменениями, которое применяется для других преобразований ПЛК и PAC Logix.
Об авторе
Mark Townsend | Ведущий инженер по автоматизации — системы Allen-Bradley
Mark Townsend — ведущий инженер по автоматизации с более чем 18-летним опытом работы с платформами Allen-Bradley, включая ControlLogix, CompactLogix и устаревшие системы SLC-500. В его повседневную работу входят разработка логики RSLogix / Studio 5000 и ввод в эксплуатацию HMI FactoryTalk View на устаревших и смешанных парках оборудования.