Inquiry
Form loading...
Структура программы и характеристики нескольких распространенных ПЛК Siemens

Новости

Структура программы и характеристики нескольких распространенных ПЛК Siemens

2023-12-08
1. Программная структура некоторых зарубежных малых ПЛК Пользовательская программа этих ПЛК состоит из главной программы, подпрограммы и программы прерываний. В каждом цикле сканирования ЦП один раз вызывает основную программу. Основная программа может вызывать подпрограмму, а небольшая система управления может иметь только основную программу. Программа прерываний используется для быстрого реагирования на события прерывания. Когда происходит событие прерывания, ЦП прекращает выполнение программы или задачи, обрабатываемой в это время, и выполняет программу прерывания, написанную пользователем. После выполнения прерванной программы продолжайте выполнение приостановленной программы или задачи. Их подпрограммы и программы прерываний не имеют локальных переменных, а их подпрограммы не имеют входных и выходных параметров. 2. Структура программы Siemens S7-200. Ввод/вывод образа процесса (I/Q), память переменных V, бит внутренней памяти M, таймер T, счетчик C и т. д. являются глобальными переменными. Программная организационная единица (POU) S7-200 включает в себя главную программу, подпрограмму и программу прерываний. Каждый POU имеет свою собственную 64-байтовую локальную переменную, которую можно использовать только в его POU. Напротив, глобальные переменные могут использоваться в каждом POU. Ниже приведены локальные переменные, которые может использовать подпрограмма: 1) TEMP (временная переменная) — переменная, временно хранящаяся в локальной области данных. Определенная временная переменная используется только при выполнении POU. После выполнения POU значение временной переменной не будет сохранено. 2) IN — входной параметр, предоставляемый вызывающим его POU. 3) OUT — выходной параметр, возвращаемый вызывающему его POU (результат выполнения подпрограммы). 4)IN_OUT is input_ Начальное значение выходного параметра передается в подпрограмму вызывающим ее POU, а результат выполнения подпрограммы возвращается в вызывающий ее POU с той же переменной. В локальных переменных основной программы и программы обработки прерываний имеются только временные переменные TEMP. Подпрограмма с входными и выходными параметрами и локальными переменными легко реализуется структурным программированием, что особенно полезно для производителей, выпускающих подобное оборудование или производственные линии в течение длительного времени. Программисты этих производителей написали большое количество общих подпрограмм для каждого компонента или технологической функции оборудования. Даже если вы не знаете внутреннего кода подпрограммы, зная функцию подпрограммы и значение входных и выходных параметров, вы можете быстро «собрать» программу управления, отвечающую требованиям разных пользователей, посредством вызов между программами. Это похоже на использование цифровых интегральных микросхем для формирования сложных цифровых схем. Если подпрограмма не имеет входных и выходных параметров, между ней и вызывающей ее программой нет четкого интерфейса, поэтому реализовать структурное программирование сложно. Если подпрограмма не имеет локальных переменных, она может обмениваться данными с вызывающей ее программой только через глобальные переменные, и внутри подпрограммы можно использовать только глобальные переменные. При переносе подпрограмм и программ прерываний в другие проекты необходимо переупорядочить используемые ими глобальные переменные, чтобы исключить возникновение конфликтов адресов. Когда программа очень сложная и в ней много подпрограмм и программ прерываний, рабочая нагрузка такого рода переназначения адресов очень велика. Если подпрограмма и программа обработки прерываний имеют локальные переменные и они используют только локальные переменные вместо глобальных, поскольку нет конфликта адресов с другими POU, подпрограмму можно пересадить в другие проекты без каких-либо изменений. 3. Структура программы Siemens S7-300/400. S7-300/400 делит подпрограммы на функцию (или функцию) и функциональный блок. Функции S7-300/400 в основном такие же, как и у S7-200. У них есть входные, выходные параметры и временные переменные. Возвращаемое значение в локальных данных функции на самом деле является выходным параметром. У них нет специального места для хранения. После завершения функции данные во временных переменных не сохранятся. Вы можете использовать глобальные переменные для сохранения данных, которые необходимо сохранить после выполнения функции, но это повлияет на переносимость функции. Функциональный блок представляет собой программный блок, написанный пользователем, со своей собственной выделенной областью хранения (т. е. блоком фоновых данных). Входные и выходные параметры, а также статические переменные функционального блока хранятся в указанном фоновом блоке данных, а временные переменные хранятся в локальном стеке данных. Каждый раз при вызове функционального блока необходимо указывать фоновый блок данных. После выполнения функционального блока данные в фоновом блоке данных не будут потеряны, но данные в локальном стеке данных не будут сохранены. Функциональный блок использует концепцию инкапсуляции, аналогичную C++, которая инкапсулирует программу и данные вместе и имеет хорошую переносимость. Общий блок данных S7-300/400 может использоваться всеми логическими блоками. 4. Структура программы IEC61131-3. IEC61131-3 — это стандарт языка программирования ПЛК. IEC61131-3 — первый и единственный в мире стандарт языка программирования в области промышленного управления. МЭК 61131-3 имеет три типа POU: программу, функциональный блок и функцию. Функция представляет собой POU с несколькими входными параметрами и одним выходным параметром (возвращаемым значением). Имя возвращаемого значения совпадает с именем функции. Необходимо определить тип данных возвращаемого значения. Регулировка прибора Функции с одинаковым входным значением всегда возвращают один и тот же результат. Функции могут вызывать другие функции, но не функциональные блоки или программы. К локальным переменным, которые могут быть определены функциями, относятся VAR и VAR_INPUT。 Функциональный блок — это POU с несколькими параметрами ввода/вывода и внутренними блоками хранения. Значение выходного параметра функционального блока связано со значением его внутренней памяти. Функциональный блок может вызывать другие функции Блок или функция, но программу вызвать невозможно. Перед вызовом функционального блока вы должны объявить экземпляр функционального блока для каждого вызова в POU, где функциональный блок должен быть вызван. Операционная система будет выделять область хранения, выделенную функциональному блоку для каждого вызова. (Аналогично блоку фоновых данных S7-300/400). Функция не требует создания экземпляра при ее вызове, поскольку у нее нет внутренней области хранения. Поведение и назначение программы аналогичны функциональному блоку. Программа имеет входные и выходные параметры и может иметь внутреннюю память. Программы обычно содержат вызовы функций и функциональных блоков. IEC61131-3 определяет несколько стандартных функций и функциональных блоков. 5. Разница между структурой программы S7-300/400 и IEC61131-3. 1) Функция S7-300/400 может иметь несколько выходных параметров, и возвращаемое значение также является выходным параметром. Функция IEC61131-3 имеет только одно возвращаемое значение. 2) Специальная область памяти для хранения локальных переменных в функциональном блоке IEC61131-3 выделяется при объявлении экземпляра функционального блока. Он непрозрачен для пользователей, и другие POU не могут напрямую получить доступ к области хранения. Локальные переменные (за исключением временных переменных) функционального блока S7-300/400 хранятся в его фоновом блоке данных. Другие POU могут получать доступ к переменным в фоновом блоке данных. Если вам нужно вызвать один и тот же функциональный блок несколько раз для управления одним и тем же типом управляемого объекта, вам нужно указать фоновый блок данных для каждого вызова, но в этих фоновых блоках данных мало переменных, поэтому существует большое количество фоновые блоки данных в проекте. Для уменьшения количества блоков фоновых данных можно использовать несколько блоков фоновых данных. Однако необходимо добавить функциональный блок для управления несколькими фонами. 3) Локальные переменные функционального блока S7-300/400 включают временные переменные и статические переменные. Внутренняя переменная Var функционального блока IEC61131-3 эквивалентна статической переменной S7-300/400. 4) S7-300/400 делит область данных на блоки данных для использования. Размер блока данных зависит от типа данных и количества переменных, определенных в блоке данных. В IEC61131-3 нет понятия блока данных.