KoliaMor

Ответы в темах

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

    Автоматизация производства, на схеме RapidSCADA дублируется мнемосхема HMI.

    KoliaMor
    Участник

    Делал исключительно для удобства работы, у меня сейчас в схеме более 100 объектов, многие накладываются друг на друга. Я их поделил на слои, на каждый слой сделал фон (трафарет) и расставил объекты по трафарету. В итоге объекты на исходных слоях не перекрывают друг друга, и если понадобятся изменения, будет проще их сделать.

    Так же слои можно использовать если на нескольких схемах требуется вывод что-то типа меню или панели состояний одинаковой для всех схем.

    KoliaMor
    Участник

    Примеры из папки Test (Test1,2,3 — входные файлы, Test — выходной)

    Пример Test

    KoliaMor
    Участник

    Немного с темой напутал..

    в ответ на: КП Симулятор #14217
    KoliaMor
    Участник

    Спасибо

    KoliaMor
    Участник

    Таймер наработки

    Таймер

    • Ответ изменён 6 лет, 8 месяцев назад пользователем KoliaMor.
    в ответ на: Функции (формулы) для Rapid SCADA #8554
    KoliaMor
    Участник

    Таймер, по аналогии TON, TOF. Только на выходе выдает время включения. Отдельный вход сброса TimRst().

    // Tim
    int[] TimNum = new int[1];
    long[] TimST = new long[1];
    long[] TimAcc = new long[1];
    bool[] TimFlag = new bool[1];
    
    public double Tim(double TimIn, int mode)
    {
    bool Tim_in = TimIn > 0;
    
      int res = Array.IndexOf(TimNum, CnlNum);
      if (res == -1)
      {
        res = TimNum.Length;
        Array.Resize(ref TimNum, res+1);
        Array.Resize(ref TimST, res+1);
        Array.Resize(ref TimAcc, res+1);
        Array.Resize(ref TimFlag, res+1);
        TimNum[res] = CnlNum;
      }
    
      if (!Tim_in)
      {
        TimFlag[res] = false;
        TimST[res] = 0L;
        if((mode&1)==0) TimAcc[res] = 0L;
      } 
      else
      {
        if (!TimFlag[res])
        {
          TimFlag[res] = true;
          TimST[res] = Ticks();
        }
        else
        {
          TimAcc[res] += Ticks() - TimST[res];
          TimST[res] = Ticks();
    
        }
      }
    
      if((mode&2)==0)
      {
        long Ret = ((mode&4)==0) ? TimAcc[res] : TimAcc[res]/1000;
        double Div = Math.Pow(10, (mode&0x70)>>4);
        return Convert.ToDouble(Ret)/Div;
      }
      else
      {
        DateTime RetTim = new DateTime(2018, 1, 1, 0, 0, 0);
        return EncodeDate(RetTim.AddMilliseconds(TimAcc[res]));
      }
    }
    
    public double TimRst(double InRst,int Chanel)
    {
      int res = Array.IndexOf(TimNum, Chanel);
      if (res != -1)
      {
        if(InRst!=0)TimAcc[res] = 0L;
      }
    return 0;
    }
    // Example : 
    // 130, ДТИ, Фл = Tim(Val(101),0x05), Фт = D  // 101 - включение
    // 131, ДТИ, Фл = TimRst(Val(102),130)        // 102 - сброс (для (mode&1) > 0)
    
    // mode bits: 
    // 0: 0 - без сохранения, 1 - с сохранением, сброс по Фл.TimRst -> при пропадании входа
    // 1: 0 - вывод double, 1 - вывод TimeData в формате double
    // 2: 0 - вывод double в мсек, 1 - вывод double в сек 
    // 3: не используется
    // 4-6: делитель числа double: 0 - на 1, 1 на 10, 2 на 100 и т.д. до 10^7
    // 7: не используется
    
    // Example : Tim(Val(101),0x30) - вывод времени в мс в формате D.DDD, время не сохраняется 
    
    • Ответ изменён 8 лет, 5 месяцев назад пользователем KoliaMor.
    в ответ на: Вывести текущее время в скаду #8522
    KoliaMor
    Участник

    EncodeDate(DateTime.Now), Формат: Дата и Время

    в ответ на: Вывести текущее время в скаду #8515
    KoliaMor
    Участник
    в ответ на: Редактор схем — текст 8 символов #8511
    KoliaMor
    Участник

    Понятно, Спасибо.

    в ответ на: Редактор схем — текст 8 символов #8492
    KoliaMor
    Участник

    Как отобразить текст полностью на схеме?

    в ответ на: Редактор схем — текст 8 символов #8487
    KoliaMor
    Участник

    https://cloud.mail.ru/public/J9YQ/C9fZudxwd

    В последней строке введено 1234567890, а отображает только 12345678

    • Ответ изменён 8 лет, 6 месяцев назад пользователем KoliaMor.
    в ответ на: Редактор схем — текст 8 символов #8486
    KoliaMor
    Участник

    Для динамического текста

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)