Автор: demiurg1978 4.01.2015 - 13:25
Здравствуйте! Я новичок в программировании ПЛК. Думаю, Alpha\Alpha 2 не считается .
Работаю электронщиком. Ремонт, модернизация, разработка блоков управления пром. обоудования. Сборка, монтаж шкафов управления. Электромонтажные работы. Работал с простенькими ПЛК Mitsubushi Alpha\Alpha 2 . Программирование микронтроллеров AVR. Асм, последние пару лет Си.
С Mitsubishi FX и подобными ПЛК периодически сталкивался постольку-постольку. Проверить питание, входные, выходные сигналы.
Так как свободного времени мало, периодически пытался знакомиться с ПЛК. Дальше этого дело не заходило по некоторым причинам: составление релейно-контактных схем. А я их всегда ненавидел. FBD - наелся с Alpha\Alpha 2. Если требуется внести изменения, приходится перелопачивать большой кусок схемы. Структурный текст как-то излишне усложнен. На Си мне гораздо проще и быстрее написать программу. Тем более, что я приверженец автоматного программирования (поисковик, конечные автоматы).
В новогодние праздники выдалось немного свободного времени, почитал давно уже скачанные материалы, попробовал составить проектик. Хотел бы попросить вас посмотреть проект, на комплименты не напрашиваюсь , посмотрите, выскажите свое мнение.
Алгоритм следующий:
Есть 4 кнопки. Стоп, Наладка, Автомат, Пуск.
Стоп - мягкий стоп. При нажатии цикл завершается и станок останавливается.
Наладка - При нажатии на кнопку работают соответствующие исполнительные механизмы.
При нажатии на кнопку автомат станок входит в этот режим, цикл начинается после нажатия на кнопку Пуск.
Цикл:
1 - Закрывается матрица, и срабатывает нож.
2 - Когда матрица закрывается, срабатывает датчик KD1.
3 - После срабатывания датчика KD1 включается клапан нагрев и таймер нагрева.
4 - Таймер отключается, отключается клапан нагрева.
Есть вопросы по таймерам. Скажем, поставить таймер с жестко заданным временем, вопросов нет. А вот чтобы таймер отсчитал заданное время, тут у меня возникли затруднения. Есть следующие вопросы:
Есть переменная Dxxx. Я правильно понимаю, что таймер начинает считать, если в переменной есть какое-то значение, отличное от 0? Если в переменной 0, каково состояние таймера? Заданное значение должно быть в своей переменной, перед включением таймера значение нужно скопировать в "счетчик" таймера? В общем, хотел бы понять, как работают таймеры, также хотел бы попросить у вас пример таймеров с задаваемым значением времени для ПЛК. И в каких значениях должно быть задаваемое время. Так как в LD пишем: T0 K10 (1 c).
Заранее благодарен.
1.zip ( 60.34 килобайт )
: 23
Автор: ivgtrk 5.01.2015 - 18:01
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
... FBD - наелся с Alpha\Alpha 2.
И тем не менее это наиболее простой и наглядный подход к программированию, особенно с позиции "зрительного" понимания программы.
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
Если требуется внести изменения, приходится перелопачивать большой кусок схемы.
Далеко не факт! Все зависит от того, насколько грамотно и оптимально написана программа.
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
Структурный текст как-то излишне усложнен. На Си мне гораздо проще и быстрее написать программу. Тем более, что я приверженец автоматного программирования (поисковик, конечные автоматы).
И действительно, режим написания "структурный текст" хоть и якобы введен в угоду "пишущим" программистам, но все же невероятно слабоват и одновременно не всегда понятен. Однако, хочу заверить, что для выполнения абсолютного большинства задач с применением ПЛК совершенно не требуется прибегать к подобному типу программирования. Это как несколько дорог, ведущих, в итоге, к одной цели.
Я как и Вы, много лет собирал свои устройства на AVR-ах и подобных, писал программы преимущественно на Си. Но в данном процессе, как мы понимаем - заключены следующие стадии: программирование чипа, разработка и создание печатных плат в качестве готового устройства, а так же, как правило, весьма трудоемкая их отладка, особенно в части электрической схемы... Посему, если перенести этот вопрос в плоскость ПЛК, имеем: сразу готовое к монтажу/эксплуатации изделие после стадии его программирования/наладки/настройки. Значительное ускорение процесса с минимальными трудо-затратами при внедрении. В некоторых отношениях, наиболее гибкое представление вариантов решения тех или иных задач в плане программирования, в отличие от микросхем.
Вообщем, время не стоит на месте - наиболее прагматично работать с ПЛК, чем шить микросхемы... А если еще требуется, к примеру, вывести какие-либо цифры на ЖК-панельку, плюс кнопки управления и пр. Я Вас уверяю, пока вы будете все это программировать, а в последствии паять-собирать - за это время я сдам три-четыре таких работающих установки на ПЛК и HMI устройствах. Все мы приверженцы т.н. "старой школы", однако не всегда полезно придерживаться своих амбиций, якобы мы знаем только это и посему только так работаем... Так или иначе, все же все вынуждены будут переходить на новые методы работы, изучать что-то новое и т.д. Да и заказчику выгоднее работать с теми, кто сделает работу за неделю, а не за месяц... Примерно так.
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
Есть переменная Dxxx. Я правильно понимаю, что таймер начинает считать, если в переменной есть какое-то значение, отличное от 0? Если в переменной 0, каково состояние таймера?
Если в переменной "0", то выход таймера включиться сразу после того, как условие его включения станет истинным. Т.е. при значении счета "0" - таймера как бы нет.
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
И в каких значениях должно быть задаваемое время. Так как в LD пишем: T0 K10 (1 c).
Значение таймера задается исходя из его шага отсчета; используемые Вами таймеры и их шаги времени подробно расписаны в руководстве. К примеру, в большинстве типе плк FX таймеры T0-T199 имеют шаг в 100мс, что означает, что при записи "1" в переменную - таймер отсчитает 1*100мс = 100мс. Для того, чтобы задать время включения, допустим 2,5 сек, в переменную необходимо записать значение 25 ( 25 отсчетов по 100мс = 2500мс = 2,5сек).
Цитата(demiurg1978 @ 4.01.2015 - 17:25)
... также хотел бы попросить у вас пример таймеров с задаваемым значением времени для ПЛК.
С удовольствием бы с Вами поделился примером, но я не располагаю пакетом GX Developer. Я работаю в GX
IEC Developer, структура файлов проекта которого, как и принцип написания программ несколько отличается от пакета, используемого Вами.
Автор: demiurg1978 6.01.2015 - 22:26
Цитата(ivgtrk @ 5.01.2015 - 20:01)
Да и заказчику выгоднее работать с теми, кто сделает работу за неделю, а не за месяц... Примерно так.
Именно поэтому решил форсировать переход на ПЛК.
Цитата(ivgtrk @ 5.01.2015 - 20:01)
С удовольствием бы с Вами поделился примером, но я не располагаю пакетом GX Developer. Я работаю в GX IEC Developer, структура файлов проекта которого, как и принцип написания программ несколько отличается от пакета, используемого Вами.
Есть этот пакет. Жду от вас пример.
Автор: ivgtrk 12.01.2015 - 19:50
Пример https://yadi.sk/d/z1GZ6syudvVa5
Написан для FX1N, в 7.01 версии IEC Dev.