Масштабирование значения входного канала

Стартовая страница Форумы Понять, как работает ПО Использование формул Масштабирование значения входного канала

Просмотр 15 сообщений - с 1 по 15 (из 31 всего)
  • Автор
    Сообщения
  • #6438
    Rainproof
    Участник

    Всем привет.
    Начал разбираться с RapidScada вчера. Все подходит. Но есть нюансы, которые не могу решить.
    Например: во входном канале вывожу числовое значение, полученное по Modbus TCP от контроллера — 600. На самом деле — это 6,00 гр.Цельсия. Во входном канале применил формулу «Cnl\100». Принимаемое от контролера значение — нормально масштабируется, и вижу в поле «6,0 гр.С». Но вводить это значение, чтобы отправить в контролер (это записываемое значение. read/write) — мне приходится например 700, чтобы получить 7,0 гр.С. Пробовал ставить формулу Cnl*100 в канале управления. который привязан к этому входному каналу, чтобы после ввода в поле — значение умножалось на 100, и уже потом передавалось на контролер. Не получается. не работает так формула. Что делать?
    ===============================================================================
    И еще момент по работе с битами. У меня есть целочисленная переменная, посредством которой я могу посылать на контроллер команды на активации реле. 0 — бит -реле1, 1-бит — реле2. 2-бит — реле 3. Не могу найти в инете описания работы с функцией GetBit. хотя читал упоминания. что она уже встроена в новую вресию RapidScada. И вопрос по обратному процессу. Разбулить целочисленную переменную с помощью GetBit — это хорошо. А как записать в эту же переменную значение отдельного бита?

    #6439
    manjey73
    Участник

    В канале управления Cmd*100
    Cnl — это значение входного канала
    Cmd — это значение команды

    Использование формул

    GetBit уже есть в базе Формул. Откройте Администратор, Формулы.
    Для записи надо сделать формулу, и назвать ее скажем SetBit. Вам необходимо чтобы только один нужный бит посылался ????

    • Этот ответ был изменен 6 лет, 8 месяцев назад от manjey73.
    #6441
    Rainproof
    Участник

    Ок! Спасибо! Cmd*100 — заработала!
    Да. я уже нашел администратора формул. Не сразу догадался, что при клике — открывается редактор.
    Насчет записи бит — да. Формула для записи одного бита в целочисленную переменную. думаю сделать для каждого бита (их 3) — по отдельному каналу типа bool. И промежуточный канал. который скрою в таблице, в нем будет находится переменная, значение которой будет формироваться из активных битов из числа этих 3-х. И уже эта переменная, целочисленная. будет передаваться на контролер.
    А обратный процесс разбуливания — с помощью формулы GetInt.

    #6442
    manjey73
    Участник

    Так не получится, пока нельзя передать в контроллер переменную с произвольным значением.
    а у вас может оказаться нужно послать 3-й бит 1 но при этом чтобы и 2-й бит остался 1…

    • Этот ответ был изменен 6 лет, 8 месяцев назад от manjey73.
    #6446
    Rainproof
    Участник

    ну да. комбинация этих бит — и передается в виде числа на контролер.
    ну — это наладочная функция, для отладки оборудования. напишу им табличку на странице. состояния реле в различных комбинациях. и соответствующее значение, которое нужно ввести.

    #6447
    Rainproof
    Участник

    Я вот тут наткнулся на тему подмены числовых значений — стрингвыми. Написал как там было сказано свою размерность в виде последовательности стринговых значений, применил эту последовательность, но ничего в таблице не изменилось. Там автор писал, что нужно применить к каналу тип — ТС. Это что за тип канала такой? у меня такого в выпадающем списке нет. Т.е. у меня — есть целочисленная переменная, приходящая с контроллера. 0 — это автоматический режим работы, 4 — ручной. а другая переменная — 0 — выкл, 1 — вкл. Вот хотелось бы. чтобы в таблице были эти текстовые значения. Никак не пойму, как это сделать. размерность создал. а дальще куда двигаться?

    #6450
    Mikhail
    Модератор

    Так не получится, пока нельзя передать в контроллер переменную с произвольным значением.

    Нельзя через Модуль Автоуправления. А если через UI, то значение команды формируется в канале управления.

    тему подмены числовых значений — стрингвыми

    Сделайте, пожалуйста, скриншоты с таблицей входных каналов, где видны все поля для нужного канала. Это поможет быстро понять, что нужно подправить в настройках.

    #6456
    Rainproof
    Участник

    По поводу стрингового массива — высылаю скриншоты.
    Сделал размерность. По идее — значению «0» — соответствует «Auto», значению 4 — «Manual».
    картинки — в папке https://drive.google.com/drive/folders/0BxbGOKnwHKeSRUZGQ3gwLTROM0k?usp=sharing

    #6461
    Rainproof
    Участник

    Сегодня утром — загрузил СКАДА, и обнаружил, что поле в таблице (и на схеме) — неактивно. Светло-серым цветом. Причем — изменяю значения — они корректно отображаются в коммуникаторе.
    картинка — здесь: https://drive.google.com/file/d/0BxbGOKnwHKeSQXc2dTdRbHdFajQ/view?usp=sharing

    #6463
    Rainproof
    Участник

    при просмотре кода страницы — обнаружил, что программа присвоила этому полю css class = «hour hidden», т.е. я так понимаю — программа по какой-то причине скрыла это поле? проверяю свойства каналов, отключаю формулы, перелогиниваюсь — ничего не меняется. Что это может быть?
    https://drive.google.com/file/d/0BxbGOKnwHKeSX2VpRGNobHR4aHM/view?usp=sharing

    #6464
    Rainproof
    Участник

    С отображением текстового значения — разобрался. Ввел в поле Формат — Enum text. Теперь в поле таблицы — отображается текстовое значение.
    Вообще — молодцы! Удобная СКАДА получилась. и функциональная.
    Но вводить значения переменной — приходится числами. Например, чтобы перевести в режим «Manual» — нужно ввести «4».
    Насчет невидимого и неактивного поля — оно появилось само. Я так и не понял причину.
    И еще одно наблюдение — несколько раз Вебстанция выдавала «сервер недоступен». Не могу понять причину. Даже переустанавливал вебстанцию. Методом проб и ошибок обнаружил, что такое происходит, если ошибка в формуле какой-то. Причем нет сообщений нигде. что формула некорректна. Просто не загружается вебстанция.

    #6465
    Rainproof
    Участник

    Вот интересно — выбрал размерность Off- On — там Oт зеленым цветом, Off — красным. а в моей размерности, которую я создал — такого нет. Где это реализуется?

    #6467
    manjey73
    Участник

    Rainproof пока реализовано только для On/Off, ну еще можно при помощи формул статуса, если не ошибаюсь добиться изменения цвета.

    Можно сделать кнопки Ручн, Авто, но с промежутком не проверял если честно.

    #6469
    lele89
    Участник

    >Причем нет сообщений нигде. что формула некорректна. Просто не загружается вебстанция.
    Думаю все сталкивались с такой проблемой:) В Сервере в логах есть сообщение

    #6474
    Mikhail
    Модератор

    Например, чтобы перевести в режим «Manual» — нужно ввести «4».

    Для команд можно ввести аналогичным образом заданные значения, только они вводятся в таблицу Значения команд.

    Насчет невидимого и неактивного поля — оно появилось само. Я так и не понял причину.

    В следующий раз посмотрите в оболочке Сервера статус канала. Это прояснит ситуацию.

    И еще одно наблюдение — несколько раз Вебстанция выдавала «сервер недоступен». Не могу понять причину. Даже переустанавливал вебстанцию. Методом проб и ошибок обнаружил, что такое происходит, если ошибка в формуле какой-то. Причем нет сообщений нигде. что формула некорректна. Просто не загружается вебстанция.

    Если формула синтаксически некорректна, Сервер не стартует. Желательно после редактирования формул, после перезапуска службы Сервера, проверять его лог.

    Вот интересно — выбрал размерность Off- On — там Oт зеленым цветом, Off — красным. а в моей размерности, которую я создал — такого нет. Где это реализуется?

    Так исторически сложилось, если у Вас только 2 перечислимых значения. Вы можете выбросить лишние значения из Вашего списка и с помощью формулы привести значения к 0 и 1. Тогда будет зеленый и красный. А по хорошему, хотелось бы для перечислимых значений явно прописывать цвета.

Просмотр 15 сообщений - с 1 по 15 (из 31 всего)
  • Вы должны авторизироваться для ответа в этой теме.