Показано с 1 по 10 из 1680

Тема: OwenCloud. Что это и с чем его едят?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Можно попросить подсказки?
    Я работаю с ПР200, и мне не хватит Slave-регистров, как и всем остальным.

    1. Я знаю, что OwenCloud может разбирать регистр по битам.
    У меня будет передача всяких статусов, битовых, типа "Протечка воды", "Свет включен", "Питание подано" и так далее.
    Как правильно делать, чтобы выгрузить проект из ПРки в OwenCloud с такой битовой маской?
    Надо будет добавить в OwenCloud такой регистр несколько раз, указав разные биты?
    У нас есть функция дублирования регистра (если нет - я могу руками всё сделать)?

    2. Можно ли по аналогии сделать запись битовых команд в ПРку через один регистр?
    Идея точно такая же, как и на чтение: один бит - выключить питание, другой - погасить свет, третий - сбросить аварию протечек.
    Можно ли в OwenCloud добавить на запись такие биты из одно регистра?
    Как это сделать?

    3. Нормальной ли практикой будет, если я вместо FLOAT32 буду передавать параметры в SIGNED INT16 и делить их на 100, например?
    Мне надо передавать температуры (улица) от ну пусть -40 до +60 градусов. Хватит тут одного регистра WORD?
    Как правильно такое описать в OwenCloud и OwenLogic?

    Спасибо, если кто подскажет.
    Вот так выглядит настройка битового тега в Cloud:
    Снимок экрана 2024-07-10 083211.png
    Управление битами - аналогично, только разрешение на запись нужно.

    Есть МНОЖИТЕЛЬ, наверное должен работать:
    изображение_2024-07-10_083504475.png
    Но в OL придётся умножать float на 100 и использовать функцию перевода в int (чтобы передавать отрицательные значения)

    Код:
    function REAL_TO_INT : udint; 
        var_input 
            rIn : real; 
        end_var
        
        var //
            udTmp : udint;
        end_var
        
        IF rIn < -32768 THEN rIn := -32768;
        ELSIF rIn > 32767 THEN rIn := 32767;
        END_IF;
        
        udTmp :=  real_to_udint(abs(rIn));
        IF rIn > -1 THEN REAL_TO_INT := udTmp;
        ELSE REAL_TO_INT := 65536 - udTmp;
        END_IF;
        
    end_function
    Последний раз редактировалось 1exan; 10.07.2024 в 05:05.

Похожие темы

  1. Сетевой шлюз ПМ210 для доступа к сервису OwenCloud по GPRS
    от Евгений Багаев в разделе ПМ210
    Ответов: 465
    Последнее сообщение: 05.12.2025, 12:36
  2. mod_rssim, и с чем его едят?
    от Vitorgan в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 21.02.2022, 11:22

Ваши права

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