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

МЕХЗАВОД|Ремонт бытовой техники и электроники cвоими руками

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



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

Сообщений 1 страница 2 из 2

1

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

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

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

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

http://s7.uploads.ru/t/Hpdqu.jpg

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

http://s7.uploads.ru/t/ANJnF.jpg

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

http://s5.uploads.ru/t/RMIhY.jpg

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

http://s7.uploads.ru/t/of4Pv.jpg

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

http://sa.uploads.ru/t/OCrni.jpg

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

http://s5.uploads.ru/t/Dh3k8.jpg

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

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

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

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

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

http://s8.uploads.ru/t/kie4Z.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).

http://sh.uploads.ru/t/nDcOJ.jpg

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

http://s3.uploads.ru/t/Bxkvt.jpg

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

http://s8.uploads.ru/t/NaQ9c.jpg

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

http://s7.uploads.ru/t/jRs5h.jpg

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

http://s9.uploads.ru/t/0jCeT.jpg

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

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

http://s9.uploads.ru/t/zELd9.jpg

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

http://s9.uploads.ru/t/JziHM.jpg

Нажимаем Download.

http://s3.uploads.ru/t/bo1ZD.jpg

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

http://s5.uploads.ru/t/Kc3FA.jpg

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

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

S7200SIM от SUNLiGHT software -

http://sa.uploads.ru/t/WzKvp.jpg

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

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

http://s7.uploads.ru/t/6tgcT.jpg

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

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

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

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

http://s5.uploads.ru/t/OENMI.jpg

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

http://sh.uploads.ru/t/04Z7O.jpg

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

http://s5.uploads.ru/t/irDEV.jpg

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

http://sa.uploads.ru/t/uDUlf.jpg

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

http://sd.uploads.ru/t/AC8aU.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

http://sd.uploads.ru/t/0bmMv.jpg

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

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

http://sg.uploads.ru/t/09AvS.jpg

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

http://s7.uploads.ru/t/Dk8KS.jpg

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

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

http://s7.uploads.ru/t/Dk8KS.jpg

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

http://sa.uploads.ru/t/KTPop.jpg

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

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

http://s5.uploads.ru/t/jGSE4.jpg

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

http://s7.uploads.ru/t/cqKtV.jpg

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

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

http://sh.uploads.ru/t/gilY4.jpg

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

http://sg.uploads.ru/t/trSj1.jpg

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

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

http://sg.uploads.ru/t/cVT3K.jpg

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

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

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

Отредактировано polysiv (18.04.2018 07:06:16)

2

S7-1200 Программирование в режиме симуляции



Рейтинг форумов | Создать форум бесплатно