ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
Язык 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)
Примечание: Данные типа BOOL, BYTE и WORD в Concept воспринимаются, как последовательности бит, над которыми могут выполняться только поразрядные логические операции, недопустимые для других типов данных. Эти данные могут быть преобразованы в другие типы данных (см. табл. 2.4).
Для ПЛК компании Schneider Electric определены четыре области адресного пространства памяти, в которые пересылаются данные из модулей дискретного или аналогового входа. Из этих же областей пересылаются данные в модули дискретного или аналогового выхода. Адреса отдельных каналов модулей состоят из префикса, определяющего область памяти, и собственно адреса. В табл. 1.2 приведены обозначения префиксов для различных модулей и примеры адресов. Адрес первого канала первого модуля должен начинаться с 00001. Адрес первого канала последующего модуля должен следовать за адресом последнего канала предыдущего модуля.
Программа состоит из программных секций. Каждая секция программируется только на одном языке. Порядок выполнения секций задается при их создании. При этом вначале выполняется 1-я секция, затем 2-я и т.д. В программах для передачи и задания данных используются переменные, константы и литералы (непосредственные данные). При выполнении программы значения констант и литералов изменяться не могут. Переменным должно быть присвоено уникальное имя. Переменные делятся на адресные (локализованные) и безадресные (нелокализованные). Для адресных переменных должен быть указан адрес, по которому они размещаются в памяти. Для безадресных переменных адрес в явном виде не указывается.
|