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

Рисунок 2.4 – Формирование исходных данных по задаче «Тяговые расчеты»

В нижней строке высвечивается подсказка об использовании функциональных клавиш.

После того, как данные об уклоне и длине элемента профиля введены, пользователь, нажимая клавишу «ESC», выходит из окна 4.

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

При выборе пункта «Печать» пользователь получает возможность выдать на печать таблицу «Тяговые расчеты» (рисунок 2.5).

На экране высвечивается окно «Серия локомотива». Пользователь выбирает серию локомотива и в окне 2 вводит вариант расчета. Предполагается, что все данные уже введены по этой серии локомотива и варианту расчета. В противном случае пользователю выдается сообщение об отсутствии данных и нужно перейти к пункту «Тяговые расчеты» для ввода данных. Имеется возможность указать два режима вывода: «Выдача на экран» или «Выдача на печать». Для этого выдается соответствующее меню – запрос. После завершения печати документа по выбранной серии локомотива и варианту расчета пользователь, нажав клавишу "ESC", возвращается в окно «Серия локомотива», а далее при помощи клавишу "ESC" пользователь возвращается в меню «Тяговые расчеты».

Тяговые расчеты

Серия локомотива ТЭ10

Вариант расчета

Данные о локомотиве

Данные об уклоне / длине эл-та профиля

Масса локомотива

129

Масса состава

2400

Максимальная скорость

100

Начальная скорость

50

Механическая работа локомотива

100

Время хода поезда

5

Все верно?

Да          Нет

Номер

Уклон ‰

Длина эл-та профиля, км

1

2

3

0,0

3,0

3,4

1,85

0,40

0,20

F1 Добавить F2 Удалить F3 Восст. ESC Выход

Рисунок 2.5 – Информация о продольном профиле

Определение скорости, времени хода и механической

работы локомотива

Программа 2

set talk off

set echo off

set step off

set status off

set scoreboard off

set safely off

set exact off

set near on

set deletad on

set date. Gerrman

set color to gr+/b, w+/r,b

ON KEY LABEL F1 do ppp

ON KEY LABEL F2 delete

ON KEY LABEL F3 recall

DELANE WINDOW wff FROM 8,40 TO 20,79 NONE:

NOFLOAT NOGROW SHADOW COLOR W+/BG+,W+/B, W+/BG+  W+/BG+, W+/B, W+/BG+ TITLE' Данные об уклоне/длине эл-та профиля'

clear

close all

sele 1

use dlok index dlok

sele 2

use dvg index dvg

dime mv(11)

mv(1)='             ТЭ10   '

mv(2)='             ВЛ80   '

mv(3)='             ТЭ3     '

mv(4)='             ВЛ60   '

mv(5)='             ТЭ116  '

mv(6)='             ТЭП60 '

mv(7)='             ТЭП10  '

mv(8)='             ЧС2       '

mv(9)='             ЧС4       '

mv(10)='            ЧС7      '

mv(11)='            ВЛ80К  '

  lv=1

@ 0,0 to 24,80 double

@ 0,30 say 'Тяговые расчеты'

do while. T.

@ 2,20 menu mv. 11. title 'Серия локомотива'

read menu to lv save

if lv =0

clear

     exit

endif

rv=lv

@ 2,45 to 4,68 double

nom1=1

@ 3,48 say 'Вариант расчета'  get  nom1 pict '9'

read

sele 1

count to n1

if n1>0

seek str(lv.2)+str(nom1.1)

if .not.found( )

append blank

repl ksl with rv.nom with  nom1

endif

else

append blank

        repl ksl with rv,nom with nom1

endif

a=0

@ 6,2 to 23,38 double

@ 6,6 say ' Данные о локомотиве'

do while.t.

@ 8,6 say ' Масса локомотива'

@ 9,9 get a

@ 10,6 say ' Масса состава'

@ 11,8 get b

@ 12,6 say ' Максимальная скорость'

@ 13,9 get c

@ 14,6 say ' Начальная скорость'

@ 15,9 get d

@ 16,6 say ' Механическая работа локомотива'

@ 17,9 get e

@ 18,6 say ' Время хода поезда'

@ 19,9 get f

read

@ 21,11 say ' Все верно ?'

men=1

@ 22,13 prompt ' Да'

@ 22,18 prompt ' Нет'

menu to men

if men=1

exit

andif

enddo

ra=a

rb=b

rc=c

rd=dre=e

rf=f

 do pod

 rm=1

 sele 2

count to n2

if n2>0

seek str(lv,2)+str(nom1,1)+str(rm,2)

if .not/found( )

   append blank

   repl ksl with rv.nom with  nom1.n with rm

   endif

else

append blank

          repl ksl with rv.nom with  nom1.n with rm

endif

nz=recno( )

  set filter to ksl=lv. and. nom=nom1

   go stop

browse fields n: 5: h='Номер' ,y:8:y='Уклон' ,s:20:

h='Длина эл-та  профиля':

  WINDOW wff all format/ COLOR SCHEME 10

set color to gr+/h,w=/r,h

@ 6,2 clear to 23,78

@ 2,45 clear to 4,68

         SAVE SCREEN TO  nemscr

                    SET CURSOR OFF

    do PRWAIT with 'w+/r' , 'gr+/r' , 'Подождите 1' , 'Идет основной расчет…'

                     SET CURSOR  ON

sele 2

go nz

do while. not.eof( ). ksl=lv.and.nom=nom1

do case 

case lv=1

    do rash1

case lv=2

    do rash2

case lv=3

    do rash3

case lv=4

    do rash4

case lv=5

    do rash5

case lv=6

     do rash6

case lv=7

     do rash7

case lv=8

     do rash8

case lv=9

     do rash9

case lv=10

      do rash10

case lv=11

     do rash11

endcase

skip

enddo

       do PRWAIT with 'w+/rb' , 'gr+/rb'.'  Основной расчет ' . ' :

ЗАВЕРШЕНО УСПЕШНО! '

       WAIT'' TIMEJUT 2

        SET CURSOR ON

        RESTORE SCREEN FROM  nemscr

enddo

     set filter to

      return

proc pod

set color to W+/N

@ 22,40 say 'F1'

@ 22,50  say 'F2'

@ 22,60 say 'F3'

@ 22,69 say 'ESC'

set color to GR+/W

@ 22,42 say ' Добавить'

@ 22,52 say 'Удалить'

@ 22,62 say 'Восст.'

@ 22,72 say  'Выход'

     set color to

     return

PROC VIX

KEYBOARD CHR(23)

return

proc ppp

rm=n+1

append blank

repl ksl with lv.nom with  nom1.n with rm

return

proc rashl

u=ra/(ra+rb)

s1=0

do while.t.

d1=1.9+0.01*rd+0.0003*rd**2

c1=1.12+5.3*0.001*rd+1.31*0.0001*rd**2

b1=u*d1+(1-u)*c1

do case

case rd≤22

q=129000*(0/25+8/(100+20*rd))

case rd≤60

q=98900-6209.1*rd+190.415*rd**2-2/80833*rd**3+0.01583333*rd**4

otherwise

q=91850-3672.9*rd+63.104*rd**2-0.495833*rd**3+0.00145833*rd**4

endcase

a1=sqrt(abs(rd**2+12*(q/(ra+rb)-b1-y)))-rd

rd=rd+a1

if rd≥rc

rd=rc

rf=rf+60*(s-s1)/rd

q=(ra+rb)*(b1+y)

if q>0

re=re+0.001*q*(s-s1)

endif