Сегодня я делюсь практической статьей, которая поможет вам понять, как выглядит идеальная программа ПЛК, а также приведу стандарты программирования ПЛК и рекомендации для практической работы.
Требования к проектированию идеальной программы ПЛК:
Полная программа ПЛК – это не просто запуск системы; для этого также требуются полные комментарии, хорошо-структурированная архитектура, хорошая масштабируемость, комплексная система сигнализации и защиты, а также пред-система моделирования.
1. Простота
Сделайте программу ПЛК максимально простой. Простота означает использование стандартизированной программы и простых инструкций. В широком смысле это предполагает оптимизацию структуры программы и упрощение программы с помощью инструкций управления потоком. Точнее, это означает замену отдельных-инструкций по функциям более мощными и обращение внимания на порядок инструкций.
2. Читабельность
Разработанная программа должна быть легко читаемой. Это не только помогает программисту лучше понять программу и облегчает отладку, но также облегчает понимание ее другими и поддержку пользователями. При необходимости оно также должно способствовать распространению программ.
Чтобы обеспечить хорошую читаемость, дизайн программы должен быть максимально понятным. Обратите внимание на иерархию и модульность, даже используя объектно-ориентированные методы проектирования. Максимально используйте стандартные методы проектирования.
Если языки программирования используются в особых случаях, в большинстве случаев следует использовать лестничные диаграммы для облегчения чтения. Распределение ввода-вывода должно быть систематическим для облегчения запоминания и понимания. При необходимости добавляйте комментарии. Использование внутренних компонентов также должно быть систематическим; избегайте их бессистемного использования.
Читабельность следует учитывать с самого начала разработки программы. Полностью этого добиться непросто, поскольку в ходе отладки программы добавление или удаление инструкций и изменение использования внутренних компонентов могут сделать изначально понятную программу несколько беспорядочной. Поэтому допускайте внесение корректировок во время отладки на этапе проектирования, а затем наведите порядок после отладки. Это приведет к более высокому качеству программы.
Комментарии к программе должны включать как минимум следующее:
А. Системные комментарии: Правообладатель и назначение всей программы; Б. Комментарии к блоку: Основная цель и автор блока; C. Комментарии к сегменту: Цель сегмента кода; D. Комментарии к переменным: важность очевидна-, включая комментарии ввода-вывода и комментарии промежуточных переменных. Что касается вопросов конфиденциальности, их следует решать с помощью алгоритма шифрования или блочного шифрования программы, а не путем сокращения комментариев.
3. Корректность
Программа ПЛК должна быть корректной и проверена в ходе реальной работы, чтобы доказать ее правильную работу. Это самое фундаментальное требование к программе ПЛК; если этого не достичь, как бы хороши ни были другие аспекты, они бесполезны.
Для обеспечения корректности программы необходимо точно использовать инструкции и внутренние устройства. Точное использование инструкций связано с точным их пониманием; поэтому необходимо тщательно понимать значение и условия использования инструкций. При необходимости можно написать небольшие программы для проверки каких-то непонятных инструкций.
Для одной и той же инструкции из-за различий в производственных партиях или серийных моделях ПЛК некоторые детали инструкций могут отличаться. Следует внимательно ознакомиться с руководством по программированию.
Также важно правильное использование внутренних устройств. Например, некоторые ПЛК имеют защиту-от отключения питания, а другие нет. Крайне важно убедиться, что используются устройства, требующие защиты-отключения питания, и наоборот.
Короче говоря, наиболее фундаментальным требованием к программам ПЛК является точное использование инструкций и правильное использование внутренних компонентов для обеспечения правильного выполнения запрограммированной программы.
В качестве простого примера ПЛК Siemens требуют переменных с функцией хранения в качестве промежуточных переменных для нарастающих и спадающих фронтов, таких как точки M-или точки DB-. Использование временной переменной FC может вызвать проблемы.
4. Надежность
Программы должны быть не только корректными, но и надежными. Надежность отражает стабильность программы ПЛК, которая также является основным требованием.
Некоторые программы ПЛК работают правильно в нормальных условиях эксплуатации или во время разрешенных операций, но не работают должным образом в ненормальных условиях эксплуатации (например, временное отключение электроэнергии с последующим быстрым восстановлением подачи электроэнергии) или после незаконных операций (например, нажатие кнопок в неправильном порядке или одновременное нажатие нескольких кнопок). Такие программы ненадежны, нестабильны или плохо спроектированы.
Хорошие программы ПЛК могут выявлять ненормальные условия работы и легко интегрировать их с нормальными условиями, позволяя программе адаптироваться к различным ситуациям. Хорошая программа ПЛК может отклонять незаконные операции, не оставляя никаких «следов», допуская только допустимые операции.
Блокировка — распространенный метод отклонения незаконных операций; релейные схемы часто используют этот метод, и ПЛК также могут унаследовать этот подход.
5. Простота модификации
Программа должна легко модифицироваться. Одной из характеристик ПЛК является его удобство и гибкость адаптации к различным ситуациям. Это достигается путем модификации или перепроектирования программы.
Перепроектирование программы используется, когда необходимо изменить требования приложения к процессу ПЛК. Мало того, что программа переписана, но также необходимо перераспределить ввод-вывод. В большинстве случаев переписывать программу не требуется; незначительных модификаций достаточно. Для этого необходимо, чтобы программу можно было легко модифицировать.
Простота модификации также означает гибкость, требующую лишь незначительных изменений для достижения цели изменения параметров или изменения действий.
6. Расширяемость
Многие программы могут быть предварительно-запрограммированы перед развертыванием на сайте, но может потребоваться добавить на-сайт дополнительные программы. Чтобы избежать нарушения общей структуры системы, в каждой функциональной области необходимо зарезервировать достаточно места для резервного оборудования. Программное обеспечение должно быть спроектировано с учетом ручного, автоматического и полуавтоматического управления, и пространство должно быть выделено соответствующим образом.
7. Комплексная система сигнализации.
Системы ПЛК часто используются в промышленных условиях, где любая авария может привести к большим или малым потерям. Чтобы обеспечить предотвращение несчастных случаев или минимизировать потери во время аварии, необходимо уделять особое внимание функциям сигнализации и защиты ПЛК. Поэтому это выделяется как важный компонент системы.
8. Программное моделирование
Чтобы гарантировать ход отладки-на месте или для демонстрации клиентам, перед развертыванием часто требуется полностью автоматическое моделирование программы. Это требует добавления раздела программы моделирования к существующей программе, которая отключается после нормальной-работы на объекте. Чтобы программа могла выполнять моделирование, необходимо выполнить следующие действия:
(1) Преобразование фактических точек ввода-вывода ПЛК в промежуточные переменные или переменные блока данных;
(2) Напишите программы моделирования для каждой единицы оборудования в соответствии с требованиями процесса.
Хорошей программой ПЛК можно считать ту, которая отвечает вышеуказанным требованиям.
Характеристики программирования ПЛК
1. Выберите подходящую модель ПЛК и количество точек ввода-вывода. Выбирайте специальные функциональные модули для конкретных функциональных требований.
2. Ознакомьтесь с выбранными инструкциями по программированию ПЛК и программным обеспечением для компиляции.
3. Спланируйте программные компоненты, включая внутренние реле, реле фиксации, регистры данных, таймеры и счетчики.
4. Спланируйте программу, обычно соблюдая последовательность устранения неисправностей, обработки неисправностей, ручной обработки, автоматической обработки и обработки выходных данных. Более крупные проекты или оборудование следует разделить на функциональные блоки, такие как лифты, передаточные устройства и устройства подъема/поворота на автоматизированной производственной линии. Они должны быть запрограммированы сегментами и блоками в соответствии с приведенной выше структурой модулей.
5. Добавляйте краткие комментарии к сегментам перед каждой сегментированной или блочной-программой, объясняющие ее функции. При необходимости укажите соответствующую последовательность операций. Порядок сегментированных или блочных-программ в общей программе обычно должен соответствовать последовательности выполнения процесса для удобства чтения.
6. Перед разработкой программы необходимо абстрагироваться от оборудования. Общие факторы, такие как остановка, аварийная остановка, перегрузка, превышение-предела, тайм-аут, световая завеса безопасности, остановка при столкновении и дверной выключатель, должны быть извлечены и помещены в цепь запуска-или запуска-основного управления и цепи блокировки. Это служит основной предпосылкой всей структуры программы. Исходя из этого, программа делится на две основные функциональные области: автоматическую и ручную.
7. Общие факторы в области ручных функций структуры программы, такие как ручное управление и факторы, угрожающие оборудованию и личной безопасности, должны быть извлечены и помещены в основную схему ручного управления и блокировки для защиты, экранирования и сигнализации для ручного управления.
8. Общие факторы в области автоматических функций структуры программы, такие как автоматическая работа, факторы превышения -предела и тайм-аута, должны быть извлечены и помещены в схему автоматического основного управления и блокировки для защиты, экранирования и сигнализации оборудования, находящегося под автоматическим управлением. Общий принцип заключается в строгом ограничении входа оборудования и одновременном свободном ограничении выхода оборудования для обеспечения безопасности.
9. В программе должна быть предусмотрена функция общего сброса, позволяющая быстро и легко восстановить нормальную работу оборудования в случае неисправности. Общий сброс должен полностью учитывать безопасность оборудования и персонала во время процесса сброса.
10. При переходе из автоматического режима в ручной режим программа должна очистить выходы и промежуточные состояния автоматического режима. Особенно при использовании инструкции SET в автоматическом режиме ее необходимо сбросить с помощью инструкции RESET в ручном режиме.
11. Двойные выходы строго запрещены при программировании; то есть один и тот же выходной оператор или одна и та же выходная катушка появляются в программе два или более раз. Для одной и той же точки выхода в разных режимах используйте промежуточное реле для передачи и, наконец, объедините их в одну точку выхода.
12. При использовании сенсорного экрана область управления и область состояния, общие для сенсорного экрана и ПЛК, не должны использоваться для другого функционального программирования.
13. Перед использованием любого специального модуля ПЛК проверьте, занимают ли его область управления и область состояния рабочие слова. Если да, то не программируйте эти рабочие слова для других целей.
14. Входы, выходы ПЛК, промежуточные реле, таймеры, счетчики и регистры данных должны быть помечены китайскими иероглифами. Входы и выходы также должны включать имена компонентов и номера тегов. Соответствующие точки входа обычно по умолчанию имеют размыкающие контакты, подключенные к внешним переключателям. Для входов, требующих нормально замкнутых контактов, это необходимо указать в комментариях. Все комментарии должны быть четкими и недвусмысленными, избегать недоразумений и сводить к минимуму использование общих терминов.
15. После завершения отладки проекта окончательную версию программы необходимо сохранить. Имя сохраненного файла должно включать номер проекта, автора, дату и номер версии.
16. Что касается шифрования программы: Пароль для зашифрованной программы должен храниться в специальном файле с четким указанием имени пользователя, пароля и разрешений. Этот файл следует передать как минимум двум людям, чтобы узнать пароль и предотвратить недоступность программы из-за потери пароля.
Рекомендации по программированию
1. Когда ПЛК и главный компьютер (или сенсорный экран) образуют систему мониторинга, на экране часто необходимо отображать режимы управления, такие как «ручной» и «автоматический» (как правило, из нескольких режимов может быть только один). В программе можно использовать инструкцию «MOV». Например, когда выбран «ручной», константа 1 перемещается в регистр VB10; когда выбран «автоматический», 2 перемещается в тот же регистр VB10. Проверив данные в реестре, можно определить режим управления системой. Преимущество этого подхода заключается в простоте понимания и отсутствии необходимости в сложных процедурах, таких как блокировка.
2. Когда программа включает в себя управление аналоговым сигналом, и если считанный аналоговый сигнал практически не содержит ошибок, можно использовать временную фильтрацию для задержки ввода. Если считанные данные имеют большую ошибку, необходимы другие методы фильтрации, например усреднение. Дополнительную информацию см. в соответствующей документации.
3. Если во время отладки программы условие выполняется, но выходная катушка не активируется, проверьте, находится ли этот раздел вашей программы в таких операторах, как «JUMP go to». Другая возможность состоит в том, что после прерывания программы условие выполняется, но вывода нет; обычно это означает, что данный раздел программы не сканируется.
4. В программах последовательного управления, т.е. когда одно действие завершено и инициировано следующее действие, режим управления +10+10 очень удобен. Идея заключается в следующем: во время инициализации регистр устанавливается в 0. После запуска системы оно увеличивается на 10, доводя значение регистра до 10. При значении регистра 10 можно выполнить первое действие. После первого действия регистр снова увеличивается на 10, доводя значение регистра до 20, что позволяет выполнить второе действие. После второго действия оно снова увеличивается на 10, доводя значение регистра до 30. Таким образом, проверив значение в регистре, можно определить желаемое действие. Когда необходимо действие прыжка, приращение можно изменить с 10 на 20, 30 и т. д., в зависимости от конкретных требований.
Зачем увеличивать на 10 вместо 1? Потому что после увеличения на 10, если необходимо вставить сегмент, его можно вставить в любой из 10 доступных слотов.
5. При разработке программы, если возникает ошибка,-связанная с процессом (не контролируемая системой управления), лучше всего поддерживать явление неисправности и обеспечивать визуальные и звуковые сигналы тревоги до тех пор, пока оператор не перезагрузит систему, чтобы они знали о неисправности. В противном случае, если система остановится, другие могут предположить, что проблема в программе. Эти моменты обычно следует учитывать при проектировании новой системы.
6. Часто вызываемые подпрограммы можно превратить в подмодули для частого вызова.
7. Поскольку для выполнения каждого шага рабочего цикла производственной машины требуется определенное количество времени, и это время имеет определенные ограничения, таймер может быть запущен одновременно с началом контролируемого шага. Установка времени таймера должна быть на 20–30 % больше обычной продолжительности действия. Выходной сигнал таймера можно использовать для сигнализации или устройств автоматического отключения. Когда время шага превышает заданное время, достигая соответствующего заданного времени таймера, и до начала следующего шага, таймер выдает сигнал неисправности. Этот сигнал останавливает нормальный рабочий цикл и инициирует процедуру сигнализации или отключения; это то, что мы обычно называем защитой от -цикла.
8. Некоторые выключатели обнаружения безопасности (например, кнопки аварийной остановки, световые завесы безопасности, концевые выключатели и т. д.) должны использовать нормально закрытые (НЗ) входы.
9. В целях безопасности и энергосбережения выходы должны быть рассчитаны на активацию только при необходимости и остановку после завершения действия, а не на непрерывную работу до тех пор, пока не потребуется остановка.
10. Принцип действия приводов должен быть таким: лучше оставаться на месте, чем беспорядочно двигаться.
11. Управление оборудованием-отдельным агрегатом. Каждый агрегат должен иметь функцию ручного/автоматического переключения, а также функцию запуска/остановки во время ручного управления. При переходе с автоматического на ручной режим работы оборудование не должно останавливаться; при переходе с ручного режима на автоматический запуск/остановка оборудования зависит от автоматической программы.
12. Каждую единицу оборудования (насос, вентилятор и другое крупное оборудование) необходимо заменять через 24 часа работы, при этом должна вестись совокупная запись времени работы, если только последовательность запуска/остановки не установлена главным компьютером; в противном случае оператор должен установить его вручную.





