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

Тема: Буду управлять по Modbus RTU разными ПЧ одного номинала мощности при помощи ПЛК150

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

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

    По умолчанию

    У большинства ПЧ есть параметр минимальный таймаут обмена, а так же параметр определяющий поведение ПЧ при превышении этого таймаута. Мне кажется, что отправлять задание лучше с той частотой, с какой позволяет ПЛК. А вот если, наоборот, в назначенной время очередная команда не пришла на ПЧ, то принимать меры. У меня ПЧ останавливаются через 2 секунды.

  2. #2

    По умолчанию

    Спасибо.

    Таймаут ПЧ - это другое. Может быть еще с этим столкнусь.

    А здесь, рассуждаю с позиции программиста. Modbus работает медленней цикла ПЛК. ПЛК позволяет нам каждый цикл менять исходящие переменные. Не будет это выглядеть так, что каждую итерацию я буду менять значение выходной modbus-переменной. И каждое из этого множества значений, вроде как забъется в буфер к отправке, допустим ограниченного размера, но все же неприятно. И будет тянуться этот хвост запоздалых значений.

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

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Спасибо.

    Таймаут ПЧ - это другое. Может быть еще с этим столкнусь.

    А здесь, рассуждаю с позиции программиста. Modbus работает медленней цикла ПЛК. ПЛК позволяет нам каждый цикл менять исходящие переменные. Не будет это выглядеть так, что каждую итерацию я буду менять значение выходной modbus-переменной. И каждое из этого множества значений, вроде как забъется в буфер к отправке, пусть и ограниченного размера, но все же неприятно. И будет тянуться этот хвост запоздалых значений.
    Вы определитесь, через конфигурацию или через библиотеку. Если первое то по какому варианту Вы собрались посылать управляющие пакеты боясь что мастер захлебнется, документацию читали или методом тыка программируете
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы определитесь, через конфигурацию или через библиотеку. Если первое то по какому варианту Вы собрались посылать управляющие пакеты боясь что мастер захлебнется, документацию читали или методом тыка программируете
    Через конфигурацию.
    Если вы про Work mode (poll time, value change, и т.д.), вроде вопросов нет.
    При использовании отправки "при изменении значения", если не сдерживать мастера, есть риск создать, вроде как, очередь заданий к отправке, в которой более ранние задания уже неактуальны.
    Или же, может, если отправка еще не выполнена, то новое значение его затирает? Это было бы очень хорошо.
    В противном случае, нужно контролировать частоту отправки заданий в modbus-сеть.

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы определитесь, через конфигурацию или через библиотеку. Если первое то по какому варианту Вы собрались посылать управляющие пакеты боясь что мастер захлебнется, документацию читали или методом тыка программируете
    capzap, благодарю. Практика покажет, что получится

  6. #6

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Спасибо.

    Таймаут ПЧ - это другое. Может быть еще с этим столкнусь.

    А здесь, рассуждаю с позиции программиста. Modbus работает медленней цикла ПЛК. ПЛК позволяет нам каждый цикл менять исходящие переменные. Не будет это выглядеть так, что каждую итерацию я буду менять значение выходной modbus-переменной. И каждое из этого множества значений, вроде как забъется в буфер к отправке, допустим ограниченного размера, но все же неприятно. И будет тянуться этот хвост запоздалых значений.
    На счет этого не беспокойтесь. Пока очередь до этого параметра не дошла ОС ПЛК даже не взглянет на нее. Можете сколько угодно раз менять и использовать ее внутри цикла. Главное чтобы в конце цикла значение параметра определяло именно то, что возможно может быть принято к передаче через порт. А возможность передачи ОС определяет сама в соответствии со своими внутренними алгоритмами.

  7. #7

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    На счет этого не беспокойтесь. Пока очередь до этого параметра не дошла ОС ПЛК даже не взглянет на нее. Можете сколько угодно раз менять и использовать ее внутри цикла. Главное чтобы в конце цикла значение параметра определяло именно то, что возможно может быть принято к передаче через порт. А возможность передачи ОС определяет сама в соответствии со своими внутренними алгоритмами.
    Ваши слова, в многом, бальзам на душу.
    В конце 1-го цикла я выдам значение modbus-переменной к отправке. А в конце 2-го цикла, уже немного другое значение этой же переменной. Допустим, по истчении 2-го цикла, значение modbus-переменной, заданное в 1-ом цикле, так и не была отправлено. Но уже есть новое задание и значение modbus-переменной скорректировано, хотя за 1 цикл ПЛК врят ли для этого возникнут предпосылки извне.
    Мне видится это следующим образом:
    - нужно фиксировать время цикла плк (допустим 200 мс или сколько там получится);
    - направлять задания в модбас раз в цикл или, если все будет плохо, реже.

  8. #8

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Ваши слова, в многом, бальзам на душу.
    В конце 1-го цикла я выдам значение modbus-переменной к отправке. А в конце 2-го цикла, уже немного другое значение этой же переменной. Допустим, по истчении 2-го цикла, значение modbus-переменной, заданное в 1-ом цикле, так и не была отправлено. Но уже есть новое задание и значение modbus-переменной скорректировано, хотя за 1 цикл ПЛК врят ли для этого возникнут предпосылки извне.
    Мне видится это следующим образом:
    - нужно фиксировать время цикла плк (допустим 200 мс или сколько там получится);
    - направлять задания в модбас раз в цикл или, если все будет плохо, реже.
    Ерунду пишите, цикл ПЛК может быть 1-3-10 ms, а передача каждые 20-200 ms, как зададите. Никакой буфер не забьётся. Конфигурация спокойно справится. И библиотека тоже.
    На вашем месте, лучше задаться вопросом, как бороться с помехами от частотников. Нужен комплекс мер, по экранированию проводов, заземлению, разнесение силовых кабелей и измерительных (управляющих) проводов, резисторы 120 Ом по сети RS485, помехи по питающей сети и т. д.
    Последний раз редактировалось kondor3000; 17.03.2023 в 16:35.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ерунду пишите, цикл ПЛК может быть 1-3-10 ms, а передача каждые 20-200 ms, как зададите. Никакой буфер не забьётся. Конфигурация спокойно справится. И библиотека тоже.
    На вашем месте, лучше задаться вопросом, как бороться с помехами от частотников. Нужен комплекс мер, по экранированию проводов, заземлению, разнесение силовых кабелей и измерительных (управляющих) проводов, резисторы 120 Ом по сети RS485, помехи по питающей сети и т. д.
    kondor3000, спасибо за ответ.

    Что касается помех от ПЧ, это да.
    Для двигателей, ПЧ - больше зло, чем добро.

  10. #10

    По умолчанию

    Цитата Сообщение от программист_с_паяльником Посмотреть сообщение
    Ваши слова, в многом, бальзам на душу.
    В конце 1-го цикла я выдам значение modbus-переменной к отправке. А в конце 2-го цикла, уже немного другое значение этой же переменной. Допустим, по истчении 2-го цикла, значение modbus-переменной, заданное в 1-ом цикле, так и не была отправлено. Но уже есть новое задание и значение modbus-переменной скорректировано, хотя за 1 цикл ПЛК врят ли для этого возникнут предпосылки извне.
    Мне видится это следующим образом:
    - нужно фиксировать время цикла плк (допустим 200 мс или сколько там получится);
    - направлять задания в модбас раз в цикл или, если все будет плохо, реже.
    ПЛК может начать передачу значения из переменной в любой момент (хоть на 200-м цикле)
    да и передавать его он может несколько циклов подряд (Slave не ответил, будут повторы в передаче и т.д. и т.п.)
    поэтому хоть тысячу раз за цикл меняйте, ПЛК сам в нужный ему момент заберет и отправит
    даже когда стоит режим "По изменению", а к моменту как придет очередь, и значение будет таким же как при прошлой передаче, ПЛК не будет его передавать, хотя несколько циклов подряд значение переменной менялось
    Последний раз редактировалось EFrol; 17.03.2023 в 16:32.

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

Похожие темы

  1. Отключение опроса одного из slave modbus rtu
    от Sergey_Tr в разделе СПК210, СПК1xx [М01]
    Ответов: 1
    Последнее сообщение: 18.01.2023, 20:03
  2. Ответов: 7
    Последнее сообщение: 14.10.2021, 11:30
  3. Ответов: 0
    Последнее сообщение: 25.05.2016, 21:25
  4. Буду рад помощи с rs-485
    от Дмитрий1412 в разделе Трёп (Курилка)
    Ответов: 8
    Последнее сообщение: 26.03.2015, 12:20
  5. Ответов: 8
    Последнее сообщение: 26.03.2015, 11:16

Ваши права

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