Программа формирования ППК для управления двухзвенной КС на ЭОВ6
Формирование периферийных команд (ПК) для отключения комплекта посылки "Занято" на первом этапе обслуживания вызова (ЭОВ6). Функциональная схема работы программы формирования и выдачи ППК, описание ее алгоритма и разработка на языке Turbo С++ 3.0.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.11.2013 |
Размер файла | 50,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Содержательная постановка задачи
2. Функциональная схема и алгоритм решения задачи
3. Обоснование выбора языка программирования
4. Алгоритм и описание разработанной программы
5. Описание алгоритма
6. Анализ полученных результатов
Заключение
Литература
Приложения
Введение
В курсовой работе необходимо разработать программу формирования ППК для управления двухзвенной КС на ЭОВ6.
Для решения этой задачи были сформулированы следующие пункты:
1. Содержательная постановка задачи;
2. Составление функциональной схемы и алгоритма решения;
3. Разработка программы на языке Turbo С++ 3.0, реализующую составленный алгоритм.
4. Описание разработанной программы и анализ полученных в ходе ее выполнения результатов.
1. Содержательная постановка задачи
Задание курсовой работы: Программа формирования ППК для управления двухзвенной КС на ЭОВ6.
На первом этапе обслуживания вызова (ЭОВ6) необходимо отключить КПЗ (комплект посылки «Занято»), для этого необходимо сформировать две ПК.
На каждом этапе обслуживания вызова для формирования периферийных команд используются данные из РВ. В РВ на ЭОВ6 хранятся следующие данные (Nак, Nкпз, ПЛкпз).
Размещено на http://www.allbest.ru/
Двухзвенное коммутационное поле.
Рассмотрим программы формирования и выдачи ППК.
Заявки для программы формирования ППК подготавливает программа управления подключением комплектов. Эти заявки записываются в буфер (БЗ на формирование выдачи ППК). Каждая заявка в этом буфере имеет свой номер и закреплена за определённым АК. Взаимодействие между программами происходит с помощью буферов и полей заявок. Заявки в буфере представлены порядковым номером и номером найденным перед записью заявки комплекта, для подключения (отключения) которого к АК необходимого сформировать ППК. Буфер образует для тех программ поток заявок, который невелик. Одна заявка в поле заявок занимает один разряд слова данных. По номеру слова и номеру разряда, где найдена единица. Программа выдачи ПК выполняет пересчёт этой заявки в буфер ПК (БПК), из которого должны быть выданы ПК.
2. Функциональная схема и алгоритм решения задачи
Функции программ формирования ППК:
1) Поиск свободного буфера ПК (БПК),
2) Чтение данных о координатах пути АК - комплект из РБ,
3) Формирование периферийных команд и запись их в найденный свободный БПК,
4) Запись заявки в поле заявок на выдачу ПК.
Диспетчер данного приоритетного уровня системы коммутационных программ, которому подчинена программа формирования ППК, анализирует содержимое БЗ на формирование и выдачу ППК. Происходит выбор очередной заявки и передача её программе формирования ППК.
Каждая заявка в БЗ закреплена за своим АК. Программе формирования ППК доступны все необходимые данные об обслуживаемом вызове, хранящегося в регистре вызова (РВ), закреплённом за каждым АК.
Поиск свободного БПК выполняется по содержимому массива состояний БПК. В этом массиве за определённым разрядом данного слова закреплён конкретный БПК. Пусть логическая единица в некотором разряде этого массива соответствует свободности определенного БПК.
Если нет ни одного свободного БПК, то программа формирования ППК возвращает заявку, полученную от диспетчера, в БЗ на формирование и выдачу ППК. При наличии свободного БПК, заявка в БЗ на формирование и выдачу ППК аннулируется, чтобы одна и та же заявка не обслуживалась многократно.
Каждая ППК характеризуется форматом и содержимым. В формате ПК имеется три зоны: признак выдачи (ПВ), код операции (КО), адресная информация. ПВ занимает один разряд (старший) в слове ПК.
ПВ |
КО |
АПУУ |
Y |
X |
Значение ПВ=1 указывает на необходимость выдачи ПК в управляемый пакет (в частности - в ПУУ квазиэлектронной АТС).
Код операции выражается одним разрядом слова ПК. Значение КО=1 указывает на необходимость включения коммутационного элемента КП, КО=0 выключение.
Адресная информация состоит из кода адреса блока ПУУ, адреса вертикали Y и адреса горизонтали коммутатора КП.
Программа формирования ПК формирует и записывает в БПК определённое количества ПК, зависящее о этапа обслуживаемого вызова.
После записи всех требуемых для обслуживания данного вызова ПК в БПК программа формирования ПК записывает заявку на выдачу этих команд в поле заявок. Вместо заявки в этом поле определяется номер БПК, где записаны сформированные для данного вызова ПК.
Заявки на выдачу ПК будут прочитаны программой выдачи ПК.
Размещено на http://www.allbest.ru/
Рис. 1. Взаимосвязь программ формирования, выдачи и контроля выполнения ППК
Размещено на http://www.allbest.ru/
Рис. 2. Программа формирования ППК.
3. Обоснование выбора языка программирования
Для выполнения курсовой работы выбран язык программирования Turbo С++ 3.0 по следующим причинам:
Четкость конструкций языка Turbo С++ 3.0.
Реализация языка надежна на всех существующих ПЭВМ в режиме эмуляции MS-DOS.
Язык полностью удовлетворяет требованиям структурного программирования, то есть в нем есть элементы, описывающие все базовые структуры.
Язык содержит полный набор структурированных данных.
Существуют программные средства проверки правильности программы.
4. Алгоритм и описание разработанной программы
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
5. Описание алгоритма
1. С помощью констант задаем: количество ячеек БЗППК, количество входов в коммутатор звена А, количество выходов из коммутатора звена А, количество коммутаторов звена А, количество выходов из коммутатора звена B.
2. С помощью константы задаем количество БПК
3. Инициализация счетчика случайных чисел, для того, чтобы формировались разные последовательности случайных чисел, при каждом запуске программы.
4. МСБПК формируется с помощью датчика случайных чисел, а поле заявок равно МСБПК.
5. Вводим количество КПЗ.
6. Вводим номера выходов в которые включаются КПЗ.
7. Обнуляем переменную J. В ней будем считать количество заявок.
8. Вводим номер АК от которого поступает заявка.
9. Проверяем условие, что данный АК существует. Если условие выполняется, то переходим на блок 14.
10. Увеличиваем число заявок на 1.
11. Записываем заявку в поле заявок.
12. Формируем регистр вызова для поступившей заявки.
13. Выводим информацию, что данного АК не существует.
14. Делаем запрос: есть ли ещё заявки.
15. Если вводим `y', то заявки ещё есть и возвращаемся на шаг 8. Если заявок больше нет, то переходим к следующему шагу.
16. Выводим содержимое РВ и МСБПК.
Начинается программа формирования ППК.
17. Если J?0, то в БЗППК есть заявки.
18. Обнуляем nmsbpk: в неё будем записывать номер первого свободного БПК (1-го в МСБПК).
19. Задаем цикл для формирования ППК для всех заявок.
20,21,22. Если есть свободный БПК, то переменной nmsbpk присваиваем номер 1-го свободного БПК.
23. Если nmsbpk=0, то свободных БПК нет и переходим на блок 30.
24. Если свободные БПК есть, то корректируем значение МСБПК.
25. Выводим скорректированный МСБПК.
26. С помощью данных из РВ формируется БПК.
27. Выводим информацию о том, что все БПК заняты.
28. Выводим содержимое поля заявок.
6. Анализ полученных результатов
1. Сначала мы вводим исходные данные для трехзвенной КС.
Количество подключенных к КС КПЗ: 1
Номер выхода в который подключен 1-й КПЗ: 3
2. Вводим номер АК, от которого поступила заявка.
Hомер АК от которого поступила заявка: 6
3. Программа формирует регистр вызова, в который записывает: номер
АК, номер КПЗ, ПЛАВ между АК и КПЗ, номер КПЗ.
Содержимое РВ 6
Nak=6
Nкпз=3
Nплаб=5
4. Ищется первый свободный буфер периферийных команд (БПК) и в массиве состояния БПК отмечается занятым.
МСБПК
0 0 0 0 0 0 1 0 1 1
МСБПК новый
0 0 0 0 0 0 0 0 1 1
5. В первый найденный БПК записываются сформированные периферийные команды.
1 2 3 4 5 - Столбцы
БПК 6
1 0 2 1 1
1 0 4 3 2 Подключение КПЗ
Первая команда включает коммутационный элемент на звене А.
Вторая - служит для подключения КПЗ абоненту А.
1-й столбец - Признак выдачи (ПВ).
Если ПВ=1, то необходимо выдать ПК в управляемый объект.
2-й столбец - Код операции (КО)
КО=0 - Указывает на отлючение коммутационного элемента
3-й столбец - адрес блока ПУУ
Указывает номер АПУУ в котором находится коммутационный элемент.
4-й столбец - адрес вертикали Y коммутатора КП (в данном блоке ПУУ).
5-й столбец - адрес горизонтали Х коммутатора КП (в данном блоке ПУУ).
6. В поле заявок записывается заявка для БПК 1.
Поле заявок
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Заключение
периферийный команда вызов алгоритм
Результатом разработанного курсового проекта является программа формирования ППК для управления двухзвенной КС на ЭОВ6 на языке программирования Turbo С++;
Анализ выполнения результатов.
Литература
Битнер В.И. Костюкович Н.Ф. Программная организация процессов формирования и выдачи периферийных команд. Методические указания по выполнению лабораторной работы. - Новосибирск.: СибГУТИ, 2001.
Дерк Луис. Turbo C++.Справочник- М: 1997.
Приложение 1
Распечатка программы
#include <stdio.h>
#include <stdlib.h>
#include<alloc.h>
#include<CONIO.H>
#include<math.h>
char zajav;
const jah=10;
const na=5;
const ma=4;
const ka=3;
const mb=4;
const kolbpk=10;
int kolkpz,i,j,*nvihkpz,*msbpk,ak,nmsbpk,k,m,*pz;
main()
{
struct rv_struct
{
int ak,nkpz,plkpz;
} rv[10];
pz=(int*)malloc((na*ka)*sizeof(int));
for(m=0;m<na*ka;m++)pz[m]=0;
msbpk=(int*)malloc(kolbpk*sizeof(int));
for(i=0;i<kolbpk;i++)
msbpk[i]=random(2);
printf("\nВведите количество КПЗ: ");
scanf("%d",&kolkpz);
nvihkpz=(int*)malloc(kolkpz*sizeof(int));
for(i=0;i<kolkpz;i++){
printf("\nВведите номер выхода,в который включен%d КПЗ: ",i+1);
scanf("%d",&nvihkpz[i]);}
j=0;
do{
printf("\nВведите номер АК, от которого поступила заявка: ");
scanf("%d",&ak);
if(ak<=na*ka)
{
pz[ak-1]=1;
rv[j].ak=ak;
rv[j].nkpz=nvihkpz[j];
rv[j].plkpz=floor(ak/na)*ma+floor(nvihkpz[j]/mb)+1;
j=j+1;
}
else
printf("\nДанного АК не существует!");
printf("\nЕсть еще заявки? y/n ");
zajav=getch();
}while(zajav!='n');
for(i=0;i<j;i++){
printf("\nСодержимое РВ%d:\n",rv[i].ak);
printf("Nak=%d\n",rv[i].ak);
printf("Nкпз=%d\n",rv[i].nkpz);
printf("ПЛкпз=%d\n",rv[i].plkpz);}
printf("Содержимое МСБПК: ");
for(i=0;i<kolbpk;i++)printf("%d ",msbpk[i]);
if(j!=0)
{
for(i=0;i<j;i++)
{nmsbpk=0;
for(k=0;k<kolbpk;k++)
if(msbpk[10-k]==1)nmsbpk=10-k;
if(nmsbpk==0)
{
printf("\nВсе БПК заняты.");
}
else
{
msbpk[nmsbpk]=0;
printf("\n");
printf("Содержимое МСБПК: ");
for(m=0;m<kolbpk;m++)printf("%d ",msbpk[m]);
printf("\nБПК%d\n",nmsbpk);
printf("%d,%d,%1.0lf,%1.0lf,%1.0lf\n",1,0,floor(rv[i].ak/na)+1,
rv[i].ak-floor(rv[i].ak/na)*na,rv[i].plkpz-floor(rv[i].plkpz/ma)*ma);
printf("%d,%d,%1.0lf,%1.0lf,%1.0lf\n",1,0,floor(rv[i].nkpz/mb)+ka+1,
rv[i].nkpz-floor(rv[i].nkpz/mb)*mb,floor(rv[i].ak/na+1));
}
}
}
printf("Содержимое поля заявок:\n");
for(m=0;m<na*ka;m++)printf("%d ",pz[m]);
getch();
return(0);
}
Приложение 2
Распечатка результатов работы программы
Введите количество КПЗ: 1
Введите номер выхода, к которому подключен 1 КПЗ: 3
Введите номер АК, от которого поступила заявка: 6
Есть еще заявки?y/n
Содержимое РВ6:
Nak=6
Nкпз=3
ПЛкпз=5
Содержимое МСБПК: 0 0 0 0 0 0 1 0 1 1
Содержимое МСБПК: 0 0 0 0 0 0 0 0 1 1
БПК 6
1,0,2,1,1
1,0,4,3,2
Содержимое поля заявок:
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Размещено на Allbest.ru
Подобные документы
Характеристика устройства и технологических данных промышленного робота СМ40Ц. Описание микропроцессорного комплекта серии U83-K1883, системы его команд, микросхемы К572ПВ4, функциональной, принципиальной схем и алгоритма работы программы управления.
курсовая работа [5,8 M], добавлен 02.06.2010Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.
курсовая работа [823,0 K], добавлен 18.12.2011Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.
курсовая работа [198,1 K], добавлен 03.02.2010Разработка программы вычисления выражения y = (x+10)5. Ход работы, структурная схема алгоритма. Окна основных обозревателей системы, текстовый редактор. Интерфейс модели ЭВМ, методы ввода и отладки программы, действия основных классов команд, адресация.
лабораторная работа [523,4 K], добавлен 28.12.2014Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Сущность понятия "комбинаторика". Программа формирования перестановок, сочетаний, размещений с выводом результатов на экран дисплея. Алгоритм программы, написанной на языке Паскаль. Список идентификаторов переменных программы. Список процедур программы.
лабораторная работа [19,8 K], добавлен 27.07.2010Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.
курсовая работа [1,1 M], добавлен 17.03.2015Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.
курсовая работа [434,1 K], добавлен 27.08.2012