trust already work Создание программы ПЛК - часть 1 » Портал инженера

Создание программы ПЛК - часть 1

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

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

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

Давайте посмотрим на пример. Мы начнем с того, что все мы знаем, как это работает.
Светофоры

Мы рассмотрим три примера программирования для огней. Будут использоваться два разных подхода к программированию, но программная функция одинаков. Последний пример изменит логику воспринимаемого автомобиля.
Логика: Первый пример:Программа светофора 
Пример программы для пересечения светофора с огнями, обращенными к северу / югу и западу / востоку. Зеленый горит 5 секундЖелтый горит 2 секундыКрасный имеет перекрытие 3 секунды
Эта программа использует дискретные биты и таймеры для выполнения этой задачи.
Бит $ FirstScan сбрасывает таймеры, поэтому, если мощность будет потеряна, свет начнется с перекрытия красного / красного перед повторным запуском последовательности.
Выходы управляются, когда таймеры включены (Готово) или выключены (Не выполнено)Северный / Южный светофор
Западные / восточные светофоры
Вы заметите, что эта программа полностью документирована и понятна.
Эта программа основана на событиях времени. Базовая ставка составляет одну секунду. Если мы создадим список того, как выглядят выходы после каждой секунды, а затем отправляют их на физический канал вывода, у нас будет второй тип подхода к этой логике ...

Логика:
Второй пример:
Программа светофора 

Пример программы для пересечения светофора с огнями, обращенными к северу / югу и западу / востоку.
Зеленый горит в течение 5 секунд.
Желтый горит в течение 2 секунд.
Красный имеет перекрытие в 3 секунды.

Эта программа использует косвенную адресацию для программы.
Давайте посмотрим на список
желаемых результатов на основе следующих адресов: (обратите внимание на местоположение бит) Y0 - Red_Light_NS
Y1 - Желтый_Light_NS
Y2 - Зеленый_Light NS
Y8 - Красный_Light_WE
Y9 - Желтый_Light_WE
Y10 - Зеленый_Light_WE

У нас есть 20 шагов в последовательности, основанной на 1 секунде. (От V1000 до V1019)
Вот как выглядят шестнадцатеричные значения, переведенные в двоичные: 
Бит $ FirstScan сбрасывает указатели, поэтому, если мощность будет потеряна, начнется красное / красное перекрытие перед повторным запуском.

Давайте посмотрим на программу:
Бит $ FirstScan переместит число 1000 в V0. V0 будет действовать как наш указатель на список выходов. (От V1000 до V1019)
Каждые 1 секунду ($ 1Second) V0 будет увеличиваться на 1. Затем мы сравним значение до 1020, которое указывает конец последовательности. Если значение больше или равно, то наш указатель сбрасывается на значение 1000. Это делается путем перемещения числа 1000 в V0.
Последний шаг - косвенное перемещение нашего выходного слова V0 на наше выходное слово V1. Косвенно означает, что значение в V0 укажет на ячейку памяти, продиктованную номером, который она содержит.
ex: V0 имеет значение 1000, поэтому это означает, что V [V0] переместит V1000 в наше выходное слово.
Установка выходов
Наши физические выходы устанавливаются путем обрезания нашего выходного слова (V1) в биты. В зависимости от программируемого контроллера это можно сделать, перейдя к слову, которое может быть адресовано битами, или в нашем случае мы можем записать слово в биты. [V1: #]
Этот программный код выделяется меньше, чем первый, используя дискретные биты и таймеры. С документацией также легче читать.

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

Север будет оставаться зеленым, пока автомобиль не приблизится с запада. Он останется зеленым еще на 1 секунду, прежде чем пожелтеть и завершит цикл. Если автомобиль всегда там, то огни всегда будут работать.
X0 - Автомобиль Запад / Восток
Только пара контактов добавлена к логике в строке, которая увеличивает указатель. Настройка выходов не изменяется.
Если значение в V0 равно 1006, то прекратите увеличивать V0. X0 (Автомобиль на пересечении), тогда указатель будет увеличиваться. Цикл завершится и продолжится до тех пор, пока X0 не появится. Затем он остановится, когда указатель V0 снова будет равен 1006.

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


Источник: http://automation-control-blog.blogspot.ru


Обсудить на форуме

Комментарии

Добавить комментарий
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    GE Fanuc Series 90-70 Поиск и устранение неисправностей

      Добро пожаловать в раздел «Поиск и устранение неисправностей в электронике и электронике»: устранение неисправностей системы PLC серии 90-70.

    Разблокировка регулировки подачи (ROV) на Sinumerik 840D

      Часто бывает, например, для тестирования программы, что заданную в кадре подачу или перемещение на ускоренной подаче с помощью функции G0, необходимо ограничить с помощью регулятора подачи «Feed override switch».

    VersaPro - Simatic Step7 - MEDOC - LM90M

    Разработана фирмой GE (USA) и FANUC (Japan). Применяется для программирования PLC серий FANUC VersaMax и серии 90 Micro, 90-30, 90-70.

    Быстрый старт с SIMATIC Step7. Создание проекта

    Пакет S7-PLCSIM позволяет эмулировать работу программируемых контроллеров  SIMATIC 7-300/S7-400/C7/WinAC на программаторе/компьютере и предназначен для отладки программ пользователя без наличия реальной аппаратуры управления.

    Запись управляющей программы для станка TORNOS DECO20 c компьютера на флэш-карту

    1. Подключаем флэш-карту к компьютеру. 2. Запускаем программу DNC32 с помощью двойного щелчка левой кнопки мыши на ярлыке. 3. В появившемся окне программы нажимаем кнопку «Select Part» и выбираем нашу УП.

    Расшифровка диагностической информации Hitachi

    Hitachi EC-Series, Programmable controller EM-II (EM-2), H-Series H-200, H-250, H-252