Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: Как конкатенировать строки в таблице аварийных сообщений?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Как конкатенировать строки в таблице аварийных сообщений?

    Добрый день!
    Подскажите, пожалуйста, есть ли какой-то функционал в Codesys v3.5 sp17 для конкатенации строк в таблице аварийных сообщений (баннере). Таблица обращается к списку текстов, где находит общее аварийное сообщение к нему нужно прибавить индекс в виде цифры. Пытался в текстовую таблицу записать оператор типа CONCAT(Критически высокий уровень PH, PV.iWorkingMachine); Не помогает. Может быть кто-то знает как решаются подобные задачи?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,250

    По умолчанию

    Цитата Сообщение от alekstani Посмотреть сообщение
    Добрый день!
    Подскажите, пожалуйста, есть ли какой-то функционал в Codesys v3.5 sp17 для конкатенации строк в таблице аварийных сообщений (баннере). Таблица обращается к списку текстов, где находит общее аварийное сообщение к нему нужно прибавить индекс в виде цифры. Пытался в текстовую таблицу записать оператор типа CONCAT(Критически высокий уровень PH, PV.iWorkingMachine); Не помогает. Может быть кто-то знает как решаются подобные задачи?
    Добрый день.
    Используйте LATCH-переменные (триггерные переменные).

  3. #3

    По умолчанию

    Ок. Спасибо

  4. #4

    По умолчанию

    Добрый день!
    После текста аварии использую триггерную переменную. Однако, по какой-то причине она не обновляется ни в баннере, ни в таблице аварийных сообщений пока авария не подтверждена. Фактически же триггерная переменная изменяется, но в таблице она раз за разом повторяется. В таблице она находится в столбце станок и каждая строка это авария для другого станка чем был прежде. Обязательно нужно использовать аварии с квитированием. В чем причина и как это исправить?таблица аварий.png
    Последний раз редактировалось alekstani; 03.04.2023 в 18:54.

  5. #5

  6. #6

    По умолчанию

    Добрый день!
    Не могу прикрепить проект. Направил на почту.
    В проекте необходимо наблюдать за переменной PV.iWorkingMachine, при этом ее значение со временем меняется, однако в таблицу записывается одно и тоже значение, если не квитировать аварию.
    Последний раз редактировалось alekstani; 04.04.2023 в 09:31.

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,250

    По умолчанию

    Цитата Сообщение от alekstani Посмотреть сообщение
    Добрый день!
    Не могу прикрепить проект. Направил на почту.
    В проекте необходимо наблюдать за переменной PV.iWorkingMachine, при этом ее значение со временем меняется, однако в таблицу записывается одно и тоже значение, если не квитировать аварию.
    Не получил письма.
    Залйте проект на файлообменник и выложите здесь ссылку.

  8. #8

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,250

    По умолчанию

    Я посмотрел ваш проект.
    На мой взгляд, единственный вариант - добавить на каждый станок свою отдельную тревогу.
    У вас сейчас одна тревога на все станки и требуется квитирование. Значение LATCH-переменной фиксируется при перехода в состояние тревоги ACTIVE.
    А для перехода в него нужно, чтобы тревога была предварительно сквитирована. Т.е. все работает именно так, как задумано разработчиками CODESYS - просто вам требуется иное поведение.

  10. #10

    По умолчанию

    Можете подсказать другой вариант? Если к примеру перед каждым новым сообщением старое квитировать автоматически и аварию вызывать, например, по событию.
    Я попробовал вызывать два метода, но почему-то тогда триггерная переменная не успевает записываться совсем. Может мне разнести эти методы в разные циклы программы?
    AlarmManager.AlarmGlobals.g_AlarmHandler.Acknowled geOneOfGroup(Alm_AlarmConfiguration_Alarmgroup_IDs .ID_Sensors, Alm_Sensors_Alarm_IDs.ID_51);
    AlarmManager.AlarmGlobals.g_AlarmHandler.RaiseEven t(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_Sensors , Alm_Sensors_Alarm_IDs.ID_51);

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 23.10.2022, 15:11
  2. Ответов: 17
    Последнее сообщение: 18.07.2019, 16:06
  3. Ответов: 3
    Последнее сообщение: 24.05.2018, 18:20
  4. Ответов: 5
    Последнее сообщение: 02.03.2016, 09:18
  5. Ответов: 2
    Последнее сообщение: 26.05.2010, 07:42

Ваши права

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