Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Mitsubishi Electric. Контроллеры, преобразователи частоты, HMI _ Программирование _ PWM- Плавное управление шим

Автор: VAL_64 26.02.2019 - 21:15

Добрый вечер.
Суть дела такова, начал делать один проект с использованием аналоговых выходов, управлением пропорцианальными клапанами.
Мне нужно пять выходов, а в базовом блоке FX5U-80МТ только один аналоговый выход , но в нем есть минимум еще 4 ШИМ, первые четыре выхода У0...У3 вот их я и хочу использовать.
Пока выставил 1000гц.(S2=1000), а (S1=от 1 до 1000) картинка по осциллографу ровная,скважность меняется от 0 до 99%.
И еще пришла из китая вот така вещь, Преобразует ШИМ в аналоговый сигнал 0...+10в.
Рабочее напряжение: DC 12 В-30 В; (> 100MA).
Шим частота : 1 кГц-3 кГц.
Диапазон преобразования: 100%-0%.
Выходное напряжение 0-10 В.
Допустимая погрешность: 5%.

Как мне организовать плавное управление шимом на увеличение и уменьшение скважности, чтобы S1 изменялось от 1 до 1000, если S1=нулю, то происходит ошибка.
По этому нодо исключить чтобы S1 ни когда ни была в нуле.
В ручную S1 меняю все работает как надо, а вот сообразить как это сделать автоматический пока не могу.


 

Автор: VAL_64 27.02.2019 - 09:44

А как сделать плавное включение, желательно время нарастание шим изменять в ручную?
М10- для наглядности вкл. выкл.

 

Автор: m_by 27.02.2019 - 09:46

... менять не S1 сразу, а промежуточную переменную DS
а перед присвоением S1=DS поставить - если DS=0 то DS =1

Автор: m_by 27.02.2019 - 09:51

... плавное нарастание тоже через промежуточную переменную DS,
где (например) каждый импульс 0,1с по таймеру DS = DS + 1

если нужно более плавно, время таймера увеличивается , например до 1с
если нужно более круто - увеличивается слагаемое DS = DS + 5

Автор: VAL_64 27.02.2019 - 10:08

Цитата(m_by @ 27.02.2019 - 10:46) *
... менять не S1 сразу, а промежуточную переменную DS
а перед присвоением S1=DS поставить - если DS=0 то DS =1

У меня сейчас при D0=0 PWM отключен.
Как бы условие работает.
А почему переменную DS использовать?


 

Автор: VAL_64 27.02.2019 - 11:38

Может проще можно сделать...

 

Автор: m_by 27.02.2019 - 15:46

трудно воспринимать в IEC когда с ним не работаешь
под DS имелась ввиду любая D, например как у Вас в примере D100

- |m10| - |не t100| - (t100 k1)
- |imp T100| - [< d100 k100] - (inc d100)
- |не m10| - [rst d100]
- [= d100 k0] - (inc d100)
... pwm

куда уж проще

Автор: VAL_64 27.02.2019 - 20:49

Цитата(m_by @ 27.02.2019 - 16:46) *
- |m10| - |не t100| - (t100 k1)
- |imp T100| - [< d100 k100] - (inc d100)
- |не m10| - [rst d100]
- [= d100 k0] - (inc d100)
... pwm
куда уж проще

Что то я не могу разобраться в этой записи...

Автор: m_by 28.02.2019 - 09:39


Автор: VAL_64 28.02.2019 - 13:24

Спасибо.
Буду пробовать.

Автор: VAL_64 28.02.2019 - 18:23

Все работает, только еденица в регистре торчит постоянно не пойму почему не сбрасывается.



 

Автор: m_by 1.03.2019 - 09:52

единицу делает inc d0 в 27-ой строке (защита pwm от нулевого значения)
поставьте в 27-ой строке в начале открытый контакт m100, и ограничение будет только в рабочем режиме (при включенном m100)

Автор: VAL_64 3.03.2019 - 18:02

Спасибо большое, вроде разобрался с Вашей помощью.

 

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)