Розробка програмного забезпечення локальної обчислювальної мережі

Розробка програми для збору, збереження та обробки інформації про хід технологічного процесу і передачі її в локальну обчислювальну мережу. Структура та функції системи: алгоритми функціонування і програмне забезпечення КОМ, сервера і робочих станцій.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 28.08.2012
Размер файла 225,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ЗМІСТ

Вступ

1. Структура та функції системи

2. Алгоритми функціонування КОМ

3. Алгоритми функціонування сервера

4. Алгоритми функціонування робочих станцій

5. Програмне забезпечення КОМ

6. Програмне забезпечення сервера

7. Програмне забезпечення робочих станцій

Висновок

Список використаної літератури

Додаток А. Текст програми

ВСТУП

В зв'язку з поширенням комп'ютерних мереж, зокрема мережі Інтернет, на даний момент є дуже актуальною проблема передачі даних в мережі та розробки програм, що користуються мережами для обміну даними.

Для коректної та стандартизованої передачі інформації в комп'ютерних мережах з'явилися стандарти протоколів, інтерфейсів, технологій мереж та ін. для передачі інформації. Найбільш поширеним у сучасних мережах є стек протоколів TCP/IP. Він складається з протоколів різних рівнів - фізичного, канального, мережевого, транспортного, прикладного.

На кожному рівні існують різноманітні протоколи. На канальному рівні це технології побудови комп'ютерних мереж Ethernet, Token Ring, ARCnet та інші. На мережевому рівні - протоколи IP, ICMP, IGMP, ARP, RARP. На транспортному - TCP, UDP, RTP, SCTP та ін. Нарешті, на прикладному рівні існують протоколи HTTP, FTP, SMTP, POP, IMAP та інші.

В даному курсовому проекті розроблюється програмне забезпечення локальної обчислювальної мережі, що побудовано на стеку протоколів TCP/IP та використовує функції, що містяться в бібліотеці Windows Sockets для операційних систем класу Windows NT 3.51 и вище. Тому для роботи програмного забезпечення потрібні комп'ютери з операційними системами цього класу з бібліотекою winsock.dll та з підтримкою стеку протоколів TCP/IP.

1. Структура та функції системи

Розроблений програмний продукт призначений для реалізації сумісної роботи та призначених функцій окремих машин об'єднаних спільною мережею рис.1.1

Рис.1.1 Комп'ютерна мережа

До складу вказаної мережі входять три типи комп'ютерів:

1) Робоча станція (РС);

2) Сервер;

3) Керуюча обчислювальна машина (КОМ).

Кожен з типів має відповідне призначення та принцип роботи.

РС призначена для візуального контролю технологічних процесів, та аналізу отриманої інформації. Вона підключається до сервера та надсилає запити для отримання необхідних даних.

Сервер призначений для отримання даних від КОМ, які опрацьовуються та зберігаються в базі даних (БД), отримання запитів від РС, проаналізувавши які відправляє необхідні дані для РС. Також виконує синхронізацію часу, яка являє собою відправку пакетів з коректним часом та датою.

КОМ призначений для збирання інформації, первинну її обробку, та періодичне надсилання до серверу. Необхідно зазначити, що КОМ об'єднані в групи по дві машини, для більшої точності отриманої інформації.

2. Алгоритм функціонування КОМ

Алгоритм функціонування КОМ розділяється на наступні кроки:

1) Виконується початкова ініціалізація та підключення до серверу. До ініціалізації входить встановлення адреси до якої необхідно підключитись та вибір групи до якої належатиме даний КОМ.

2) Після отримавши підтвердження коректного підключення КОМ отримує пакет з даними про синхронізацію. За допомогою якого налаштовує себе до роботи з сервером.

3) Коли КОМ система виконала усі необхідні на лаштування вона збирає дані, які поступають з процесів заводу. Початково обробивши записує їх до пакету. Який відправляється до сервера.

4) Після чого чекає підтвердження від сервера. Отримавши який продовжує відсилати наступні отримані дані.

5) Робота КОМ завершується лише при вимиканні серверу, чи примусовому завершенні керуючої машини.

Рис. 2.1 Схема функціонування керуючої обчислювальної машини

3. Алгоритм функціонування серверу

Алгоритм функціонування серверу можливо розбити на наступні пункти:

1) Виконується початкова ініціалізація. Після чого сервер переводиться в режим очікування підключень від РС та КОМ.

2) Отримавши запит від клієнту сервер виконує підключення до клієнту.

3) Отримавши підтвердження про коректне підключення сервер встановлює, що за тип комп'ютеру був підключений.

4) Встановивши тип комп'ютеру сервер виконує необхідні функції обміну даних.

Схема функціонування наведена на рис. 3.1.

Рис. 3.1 Схема функціонування серверу

4. Алгоритм функціонування робочих станцій

Алгоритм функціонування складається з наступних кроків:

1) Початкова ініціалізація та налаштування часових характеристик машини.

2) Підключення до серверу.

3) Відправлення запиту для синхронізації з сервером.

4) Надсилання періодичних запитів для отримання даних з БД для слідкування за проходженням процесів на заводі.

Схема функціонування наведена на рис.4.1.

Рисунок 4.1 Схема функціонування робочої станції

5. Програмне забезпечення КОМ.

Робота програми починається з функції: void ValidateArgs(int argc, char **argv);

Функція призначена для аналізу та налаштування вхідних параметрів введених в командній лінії. До них входять: номер порту, через який проходить обмін пакетів, ip сервера, номер групи КОМ.

Код програми виділений коментарем Conect to server виконують на лаштування для підключення та підключення до серверу.

Коментар Sinxronithatin відокремлює частину коду, яка призначена для на лаштування синхронізації машини.

Основний код програми знаходиться в безкінечному циклі while(1). Отже для нормального завершення програми необхідно відключення серверу. В вказаний цикл розбивається на чотири частини:

1) Коментар Sinx - виділяє код призначений для синхронізації відправлення даних до серверу.

2) Коментар Make data - виділяє код, який формує відсилаємі пакети. До яких входить дані з заводу, час відправлення, сьогоднішня дата та номер комп'ютеру.

3) Коментар S/G - виділяє частину коду, яка виконує прийом та відправку пакетів з даними.

4) Коментар Time - виділяє останню частину котра здійснює на лаштування часу надісланого з серверу.

6. Програмне забезпечення серверу

Програма, що забезпечує роботу сервера ділиться на три частини:

1) Процедура void main(void) - забезпечує початкові налаштування сервера та його перевід до прослуховуючого режиму.

2) Процедура DWORD WINAPI WorkerThread(LPVOID lpParameter) - призначена для динамічного виділення пам'яті де зберігатимуться параметри з'єднання з підключеним клієнтом.

3) Процедура void CALLBACK WorkerRoutine(DWORD Error, DWORD BytesTransferred, LPWSAOVERLAPPED Overlapped, DWORD InFlags)

Займається обробкою прийнятих даних з КОМ та опрацювання запитів від РС. Частина коду, яка виділена коментарем Send аналізує клієнта, який підключився та відправляє не обхідні дані для нього(час, параметри роботи заводу). Коментарем Resiv визначає програму, яка приймає дані від клієнта. Аналізує від кого надійшли дані: КОМ чи РС. Визначивши клієнта формує необхідні вихідні пакети та пре необхідності зберігає отримані дані в БД.

7. Програмне забезпечення робочої станції

В програмі написаній для робочої станції присутня процедура void ValidateArgs(int argc, char **argv), а також ініціалізація аналогічна КОМ. Відмінною є лише обробка отриманих від сервера даних, які автоматично відображаються на моніторі для слідкування за проходженням процесу на заводі.

ВИСНОВОК

Результатом курсового проекту є програмне забезпечення локальної обчислювальної мережі, що складається з трьох компонентів: сервера, керуючої обчислювальної машини та робочої станції.

Розроблене програмне забезпечення локальної обчислювальної мережі функціонує під керуванням операційної системи Windows 2000/XP за допомогою стеку протоколів TCP/IP з використанням функцій бібліотеки Winsock. Програмне забезпечення такого типу може бути використано на виробництві для збору, збереження та обробки інформації про хід технологічного процесу.

програма інформація локальний мережа

Додаток А

Текст програми

#include <winsock2.h>

#include <Mswsock.h>

#include <stdlib.h>

#include <stdio.h>

#include <windows.h>

#include <conio.h>

#pragma comment(lib,"ws2_32.lib")

//------------------------------------S

#define DEFAULT_BUFFER 4096

#define DEFAULT_ID '2'

//------------------------------------C

#define DEFAULT_COUNT 20

#define DEFAULT_PORT 5150

#define DEFAULT_MESSAGE "****************"

//-----------------------S

char szServer[128];

int iPort = DEFAULT_PORT;

//-----------------------C

DWORD dwCount = DEFAULT_COUNT;

char szMessage[100];

BOOL bSendOnly = FALSE;

char szAddress[128];

//--------------------------------------------------------------

char ID = DEFAULT_ID;

//--------------------------------------------------------------

void ValidateArgs(int argc, char **argv){

int i;

for(i = 1; i < argc; i++){

if ((argv[i][0] == '-') || (argv[i][0] == '/')){

switch (tolower(argv[i][1])){

case 'p':

if (strlen(argv[i]) > 3)

iPort = atoi(&argv[i][3]);

break;

case 'i':

if (strlen(argv[i]) > 3)

strcpy(szServer, &argv[i][3]);

break;

case 'd':

ID=argv[i][3];

break;

default:

break;

}

}

}

} // ValidateArgs()

int main(int argc, char **argv){

//-------------------------------------------S;

WSADATA wsd;

SOCKET// sListen,

sClient;

//--------------------------------------------C;

char szBuffer[DEFAULT_BUFFER];

int ret;

struct sockaddr_in server;

struct hostent *host = NULL;

int delay;

int Delay[15];

int i,j;

SYSTEMTIME lt;

//--------------------------------------------F;

ValidateArgs(argc, argv);

if (WSAStartup(MAKEWORD(4,0), &wsd) != 0){

printf("Error Winsock.\n");

return 1;

}

//-------------------------

printf("C\n");

//-------------------------------------------------------------Conect to server

sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (sClient == INVALID_SOCKET){

printf("error socket(): %d\n", WSAGetLastError());

return 1;

}

server.sin_family = AF_INET;

server.sin_port = htons(iPort);

server.sin_addr.s_addr = inet_addr(szServer);

if (server.sin_addr.s_addr == INADDR_NONE){

host = gethostbyname(szServer);

if (host == NULL){

printf("Ne ydalos yznat adr serv '%s'.\n", szServer);

return 1;

}

CopyMemory(&server.sin_addr, host->h_addr_list[0],host->h_length);

}

if (connect(sClient, (struct sockaddr *)&server,sizeof(server)) ==

SOCKET_ERROR){

printf("error connect(): %d\n", WSAGetLastError());

return 1;

}

//-------------------------------------------------------------End Conect to server;

//-------------------------------------------------------------Sinxronithatin;

switch(ID){

case '2':

case '4':

delay = 6;

break;

case '5':

case '6':

delay = 4;

}

j=0;

for(i=1;i<60;i+=delay){

Delay[j]=i;

j++;

}

//-------------------------------------------------------------End Sinxronithatin

while(1){

//--------------------------------------------Sinx;

j=0;

while(true){

GetLocalTime(&lt);

for(i=0;i<delay;i++){

if(lt.wSecond==Delay[i]){

j=1;

}

}

if(j==1) break;

}

//--------------------------------------------End Sinx;

//-------------------------------------------Make data;

switch (ID){

case '2':szMessage[0]=rand()%2+0x30;

szMessage[1]=rand()%10+0x30;

szMessage[2]=rand()%2+0x30;

szMessage[3]=rand()%10+0x30;

szMessage[4]=rand()%6+0x30;

szMessage[5]=rand()%10+0x30;

szMessage[6]=rand()%10+0x30;

szMessage[7]='*';

szMessage[8]='*';

szMessage[9]='*';

szMessage[10]='*';

szMessage[11]=0x30;

szMessage[12]=rand()%2+0x30;

szMessage[13]=rand()%10+0x30;

szMessage[14]=rand()%10+0x30;

szMessage[15]=0x30;

szMessage[16]=rand()%6+0x30;

szMessage[17]=rand()%10+0x30;

szMessage[18]=rand()%10+0x30;

szMessage[19]='*';

szMessage[20]='*';

szMessage[21]='*';

break;

case '4':szMessage[0]=rand()%4+0x30;

szMessage[1]=rand()%10+0x30;

szMessage[2]=rand()%3+0x30;

szMessage[3]=rand()%10+0x30;

szMessage[4]=rand()%9+0x30;

szMessage[5]=rand()%10+0x30;

szMessage[6]=rand()%10+0x30;

szMessage[7]=rand()%2+0x30;

szMessage[8]=rand()%10+0x30;

szMessage[9]=rand()%10+0x30;

szMessage[10]=rand()%10+0x30;

szMessage[11]=0x30;

szMessage[12]=rand()%6+0x30;

szMessage[13]=rand()%10+0x30;

szMessage[14]=rand()%10+0x30;

szMessage[15]='*';

szMessage[16]='*';

szMessage[17]='*';

szMessage[18]='*';

szMessage[19]='*';

szMessage[20]='*';

szMessage[21]='*';

break;

case '5':szMessage[0]=rand()%2+0x30;

szMessage[1]=rand()%10+0x30;

szMessage[2]=rand()%5+0x30;

szMessage[3]=rand()%10+0x30;

szMessage[4]='*';

szMessage[5]='*';

szMessage[6]='*';

szMessage[7]='*';

szMessage[8]='*';

szMessage[9]='*';

szMessage[10]='*';

szMessage[11]=0x30;

szMessage[12]=rand()%3+0x30;

szMessage[13]=rand()%10+0x30;

szMessage[14]=rand()%10+0x30;

szMessage[15]=rand()%2+0x30;

szMessage[16]=rand()%10+0x30;

szMessage[17]=rand()%10+0x30;

szMessage[18]=rand()%10+0x30;

szMessage[19]=0x30;

szMessage[20]=rand()%6+0x30;

szMessage[21]=rand()%10+0x30;

break;

case '6':szMessage[0]='*';

szMessage[1]='*';

szMessage[2]='*';

szMessage[3]='*';

szMessage[4]=rand()%6+0x30;

szMessage[5]=rand()%10+0x30;

szMessage[6]=rand()%10+0x30;

szMessage[7]=0x30;

szMessage[8]=rand()%9+0x30;

szMessage[9]=rand()%10+0x30;

szMessage[10]=rand()%10+0x30;

szMessage[11]=rand()%2+0x30;

szMessage[12]=rand()%10+0x30;

szMessage[13]=rand()%10+0x30;

szMessage[14]=rand()%10+0x30;

szMessage[15]=rand()%2+0x30;

szMessage[16]=rand()%10+0x30;

szMessage[17]=rand()%10+0x30;

szMessage[18]=rand()%10+0x30;

szMessage[19]=rand()%3+0x30;

szMessage[20]=rand()%10+0x30;

szMessage[21]=rand()%10+0x30;

}

GetLocalTime(&lt);

printf(" The local time is: %02d:%02d:%02d\n", lt.wHour, lt.wMinute,

lt.wSecond);

szMessage[22]=(char)lt.wHour;

szMessage[23]=(char)*(&(lt.wHour)+0x1);

szMessage[24]=(char)lt.wMinute;

szMessage[25]=(char)*(&lt.wMinute+0x1);

szMessage[26]=(char)lt.wSecond;

szMessage[27]=(char)*(&lt.wSecond+0x1);

szMessage[29]=(char)lt.wDay;

szMessage[30]=(char)*(&(lt.wDay)+0x1);

szMessage[31]=(char)lt.wMonth;

szMessage[32]=(char)*(&lt.wMonth+0x1);

szMessage[33]=(char)lt.wYear;

szMessage[34]=(char)*(&lt.wYear+0x1);

szMessage[28]=ID;

for(i=22;i<28;i++)

szMessage[i]=0x30+szMessage[i];

for(i=29;i<35;i++)

szMessage[i]=0x30+szMessage[i];

printf("[%s]\n",szMessage);

//-------------------------------------------End Make data;

//-------------------------------------------S/G;

ret = send(sClient, szMessage, strlen(szMessage), 0);

if (ret == SOCKET_ERROR)

{

printf("Error send(): %d\n", WSAGetLastError());

break;

}

ret = recv(sClient, szBuffer, DEFAULT_BUFFER, 0);

if (ret == 0)

break;

else if (ret == SOCKET_ERROR){

printf("error recv(): %d\n", WSAGetLastError());

break;

}

szBuffer[ret] = '\0';

//-------------------------------------------S/G;

//-------------------------------------------Time;

lt.wHour=(WORD)szBuffer[0];

lt.wMinute=(WORD)szBuffer[2];

lt.wSecond=(WORD)szBuffer[4];

SetLocalTime(&lt);

Sleep(delay*1000);

//-------------------------------------------Time;

}

shutdown(sClient, SD_BOTH);

closesocket(sClient);

WSACleanup();

return 0;

}

Размещено на Allbest.ru


Подобные документы

  • Розробка компонентів програмного забезпечення системи збору даних про хід технологічного процесу. Опис програмного забезпечення: сервера, що приймає дані про хід технологічного процесу, КОМ для його імітування, робочої станції для відображення даних.

    курсовая работа [1,3 M], добавлен 20.11.2010

  • Класифікація комп’ютерних мереж і топологій. Побудова функціональної схеми локальної мережі. Організація каналів зв’язку. Вибір способу керування мережею. Вибір конфігурації робочих станцій. Програмне забезпечення локальної мережі та захист інформації.

    курсовая работа [2,7 M], добавлен 15.06.2015

  • Аналіз системи збору первинної інформації та розробка структури керуючої ЕОМ АСУ ТП. Розробка апаратного забезпечення інформаційних каналів, структури програмного забезпечення. Алгоритми системного програмного забезпечення. Опис програмних модулів.

    дипломная работа [1,9 M], добавлен 19.08.2012

  • Аналіз топології та технології реалізації обчислювальної мережі. Фізичне середовище передавання даних. Застосування комутатора TP-LINK TL-SF1016DS для забезпечення працеспроможності мережі. Програмне забезпечення робочих станцій. Розрахунок витрат дроту.

    курсовая работа [717,5 K], добавлен 09.04.2019

  • Планування робочих місць. Cкладання плану приміщень. Розрахунок PDV та PVV. Вибір обладнання та програмного забезпечення для комп'ютерної мережі, типу кабельного з'єднання. Розрахунок довжини кабелю. Програмне забезпечення, загальна сума проекту.

    курсовая работа [1,8 M], добавлен 03.06.2015

  • Розробка структурної схеми мережі, вибір конфігурації серверу і робочих станцій, комутаторів і маршрутизатора. Організація системи телеспостереження. Розміщення мережного обладнання в приміщеннях. Методи та засоби забезпечення безпеки інформації.

    дипломная работа [3,7 M], добавлен 13.04.2012

  • Робота з клієнт-серверними додатками на основі сокетів. Розробка програм сервера та клієнта для обробки запитів клієнта сервером. Можливості програм сервера та клієнта. Створення гри "хрестики-нулики" на основі сокетів. Програмне забезпечення сервера.

    лабораторная работа [181,8 K], добавлен 23.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.