Формулы в V6 Beta

  • В этой теме 81 ответ, 4 участника, последнее обновление 2 года назад сделано a80808.
Просмотр 15 сообщений - с 16 по 30 (из 82 всего)
  • Автор
    Сообщения
  • #21845
    a80808
    Участник

    У себя я ее не использовал, но в шестой версии компилятор на ней споьыкается

    #21846
    Romiros
    Участник

    В шестой версии так не работает. И вроде все формулы должны быть public. Если у Вас приходит время в формате double поставьте формат для отображения дата и время.

    Или добавьте в скрипты свои формулы. Что-то типа того:

    public DateTime DecodeDate(double dateTime)
    {
    return DateTime.FromOADate(dateTime);
    }

    public double EncodeDate(DateTime dateTime)
    {
    return dateTime.ToOADate();
    }

    #21847
    a80808
    Участник

    Спасибо, попробую. Я стал менять на возврат ноля потому, что методы (некоторые) из пятой в шестой не работают

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

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

    #21849
    manjey73
    Участник

    А что, в новой версии нет ScadaUtils ?

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

    ScadaUtils.cs
    Есть, но немного другой.

    #21855
    manjey73
    Участник

    Ух ты, вынесли CRC туда вместо драйвера Modbus, SetBit появился… 🙂

    #21856
    manjey73
    Участник

    А всякие HexToBytes и обратно в строку ? Да много всего вроде было

    #21857
    a80808
    Участник

    Лучше перенести все, что были в стандартной поставке на те же номера чтобы при переносе проекта потом не править каналы. А вот новые…может с номера 100?

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

    Класс ScadaUtils описан в нескольких файлах. Ссылка

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

    HourBeg, DayBeg, MonthBeg — пока отсутствуют. Нужно проанализировать, как их сейчас используют, и предложить замену.

    GetBit, GetByte без изменений.

    EncodeAscii, EncodeUnicode удалены, т.к. больше не нужны. Функция канала может возвращать строку.

    • Этот ответ был изменен 2 года, 2 месяца назад от Mikhail.
    #21864
    Mikhail
    Модератор

    DecodeDate, EncodeDate наверное нужно вернуть.

    Попробуйте, пожалуйста, добавить в таблицу Скрипты

    public double EncodeDate(DateTime dateTime)
    {
      return dateTime.ToOADate();
    }
    
    public DateTime DecodeDate(double val)
    {
      return DateTime.FromOADate(val);
    }
    • Этот ответ был изменен 2 года, 2 месяца назад от Mikhail.
    #21868
    Mikhail
    Модератор

    Появилась интересная возможность вызвать
    GetBit(Data(101), 1) — вернёт значение бита 1 канала 101 со статусом канала 101.

    То есть если значение регистра контроллера «пропало», все каналы битов тоже «пропадут».

    • Этот ответ был изменен 2 года, 2 месяца назад от Mikhail.
    #21870
    manjey73
    Участник

    На счет удаления EncodeAscii, EncodeUnicode вы не правы, например использовал это в драйверах, так как производители в каких только форматах не передают данные…

    #21873
    a80808
    Участник

    HourBeg, DayBeg, MonthBeg я пользовал в формулах накоплений за день, месяц, год. Хотя может быть сейчас с появлением архивов действительно неактуально…

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