Tag Archives: siemens

Ошибки в ПЛК Siemens

ПЛК разделяет ошибки на фатальные и не фатальные. Коды, сгенерированные ошибкой, можно посмотреть, выбрав команду меню PLC > Information [ПЛК Информация].

На рисунке показано диалоговое PLC Information [Информация ПЛК], содержащее и описание ошибки.

Поле Last Fatal [Последняя фатальная ошибка] показывает код предыдущей фатальной ошибки, сгенерированный ПЛК. Это значение сохраняется при выключениях и включениях питания, если сохраняется ОЗУ. Эта ячейка очищается всякий раз, когда очищается вся память ПЛК, или когда ОЗУ не сохраняется после длительного перерыва в подаче питания.

Окно аварий Step7

Окно аварий Step7

Поле Total Fatal [Всего фатальных ошибок] представляет собой количество фатальных ошибок, сформированных ПЛК начиная с момента последней очистки всех областей памяти ПЛК. Это значение сохраняется при выключениях и включениях питания, если сохраняется ОЗУ. Эта ячейка очищается всякий раз, когда очищается вся память ПЛК, или когда ОЗУ не сохраняется после длительного перерыва в подаче питания.

Нефатальные ошибки

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

Ошибки компиляции программы

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

Ошибки конфигурации входов/выходов

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

Информация о состоянии модуля хранится в битах специальной памяти (SM). Ваша программа может контролировать и анализировать эти биты. Бит SM5.0 является глобальным битом ошибок конфигурации входов/выходов, который остается установленным, пока в модуле расширения сохраняется сбойная ситуация.

Ошибки выполнения программы

Ваша программа может создавать состояния ошибки во время своего выполнения. Эти ошибки могут возникать из-за ненадлежащего использования команды или из-за обработки командой недопустимых данных. Например, указатель косвенного адреса, который был действительным, когда программа компилировалась, может быть изменен во время выполнения программы так, что станет указывать на адрес вне допустимого диапазона. Это пример ошибки программирования, проявляющейся при выполнении программы. При возникновении такой ошибки устанавливается бит SM4.3. Он остается установленным, пока ПЛК находится в режиме RUN. Информация об ошибках выполнения программы хранится в битах специальной памяти (SM). Ваша программа может контролировать и анализировать эти биты.

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

Пример остановки выполнения программы при возникновении нефатальной ошибки

Пример остановки выполнения программы при возникновении нефатальной ошибки

Фатальные ошибки

Фатальные ошибки заставляют ПЛК прекратить выполнение программы. В зависимости от тяжести фатальной ошибки ПЛК может потерять способность к выполнению некоторых или всех функций. Целью обработки фатальных ошибок является перевод ПЛК в безопасное состояние, из которого ПЛК может реагировать на запросы о существующих сбойных состояниях. Когда ПЛК обнаруживает фатальную ошибку, он переключается в режим STOP, включает светодиоды SF/DIAG (красный) и STOP, заменяет таблицу выходов и выключает выходы. ПЛК остается в этом состоянии до исправления фатальной ошибки.

После устранения фатальной ошибки можно перезапустить ПЛК, используя один из следующих методов:

  • Выключите, а затем включите питание.
  • Переведите переключатель режимов работы из RUN или TERM в STOP.
  • Выберите из STEP 7-Micro/WIN команду меню PLC > Power–Up Reset [ПЛК > Сброс при запуске] для запуска ПЛК. Это заставляет ПЛК перезапуститься и сбросить все фатальные ошибки.

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

 

Команды языка Step7

Определение EN/ENO

EN (Enable IN = Разрешающий вход) – это булев вход для блоков в LAD и FBD. Чтобы команда, представленная в виде блока, исполнялась, на этом входе должен присутствовать поток сигнала. В STL команды не имеют входа EN, но вершина стека должна быть логической “1”, чтобы соответствующая команда STL исполнялась.

ENO (Enable Out = Разрешающий выход) – это булев выход для блоков в LAD и FBD. Если у блока имеется поток сигнала на входе EN, и блок выполняет свою функцию без ошибок, то выход ENO передает поток сигнала следующему элементу. Если при исполнении блока обнаруживается ошибка, то поток сигнала завершается на блоке, в котором произошла ошибка.

В STL нет выхода ENO, но команды STL, соответствующие командам LAD и FBD с выходами ENO, устанавливают специальный бит ENO. Это бит доступен с помощью команды STL AENO (AND ENO) и может быть использован для создания того же эффекта, что и бит ENO блока.

Условные и безусловные входы

В LAD и FBD блок или катушка, зависящие от потока сигнала, изображаются присоединенными к какому-нибудь элементу с левой стороны. Катушка или блок, не зависящие от потока сигнала, изображаются непосредственно подключенными к левой шине.

Команды без выходов

Блоки, не допускающие каскадного соединения, изображаются без булевых выходов. Сюда относятся команды вызова подпрограммы, перехода на метку и условного завершения подпрограммы. В LAD тоже имеются катушки, которые могут быть помещены только у левой шины. Сюда относятся команды определения метки перехода, конца программного цикла с NEXT, загрузки реле последовательного управления (SCR), условного завершения SCR и конца SCR. В FBD они изображаются как блоки и отличаются непомеченными входами и отсутствием выходов.

Команды сравнения

Команда сравнения выполняется независимо от состояния потока сигнала. Если поток сигнала отсутствует (ложь), то выход ложен. Если поток сигнала присутствует (истина), то выход устанавливается в зависимости от результата сравнения. Команды сравнения SIMATIC FBD, IEC LAD и IEC FBD представляются как блоки, хотя операция выполняется как контакт.

 

Наборы команд SIMATIC и МЭК1131-3

Большинство ПЛК используют  похожие команды, но обычно имеются некоторые  различия в их внешнем виде, действии и т.д. в зависимости от поставщика. В течение последних нескольких лет Международная электротехническая комиссия (МЭК) разработала всеобщий стандарт, который относится ко многим аспектам программирования ПЛК. Этот стандарт поощряет различных изготовителей ПЛК предлагать команды, являющиеся одинаковыми и по внешнему виду, и по действию. Ваш ПЛК предлагает два набора команд, позволяющих решать широкий спектр задач автоматизации: набор команд МЭК, соответствующий стандарту МЭК1131-3 для программирования ПЛК, и набор команд SIMATIC, разработанный специально для ПЛК.

Когда STEP 7-Micro/WIN установлен в режим МЭК, он отображает красный ромб  в дереве команд рядом с командами, которые не определены стандартом МЭК1131-3. Есть несколько ключевых различий между системой команд SIMATIC и системой команд МЭК:

  • Набор команд МЭК ограничивается командами, которые являются стандартными среди поставщиков ПЛК. Некоторые команды, обычно включаемые в систему команд SIMATIC, не являются стандартными командами в спецификации МЭК1131–3. Они доступны для использования как нестандартные команды, но если вы используете их, то программа больше не является строго совместимой с МЭК1131-3.
  • У некоторых команд МЭКв форме блоков возможна работа с несколькими форматами данных. Это свойство часто называют «перегрузкой». Например, вместо того, чтобы иметь отдельные математические блоки ADD_I (сложение целых чисел) и ADD_R (сложение вещественных чисел), команда ADD стандарта МЭК1131–3 проверяет формат складываемых данных и автоматически выбирает правильную команду ПЛК. Это может несколько сэкономить затраты времени на программирование.
  • Когда вы используете команды МЭК, параметры команды автоматически проверяются на правильность формата данных, например, целое со знаком вместо целого без знака. Например, если вы попытались ввести целочисленное значение для команды,  которая ожидала битовое значение (вкл/выкл), то происходит ошибка. Это свойство помогает минимизировать синтаксические ошибки программирования.

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

  • Команды SIMATIC обычно исполняются быстрее. Некоторые команды МЭК могут иметь более длительные времена выполнения. Некоторые команды МЭК, например, таймеры, счетчики, умножение и деление, работают иначе, чем их аналоги в SIMATIC.
  • С набором команд SIMATIC можно использовать все три редактора программ (LAD, STL, FBD). С набором команд МЭК можно использовать только редакторы LAD и FBD.
  • Принцип действия команд МЭК стандартизован для различных марок ПЛК, т.е. программы, удовлетворяющие МЭК, могут разрабатываться независимо от системы автоматизации.
  • Набор команд SIMATIC содержит больше операций, чем определено в стандарте МЭК. Поэтому вы всегда можете включить команды SIMATIC в свою программу с командами МЭК.
  • МЭК1131-3 устанавливает, что переменные должны описываться с указанием типа, и поддерживает проверку типа данных системой.

 

Редакторы языка Step7

Функции редактора STL

Редактор STL отображает программу на языке, имеющем текстовую основу. Редактор STL дает возможность создавать программы управления, вводя мнемонические обозначения команд. В редакторе STL можно создавать программы, которые невозможно создать в редакторе LAD или FBD. Это объясняется тем, что, используя STL, вы программируете на «родном языке» ПЛК, а не в графическом редакторе, в котором имеются некоторые ограничения, чтобы можно было правильно изображать схемы соединений. Как показано ниже, программирование в текстовом редакторе очень похоже на программирование на языках ассемблера.

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

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

Особенности редактора STL:

  • STL лучше всего подходит опытным программистам.
  • STL иногда позволяет решать проблемы, которые вы не можете достаточно легко решить при помощи редактора LAD или FBD.
  • Можно использовать редактор STL только с системой команд SIMATIC.
  • Можно использовать редактор STL для просмотра или редактирования программы, созданной с помощью редактора LAD или FBD, обратное не всегда возможно.

Функции редактора LAD

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

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

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

Особенности редактора LAD:

  • Цепная логическая схема проста в использовании для начинающих программистов.
  • Графическое представление легко понимается и популярно во всем мире.
  • Редактор LAD можно использовать и с системой команд SIMATIC, и с системой команд МЭК 1131–3.
  • Для отображения программы, созданной при помощи редактора SIMATIC LAD, всегда можно использовать редактор STL.

Функции редактора FBD

Редактор функционального плана FBD отображает программу в виде графического представления, напоминающего обычные логические схемы. Нет никаких контактов и катушек, как в редакторе LAD, но имеются эквивалентные функциональные блоки.

Ниже представлен пример программы на языкеFBD.

FBD не использует понятия левой и правой токовой шины; поэтому понятие «поток сигнала» выражает аналогичное понятие потока управления через логические блоки FBD.

По этой причине путь состояния «1» через элементы FBD называется потоком сигнала. Происхождение потока сигнала и место назначения его выхода ставятся в соответствие непосредственно операнду. Логика программы вытекает из связей между функциональными блоками, обозначающими команды. Т.е. выход одной команды (например, блок логического И (AND)) может быть использован для разблокирования другой команды (например, таймера), формируя необходимую логику управления. Эта концепция позволяет решать широкий спектр задач управления.

Особенности редактора FBD:

  • Графическое представление функционального плана хорошо отражает процесс выполнения программы.
  • Редактор FBD можно использовать и с системой команд SIMATIC, и с системой команд МЭК 1131–3.
  • Для отображения программы, созданной при помощи редактора SIMATIC FBD, всегда можно использовать редактор STL.

Основные элементы программы Step7

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

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

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

Эта основная часть программы содержит команды, управляющие вашим приложением. ПЛК выполняет эти команды последовательно и однократно в каждом цикле. Основная программа называется также OB1.

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

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

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

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

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

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

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

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

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

 

Другие элементы программы

Другие блоки содержат информацию для ПЛК. Вы можете загрузить эти блоки одновременно с загрузкой своей программы.

Системный блок

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

Блок данных

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