Реклама ⓘ
Главная » Промышленная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Simatic S7-200 быстрый старт. Часть 1

В этой статье показаны основы работы с ПЛК SIMATIC S7-200 фирмы SIEMENS. Рассмотрены вопросы конфигурирования GKR? соответствия периферии областям памяти, существующие симуляторы. Также напишем первую программу и  проверим ее функционирование на симуляторе.

Итак приступим. Будем считать что ПКЛ смонтирован и к нему подключено питание. А также подключен кабель PPI. Для программирования, загрузки и отладки контроллера необходимо установить пакет STEP 7 MicroWin.

Настройка оборудования

Запускаем MicroWin. В открывшемся окне нажимаем Set PG/PC interface.

ris 1.jpg

Выбираем PC/PPI cable.

ris 1_1.jpg

Нажимаем Properties и на вкладке LocalConnection выбираем номер com порта на который установлен второй конец кабеля (для кабеля PPI – USB номер виртуального com порта).

рис 2.jpg

Закрываем вкладку. В основном окне MicroWin выбираем Communications.

рис 3.jpg

Ставим галочку «search all baud rates» и справа нажимаем «double click to refresh».

рис 4.jpg

В процессе поиска должен появиться контроллер.

рис 5.jpg

Выбираем его и нажимаем OK.

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

Теоретические основы

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

Программа выполняется в основном цикле OB1.

рис 6.jpg

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

Память в ПЛК делиться на области отображения дискретных входов (обозначается латинской буквой I), дискретных выходов (обозначается буквой Q), аналоговых входов (обозначается буквами AIW), аналоговых выходов (отображается буквами AQW). Аналоговые входа имеют выход размерности 16 бит и соответственно формат «слово» WORD. Если вход специализированный (например под термосопротивление или термопару) то выход будет иметь значение температуры с десятыми долями градуса Цельсия (например аналоговый вход под Pt100 AIW10 и температура на датчике 36.6 С то AIW = 366). С дискретными входами и выходами можно общаться как побитно (например I0.0) означает дискретный вход I0 бит 0), так и побайтно (например IB2). Аналогично и дискретными выходами. Важно заметить, что выхода можно не только устанавливать но и опрашивать.

Существует меркерная память, она сохраняет свои значения при пропадании питания, (обозначается буквой М) например M0.0 MB2 MW4 MD6. Есть так называемые системные меркеры (обозначаются SM), в них хранятся всяческие системные данные доступные для пользователя (об этом будет ниже).  B обычная память (отображаемая буквой V) например VB0, VD4, VW10. Также существуют аккумуляторы для хранения промежуточных результатов при вычислении они имеют разрядность 32 бита и обозначаются AC0, AC1, AC2, AC3.

Память разбивается на биты, байты (VB) - 8 бит, слова (VW) - 16 бит, двойные слова (VD).

Математически операции выполняются на числами со следующими разрядностями.
Integer 16 бит   от -32768 до +32767
Double integer 32 бита   от -2147483648 до +2147483647
Real 32 бита от -1.175495E-38 до -3.402823E+38

Первая программа

Напишем простую программу опрашивающую дискретный вход и устанавливающий дискретный выход.

В главном окне MicroWin нажимаем View -> Ladder (это означает что писать мы будем на языке LAD).

рис 7.jpg

Выбираем OB1 (основной цикл программы) и дважды по нему щелкаем.

рис 8.jpg

В панели слева выбираем Instruction -> Bit Logic и два раза щелкаем по значку -||- Normaly open

рис 9.jpg

(это так называемы нормально разомкнутый контакт, что означает что он замкнется и пропустит сигнал дальше если его состояние равно «1». В появившемся над контактом поле со знаками вопроса

ris 10.jpg

вписываем I0.0 и нажимаем Enter, что означает мы опрашиваем дискретный вход I0.0. Опять слева из меню Instruction -> Bit Logic выбираем Output

ris 11.jpg

и щелкаем два раза. В появившемся над выходом поле со знаками вопроса вписываем Q0.0 (число под оператором установки или сброса бита соответствует числу сбрасываемых или устанавливаемых битов в этом байте начиная с указанного, например если написать снизу 1 то установиться только указанный бит и так далее) и нажимаем Enter, что означает мы устанавливаем дискретный выход Q0.0.

Все простейшая программа готова. Нажимаем compile All.

ris 12.jpg

В нижней статусной строке видим, что размер кода 20 байт, ошибок и предупреждений нет.

ris 13.jpg

Нажимаем Download.

ris 14.jpg

В открывшемся окне нажимаем Download. Произойдет заливка программы и окно закроется. Переводим контроллер в состояние RUN

ris 15.jpg

Теперь если подать на вход I0.0 +24В то на выходе Q0.0 появиться +24В. Состояние входов выходов также отображается на светодиодах контроллера.

Теперь краткое отступление для тех кто хочет попробовать работать с ПЛК но не имеет его. Существуют два симулятора S7-200.

S7200SIM от SUNLiGHT software -

рис 16.jpg

позволяет посредством виртуального моста com – com устанавливать связь MicroWin с эмулятором ПЛК. Не поддерживает аналоговые входа выхода. Проект похоже мертв.

S7_200 от http://personales.ya.com/canalPLC/

рис 17.jpg

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

Вот как выглядит наша программа при работе в контроллере.

В MicroWin нажимаем File - > Export. Даем имя файлу например 1 и нажимаем сохранить.

Запускаем симулятор S7_200.

рис 18.jpg

Нажимаем Program -> Load Program. Оставляем галочку logic block и нажимаем Accept.

рис 19.jpg

В открывшемся окне выбираем наш файл и нажимаем открыть.

рис 20.jpg

Нажимаем PLC -> RUN.

рис 21.jpg

Теперь если мы передвинем крайний левый тумблер вверх то сработает выход Q0.0.

рис 22.jpg

Отлично, наша программа работает.

Опять небольшое отступление. Как определить по каким адресам находятся входа и выхода? Это очень просто.

Во первых можно просто посчитать их следующим образом. Все входа сгруппированы побайтно, поэтому предположим что ПЛК (без модулей расширения) содержит в себе 16 дискретных входов, 8 дискретных выходов, 2 аналоговых входа и 1 аналоговый выход. Они будут иметь адреса I0.0 - I0.7 и I1.0 - I1.7. Дискретные выходные Q0.0 - Q0.7. Аналоговые входные AIW0 и AIW2 (так как занимают по два байта каждый). Аналоговый выход AQW0. Теперь если мы добавим модуль расширения с 16 дискретными входами и 16 дискретными выходами. Они автоматически получат адреса I2.0-I2.7 I3.0 - I3.7. Выхода Q1.0-Q1.7 Q2.0 - Q2.7 т.е. адресация увеличивается линейно по байту на каждые 8 дискретных входов выходов, начиная с 0 в ПЛК. Аналоговые увеличивают адресацию по словно (через один) начиная с 0 в ПЛК. 

Можно посмотреть присвоенные входам выходам адреса в ПЛК из MicroWin. Для этого в MicroWin нажимаем PLC -> information

рис 23.jpg

В таблице видим, что CPU у нас 226 имеет 24 дискретных входа начиная с I0.0 и 16 выходов начиная с Q0.0

Идем дальше. Естественно при программировании ПЛК с большим объемом входных выходных сигналов и сложной математикой работать с абсолютными адресами сложно. Символьная адресация тут тоже возможна. В MicroWin нажимаем Symbol Table.

рис 24.jpg

В открывшемся окне

рис 26.jpg

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

 Возвращаемся в OB1 и видим, что появилась табличка под кодом с сопоставлением символьного имени и абсолютного адреса. (если не отображается то нажать View -> Symbol Information Table.

рис 26.jpg

Но в коде все по прежнему. Нажимаем Viev -> Symbol Table -> Apply Symbol to Project.

рис 27.jpg

Вот теперь все отлично.

Вернемся в Symbol Table. Я рассказывал выше о специальных системных меркерах. Чтобы не лазить каждый раз в help я всегда проделываю следующие действия. Правой кнопкой мыши вызывается меню Insert -> S7-200 Symbol Table

рис 28.jpg

Появляется вкладка S7-200 Symbols. Если прочитать комментарии то видно что системные меркеры содержат много полезного. Например бит SM0.1 First_Scan_On – выполняется только при первом цикле после включения питания. Это часто используется для загрузки первоначальных данных. Например в программе мы используем переменную по адресу VW0 для сравнения дальше в программе с аналоговым входом. Причем эта переменная будет потом доступна для изменения (типовая уставка аварийного значения).При этом мы хотим загрузить в нее какое либо первоначальное значение. Тогда код будет выглядеть так

рис 29.jpg

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

Часто используется системный меркер SM0.0 Always ON – используется для подключения математических операций и загрузки в регистр в языке LAD. Пример

рис 30.jpg

Две ошибки. По правилам языка LAD перед подобными операциями должна стоять инструкция опроса контакта, а так как этот должен быть всегда замкнут то используют системный меркер SM0.0

рис 31.jpg

Теперь без ошибок.

Еще два интересных меркера SM0.4 SM0.5 – один переключается с периодом 1 секунда а второй с периодом 1 минута. На их базе можно реализовать цикличное выполнение какой либо подпрограммы или например простую мигалку. В OB1 набираем код

рис 32.jpg

Экспортируем в awl. Загружаем в симулятор s7_200. Переключаем ПЛК в RUN и видим что выход Q0.1 переключается каждые 0,5 секунды.

Интересны и иногда полезны еще два специальных меркера SMW24 и SMW26 – они содержат минимальное и максимальное время выполнения цикла программы OB1 в миллисекундах.

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

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (6) | Я собрал (0) | Подписаться

0
Руслан #
Цикл статей по S7-200 крайне полезный. Только вот с симулятором контроллера что-то не сложилось. Версия 1.2 из архива S7-200simulator.zip не запускается, версия 3.0 из архива S7_200_ING.rar для полноценной работы требует пароль. Может подскажете пароль?
Ответить
0

[Автор]
tvilsa #
6596 или открываешь блокнотом экзешник и ищешь "password" около него находишь 4 цифры.
Ответить
0
Руслан #
Все получилось! Огромное спасибо!
Ответить
0
Mihail #
Симулятор полный бред, только для каких то примитивных целей.
Ответить
0
alex #
При считывании ПЛК он просит код доступа, я его не знаю. Что делать?
Ответить
0
Вадим #
Если основная программа вызывает подпрограмму, то после выполнения подпрограммы данные в подпрограмме равны нулю или нет? Например, подпрограмма работает с участком памяти VМ10, после выполнения подпрограммы данные в этом участке памяти равны нулю или неТ?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Катушка Тесла
Катушка Тесла
Программатор Pickit3 Металлоискатель MD3010II
вверх