Страница 1130 из 1178 ПерваяПервая ... 130630103010801120112811291130113111321140 ... ПоследняяПоследняя
Показано с 11,291 по 11,300 из 11771

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #11291

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    А модули расширения? Нет? Не устраивают?
    Модули расширения для каждого ПЛК обязательно будут. Кроме этого дополнительные каналы RS-485 будут задействованы на каждом ПЛК. Но нас интересует быстродействие системы. У нас автооператоры на высоких скоростях перемещаются вдоль линии, а позиционирование осуществляется бесконтактными датчиками. Если все нагрузить на один ПЛК, то программа будет очень большая, а это увеличение длительности цикла опроса датчиков. Есть вероятность, что автооператоры могут на высокой скорости проезжать позиции остановки. Да и такая распределенная система управления сокращает расход "меди" на коммутационные линии. Электрические проводники становятся короче, а это, порой, и уменьшает наводимые помехи. Ведь наша СУ использует много частотных преобразователей для приводов автооператоров. И работают эти приводы на разных частотах в зависимости от ситуации. Вот такая система.

  2. #11292

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Модули расширения для каждого ПЛК обязательно будут. Кроме этого дополнительные каналы RS-485 будут задействованы на каждом ПЛК. Но нас интересует быстродействие системы
    какой системы? у вас куча разнопланового оборудования, при этом вы требуете скорость, непонятно только кто или чего эту скорость должен обеспечить

  3. #11293

    По умолчанию

    Да я уже понял. Нашел у ОВЕН неплохой хаб.

  4. #11294

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    какой системы? у вас куча разнопланового оборудования, при этом вы требуете скорость, непонятно только кто или чего эту скорость должен обеспечить
    Быстродействие необходимо для ПЛК при опросе дискретных датчиков позиционирования, когда над ними перемещается автооператор на высокой скорости. Мы подобные системы неоднократно делали, правда, не на ОВЕНовских ПЛК.

  5. #11295

    По умолчанию

    Вопрос по оптимизации кода программы.
    По задаче мне нужно cчитывать значения одноименного регистра (153) по Modbus из четырех Slave устройств и записывать эти значения в регистры (36-39) Slave устройства ПЛК110 для дальнейшей передачи их по TCP в ПК.
    Можно было в программе записать просто:
    wTok_Real_Pult_1 := wTok_Real_Pult_1_In; (* Reg 153 Slave 1 записывается в 36 регистр ПЛК*)
    wTok_Real_Pult_2 := wTok_Real_Pult_2_In; (* Reg 153 Slave 2 записывается в 37 регистр ПЛК*)
    wTok_Real_Pult_3 := wTok_Real_Pult_3_In; (* Reg 153 Slave 3 записывается в 38 регистр ПЛК*)
    wTok_Real_Pult_4 := wTok_Real_Pult_4_In; (* Reg 153 Slave 4 записывается в 39 регистр ПЛК*)
    Т.к. эти значения имеют чисто информационный характер для оператора, работающего на этой СУ, то я решил не загружать процессор ПЛК этой операцией на каждом цикле работы контроллера, а ввел цикличность опроса. Каждые 4 сек. происходит опрос этих четырех регистров. Например, как на этом фрагменте. Для цикличноcти опросов я использовал 2 таймера TON:

    (* Опрос регистров 153 (фактического тока выпрямителей) Slave1-4 каждые 4 сек.*)
    (* wTok_Real_Pult_1 регистр 36 Master PLC *)
    (* wTok_Real_Pult_2 регистр 37 Master PLC *)
    (* wTok_Real_Pult_3 регистр 38 Master PLC *)
    (* wTok_Real_Pult_4 регистр 39 Master PLC *)
    (* Регистры 36-39 будут читаться по TCP внешним ПК *)

    Pausa_Opros1(IN:=NOT Opros,PT:=T#2s); (* Пауза 2 сек *)
    IF Pausa_Opros1.Q THEN (* Это место отрабатывается один раз за 4 сек! *)
    wTok_Real_Pult_1 := wTok_Real_Pult_1_In; (* Регистр 153 Slave 1 *)
    wTok_Real_Pult_2 := wTok_Real_Pult_2_In; (* Регистр 153 Slave 2 *)
    wTok_Real_Pult_3 := wTok_Real_Pult_3_In; (* Регистр 153 Slave 3 *)
    wTok_Real_Pult_4 := wTok_Real_Pult_4_In; (* Регистр 153 Slave 4 *)
    Opros := TRUE;
    END_IF

    Pausa_Opros2(IN:=Opros,PT:=T#2s); (* Пауза 2 сек *)
    IF Pausa_Opros2.Q THEN
    Opros := FALSE;
    END_IF

    Все свои программы в контроллерах я стараюсь выполнять за минимальное время цикла процессора, т.к. приходится оперативно анализировать состояние дискретных входов, по которым осуществляется позиционирование движущихся автооператоров по рельсам.
    Интуитивно, понимаю, что работающий таймер тоже отвлекает процессор на каждом цикле. Но все же вопросы:
    1. ”Игра стоит свеч”?
    2. Как можно проще реализовать приведённый мною фрагмент? Возможно с использованием BLINK.

  6. #11296

    По умолчанию

    Если в этом нет необходимости, то это всё вообще не нужно, пишите в регистры постоянно, выиграть ничего не получится, только ненужные таймеры добавили.
    А вот читать и записывать регистры в мастере надо группой, про String уже писал.

    Если же так нужно, то наличие 2 таймеров, никак не замедлит программу.
    Последний раз редактировалось kondor3000; 16.02.2025 в 10:59.

  7. #11297

    По умолчанию

    Если опрашиваете не самописной программой, а средствами плк, то вроде он сам постоянно опрашивает регистры... А тут вы только в самой программе просто пытаетесь раз в несколько секунд присвоить значения этих уже несколько раз считанных контроллером регистров какой то переменной... Или я не прав?

  8. #11298

    По умолчанию

    Это имело бы смысл, если чтение регистров выполнялось с использованием библиотеки. А если сконфигурирован Polling 100ms, то чтение будет 10 раз/сек. Поставьте Polling 4000ms на эти регистры.
    Последний раз редактировалось EFrol; 16.02.2025 в 11:11.

  9. #11299

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Это имело бы смысл, если чтение регистров выполнялось с использованием библиотеки. А если сконфигурирован Polling 100ms, то чтение будет 10 раз/сек. Поставьте Polling 4000ms на эти регистры.
    А это интересно. Но параметр Polling Time распространяются на весь UMD, а там имеются регистры, которые необходимо читать гораздо чаще. Значит, этот подход не совсем корректен для моей задачи.
    Последний раз редактировалось vsa; 16.02.2025 в 13:33.

  10. #11300

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Если в этом нет необходимости, то это всё вообще не нужно, пишите в регистры постоянно, выиграть ничего не получится, только ненужные таймеры добавили.
    А вот читать и записывать регистры в мастере надо группой, про String уже писал.

    Если же так нужно, то наличие 2 таймеров, никак не замедлит программу.
    Давно хотел работать с групповой записью. Напомните ссылкой место, где можно подробнее изучить этот режим. Но для формирования строки, которую в дальнейшем нужно отправить в рядом расположенные регистры, необходимо сформировать. А это дополнительные операции. А это дополнительное время. Или я ошибаюсь?

Страница 1130 из 1178 ПерваяПервая ... 130630103010801120112811291130113111321140 ... ПоследняяПоследняя

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

Ваши права

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