Главная страница

Отчёт по БТПиТС. Отчет лаб 3 БТПиТС. Отчет по лабораторной работе 3 по дисциплине Безопасность технологических процессов и технических средств на железнодорожном транспорте


Скачать 0.6 Mb.
НазваниеОтчет по лабораторной работе 3 по дисциплине Безопасность технологических процессов и технических средств на железнодорожном транспорте
АнкорОтчёт по БТПиТС
Дата30.11.2021
Размер0.6 Mb.
Формат файлаdocx
Имя файлаОтчет лаб 3 БТПиТС.docx
ТипОтчет
#287212

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«ОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ПУТЕЙ СООБЩЕНИЯ»

(ОмГУПС (ОмИИТ))

Кафедра «Автоматика и телемеханика»

УПРАВЛЕНИЕ ОБЪЕКТАМИ ЖЕЛЕЗНОДОРОЖНОЙ АВТОМАТИКИ ПРИ ОБЕСПЕЧЕНИИ БЕЗОПАСНОСТИ ДВИЖЕНИЯ ПОЕЗДА ПО СТАНЦИИ

Отчет по лабораторной работе №3

по дисциплине «Безопасность технологических процессов и технических средств на железнодорожном транспорте»




Выполнил –

Студент гр. 26-Д

________Маслов Н.А.

Проверил –

Доцент кафедры «АиТ»

________Борисенко Д.В.



Омск 2019

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

  1. Фрагмент плана станции с указанием маршрута движения поезда в соответствии с индивидуальным заданием.

Отправление с приемоотправочного пути 3П по светофору Ч3 за светофор Ч.



  1. Таблица входных и выходных переменных с описанием их смысла, интерпретацией их значений и распределением по физическим линиям микроконтроллера.

Таблица 1 – Логические переменные при управлении стрелками 12, 10, 4, 2 и светофором Ч3.

Пере -

менная

Описание переменной

Интерпретация значений переменной

Порт,

Линия

1

2

3

4

a

(вход)

Кнопка задания маршрута

0 – кнопка не нажата;

1 – кнопка нажата.

PB0

b

(вход)

Сигнал наличия враждебных маршрутов

0 – имеются враждебные маршруты;

1 – враждебные маршруты отсутствую.

PB1

c

(вход)

Сигнал свободности стрелочного участка 12СП

0 – стрелочный участок занят;

1 – стрелочный участок свободен.

PB2

d

(вход)

Сигнал свободности стрелочного участка 10СП

0 – стрелочный участок занят;

1 – стрелочный участок свободен.

PB3


Продолжение таблицы 1

1

2

3

4

e

(вход)

Сигнал свободности стрелочного участка 4СП

0 – стрелочный участок занят;

1 – стрелочный участок свободен.

PB4

g

(вход)

Сигнал свободности стрелочного участка 2–6СП

0 – стрелочный участок занят;

1 – стрелочный участок свободен.

PB5

h

(вход)

Сигнал положение стрелки 12

0 – стрелка находится в «-» положении;

1 – стрелка находится в «+» положении.

PC0

i

(вход)

Сигнал положение стрелки 10

0 – стрелка находится в «-» положении;

1 – стрелка находится в «+» положении.

PC1

j

(вход)

Сигнал положение стрелки 4

0 – стрелка находится в «-» положении;

1 – стрелка находится в «+» положении.

PC2

k

(вход)

Сигнал положение стрелки 2

0 – стрелка находится в «-» положении;

1 – стрелка находится в «+» положении.

PC3

l

(вход)

Сигнал свободности приёмоотправочного пути ЧП

0 – приемоотправочный путь ЧП занят;

1 – приемоотправочный путь ЧП свободен.

PC4

q
(вход)

Сигнал свободности на перегоне 1-го блок – участка

0 – 1-ый блок –участок занят;

1 – 1-ый блок –участок свободен.

PC5

s

(выход)

Сигнал управления электродвигателем стрелки 12

0 – электродвигатель стрелки 12

выключен;

1 – электродвигатель стрелки 12

включен.

PD0

z

(выход)

Сигнал управления электродвигателем стрелки 10

0 – электродвигатель стрелки 10

выключен;

1 – электродвигатель стрелки 10

включен.

PD1

m

(выход)

Сигнал управления электродвигателем стрелки 4

0 – электродвигатель стрелки 4

выключен;

1 – электродвигатель стрелки 4

включен.

PD2

Окончание таблицы 1

1

2

3

4

n

(выход)

Сигнал управления электродвигателем стрелки 2

0 – электродвигатель стрелки 2

выключен;

1 – электродвигатель стрелки 2

включен.

PD3

f

(выход)

Сигнал управления лампой зеленого огня светофора Ч3

0 – лампа зеленого огня светофора Ч3 не горит;

1 – лампа зеленого огня светофора Ч3 горит.

PD4


Таблица 2 – Таблица истинности функции управления стрелкой 12




a

b

c

h

s

0

0

0

0

0

0

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

0

4

0

1

0

0

0

5

0

1

0

1

0

6

0

1

1

0

0

7

0

1

1

1

0

8

1

0

0

0

0

9

1

0

0

1

0

10

1

0

1

0

0

11

1

0

1

1

0

12

1

1

0

0

0

13

1

1

0

1

0

14

1

1

1

0

1

15

1

1

1

1

0

СДНФ функции управления стрелкой 12:



Строка программного кода, вычисляющая значение s на языке программирования C:



Таблица 3 – Таблица истинности функции управления стрелкой 10




a

b

d

i

z

0

0

0

0

0

0

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

0

4

0

1

0

0

0

5

0

1

0

1

0

6

0

1

1

0

0

7

0

1

1

1

0

8

1

0

0

0

0

9

1

0

0

1

0

10

1

0

1

0

0

11

1

0

1

1

0

12

1

1

0

0

0

13

1

1

0

1

0

14

1

1

1

0

0

15

1

1

1

1

1

СДНФ функции управления стрелкой 10:



Строка программного кода, вычисляющая значение z на языке программирования C:


Таблица 4 – Таблица истинности функции управления стрелкой 4




a

b

e

j

m

0

0

0

0

0

0

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

0

4

0

1

0

0

0

5

0

1

0

1

0

6

0

1

1

0

0

7

0

1

1

1

0

8

1

0

0

0

0

9

1

0

0

1

0

10

1

0

1

0

0

11

1

0

1

1

0

12

1

1

0

0

0

13

1

1

0

1

0

14

1

1

1

0

0

15

1

1

1

1

1

СДНФ функции управления стрелкой 4:



Строка программного кода, вычисляющая значение m на языке программирования C:


Таблица 5 – Таблица истинности функции управления стрелкой 2




a

b

g

k

N

0

0

0

0

0

0

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

0

4

0

1

0

0

0

5

0

1

0

1

0

6

0

1

1

0

0

7

0

1

1

1

0

8

1

0

0

0

0

9

1

0

0

1

0

10

1

0

1

0

0

11

1

0

1

1

0

12

1

1

0

0

0

13

1

1

0

1

0

14

1

1

1

0

0

15

1

1

1

1

1

СДНФ функции управления стрелкой 2:



Строка программного кода, вычисляющая значение n на языке программирования C:


Функция управления светофором Ч3:



Строка программного кода, вычисляющая значение f на языке программирования C:



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



  1. Листинг разработанной программы



  1. Схема разработанной модели микропроцессорной системы



  1. Развернутые ответы на контрольные вопросы

1) Записать функцию опасного отказа для своего варианта.





2) На основе функции опасного отказа составить список опасных отказов для своего варианта (физические отказы и ошибки в программном обеспечении).

Физический отказ:

  • Неисправность датчиков положения стрелки (12,10,4 или 2) относительно заданного маршрута

  • Неисправность РЦ, контролирующей свободность и занятость стрелочного участка (12СП, 10СП, 4СП или 2-6СП) или приемоотправочного пути

  • Ложное отсутствие сигнала враждебного маршрута

Ошибки в программном обеспечении:

  • Ошибка в формуле управления разрешающим показанием светофора Ч3 (не указана переменная враждебного маршрута)

  • Ошибка в формуле управления электродвигателем стрелки 12,10,4,2 (стрелка переводится когда находится в нужном положение)

  • Ошибка в формуле при назначение портов ввода-вывода (сигнал нажатия кнопки (PORTD = PORTD | 0b00000001;) выводится как разрешающее показание светофора)

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

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



Листинг некорректно работающей программы с комментариями

#include

#include

int main(void)

{

DDRB=DDRB & 0b11000000;

DDRC=DDRC & 0b11000000;

DDRD=DDRD | 0b00011111;

bool a,b,c,d,e,g,h,i,j,k,l,q,s,z,m,n,f;

while(1)

{

a=(bool)(PINB & 0b00000001);

b=(bool)(PINB & 0b00000010);

c=(bool)(PINB & 0b00000100);

d=(bool)(PINB & 0b00001000);

e=(bool)(PINB & 0b00010000);

g=(bool)(PINB & 0b00100000);

h=(bool)(PINC & 0b00000001);

i=(bool)(PINC & 0b00000010);

j=(bool)(PINC & 0b00000100);

k=(bool)(PINC & 0b00001000);

l=(bool)(PINC & 0b00010000);

q=(bool)(PINC & 0b00100000);

s=a&&b&&c&&(!h);

z=a&&b&&d&&i;

m=a&&b&&e&&(!j);// в формуле управления стрелкой 4 электродвигатель будет переводить стрелку при ее нахождение в «-» положение

n=a&&b&&g&&k;

f=a&&b&&c&&h&&d&&(!i)&&e&&j&&g&&(!k)&&l&&q;// в формуле светофора, стрелка 4 находится в плюсовом положении

if(s)

{

PORTD=PORTD | 0b00000001;

}

else

{

PORTD=PORTD & 0b11111110;

}

if(z)

{

PORTD=PORTD | 0b00000010;

}

else

{

PORTD=PORTD & 0b11111101;

}

if(m)

{

PORTD=PORTD | 0b00000100;

}

else

{

PORTD=PORTD & 0b11111011;

}

if(n)

{

PORTD=PORTD | 0b00001000;

}

else

{

PORTD=PORTD & 0b11110111;

}

if(f)

{

PORTD=PORTD | 0b00010000;

}

else

{

PORTD=PORTD & 0b11101111;

}

}

return 0;

}

4) На примере своего варианта проанализировать результат, к которому может привести отказ памяти, в которой хранятся используемые в программе логические переменные. Рассмотреть возможную поездную ситуацию, привести схему движения поезда по станции, и листинг некорректно работающей программы с комментариями.

Предположим, что произошел отказ памяти, в котором хранится переменная «l» (Сигнал свободности приёмоотправочного пути ЧП) и теперь выдает const =1, что означает, что путь свободен. Когда наш поезд будет двигаться по маршруту и на блок участке ЧП будет стоять поезд произойдет столкновение.



Листинг некорректно работающей программы с комментариями

#include

#include

int main(void)

{

DDRB=DDRB & 0b11000000;

DDRC=DDRC & 0b11000000;

DDRD=DDRD | 0b00011111;

bool a,b,c,d,e,g,h,i,j,k,l,q,s,z,m,n,f;

while(1)

{

a=(bool)(PINB & 0b00000001);

b=(bool)(PINB & 0b00000010);

c=(bool)(PINB & 0b00000100);

d=(bool)(PINB & 0b00001000);

e=(bool)(PINB & 0b00010000);

g=(bool)(PINB & 0b00100000);

h=(bool)(PINC & 0b00000001);

i=(bool)(PINC & 0b00000010);

j=(bool)(PINC & 0b00000100);

k=(bool)(PINC & 0b00001000);

l=1;// отказ памяти, сигнал свободности приемоотправочного пути ЧП

q=(bool)(PINC & 0b00100000);

s=a&&b&&c&&(!h);

z=a&&b&&d&&i;

m=a&&b&&e&&j;

n=a&&b&&g&&k;

f=a&&b&&c&&h&&d&&(!i)&&e&&(!j)&&g&&(!k)&&l&&q;

if(s)

{

PORTD=PORTD | 0b00000001;

}

else

{

PORTD=PORTD & 0b11111110;

}

if(z)

{

PORTD=PORTD | 0b00000010;

}

else

{

PORTD=PORTD & 0b11111101;

}

if(m)

{

PORTD=PORTD | 0b00000100;

}

else

{

PORTD=PORTD & 0b11111011;

}

if(n)

{

PORTD=PORTD | 0b00001000;

}

else

{

PORTD=PORTD & 0b11110111;

}

if(f)

{

PORTD=PORTD | 0b00010000;

}

else

{

PORTD=PORTD & 0b11101111;

}

}

return 0;

}

5) Является ли повреждение проводов, по которым осуществляется запуск электродвигателя стрелки, опасным отказом? Ответ аргументировать.

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

  1. Вывод

В ходе выполнения лабораторной работы были получены навыки в написание программы для отправления поезда со станции на перегон, по выходному светофору Ч3. Так же были изучены новые ключевые слова (MOTOR-DC, Animated relay model) для более быстрого поиска компонентов в библиотеке Proteus.


написать администратору сайта