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

Тема: Фазо-импульсное регулирование + дополнительные операции

  1. #1

    Post Фазо-импульсное регулирование + дополнительные операции

    Здравствуйте, до покупки хотелось бы уточнить некоторую информацию по выбору ПЛК и некоторых запчастей под мою задачу.
    Как я думаю, должен подойти ПЛК110 или ПЛК100...
    Мне нужно реализовать двухканальный регулятор мощности с фазо-импульсным управлением. Диапазон регулирования выходной мощности каждого канала в относительных единицах от 0 до 100. Регулировать нужно мощность 2х нагревателей (переменка 24 В, до 100 А, инерционность у нагревателя низкая, датчик температуры отсутствует - регулируем временем и ограничением мощности) + еще выполнять дополнительные логические операции, + вести обмен данными по RS485 или RS232 с панелью СПК107.
    DI-входы для концевиков, DO-выходы управления соленоидами.
    Работа программы:
    1)Нажали "Старт", сработал DO1, через 0,5 сек. он выключится по сигналу от DI1.
    2)Срабатывает DO2, механизм доходит до концевика DI2, пошел отсчет T1=1сек, по истечении которого DO2 отключится..И тут же соблюдаем условие DI2+DI3(импульс момента перехода полуволны сетевого напряжения через "0").->[запуск задержки включения DO4...T2=100 мкс. ->отсчитали 100 мкс.-> включили DO4] в квадратных скобках выполняем циклично в течение T1=1сек. Запускающие импульсы поступают с внешнего устройства - синхронизатора на DI3 с частотой 100Гц - период следования 10 мс. На выходе DO4 получаем те же - 100Гц, что и на DO3, только смещенные на время T2. +еще параллельно нужно выполнять такой же алгоритм для второго канала регулятора мощности.
    3)Программа повторяется с момента "Старт".
    T2 нужна регулируемая с дискретностью в 100мкс. Длительность одного полупериода сетевого напряжения=10мс..1мс=1000мкс. 10мс*1000мкс/100(макс.мощность)=100мкс. В технических характеристиках контроллера указано время выполнения одного цикла программы = 1мс. Установленное по умолчанию (стабилизированное).
    Как я понимаю это минимальный цикл плк вместе с выполняемыми в это время сервисными функциями. Соотвественно таймеры в CodeSys не могут отмерять промежутки времени, меньше этого значения (вызов T2 происходит чаще чем заканчивается цикл ПЛК). На языке CFC это не реализуемо, и нужно использовать аппаратные возможности..
    В руководстве по эксплуатации сказано про модуль ШИМ, п 7.3.5.1 PWM (Pulse-wide modulator) возможно ли им будет воспользоваться для моей задачи? В нем есть параметр "Минимальная длительность импульса ШИМ в 100 мксек, мне нужно будет менять значение этого параметра по сети RS485/232 с СПК107 в процессе работы(время T2). А потом его инвертировать чтобы получилось: пауза->импульс. В принципе инверсия это не так важно - на внешней "железной" логике реализую.
    Цикл программы должен четко выполняться по времени, подвисания процессора недопустимы. Иначе мощность на тэнах будет непостоянна.

    Предыдущую конфигурацию собрал: СПК107+МВ110-16ДН+МВ110-16К. Узкое место получилось 485-й порт, - зависимость от времени получения данных по Modbus. Формирователи для фазо-импульсного управления собрал на универсальных аналоговых таймерах NE555 и дискретных элементах на отдельной плате, но там получается небольшая нестабильность от времязадающих конденсаторов. В принципе собранная система работает на пределе. Иногда только небольшая задержка по rs485 отражается на ходе процесса. Понял что нужен ПЛК, где модули висят на внутренней шине.

    Наверно для ФИО можно было применит ТТР серии KIPPRIBOR HD-xx.VA и HD-xx.2210U. Но глядя на цену у меня подозрение, что внутри стоит обычный конденсатор как элемент фазо-сдвигающей цепочки, как простая схема в бытовом димере. Да и нет у них в линейке ТТР с фио работающих при напряжении переменного тока 24в. Нужно что-то посерьезнее с запуском временного отсчета с момента прехода сетевого напряжения через 0, на микроконтроллере. Можно БУСТ или ОВЕН БКСТ применить, но в их инструкции нарисована схема управления тиристорами и семисторами. Про то как упралять ТТР не сказано. Можно конечно и с паяльником внутрь залезть. Но от самоделок школьника хотелось бы уйти еще на стадии разработки.

  2. #2

    По умолчанию

    Вам не удастся (если не использовать ухищренные извращения) реализовать синхронизацию с переходом через ноль. Аппаратных (внешних) прерываний в этих ПЛК нет, а синхронизация в цикле даст ошибку в 2мс. Вас это устроит?
    Последний раз редактировалось KGB; 09.01.2015 в 15:08.

  3. #3

    По умолчанию

    на ПЛК110 задача собирается как написано, нужен только формирователь для получения привязки к нулям сети ( с импульсом больше 20 мкс), встроенный PWM не получится использовать, он не синхронизируется внешними сигналами, нужно использовать быстрые входы-выходы и быстрый таймер для эмуляции прерываний...

    на ПЛК100 задачу можно делать, если сделать упрощение задачи по фазо-импульсному регулированию, для нагревателей нет смысла выполнять модуляцию с частотой в 100 гц - источник тепла в 2,4 кВт вряд ли имеет настолько маленькую инерцию, поэтому настраивать шим на секунды, и использовать твердотельное реле с встроенными цепями включения в ноль сети

  4. #4

    По умолчанию

    KGB - Я понял, это мне и нужено было. В двухканальном регуляторе на Attiny2313 именно внешнее прерывание используется.. впринципе все равно возьму 110-й для задачи управления исполнителями и датчиками он подойдет..., а вот ошибка в 2мс - наверно только для числоимпульсного регулирования подойдет.
    Дмитрий Артюховский - С токами я неправильно написал, в цепи 24В установлен защитный автоматический выключатель на 32A, а в цепи второго нагревателя 42В-25А. Можно конечно было и числоимпульсным регулировать -помех меньше, но мне кажется тефлон начнет подгорать. Длительность нагрева обоих тэнов ограничена 0,25с, можно добавить -0,5с это предел. А мощность уже выставляем в зависимости от толщины свариваемой пленки. Инерционность убирается с помощью водяного охлаждения.
    В принципе нашел то что нужно для узла импульсной сварки, даже схема подключения и логика совпадает - Контроллер сварочного станка.
    Еще как вариант с многообразием интерфейсов, в том числе с RS-485 - однофазный цифровой тиристорный регулятор мощности. Сделал запрос на цену, посмотрю как выйдет, может пока придется оставить на таймерах.
    Еще попробую перепаять модули ввода-вывода в режим 232-го интерфейса и посажу каждый из них на отдельный COM-порт на СПК107. Нужно все равно доделать первую версию проекта.
    Для последующего будем уже на 110-м делать, так как однозначно ввод-вывод нужен на борту.
    Со старого контроллера взял одну из плат управления нагревом. Там уже есть схема выделяющая импульсы перехода через ноль, использую ее как датчик начала отсчета для таймеров.

    В оригинальном командоаппарате производства польши- Mikroster стоит 8 битный контроллер PCF 80C49, работает на частоте 3 Мегагерца помимо основного алгоритма выполняет еще динамический вывод на ЖКИ-индикатор, управляет режимами нагрева 2х канталовых лент и обрабатывает сигналы от второго контроллера который сканирует клавиатуру и состояние датчиков + еще дает сигналы на плату дискретных выводов.

    В общем спасибо всем за полезную информацию, закажу 110-й и буду экспериментировать.
    Последний раз редактировалось dr_alf; 10.01.2015 в 00:09.

  5. #5

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    на ПЛК110 задача собирается как написано, нужен только формирователь для получения привязки к нулям сети ( с импульсом больше 20 мкс)
    Пришел контроллер ПЛК110-60. Проект портировал с CS3. Сейчас разбираюсь с работой вч таймера. Пример hi_timer.pro, заработал только после понижения версии прошивки с 2.14 на v 2.10.9.
    Подскажите простой пример задержки по времени в микросекундах, т.е. пришел импульс на DI1, и через время 500мкс. включился DO1. Стандартные ФБ здесь не подойдут?

  6. #6

    По умолчанию

    Все что меньше 1 мс стандартными ФБ не сделать.
    Пример не приведу, но алгоритм очень прост: каждые 20мкс по прерыванию таймера опрашиваете DI1, и как только появляется на нем сигнал(обязательно проверку чтоб не ловить помехи) запускаете инкрементный счетчик вызовов (I=I+1) и когда количество вызовов соответствует необходимой задержке ( в Вашем случае 25) включаете DO1. Точность - 20мкс+дискретность задания задержки.
    А вот дальше, еще 15 мс придется терпеть прерывания от этого - же таймера (порядка 700 раз) в холостую, поскольку отключить прерывание из программы на это время нельзя.

  7. #7

    По умолчанию

    В общем получилось, аппарат запустили в работу. Алгоритм для быстрого таймера собрал на CFC из стандартных ФБ -1-CTU и 1-таймер. Возможно если на ST написать, то более плавная регулировка получилась бы, но он как-то сложно в голове укладывается -CFC ,более нагляден и понятен для меня как для электронщика привыкшего к пайке логических микросхем.. Но пока нормально работает. Для регулировки яркости лампы накаливания конечно не подойдет - мерцание заметно, а вот для низкоинерционных тэнов самое то.
    Вот здесь я еще тему по этому вопросу создал, сразу Ваш ответ не увидел, в принципе вопрос решен хотя до конца с таймером пока не разобрался. В инструкции про работу с таймером все написано, но чтобы понять о чем идет речь, нужно иметь довольно большой запас знаний по архитектуре ПЛК и микроконтроллеров. Внутри него навороченная Atmega стоит, нужно будет почитать подробней про AVR-ки. А потом на ST код попробую переписать.

Похожие темы

  1. Фазо-импульсное регулирование, не совсем типичный случай
    от Boris_K в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 05.11.2014, 13:09
  2. Циклическое повторение операции
    от ДаниилСПб в разделе Master SCADA
    Ответов: 6
    Последнее сообщение: 06.05.2014, 14:57
  3. Дополнительные элементы визуализации
    от RadistDog в разделе СПК2хх
    Ответов: 7
    Последнее сообщение: 22.04.2014, 14:08
  4. дополнительные Com-порты для плк!?
    от Ельцов Андрей в разделе Разработки
    Ответов: 6
    Последнее сообщение: 10.02.2010, 17:50

Ваши права

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