Память плк которая используется для хранения программы и начальных значений данных

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

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

Прикладная программа целиком и полностью формируется пользователем и отвечает за последовательность включения и выключения выходных устройств на основе состояния входов. Для составления управляющей программы не достаточно знать основы одного из языков программирования. Необходимо разобраться как «железо» ПЛК будет «общаться» с управляющей программой. Главным понятием становится адресное пространство контроллера.

Программирование микроконтроллеров: Урок 2. Организация памяти данных (регистры)

Распределение памяти ПЛК

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

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

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

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

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

Программирование ПЛК. 3. Структура памяти.

Поэтому, в ПЛК применяется специальный принцип нумерации. Заключается он в следующем: все возможные входные и выходные цепи делятся на равные группы. В разных контроллерах количество цепей в одной группе может быть равно 8 (байт) или 16 (слово). (В дальнейшем рассматривается вариант с 8-ми разрядными УВВ). Такая группа имеет свой собственный номер.

Каждому входу в рамках такой группы также присвоен номер от 0 до 7. Соответственно для получения доступа к входу или выходу следует задать номер группы (байта, слова) и номер бита в группе. Формат задания обычно у каждого производителя свой.

Формат задания номера входа или выхода в контроллерах DeltaElectronics Принцип задания номера входа в ПЛК DeltaElectronics заключается в разделении на область входов (Х) и выходов (Y). Нумерация выполняется в восьмеричной системе. Это значит, что максимальная цифра, которая может присутствовать в номере — 7. Следующая за седьмой группа будет иметь номер 10, за 17 – 20 и т.д.

С нумерацией битов проблем обычно не возникает, так как их значение может быть от 0 до 7. В итоге общий формат входа выглядит следующим образом: X04, X53, X107 и т.д. Буква указывает тип бита входа, с которым производится работа, последняя цифра – номер бита в группе, цифры в середине – номер группы. (на самом деле нумерация входов и выходов последовательная, но для упрощения восприятия человеком представлена подобным образом).

Соответственно формат выхода полностью аналогичен, за исключением смены типа на Y.Обращение к другим областям имеет несколько иной формат. Используется идентификатор области памяти и обычный десятичный порядковый номер.
Формат задания номера входа или выхода в контроллерах OMRON . Контроллеры OMRON имеют 16-ти разрядную структуру памяти.

Читайте также:
Как сделать программу с кнопками

Обращение к любой области памяти абсолютно идентично, будь это память устройств ввода/вывода (УВВ), таймеров или рабочих пользовательских данных. Для доступа используется идентификатор блока, номер слова и номер бита. Например, обращение к области УВВ выглядит как CIO0.5, CIO8.15, обращение к рабочей памяти W101.7 и т.д.

Соответственно можно обратиться как к целому слову, так и к любому отдельному биту слова. Память ввода вывода (CIO) в контроллерах OMRON может быть разделена на отдельные области. Так для моноблочных ПЛК CP1L, значения с CIO0.0 до CIO99.15, будут относиться к входам, а начиная с CIO100.0 начнется область выходов, область CIO3000.0-CIO3015.15 используется для интерфейса связи и т.д.

Распределение групп может быть жестким, когда каждому модулю или устройству ввода вывода назначается конкретный номер группы (Обычно для УВВ моноблочных ПЛК, модулей АЦП), либо гибким. В последнем случае, применяемом в модульных системах, конкретный номер группы для конкретного модуля зависит от положения этого модуля в составе ПЛК и типе используемых модулей до него.

Каждому модулю может назначаться одна или несколько групп сигналов ввода/вывода. Если в модуле имеется только 4 входа, для него все равно резервируется полная группа. Свободные биты не используются.

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

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

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

Конкретные обозначения областей памяти, а также доступные диапазоны адресов приводятся в документации на контроллеры. В качестве примера ниже приведена таблица распределения памяти для контроллеров ES/EX/SS от Delta Electronics. Описание всех областей дано ниже.

Распределение памяти ПЛК ES/EX/SS от Delta Electronics

Тип Описание Диапазон Кол-во Примечание
X Физические входы X0..X127, 128 точек Всего 256 точек
Y Физические выходы Y0..Y127, 128 точек
M Вспомогательные реле (маркеры) Общие M0..M511, M768..M999, 744 точки Всего 1280 точек
Используется в программе в качестве промежуточных реле
Энергонезависимые M512..M767 256 точек
Специальные M1000..M1279, 280 точек
Т Таймеры 100мс T0..T63, 64 точки Всего 128 точек
10мс (M1028=ON) T64..T126, 63 точки (если M1028=OFF, то 100 мс)
1мс T127, 1 точка
С Счетчики 16-бит счет вверх С0..С111, 112 точек 128 точек
16-бит счет вниз С112..С127, 16 точек
32-бит высокоскоростной, вверх/вниз, энергонезависимый С235..С238, С241, С242, С244, 1 фаза 1 вход, 7 точек; С246, С247, С249, 1 фаза 2 входа, 3 точки; С251, С252, С254, 2 фазы 2 входа, 3 точки 13 точек
S Шаговое реле Инициализирование S0..S9, 10 точек; Всего 128 точек
Возвращение в нулевую точку. S10..S19, 10 точек (*2), исп. с инструкцией IST;
Энергонезависимое S20..S127, 108 точек
D Регистры данных Общие D0..D407, 408 точек Всего 912 точек
Энергонезависимые D408..D599, 192 точки
Специальные D1000..D1311, 312 точек
Индексные E,F – 2 точки Для косвенной адресации
N Для мастер-контроля N0..N7, 8 точек
P Для инструкций CJ, CALL P0..P63, 64 точки
I Для прерываний Внешние I001, I101, I201, I301, 4 точки
Временные I6xx, (xx=1..99), шаг 1 мс
Коммуникационные I150, 1 точка

Физические терминалы

Физические входы. Биты физических входов представляют собой ячейки памяти, значение которых отражает логический уровень сигнала на соответствующем входе. Если, например, на входе №3 присутствует высокий логический сигнал (напряжение 24В), то ячейка памяти X03 будет содержать 1. И наоборот, при отсутствии напряжения на входе, в ячейке всегда записан 0.

Физические выходы. Данная область памяти имеет прямо противоположные свойства, относительно физических входов. Состояние этих ячеек напрямую отражается на состоянии выходных элементов. При записи 1 в Y03, транзистор выхода №3 будет открыт (либо реле включено), и через него начнет протекать электрический ток. Соответственно нагрузка, подключенная к данному выходу будет активирована.

Вспомогательные реле

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

Читайте также:
Silverlight нужна ли эта программа

Вспомогательные реле делятся на три группы:

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

Функциональные реле

Таймеры. Главное назначение таймеров состоит в формировании различных временных интервалов. Таймер имеет вход, активирующий отсчет времени, и выход, который включается при истечении заданного времени. Количество таймеров, доступных в программе ограничено.

Каждый таймер имеет собственный номер, начинающийся с буквы T. В контроллерах серии SS2 доступны три типа таймеров, отличающихся дискретностью счета: 100мс, 10мс, 1мс. Использование первого типа обеспечивает отсчет с дискретностью 100мс. Это значит что значение 3, на входе таймера приведет к задержке включения на 300мс, значение 10 даст 1000мс или 1 с. Текущее значение счета всегда можно получить, если использовать регистр, соответствующий номеру таймера. Это позволяет организовывать как контроль за работой, так и реализовать несколько задержек от одного таймера.

Счетчики. Назначение счетчика понятно из его названия. Он выполняет подсчет количества импульсов, поступающих ему на вход. В случае, если значение совпадает с уставкой, то активируется выход счетчика. Доступны 3 вида счетчиков. 16 разрядный счетчик на увеличение увеличивает свое значение на 1 при каждом входном импульсе.

Счетчик на уменьшение наоборот, уменьшает значение на 1. Максимальное число импульсов, доступных для счета у 16 разрядных блоков – 65535. №2 разрядные счетчики имеют более сложную структуру, так как предназначены для организации работы совместно с внешними фотоимпульсными датчиками. Также как и у таймеров, текущее значение счетчика доступно для использования в программе.

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

Регистры данных

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

  • ← Принцип функционирования ПЛК
  • Логическое управление →

Источник: logiccontrol.ru

Принципы функционирования ПЛК

Естественно, при программировании контроллеров программист должен опираться на определённую функциональную структуру ПЛК (с учётом конкретной конфигурации) и принципы организации его работы. Требования к функциональности ПЛК определены в первой части стандарта МЭК 61131 [20].

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

Области памяти ПЛК

В большинстве ПЛК выделяют три типа памяти:

• загрузочная память используется для хранения программы и начальных значений данных. Загрузочная память чаще всего выполняется энергонезависимой (РПЗУ, EEPROM, FLASH). Часто загрузочная память выполняется в виде отдельной карты памяти, объём которой зависит от конкретных потребностей пользователя;

• рабочая память используется для размещения рабочей программы и данных во время исполнения программы;

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

Если проводить аналогию с обычной ЭВМ, то загрузочная память соответствует жёсткому диску, рабочая память – оперативной памяти ЭВМ. А вот системная память – это особенность программируемых контроллеров. Её появление неразрывно связано с рабочим циклом ПЛК.

Рабочий цикл ПЛК

Обмен данными между ПЛК и управляемым технологическим процессом (датчиками и исполнительными механизмами) является неотъемлемой частью АСУ ТП. Поэтому в большинстве ПЛК операция опроса состояния входов и установки нужных значений на выходах реализуется системным программным обеспечением ПЛК и не требует никаких усилий со стороны программиста. Такие программируемые контроллеры работают по методу периодического опроса входных данных. Именно на такую модель опирается стандарт МЭК 61131-3.

Рабочий цикл ПЛК включает четыре фазы [18]:

• выполнение пользовательской программы;

• установку значений выходов;

• некоторые вспомогательные операции (диагностика, подготовка данных для отладчика, сетевой обмен и т.д).

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

Такая организация работы ПЛК обеспечивает:

Читайте также:
Лучшая программа копирования dvd

• неизменность входных переменных в течение рабочего цикла;

• гарантированное время постоянства значений на выходных каналах контроллера (изменение не чаще чем один раз в рабочий цикл);

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

Для доступа программиста к значениям на входах и выходах ПЛК выделяются специальные области памяти. Чаще всего, это либо две области: область памяти входов и область памяти выходов, либо четыре: области памяти дискретных и аналоговых входов и области памяти дискретных и аналоговых выходов. Тогда рабочий цикл ПЛК можно представить следующим образом (рис. 2.8).

Входные дискретные и аналоговые сигналы обрабатываются модулями дискретного ввода (Discrete Input, DI) и аналогового ввода (Analog Input, AI) и в виде двоичного кода записываются в области памяти входов (первая фаза).

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

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

Четвёртая фаза используется, например, для обмена данными по сети.

Источник: cyberpedia.su

Области памяти

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

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

· Посредством программируемой Flash EPROM карты памяти, которая подключается в предусмотренное гнездо CPU. С помощью карты памяти расширяется объем загрузочной памяти. Карточка памяти содержит не стираемую информацию в ПЗУ.

Рисунок 2.3 –Виды памяти ПЛК

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

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

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

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

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

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

Таймеры и счетчики являются также областями памяти, в которые управляющее устройство заносит числовые величины для функций времени и счета (например, подсчет количества событий, установление временной задержки и т.д.).

Аккумуляторы (AKKU) — это буферная память, которая работают вместе с арифметически – логическим устройством при операциях загрузки или пересылки.

Адресные регистры – это ячейки памяти для записывания базового адреса при регистровой косвенной адресации.

Источник: studopedia.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru