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

Тема: Получение данных в ПЛК из исторической таблицы СП3**

  1. #1

    Post Получение данных в ПЛК из исторической таблицы СП3**

    Добрый вечер!

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

    В ПЛК настроил ModBusTCP устройство СП307-р. Привязал регистр PFW400 (16#28A0) для чтения по тригеру в плк. Этот же регистр присвоил для сохранения данных из исторической таблицы. Для теста то же самое сделал для этого регистра и запись по триггеру.
    Если забираю какие-то данные (допустим одно сообщение), WORD-переменная показывает 416. Как это интерпретировать?
    Если же я в панеле очищу историческую таблицу, а потом по триггеру передам на PFW400 значение 416(которое было считано ранее), то появляется то же сообщение. Т.е. где-то вся информация, включая временную метку появления сохраняется. Прошу подсказать где она находится, а также как её забрать для дальнейших манипуляций

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,205

    По умолчанию

    Цитата Сообщение от cortez_1703 Посмотреть сообщение
    Добрый вечер!

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

    В ПЛК настроил ModBusTCP устройство СП307-р. Привязал регистр PFW400 (16#28A0) для чтения по тригеру в плк. Этот же регистр присвоил для сохранения данных из исторической таблицы. Для теста то же самое сделал для этого регистра и запись по триггеру.
    Если забираю какие-то данные (допустим одно сообщение), WORD-переменная показывает 416. Как это интерпретировать?
    Если же я в панеле очищу историческую таблицу, а потом по триггеру передам на PFW400 значение 416(которое было считано ранее), то появляется то же сообщение. Т.е. где-то вся информация, включая временную метку появления сохраняется. Прошу подсказать где она находится, а также как её забрать для дальнейших манипуляций
    Ни чего не понятно
    Кто мастер ПЛК или СП
    Настроки таблицы где?
    А по итогу ничего из таблицы для дальнейших манипуляций не возьмете. https://owen.ru/forum/showthread.php...l=1#post227222
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Добрый вечер!
    ПЛК - мастер, панель - слейв. Ваш ответ с демонстрационным текстом видел, где таблице значений присваивается PFW256 регистр как источник данных, и пробовал этот проект потыкать. Я не понимаю, как устроен процесс сохранения данных.
    Допустим появилась запись (следуя вашему примеру из другого ответа), я вижу ее в таблице из 12 столбцов. Я хочу забрать отдельно значение ЧАСА,МИНУТЫ,СЕКУНДЫ возникновения записи. В таблицу записываются все 12, я же хочу забрать только этих три, причем выставить изменение по триггеру. Условно на какой-нибудь PSW регистр WORD завести час, на другой минуту, на третий - секунды.

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,205

    По умолчанию

    Цитата Сообщение от cortez_1703 Посмотреть сообщение
    Добрый вечер!
    ПЛК - мастер, панель - слейв. Ваш ответ с демонстрационным текстом видел, где таблице значений присваивается PFW256 регистр как источник данных, и пробовал этот проект потыкать. Я не понимаю, как устроен процесс сохранения данных.
    Допустим появилась запись (следуя вашему примеру из другого ответа), я вижу ее в таблице из 12 столбцов. Я хочу забрать отдельно значение ЧАСА,МИНУТЫ,СЕКУНДЫ возникновения записи. В таблицу записываются все 12, я же хочу забрать только этих три, причем выставить изменение по триггеру. Условно на какой-нибудь PSW регистр WORD завести час, на другой минуту, на третий - секунды.
    Я давал прямую ссылку на структуру одной строки в таблице
    Структура одной записи в памяти панели
    Метка времени события(Год, Месяц, День, Час, Минута), Номер события(просто число WORD), Флаг квитирования(0 или 1, формат WORD), метка времени квитирования(Год, Месяц, День, Час, Минута).
    ИТОГО 12 регистров WORD.
    Секунд там нет, забирайте часы - четвертый столбец и минуты - пятый столбец. Не понимаю в чем проблема скопировать одни регистры в другие.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5

    По умолчанию

    HistoryTableExample.png

    Проблема в том, что у меня не получается забрать данные с регистров. В примере (который вы когда-то отправляли) таблица отображения данных настроена на регистр PFW256. Данные по столбцам WORD/Hex. Правее таблицы я вывел 7 регистров с 256 по 263, все дисплеи настроены WORD/HEX. Но я не наблюдаю совпадений данных в таблице отображения данных и цифровых дисплеях. Поэтому я пишу сюда, КАК правильно мне забрать ОТДЕЛЬНО взятый регистр, чтобы он совпадал с тем, что показывает таблица в целом

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,205

    По умолчанию

    Цитата Сообщение от cortez_1703 Посмотреть сообщение
    HistoryTableExample.png

    Проблема в том, что у меня не получается забрать данные с регистров. В примере (который вы когда-то отправляли) таблица отображения данных настроена на регистр PFW256. Данные по столбцам WORD/Hex. Правее таблицы я вывел 7 регистров с 256 по 263, все дисплеи настроены WORD/HEX. Но я не наблюдаю совпадений данных в таблице отображения данных и цифровых дисплеях. Поэтому я пишу сюда, КАК правильно мне забрать ОТДЕЛЬНО взятый регистр, чтобы он совпадал с тем, что показывает таблица в целом
    Не наблюдаю потому, что при архивирование событий используется кольцевой (циклический) буфер
    Кольцевой (циклический) буфер - это такой способ хранения данных. Он «закольцован» для того, чтобы новые данные могли постоянно перезанимать пространство, ранее занимаемое старыми данными.
    В нашем случае после заполнения хранилища, новое событие записывается на место самого старого - в начало архива.
    Кольцевой буфер инкрементируется посредством сохранения двух указателей (или индексов): указателя чтения ( head - голова) и указателя записи (tail - хвост).

    Указатели головы и хвоста буфера находятся в самом начале области памяти выделенной под хранилище исторической таблицы.
    Т.е. если в настройках исторической таблицы указать адрес хранилища PFW256, то первые 4 регистра занимают указателями головы и хвоста как переменные DWORD. Сами данные архива начитаются с PFW260.
    В архиве всегда используется на одну запись больше,чем задано "строк всего" в настройках таблицы
    Например используем историческую таблицу на 5 строк
    Захват-22.png

    В исходном состоянии очередь пуста, адрес головы и хвоста =PFW260.
    По команде запись, адрес головы увеличивается на одну запись(на 12 регистров), происходит запись по адресу головы, и так до тех пор, пока очередь не переполнится, т.е не произойдет запись последнего элемента в очереди.
    При переполнении очереди следующая запись происходит не по адресу 332, а по адресу первого элемента очереди - 260, т.к. происходит сброс адреса головы исходное состояние - 260.
    Таким образом 6-ая запись записывается на место самой старой - 1-ой.
    И очередь записей получается зацикленной. Более новые события записываются на место самых старых.
    Если посмотреть архив в таблице отображения данных, то в таблице с откл. Цикл. буфером это хорошо видно, т.к. адреса строк будут фиксированными.
    А когда мы в таблице вкл. использовать цикл.буфер, то адрес первой строки в таблице не будет постоянным, а будет соответствовать адресу Головы очереди, т.е будет динамически меняться.
    Скрытый текст:

    Вложения Вложения
    Последний раз редактировалось petera; 30.06.2026 в 14:15.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    Спасибо за разъяснение, теперь понял куда и как смотреть.
    Впринципе почти сам дошел до этого, меняя у числового дисплея динамический адрес, ссылаясь на 256, но не додумался поставить адрес для самого дисплея 0
    Еще раз спасибо!

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 05.05.2026, 11:32
  2. База данных MS4D PostgreSQL -таблицы
    от AlexBut в разделе Помощь Разработчикам
    Ответов: 11
    Последнее сообщение: 21.08.2025, 12:56
  3. как взять данные с таблицы отображения данных?
    от delta8 в разделе Панели оператора (HMI)
    Ответов: 0
    Последнее сообщение: 15.01.2024, 11:33
  4. Ответов: 28
    Последнее сообщение: 04.10.2023, 10:55
  5. Получение данных из ПЛК на ПК
    от bladerunner в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 06.01.2015, 08:51

Метки этой темы

Ваши права

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