Разработав алгоритм управления ультрафиолетовой дезинфекционной установкой, необходимо реализовать его в программной среде и доработанный алгоритм загрузить в программируемый логический контроллер. Прежде чем перейти к программной реализации алгоритма подсистемы управления ультрафиолетовой дезинфекционной установкой, необходимо описать язык программирования, посредством которого реализуется данный алгоритм. При программировании промышленных логических контроллеров используется стандартный язык контактно-релейной логики или функциональных схем [1]. Разработанный алгоритм управления ультрафиолетовой дезинфекционной установкой реализован посредством релейной логики в программной среде RSLogix 17. Опишем состояние цепочки релейной логики для того, чтобы описать данный язык программирования. Контроллер анализирует инструкции релейной логики, исходя из состояния цепочки перед данной инструкцией (входного условия цепочки). На основе инструкции и входного условия цепочки контроллер устанавливает условие после инструкции (выходное условие цепочки), которое, в свою очередь, влияет на всякую последующую инструкцию. Если условие цепочки перед инструкцией – «истина», контроллер анализирует инструкцию и устанавливает выходное состояние цепочки на основе результатов ее выполнения. Если результатом инструкции является «истина», то выходное состояние цепочки – «истина», если же результатом инструкции является «ложь», то выходное состояние цепочки – «ложь». Также контроллер выполняет предварительное сканирование инструкций. Предварительное сканирование – это специальное сканирование всех процедур в контроллере. В процессе предварительного сканирования контроллер сканирует все главные процедуры и подпрограммы, но игнорирует переходы, при которых может быть пропущено выполнение инструкций. Контроллер выполняет все циклы и вызовы подпрограмм. Если какая-либо подпрограмма вызывается более одного раза, она выполняется при каждом вызове. Контроллер использует предварительное сканирование инструкций релейной логики для сброса не сохраняемого ввода/вывода и внутренних значений. При предварительном сканировании входные значения не являются текущими, а выходные данные не записываются. На рисунке 1.12 представлена структура релейной логики.
Рисунок 1.12 – Структура релейной логики
Перейдем к непосредственной программной реализации алгоритма управления подсистемой ультрафиолетовой дезинфекционной установки. На рисунке 1.13 представлена программная реализация алгоритма управления ультрафиолетовой дезинфекционной установкой.
Рисунок 1.13 – Программная реализация алгоритма управления ультрафиолетовой дезинфекционной установки
Рассмотрим инструкции и тэги, использованные при реализации данного алгоритма. В данном алгоритме использованы следующие инструкции:
Рассмотрим данные инструкции подробнее. Инструкция программно подсвечена зеленым цветом в случае установки «истины». Инструкция XIC проверяет, установлен ли бит данных. Пример данной инструкции представлен на рисунке 1.14.
Рисунок 1.14 – Программная реализация инструкции XIC.
Если установлен нулевой бит тэга данных PV_UV_AUTO_MAN, то это разрешает следующую по порядку инструкцию (выходное условие цепочки – «истина»). Если входное условие цепочки – «ложь», то выходное условие цепочки устанавливается на «ложь». Алгоритм данной инструкции представлен на рисунке 1.15.
Рисунок 1.15 – Алгоритм инструкции XIC.
Инструкция XIO проверяет, сброшен ли бит данных. Пример данной инструкции представлен на рисунке 1.16.
Рисунок 1.16 – Программная реализация инструкции XIO.
Если сброшен нулевой бит тэга данных PV_UV_AUTO_MAN, то это разрешает следующую по порядку инструкцию (выходное условие цепочки – «истина»). Если входное условие цепочки – «ложь», то выходное условие цепочки устанавливается на «ложь». Алгоритм данной инструкции представлен на рисунке 1.17.
Рисунок 1.17 – Алгоритм инструкции XIO.
Инструкция OTL устанавливает (фиксирует) бит данных в логическую единицу – «истина». Пример данной инструкции представлен на рисунке 1.18.
Рисунок 1.18 – Программная реализация инструкции OTL.
Когда инструкция OTL разрешена, она устанавливает нулевой бит тэга данных UV_ON в логическую единицу. Данный бит тэга использован для управления ультрафиолетовой дезинфекционной установкой и отображения ее текущего состояния. Этот бит остается установленным пока он не будет сброшен, как правило с помощью инструкции OUT. Инструкция OTU сбрасывает бит данных (снимает фиксацию) в логический нуль – «ложь». Пример данной инструкции представлен на рисунке 1.19.
Рисунок 1.19 – Программная реализация инструкции OUT.
Обращаясь к рисунку 1.13 разберем на основании тэгов данных и инструкций программную реализацию алгоритма управления ультрафиолетовой дезинфекционной установкой. Нулевой бит тэга данных PV_UV_AUTO_MAN определяет режим работы ультрафиолетовой дезинфекционной установки. Данный бит устанавливается в логическую единицу при переходе в автоматический режим, и устанавливается в логический нуль при переходе в ручной режим. Инструкция XIC и инструкция XIO проверяют данный бит. Если данный бит установлен в логическую единицу, что представлено на рисунке 1.20, тогда выходное значения инструкции XIC устанавливается в логическую единицу и происходит переход к следующей инструкции XIC, которая проверяет наличие потока воды на выходном расходомере FS7743.
Рисунок 1.20 – Программная реализация алгоритма в автоматическом режиме работы установки и при наличии потока воды на выходном расходомере.
Данному расходомеру соответствует тэг данных A_41_FS7743. Поскольку в нашем примере данный бит также установлен, то выходное значение данной инструкции устанавливается в «истина», и инструкция OTL устанавливает нулевой бит тэга данных UV_ON, таким образом, запустив ультрафиолетовую дезинфекционную установку. При отсутствии потока на выходном расходомере FS7743 произойдет переход к нижней части цепочки и инструкция OTU сбросит нулевой бит тэга данных UV_ON, таким образом, остановив ультрафиолетовую дезинфекционную установку. Данная цепочка представлена на рисунке 1.21.
Рисунок 1.21 – Программная реализация алгоритма в автоматическом режиме работы установки и при отсутствии потока воды на выходном расходомере.
При переходе данной подсистемы в ручной режим происходит переход на цепочку, представленную на рисунке 1.22.
Рисунок 1.22 – Программная реализация алгоритма в ручном режиме запуска установки.
Если нулевой бит тэга данных PV_UV_AUTO_MAN установлен в логический нуль, что соответствует ручному режиму работы установки, и определяется инструкцией XIO, то инструкция XIC определяет значение нулевого бита тэга данных PV_UV_ON. Данный бит тэга установлен в логическую единицу при поступлении команды запуска данной установки с HMI. Для отключения установки используется цепочка, представленная на рисунке 1.23.
Рисунок 1.23 – Программная реализация алгоритма в ручном режиме отключения установки.
Если нулевой бит тэга данных PV_UV_AUTO_MAN установлен в логический нуль, что соответствует ручному режиму работы установки, и определяется инструкцией XIO, то инструкция XIC определяет значение нулевого бита тэга данных PV_UV_OFF. Данный бит тэга установлен в логическую единицу при поступлении команды отключения данной установки с HMI.
Дата: 2019-03-05, просмотров: 263.