Здравствуйте, до покупки хотелось бы уточнить некоторую информацию по выбору ПЛК и некоторых запчастей под мою задачу.
Как я думаю, должен подойти ПЛК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, на микроконтроллере. Можно БУСТ или ОВЕН БКСТ применить, но в их инструкции нарисована схема управления тиристорами и семисторами. Про то как упралять ТТР не сказано. Можно конечно и с паяльником внутрь залезть. Но от самоделок школьника хотелось бы уйти еще на стадии разработки.