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

Тема: Организация очереди

  1. #1

    По умолчанию Организация очереди

    Доброго вечера.
    Есть вопрос по организации очереди FIFO на ПЛК 110. В ПЛК генерится каждые 400 ms некая структура. Её нужно отправлять на сервер, время отклика которого может достигать нескольких секунд.
    Собственно вопрос:
    Как организовать очередь FIFO. Я слышал, что есть modbus fifo, но примеров программ не нашёл. Если кто даст ссылку, буду признателен.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    вот ведь не задача, ссылка то вот она http://www.owen.ru/forum/showthread....l=1#post221238
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Как обычно организовываю я обмен в ответственных системах:
    1. Между компонентами пускаю две инкриминируемые переменные.
    Одну, например прибавляет контроллер, а вторую сервер, если понял, что контроллерная переменная изменилась. И так между всеми компонентами сети, где только это возможно сделать. Назовем это "метод эха". Если переменные стоят - все плохо, к доктору.
    Так на КуАЭС удалось решить множество проблем с локальной сетью.
    2. Команды пишет сервер. Сбрасывает функциональный блок, если он ее принял.
    3. Значения чтоб индицировались без задержек, Modbus TCP надо сильнее сегментировать и разбивать во времени. Будет работать лучше

    На сервер мы ничего не отправляем, наоборот, сервер ввода вывода ведет опрос и забирает то, что просит.
    Можно по разному изворачиваться, но самое простое спросить себя - а зачем?
    +79104444236
    С уважением,
    Лапшин Вячеслав

  4. #4

    По умолчанию

    Вроде то, что надо. Спасибо.

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

    По умолчанию

    krollcbas не помню точного слова (есть определение), но простым языком это называется отложенная запись.
    Когда в Scada данные не просто должны поступать когда она что-то опросила, а все записи с указанным периодом после восстановления связи. Ну ессно тот кусок, который вкладывается в размер буфера, 10 последних записей, 50, 100 и так далее, сколько выставлено и есть возможность.

  6. #6

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Как обычно организовываю я обмен в ответственных системах:
    1. Между компонентами пускаю две инкриминируемые переменные.
    Одну, например прибавляет контроллер, а вторую сервер, если понял, что контроллерная переменная изменилась. И так между всеми компонентами сети, где только это возможно сделать. Назовем это "метод эха". Если переменные стоят - все плохо, к доктору.
    Так на КуАЭС удалось решить множество проблем с локальной сетью.
    2. Команды пишет сервер. Сбрасывает функциональный блок, если он ее принял.
    3. Значения чтоб индицировались без задержек, Modbus TCP надо сильнее сегментировать и разбивать во времени. Будет работать лучше

    На сервер мы ничего не отправляем, наоборот, сервер ввода вывода ведет опрос и забирает то, что просит.
    Можно по разному изворачиваться, но самое простое спросить себя - а зачем?
    Не совсем точно я выразился. Цель - чтобы сервер получил эти данные. Очередь нужна типа точка-точка (например как в JMS ). А как это сделать- как раз в этом и есть вопрос.

  7. #7

    По умолчанию

    Все перечитал. Задача офигенская. Организовать промежуточный буфер. Так делал на PFC200 WAGO, когда у меня MySQL не успевал запросы забирать и укладывать на флешку. Да, действительно, тогда укладывал события в промежуточный буфер строк на 100 и затем порциями укладывал данные в базу.
    Запись в базу инициировал сам контроллер, если прошлое событие <> настоящему.

    Топикстартер говорит про ПЛК100. Какие к черту ответственные применения, вы что?
    Зачем тут какая-то наука всплывает?

    Ну надо так надо. Трудно что ли запись в массивы организовать, затем сдвигать запись по индексу, если она забрана.
    Опять таки один единственный вопрос - Зачем? Что за такая экономная сверхтехнология со скадой и ПЛК100?
    +79104444236
    С уважением,
    Лапшин Вячеслав

  8. #8

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Ну надо так надо. Трудно что ли запись в массивы организовать, затем сдвигать запись по индексу, если она забрана.
    Опять таки один единственный вопрос - Зачем? Что за такая экономная сверхтехнология со скадой и ПЛК100?
    Негодование ваше понятно. Безусловно можно всё организовать и запрограммировать. Но человек я от природы ленивый, и если есть готовые решения, то я предпочитаю использовать их. Тем паче, что стандарт есть - 24 (18 Hex) Read FIFO Queue . Если подскажете где взять это решения, то можете меня хоть обматерить.

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 11.07.2017, 13:53
  2. Включение оборудования по очереди
    от Данис в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 19.05.2015, 07:50
  3. Есть ли в CodeSys очереди?
    от Flomaster в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 20.08.2007, 07:56

Ваши права

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