Файл: Международные и отечественные стандарты языков программирования, сходство и отличия стандартов.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 304

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки [a.5.]. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application). Язык VBA представляет собой язык Visual Basic, встроенный в приложения Microsoft Office. Сам же язык Visual Basic является языком программирования, входящим в семейство языков, поддерживаемых инструментальной средой разработки Visual Studio фирмы Microsoft. Язык Visual Basic – это продвинутая версия языка Basic (стандарт ISO/IEC 10279:1991 – Programming languages – Full Basic). В настоящее время существует достаточно много различных версий и компиляторов языка Basic.

В конце ХХ в. с распространением Интернета расширилась возможность распределенной обработки данных, что отразилось и на развитии языков программирования. Появились языки, ориентированные на создание настольных и серверных приложений, такие как Java, C#, Perl и PHP, языки описания документов — HTML, описания данных — XML. На момент написания данной работы известно, что язык программирования C# стандартизирован в ECMA (ECMA-334) и ISO (ISO/IEC 23270).

Единственным отечественным языком программирования, получившим широкую известность, стал РЕФАЛ (РЕкурсивных Функций АЛгоритмический язык) – язык манипулирования символьными объектами (программы, формулы, тексты и т.д.). Помимо описания семантики алгоритмических языков РЕФАЛ нашел и другие, не менее важные применения. В первую очередь это машинное выполнение громоздких аналитических выводов в теоретической физике и прикладной математике, интерпретация и компиляция языков программирования, машинное доказательство теорем и т.п. Однако распространённость этого языка на сегодняшний день мала.

Первая версия языка РЕФАЛ была создана в 1966 году Валентином Турчиным в качестве метаязыка для описания семантики других языков. Затем, в результате появления достаточно эффективных реализаций на ЭВМ, он стал находить практическое использование в качестве языка программирования. На сегодняшний день основными диалектами языка являются РЕФАЛ-2 (1970-е), РЕФАЛ-5 (1985) и РЕФАЛ+ (1990), которые отличаются друг от друга деталями синтаксиса и набором дополнительных средств, расширяющих первоначальный вариант. 

3. Стандарты языков программирования для ПЛК

В начале 1970-х годов программируемые логические контроллеры (ПЛК) стали доступны в качестве замены для проводных релейных логических панелей [a.6.]. Развитие программирования релейных диаграмм (LD) увеличило признание отрасли, потому что графическая программная диаграмма позволила электрикам, практически не обученным программированию LD, следить за логическим ходом каждой ступени, точно так же, как схема электрического управления может использоваться для цели устранения неполадок.


Разработчики программ обычно рисуют релейно-логическую схему вручную. Затем диаграмма переводится в список, состоящий из инструкций и переменных. Фактический язык программирования, используемый для ввода команд в память ПЛК, называется списком команд (IL) или списком операторов (STL). Язык IL очень похож на язык ассемблера, используемый в программировании на ПК. Наконец, программа вводится в память контроллера с помощью цифровой клавиатуры.

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

В 1980-х годах появилось программное обеспечение для программирования основных ПЛК той эпохи. Интересно, что большая часть этого программного обеспечения была произведена сторонними компаниями, такими как Taylor Software, ICOM и другими, а не самими производителями ПЛК.

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

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

В результате эти сторонние поставщики программного обеспечения много раз переходили из рук в руки. Программное обеспечение Taylor было приобретено компанией Total Control Products, которая позднее была приобретена GE Fanuc. Schneider Electric также приобрела части программного обеспечения Taylor, которые включали компоненты Modicon. Программное обеспечение ICOM стало частью Rockwell Software.


В дополнение к доступности относительно недорогих ПК и программного обеспечения для программирования ПЛК, написанных для ПК, в 1980-х годах произошло еще одно значительное событие. Сегодня большинство крупных производителей производят платформы для разработки программного обеспечения, которые соответствуют спецификации Международной электротехнической комиссии (МЭК) 61131-3. Этот стандарт был запущен в 1982 году и опубликован в 1993 году как Международный стандарт МЭК 1131 для программируемых контроллеров.

Как отмечалось в стандарте МЭК, он был выпущен, в частности, «для определения для каждого из наиболее часто используемых языков программирования основных областей применения, синтаксических и семантических правил, простых, но полных базовых наборов элементов программирования, применимого теста и средства, с помощью которых производители могут расширять или адаптировать эти базовые наборы для своих собственных программируемых реализаций контроллера ». МЭК 61131 состоит из 10 частей, охватывающих различные аспекты контроллеров автоматизации производства. МЭК 61131-3 – та часть, которая охватывает программирование.

Стандарт МЭК 61131-3 важен, потому что он обеспечивает согласованность всех программных продуктов, соответствующих стандарту. Например, стандартная определенная МЭК функция в ПЛК Brand-X работает так же в ПЛК Brand-Y. Ценным результатом этой стандартизации является то, что функции и функциональные блоки выглядят одинаково и имеют одинаковые определенные входы и выходы, независимо от бренда интегрированной среды разработки (IDE) или рабочего стола с пользовательским интерфейсом, что позволяет инженеру или специалисту по техническому обслуживанию быстро понять логику и поток программ из программного обеспечения любого производителя.

Стандарт определяет пять языков программирования: LD, функциональная блок-схема (FBD), последовательная функциональная схема (SFC), структурированный текст (ST) и IL. МЭК 61131-3 определяет стандартные типы данных, соглашения об именах, поток программ и различные другие элементы программирования. Когда производитель ПЛК заявляет, что его программное обеспечение соответствует стандарту IEC 61131-3, это обычно означает, что программное обеспечение соответствует частям стандарта. МЭК заявляет, что для обеспечения совместимости программный пакет должен поддерживать как минимум один из пяти языков. CoDeSys может быть единственной платформой программирования, которая поддерживает все пять.


Производители и пользователи ПЛК могут также добавлять в стандарт пользовательские расширения, функциональные блоки и типы данных; это означает, что плавная передача проектов между платформами не вполне реальна, даже если платформы соответствуют стандарту IEC 61131-3. МЭК 61131-10 определяет форматы обмена файлами XML. Тем не менее, эта возможность все еще находится в стадии разработки. Остается только надеяться, что появится механизм для переноса проектов между платформами в один прекрасный день.

4. Создание приложения на стандартизированном языке

Настоящий раздел посвящен проектированию и программной реализации приложения на высокоуровневом языке программирования C# версии 7.0, поддерживающем стандарты ECMA-334 и ISO/IEC 23270. В качестве такого приложения рассматривается обучающая основам объектно-ориентированного программирования программа с тестовым контролем знаний, для реализации которой был выбран интерфейс программирования приложений Windows.Forms, являющийся частью Microsoft .NET Framework. С помощью Windows.Forms можно создавать приложения с полнофункциональным графическим интерфейсом, в то же время простые в использовании и обновлении [a.7.]. Выбранный язык программирования вместе со средой разработки позволяет полностью реализовать программу, отвечающую всем предъявленным ей требованиям.

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

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


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

Учебный материал, используемый в приложении, представлен документами в формате pdf. Для организации просмотра файлов с лекциями и семинарами необходимо наличие соответствующего программного обеспечения. В данной работе используется технология ActiveX – плагин, входящий в состав Adobe Acrobat Reader, бесплатного приложения международного стандарта для просмотра и редактирования pdf-документов. Компоненты ActiveX импортируются на панель элементов как объекты компонентной модели (рисунок 1).

Рисунок 1 – Импорт компонентов для чтения pdf

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

Листинг 1. Обработка кнопок выбора лекции или семинара

private void buttons_Click(object sender, EventArgs e)

{

// получить номер лекции / семинара по тегу нажатой кнопки:

int theme = int.Parse((sender as Button).Tag.ToString());

// создать новую форму для просмотра лекции / семинара:

TheoryForm tf = new TheoryForm(theme);

tf.Show(); // показать форму

this.Dispose(false); // уничтожить текущую форму

}

Вызов конструктора формы TheoryForm позволяет создать форму с находящимися на ней компонентами, а также загрузить выбранную в главном модуле программы тему (лекцию либо семинар в формате pdf) на компонент данных axAcroPDF1, объект технологии ActiveX (листинг 2). Файлы расположены в директории по пути \bin\Debug\theory.

Листинг 2. Конструктор формы TheoryForm

public TheoryForm(int n)

{

InitializeComponent();

themeNumber = n; // получить номер темы из главной формы

path = Application.StartupPath + @"\theory\" + themeNumber + ".pdf"; // ввести путь к соответствующему теме pdf-файлу

// Если файл по заданному пути существует, то

if (File.Exists(path))

{

axAcroPDF1.src = path; // загрузить файл в pdf-ридер

// ввести в заголовок формы номер выбранной темы:

this.Text = "Тема " + themeNumber;

}

else // иначе

// вывести на экран сообщение о том, что файл не найден

MessageBox.Show("Файл " + themeNumber + ".pdf не найден!");

// Если номер темы = 1, то

// кнопка перехода к предыдущей теме должна быть неактивной

if (themeNumber == 1)

leftButton.Enabled = false;

// Если номер темы = 6, то

// кнопка перехода к следующей теме должна быть неактивной

if (themeNumber == 6)

rightButton.Enabled = false;

}

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