Tag Archives: STEP 7

Массивы в Step 7

Массив объединяет группу данных одного типа (элементарного или составного), образуя одно целое. Вы можете создавать массив, состоящий из массивов. Определяя массив, Вы должны сделать следующее:

  • Присвоить массиву имя.
  • Описать массив с помощью ключевого слова ARRAY.
  • Определить размер массива, используя индекс. Вы определяете номер первого и последнего элемента по отдельным измерениям массива (максимум 6 измерений). Индекс вводят в квадратных скобках, разделяя измерения посредством запятой, а номера первого и последнего элемента измерения – двумя точками. Например, следующий индекс определяет, трехмерный массив: [1..5,–2..3,30..32]
  • Вы указываете тип данных, которые должны содержаться в массиве.

Пример 1

Следующий рисунок показывает массив с тремя целыми числами. Вы обращаетесь к данным, хранимым в массиве, используя индекс. Индекс – это номер в квадратных скобках. Например, вторым целым числом является Op_temp[2]».

Индекс может быть любым целым числом (от -32768 до 32767), включая отрицательные значения. Массив на следующем рисунке можно было бы определить также как ARRAY [-1 .. 1]. Тогда первым целым числом было бы Op_temp[-1], вторым целым числом – Op_temp[0] и третьим целым числом – Op_temp[1].

 

Пример 2

Массив может также описывать многомерную группу типов данных. Следующий рисунок показывает двумерный массив целых чисел.

 

Вы обращаетесь к данным в многомерном массиве, используя индекс. В этом примере первым целым числом является Op_temp[1,1]», третьим – Op_temp[1,3]», четвертым – Op_temp[2,1]» и шестым – Op_temp [2,3]».

Вы можете определять в массиве до 6 измерений (6 индексов). Например, Вы могли бы определить переменную Op_temp как шестимерный массив следующим образом:

ARRAY [1..3,1..2,1..3,1..4,1..3,1..4]

Индексом первого элемента в этом массиве является [1,1,1,1,1,1]. Индексом последнего элемента является [3,2,3,4,3,4].

Создание массивов

Вы определяете массивы, объявляя данные в DB или в разделе описания переменных. Когда Вы объявляете массив, Вы указываете ключевое слово (ARRAY), а затем размер в квадратных скобках следующим образом:

[значение нижней границы.. значение верхней границы]

В многомерном массиве Вы указываете также дополнительные верхние и нижние границы и разделяете отдельные измерения посредством запятой.

Следующий рисунок показывает описание для создания массива размерности 2 x 3.

 

Ввод начальных значений для массива

Создавая массивы, Вы можете каждому элементу массива присваивать начальное значение. STEP 7 предоставляет два метода ввода начальных значений:

  1. Ввод индивидуальных значений: для каждого элемента массива Вы указываете значение, допустимое для типа данных этого массива. Значения указываются в порядке следования элементов: [1,1]. Помните, что отдельные элементы должны отделяться друг от друга запятой.
  2. Задание коэффициента повторения: при наличии последовательных элементов, имеющих одинаковое начальное значение, Вы можете указать число таких элементов (коэффициент повторения) и начальное значение для этих элементов. Формат ввода коэффициента повторения имеет вид: x (y), где x – коэффициент повторения, а y – повторяемое значение.

Если Вы используете массив, описанный на рисунке, показанном выше, то Вы можете задать начальное значение для всех шести элементов следующим образом: 17, 23, -45, 556, 3342, 0. Вы могли бы также установить начальное значение всех шести элементов равным 10, указав 6(10). Вы могли бы задать определенные значения для первых двух элементов, а затем установить остальные 4 элемента в 0, указав следующее: 17, 23, 4(0).

Доступ к данным в массиве

Вы обращаетесь к данным в массиве через индекс определенного элемента в массиве. Индекс используется в сочетании с символьным именем.

Пример: Если массив, описанный на рисунке выше, начинается в первом байте DB20 (motor), Вы обращаетесь ко второму элементу этого массива по следующему адресу:

Motor.Heat_2x3[1,2].

Использование массивов в качестве параметров

Вы можете передавать массивы как параметры. Если параметр описан в разделе описания переменных как ARRAY, то Вы должны передать весь массив (а не отдельные элементы). Однако параметру может присваиваться элемент массива, когда Вы вызываете блок, если элемент массива соответствует типу данных параметра.

Если Вы используете массивы как параметры, то не требуется, чтобы эти массивы имели такое же имя (для них даже не нужно имени). Однако оба массива (и формальный параметр, и фактический параметр) должны иметь одинаковую структуру. Например, массив размерности 2 x 3, состоящий из целых чисел, может передаваться как параметр только тогда, когда формальный параметр блока определен как массив размерности 2 x 3, состоящий из целых чисел, и фактический параметр, предоставляемый операцией вызова, тоже является массивом размерности 2 x 3, состоящим из целых чисел.

Мой блог находят по следующим фразам

Языки программирования Step7

Язык программирования Ladder Logic (LAD)

Графический язык программирования Ladder Logic (LAD) основан на представлении коммутационных схем. Элементы коммутационной схемы, такие как нормально открытые контакты и нормально замкнутые контакты, группируются в сегменты. Один или несколько сегментов образуют раздел кодов логического блока.

Создание программ в нем выполняется в редакторе пошагового ввода.

 пример сегментов в LAD

 Язык программирования. Функциональный план (FBD)

Язык программирования Функциональный план (FBD) использует для представления логики графические логические символы, известные из булевой алгебры. Сложные функции, такие как математические, также могут быть представлены непосредственно в соединении с логическими блоками.

Пример сегмента в FBD

 Язык программирования. Список команд (STL)

Представление языка программирования Список команд (STL) – это текстовый язык, подобный машинному коду. Каждая команда соответствует шагу работы CPU при обработке программы. Несколько команд могут быть связаны друг с другом, образуя сегменты.

Пример сегментов в Списке команд

 Язык программирования Список команд включен в стандартный пакет программного обеспечения STEP 7. Вы можете редактировать блоки S7 в этом представлении языка с помощью редакторов пошагового ввода или создавать свою программу с помощью редактора, работающего в режиме свободного редактирования в исходном файле на STL, а затем компилировать ее в блоки.

 Язык программирования S7 SCL

Язык программирования SCL (Structured Control Language [Структурированный язык управления]), доступный как дополнительный пакет, − это текстовый язык высокого уровня, определение которого в целом соответствует стандарту Международной электротехнической комиссии IEC 1131-3. Этот паскалеобразный язык благодаря своим командам высокого уровня упрощает в сравнении с STL программирование циклов и условных переходов. Поэтому SCL пригоден для расчетов, включая формулы, сложные оптимизационные алгоритмы или управление большими объемами данных.

 Создание программ на S7 SCL производится в режиме свободного редактирования в исходном файле.

Пример:

FUNCTION_BLOCK FB20

VAR_INPUT

ENDVAL: INT;

END_VAR

VAR_IN_OUT

IQ1 : REAL;

END_VAR

VAR

INDEX: INT;

END_VAR

BEGIN

CONTROL:=FALSE;

FOR INDEX:= 1 TO ENDVALUE DO

IQ1:= IQ1 * 2;

IF IQ1 >10000 THEN

CONTROL = TRUE

END_IF

END_FOR;

END_FUNCTION_BLOCK

Язык программирования S7 Graph (последовательное управление)

Графический язык программирования S7 Graph, доступный в виде дополнительного пакета, дает возможность программирования устройств последовательного управления. Это включает в себя создание последовательности шагов, определение содержания каждого шага и определение переходов. Вы программируете содержание шагов на специальном языке программирования (похожем на список команд) и вводите переходы в редакторе цепных логических схем (модернизированная версия языка КОР).

S7 Graph очень ясно представляет сложные последовательности и делает программирование и поиск неисправностей более эффективными.

Пример последовательного управления в S7 Graph

 Создаваемые блоки

С помощью редактора S7 Graph программируется функциональный блок, который содержит генератор последовательности шагов. Соответствующий экземплярный блок данных содержит данные для этого генератора, например, параметры FB, условия для шагов и переходов. Вы можете обеспечить автоматическое создание этого экземплярного блока данных в редакторе S7 Graph.

Исходный файл

Из функционального блока, созданного в S7 Graph, может быть сгенерирован текстовый исходный файл, который может интерпретироваться панелями оператора или текстовыми дисплеями интерфейса с оператором для отображения генератора последовательности шагов.

Язык программирования S7 HiGraph (граф состояний)

Графический язык программирования S7 HiGraph, доступный в качестве дополнительного пакета, позволяет программировать ряд блоков в вашей программе как графы состояний. Это разделяет вашу установку на отдельные функциональные агрегаты, каждый из которых может принимать различные состояния. Для изменения состояний определяются переходы. Вы описываете действия, поставленные в соответствие состояниям, и условия для переходов между состояниями на языке, похожем на список команд.

Вы создаете граф для каждого функционального агрегата, который описывает поведение этого агрегата. Графы для установки объединяются в группы графов. Для синхронизации функциональных агрегатов между графами может производиться обмен сообщениями. Ясное представление переходов между состояниями функционального агрегата делает возможным систематическое программирование и облегчает поиск ошибок. В отличие от S7 Graph, в S7 HiGraph в каждый момент времени активно только одно состояние (в S7 Graph: «шаг»). На следующем рисунке показано, как создавать графы для функциональных агрегатов (пример).

 

 Группа графов хранится в исходном файле HiGraph в папке «Source Files [Исходные файлы]» под программой S7. Затем исходный файл компилируется в блоки S7 для программы пользователя.

Синтаксис и формальные параметры проверяются на последнем элементе графа (при закрытии рабочего окна). Адреса и символы проверяются при компиляции исходного файла.

Язык программирования S7 CFC

Дополнительный пакет программного обеспечения CFC (Continuous Function Chart [Схема непрерывных функций]) – это язык программирования, используемый для графического связывания сложных функций.

Язык программирования S7 CFC используется для связывания существующих функций. Вам нет необходимости программировать самим многие стандартные функции, вместо этого Вы можете использовать библиотеки, содержащие стандартные блоки (например, для логических, математических функций, функций управления и обработки данных). Для использования CFC Вам не нужны детальные знания в области программирования или специальные знания о программном управлении, и Вы можете сосредоточиться на технологии, используемой в вашей отрасли промышленности.

Созданная программа хранится в виде схем CFC. Они находятся в папке «Charts [Схемы]» под программой S7. Эти схемы затем компилируются для формирования блоков S7 для программы пользователя. Возможно, Вы сами захотите создать подлежащие соединению блоки, в этом случае Вы программируете их для SIMATIC S7 с помощью одного из языков программирования S7, а для SIMATIC М7 – с помощью С/С++.

Мой блог находят по следующим фразам