Графика в программировании - IT Новости из мира ПК
Semenalidery.com

IT Новости из мира ПК
74 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Графика в программировании

Графика в программировании

Процедура инициализации в Турбо-Паскале имеет три аргумента:

Она может быть выполнена так:

var gd , gm : integer ;

Первые две команды можно заменить одной:

Целая константа detect =0 в модуле Graph автоматически распознает драйвер и устанавливает режим максимального разрешения для данной машины.

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

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

uses graph; var gd, gm, errorcod: integer;

if errorcod <>grok then

writeln(‘ ошибка графики ‘);

Процедура Halt останавливает выполнение программы и возвращает управление операционной системе.

Для формирования палитры используется система смешения красного, зеленого и синего цветов и изменения яркости луча. Цвет задается номером из списка цветов палитры в интервале 0 .. 15.

Процедуры s е1со1ог( ) и setbkcolor ( ) устанавливают текущий цвет рисунка и цвет фона. При инициализации графики по умолчанию устанавливается черный фон и белый цвет рисунка.

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

Координаты точек воспринимаются в «экранной» системе координат, в которой начало — верхний левый угол экрана, ось «х» направлена вниз, ось «у» -направо. Максимальные значения координат определяются разрешимостью экрана (см. табл. 3.1).

Первый аргумент процедуры setlinestyle ( a , b , t ) а — стиль линии второй параметр b -«образец» — имеет значение 4, если а=4, в остальных случаях b =0; третий параметр t -толщина линии — может иметь значение 1 (нормальная толщина) или 3 (жирная линия).

Основные процедуры модуля Graph

Первый аргумент процедуры setfillstyle ( t , c ) — тип закраски t — принимает значения из интервала 0..12. Наиболее употребителен тип t = 1 — заполнение фигуры текущим цветом.

Для вывода текста на графический экран сначала выполняется процедура settextstyle ( f , n , d ), устанавливающая шрифт f , направление вывода п и размер символов (параметр d ). При f = 0 используется стандартный точечный шрифт, встроенный в систему Турбо-Паскаль. С использованием других шрифтов познакомимся ниже. Направление вывода п принимает значения 0 (горизонтальный вывод) и 1 (вертикальный вывод).

Размер букв определяется параметром d, принимающим значения из интервала 1..10. Если d = 1 и f = 0, то каждый символ занимает квадрат 8*8 точек, при d > 1 сторона квадрата умножается на d.

Далее, с помощью процедуры outtextxy ( x , y , st ) строка st выводится на экран, начиная с точки (х,у).

settextstyle (0,0,2); оuttехtху(100,200,’горизонтальная строка’);

оuttехtху(100,230,’размер увеличен вдвое’);

Примеры графических программ

Пример 1: программа рисует звездное небо с 400 «звездами», вспыхивающими постепенно, и полную желтую луну.

initgraph (gd, gm, ‘ ‘); randomize;

for k:=l to 400 do

begin putpixel(random(640),random(480),random(15)+1); delay(10);

repeat until keypressed; closegraph

Пример 2. Узор. Используя простейшие геометрические образы строят замечательные графические изображения. Ниже приведена программа изображения муарового узора, полученного пересечением двух семейств расходящихся отрезков прямых. Качество и изображение получаемого узора зависит в основном от трех параметров: kl , k 2 — расстояний между отрезками слева и справа ; h — смещения вниз (вверх) всего семейства.

var gd,gm,errCode,i,kl,k2,h; integer;

kl:=8; k2:=3; h:=110; gd:=Detect; InitGraph(gd,gm.») ;

if errCode = grOk then begin

for i:=l to (420 div kl) do

begin line(0,i*kl,640,i*k2+h); line(0,i*k2+h,640,i*kl);

repeat until keypressed; CloseGraph;

end else writeln(‘errCode=’,errCode)

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

Пример 3: программа 31 строит столбчатую диаграмму, наглядно отражающую числовую информацию о населении 6 крупных городов мира: Токио, Гамбурга, Москвы, Бангкока, Мехико и Парижа.

const m:array[l..6] of real=(11500,2300,9700.5100,12400,8200) ;

string =(‘ Токио ‘,’ Гамбург ‘,’ Москва ‘,’ Бангкок ‘,’ Мехико ‘,’ Париж ‘);.

var gd,gm,k,n,s:integer; st:string[6];

for k:=l to 12 do begin n:=1000*k; str(n.st);

outtextxy (120,20, ‘Население городов (тысяч)’); settextstyle (0,0,1);

for k:=l to 6 do begin setfillstyle(1,k+2);

repeat until keypressed;

Процедура bar 3 d ( xl , yl , x 2, y 2, d , top ) рисует трехмерный столбец, глубина которого определяется параметром d . Последний параметр процедуры top — логического типа. Если top = true , рисуется верхнее основание столбика, в противном случае оно не изображается, что позволяет рисовать столбики один над другим. Диаграммы с трехмерными столбиками красивы, но их труднее создавать.

Построение графиков функций. Построение графиков функции — неотъемлемая часть большинства программ, предназначенных для обучения математике, физике. Ниже представлен пример программы построения графика функции y = x * x * sin ( l / x ). на произвольном отрезке [а, b]. Количество точек графика (параметр п) также задается произвольно (точка х=0 исключается, так как в ней функция не определена). В программе также определяются величины tl =( xl — x 0)/( b — a ) и t 2=( yl — y 0)/(2 m ), которые означают масштабы по осям Х и Y соответственно.

График рассматриваемой функции представлен на двух отрезках [а, b] и [-0.1,0.1]. Чтобы построить график другой функции, достаточно задать ее аналитический вид в описании функции ( function f ).

var gd,gm, errCode : integer; a,b : real; n : integer;

procedure grafun(xO,xl,yO,yl,n :word;a,b;real);

var h,m,x, tl,t2 : real; i, u,v,xv,yv : word;

h:=(b-a)/n; ( поиск максимума f(x)> m:=abs(f (a));

for i:=l to n do if m

t 2:=( yl — y 0)/(2* m ); (построение координатных осей)

Moveto ( xO , yv — round ( f ( a ) * t 2)); (установка курсора в начало графика>

setcolor(3); ( построение графика ) for i:=l to n do begin x:=a+i*h; u:=x0+round((x-a)*tl);

end; ( конец процедуры > begin

clrscr; write (‘ введи a,b и n : ‘); readln(a,b,n); gd^Detect;

if errCode = grOk then begin

repeat until keypressed; CloseGraph;

end else writeln( «ezzCode=’ ,errCode)

Для изображения поверхностей, определяемых функцией двух переменных z = f ( x , y ), можно использовать разные способы. Одним из них является метод построения семейства одномерных графиков функции z = f ( x . y ) от одной переменной х или у различных фиксированных значениях другой. Это может быть хорошей тренировкой для самостоятельной работы по освоению графики.

Построение движущихся изображений. Особую ценность в графике представляет организация движения фрагментов рисунка. Наиболее просто это сделать по следующему плану:

• нарисовать фрагмент в нужном месте экрана;

• стереть фрагмент, рисуя его цветом фона или используя процедуру cleardevice ;

• снова нарисовать фрагмент в другом месте экрана.

Такой способ осуществлен в программе billiard , где два шарика радиусом 5 пикселей разных цветов двигаются с одинаковой скоростью внутри зеленого прямоугольника, построенного с помощью процедуры bar .

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

В программе также рассмотрена ситуация соприкосновения шариков во время их движения. Она решается примитивно просто: каждый шарик меняет направление своего движения на противоположное.

var х ,y,dx,dy,gd,gm:integer; xl,yl,dxl,dyl:integer;

procedure blow(a,b:integer; var c,d:integer);

begin if (a 523) then c:=-c;

if (b 363) then d:=-d;

gd:=detect; initgraph(gd,gm,»); setcolor(14);

x:=320; y:=240; dx:=2; dy:°2;

xl:=320; yl:=200; dxl:=-2; dyl:=-2;

repeat circle(x,y,5); setcolor(4); circle(xl,yl,5);

blow(x,y,dx,dy); blow(xl,yl,dxl,dyl); delay(10);

Еще один способ организации движения на экране, широко применяющийся в компьютерных играх, связан с использованием нескольких экранных страниц. В режиме Vgamed их две, а в режиме Vgalo — четыре. Страницы имеют номера: 0,1. В любой момент времени одну из страниц можно сделать видимой и посмотреть ее содержимое на экране с помощью процедуры setvisualpage (ном ep ). Визуальная страница обычно пассивна, т.е. на ней нельзя выполнять графические процедуры. Другую страницу можно объявить активной с помощью процедуры setactivepage ( номep ). Активная страница невидима для пользователя. На ней можно подготовить другой рисунок. В следующий момент можно поменять роли страниц, т.е. визуальную сделать активной и невидимой и на ней рисовать следующий кадр, а бывшую активную сделать визуальной и показать объект в новом месте экрана.

Читать еще:  Язык программирования в машинах первого поколения

В программе helicopter с помощью страниц моделируется вращение винтов вертолета. Две процедуры verti и vert 2 подготавливают рисунки вертолета с разным положением винтов. Изображения выводятся на разные страницы, которые потом по очереди становятся то видимыми, то активными.

В программе организовано также движение вертолета по эллиптической орбите. Центр орбиты — точка (х0,у0) — располагается в центре экрана, числа а=250 и b =130 -горизонтальная и вертикальная полуоси эллипса. Положение вертолета на орбите ‘вычисляется по формулам

где р — чекущии угол, образованный радиус-вектором точки эллипса с осью абсцисс.

var gd,gm,u,t,z,k,xO,yorc,ac,vi:integer; p,a,b:real;

Образовательный портал

Электронный журнал Экстернат.РФ, cоциальная сеть для учителей, путеводитель по образовательным учреждениям, новости образования

  • Главная
  • Публикации в журнале
  • Методические разработки и пособия по ИКТ
  • Графические возможности языков программирования

Графические возможности языков программирования

Государственное бюджетное общеобразовательное учреждение
гимназия №66 Приморского района Санкт-Петербурга

Графические возможности
языков программирования

Разработчик: учитель информатики

ГБОУ гимназия №66

Калинина Мария Владимировна

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

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

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

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

1)сделать изучение программирования эмоционально привлекательным;

2)наглядно продемонстрировать результат выполнения алгоритма;

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

4)расширить спектр решаемых задач.

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

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

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

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

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

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

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

Для более старших школьников при изучении языков программирования высокого уровня, например, Pascal, VisualBasicили других на уроках или факультативных занятиях, также будет уместно изучить графические возможности этих языков.

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

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

fd — вперед на заданное число шагов

bk — назад на заданное число шагов

lt — поворот по часовой стрелке на заданное число градусов

rt — поворот против часовой стрелки на заданное число градусов

Графика в Си.

В графическом режиме в Си можно отображать на экране различные фигуры, строить изображения, реализовывать анимацию и компьютерные игры.

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

Структура программы с графикой в Си.

#include // подключение заголовочного файла с графическими функциями
#include
main()
<
initwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500
…рисуем графические объекты
getch(); // ждем нажатия клавиши
closegraph(); // закрываем графический режим
>

Основные графические объекты в си, такие как точка, линия, окружность, прямоугольник задаются с помощью системы координат. Система координат в графическом режиме Си задается следующим образом. Верхний левый угол экрана имеет координату x=0 и y=0.

Координата X задается слева направо. Т.е. чем больше X, тем правее точка.

Координата Y задается сверху вниз. Т.е. чем больше Y, тем ниже точка.

Максимальные X это ширина окна. Максимальное Y это высота окна.

Задание цвета изображения в Си

Чтобы задать цвет изображаемого объекта, используется оператор setcolor(номер цвета);

Таблица цветов в Си.

0 черный
1 синий
2 зеленый
3 морской волны
4 красный
5 фиолетовый
6 коричневый
7 светло-серый
8 темно-серый
9 светло-синий
10 светло-зеленый
11 светлый морской волны
12 светло-красный
13 светло-фиолетовый
13 светло-фиолетовый
14 желтый
15 белый

setcolor(4) ;// устанавливаем красный цвет

Отображение точки в Си.

Для рисования точки в графических программах си используется оператор

putpixel (x, y, номер цвета );

Читать еще:  Как перейти в безопасный режим

x, y – координаты точки

номер цвета – цвет, которым будет отображена точка

Отображение линии в Си

Для рисования отрезка в графических программах си используется оператор

x1, y1 – координаты одного конца отрезка

x2, y2 – координаты другого конца отрезка

Отображение окружности в Си

Для рисования окружности в графических программах си используется оператор

x, y – координаты центра окружности

r- радиус окружности

Пример. Отображение окружности белого цвета с центром 100, 100 и радиусом 20.

setcolor(15);// устанавливаем цвет рисования 15 — белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

Отображение прямоугольника в Си.

Для рисования прямоугольной рамки в графических программах си используется оператор.

rectangle (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла прямоугольника

x2, y2 – координаты нижнего правого угла прямоугольника

Чтобы задать цвет рамки необходимо предварительно установить цвет рисования с помощью оператора setcolor(номер цвета);

Для отображения закрашенного прямоугольника в Си используются два оператора.

setfillstyle ( 1, номер цвета );

bar (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла прямоугольника

x2, y2 – координаты нижнего правого угла прямоугольника

Закрашивание ограниченной области в Си.

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

setfillstyle (1, цвет закраски );

floodfill (x, y, цвет границы области);

x, y – координаты внутри области

цвет закраски – цвет , которым будет закрашиваться область

цвет границы области – цвет границы закрашиваемой области

Пример закрашенного кругав графических программах си

setcolor(15);// устанавливаем цвет рисования 15 — белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

setfillstyle ( 1, 15 ); // устанавливаем цвет заполнения круга белый -15

floodfill (100, 100, 15); // заполняем окружность, указывая точку внутри ее – центр

Пример графической программы на си

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

#include
#include
main()
<
initwindow(500, 500);// инициализируем графическое окно
// рисуем кузов
setfillstyle (1,4 ); // устанавливаем вид заливки 1 -полный, цвет заливки 4 — красный
bar(100, 150, 200, 170);// закрашенный прямоугольник нижняя часть кузова
bar(120, 150, 170, 130);// закрашенный прямоугольник верхняя часть кузова
// рисуем колеса
setcolor(15); // устанавливаем цвет колеса
circle(120, 170, 10); // левое колесо окружность ниже кузова
circle(170, 170, 10); // правое колесо окружность ниже кузова
setfillstyle (1,8); // устанавливаем вид заливки полный — 1 цвет серый — 8
floodfill(120,170,15); // закрашиваем круг левого колеса до границы круга цветом 15
floodfill(170,170,15); // закрашиваем круг левого колеса до границы круга цветом 15
getch(); // ждем нажатия кнопки
closegraph(); // выход из графического режима
>

Вернуться к содержанию Перейти к следующему уроку Случайные числа в Си

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

педагогические науки

  • Векслер Виталий Абрамович , кандидат наук, доцент, доцент
  • Саратовский государственный университет имени Н.Г. Чернышевского
  • ПРОГРАММИРОВАНИЕ
  • ФРАКТАЛЬНАЯ ГРАФИКА
  • РАСТРОВАЯ ГРАФИКА
  • ВЕКТОРНАЯ ГРАФИКА

Похожие материалы

Сегодня в рамках большинства технических и гуманитарных направлений изучется дисциплина «Компьютерная графика», в рамках которой студент знакомиться с понятиями растровой, векорной и фрактальной графики. Практикумы проводятся в соответствующих видам графики редакторах, это может быть Adobe Photoshop, Adobe Illustrator, Corel Photo-Paint, Corel Draw и другие. Для проведения занятий можно подобрать большое количество, из существующих, бесплатных графических редакторов.

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

Приведем примеры раскрытия данной темы используя среду программирования Visual Studio для создания графических изображений на языке С#.

На первом занятии студенты знакомятся с понятием интерфейса Windows — GDI (Graphics Device Interface, Graphical Device Interface), предназначенным для представления графических объектов и выводом их на монитор или принтер. В его задачу входит отрисовка линий, кривых, отображение шрифтов и обработку палитры. Данная технология предоставляет богатые возможности для работы с векторной и фрактальной графикой.

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

Выделим три варианта использования данного объекта:

1. объект для визуализации графических изображений возвращает метод CreateGraphics(), который имеется у всех объектов управления, производных от класса Control.

2. объект экземпляра класса Graphics можно создать, взяв за основу файл с точечным изображением:

3. ссылка на объект для рисования может быть получена из параметра PaintEventArgs, который передаётся в обработчик события Paint.

4. Graphics g = Graphics.FromHwnd(this.Handle);

Graphics.FromHwnd(this.Handle) — используемый метод FromHwnd из класса Graphics, который задает ссылку Handle на форму Windows.

Определены два этапа работы с графикой.

  1. Создание объекта Graphics.
  2. Использование объекта Graphics для рисования линий и фигур, отображения текста или изображения и управления ими.

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

  1. Опишите 3 метода или свойства классов Graphics, Color, Pen и SolidBrush, не рассморенных в теоретической части.
  2. Создайте собственное приложение выводящий на форму рисунок, состоящий из различных объектов (линий, многоугольников, эллипсов, прямоугольников и пр.), не закрашенных и закрашенных полностью. Используйте разные цвета и стили линий (сплошные, штриховые, штрихпунктирные). Пользователь может по нажатию клавиш перемещать его по экрану, менять его размер и поворачивать. Представьте три варианта создания изображение: через bitmap, через параметр PaintEventArgs, через ссылку Handle на форму Windows.
  3. Постройте график функции по своему варианту из лабораторной работы. Добавьте заголовок.
  4. Создайте фрактал по своему варианту.
  5. Анимация объекта
  6. Работа с растровым изображением.

Приведем некоторые результаты решения данных задач студентами.

1. Объектом для рисования становится поверхность формы. Студентам необходимо на форме изобразить соответсвующий график, учитывая, что система координат на форме, следующая: левый верхний угол формы являтся точкой с координатами 0,0 (центр системы координат); отсчет по оси абсцисс слава-направа — положительные значения х; отсчет по оси ординат сверху-вниз — положительные значения y. Предложенно простейшее решение: расчитать координаты графика функций, с учетом предложенного шага, ось ординат перенести на линию со значением 150 (данное число впоследствии можно сделать динамическим, зависящим от высоты окна), приступить к построению графика учитывая сдвиг и расширить значения по осям.

2. Построение фрактала «Кривая дракона». Алгоритм рекурсивного построения студентами изучен. Объетом для рисования становится объект pictureBoxNew.

3. Пример анимирования объекта на форме. Случайное движение объекта (звезда). За изменение прорисовки объекта с новыми координатами отвечает Timer: вычислив новые координаты он вызывает метод Paint для новой прорисовки на форме (при этом стирать старый объект не нужно).

Читать еще:  Мультипрограммирование в системах разделения времени

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

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

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

Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

Соучредители СМИ: Долганов А.А., Майоров Е.В.

Графическое программирование

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

Настоящую революцию в программировании систем автоматизации сделали языки графического программирования. Одним из первых в этом классе был графический язык среды Simulink, входящей в состав Matlab (MathWorks Inc), а также языки LabVIEW (National Instruments) и HP-VEE (Hewlett Packard). Они были предназначены и успешно использовались для сбора данных, моделирования систем автоматизации, автоматического управления, обработки собранных данных и их визуального представления в виде графиков, таблиц, звука, с помощью компьютерной анимации. Графические языки были настолько простыми и естественными, что для их освоения зачастую было достаточно метода проб и ошибок без использования учебников и консультаций. Человек, не знакомый с программированием на алгоритмических языках, пользуясь только логикой и понимая постановку прикладной задачи, мог собрать работающее приложение из готовых компонентов, набрасывая их мышкой на экран монитора и проводя графические связи для указания потоков информации.

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

Контроллеру требуется программа, в соответствии с которой он взаимодействует с объектом. В одних случаях речь идет только о сборе данных с объекта, в других — о логическом управлении (например, выполнении блокировок). Наконец, одно из основных применений контроллера — реализация функций непрерывного управления отдельными параметрами или технологическим аппаратом (процессом) в целом.

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

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

Были выдвинуты требования открытости системы, выполнение которых позволило бы унифицировать программные средства и упростить разработку:

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

— наличие коммуникационных средств (интерфейсов) для взаимодействия с другими компонентами системы управления;

-возможность портации ядра системы на ряд программно-аппаратных платформ.

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

Названия некоторых из этих пакетов приведены ниже:

-RSLogix 500, RS Logix 5, RSLogix 5000 фирмы Rockwell Software для программирования контроллеров различных семейств Allen-Bradley;

-DirectSOFT для контроллеров семейства Direct Logic фирмы Koyo;

-пакеты PL7и ConceptПО для программирования контроллеров различных семейств компании Schneider Electric;

-пакеты STEP 5, STEP 7 Micro, STEP 7 для программирования контроллеров семейств S5 и S7 фирмы Siemens;

-пакет Toolbox для конфигурирования контроллеров семейства Moscad;

-пакет TelePACEдля программирования контроллеров серий

TeleSAFE Micro 16 и SCADAPack фирмы Control Microsystems.

Стандартом МЭК 1131-3 определены пять языков программирования контроллеров: три графических (LD, FBD, SFC) и два текстовых (ST, IL).

LD (Ladder Diagram) — графический язык диаграмм релейной логики. Язык LD применяется для описания логических выражений различного уровня сложности.

FBD (Function Block Diagram) — графический язык функциональных блоковых диаграмм. Язык FBD применяется для построения комплексных процедур, состоящих из различных функциональных библиотечных блоков — арифметических, тригонометрических, регуляторов и т.д.).

SFC (Sequential Function Chart) — графический язык последовательных функциональных схем. Язык SFC предназначен для использования на этапе проектирования ПО и позволяет описать «скелет» программы — логику ее работы на уровне последовательных шагов и условных переходов.

ST (Structured Text) — язык структурированного текста. Это язык высокого уровня, по мнемонике похож на Pascal и применяется для разработки процедур обработки данных.

IL (Instruction List) — язык инструкций. Это язык низкого уровня класса ассемблера и применяется для программирования эффективных, оптимизированных процедур.

Графический интерфейс

Создание графических интерфейсов пользователя на компьютере явилось большим достижением в направлении развития средств диспетчерского управления. Главным эффектом от применения графического интерфейса является существенное снижение количества ошибок, допускаемых оператором (диспетчером) в стрессовых ситуациях при управлении производственными процессами. Проектирование пользовательского интерфейса основано на следующих принципах [Wang]:

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

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

· отсутствие «сюрпризов»: знакомые из прошлого опыта операции с элементами на экране должны вызывать знакомые реакции системы;

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

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

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

Ссылка на основную публикацию
Adblock
detector