Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки пр в Concept.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.87 Mб
Скачать

П.К. КУЗНЕЦОВ, В.И. СЕМАВИН, Ю.А. ЧАБАНОВ

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

В СРЕДЕ CONCEPT

Учебно-методическое пособие

Самара

Самарский государственный технический университет

2010

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Электропривод и промышленная автоматика»

П.К. КУЗНЕЦОВ, В.И. СЕМАВИН, Ю.А. ЧАБАНОВ

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

В СРЕДЕ CONCEPT

Утверждено

редакционно-издательским советом университета

в качестве учебно-методического пособия

Самара

Самарский государственный технический университет

2010

Печатается по решению редакционно-издательского совета СамГТУ

УДК 004.43(075.8)

К 89

Языки программирования в среде Concept: учебно-методическое пособие / П.К. Кузнецов, В.И. Семавин, Ю.А. Чабанов. – Самара: Самар. гос. техн. ун-т, 2010. – 88 с.:ил.

Приведено краткое описание языков программирования FBD, LD, SFC, ST и IL в среде Concept для программируемых логических контроллеров компании Schneider Electric (Франция) и примеры простейших программ.

Предназначено для студентов, обучающихся по специальности 140604 «Электропривод и автоматика промышленных установок и технологических комплексов» и по другим родственным специальностям.

Рецензенты:

канд. тех. наук, доцент В.П. Курган

УДК 004.43(075.8)

© П.К. Кузнецов, В.И. Семавин,

Ю.А. Чабанов, 2010

© Самарский государственный

технический университет, 2010

Предисловие

Предлагаемое пособие предназначено для изучения языков программирования для программируемых логических контроллеров (ПЛК) компании Schneider Electric (Франция), изучаемых в дисциплине «Микропроцессорные средства в электроприводах и технологических комплексах» студентами очного и заочного факультета специальностей 140601 и для студентов других родственных специальностей.

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

Авторы в сжатой форме изложили основные возможности языков программирования, полное описание которых приведено в [1], оценили их достоинства и недостатки, дали рекомендации по выбору языков программирования.

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

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

Введение

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

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

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

В пособии описаны языки программирования FBD, LD, SFC, ST и IL, входящие в состав среды разработки приложений для ПЛК – Concept, ориентированной на использование с контроллерами компании Schneider Electric (Франция) [1 – 3]. Эти языки рекомендованы IEC для программирования ПЛК. Среда Concept позволяет создавать и отлаживать программы на персональном компьютере, а затем переносить их в ПЛК.

1. Основные особенности языков программирования

Язык FBD (Function Block Diagram – язык функциональных блок-схем) является языком графического программирования, в котором используется аналогия с электронной схемой, поэтому он наиболее понятен для электриков. FBD позволяет реализовывать сложные алгоритмы управления объектами автоматизации путем вызова готовых функций и функциональных блоков различной степени сложности и связей между ними. Функции и функциональные блоки размещены в обширных библиотеках. Они могут использоваться также и в других языках, что делает FBD незаменимым при разработке программного обеспечения для ПЛК.

В языке LD (Ladder Diagram – язык лестничных схем) для создания программы используются графически отображенные контакты, катушки и функциональные блоки. Программа на LD представляет собой аналог релейно-контактной схемы, что облегчает ее понимание электриками, работающими с устройствами релейной автоматики. Язык релейных схем известен еще со времен Эдисона. LD впервые был применен в ПЛК компаниями Modicon Франция) и Alen-Bradly (США) в 70-х годах прошлого века.

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

Язык SFC (Sequential Function Chart – язык последовательных функциональных схем) является графическим языком. Язык разработан в 1979 г. Его прототипом является язык Grafcet компании Telemecanique (Франция). Язык построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131-3. Он удобен для описания как последовательных, так и параллельных процессов. На нем легко и естественным образом описываются технологические процессы, что делает его понятным для специалистов различного профиля. Недостатком языка является отсутствие в нем возможности реализации арифметических операций, поэтому он часто используется совместно с другими языками.

Язык ST (Structured Text – язык структурированного текста) по синтаксису похож на язык Pascal и легко понятен для программистов, изучающих языки высокого уровня. Он позволяет создавать программы, выполняющие любые логические и математические операции. Недостатком языка является то, что текстовая форма представления программ не дает наглядного представления ни о структуре программы, ни о происходящих в ней процессах.

Языки SFC и ST дополняют друг друга и в паре составляют полную и завершенную среду программирования.

Язык IL (Instruction List – лист инструкций) – текстовый язык ассемблерного уровня и наиболее понятен для программистов, создающих программы на языке Ассемблер. IL позволяет достичь высокой оптимальности кода: программные блоки, написанные на IL, имеют высокую скорость исполнения и наименее требовательны к ресурсам контроллера. Недостатками IL являются: высокая трудоемкость программирования, трудность модификации написанных на нем программ, малая степень «видимого» соответствия исходного текста программы и решаемой задачи.

Для всех перечисленных языков в Concept используются типы данных, приведенные в табл. 1.1. Обобщенные типы данных в таблице идентифицируются префиксом «ANY».

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

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

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

Для передачи данных применяются также литералы (непосредственные данные), константы и прямые адреса (смотри табл. 1.2)

Таблица 1.1

Типы данных в Concept

Иерархия типов данных

Тип

данных

Кол-во битов

Диапазон значений

ANY_ELEM

ANY_BIT

BOOL

1

0, 1 (False, True)

BYTE

8

WORD

16

ANY_NUM

ANY_INT

INT

16

–32768 … 32767

DINT

32

–2147483648 … 2147483647

UINT

16

0 … 65535

UDINT

32

0 … 4294967295

ANY_REAL

REAL

32

-8.43·10–37 … +3.36·1038

TIME

32

0 … 4294967295 [мс]

Примечание: Данные типа BOOL, BYTE и WORD в Concept воспринимаются, как последовательности бит, над которыми могут выполняться только поразрядные логические операции, недопустимые для других типов данных. Эти данные могут быть преобразованы в другие типы данных (см. табл. 2.4).

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

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

Таблица 1.2

Адреса каналов модулей ввода/вывода ПЛК

Тип канала

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

Первый вариант

Второй вариант

Префикс

Пример

Префикс

Пример

Входы модуля дискретного ввода

1

%100001

%100002

….

IX

%IX00001

%IX00002

….

Выходы модуля дискретного вывода

0

%000001

%000002

….

QX

%QX00001

%QX00002

….

Входы модуля аналогового ввода

3

%300001

%300002

….

IW

%IW00001

%IW00002

….

Выходы модуля аналогового вывода

4

%400001

%400002

….

QW

%QW00001

%QW00002

….

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

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

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