Дополнительные компоненты схем v.6

Стартовая страница Форумы Вопросы по установке Дополнительные компоненты схем v.6

Просмотр 15 сообщений - с 61 по 75 (из 79 всего)
  • Автор
    Сообщения
  • #39030
    RomanPertsev
    Участник

    Здесь опять какие то скрытые ньансы, недокуметированные и т.п.?

    #39031
    manjey73
    Участник
    public static class PulseSetVal
    {
    // сколько проходов держим 2 (измените при необходимости)
    private const int HoldCycles = 3;
    private static int cnt = 0;

    У вас константа внутри одной формулы, а вы к ней обращаетесь из другой ?
    я даже не знаю, сервер компилируется? в ошибку не падает?

    #39032
    manjey73
    Участник

    Ошибка компиляции — потому что 🙂

    #39033
    RomanPertsev
    Участник

    PulseSetVal – имя класса;

    .InPulse() / .OutPulse() – методы;

    Оба метода объявлены public static, значит доступны отовсюду.

    #39034
    manjey73
    Участник

    И да… делая константу за пределами формул, чтобы были доступны всем, у вас не получится применять формулы в разных каналах.

    я стараюсь в последнее время использовать словари, раньше использовал массивы.
    Посмотрите в примерах формул.
    Словарь позволяет сохранять промежуточные значения, имея в качестве ключа номер канала.
    Ну и старайтесь сами возвращать в double, вместо например bool. Это позволяет использовать формулы внутри формул.

    Например public bool XXXX сервером будет автоматически сконвертировано в double. Но попытка применения такой формулы внутри другой приведет к ошибке.
    Плюс не забывайте, цикл на небольшом проекте выполняется раз 10 в секунду от младшего канала к старшему. Ну что-то по подобии выполнения программы в ПЛК.

    #39035
    RomanPertsev
    Участник

    Посоветуйте как можно подправить.

    • Этот ответ был изменен 4 недели, 1 день назад от RomanPertsev.
    #39036
    manjey73
    Участник

    Смотрите ошибки в логе Сервера и в какой строке в CalcEngine.cs (находится в папке логов Сервера)…

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

    #39038
    RomanPertsev
    Участник

    Очень необходимая функция чтоб кнопка импульсом присваивала значение каналу, неужели эту задачу невозможно решить стандартными и даже платными модулями?

    #39039
    manjey73
    Участник

    А чем «Отправить команду сразу» не подходит? Если это расчетный канал, то импульс можно организовать скриптами.

    Если это передача в устройство, то извиняйте батьку, бананив немае, этот функционал должен предусматриваться в контроллере (устройстве) или применение МАУ.

    #39040
    RomanPertsev
    Участник

    Да дело в том что чтобы включить устройство нужно послать «1» на один регистр, а чтоб выключить нужно послать «1» но на другой регистр, делать рядом две кнопки одна для вкл, а другая для выкл это глубо, я сделал две кнопки и настроил им видимость чтоб они исчезали, но беда в том что они даже невидимые доступны для нажатия, а если их расположить одна над другой то вообще та что сверху видимая и не видимая всегда нажимается. Чтоб это решить я сделал третий канал (1000), но и через него нельзя. Несколько дней сижу над такой ерундой как вкл и выкл.

    #39041
    manjey73
    Участник

    более подробнее?, может как-то тумблер использовать?

    одна над другой не получится, ограничение web текущей. вы всегда верхнюю жмете.

    #39042
    JurasskPark
    Участник

    они даже невидимые доступны для нажатия

    Михаил, это ай-ай-ай! 🤯

    #39043
    RomanPertsev
    Участник

    Не-е-е тумблер имеет черезвычайно убогий дизайн и его никак не заменить, можно лишь внутрь него вставить картинку. 🙂

    #39045
    manjey73
    Участник

    Ну а вариант сделать картинки кнопок по принципу «пуск»-«стоп». Над каждой своя область для команд.
    Через расчетный канал выбирать значение 0-1-2, все потушены, 1- нажат пуск, 2 — нажат стоп. Через паузу сброс в 0.
    Расчетный проверяет два канала реальных.

    Но зависит, как там с чтением этих реальных переменных, импульсные в контроллере они или нет и т.д. коих подробностей нет.

    • Этот ответ был изменен 4 недели, 1 день назад от manjey73.
    #39047
    manjey73
    Участник

    Невидимость, не значит не активная.

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