ПРОГРАММИРУЕМЫЙ ЛОГИЧЕСКИЙ КОНТРОЛЛЕР И СПОСОБ ЕГО СОБЫТИЙНО-УПРАВЛЯЕМОГО ПРОГРАММИРОВАНИЯ
PROGRAMMABLE LOGIC CONTROLLER AND METHOD OF ITS EVENT-DRIVEN PROGRAMMING

УРОВЕНЬ ТЕХНИКИ
Настоящее изобретение относится к программируемому логическому контроллеру и более конкретно относится к событийно-управляемому программируемому логическому контроллеру и способу событийно-управляемого программирования такового.
Программируемый логический контроллер (PLC) играет важную роль в области управления производством в связи с его гибкостью в программируемости пользователем. Способы программирования существующего программируемого логического контроллера и соответствующие пользовательские прикладные программы основываются на цикле сканирования. Цикл сканирования имеет несколько этапов, включающих в себя: актуализацию входного значения, исполнение пользовательского приложения и обновление выходного значения.
Однако способы программирования в соответствии с циклом сканирования имеют следующие недостатки:
Медленный отклик на событие. Пользователю необходимо обнаружить входное событие в прикладной программе, и отклик не может быть выведенным до окончания цикла сканирования.
Сложные пользовательские приложения, которые нелегко написать. Для программируемых логических контроллеров в соответствии с циклом сканирования пользовательское приложение отвечает за обнаружение и обработку событий.
Слабая читабельность пользовательского приложения, что делает его трудным для поддержки. Для программируемого логического контроллера в соответствии с циклом сканирования пользователю необходимо интегрировать процедуру обработки разных событий, таких как входное/выходное событие, диагностическое событие, системное событие и так далее, в одной программе, вследствие чего это пользовательское приложение является плохоструктурированным.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение предоставляет событийно-управляемый программируемый логический контроллер и способ событийно-управляемого программирования такового применительно к вышеприведенным недостаткам существующего программируемого логического контроллера в соответствии с циклом сканирования и способом программирования такового.
В соответствии с некоторым аспектом данного изобретения предоставлен способ событийно-управляемого программирования программируемого логического контроллера, в котором: регистрируют по меньшей мере одно подлежащее обнаружению событие; сохраняют по меньшей мере одну программную секцию обработки события, соответствующую по меньшей мере одному подлежащему обнаружению событию соответственно; обнаруживают возникновение по меньшей мере одного подлежащего обнаружению события; добавляют обнаруженное событие в очередь событий; извлекают событие из очереди событий; исполняют программную секцию обработки события, соответствующую извлеченному событию.
В соответствии вариантом осуществления настоящего изобретение это по меньшей мере одно подлежащее обнаружению событие может включать в себя событие, выбранное из по меньшей мере одного события, предопределенного пользователем.
В соответствии вариантом осуществления настоящего изобретения это по меньшей мере одно подлежащее обнаружению событие может включать в себя вводимое пользователем событие, настраиваемое пользователем.
В соответствии с вариантом осуществления настоящего изобретения это событие, настраиваемое пользователем, может включать в себя логическую комбинацию предопределенных событий.
В соответствии с вариантом осуществления настоящего изобретения, предопределенное событие может включать в себя событие ввода/вывода, событие передачи данных, диагностическое событие, событие системной ошибки, событие бездействия системы.
В соответствии с вариантом осуществления настоящего изобретения эта по меньшей мере одна программная секция обработки события может включать в себя программную секцию обработки предопределенного события.
В соответствии с вариантом осуществления настоящего изобретения эта по меньшей мере одна программная секция обработки события может включать в себя вводимую пользователем программную секцию обработки настраиваемого пользователем события.
Данный способ может дополнительно включать в себя замену соответствующей программной секции обработки предопределенного события программной секцией обработки настраиваемого пользователем события.
В соответствии с вариантом осуществления настоящего изобретения очередь событий может включать в себя множество очередей событий с разными уровнями приоритета, регистрация этого по меньшей мере одного подлежащего обнаружению события может дополнительно включать в себя регистрацию уровня приоритета подлежащего обнаружению события, добавление обнаруженного события в эту очередь событий может включать в себя добавление обнаруживаемого события в соответствующую очередь событий в соответствии с уровнем приоритета данного события, извлечение события из очереди событий может включать в себя преимущественное извлечение события из очереди событий с высоким уровнем приоритета.
В соответствии с вариантом осуществления настоящего изобретения добавление обнаруженного события в очередь событий может включать в себя отбрасывание обнаруженного события, если это событие уже имеется в этой очереди событий.
В соответствии с другим аспектом данного изобретения предоставлен программируемый логический контроллер, содержащий: очередь событий для сохранения подлежащее обработке событий; детектор событий для регистрации по меньшей мере одного подлежащего обнаружению события, обнаружения возникновения по меньшей мере одного подлежащего обнаружению события, и добавления обнаруженного события в очередь событий; программную память для хранения по меньшей мере одной программной секции обработки события, соответствующей по меньшей мере одному подлежащему обнаружению событию соответственно; диспетчер событий для извлечения событий из очереди событий; и обработчик событий для исполнения программной секции обработки события, соответствующей извлеченному событию.
В соответствии с вариантом осуществления настоящего изобретения это по меньшей мере одно подлежащее обнаружению событие может включать в себя событие, выбираемое пользователем из по меньшей мере одного предопределенного события.
В соответствии вариантом осуществления настоящего изобретения это по меньшей мере одно подлежащее обнаружению событие может включать в себя вводимое пользователем событие, настраиваемое пользователем.
В соответствии вариантом осуществления настоящего изобретения это событие, настраиваемое пользователем, может включать в себя логическую комбинацию предопределенных событий.
В соответствии с вариантом осуществления настоящего изобретения предопределенное событие может включать в себя событие ввода/вывода, событие передачи данных, диагностическое событие, событие системной ошибки, событие бездействия системы.
В соответствии с вариантом осуществления настоящего изобретения эта по меньшей мере одна программная секция обработки события может включать в себя программную секцию обработки предопределенного события.
В соответствии с вариантом осуществления настоящего изобретения эта по меньшей мере одна программная секция обработки события может включать в себя вводимую пользователем программную секцию обработки настраиваемого пользователем события.
В соответствии с вариантом осуществления настоящего изобретения соответствующая программная секция обработки предопределенного события может быть заменена программной секцией обработки, настраиваемого пользователем события в программной памяти.
В соответствии с вариантом осуществления настоящего изобретения очередь событий может включать в себя множество очередей событий с разными уровнями приоритета, детектор событий может регистрировать уровень приоритета подлежащего обнаружению события, и добавлять обнаруженное событие в соответствующую очередь событий в соответствии уровнем приоритета события, детектор событий может преимущественно извлекать событие из очереди событий с высоким уровнем приоритета.
В соответствии с вариантом осуществления настоящего изобретения детектор событий может отбрасывать обнаруженное событие, если это событие уже имеется в этой очереди событий.
В соответствии с данным изобретением способ программирования в соответствии с циклом сканирования заменен способом событийно-управляемого программирования в программируемом логическом контроллере, пользовательское приложение разделено на программные секции обработки событий с единичной функцией, сложность программирования пользовательского приложения и вероятность ошибки снижена, что приводит к хорошо структурированному пользовательскому приложению с легкой поддержкой. В то же время, поскольку обработка может быть выполнена своевременно относительно определенных событий, скорость отклика и производительность системы улучшаются.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более полного понимания настоящего изобретения здесь сделана ссылка на подробное описание примерного варианта осуществления во взаимосвязи с прилагаемыми чертежами. Следует ясно понимать, что примерный вариант осуществления является только описанным с целью иллюстрации и примера, в то время как настоящее изобретение не ограничивается этим. Сущность и объем настоящего изобретения ограничены конкретным содержанием прилагаемой формулы изобретения. Далее описано краткое описание чертежей, включающих в себя:
Фигура 1 является структурной схемой, иллюстрирующей способ событийно-управляемого программирования программируемого логического контроллера в соответствии с вариантом осуществления настоящего изобретения;
Фигура 2 является структурной схемой, иллюстрирующей способ событийно-управляемого программирования программируемого логического контроллера в соответствии с другим вариантом осуществления настоящего изобретения;
Фигура 3 является функциональной схемой, иллюстрирующей программируемый логический контроллер в соответствии с вариантом осуществления настоящего изобретения; и
Фигура 4 является функциональной схемой, иллюстрирующей программируемый логический контроллер в соответствии с другим вариантом осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Фигура 1 является структурной схемой, иллюстрирующей способ событийно-управляемого программирования программируемого логического контроллера в соответствии с вариантом осуществления настоящего изобретения.
Со ссылкой на Фигуру 1, на этапе S101, по меньшей мере одно обнаруживаемое событие регистрируют в программируемом логическом контроллере. В соответствии с вариантом осуществления, множество предопределенных событий, таких как событие ввода/вывода, событие передачи данных, диагностическое событие, событие системной ошибки, событие бездействия системы, и так далее, могут быть предопределены, таким образом, интересующее событие может быть выбрано в качестве подлежащего обнаружению события из этих предопределенных событий. Кроме того, в качестве дополнения к предопределенным событиям пользователь может также ввести событие, настраиваемое пользователем, в качестве подлежащего обнаружению события. Событие, настраиваемое пользователем, может быть логической комбинацией предопределенных событий. К примеру, при условии, что предопределенные события содержат: (E1) канал 1 ввода принимает данные; (E2) сетевой порт принимает сообщение; и (E3) система бездействует, то тогда следующие события, настраиваемые пользователем, могут быть заданы: E1 AND E3, а именно канал 1 ввода принимает данные и система бездействует; или E2 OR E3, а именно сетевой порт принимает сообщение или система бездействует. Однако настраиваемое пользователем событие по настоящему изобретению не ограничивается логической комбинацией предопределенных событий, оно может также быть задано пользователем в соответствии с реальными потребностями.
На этапе S103 соответствующую программную секцию обработки события сохраняют для каждого подлежащего обнаружению события в программируемом логическом контроллере. В соответствии вариантом осуществления несколько программных секций обработки предопределенного событий могут быть предопределены для обработки событий по умолчанию. Однако когда событие не имеет соответствующей программной секции обработки предопределенного события или требует специальной обработки, настраиваемая пользователем программная секция обработки события может быть введена. Когда пользователь вводит настраиваемую пользователем программную секцию обработки события для подлежащего обнаружению события, если соответствующая программная секция обработки предопределенного события существует, то тогда программная секция обработки предопределенного события может быть заменена введенной настраиваемой пользователем программной секцией обработки события.
На этапе S105 возникновение подлежащих обнаружению событий обнаруживают в программируемом логическом контроллере.
На этапе S107 обнаруженное событие добавляют в очередь событий программируемого логического контроллера. В соответствии с вариантом осуществления, если обнаруженное событие уже имеется в данной очереди событий, то тогда это событие может быть отброшено. Однако настоящее изобретение не ограничивается этим. В ином случае дублирующее событие также может быть записано в очередь событий.
На этапе S109 событие извлекают из очереди событий.
На этапе S111 исполняют программную секцию обработки события, соответствующую извлеченному событию, которая хранится в программируемом логическом контроллере.
Фигура 2 является структурной схемой, иллюстрирующей способ событийно-управляемого программирования программируемого логического контроллера в соответствии с другим вариантом осуществления настоящего изобретения. Разница между данным вариантом осуществления и вариантом осуществления на Фигуре 1 в основном состоит в том, что множество очередей событий с разными уровнями приоритета используются для управления очередью.
Ссылаясь на Фигуру 2, на этапе 201, по меньшей мере одно подлежащее обнаружению событие и его уровень приоритета регистрируют в программируемом логическом контроллере.
На этапе S203, соответствующую программную секцию обработки события для каждого обнаруживаемого события сохраняют в программируемом логическом контроллере.
На этапе S205, возникновение подлежащих обнаружению событий обнаруживают в программируемом логическом контроллере.
На этапе S207 обнаруженное событие добавляют в очередь событий в соответствии с его уровнем приоритета.
На этапе S209 событие извлекают из очереди событий в соответствии с уровнем приоритета, когда очередь событий с более высоким уровнем приоритета не пуста, событие преимущественно извлекают из очереди событий с более высоким уровнем приоритета. То есть очередь событий с наивысшим уровнем приоритета обрабатывается первой, затем обрабатываются события со вторым после наивысшего уровня приоритета, и так далее.
На этапе S211 программную секцию обработки события, хранящуюся в программируемом логическом контроллере, соответствующую извлеченному событию, исполняют.
Фигура 3 является функциональной схемой программируемого логического контроллера 100, основанного на варианте осуществления настоящего изобретения.
Со ссылкой на Фигуру 3, программируемый логический контроллер 100 содержит детектор 101 событий, программную память 103, диспетчер 105 событий, обработчик 107 событий и очередь событий, используемую для хранения обрабатываемых событий.
Детектор 101 событий регистрирует, по меньшей мере одно подлежащее обнаружению событие, обнаруживает возникновение подлежащего обнаружению события и добавляет обнаруженное событие в очередь событий. В соответствии вариантом осуществления событие, существующее в очереди событий, может быть отброшено или записано в двух экземплярах. В соответствии с вариантом осуществления обнаруживаемые события могут содержать предопределенные события и настраиваемые пользователем события, вводимые пользователем. Настраиваемое пользователем событие может быть логической комбинацией предопределенных событий или может быть задано самим пользователем в соответствии с фактическими потребностями.
Программная память 103 сохраняет программные секции обработки событий, соответствующие подлежащим обнаружению событиям соответственно. В соответствии с вариантом осуществления программные секции обработки событий могут содержать программные секции обработки предопределенных событий и программную секцию обработки настраиваемого пользователем события, а соответствующая программная секция обработки предопределенного события может быть заменена программной секцией обработки настраиваемого пользователем события.
Диспетчер 105 событий извлекает событие из очереди событий и отправляет это событие обработчику 107 событий.
Обработчик 107 событий принимает событие, отправленное диспетчером 105 событий, и исполняет программную секцию обработки события, хранящуюся в программной памяти 103, соответствующую этому событию.
Фигура 4 является функциональной схемой программируемого логического контроллера 200, основанного на другом варианте осуществления настоящего изобретения. Разница между этим вариантом осуществления и вариантом осуществления на Фигуре 3 состоит в том, что множество очередей событий с разными уровнями приоритета используются для управления очередью.
Ссылаясь на Фигуру 4, программируемый логический контроллер 200 содержит детектор 201 событий, программную память 203, диспетчер 205 событий, обработчик 207 событий, и множество очередей событий с неодинаковыми уровнями приоритета, используемых для хранения подлежащего обработке события (к примеру, очередь событий 1 уровня приоритета, очередь событий 2 уровня приоритета, и очередь событий 3 уровня приоритета).
Детектор 201 событий регистрирует, по меньшей мере одно событие и его уровень приоритета обнаруживает возникновение подлежащего обнаружению события и добавляет обнаруженное событие в очередь событий в соответствии с уровнем приоритета данного события.
Программная память 203 сохраняет программные секции обработки событий, соответствующие обнаруживаемым событиям соответственно.
Диспетчер 205 событий извлекает событие из очереди событий в соответствии с уровнем приоритета и отправляет это событие обработчику 207 событий, когда очередь событий с более высоким приоритетом не пуста, событие преимущественно извлекают из очереди событий с более высоким уровнем приоритета. А именно очередь событий с наивысшим уровнем приоритета обрабатывается первой, затем обрабатывается событие со вторым наивысшим уровнем приоритета, и так далее.
Обработчик 207 событий принимает событие, отправленное диспетчером 205 событий, и исполняет программную секцию обработки события, хранящуюся в программной памяти 203, соответствующую данному событию.
Хотя данное изобретение было показано и описано со ссылкой на определенные варианты его осуществления, специалистам в данной области техники будет понятно, что различные изменения и модификации могут быть сделаны в нем, не покидая фактический объем изобретения.