Tag Archives: siemens

Счетчик часов работы Step7

Краткое описание

Данная программа-пример служит для того, чтобы определять длительность работы привода (тормоза, автоматы, и т.д.). Предпосылкой к этому является то, что при работающем приводе на вход E0.0 подается сигнал 24В, а при стоящем двигателе напряжение отсутствует.

Появление сигнала запускает счет времени, а при отсутствии сигнала счет времени прерывается пока сигнал не появится снова. Число сосчитанных часов заносится в слово данных VW0, минуты в слово данных VW2, а секунды ы слово данных VW4.

 

Структура программы

 

 

Описание программы

Цикл программы начинается с опроса состояния входа E0.0. Если логическое состояние ‘1’, то вызывается Подпрограмма 1. В Подпрограмме 1 таймер T5 (задержка включения с запоминанием) устанавливается на одну секунду. По прошествии этой секунды устанавливается бит таймера ‘T5’, а значение слова меркеров MW4 для значения секунд увеличивается на 1. Для того чтобы при этом при следующем цикле таймер снова мог быть запущен, бит таймера ‘T5’ сбрасывается.

Если меркер секунд достигает значения 60, то меркер минут MW2 повышается на 1, а меркер секунд MW4 снова сбрасывается в ноль. (Знак ‘>‘ служит здесь для повышения надежности).

Если меркер минут достигает значения 60, то он сбрасывается в ноль, а слово данных VW0, работающее как память для прошедших часов, увеличивается на 1. Кроме того меркер минут MW2 копируется в слово данных VW2 для текущего значения минут, а меркер секунд MW4 в слово данных VW4 для текущего значения секунд. На этом работа подпрограммы завершается.

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

Размер программы составляет 41 слово.

 

Основная программа

// TITEL= СЧЕТЧИК ЧАСОВ РАБОТЫ

LD E0.0 // Время работы

// входа E0.0 будет

// измерено

CALL 1

MOVB VB5, AB0// Выдача теста

MEND // Конец программы

 

Подпрограмма

SBR 1 // Начало подпрограммы

// измерений

LD SM0.0 // Установка начала стека

TONR T5,10 // Задание времени

// тацмера: 100мсек *

// 10 = 1 сек

LD T5 // По прошествии

// одной секунды

INCW VW4 // меркер такта

// секунд

// инкрементируется

R T5,1 // Сброс бита таймера

LDW>= VW4,60 // Через 60 сек

INCW VW2 // инкрементируется

// меркер минут

MOVW 0, VW4 // Меркер секунд

// сбрасывается

LDW>= VW2,60 // Через 60 минут

INCW VW0 // значение часов в VW0

// инкрементируется

MOVW 0, VW2 // Меркер минут

// сбрасывается

RET // Конец подпрограммы

 

 

Сименс импорт в CoDeSys

В подменю «Проект» «Сименс импорт», вы найдете команды, которые позволяют импортировать компоненты (POU) и переменные из файлов Siemens STEP5/7.

Команда «Импорт SEQ файла» позволяет  импортировать глобальные переменные из символьных файлов STEP5. Эта команда выполняется перед командой «Импорт проекта S5» для создания удобочитаемых идентификаторов при импортировании компонентов. Две эти команды позволяют импортировать компоненты из файлов STEP5 в открытый проект CoDeSys. Вы можете оставить компоненты на языке STEP5 IL или конвертировать их в МЭК языки.

Мы рекомендуем, проводить импортирование в пустой проект CoDeSys. Обязательно включите библиотеку standard.lib, иначе вы не сможете импортировать таймеры.

Импорт из символьных файлов  SEQ

SEQ это обычный формат символьных файлов STEP5. Символьные определения считываются из файлов *. seq. Каждое определение включает абсолютный адрес S5 элемента программы (вход, выход, память, и т.д.), соответствующий идентификатор, а также может содержать комментарии. Это текстовый файл, каждое определение начинается с новой строки. Поля определения отделены пробелами. Каждый комментарий начинается с точки с запятой.

Определения из SEQ файла будут переведены в глобальные переменные в формате МЭК 61131-3, включая символьное имя, адрес и комментарий (если есть). Адрес будет приведен к требованиям МЭК 61131-3 (знак процента, и т.д.). Так как S5 имена могут содержать не разрешенные МЭК символы, они будут изменены, где это необходимо. Недействительные знаки будут заменены символом подчеркивания. Если потребуется больше чем одно подчеркивание, каждый последующий знак будет заменен допустимым символом (например, «0»). Если имя изменено в процессе преобразования, исходное имя будет добавлено в виде комментария. Исходные SEQ комментарии также импортируются. Может быть создано несколько модулей определения глобальных переменных. Каждый блок включает не более 64КБ текста.

Описанный SEQ формат используется в Siemens STEP5-PG, в большинстве версий Siemens STEP7-300/400 и ACCON-PG от DELTALOGIC. Формат поддерживается в STEP7-SEQ файлах версии 3.x или старше. Формат файлов STEP7 версии 2.x не поддерживается. Вместо разделительных табуляций он содержит символические имена фиксированной длины.

Для начала, вы указываете необходимый SEQ файл в стандартном диалоге Windows и запускаете процесс импортирования. В течение этого процесса могут возникать ошибки. Это может случиться, если разные STEP5/7 идентификаторы преобразуются в одинаковые МЭК идентификаторы. Например, два STEP5 идентификата «A!» И «A?» будут конвертированы в «A_». В этом случае возникнет следующее сообщение: «Повторное определение идентификатора A_». Измените одну из переменных.

Ни при каких других обстоятельствах не стоит изменять список глобальных переменных. Если идентификаторы содержат адреса, допустимые в Siemens ПЛК, но несуществующие в вашем контроллере, не изменяйте их пока, даже если Вы получаете тысячу сообщений ошибках при компиляции. Сохранить исходные адреса важно для правильного импортирования компонентов.

Если проект, в который вы импортируете уже, содержит декларацию для глобальной переменной x с прямым адресом (например, «%MX4.0») то может случиться, что импорт из SEQ содержит переменную с тем же самым адресом. Это допускается в МЭК 61131-3, но возможно не запланировано пользователем. Никаких сообщений об ошибке не будет, но ваша программа может функционировать неверно. Чтобы избежать этой проблемы, лучше импортировать в пустой проект или в проект, в котором еще нет никаких абсолютных адресов.

После импортирования SEQ можно переходить к импортированию программных компонентов  STEP5/7. Вы можете также определить входы-выходы через конфигурацию ПЛК, это не требуется при импортировании, но позволяет своевременно обнаружить ошибки идентификаторов.

 

Импорт из файла проекта S5

Компоненты (POU) читаются из файла программы Siemens S5 (*.s5d). Исходным является MC5 код исполняемый S5 SPS. В целом, MC5 код соответствует знакомым программистам инструкциям STEP5 IL (без символьных имен). Кроме того, S5D включает комментарии из исходного текста STEP5. Поскольку S5D файл содержит абсолютные адреса без символических имен, CoDeSys отыскивает соответствующие символические имена, определенные в проекте. Если таковые отсутствуют, абсолютный адрес остается без изменений. Именно поэтому, символьный файл SEQ должен быть обработан до S5 файла.

Для начала, вы указываете необходимый S5D файл в стандартном диалоге Windows. В следующем диалоговом окне вы должны просмотреть список POU и выбрать необходимые. Наиболее простой путь — выбрать все. Здесь же вы решаете оставлять компоненты в STEP5 IL либо конвертировать их в IL, LD или FBD.

Везде где это возможно, CoDeSys будет отыскивать и включать в код символические имена. Так для инструкции «U M12.0» он возьмет имя переменной расположенной по адресу M12.0. Будет использовано первое объявление в проекте. В результате переменная будет импортирована как, например «U-Name» вместо «U M12.0».

Некоторые дополнительные глобальные объявления будут выполнены в процессе импорта. Например, экземпляр функционального блока R_TRIG будет добавлен при необходимости переключаемого по фронту входа.

    Конвертирование языка S5 в МЭК C 61131-3

    При конвертировании STEP5 в МЭК языки, вы должны знать, что некоторые части вашего проекта не могут быть автоматически преобразованы. Для кода, который не может быть конвертирован в МЭК 61131-3, будет дано сообщение ошибке и критическая часть оригинального STEP5 IL будет вставлена как комментарий в МЭК POU. В этом случае вы должны проконтролировать проблему и поправить текст вручную. Не конвертируются системные команды, специфичные для конкретного CPU. Базовую часть команд STEP5 можно преобразовать в МЭК нажатием клавиши, даже в случае если при этом меняется смысл кода.

    Базовый список команд, которые конвертируются в МЭК 61131-3, содержит все команды, преобразуемые в LD или FBD в системе программирования STEP5 и также команды, допустимые в программных блоках STEP5-PB. Кроме того, общие для всех S5 CPU команды функциональных блоков (например, абсолютные и условные переходы, командах сдвига, и т.д.).

    Единственное ограничение связано с переустанавливаемыми таймерами STEP5, которые не имеют прямых аналогов в МЭК 61131-3.

    Конвертируемые команды:

    U, UN, O, ON, S, R, =  с операндами: I (входы), O (выходы), M (память), S (S память), D (блоки данных)

    U, UN, O, ON ON с операндами: T (таймер), C (счетчик)

    S, R R с операндами: C

    SU, RU, P, PN с операндами: E, A, M, D

    O, O(, U(, )

    L, T со следующим диапазоном операндов: E, A, M, D, T, C, P (Periphery) и размером операндов: B (byte), W (word), D (double word), L (left byte), R (right byte)

    L L со следующими форматами констант: DH, KB, KF, KH, KM, KT, KZ, KY, KG, KC

    SI, SE, SA SA с операндами: T

    ZV, ZR с операндами: C

    +, -, X, : с операндами: F (фикс. запятая), G (плав. запятая)

    +, — с операндами: D (32 бит фикс. запятая)

    !=, ><, >, <, >=, <= с операндами: F, D, G

    ADD с операндами: BF, KF, DH

    SPA, SPB с операндами: PB, FB (с большинством типов параметров), SB

    A, AX с операндами: DB, DX

    BE, BEA, BEB

    BLD, NOP, ***

    UW, OW, XOW

    KEW, KZW, KZD

    SLW, SRW, SLD, RRD, RLD

    SPA=, SPB=

    SPZ=, SPN=, SPP=, SPM=

    TAK

    D, I

    Большинство основных операторов

    Не конвертируемые команды:

    U, UN, O, ON, S, R, =  с битовыми операндами: T0.0, C0.0 (таймер и счетчик)

    L, T с диапазоном операндов: Q (расширенная периферия)

    LC с операндами: T, C

    SV, SS, R, FR FR с операндами: T

    FR с операндами: C

    Формальные оператора старта сброса и остановки таймеров

    Все команды с диапазоном операндов BA, BB, BS, BT (данные ОС).

    SPA, SPB с некоторыми операндами: OB

    BA, BAB с операндами: FX

    E, EX with the following operands: DB, DX

    STP, STS, STW

    DEF, DED, DUF, DUD

    SVW, SVD

    SPO=, SPS=, SPR

    AS, AF, AFS, AFF, BAS, BAF

    ENT

    SES, SEF

    B с операндами: DW, MW, BS

    LIR, TIR, LDI, TDI, TNW, TXB, TXW

    MAS, MAB, MSA, MSB, MBA, MBS

    MBR, ABR

    LRW, LRD, TRW, TRD

    TSG

    LB, TB, LW, TW с операндами: GB, GW, GD, CB, CW, CD

    ACR, TSC

    BI

    SIM, LIM

    Если вы внимательно посмотрите на не конвертируемые команды, то обнаружите что это дополнительные команды, которые специфичны для некоторых CPU. Из основных команд не конвертируются: BCD таймер или счетчик значений (LC T, LC C), таймер типов SV и SS, и переустанавливаемый таймер.

    Блоки данных:

    Блоки данных STEP5 преобразуются в POU имеющие объявления, но не содержащие кода.

    Некоторые типовые проблемы импорта STEP5, требующие ручной правки:

    1. Значения времени в переменных word

    В STEP5 значения времени могут размещаться в любом слове памяти (word) или блока данных. В МЭК 61131-3, переменные или константы TIME не совместимы с WORD адресацией. Отсутствие явного указания типа времени, может приводить к ошибочным последовательностям команд при импорте. При обнаружении некорректного использования таких переменных, вы уведете сообщение «Incompatible Types: Cannot convert WORD to TIME.» либо «Incompatible Types: Cannot convert TIME to WORD.» В этом случае нужно изменить объявление переменной WORD в TIME.

    2. . Сложности с блоками данных

    В МЭК 61131-3 отсутствуют блоки данных (DB) и нет прямого аналога этой концепции. В STEP5 DB применяются для размещения переменных (по словам, как в области памяти), допускают массивы (B DW), указатели (B MW100 A DB 0) или объединения (доступ как к байту, слову или двойному слову). Конвертирование STEP5 DB проходит успешно,  только если их применение упорядочено. При доступе к переменным блока данных, необходимо знать, какой блок сейчас открыт (команда A DB х, где х = номер блока). Это можно определить, если в начале POU стоит команда A DB и номер блока передается в качестве параметра. Если же команда A DB отсутствует, то нет возможности определить какой блок использовать и соответственно конвертировать такой POU нельзя. Об этой проблеме вас оповестит сообщение «No open data block (insert an A DB)». При конвертировании будут получаться обращения к несуществующим переменным, например «ErrorDW0». Вы должны будете вручную поставить обращение к необходимому DB (заменить «ErrorDW0» на «DB10.DW0»). Конечно, проще заранее явно расставить в самих STEP5 POU необходимые команды A DB.

    В случае пропуска команды A BD, существует опасность, что при преобразовании сформируется обращение к ошибочному DB.

    3. Косвенное обращение к блокам данных

    В STEP5 вы можете создавать подобие нескольких экземпляров блоков данных и косвенно (через индекс) выбирать нужный:

    L KF +5

    T MW 44

    B MW 44

    A DB 0

    В конце этой последовательности будет открыт блок данных DB5 (в целом, DB номер которого записан по адресу %MW44). Такой прием не распознается при конвертировании. Поэтому ручная правка будет необходима в итоговом проекте:

    Прежде всего, все экземпляры DB должны быть импортированы (как DB5, DB6 и т.д) в стандартные IL, LD или FBD (по вашему желанию) POU. Каждый такой POU не имеет кода и содержит только объявления. Создайте теперь новый тип данных (например DBType) и перенесите в него объявления данных из соответствующего конвертированного  POU. Затем создайте соответствующие глобальные объявления:

    VAR_GLOBAL

    DB5, DB6 : DBType;

    END_VAR

    Теперь вы можете удалить ненужные более POU (бывшие DBs).

    Доступ к нужному DB блоку теперь можно получить путем передачи программному компоненту дополнительного параметра VAR_INPUT типа DBType. Вы можете использовать  один программный  компонент с разными блоками данных путем задания соответствующего актуального параметра при его вызове.

    4. В S5 существуют встроенные функциональные блоки. Пользователю доступен только их интерфейс, программный код реализован не в STEP5 (или MC5) или защищен специальным механизмом.  Результатом импорта таких блоков являются пустые POU, имеющие только объявление интерфейса. Программный код вам придется написать самостоятельно

    5. Помимо этого могут встретится блоки (OB) реализованные в виде ассемблерных вставок (805xx например). Преимущественно таким способом реализуется ПИД регулятор (OB251),  использующий для приема параметров и хранения локальных переменных отдельный блок данных. Естественно, код регулятора не попадет в импортированный проект. Для понимания работы таких блоков используйте документацию по данному процессору.

    6. Конфигурационные блоки (такие как DB1 [S5-95U], DX0, и DX2), применяемые иногда в S5 CPU, конвертируются в бессмысленные МЭК компоненты. Чтобы понять смысл их содержимого используйте руководство по программированию данного CPU. В крайнем случае, можно исследовать определенную данным блоком конфигурацию в системе программирования S5. Она включает настройку коммуникаций, обработку аналоговых значений, мультипроцессорную работу и т.д. Естественно, все эти параметры имеют смысл только в Siemens SPS.

    По окончании импортирования внимательно просмотрите полученный код. Не конвертированные автоматически фрагменты снабжены комментарием:

    (*Warning! Unconvertible STEP5/7 code shown as comment:*)

    Здесь же, в комментарии содержится и исходный код.

    Обязательно проверьте адреса. При импорте создаются исходные Siemens адреса, в формате:

    Bits: Byte-Offset.Bit-Nummer

    Non-Bits:Byte-Offset

    Два последовательных адреса слов могут пересекаться. Так %MW32 и %MW33 имеют общий байт %MB33 (только в Siemens SPS). В CoDeSys %MW32  и %MW33 обычно не имеют пресечения.

    Ваш ПЛК может иметь иерархическую модель адресации памяти, например «%MW10.0.0.Вы можете сразу переделать все адреса либо попробовать оставить их как есть. Делать это нужно очень осторожно! В Siemens программах попеременное обращение к одной и той же области памяти как слову, байту или биту является обычной практикой. При импортировании блоков данных CoDeSys создает WORD определения для соответствующих слов. Обращение к словам выполнятся напрямую. В МЭК нет возможности объявить в общей памяти несколько пересекающихся переменных разного типа. Но это возможно в прямоадресуемой (M) памяти и памяти входов-выходов. Если применяли адреса типа %MX33.3, %MB33, %MW32 или %MD30, их корректное преобразование нужно выполнить вручную.

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

      Управление фазным ротором в Step7

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

      Кнопка ВКЛ на входе E0.0 осуществляет плавный пуск двигателя, а кнопка ВЫКЛ на E0.1 отключает двигатель. На вход E0.2 подключен автомат защиты двигателя, который срабатывает при перегрузке двигателя и отключает его.

      Схема включения

      Структура программы

      Описание программы

      Если нажата кнопка ВКЛ на входе E0.0 и не активны переключатели ротора или уже выполнен самоподхват автомата защиты двигателя (A0.0 = 1), то устанавливается промежуточный меркер M2.0. Этот промежуточный меркер используется для установки меркера защиты двигателя A0.0, в случае если не разомкнут ВЫКЛючатель или автомат защиты двигателя. Блокировка в этот момент должна отсутствовать. Меркер блокировки M10.0 устаналивается при одновременном нажатии кнопок ВКЛ и ВЫКЛ и сбрасывается только после того, как обе кнопки окажутся в исходном положении.

      После того как установлен выход защиты двигателя A0.0, запускается первый таймер T37. По прошествии 2 сек. устанавливается выход A0.1 для первого переключателя ротора. Затем запускается второй таймер T38 и по прошествии 2 сек. Устанавливается выход A0.2 для второго переключателя ротора. Этот шаг повторяется для таймеров T39 и T40, которые со своей стороны включают переключатели ротора 3 и 4 установкой соответствующих выходов A0.3 и A0.4, так что двигатель в конце концов работает с номинальным числом оборотов. Двигатель будет отключен, если на входах E0.1 или E0.2 исчезает напряжение, т.е. если разомкнута кнопка ВЫКЛ или автомат защиты двигателя. Размер программы составляет 77 слов.

      Листинг

      Основная программа

      // TITEL = ФАЗНЫЙ РОТОР

      // E0.0 Кнопка вкл.

      // E0.1 Кнопка выкл. Нормально замкнута

      // E0.2 Защита двигателя Нормально замкнута

      // A0.0 Защита двигателя

      // A0.1 Переключатель ротора 1

      // A0.2 Переключатель ротора 2

      // A0.3 Переключатель ротора 3

      // A0.4 Переключатель ротора 4

      // T37 Таймер 1я ступень

      // T38 Таймер 2я ступень

      // T39 Таймер 3я ступень

      // T40 Таймер 4я ступень

      // БЛОКИРОВКА

      LDN E0.1 // Кнопка Выкл нажата

      U E0.0 // Кнопка Вкл нажата

      S M10.0 ,1 // Вспомогательный меркер для блокировки

      LD E0.1 // Кнопка Выкл не нажата

      UN E0.0 // Кнопка Вкл не нажата

      R M10.0 ,1 // Блокировка снята

      ЗАПУСК ДВИГАТЕЛЯ

      LD E0.0 // Кнопка Вкл нажата

      UN A0.1 // Нет переключателя ротора 1

      UN A0.2 // Нет переключателя ротора 2

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      LD A0.0

      OLD

      = M2.0 // Промежуточный меркер

      LD M2.0 // Промежуточный меркер

      U E0.1 // Кнопка Выкл не нажата

      U E0.2 // Защита двигателя OK

      UN M10.0 // Блокировка

      = A0.0 // Двигатель в движении

      ЗАПУСК ТАЙМЕРА T37

      LD A0.0 // Двигатель в движении

      UN A0.1 // Нет переключателя ротора 1

      UN A0.2 // Нет переключателя ротора 2

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      TON T37,20 // Запуск T37 с 2 сек

      ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 1

      LD T37 // T37 завершил работу

      O A0.1 // Самоподхват переключателя ротора 1

      LD A0.0 // Двигатель в движении

      UN A0.2 // Нет переключателя ротора 2

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      ULD

      = A0.1 // Переключатель ротора 1

      ЗАПУСК ТАЙМЕРА T38

      LD A0.0 // Двигатель в движении

      UN A0.2 // Нет переключателя ротора 2

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      U A0.1 // Переключатель ротора 1

      TON T38,20 // Запуск T 38 с 2 сек

      ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 2

      LD T38 // T38 завершил работу

      O A0.2 // Самоподхват переключателя ротора 2

      LD A0.0 // Двигатель в движении

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      ULD

      = A0.2 // Переключатель ротора 2

      // ЗАПУСК ТАЙМЕРА T39

      LD A0.0 // Двигатель в движении

      U A0.2 // Переключатель ротора 2

      UN A0.3 // Нет переключателя ротора 3

      UN A0.4 // Нет переключателя ротора 4

      TON T39,20 // Запуск T 39 с 2 сек

      ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 3

      LD T39 // T39 завершил работу

      O A0.3 // Самоподхват переключателя ротора 3

      LD A0.0 // Двигатель в движении

      UN A0.4 // Нет переключателя ротора 4

      ULD

      = A0.3 // Переключатель ротора 3

       

      ЗАПУСК ТАЙМЕРА T40

      LD A0.0 // Двигатель в движении

      U A0.3 // Переключатель ротора 3

      UN A0.4 // Нет переключателя ротора 4

      TON T40,20 // Запуск T 40 с 2 сек

       

      ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 4

      LD T40 // T40 завершил работу

      O A0.4 // Самоподхват переключателя ротора 4

      LD A0.0 // Двигатель в движении

      ULD

      = A0.4 // Переключатель ротора 4

      MEND // Конец

       

        Запуск звезда-треугольник с ответным сообщением

        Данный пример управляет запуском звезда-треугольник асинхронного двигателя. Если, например, переключатель звезды дефектен, то это будет опознано с ответным сообщением и SIMATIC S7-200 не переключится через время задержки 5 сек в режим треугольника, исключая тем самым возможность поломки. Двигатель запускается после нажатия кнопки ВКЛ на входе E0.0 в режиме звезды. По прошествии установленного времени двигатель переключается в режим треугольник.  Возможное сообщение об ошибке индицируется посредством лампы на выходе A0.3.

        Схема включения

        Описание программы

        Двигатель запускается после нажатия кнопки ВКЛ на входе E0.0 в режиме звезды. По прошествии установленного времени 5 сек двигатель переключается в режим треугольник, если отсутствует сообщение об ошибке переключателей. Сообщение об ошибке индицируется лампой на выходе A0.3. Кнопкой квитирования на входе E0.6 можно сбросить сообщение об ошибке, в случае если ошибка устранена. Ответные сообщения переключателей подаются на входы с E0.3 по E0.5. Если нажата кнопка ВЫКЛ или сработал автомат защиты двигателя, находящиеся на входах E0.1 и E0.2, двигатель отключается. Если кнопки ВЫКЛ и ВКЛ нажаты одновременно, двигатель остается выключенным.

        Части программы ”Включение переключателя звезда”, ”Запуск таймера переключения” и ”Включение переключателя сети” дополнены условием, что отсутствует сообщение об ошибке (A0.3), что позволит установить меркер для переключателя звезды (A0.1) и переключателя сети (A0.0) и запустить таймер переключения (T37).

        Появилась новая часть программы ”Сообщение об ошибке”. В принципе обработка сообщения действует таким образом, что сравнивается состояние выходноых сигналов со входами, на которые подано действительное состояние переключателей. Состояние этих выходов сравнивается с состоянием входа E0.3 для переключателя сети, E0.4 для переключателя звезды и E0.5 для переключателя треугольника. При отклонении будет включен таймер T38 с временем задержки 2 сек, соответствующим максимальному времени переключения автоматов.

        Если по прошествии данного времени состояния все еще различаются, устанавливыается выход ошибки A0.3. Кнопкой квитирования на входе E0.6 он может быть снова сброшен.

        Размер программы составляет 70 слов.

        Листинг

        Основная программа

        // TITEL = ЗАПУСК ЗВЕЗДА-ТРЕУГОЛЬНИК С ОТВЕТНЫМ СООБЩЕНИЕМ

        // E0.0 Кнопка вкл.

        // E0.1 Кнопка выкл. Нормально замкнута

        // E0.2 Защита двигателя Нормально замкнута // E0.3

        // E0.4 RM. Переключатель звезды

        // E0.5 RM. Переключатель треугольника

        // E0.6 Кнопка квитирования

        // A0.0 Переключатель сети

        // A0.1 Переключатель звезды

        // A0.2 Переключатель треугольника

        // A0.3 Лампа ошибки

        // T37 Таймер переключения 5 сек

        // T38 Таймер сообщения об ошибке 2 сек

         

        БЛОКИРОВКА

        ВКЛЮЧЕНИЕ

         

        ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ЗВЕЗДЫ

         

        ЗАПУСК ТАЙМЕРА ПЕРЕКЛЮЧЕНИЯ

         

        ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ СЕТИ

         

        ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ТРЕУГОЛЬНИКА

         

        LD A0.0 // Переключатель сети

        UN E0.3 // RM. Переключатель сети

        LDN A0.0 // Нет переключателя сети

        U E0.3 // RM. Переключатель сети

        OLD

        LD A0.1 // Переключатель звезды

        UN E0.4 // Нет RM. Переключателя звезды

        OLD

        LDN A0.1 // Нет переключателя звезды

        U E0.4 // RM. Переключатель звезды

        OLD

        LD A0.2 // Переключатель треугольника

        UN E0.5 // Нет RM. Переключателя треугольника

        OLD

        LDN A0.2 // Нет переключателя треугольника

        U E0.5 // RM. Переключатель треугольника

        OLD

        TON T38,20 // Таймер задержки для сообщения об ошибке (2 сек)

         

          Реверсивный переключатель для полюсно-переключаемых асинхронных двигателей с выбором направления вращения (часть 2)

          Подпрограммы

          SBR 1 // Начало подпрограммы

          //****************VERRIEGELUNG****************************

          LD E0.0 // Медленное движение вправо

          O E0.1 // Или быстрое движение вправо

          O E0.2 // Или медленное движение влево

          O E0.3 // Или быстрое движение влево

          UN E0.4 // И нажата кнопка ВЫКЛ

          LD E0.1 // Или…

          O E0.2

          O E0.3

          U E0.0

          OLD

          LD E0.2 // Или…

          O E0.3

          U E0.1

          OLD

          LD E0.2 // Или…

          U E0.3

          OLD

          LD M1.1 // Или идет время ожидания

          OLD

          S M1.0,1 // То установить меркер блокировки

           

          ДЕБЛОКИРОВКА

          LD E0.4 // Если ни одна кнопка не нажата…

          UN E0.0

          UN E0.1

          UN E0.2

          UN E0.3

          UN M1.1

          R M1.0,1 // То блокировку снять

           

          РАЗРЕШЕНИЕ МЕДЛЕННОГО ВРАЩЕНИЯ ВПРАВО

           

          LDN E0.1 // Нет команды быстро

          LD E0.4 // Нет команды выкл

          U E0.5 // Не сработал автомат защиты двигателя

          UN A0.2 // Бит состояния медленное вращение влево не установлен

          UN A0.3 // Бит состояния быстрое вращение влево не установлен

          = M2.0 // Деблокировка медленного вращения вправо

           

          // РАЗРЕШЕНИЕ БЫСТРОГО ВРАЩЕНИЯ ВПРАВО

          LDN E0.0 // Нет команды медленно

          LD E0.4 // Нет команды выкл

          U E0.5 // Не сработал автомат защиты двигателя

          UN A0.2 // Бит состояния медленное вращение влево не установлен

          UN A0.3 // Бит состояния быстрое вращение влево не установлен

          = M2.1 // Деблокировка быстрого вращения вправо

           

          РАЗРЕШЕНИЕ МЕДЛЕННОГО ВРАЩЕНИЯ ВЛЕВО

          LDN E0.3 // Нет команды быстро

          LD E0.4 // Нет команды выкл

          U E0.5 // Не сработал автомат защиты двигателя

          UN A0.0 // Бит состояния медленное вращение вправо не установлен

          UN A0.1 // Бит состояния быстрое вращение вправо не установлен

          = M2.2 // Деблокировка медленного вращения влево

           

          РАЗРЕШЕНИЕ БЫСТРОГО ВРАЩЕНИЯ ВЛЕВО

          LDN E0.2 // Нет команды медленно

          LD E0.4 // Нет команды выкл

          U E0.5 // Не сработал автомат защиты двигателя

          UN A0.0 // Бит состояния медленное вращение вправо не установлен

          UN A0.1 // Бит состояния быстрое вращение вправо не установлен

          = M2.3 // Деблокировка быстрого вращения влево

          LD E0.0 // Команда вправо медленно

          O A0.0 // Или состояние вправо медленно

          UN M1.0 // И нет блокировки

          U M2.0 // Разрешение вправо медленно

          = A0.0 // Бит состояния Вправо медленно

          LD E0.1 // Команда вправо быстро

          O A0.1 // Или состояние вправо быстро

          UN M1.0 // И нет блокировки

          U M2.1 // Разрешение вправо быстро

          = A0.1 // Бит состояния Вправо быстро

          LD E0.2 // Команда влево медленно

          O A0.2 // Или состояние влево медленно

          UN M1.0 // И нет блокировки

          U M2.2 // Разрешение влево медленно

          = A0.2 // Бит состояния Влево медленно

          LD E0.3 // Команда влево быстро

          O A0.3 // Или состояние влево быстро

          UN M1.0 // И нет блокировки

          U M2.3 // Разрешение влево быстро

          = A0.3 // Бит состояния Влево быстро

          LD A0.4 // Определение фронта при выключении

          EU

          S M1.1,1 // Установка вспомогательного меркера для выключения

          LD M1.1

          MOVW 500,VW20 // Загрузка времени ожидания для перезапуска

          TON T33,VW20 // Пуск таймера ожидания для перезапуска

          U T33

          R M1.1,1 // Сброс всп. меркера по прошествии времени ожидания

           

          RET // Конец подпрограммы

            S7-200 Примеры управление широтно-импульсной модуляцией

            Краткое описание:

            CPU-214 S7-200 содержит функцию выдачи прямоугольных сигналов на выходы A0.0 и A0.1. При этом длительность периода и ширина импульса устанавливаются независимо друг от друга. Ширина импульса соответствует времени, в течение которого выходной сигнал за период имеет состояние „1“.

            Данный пример описывает широтно-импульсную модуляцию (ШИМ), где на выход A0.0 выдается сигнал, ширина импульса которого увеличивается от периода к периоду на 0,5 с. Длительность периода составляет 5 с, а стартовая ширина импульса 0,5 с. Если будет достигнуто максимальное значение ширины импульса 4,5 с, то ширина импульса снова начинает уменьшаться на 0,5 с, пока значение не станет равно нулю. Этот процесс повторяется периодически.

            Для проведения такой широтно-импульсной модуляции необходимо связать выход A0.0 со входом E0.0, также как массу напряжения питания с массой входов, для того чтобы имелась возможность управлять ШИМ из программы.

            Описание программы вкл. листинг:

            Байт специальных меркеров SMB67 служит для инициализации широтно-импульсной модуляции на выходе A0.0. Это инициализация содержит деблокировку ШИМ и установки, позволяющие изменять длительность периода и ширину импульса, а также выбрать временной базис (здесь в мс). В подпрограмме 0 будут установлены соответствующие контрольные байты. Команда ENI производит глобальную деблокировку всех прерываний. По команде PLS 0 операционная система запоминает установленные значения и инициализирует так называемый “PTO/ШИМ-генератор”, который будет производить ШИМ на выходе A0.0.

            Длительность периода 5 с задается передачей значения 5000 в слово специальных меркеров SMW68. Начальная ширина импульса устанавливается на 0,5 с, путем записи значения 500 в слово специальных меркеров SMW70.

            Данная инициализация производится в первом цикле, путем логического связывания вызова подпрограммы с битом специальных меркеров SM0.1 (First Scan Flag). Инициализация и установка ШИМ будет прооизводится повторно, после завершения процесса ШИМ, т.е. когда текущая ширина импульса станет равной 0.

            Вспомогательный маркер M0.0 служит для установки, будет ли ширина импульса увеличиваться или уменьшаться. Во время инициализации он устанавливается, для того чтобы могло производиться инкрементирование. Выход A0.0 связан со входом E0.0, так что выходной сигнал появляется и на входе E0.0. После того как будет выдан первый импульс, событие ‘0’ (положительный фронт на E0.0) будет назначено подпрограмме прерывания 1 (INT1) с помощью команды ‘ATCH’. INT1 повышает текущее значение импульса на 0,5 с а затем команда ‘DTCH’ разрывает связь этого прерывания с INT1, причем прерывание снова будет блокировано. Если ширина импульса при следующем увеличении станет равна длительности периода, то вспомогательный маркер M0.0 будет сброшен. При этом событие ‘0’ назначается подпрограмме прерывания 2, которая уменьшит ширину импульса после каждого импульса на 0,5 с. Когда ширина импульса станет равна 0, снова будет вызвана подпрограмма инициализации (подпрограмма SBR 0).

            Размер программы составляет 66 слов.

            Основная программа

            // TITEL = УПРАВЛЕНИЕ ШИРОТНО-ИМПУЛЬСНОЙ МОДУЛЯЈИЕЙ

            CALL 0 // вызов подпрограммы 0 для пуска ШИМ

            LDW>= SMW70, VW0// Если ширина импульса >= (длина периода — ширина импульса),

            R M0.0, 1// вспомогат. маркер сбрасывается

            LDW= SMW70, 0// Если ширина импульса равна нулю,

            CALL 0 // Вызов подпрограммы 0 для нового пуска ШИМ

            LD E0.0 // ВходE0.0 установлен

            U M0.0 // и вспомогательный маркер для увеличения установлен,

            ATCH 1, 0 // то INT 1 назначена событию 0 (положительный фронт на E0.0)

            LD E0.0 // Вход E0.0 установлен,

            UN M0.0 // а вспомогательный маркер для увеличения не установлен,

            ATCH 2, 0 // то INT 2 назначена событию 0 (положительный фронт на E0.0)

            MEND // Конец основной программы

            ПОДПРОГРАММА 0

            // SM67.0 := 1 => сохранение новой длительности периода (деблокировка)

            // SM67.1 := 1 => сохранение новой ширины импульса (деблокировка)

            // SM67.3 := 1 => временной базис 1мс (если 0 => временной базис 1мкс)

            // SM67.6 := 1 => выбор режима ШИМ (если 0 => режим PTO)

            // SM67.7 := 1 =>общая деблокировка High-Speed-Output-функций

            SBR 0 // Инициализация ШИМ

            LD SM0.0 // Всегда в единице

            S M0.0, 1 // Установка вспом. маркера “увеличение  ширины импульса”

            MOVB 16#CB, SMB67//Установка контрольных байтов PTO/ШИМ — для выхода A0.0

            MOVW 500, SMW70// Задание начальной ширина импульса (здесь 500 мс)

            MOVW 5000, SMW68// длина периода (здесь 5 с)

            ENI // Деблокировка всех прерываний

            PLS 0 // Команда на программирование PTO/ШИМ-генератора

            MOVW SMW68, VW0// Копировать длину периода в слово/ данных VW0

            -I 500, VW0// Сохранить значение ‘длина периода — ширина импульса’ в слове данных VW0

            RET // Конец подпрограммы 0 и возврат в основную программу

            Подпрограммы прерываний

            INT 1 // Увеличение ширины импульса

            LD SM0.0 // Всегда в единице

            +I 500, SMW70// Увеличение ширины импульса на 500мс

            PLS 0 // Команда на программирование PTO/ШИМ-генератора

            DTCH 0 // Разделить прерывание и назначенное ему событие 0

            RETI // Конец ISR 1 и возврат в основную программу

            Подпрограмма обработки прерываний 2

            INT 2 // Уменьшение ширины импульса

            LD SM0.0 // Всегда в единице

            -I 500, SMW70// Уменьшение ширины импульса на 500мс

            PLS 0 // Команда на программирование PTO/ШИМ-генератора

            DTCH 0 // Разделить прерывание и назначенное ему событие 0

            RETI // Конец ISR 2 и возврат в основную программу

             

            Работа с аналоговыми потенциометрами S7-200

            Этот пример поясняет применение аналоговых потенциометров SIMATIC CPU 214. Положение аналоговых потенциометров преобразуется в цифровое значение между 0 и 255 и заносится в два байта специальных, причем SMB28 содержит значения потенциометра 1, а SMB29 значение потенциометра 2.

            Метод 1:

            В качестве первого варианта рассмотрим применение аналогового потенциометра 0 для точной установки таймера. Грубая или предварительная установка (здесь 200мс) производится в программе. Потенциометр может быть при этом использован для дальнейшей установки нужного значения до ,примерно, 1,48 секунды. После каждого цикла таймера будут выполнятся операции подпрограммы 1: Значение потенциометра 0, содержащееся в SMB28, будет загружено в AC1, разделено пополам и прибавлено к 200мс-предустановке. В основной программе число циклов таймера в AC2 будет увеличено на 1 и индицировано на выходном байте AB0.

            Метод 2:

            Второй метод позволяет сложить и усреднить в AC3 значения потенциометра 1 в 100 следующих друг за другом циклах программы. В первом цикле запоминаются нижнее граничное в VW14 и верхнее граничное в VW16 значения. Если усредненное значение ниже нижней границы или выше верхней границы, то это значение заносится в VW12 и копируется в VW14, VW16 и VW18. Новые верхняя и нижняя границы задаются прибавлением или вычитанием 3мс к усредненному значению. Среднее значение потенциометра, сохраненное в VW18, будет передано в основную программу в таймер T34. Здесь считаются циклы таймера и индицируются затем на выходном байте AB1. Этот метод создает путем фильтрации значений потенциометра относительно постоянную установку таймера от 0 до 2,55 секунд.

            Метод 3:

            Метод 3 это прямая загрузка значения потенциометра в качестве предустановки для таймера T35. Здесь число циклов таймера будет индицироваться на выходном байте AB0. Установка таймера может быть изменена в любом цикле.

            Размер программы составляет 112 байт.

            Подпрограммы

            // Подпрограмма SBR 1:

            // Уменьшение значения потенциометра 0 включая сложение с предустановленным значением.

            SBR 1

            LD T33 // После выполнения цикла таймера

            MOVW 0, AC1 // аккумулятор AC1 сбрасывается

            MOVB SMB28, AC1 // и значение потенциометра 0 копируется в AC1

            MOVW 2, VW60

            DIV VW60, AC1 // Принятое значение потенциометра делится пополам

            +I 20, AC1 // и прибавляется смещение 200 мс

            MOVW AC1, VW0 // Значение AC1 копируется в VW0

            RET // Возврат в основную программу

            // Подпрограмма SBR 2:

            // Определение среднего значения потенциометра 1 по 100 циклам программы

            SBR 2

            LD SM0.0 // В каждом цикле

            INCW VW10 // счетчик циклов увеличивается на 1

            MOVB SMB29, AC0 // Значение потенциометра 1 заносится в AC0

            +I AC0, AC3 // Прибавляется к общему значению в AC3

            LDW= VW10,100 // После 100 циклов

            MOVW 100, VW50

            DIV VW50, AC3 // Значение для образования среднего значения делится на 100

            MOVW AC3, VW12 // Среднее значение заносится в VW12

            MOVW 0, VW10 // Сброс счетчика циклов

            MOVD 0, AC3 // Сброс памяти общего значения

            = M0.0

            LD M0.0

            LDW<= VW12, VW14 // и новое среднее значение вне поля допуска

            OW>= VW12, VW16

            ALD

            FILL VW12, VW14, 3 // Новое среднее значение копируется в VW14, VW16 и VW18

            -I 3, VW14 // Установка новой нижней границы (Среднее значение — 3мс)

            +I 3, VW16 // Установка новой верхней границы (Среднее значение + 3мс)

            RET // Возврат в основную программу

            Для того чтобы преобразовать TOOLITE2 AWL в S7-Micro/DOS AWL:

            • Установите ‘K’ перед каждым числом, не являющимся 16-ричной константой (напр. 4 → K4)

            • Замените ‘16#’ → ‘KH’ для всех 16-ричных констант (напр. 16#FF → KHFF)

            • Поставьте запятые для смены полей. Используйте клавиши перемещения или клавишу TAB для перехода от поля к полю.

            • Для преобразования программы S7-Micro/DOS AWL в KOP-форму нужно начинать каждый сегмент словом ‘NETWORK’ и номером. Каждый сегмент в этом примере имеет свой номер на диаграмме KOP. Используйте NWENFG в меню редактора для ввода нового сегмента. Команды MEND, RET, RETI, LBL, SBR и INT требуют отдельных сегментов.

            Переменные в STEP 7-Micro/WIN

            Присвоение начальных значений переменным выполняется в редакторе блоков данных. Вы можете выполнять назначения байтам, словам или двойным словам памяти переменных. Комментарии не обязательны.

            Редактор блоков данных – это текстовый редактор со свободно выбираемым форматом; это значит, что поля для тех или иных данных заранее не определяются. После того как вы напечатали строку и нажали клавишу ENTER, редактор блоков данных форматирует эту строку (выравнивает столбцы адресов, данных, комментариев; представляет адреса в памяти переменных большими буквами) и вновь ее отображает. Если вы в конце строки нажмете CTRL-ENTER, то адрес автоматически пересчитывается на следующее доступное значение.

            Редактор блоков данных выделяет соответствующее место в памяти переменных в соответствии с вашими предыдущими распределениями адресов и размерами (байт, слово или двойное слово) значений данных. Первая строка блока данных должна содержать явно назначенный адрес. Адреса в следующих строках могут быть назначены явно или неявно. Неявное присвоение адресов выполняется редактором, когда вы вводите несколько значений данных после назначенного адреса или вводите строку, содержащую только значения данных. Редактор блоков данных принимает большие и маленькие буквы и допускает использование запятых, табуляций и пробелов в качестве разделителей между адресами и значениями данных.

            Использование таблицы символов для символической адресации переменных

            Таблица символов дает возможность определять и редактировать символы, к которым можно обращаться во всей программе через символические имена. Вы можете создать несколько таблиц символов. В таблице символов имеется также закладка для символов, определенных системой, которые вы можете использовать в своей программе. Таблица символов называется также таблицей глобальных переменных. Вы можете указывать операнды команд в своей программе абсолютно или символически. При абсолютной адресации задается область памяти, а также бит или байт адреса. При символической адресации для указания адреса используются комбинации алфавитно- цифровых символов.

            Для программ SIMATIC назначение глобальных символов производится в таблице символов. Для программ МЭК назначение глобальных символов производится в таблице глобальных переменных. Для присвоения адресу символического имени действуйте следующим образом:

            1. Щелкните в навигационной панели на кнопке таблицы символов, чтобы вызватьтаблицу.

            2. Введите символическое имя (например, Input1) в столбце «Symbol Name [Символическое имя]». Максимальная длина символического имени составляет 23 символа.

            3. В столбце Address [Адрес] введите адрес (например, I0.0).

            4. Для таблицы глобальных переменных МЭК введите значение в столбец Data Type [Тип данных] или выберите его из раскрывающегося окна списка.

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

            Использование локальных переменных

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

            Локальные переменные могут использоваться как параметры, которые передаются в подпрограмму. Локальные переменные увеличивают мобильность и возможность повторного использования подпрограммы.

            Контроль над программой с помощью таблицы состояний

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

            Можно создать несколько таблиц состояний, чтобы иметь возможность просматривать элементы из различных частей своей программы.

            Для вызова таблицы состояний выберите команду меню View > Component > Status Chart [Вид > Компонент > Таблица состояний] или щелкните на пиктограмме таблицы состояний на навигационной панели.

            При создании таблицы состояний введите адреса переменных процесса, которые вы хотите наблюдать. Невозможно отобразить состояния констант, аккумуляторов и локальных переменных. Значения таймеров и счетчиков можно отображать в виде бита или слова. Если значение отображается в виде бита, то оно представляет состояние бита таймера или счетчика; если значение отображается в виде слова, то оно является значением таймера или счетчика.

            Для создания таблицы состояний и контроля переменных:

            1. Введите в поле адресов адреса желаемых величин.
            2. В столбце Format выберите тип данных.
            3. Для отображения состояния переменных процесса в своем ПЛК выберите команду меню Debug > Chart Status [Отладка > Состояние таблицы].
            4. Если вы хотите опрашивать эти величины непрерывно или хотите однократно считать состояние, щелкните на соответствующем символе на панели инструментов.

            В таблице состояний можно также принудительно устанавливать или изменять значения различных переменных процесса. В таблицу состояний можно вставлять дополнительные строки, выбрав команду меню Edit> Insert > Row [Редактировать > Вставить > Строка].

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

             

            Создание библиотеки команд в STEP 7-Micro/WIN

            В STEP 7-Micro/WIN можно создать библиотеку команд для конкретного пользователя или использовать библиотеку, созданную другими лицами.  Для создания библиотеки команд создайте сначала в STEP 7-Micro/WIN подпрограммы и программы обработки прерываний и сгруппируйте их. Вы можете скрыть код в этих подпрограммах и программах обработки прерываний, чтобы предотвратить случайные изменения и защитить технологию или ноу-хау автора.

            Для создания библиотеки команд действуйте следующим образом:

            1. Напишите программу в виде стандартного проекта STEP 7-Micro/WIN и поместите функции, которые должны быть включены в библиотеку, в подпрограммы или программы обработки прерываний.

            2. Обеспечьте, чтобы все адреса в памяти переменных в подпрограммах или программах обработки прерываний получили символические имена. В памяти переменных используйте адреса, следующие друг за другом, чтобы минимизировать размер памяти переменных, необходимой для библиотеки.

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

            4. Выберите команду меню File > Create Library [Файл > Создать библиотеку], чтобы скомпилировать новую библиотеку команд.

            Создание пользовательской библиотеки в STEP 7-Micro/WIN

            Создание пользовательской библиотеки в STEP 7-Micro/WIN

            Дополнительную информацию о создании библиотек вы найдете в помощи для STEP 7-Micro/WIN в режиме online.

            Чтобы получить доступ к командам из библиотеки команд необходимо:

            1. Добавить к дереву команд каталог «Libraries [Библиотеки]», выбрав команду меню File > Add Libraries [Файл > Добавить библиотеки].

            2. Выберите желаемую команду и вставьте ее в свою программу (как любую стандартную команду).

            Если библиотечная программа нуждается в памяти переменных, то STEP 7-Micro/WIN после компиляции проекта потребует назначения области памяти.

            Области памяти назначаются в диалоговом окне «Library Memory Allocation [Выделение памяти для библиотеки].