Avenging_Archangel
А что мешает поставить индуктивные датчики? На моем ЧПУ так. Правда у меня не на Овене, а на ЛинуксЦНЦ, но работает отлично.
Но даже на Овене можно вычислить гистерезис индуктивного датчика по переднему и заднему фронту сигнала.
Вид для печати
Avenging_Archangel
А что мешает поставить индуктивные датчики? На моем ЧПУ так. Правда у меня не на Овене, а на ЛинуксЦНЦ, но работает отлично.
Но даже на Овене можно вычислить гистерезис индуктивного датчика по переднему и заднему фронту сигнала.
Ну я реализовал вот так (прикрепляю проект). Тестирую в железе на столе, пока вроде норм. Программы CNC_FINDING.CncMaxFinding и CNC_FINDING.CncMinFinding запускаются с ИП320, а дальше уже по прерываниям от концевиков. Комментарии в программах поиска максимума не все правильные, в поиске минимума вроде все поправил.
Ну больше дело в финансах. Восстановить станок больше моя прихоть, как такового задания мне не было, я вообще работаю главным конструктором и занимаюсь разработкой электрощитового оборудования, электроника как хобби, поэтому интересно с ПЛК повозиться. Я работаю на маленьком заводе (у нас работников меньше 50), директор и так нехило затратился на ПЛК, ИП320 и ПЧВ1, боюсь если я попрошу еще купить индукционные датчики, меня пошлют далеко и надолго:) Да и плюс концевики в моем мухосранске проще найти, чем индукционные датчики.
самое первое это см .вложение, дальше смысла нет рассматривать проект как рабочий, если нарушен порядок выполнения
второе, понятно что Вы не программист, но попробуйте где нибудь этот код написать в компьютерных языках программирования и "прогнать" по нему статический анализ, например действие CncMaxFinding
I) IF bFindMax=TRUE OR bFindMax=TRUE
II) внутри условия из первого пункта вновь проверка IF bFindMax=TRUE
III) и как продолжение есть еще и ELSE которое никогда не выполняется
третье, добавляйте в конфигуратор модуль Button обязательно
1. Про порядок знаю, просто сейчас занимаюсь с поиском нулей, и после внесения изменений в PLC_PRG порядок не наводил, но за напоминание спасибо. Хотя и в данный момент все в PLC_PRG работает в железе как ни странно.
2. Большое спасибо, тут реально ошибка, которую проглядел, в реальности первое условие должно быть IF bFindMax=TRUE OR bStartInit=TRUE, когда дошел бы до отладки начального поиска нуля, сильно бы удивился, что программа не вызывается, и зная себя, потратил бы полчаса на поиск ошибки :)
3. Про button читал, вроде это косяк овена, и иногда программа останавливается самопроизвольно. Добавил в проект. Еще раз спасибо.
На будущее:
Конструкции типа IF bFindMax=TRUE OR bStartInit=TRUE можно писать короче - IF bFindMax OR bStartInit
Т. е. в проверке условия КДС автоматически сравнивает с TRUE.
Если надо проверить на FALSE, то можно написать так:
IF NOT bFindMax OR NOT bStartInit THEN
Лично мое мнение - удобнее читать код.
Да, я знаю, для AVR, когда я начинал их изучать, я так и делал. А вот в Codesys мне почему-то удобнее когда видно, где какое значение. Не знаю с чем это связано, возможно потому что еще не все понимаю в этой среде программирования. Ну и иногда я использую типа дефайнов, например _vDirect:=vDirectToMax, где _vDirect - булевская переменная, а vDirectToMax - булевская константа, равная FALSE.
Есть такое. Конкретно пост #8
Вложение 44507
Подключил библиотеку SysLibStr.lib и вызвал в POU одну из функций.
Компиляция проходит без ошибок, но при попытке загрузить программу в ПЛК - выдается сообщение об ошибке
С чем это может быть связано?
ПЛК110-30М
Вероятнее всего не поддерживается контроллером. ПЛК110-30М (2013 г.в.). Ни чего не обновлял с момента покупки. Просто работает ежедневно и я стал забывать про него. Появился интерес MQTT клиента подключить, а там работу со строками нужно поддержать. В общем все клиенты MQTT для Codesys 2.3 очень сырые. Отказался от этой идеи.
Вопрос: А может можно как-то совсем снести этот Codesys и использовать стандартный С++? (мне он кажется более привычным и удобным, начиная от IDE)
зы. Есть опыт работы с микроконтроллерами stm32 с RTOS
Библиотеки от реального проекта остались.
А задачи там всего 2.
Одна собственно клиент MQTT
Вторая это тестирование отправки используя клиента.
Как раз поубирал все лишнее, что бы понять как оно работает.
Цель проста: Проверить как оно работает. Как постит значения в топики. Следующим экспериментом должно быть подписка и прием сообщений, но до него не дошел ибо не смог с зависаниями разобраться. ПЛК просто подвисает на второй отправке
Добрый день. Есть задача сделать переключение между двумя насосами по времени наработки. Время задается с панели. Я правильно понимаю, что мне нужно создать ф.блок учета наработки, но добавить в него преобразование dword_to_time для введенного с панели значения?
Добрый день. Мой первый проект. Приточно-вытяжная система вентиляции торговой точки. Не было опыта работы ни с программируемыми реле, ни с твердотельными реле. Просьба проверить схему. Отдельный вопрос по варистору. Какой именно подойдет? Проект на стадии разработки. Вытяжной вентилятор планирую включать параллельно с притоком. Вложение 44543
Приведённая схема работать не будет т.к 3 входа твердотельных реле соединены последовательно, на каждом входе напряжение будет меняться в пределах 0-3х вольт.
Подберите вместо 3х однофазных, одно трёхфазное реле. Обратите внимание на контроллер для приточной вентиляции ТРМ1033.
У ПР аналоговый выход - пассивный, для цепи 4-20 мА нужен внешний источник питания
Вложение 44561
Нагрузка чисто активная - ТЭН, зачем варисторы?
Не получилось подобрать 3-х фазное с управлением 0-10 В
Если изменить схему на параллельное подключение? Вложение 44562
< Если изменить схему на параллельное подключение? >
Тогда будет работать. Попробуйте в ПР200 организовать ШИМ на таймерах. Период ШИМ - 10 секунд, длительность импульсов от 0,1 до 9,9 секунд. На ПР Zelio у меня получалось.
oldmaster
Есть нюанс. Выход ПР может не потянуть три ТТР. Т. е. необходимо замерить ток потребления трех параллельно включенных входов ТТР при поданным на них 10 вольт, и сравнить его с разрешенной нагрузкой для выхода ПР.Цитата:
Если изменить схему на параллельное подключение?
Данная система не требует ТТР именно с аналоговым управлением. У таких ТТР есть одна неприятная особенность - они создают помеху в сети, что может вызвать проблему у других устройств. Предпочтительнее использовать ТТР с дискретным управлением 3-32VDC и контролем перехода через ноль. Но тут уже особенность ПР - в них нет транзисторного выхода. Однако, если ПР не на гарантии, то выход есть. Я в подобных случаях просто выпаиваю реле из платы, а те контакты, которые идут на обмотку реле подключаю к контактам ПР, где были контакты реле. Далее это все подключается к ТТР (группе ТТР).
Красным показаны изменения.
Проверил по документации ТТР, ток в цепи управления 3-5 мА. Встроенный блок питания ПР заявлен на 100 мА. Должно хватить с запасом. Выбрал именно это ТТР т.к. в документации указано, что они как раз подходят для регулировки мощности ТЭН. Больше интересует, что за помехи могут возникнуть в сети, кому они могут мешать и как защититься от них? Спасибо Вложение 44566
подскажите по выбору автомата, нужно запитать:
ПЛК110-60 -2шт. (45ВА*2)
МУ110-32Р -1шт. (25ВА)
МВ110-8И -1шт. (6ВА)
МВ110-8А -4шт. (6ВА*4)
МВ110-8АС -7шт. (8ВА*7)
и того 201 ВА, на сколько понимаю для работы достаточно автомата -1А, не будет ли выбивать автомат при включении вводного автомата?
oldmaster
В реле "с контролем перехода через ноль" включение и выключение нагрузки происходит при околонулевом напряжении, т. е. в момент когда синусоида напряжения проходит ноль.Цитата:
Больше интересует, что за помехи могут возникнуть в сети, кому они могут мешать и как защититься от них?
В "аналоговых" реле коммутация нагрузки делается фазовым методом, т. е. момент коммутации может приходиться на любое амплитудное значение синусоиды. Вот именно это и создает импульсную помеху в сеть. Лечится либо установкой дросселей (как минимум), либо специальным фильтром, либо выделенной подачей питания (например с отдельного автомата с подстанции).
Аналоговый выход не сможет работать на 3 входа ТТР. Он может работать на сопротивление больше 2кОм (см. характеристики аналоговых выходов). Входное сопротивление у Вашего ТТР по паспортным данным 4кОма.
Конечно, можно поставить эмиттерный повторитель на выходе ПР200, можно поискать 3х фазный регулятор мощности со входом 0-10 Вольт, но лучше использовать дискретный выход с ШИМ.
Помехи, возникающие от фазового управления тиристорами могут влиять на показания датчиков температуры и дискретные входы ПР200.
Следует раздельно вести (в разных кабель-каналах) силовые и сигнальные цепи, особенно на длинных трассах.
Прошу подробнее, почему не сможет. Характеристики аналогового выхода изучил. Указано 2-10 кОм. Если 3 ТТР по 4 кОм соединить параллельно то должно получиться 1,3 кОм? Т.е. нужно еще добавить 1-2 кОм. Или здесь этот расчет сопротивления не работает? Почему?
Моих познаний и опыта сейчас не достаточно для ШИМ варианта. К тому же реле и ТТР заказаны, жду. И у них только релейные дискретные выходы. Аналоговые 0-10 В.
Относительно рекомендаций по прокладке, спасибо, обязательно учту. Могу как вариант использовать металлорукава. Один для датчиков, второй для силового кабеля ТЭН. Он же должен работать как экран? Расстояние от щита до грелки 15-20 метров.
oldmaster
Резистор в цепь не годится, ибо будет работать как делитель напряжения. Т. е. ТТР никогда не выйдет на полную мощность. Оптимальным будут следующие варианты:
1. Использовать еще один аналоговый выход (если он есть). Программно выход регулятор назначить не на один, а на два выхода в параллель. К одному выходу подключить одну ТТР, а к другому два.
3. Собрать самостоятельно эмиттерный повторитель. Схема очень простая, детали стоят копейки, и легко ищется в сети. Единственный маленький недостаток - Uвых будет равно Uвх минус 0.6 вольт. Т. е. потери 6 %. Но в данном случае это не критично.
Здравствуйте. Есть проект, в котором используется следующее оборудование:
Контроллер PLC110.30-M v2
Модули ввода: МВ110-32ДН 10шт.
Модули вывода: МУ110-32Р 5шт.
Плата входов реле контроля скорости (РКС) 1шт.
Модули подключены по интерфейсу RS-485, протокол ModBus RTU.
К RS-485-1 подключены 8 модулей ввода и 4 модуля вывода. К RS-485-2 подключены: плата дискретных входов, 2 модуля ввода и 1 модуль вывода.
На втором канале модуль вывода постоянно выдаёт ошибки. Плату входов отключал и убирал из конфигурации - изменений нет.
Пожалуйста, посмотрите проект. Что можно исправить?
Проблема решена настройкой параметров обмена RS-485
Благодарю за помощь!Цитата:
Отвечает Валенок:
Модули :
Для всех 32Р/ДН странный параметр rs.dL = 0..2
Для 32Р t.out = 3...10 (выходы упадут если нет связи.
ПЛК :
Про AT% - уже сказано
Минц.ПЛК зачем 15мс ? Начинайте от 1. После посмотрите в статистику
Для всех UMD :
max timeout = 20...30 //если не ответил за 30 - не ответит от слова вообще. Зачем еще ждать ?
Для 32ДН :
polling time = 300 //только потому что - конфигурация.
если какие 32ДН не являются критичными - увеличивать до приемлемого
для критичных - уменьшать по мере прояснения обстановки
Для 32Р :
work mode = both //по времени и изменению
polling time = смело 1000...2000 (если t.out = 0, то polling time можно хоть 5000)
Как вариант - программа большая, может банально не хватать времени на опрос. Попробуйте увеличить Polling Time на канале проблемного модуля. Либо поставить в Work mode метод by value cange.
И да, явная адресация в объявлениях переменных - частая причина проблем. Не фэншуйно это. Рекомендую перенести GenAlr, LastAddr1, LastError1, LastAddr2 и LastError2 (и прочие если есть) в конфигурацию ПЛК.