Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


История программируемого логического контроллера (ПЛК)



История программируемого логического контроллера (ПЛК)

Еще в прошлом веке для автоматизации процесса использовались обычные для нас реле. И управление механизмом осуществлялось тысячами реле, установленных в огромной комнате, в которую входило огромное количество проводов, а выходило еще больше. Отладка и небольшое изменение логического управления в этой схеме требовало пересмотра всех схем буквально с самого начала. Пионером в рассмотрении решений этой проблемы стали инженеры подразделения Hydramatic компании GMotors в конце 60-х годов прошлого века и уже в 1968 г. инженеры GMotors разработали критерии для «standard machine controller». Критерии, выставленные к первой системе управления, были следующими:

· полупроводниковая система, которая была бы гибкой, как компьютер, но по цене сопоставима с аналогичной конфигурацией, реализованной на базе реле;

· система должна легко монтироваться и программироваться с помощью релейной логики, чтобы программирование было интуитивно понятно инженерам, еще не работавшими с такими системами;

· все это должно было работать в промышленных условиях, т.е. нормально выдерживать наличие пыли, влажности, электромагнитных наводок;

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

Над первым контроллером работали такие компании, как Information Instruments, Inc., Digital Equipment Corp, Century Detroit, Bedford Associates. А первый контракт получила компания Bedford Associates, основанная Ричардом Морли (Richard Morley). Новая технология получила название MODICON (Modular Digital Control). В июне 1969 г. был продан первый Программируемый контроллер 084 сери, а всего было продано порядка 100 таких устройств. Опыт первых контроллеров дал начало следующей серии 184 в 1973 г.

Компания Allen-Bradley (купившая Information Instruments, Inc. в 1969 г.) не отказалась от дальнейших разработок программируемых контроллеров, которые вначале были громоздки и сложны (модели PDQ-II и PMC). С 1971 г. по 1974 г. шла разработка новой концепции, позже известной как серия 1774 PLC, успешно зарекомендовавший себя за многие годы использования. Allen-Bradley назвали свое устройство «Programmable Logic Controller», а термин PLC стал стандартом в промышленности.

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

От РС-совместимых контроллеров ПЛК отличают:

· исключительно высокая надежность;

· возможность одновременной обработки нескольких алгоритмов со строго детерминированным временем реакции;

· масштабируемость системы;

· высокая скорость обмена данными между несколькими процессорными модулями;

· возможность аппаратного резервирования;

· поддержка практически всех существующих полевых шин и коммуникационных интерфейсов.

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

 

 

Определение и описание программируемого логического контроллера

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

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

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

 
 


Рисунок 1

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

Рисунок 2

 

Рассмотрим цепь RL (рисунок 2). В зависимости от характеристики тока на катушке будет меняться магнитное поле на сердечнике, которое управляет переключателем S2.

Установившийся ток в этой цепи будет определяться только ЭДС Е и резистивным сопротивлением R (внутреннее сопротивление), т.к. после окончания переходного процесса i = const и uL = Ldi/dt = 0, т.е. iy = E/R.

Полный ток в переходном процессе:


 

Для определения постоянной I найдем начальное значение тока. До замыкания ключа S1 ток, очевидно, был нулевым, а т.к. подключаемая цепь содержит индуктивность, ток в которой не может измениться скачкообразно, то в первый момент после коммутации ток останется нулевым. Отсюда

Подставляя найденное значение постоянной I в выражение для тока, получим

Из этого выражения можно определить падения напряжения на резисторе uR и индуктивности uL

Из выражений (1) – (3) следует, что ток в цепи нарастает по экспоненте с постоянной времени = L/R от нулевого значения до значения Е/R (рисунок 3). Падение напряжения на сопротивлении повторяет кривую тока в измененном масштабе. Напряжение на индуктивности в момент коммутации скачкообразно возрастает от нуля до Е, а затем снижается по экспоненте.

 
 

 


Рисунок 3

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

Исходя из вышесказанного, изменение параметров схемы при подачи/отключении питания в реле происходит через определенный промежуток времени, который обычно составляет около 10 – 50 мс.

Этот принцип действия используется и в определении режима реального времени, который определятся как отклик системы на определенное воздействие за строго определенное время Δ t.

Обычно Δ t может быть установлено в ПЛК от 3 мс.

Идеальный ПЛК

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

 

Образцовый ПЛК

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

1) снимаем мгновенное значение входов;

2) спокойно думаем, считая, что значение входов еще не изменилось;

3) выбираем значения для выходов.

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

Теоретически доказано, что если произвольный сигнал не содержит частот выше f, то он может быть полностью восстановлен, если известны его мгновенные значения, взятые через равные промежутки времени f/2 (теорема Котельникова). Для логических сигналов это означает, что нам достаточно выбрать самый короткий импульс, на который мы должны реагировать, и сделать наш рабочий цикл вдвое короче. То есть, если мы имеем дело с силовым реле, то необходимо и достаточно иметь рабочий цикл, равный 50 мс. Делать его короче нет смысла.

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

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

 

Понятие «Входы-выходы» ПЛК

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

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

Выходы используют три вида сигналов: дискретные, аналоговые и специализированные.

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

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

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

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

 

 

       
 
Структура ПЛК
 
   
Переключатель

 

 


Магнитный клапан
Коммутатор
Переключатель
Переключатель

 

Рисунок 4

Принцип работы ПЛК

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

Образ входного процесса (состояние входов) записывается в адресную память. Адресная память подразделяется на битовую и словарную области. В стандартном использовании памяти в битовую область записываются дискретные значения, а в словарную – аналоговые.

На рисунке 5 представлен стандартный цикл работы ПЛК:

 

 
 

 


Рисунок 5

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

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

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

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

В прочие фазы входят инициализация таймеров и счетчиков, оперативное самотестирование и другие аппаратно-зависимые задачи.

 

Время реакции

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

Посмотрим на примерах, как происходит обработка сигналов логическим контроллером.

 


Рисунок 6

tВх = время опроса входов;

tВых = время переключения выходов;

tВып. прог. = время выполнения программы;

tЦикла обработки = время цикла обработки (tВх+ tВып. прог.+ tВых).

 

На рисунке 6 показаны три полных цикла и включения входных сигналов в режиме работы ПЛК. Вход(Х1) включился после считывания входов и будет обработан лишь в следующем цикле.

ПЛК также не зафиксировал своевременно переключение Входа(Х2). Следовательно, если контроллер должен был включить Выход(Y1) например при одновременном включении Входа(Х1) и Входа(Х2), то это событие не было обработано контроллером и операция не была выполнена.

ПЛК также не зафиксировал переключение Входа(Х3) и, возможно, не сможет обработать это событие никогда.

Есть три варианта решения этой проблемы:

Ø Использование контроллера с более высоким быстродействием;

Ø Воспользоваться функцией задержки времени. Эта функция увеличит длительность входного сигнала, как показано на рисунке 7;

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

       
   
 
 

 


Рисунок 7 Рисунок 8

 

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

  Выполнение программы
Вход(Х1)
  Выполнение программы

 

 

Рисунок 9

Адресное пространство

Адресное пространство ПЛК подразделяется на сегменты:

· Область образа входного процесса

· Область образа выходного процесса

· Область памяти для программы

· Область прямо адресуемой памяти

· Оперативная память пользователя (ОЗУ)

Для привязки переменной к адресу используется следующее объявление:

«Имя переменной» АТ % «Прямой адрес» «Тип»;

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

Область образа выходного процесса обозначается буквой Q (Quit) и называется выходной областью памяти. Данная область памяти доступна только для записи.

Прямо адресуемая память имеет префикс M. Данная область памяти доступна для чтения и записи.

Далее следует символ типа данных:

· Х (нет) – Бит;

· В – Байт;

· W – Слово;

· D – Двойное слово;

· L – Длинное слово.

Пример адресации Var AT %IX2.0 BOOL; обозначает битовый адрес переменной Var, во втором слове (отсчет с нуля) нулевой бит. Битовый адрес может быть только типа BOOL.

Объявление переменной без префикса AT физически означает выделение ей определенной памяти в ОЗУ. Причем транслятор автоматическизаписывает данную переменную в свободной области памяти ОЗУ.

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

 

На рисунке 10 показано одно слово (W) во входной и выходной областях памяти. Напомним, что слово состоит из байтов или 16 битов. Отсчет начинается с нуля.

 

Quits
QW0

QB0 QB1
%QX0.0 %QX0.1 %QX0.7 %QX0.8 %QX0.9 %QX0.15
%IX0.0 %IX0.1 %IX0.7 %IX0.8 %IX0.9 %IX0.15
Inputs
IB0

IB1
IW0

 

Промышленные сети

Промышленная сеть – это среда передачи данных, которая должна отвечать множеству разнообразных, зачастую противоречивых требований. Она представляет собой набор стандартных протоколов обмена данными, позволяющих связать воедино оборудование различных производителей, а также обеспечить взаимодействие нижнего и верхнего уровней АСУ. Наконец, промышленная сеть – это образ мысли инженера, определяющий конфигурацию и принципы построения системы. От того, какая сетевая архитектура выбирается сегодня, будут зависеть не только затраты на создание системы, но и срок ее жизни, ее способность к развитию, то есть, как принято сейчас говорить, интегральная стоимость владения.

Сформулируем лишь некоторые основные требования, которые можно предъявить к «идеальной» промышленной сети:

· Производительность;

· Предсказуемость времени доставки информации;

· Помехоустойчивость;

· Доступность и простота организации физического канала передачи данных;

· Максимально широкий сервис для приложений верхнего уровня;

· Минимальная стоимость устройств аппаратной реализации, особенно на уровне контроллеров;

· Возможность получения «распределенного интеллекта» путем иерархического распределения и локализации выполнения задач;

· Управляемость и самовосстановление в случае возникновения нештатных ситуаций.

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

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

Топология сети

Наиболее распространенный тип сетевой топологии – это общая шина. Основное ее преимущество заключается в простоте, дешевизне и легкости переконфигурирования. Такая сеть не боится отключения или подключения устройств во время работы. Хорошо подходит для сильно распределенных объектов. Однако имеет и ряд «генетических» недостатков: присутствие в каждой точке сети общего трафика, опасность потери связи при одиночном обрыве канала связи или фатальном выходе из строя одного узла.

Топология типа «кольцо» очень популярна со времен выхода на рынок сети Token Ring фирмы IBM. Использование протокола с циклической передачей маркера (IEEE-802.5) позволяет сетям с такой топологией обеспечить абсолютную предсказуемость и хорошую пропускную способность. Основными недостатками топологии являются высокая стоимость организации канала связи, нерациональное (в большинстве случаев) использование сетевого трафика и потеря всей синхронизации в случае сбоя или отключения хотя бы одного из узлов.

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

 

Уровни промышленной сети

Уровни определены Международной организацией по стандартизации (ISO/OSI) и отображены в таблице.

Application Прикладной уровень
Presentation Уровень представления
Session Уровень сессий
Transport Транспортный уровень
Network Сетевой уровень
Data link Канальный уровень
Physical Физический уровень

 

На физическом уровне определяются физические характеристики канала связи и параметры сигналов.

Канальный уровень формирует основную единицу передаваемых данных – пакет – и отвечает за дисциплину доступа устройства к каналу связи (Medium Access Control) и установление логического соединения (Logical Link Control).

Сетевой уровень отвечает за адресацию и доставку пакета по оптимальному маршруту.

Транспортный уровень разбирается с содержимым пакетов, формирует ответы на запросы, необходимые для уровня сессий.

Уровень сессий оперирует сообщениями и координирует взаимодействие между участниками сети.

Уровень представления занимается преобразованием форматов данных, если это необходимо.

Прикладной уровень – это набор интерфейсов, доступных программе пользователя.

На практике большинство промышленных сетей ограничивается только тремя из них, а именно физическим, канальным и прикладным. Наиболее «продвинутые» сети решают основную часть задач аппаратно, оставляя программную прослойку только на седьмом уровне. Дешевые сети (например, ModBus) зачастую используют на физическом уровне RS-232 или RS-485, а все остальные задачи, начиная с канального уровня, решают программным путем.

CanOpen

Используемый интерфейс. Базируется на разработанной в автомобильной отрасли технологии CAN и электрических спецификациях RS-485.

Максимальное число узлов. 64.

Скорость передачи данных и длина кабеля. 125, 250, 500 и 1000 Кбит/с, от 100 до 500 метров.

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

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

Недостатки. Малая распространенность за пределами Европы, чрезмерная сложность и запутанность протокола с точки зрения разработчиков, а также общие для всех CAN-сетей недостатки (ограниченная пропускная способность, ограниченный размер сообщений, ограниченная длина соединения).

Тип доступа. С коллизиями.

 

 

Modbus

Используемый интерфейс. RS-485, RS-422, RS-232, TCP/IP.

Описание. Ведомые устройства прослушивают линию связи. Мастер подает запрос (посылка) в линию и переходит в состояние прослушивания линии связи. Ведомое устройство отвечает на запрос, пришедший в его адрес. Окончание ответной посылки мастер определяет по временному интервалу между окончанием приема предыдущего байта и началом приема следующего. Если этот интервал превысил время, необходимое для приема двух байтов на заданной скорости передачи, прием кадра ответа считается завершенным. Синтаксис команд протокола позволяет адресовать 247 устройств на одной линии связи стандарта RS-485.

Режим работы. Master/slave.

 


 

Программирование ПЛК

Типы данных

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

 

Целочисленные типы

BYTE, WORD, DWORD, LWORD, SINT, INT, DINT, LINT, USINT, UINT, UDINT и ULINT – все это целочисленные типы. Они отличаются различным диапазоном сохраняемых данных и, естественно, различными требованиями к памяти. Подробно данные характеристики представлены в следующей таблице:

 

Тип Диапазон значений Размер в байтах
BYTE 8 бит
WORD 16 бит
DWORD 32 бита
LWORD 64 бита
SINT -128…128
INT -32768…32768
DINT -231…231 -1
LINT -263…263 -1
USINT 0…255
UINT 0…65535
UDINT 0…232-1
ULINT 0…264-1

 

Очевидно, присвоение данных большего типа переменной меньшего типа может приводить к потере информации.

Логические переменные

Объявляются словом BOOL и называются булевыми. Они могут принимать только два значения: логический 0 (False – ложь) и логическая 1 (True – истина). Переменная занимает 8 бит памяти, если не задан прямой битовый адрес.

Действительные типы

REAL и LREAL данные в формате с плавающей запятой, используются для сохранения рациональных чисел. Для типа REAL необходимо 32 бита памяти и 64 для LREAL.

 

REAL – представляет действительные числа диапазона ±10±38. Точность представления – 6-7 десятичных цифр.

LREAL – представляет действительные числа диапазона ±10±307. Точность представления – 15-16 десятичных цифр.

Числа с плавающей запятой записываются в формате с точкой (5.35) или в экспоненциальном порядке (1.8Е10).

Интервал времени

TIME – используется для обозначения интервала времени без ограничения. Формат записи: t#10h15m5s, что означает 10 часов, 15 минут и 5 секунд. Каждый элемент не может превышать верхнюю границу диапазона представления, например s – ограничена 59 секундами. Максимальное значение для типа TIME: 49d17h2m47s295ms (4194967295 ms).

 

Тип Краткое обозначение Начальное значение Запись
DATE D 1 января 1970 г. D#2009-08-24
TIME_OF_DAY TOD 0: 00 TOD#16: 25: 15.47
DATE_AND_TIME DT 00: 00 1 января 1970 г. DT#2009-08-24-16: 25: 15.47

 

Типы TOD, DATE и DT сохраняются физически как DWORD. Все три типа данных занимают 4 байта.

 

 

Строковый тип

Строковый тип STRING представляет строки символов. Максимальный размер строки определяет количество резервируемой памяти и указывается при объявлении переменной. Размер задается в круглых или квадратных скобках. Если размер не указан, принимается размер по умолчанию – 80 символов. Например:

 

Str1: =STRING(10); – объявление строки длинной 10 символов.

Str1: =’Продолжаем’

 

Массивы

Массивы – пользовательские типы данных. Элементарные типы данных могут образовывать одно-, двух-, и трехмерные массивы. Массивы могут быть объявлены в списке глобальных переменных. Путем вложения массивов можно получить многомерные массивы, но не более 9 мерных ( " ARRAY[0..2] OF ARRAY[0..3] OF …" ).

Синтаксис:

 

< Имя_массива>: ARRAY [< ll1>..< ul1>, < ll2>..< ul2>, < ll3>..< ul3> ] OF < базовый тип>

 

где ll1, ll2, ll3 указывают нижний предел индексов; ul1, ul2 и ul3 указывают верхние пределы. Индексы должны быть целого типа. Нельзя использовать отрицательные индексы. Например:

 

X: ARRAY [1..20, 1..10] OF INT;

Txt: ARRAY [0..10] OF STRING(32);

Mass1: ARRAY [1..6] OF SINT: =1, 1, 2, 2, 2, 2;

Mass1: ARRAY [1..6] OF SINT: =1, 1, 4(2);

Третье и четвертое представления идентичны, в четвертом случае присутствует сокращение N(a, b, c), обозначающее – повторить последовательность a, b, c … N раз.

 

Разработка программы

Модель окружения

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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 2769; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.146 с.)
Главная | Случайная страница | Обратная связь