Показано с 1 по 5 из 5

Тема: Последовательный перебор значений

  1. #1

    По умолчанию Последовательный перебор значений

    Здравствуйте,попробую описать свою задачу.
    В программе есть "Счет общий" ,счет ведется от 1 до 105,по этим числам в строке отображается клиент и номер датчика "D1..D105".
    Также мне в эту строку нужно добавить значение с датчика .
    Пример Такеда Предупреждение температура D15 = 25.4 °C.
    25.4 это фактическая температура с датчика(с параметра который связан с ОПС сервером).
    Эта температура так же должна чередоваться вместе с номерами датчиков и клиентами.
    В момент когда счет будет 58,в тексте должен быть № датчика D58 и температура с датчика №58
    В момент когда счет будет 98,в тексте должен быть № датчика D98 и температура с датчика №98 и т.д.
    Вот поэтому мне нужно ,что бы на выходе программы было значение температуры с датчика и эти значения должны чередоваться.
    Последний раз редактировалось Вова13; 11.09.2019 в 10:40.

  2. #2

    По умолчанию

    Вот как получилось организовать чередование клиентов через массив.(Каждый клиент соответствует определенному числу 1-105).
    Чередование происходит простым алгоритмом ( ;Выход_Клиент_текст:=Текст_Клиент[Счет_общий];).
    Вопрос: как вместо констант(текст в начальном значении массива) вставить переменные со значением температуры от датчиков?

    Рис.1.png

  3. #3
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,241

    По умолчанию

    В справке написано, как делается инициализация.
    А практически через цикл FOR.
    перебирайте номера от 1 до 105 и присваивайте значения датчиков переменным массива.
    Периодически повторяйте цикл.
    (С необходимой частотой обновления)

  4. #4

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    В справке написано, как делается инициализация.
    А практически через цикл FOR.
    перебирайте номера от 1 до 105 и присваивайте значения датчиков переменным массива.
    Периодически повторяйте цикл.
    (С необходимой частотой обновления)
    А Вы не могли бы ткнуть в то место, в справке, где описано как делается инициализация...?
    Честно говоря ,я не понял то что Вы описали. Надеюсь прочитав в справке что то прояснится.
    Спасибо.
    Последний раз редактировалось Вова13; 10.09.2019 в 10:09.

  5. #5
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,241

    По умолчанию

    Справка- Содержание-Типы данных-Пользовательские-Массив.
    Пример:
    n:=0; (*Сбрасываю счетчик цикла*)
    cN:=0; задаю диапазон для цикла от 0 до 29, всего 30 выполнить 30 раз. см. справку для FOR
    nC:=29;
    V:=30;

    (*Инициализирую номера в массиве по событию (срабатыванию тригера)*)
    R_TRIG_ini(CLK:=TRUE, Q=> );

    IF R_TRIG_ini.Q THEN
    FOR n:=0 TO 29 DO
    L:=n+1;
    ARX[L].Num:=L;
    END_FOR
    END_IF

    Также присваиваются значения соответствующим переменным.
    Последний раз редактировалось lara197a; 11.09.2019 в 17:16.

Похожие темы

  1. Ответов: 15
    Последнее сообщение: 17.09.2018, 17:04
  2. Ответов: 7
    Последнее сообщение: 12.04.2018, 17:17
  3. Ответов: 5
    Последнее сообщение: 31.05.2017, 14:54
  4. Архивирование значений
    от Vitamin в разделе Master SCADA
    Ответов: 5
    Последнее сообщение: 10.04.2015, 13:06
  5. Ответов: 3
    Последнее сообщение: 13.09.2011, 10:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •