Отделяйте сигнал от переменной
Датчик относится к физическому миру, входной канал принимает его сигнал, а программа работает с определёнными значениями данных. Символическое имя переменной помогает понять назначение, но само по себе не доказывает, что выбран правильный адрес или тип. Например, для условного задания зададим две логические переменные: Запрос и Разрешение. Каждая принимает значение истина или ложь. Индикатор должен быть активен только при истинности обеих. Это учебная логическая зависимость, а не проект управления машиной. В реальном оборудовании нужно учитывать электрическую схему, назначение сигналов и требования безопасности.
Цикл использует образ процесса
При обычном автоматическом обновлении ввода и вывода S7-1200 передаёт значения образа выходов на физические выходы, считывает входы в образ процесса и выполняет циклическую пользовательскую программу. Затем последовательность повторяется. Образ процесса представляет значения в памяти, с которыми работают соответствующие обращения программы. Изменение физического входа не означает, что вся логика мгновенно увидела новое значение. Важен момент чтения. Прямой доступ к периферии и обработчики событий имеют особенности, поэтому простую схему цикла нельзя распространять на каждую инструкцию без проверки документации. Для начала полезно явно указать: пример использует обычную циклическую обработку.
OB1 задаёт место выполнения логики
Main, обычно OB1, относится к блокам циклического выполнения. Из него могут вызываться другие блоки. Контроллер способен выполнять несколько циклических организационных блоков в установленном порядке; кроме того, события могут прерывать циклическую обработку согласно приоритетам. Даже внутри простого задания порядок важен. Если одну переменную результата записывают в разных местах, более поздняя запись может изменить предыдущую. Поэтому при чтении программы недостаточно найти одну знакомую строку. Нужно проверить, кто ещё присваивает значение и когда. Комментарий полезен только тогда, когда совпадает с фактической логикой.
Проверяйте сценарии до подключения
Для двух логических входов существует четыре сочетания значений. Запишите ожидаемый результат для каждого и сравните с условием задания. У индикатора, который требует одновременно запроса и разрешения, активным будет только сочетание двух истинных значений. Такой разбор обнаруживает путаницу между логическими И и ИЛИ. Бумажная проверка и симуляция помогают исследовать алгоритм, но не подтверждают безопасность установки. Они не воспроизводят автоматически неисправности проводки, реальные нагрузки и все особенности оборудования. Нельзя переносить учебный индикатор на двигатель или защитную функцию без инженерной разработки. Версию среды, модель CPU и поддерживаемые возможности проверяют по актуальной документации.
Попробуйте на практике
Проследите три условных цикла на бумаге, не соединяя компьютер с ПЛК или исполнительными устройствами.
- Определите входы Запрос и Разрешение и результат Индикатор; все три имеют логический тип.
- Составьте четыре сочетания входов и ожидаемое значение результата для операции И.
- Выберите три последовательных набора входных значений и отметьте момент их условного чтения.
- Для каждого цикла отдельно запишите считанные данные и вычисленный образ выхода.
- Добавьте воображаемое изменение входа после чтения и объясните, почему текущий расчёт не обязан его учитывать.
Как проверить результат. Вы различаете физический сигнал, считанное значение и вычисленный результат. Все четыре сочетания проверены, а пример не выдан за безопасную схему управления оборудованием.
Частые вопросы
OB1 выполняется только один раз после запуска?
Нет. Он относится к циклической программе и обычно вызывается повторно, пока CPU находится в режиме RUN. Для запуска существуют отдельные механизмы.
Если симуляция прошла, можно запускать реальную машину?
Нет. Требуются отдельные проверки конфигурации, подключения, защитных функций и поведения оборудования квалифицированными специалистами.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.