Перевод Стандартной команды в Бинарную

Стартовая страница Форумы Понять, как работает ПО Перевод Стандартной команды в Бинарную

Просмотр 14 сообщений - с 1 по 14 (из 14 всего)
  • Автор
    Записи
  • #16071
    manjey73
    Участник

    Может глупый вопрос, но есть ли возможность команду управления оставить Стандартной, но при отправке как-то обрабатывать число и подменять тип команды ?

    Вот на примере Времени — я отправляю DateTime.Now, а в прибор должно попасть 3 байта в виде Сек, Мин, Час

    мне надо чтобы прибор получил именно 3 байта, а не 8-мь в виде некоего числа double с подменом типа команды.

    #16072
    Romiros
    Участник

    А время задаётся скадой? Я просто делал команду «Синхронизировать время», а в драйвере уже отсылал нужные данные прибору.

    #16073
    manjey73
    Участник

    Ну синхронизировать время можно только с ПК, соответственно на котором установлен Коммуникатор. Время больше для примера, понятно что я внутри драйвера могу как угодно вывернуть из переданного времени в нужное мне значение… меня больше интересует такая возможность в принципе.

    я прикрутил команды, которые можно задавать в бинарном формате в HEX режиме. А вот можно ли команду оставить как Стандартную, но чтобы при ее отправке данные изменить в Бинарные формулой и изменить тип команды ?

    #16074
    Romiros
    Участник

    А модулем автоуправления нельзя?

    #16076
    manjey73
    Участник

    Не знаю, не пробовал. Просто унификации какой-то не получается.
    Было бы удобно вызывать Стандартную команду, вводить скажем 1275,36 а в зависимости от различных представлений в приборе превращать именно в байты, как их понимает прибор, например 12 75 36 (это пример BCD формата и я знаю, что там последние два знака это два после запятой) и посылать уже в прибор как блок бинарных данных в HEX.

    з.ы. это так, мысли, вдруг есть такая возможность формулами подменять тип данных ?

    • Ответ изменён 6 лет, 3 месяца назад пользователем manjey73.
    #16078
    manjey73
    Участник

    К тому же, разве Модуль автоуправления может менять свободно вводимые данные и выполнять какие-то манипуляции с ними ? Насколько помню нет. Когда-то шла речь о том, чтобы в модуле можно было использовать формулы, если не ошибаюсь.

    #16079
    Romiros
    Участник

    Я имел ввиду отследить стандартную команду или данные канала, не важно и отправить бинарную

    #16080
    manjey73
    Участник

    Триггер на Команду — выбирается тип, Стандарт или Бинарная. Ну а дальше то что ? Модуль не может изменить данные согласно каким-то правилам.

    Передать команду с задержкой ??? в общем я не вижу там каких то способов.

    #16081
    Romiros
    Участник

    Разве так нельзя сделать?
    Пользователь нажимает кнопку на схеме и отправляется значение в дорасчетный канал. В модуле триггер на изменение данных этого канала. Если статус канала = 1 то отправляется стандартная команда. Если статус = 2 то отправляется бинарная команда. Команды заранее подготовлены в соответствующих каналах управления. Формула в канале управления бинарной команды выполняет преобразования из передаваемого значения.

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

    #16082
    manjey73
    Участник

    Да нет заранее подготовленных команд, в этом и вся фишка… необходимо ввести те данные, которые на данный момент будут актуальны.

    Тут мы возвращаемся к старой теме окна команды в Web — нельзя в окно вывести подсказку, нельзя сделать ограничения и проверку вводимого значения чтобы не ввести меньше или больше.

    Счетчик не тот прибор, где в принципе это так важно, сделаю Бинарные команды, а далее пусть смотрят в документацию. Драйвер не программа конфигуратор, но исходя из того, что я прикрутил, можно поменять настройки например коэффициентов трансформации тока, напряжения… Тема так, лирика….

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

    Тип отправленной команды поменять нельзя.
    С точки зрения оператора, от типа команды зависит форма ввода — число или строка.
    Для драйвера имеет значение, сколько байт должно быть в команде. В стандартной — не более 8, а в бинарной — произвольное число.

    Таким образом, при выборе типа команды нужно учитывать указанные выше критерии. А далее по формуле канала управления преобразовывать значение.

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

    Тут мы возвращаемся к старой теме окна команды в Web — нельзя в окно вывести подсказку, нельзя сделать ограничения и проверку вводимого значения чтобы не ввести меньше или больше.

    Форма отправки команды берётся из плагина. Можно разработать произвольную форму отправки. Если есть идеи по созданию некой универсальной формы отправки команд, то давайте обсудим в отдельной теме — весьма актуально.

    #16104
    manjey73
    Участник

    Михаил, да банально дополнительное поле описания в БД в каналах управления и выводить данные этого поля в окно команды в рамке какого-то цвета, например желтого (красное для ошибок, зеленое, что команда выполнена как сейчас)

    Что сейчас идет в окно ?

    Канал упр.:	[1126] Чтение времени
    Объект:	[1] B1R1
    КП:	[73] Mercury230мгн_C2

    Имя канала, объект управления, КП. А в описании пишем например. Для ввода команды введите значения сек, минут, часов в таком-то формате.

    Все. Большего то пока и не надо.
    А вот если делать ограничения, то должны быть еще поля лимитов, например надо ввести числовое значение от 0 до 100, в описание мы это указали. Если в БД стоит галочка «Лимиты» нижняя и верхняя границы, то при вводе команды и значении 101 система выдает ошибку, ввели неправильное число. Как сейчас если пустое значение ввести.
    з.ы. ради этого тему создавать как-то ….

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

    ОК, что-нибудь придумаем.

Просмотр 14 сообщений - с 1 по 14 (из 14 всего)
  • Для ответа в этой теме необходимо авторизоваться.