Jump to content
  • Sign in to follow this  

    Отображение памяти ПЛК и адресация ввода-вывода

       (0 reviews)

    caixiaofeng

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

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

    Каналы дискретного ввода и вывода ПЛК соответствуют отдельным битам в массиве памяти ПЛК. Аналогично, каналы аналогового ввода и вывода в ПЛК соответствуют многобитовым словам (непрерывным блокам битов) в памяти ПЛК.

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

    Наиболее распространенной маркой ПЛК является Allen-Bradley (Rockwell), в которой используется уникальная форма адресации ввода-вывода (примечание 1), что обычно сбивает студентов с толку. По этим двум причинам (популярность и путаница) большую часть этого раздела я сосредоточусь на правилах обращения Аллена-Брэдли.

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

    Карта памяти ПЛК

    В следующей таблице показана частичная карта памяти для ПЛК Allen-Bradley SLC 500.

    33-1.gif

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

    Обратите внимание, что использование Алленом-Брэдли слова «файл» отличается от языка персональных компьютеров. В контроллере SLC 500 «файл» — это блок оперативной памяти, используемый для хранения данных определенного типа.

    Напротив, «файл» на персональном компьютере представляет собой непрерывный набор битов данных, имеющих коллективное значение (например, файл текстового редактора или файл электронной таблицы), обычно хранящийся на жестком диске компьютера.

    В каждом из «файлов» ПЛК Allen-Bradley имеется несколько «элементов», каждый элемент состоит из набора битов (8, 16, 24 или 32), представляющих данные.

    Элементы адресуются по номеру, следующему через двоеточие после обозначения файла, а отдельные биты внутри каждого элемента адресуются по номеру, следующему за косой чертой. Например, первый бит (бит 0) второго элемента в файле 3 (двоичный) будет адресоваться как B3:2/0.

    В ПЛК Allen-Bradley, таких как модели SLC 500 и PLC-5, файлы 0, 1 и 2 зарезервированы исключительно для дискретных выходов, дискретных входов и битов состояния соответственно.

    Таким образом, буквенные обозначения O, I и S (типы файлов) избыточны по сравнению с числами 0, 1 и 2 (номера файлов).

    Другие типы файлов, такие как B (двоичные), T (таймеры), C (счетчики) и другие, имеют свои собственные номера файлов по умолчанию (3, 4 и 5 соответственно), но также могут использоваться в некоторых пользовательских файлах. определенные номера файлов (10 и выше).

    Например, файл 7 в контроллере Allen-Bradley зарезервирован для данных «целочисленного» типа (N), но целочисленные данные также могут храниться в любом файле с номером 10 или выше по усмотрению пользователя.

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

    Обычно вы не увидите целочисленное слово, адресованное, например, как N:30 (целочисленное слово 30 в памяти ПЛК), а скорее как N7:30 (целочисленное слово 30 в файле 7 памяти ПЛК), чтобы отличить его от другого целочисленного слова. 30, которые могут существовать в других файлах памяти ПЛК.

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

    Общая схема ПЛК Allen-Bradley SLC 500 показана здесь:

    33-2.gif

    Не для всех типов файлов требуется различать отдельные слова и биты. Например, целочисленные файлы (N) состоят из одного 16-битного слова для каждого элемента. Например, N7:5 будет 16-битным целым словом номер пять, хранящимся в седьмом файле.

    Однако тип дискретного входного файла (I) должен рассматриваться как отдельные биты, поскольку каждая отдельная точка ввода-вывода относится к одному биту. Таким образом, I:3/7 будет битом номер семь, находящимся во входном элементе три.

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

    Целые числа, напротив, представляют собой наборы по 16 бит каждый в карте памяти SLC 500, поэтому обычно к ним обращаются как к целым словам, а не побитно.

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

    Таким образом, мы должны использовать как десятичную точку, так и косую черту при обращении к данным внутри таймера. Предположим, мы объявили в нашей программе ПЛК таймер с адресом T4:2, который будет таймером номер два, содержащимся в четвертом файле таймеров.

    Если бы мы хотели обратиться к текущему значению этого таймера, мы бы сделали это как T4:2.ACC (слово «Аккумулятор» таймера номер два в четвертом файле). Бит «Готово» того же таймера будет иметь адрес T4:2/DN (бит «Готово» второго таймера в четвертом файле).

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

    Например, если 8-канальная плата дискретного ввода вставлена в слот 4 ПЛК Allen Bradley SLC 500, и вы хотите указать второй бит (бит 1 из диапазона от 0 до 7), вы должны адресовать его с помощью следующая этикетка: I:4/1.

    Для обращения к седьмому биту (бит номер 6) на карте дискретного вывода, подключенной к слоту 3, потребуется метка O:3/6. В любом случае числовая структура этой метки точно указывает, где реальный входной сигнал подключается к ПЛК.

    Пример отображения памяти ПЛК

    Чтобы проиллюстрировать взаимосвязь между физическим вводом-выводом и битами в памяти ПЛК, рассмотрим этот пример ПЛК Allen-Bradley SLC 500, показывающий, что один из его дискретных входных каналов находится под напряжением (переключатель используется в качестве «пускового» переключателя для электрического мотор):

    33-3.gif

    Если карта ввода или вывода имеет более 16 бит – как в случае с 32-битной платой дискретного вывода, показанной в слоте 3 примера стойки SLC 500 – схема адресации далее подразделяет каждый элемент на слова и биты (каждое «слово» »имеет длину 16 бит).

    Таким образом, адрес бита номер 27 32-битного модуля ввода, подключенного к слоту 3, будет I:3.1/11 (поскольку бит 27 эквивалентен биту 11 слова 1 – слово 0 адресует биты с 0 по 15 и слово 1 адресует биты с 16 по 31):

    33-4.gif

    На фотографии крупным планом 32-битной платы ввода постоянного тока для системы ПЛК Allen-Bradley SLC 500 показана такая многословная адресация:

    33-5.gif

    Первые шестнадцать входных точек на этой плате (левая группа светодиодов с номерами от 0 до 15) имеют адреса от I:X.0/0 до I:X.0/15, где «X» относится к номеру слота, в котором находится карта. подключен в. Следующие шестнадцать входных точек (правая группа светодиодов с номерами от 16 до 31) имеют адреса от I:X.1/0 до I:X.1/15.

    Устаревшие системы ПЛК обычно обозначают каждый из каналов ввода-вывода такими метками, как «I:1/3» (или эквивалентными), указывающими фактическое расположение клеммы входного канала на блоке ПЛК.

    Стандарт программирования IEC 61131-3 называет эту канальную адресацию точек данных ввода-вывода прямой адресацией. Синонимом прямой адресации является абсолютная адресация.

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

    Каждый раз, когда техник или программист просматривает программу, он должен «перевести» каждую из этих меток ввода-вывода на какое-либо реальное устройство (например, «Вход I:1/3 на самом деле является кнопкой запуска двигателя смесителя средней емкости). »), чтобы понять функцию этого бита.

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

    Стандарт программирования IEC 61131-3 называет это символической адресацией в отличие от «прямой» (на основе канала) адресации, что позволяет программистам произвольно называть каналы ввода-вывода способами, которые имеют смысл для системы в целом.

    Если использовать наш простой пример переключателя «Пуск» двигателя, то теперь программист может назначить вход I:1/3 (пример прямого адреса) как «Выключатель запуска двигателя» (пример символического адреса) внутри программы, что значительно повышает читаемость программы ПЛК.

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

    Современная тенденция в адресации ПЛК заключается в том, чтобы вообще избегать использования прямых адресов, таких как I:1/3, чтобы они не появлялись нигде в программном коде.

    Серия программируемых логических контроллеров Allen-Bradley «Logix» является наиболее ярким примером этой новой конвенции на момент написания этой статьи.

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

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

    Введя нотацию адресации Аллена-Брэдли для ПЛК модели SLC 500, я теперь откажусь от нее в пользу современного соглашения о символической адресации в остальных статьях, чтобы избежать привязки примеров программирования к конкретной марке или модели. Каждая точка данных в моих программах ПЛК будет иметь собственное имя тега, а не метку прямого (на основе канала) адреса.

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


×
×
  • Create New...