Страница 11 из 14 ПерваяПервая ... 910111213 ... ПоследняяПоследняя
Показано с 101 по 110 из 138

Тема: IntraSCADA

  1. #101

    По умолчанию

    Цитата Сообщение от yurgin_757 Посмотреть сообщение
    Спасибо за наводку Владимир.
    Помаленьку погружаюсь в тему...
    Появился более конкретный вопрос!
    .................................................. .......:
    В МастерСкада есть компонент на базе скрипта «распаковщик»
    Он выполняет работу по конвертации данных с МВ110-8А(овен) в режиме настройки порта «сухой контакт» . То есть с порта в ОПС летит код-цифра от 1 до 4 , а скрипт декодирует и присваивает уже в скаде двум выходам состояние вкл/выкл

    Как или на какой основе сделать такой датчик в ИтраСкаде? Я так понимаю наверно это бинарный датчик, но как у него сделать 2 выхода? Или есть другие варианты??
    Сделайте аналогично - создайте устройство с 2 булевыми свойствами и одним целым (связанным с модулем) и в обработчике этого целого напишите аналогичный код, изменяющий значение булевых свойств. Запуск обработчика сделайте циклически или по изменению

  2. #102

    По умолчанию

    Да, @1exan абсолютно прав. Если подробнее:
    1. Нужно создать новый тип устройства с такими например свойствами:
    value - входное значение, тип Number, значение по умолчанию 0
    out1, out2 - два свойства типа Bool

    Далее в типе на первой вкладке галочкой выбираем Обработчик: При изменении свойств устройства или глобальных переменных
    В строке Свойства указываем value

    Обработчик заполняется на вкладке Обработчики - узел OnChange

    module.exports = function(device, triggers, globals, debug) {
    switch (device.value) {
    case 1:
    device.assign('out1', 0);
    device.assign('out2', 0);
    break;

    case 2:
    device.assign('out1',1);
    device.assign('out2', 0);
    break;

    case 3:
    device.assign('out1', 0);
    device.assign('out2', 1);
    break;

    case 4:
    device.assign('out1', 1);
    device.assign('out2', 1);
    break;

    default:
    device.assign('out1', 0);
    device.assign('out2', 0);
    break;
    }
    }

    Типы можно переносить между проектами. Можно загрузить из файла
    Теперь можно создавать устройства этого типа

    2. Создать устройство этого типа.
    Свойство value привязать к входному каналу Modbus со значениями 1-4
    out1, out2 к каналам не привязываем, они будут заполняться из обработчика

    Работоспособность скрипта можно проверить до привязки к каналу.
    Для этого присвойте значение value в Устройстве (Вкладка Значения - столбик Присвоить значение, нажмите Сохранить)

  3. #103

    По умолчанию

    Спасибо @1exan, спасибо Владимир.
    ...с обработчиком всё получилось, даже нашел время поиграться)))
    Вложения Вложения

  4. #104

    По умолчанию

    Отлично! Уверен, что и дальше все получится. IntraSCADA гибкая и возможностей у нее много

  5. #105

    По умолчанию

    Доброго времени суток Владимир.
    …и снова вопрос по теме – если можно конечно?!
    В ИнтраСкаде мы настраивая свойство параметра, для отображения его в строковом формате имеем возможность присвоить этому параметру прификс «единица измерения» и соответственно при выводе этого параметра на экран мы видим, например 22,5 °C. Так вот а нет ли возможности установить еще один прификс до параметра, то есть что бы их было два, до и после и в строке выводилось, например Т.ул 22.5 °C.
    …это бы очень облегчило создание объектов и сделало интерфейс более логичным и понятным
    2025-09-18_06-37-58.jpg
    Последний раз редактировалось yurgin_757; 18.09.2025 в 05:44.

  6. #106

    По умолчанию

    Цитата Сообщение от yurgin_757 Посмотреть сообщение
    Доброго времени суток Владимир.
    …и снова вопрос по теме – если можно конечно?!
    В ИнтраСкаде мы настраивая свойство параметра, для отображения его в строковом формате имеем возможность присвоить этому параметру прификс «единица измерения» и соответственно при выводе этого параметра на экран мы видим, например 22,5 °C. Так вот а нет ли возможности установить еще один прификс до параметра, то есть что бы их было два, до и после и в строке выводилось, например Т.ул 22.5 °C.
    …это бы очень облегчило создание объектов и сделало интерфейс более логичным и понятным
    Можете добавить свойство типа "String" (свой префикс) и использовать его в обработчике, формирующем текстовое значение

  7. #107

    По умолчанию

    И опять уважаемый 1exan прав на 100%!

    Если для разных устройств одного типа префиксы должны быть разные, нужно так и поступить.
    В типе устройства:
    1. Добавить новое свойство (например, prefvalue), Тип "Parameter", Тип переменной "String"
    2. Для основного свойства (например, value) заменить форматирующий обработчик, для этого в столбце "Значение в виде строки" выбрать "Пользовательский".
    3. Доработать форматирующий обработчик: на вкладке "Обработчики" для узла "value#string" заменить код:

    /**
    * Функция вывода значения "value" в виде строки
    *
    * device - это устройство
    * prop = "value"
    * val - входное значение
    */
    module.exports = function(device, prop, val, debug) {
    // Строку стандартного обработчика расширить
    // return isNaN(val) ? val : Number(val).toFixed(device.getDig(prop)) + device.getMu(prop);
    const str = isNaN(val) ? val : Number(val).toFixed(device.getDig(prop)) + device.getMu(prop);
    return device.prefvalue+' '+str;
    }

    В устройствах заполнить свойство prefvalue

    Другой вариант:
    Если префикс - константа для свойства этого типа, то можно prefvalue не добавлять, а просто в форматирующем обработчике вернуть : return 'Т. ул. '+str;

  8. #108

    По умолчанию

    Спасибо!
    ..с наскока не получилось почему то?!
    ...буду разбираться, почему не получается2025-09-18_15-39-27.jpg

  9. #109

    По умолчанию

    Это сработает после изменения значения.

  10. #110

    По умолчанию

    ...оказывается это можно и стандартным способом сотворить))
    у элементта input_classic есть такая функция ввода, префикс и суфикс, потом привязываю к параметру данных value#string и получаю = Т1_ 29.3 ºC
    ...НО КОНЕЧНО ЭТО НЕ ТО, БУДУ ВАШ МЕТОД СТАРАТЬСЯ ПОЛУЧИТЬ, ТАК КАК ЭТО ПОЛЕ input_classic РЕДАКТИРУЕТСЯ, А ЭТО НЕ ЕСТЬ АЙС
    IMPUT CLASSIC.jpg
    Изображения Изображения
    Последний раз редактировалось yurgin_757; 18.09.2025 в 15:17.

Страница 11 из 14 ПерваяПервая ... 910111213 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •