Читайте также:
|
|
Язык 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 | 0, 1 (False, True) | |||
BYTE | – | |||||
WORD | – | |||||
ANY_NUM | ANY_INT | INT | –32768 … 32767 | |||
DINT | –2147483648 … 2147483647 | |||||
UINT | 0 … 65535 | |||||
UDINT | 0 … 4294967295 | |||||
ANY_REAL | REAL | -8.43·10–37 … +3.36·1038 | ||||
TIME | 0 … 4294967295 [мс] | |||||
Примечание: Данные типа BOOL, BYTE и WORD в Concept воспринимаются, как последовательности бит, над которыми могут выполняться только поразрядные логические операции, недопустимые для других типов данных. Эти данные могут быть преобразованы в другие типы данных (см. табл. 2.4).
Для ПЛК компании Schneider Electric определены четыре области адресного пространства памяти, в которые пересылаются данные из модулей дискретного или аналогового входа. Из этих же областей пересылаются данные в модули дискретного или аналогового выхода.
Адреса отдельных каналов модулей состоят из префикса, определяющего область памяти, и собственно адреса. В табл. 1.2 приведены обозначения префиксов для различных модулей и примеры адресов. Адрес первого канала первого модуля должен начинаться с 00001. Адрес первого канала последующего модуля должен следовать за адресом последнего канала предыдущего модуля.
Таблица 1.2 | |||||
Адреса каналов модулей ввода/вывода ПЛК | |||||
Тип канала | Область памяти | ||||
Первый вариант | Второй вариант | ||||
Префикс | Пример | Префикс | Пример | ||
Входы модуля дискретного ввода | %100001 %100002 …. | IX | %IX00001 %IX00002 …. | ||
Выходы модуля дискретного вывода | %000001 %000002 …. | QX | %QX00001 %QX00002 …. | ||
Входы модуля аналогового ввода | %300001 %300002 …. | IW | %IW00001 %IW00002 …. | ||
Выходы модуля аналогового вывода | %400001 %400002 …. | QW | %QW00001 %QW00002 …. | ||
Программа состоит из программных секций. Каждая секция программируется только на одном языке. Порядок выполнения секций задается при их создании. При этом вначале выполняется 1-я секция, затем 2-я и т.д.
В программах для передачи и задания данных используются переменные, константы и литералы (непосредственные данные). При выполнении программы значения констант и литералов изменяться не могут.
Переменным должно быть присвоено уникальное имя. Переменные делятся на адресные (локализованные) и безадресные (нелокализованные). Для адресных переменных должен быть указан адрес, по которому они размещаются в памяти. Для безадресных переменных адрес в явном виде не указывается.
Дата добавления: 2015-11-14; просмотров: 66 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ОСНОВНЫЕ ОСОБЕННОСТИ | | | ЯЗЫК ФУНКЦИОНАЛЬНЫХ БЛОК-СХЕМ - FBD |