Первая программа будет содержать основные команды контроллера ПЛК Xinje, такие как: нормально разомкнутый контакт, нормально замкнутый контакт, выходная катушка, инструкции управления таймером и счетчиком, приращения значений в регистре данных, нарастающий и спадающий фронт сигнал и операции SET/RESET.

Обсудим по очереди показанную выше программу.
В начале к переменным, используемым в программе, были добавлены комментарии. В инструменте Редактор комментариев можно добавлять комментарии ко всем используемым в программе входам, выходам, вспомогательным переменным (маркерам), таймерам, счетчикам и т. д. Используемые в программе переменные будут отображаться синим цветом. Переменные, не используемые в программе, будут отображаться черным цветом.
Первая строка программы содержит пример комментария. Комментарии в программе повышают читабельность и облегчают понимание работы программы. Номера строк в программе нумеруются на основе списка инструкций IL.
В строке 0 программы состояние входа X0 напрямую копируется в состояние выхода Y0 . Это означает, что при достижении потенциала 24В постоянного тока на контакте Х0 контроллера активируется выход Y0 , на котором появится напряжение 24В постоянного тока.
В строке 4 программы состояние входа X1 будет скопировано на выход Y1 , если выполняется условие, что маркер M10 будет находиться в низком состоянии (логический 0).
В строке 10 программы передний фронт маркера M11 использовался для включения выхода Y2 контроллера. Нарастающий фронт активирует выход только один раз при изменении логического состояния маркера с низкого (логический 0) на высокий (логическая 1).
В строке 14 программы задний фронт маркера M12 использовался для выключения выхода контроллера Y2 . Спадающий фронт выключит выход только один раз при изменении логического состояния маркера с высокого (логическая 1) на низкий (логический 0).
В строке 18 программы использовались специальные маркеры М8000 и М8013 . Эти маркеры являются одним из многих специальных регистров, которые помогают вам писать программы. Маркер M8000 означает сигнал Always True, который всегда будет высоким. Маркер M8013 представляет собой тактовый сигнал с периодом 1 секунду, т.е. до одной секунды маркер становится низким, а затем высоким в течение одной секунды. Этот процесс повторяется бесконечно. В конце строки есть функция увеличения значения в регистре D20 . По умолчанию это значение равно 0. Работа этой строки программы отражает ситуацию, при которой каждую секунду значение переменной в регистре D20 увеличивается на 1 .
Строка 24 программы увеличивает значение счетчика C0 . Значение в числителе увеличивается на 1 каждый раз, когда маркер M13 меняет свое состояние с низкого на высокое. Значение К10 означает, что счетчик в сумме даст число 10, записанное в десятичной системе. Также возможно объявлять константы в двоичной (бинарной) и шестнадцатеричной (шестнадцатеричной) записи. Если значение счетчика больше или равно 10, то на выходе счетчика C0 будет высокий уровень.
Строка 29 программы запускает обратный отсчет таймера Т0 в случае высокого состояния маркера М14 . T0 — это таймер без накопления с постоянной времени 100 мс. Отсутствие накопления означает потерю времени обратного отсчета и высокого состояния выхода в случае потери высокого уровня сигнала на входе таймера. Значение K20 означает, что сумма таймера должна составлять до 2 секунд. Это связано с тем, что значение постоянной времени таймера умножается на 20. Результат умножения составляет 2000 мс или 2 с.Через две секунды выходной сигнал таймера T0 изменится с низкого на высокий.
В строке 36 программы изменение состояния маркера М15 с низкого на высокое приведет к сбросу выхода счетчика С0 и его текущего значения.
Конвертировать из LAD в IL
Программа на языке LAD может быть преобразована в язык IL (список инструкций) с помощью инструкции Show Instruction List .

Структура и организация
Важным моментом при написании программ является их структура и организация. В программном обеспечении XCPPro есть возможность группировать части программ в разделы, что повышает удобочитаемость организации в программе. Операторы, позволяющие группировать части программы, — это GROUP и GROUPE . Первый открывает раздел программы, второй закрывает открытый раздел. Также можно назвать отдельные разделы программы, добавив комментарий перед оператором GROUP .


После применения группировки читабельность программы значительно повысилась. Кроме того, в дереве проекта можно увидеть четкое разделение на разделы. Имена разделов могут быть свободно заданы посредством комментария. Использование группировки программ чрезвычайно важно и полезно при выполнении больших программ. Окончательная секционная программа IL показана ниже.
