Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $regfile = "m128def.dat" ' specify the used micro
- $crystal = 12000000 ' used crystal frequenc8
- '$baud1 = 19200 ' use baud rate
- '$baud = 19200
- $hwstack = 128 ' default use 32 for the hardware stack
- $swstack = 128 ' default use 10 for the SW stack
- $framesize = 512
- $lib "modbus.lbx"
- $lib "glcdeadogm128x6.lbx"
- ''$prog &HFF , &H8E , &HC1 , &HFF ' generated. Take care that the chip supports all fuse bytes.
- ''Config Graphlcd = 128 * 64eadogm , Cs1 = Porta.4 , A0 = Porta.5 , Si = Porta.7 , Sclk = Porta.6 , Rst = Porta.3
- Config Com2 = 57600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 ', Clockpol = 0
- Open "com2:" For Binary As #2
- Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 ', Clockpol = 0
- Open "com1:" For Binary As #1
- On Urxc Urxc_isr
- Enable Urxc
- On Urxc1 Urxc_isr1
- Enable Urxc1
- Config Int4 = Rising 'preruseni od snimace otacek vyvevy
- On Int4 Int4_int
- Enable Int4
- $lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
- Config Scl = Portd.0 ' we need to provide the SCL pin name
- Config Sda = Portd.1 ' we need to provide the SDA pin name
- I2cinit
- Config Twi = 100000
- Declare Sub Init_pca9685
- Init_pca9685
- Declare Sub Send_pwm
- '(
- Config Timer0 = Timer , Prescale = 256
- On Timer0 Tim0_int
- Enable Timer0
- ')
- Tccr0 = &B10001_101 'nastaveni casovace do ctc rezimu / 128
- Ocr0 = 249 ''1 sekundd = 375 dilku (249 je korekce, protoze dilek je i nula a celkovy pocet je pak 250 taktu do sekundy
- Set Timsk.1
- On Oc0 Tim0_int
- 'KONFIGURACE DISPLEJE A TLACITEK
- Config Graphlcd = 128 * 64eadogm , Cs1 = Portc.7 , A0 = Portc.3 , Si = Portc.4 , Sclk = Portc.5 , Rst = Portc.6
- Tl_up Alias Pinc.0 : Config Portc.0 = Input : Set Portc.0
- Tl_down Alias Pinc.1 : Config Portc.1 = Input : Set Portc.1
- Tl_ok Alias Pinc.2 : Config Portc.2 = Input : Set Portc.2
- Teplota_vyveva Alias Pinf.2 : Config Portf.2 = Input : Set Portc.2
- Glcdcmd &H23
- Glcdcmd &H81
- Glcdcmd 55
- Glcdcmd &H1C
- ''OTOCENI DISPLEJA
- Glcdcmd &B11001111
- Glcdcmd &B10100000
- Declare Sub Obsluha_tlacitek
- Declare Sub Tlacitka_menu1
- Declare Sub Read_inputs
- Declare Sub Send_outputs
- Declare Sub Sest_obr_spinacu
- Declare Sub Cls_
- Declare Sub Strana1
- Declare Sub Strana2
- Declare Sub Strana3
- Declare Sub Strana4
- Declare Sub Strana5
- Declare Sub Strana6
- Declare Sub Strana7
- Declare Sub Strana8
- Declare Sub Strana9
- Declare Sub Strana10
- Declare Sub Strana11
- Declare Sub Strana12
- Declare Sub Vypocet_cista
- Declare Sub Vypocet_kalova
- Declare Sub Prepocet_bytu(byval Bytebyte As Byte , Byval Prepocet_bytu_num As Byte)
- Declare Sub Prepocet_na_word(byval Word_poz As Word )
- Declare Sub Vyh_vystupu_vyveva
- Declare Sub Vyh_vystupu_vystlak_cerpadlo
- Declare Sub Vyh_vystupu_recyklace
- Declare Sub Vyh_vystupu_doplnkove_funkce
- Declare Sub Reset_vystupu
- Declare Sub Predavani_autec
- Declare Sub Hlasky_rout
- Declare Sub Hlasky_zasobnik(byval Cislo_hlasky As Byte , Byval Vymaz As Byte)
- Declare Sub Odesli_hlasku
- Cls_
- Setfont Font8x8
- 'KONFIGURACE AD PREVODNIKU
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- Out17 Alias Porta.4 : Config Porta.4 = Output
- Out18 Alias Porta.5 : Config Porta.5 = Output
- Out19 Alias Porta.6 : Config Porta.6 = Output
- Out20 Alias Porta.7 : Config Porta.7 = Output
- Dim Bit_time As Bit
- Dim Pombyte As Byte , I As Byte , Ii As Byte , Index As Byte
- Dim Tim1 As Word , Pomw1 As Single , Pomw2 As Single , Pomw3 As Single
- Dim Pomw4 As Word
- Dim Outp(20) As Word
- Dim Outp_old(20) As Word
- Dim Outb(20) As Integer ''out begin
- Dim Oute(20) As Integer ''out end
- Dim New_ee As Eram Byte
- Dim Outb_ee(20) As Eram Word
- Dim Oute_ee(20) As Eram Word
- Dim Pwm_out(20) As Word ''zakladni cislo pro rizeni vystupu - 255 urovni
- Dim Slave_tlac As Word
- Dim Xy(20) As Byte
- Dim Pocitadlo As Word
- Dim Ramp_on(20) As Word
- Dim Ramp_on_ee(20) As Eram Word
- Dim Ramp_off(20) As Word
- Dim Ramp_off_ee(20) As Eram Word
- Dim Pwm_driver(20) As Word
- Dim Pwm_krok(20) As Word , Pwm_out_integer(20) As Integer ,
- Dim Pwm_krok_prom(20) As Word
- ''Dim Pwm_timer_limit(20) As Word
- Dim Tim_ramp As Word
- Dim Index_ramp As Word
- Dim Ext_u As Bit
- Dim Thisslave As Word
- Dim Hadice_nastavena As Bit
- Dim Data_prijata_tlacitka As Bit
- Dim Vysilej_tlacitka As Bit
- Dim Prevodnik(8) As Word
- 'Dim Pwm_out_skut(20) As Word
- '' zakladni nastaveni promennych nez se nahraji nove hodnoty z EEPROM
- '' maximalni rozliseni vystupu je 4095 dilku
- '' definujeme vsak pocatecni uroven reakce vystupu a konecnou uroven reakce vystupu
- '' zbyvajici vnitrni oblast je aktivni cast pro rizeni proprcionaliho hydraulickeno ventilu
- '' avsak i definovany aktivni interval by mel byt vetsi nez 200, coz muzeme povazovat za dostatecne velkou stupnici pro rizeni ventilu.
- '' konecny interval pak je oute - outb
- Showpic 5 , 10 , Logostep
- Setfont Font8x8
- Lcdat 7 , 1 , "MAUS16 UFO"
- Lcdat 8 , 1 , "V.1.1. / 15.3.2016 "
- Waitms 500
- ''Cls_
- Declare Sub Modbus(byval Modbus_s As Byte , Byval Modbus_prikaz As Byte , Byval Modbus_adresa As Word , Byval Modbus_pocetbajtu As Word)
- '''M-LITE DEKLACE PROMENNYCH =-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-==-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=
- Dim Skupina As Byte , Slave As Byte , Master As Bit
- Dim Mbuf(120) As Byte , Modt As Byte , Crc As Word , Crc2 As Word , Index1 As Word , Index2 As Word , Index3 As Word
- Dim M(60) As Word
- Dim Pocet_wordu As Byte , Adresa_pameti As Byte , X As Byte
- Dim Space_time As Word , Vysilej As Bit
- Dim Buf_long As Byte
- Dim Data_prijata As Bit
- Skupina = 10 : Slave = 0 ''skupina a adresa slejva,
- If Slave = 0 Then
- Master = 1 ''pokud je slejv nenulovy, je master 0, jinak jsme master
- Else
- Master = 0
- End If
- Dim Index2_tl As Word , Crc_tl As Word , Crc2_tl As Word , X_tl As Byte
- Dim Modt_tl As Byte , Index_tl As Byte , Mbuf_tl(20) As Byte , Buf_long_tl As Byte , Nodata_time_tl As Word , Space_time_tl As Word
- Pocitadlo = 1
- ''Dim Ypom As Word , Xpom As Word , Yypom As Word , Xxpom As Word
- Dim Prikaz As String * 2 , Pipani As Word
- Dim Att As Byte , Pinh1_old As Byte
- Dim Pomword As Bit
- Dim Nodata_time As Word , Index_d As Word
- Dim Bufik As Byte
- Dim Adresa_pameti_tl As Byte
- '' dale je mozne definovat intervaly pro maximalni cas mezi koncem dotazu a zacatkem odpovedi, co ruzny timeout pro cteni a zapis
- Index = 0
- 'Flaga = 0
- '****************************************
- '****************************************
- Dim Tlacitko As Word , Osax As Word , Osay As Word
- '****************************************
- '****************************************
- Dim Tim_tl_up As Word , Tim_tl_down As Word , Tim_tl_ok As Word
- Dim Tl_up_old As Bit , Tl_down_old As Bit , Tl_ok_old As Bit , Uloz_data As Bit
- Dim Set_bit As Bit , Refresh_bit As Bit , Menu_bit As Bit , Set_pos As Byte , Menu_pos As Byte
- Dim S As String * 20 , Refresh_out As Bit , Strana As Byte
- Dim Vstup As Word , Tlac1_ As Bit , Tlac2_ As Bit , Tlac3_ As Bit
- Dim Ain(8) As Word , Pom_ain1(21) As Word , Pom_ain2(21) As Word , Pom_ain3(21) As Word , Pom_ain4(21) As Word , Pom_ain5(21) As Word , Pom_ain6(21) As Word , Pom_ain7(21) As Word , Pom_ain8(21) As Word
- Dim I1 As Byte , I2 As Byte , I3 As Byte , Pocet_vzorku As Byte , Ain_(8)as Long
- Dim Otacky_pozadovane As Word , Hadice As Word , Prutok As Word , Motor_stop As Bit , Motor_start As Bit , Otacky_realne As Word , Pom_single As Single
- Dim Vystupni_tlak_real As Word , Prutok_real As Word , Tlak_pozadovany As Word , Automat As Bit , Pom_rozdil As Word
- Dim Nuluj_irc_bit As Bit , Irc_step As Byte , Irc_sample As Byte
- Dim Irc_val_celk As Long , Delitel As Long , Prepocet As Long , Prepocet_str As String * 4 , Irc_val As Long , Smer As Bit , Posun As Bit
- Dim Irc_val_celk_2 As Long , Zmena As Bit , Testovaci_rezim As Bit
- Dim Hladina_kalove_vody_prac As Word , Hladina_vody_prac As Word
- Dim Nastaveni_ramp_ee As Eram Byte
- Dim Tim3 As Word
- Dim Vrstva_zmena As Word , Vrstva As Word , Vrstva_old As Word , Polomer As Single , Tloustka_hadice As Single
- Dim Odvinuto As Single , Buben_otacky As Single , Obvod As Single , Pocet_rad As Single , Obvod_konstant As Single , Vrstva_old1 As Word
- Dim Buben_otackyp10 As Long , Buben_otackym10 As Long , Zmena_vrstvy As Integer
- Dim Buben_word As Long , Odvinuto_celk As Single , Fn As Word , Buben_otacky_pro As Single , Vrstkonst As Word , Odvin As Word
- Dim Pom_str As String * 10 , Time_out_pom As Byte , Navinbitufo As Bit , Navinbitovladac As Bit , Navinvyp As Bit
- Dim Potik As Word , Pocetzmacknuti As Byte
- Dim Kodery_ufo As Word
- Dim Pole_vrstvy(20) As Single , Comm_period As Word , Comm_period_tlacitka As Byte
- Dim Zarizeni As Byte , Druh_komunikace As Byte , Pocet_stisku As Byte
- Dim Tlak_vyveva_disp As Word , Otacky_motoru As Word , Tlak_real As Word
- Dim Recyklace_funkce As Bit
- '**********PROMENNE PRO TLACITKA NA DVERICH****************
- Dim Vak_cerp_on_off As Bit , Vak_cerp_sani As Bit , Vak_cerp_vytlak As Bit , Vak_cerp_soupe_spodni As Bit , Vak_cerp_soupe_horni As Bit,
- Dim Vystlak_cerp_on_off As Bit , Vystlak_cerp_kohout_dn13 As Bit , Vystlak_cerp_kohout_dn25_32 As Bit
- Dim Vystlak_cerp_hadice_dn13 As Bit , Vystlak_cerp_hadice_dn25_32 As Bit , Vystlak_cerp_tlak_on_off As Bit
- Dim Recyklace_upr_vody As Bit , Recyklace_cist_hrub_filtr As Bit , Recyklace_cist_cyklon As Bit , Recyklace_odcerp_kal As Bit
- Dim Zavodneni_90s As Bit , Zavodneni_majak As Bit , Zavodneni_svetlo As Bit , Zavodneni_radio As Bit
- '**********PROMENNE PRO VSTUPY****************
- Dim Vyveva_otacky As Word , Tlak_oleje_vyveva As Word , Pretlak_vyveva As Word , Podtlak_vyveva As Word
- Dim Tlak_vody_hrib As Word , Hladina_vody As Word , Hladina_kalove_vody As Word
- Dim Cista_min As Word , Cista_max As Word , Kalova_min As Word , Kalova_max As Word
- '**********PROMENNE PRO VYSTUPY****************
- Dim Vyveva_pwm As Bit , Vyveva_sani As Bit , Vyveva_vytlak As Bit , Vyveva_odvetrani As Bit , Ventil_kalova As Bit , Ventil_kalova_1 As Bit
- Dim Ventil_zac_kaly_2 As Bit , Ventil_cista As Bit , Ventil_cista_2 As Bit , Ventil_horni_kaly_3 As Bit , Ventil_reg_hrib As Bit,
- Dim Ventil_dn13 As Bit , Ventil_dn25 As Bit , Cis_hruby_filtr As Bit , Klapka_nap_cista As Bit , Klapka_nap_kalova As Bit , Klapka_ovldaci_pro_f As Bit
- Dim Soupe_dolni As Bit , Soupe_horni As Bit , Auto_stop As Bit , Otacky_plus As Bit , Otacky_minus As Bit
- Dim Tlak_vyveva As Word , Vyveva_prepocet As Word
- Dim Ad_bit As Bit , Ad_time As Word
- Dim Time_cisteni_cyklonu As Word , Time_zavodneni As Word
- Dim Kodery_ufo_2 As Word
- Dim Tlacitka_1 As Word , Tlacitka_2 As Word
- Dim Recykl_cerp_hrub_filtr As Bit , Cyklon As Bit
- Dim Cist_hrub_filtru_time As Word
- '**********PROMENNE PRO VYPOCTY****************
- Dim Maximum As Word , Minimum As Word , Cista_konst As Single , Akt_cista As Word
- Dim Akt_kalova As Word , Maximum_kalova As Word , Minimum_kalova As Word , Kalova_konst As Single
- Dim Maximum_ee As Eram Word , Minimum_ee As Eram Word , Maximum_kalova_ee As Eram Word , Minimum_kalova_ee As Eram Word
- Dim Recyklace_1sec As Word , Recyklace_time As Word
- Dim Hys1 As Bit , Hys2 As Bit , Start_hystereze As Bit
- Dim Cisteni_cyklonu_time As Word , Recyklace_cist_cyklon_old As Bit , Recyklace_cist_cyklon_time As Word
- Dim Vystlak_cerpadlo As Bit
- Dim Vypnout_vystupy As Bit
- Dim Tim2 As Word , Otacky_vyveva As Word , Vyveva_rpm As Word
- Dim Pom_byte As Byte , Prepocet_bytu_num As Byte , Word1 As Word , Word2 As Word , Word3 As Word , Word4 As Word
- Dim Word5 As Word , Word6 As Word , Word7 As Word , Word8 As Word
- Dim Vykon_vyveva As Word , Tlak_pozadovany_automat As Word
- Dim Ee_hladiny As Eram Byte
- Dim Vyveva_ok As Bit
- Dim Pt As Byte , Ptx As Byte
- Dim Otacky_pridej As Bit , Otacky_uber As Bit , Zmena_otacek_time As Word , Cteni_otacek_time As Word
- Dim Rozdil_tlaku As Single , Men_otacky As Bit
- Dim Blokace_cista As Bit , Blokace_kalova As Bit , Blokace_bimetal As Bit
- Dim Recyklace_zobraz As Bit , Vystlak_cerp_zobraz As Bit , Vyveva_zobraz As Bit
- Dim Pom_word As Word
- Dim Autec_1 As Word , Autec_2 As Word , Autec_3 As Word
- Dim Pom_byte1 As Byte , Pom_byte2 As Byte
- Dim Hlaska As Byte , Hlasky_zasobnik_pole(50) As Byte
- Dim Zapsano As Bit
- Dim Z As Byte , Zz As Byte
- Dim Hlaska_bit As Bit , Hlaska_bit_old As Bit
- Dim Hlhl As Byte
- Dim Tlak_pozadovany_automat_radio As Word , Vyveva_prepocet_radio As Word
- Dim Hys3 As Bit , Vypni As Bit
- Dim Cekani_const As Word , Otacky_const As Word
- Dim Vyveva_prehrati As Bit , Predej_autec As Word
- Dim Hlaska_exist As Bit
- Dim Konec As Word , Hlaska_old As Byte
- Dim Teplota_oleje As Byte , Tlak_oleje_kalove_cerpadlo As Byte
- Dim Otacky_pozadovane_vyveva As Word
- Dim Rozdil_otacek As Single , Vyveva_automat As Word
- Dim Cekej As Bit , Cas_vyveva As Word
- Dim Najeto As Bit
- Dim Hys4 As Bit , Vypni_cerp As Bit
- Dim Hys5 As Bit , Vypni_recykl As Bit
- Dim Otacky_const_minus As Word
- Dim Tlak_hlaska As Bit , Tlak_time As Word , Recyklace_time_znovuspust As Word
- Dim Set_cerp As Bit , Set_cyklon As Bit
- Dim Teplota_time As Bit , Teplota_vyveva_time As Word , Zmena_tepl As Bit , Temp_min As Word , Temp_max As Word
- Declare Sub Zmena_otacek(byval Jak As Byte)
- Pocet_vzorku = 10
- Strana = 4
- If New_ee <> 4 Then
- For Index = 2 To 19
- Outb_ee(index) = 1
- Oute_ee(index) = 4096
- Ramp_on_ee(index) = 1
- Ramp_off_ee(index) = 1
- Next
- New_ee = 4
- End If
- If Nastaveni_ramp_ee <> 5 Then
- 'VYVEVA
- Outb_ee(1) = 1000
- Oute_ee(1) = 1550
- Ramp_on_ee(1) = 40
- Ramp_off_ee(1) = 10
- Nastaveni_ramp_ee = 5
- End If
- For Index = 1 To 19
- Outb(index) = Outb_ee(index) : Oute(index) = Oute_ee(index)
- Ramp_on(index) = Ramp_on_ee(index)
- Ramp_off(index) = Ramp_off_ee(index)
- Next Index
- Menu_bit = 0
- Irc_val_celk = 0
- Irc_val = 0
- Zmena = 0
- Irc_val_celk_2 = 0
- Irc_val = 0
- Comm_period_tlacitka = 25 '' ROZSYNCHONIZOVANI S CASOVACEM PRVNI KOMUNIKACE
- Const Reakce_tlacitka = 20 ''prodleva po jake se vyhodnoti, ze tlacitko je stlaceno - nabezna hrana
- Const Opakovana_reakce_tlacitka = 200 '' doba podrzeni tlacitka, od ktere se hodnota " rozbehne "
- Const Rychlost_pridavku_pwm = 20 ''cislo jak rychly bude pridavek
- Const Rychlost_pridavku_ram = 20 ''cislo jak rychly bude pridavek
- Const Pridavek_pwm = 50 '' o kolik se zmeni hodnota pri podrzeni tlacitka
- Const Pridavek_ram = 5
- Setfont Font8x8
- Set Refresh_bit
- Cls
- 'Prepsani eeprom hodnot hladin nadrzi cista_min = 835 / 5.65
- ' ^ ^ ^------- rozdil mezi minimem a maxime / 100 (konstanta pro prepocet na 100%)
- ' ^ ^------------- hodnota minima - surova hodnota z A/D prevodniku
- ' ^----------------------- "ulozena" hodnota minima hladiny v nadrzi ciste vody
- If Ee_hladiny <> 11 Then
- Cista_min = 760 - 164
- Minimum_ee = Cista_min
- 'Minimum = Cista_max
- Cista_max = 600 - 164
- Maximum_ee = Cista_max
- 'Maximum = Cista_min
- '(
- Kalova_min = 720 / 5.65
- Minimum_kalova_ee = Kalova_min
- Kalova_max = 170 / 5.65
- Maximum_kalova_ee = Kalova_max
- ')
- Ee_hladiny = 11
- End If
- Waitms 100
- Cista_min = Minimum_ee
- Cista_max = Maximum_ee
- Kalova_min = Minimum_kalova_ee
- Kalova_max = Maximum_kalova_ee
- Waitms 800
- Enable Interrupts
- Hlaska_bit = 1
- Hlaska_bit_old = Hlaska_bit
- Config Watchdog = 2048
- Start Watchdog
- Do
- '******** MODBUS PRIJEM OD UFA A DISPLEJE ********************
- If Data_prijata = 1 Then
- Data_prijata = 0
- '' sestaveni hodnoty crc z poslednich dvou bajtu
- Index2 = Buf_long - 1
- Crc = Makeint(mbuf(index2) , Mbuf(buf_long)) ' create word of received crc
- Decr Index2
- ''vypocet crc z prichozi informace (je potreba modbus.lib)
- Crc2 = Crcmb(mbuf(1) , Index2)
- Adresa_pameti = 1
- If Crc = Crc2 Then
- If Master = 1 Then
- '' pokud jsme master, zapiseme si data podle toho ktery slejv nam odpovida
- If Mbuf(2) = 1 Then Adresa_pameti = 30
- If Mbuf(2) = 2 Then Adresa_pameti = 20
- ''Else...
- '' JSME NYNI MASTER
- End If
- Zarizeni = Mbuf(3) '' Naplneni "m" '' hodnot podle adresy
- Pocet_wordu = Mbuf(4)
- Index2 = 5
- For X = 1 To Pocet_wordu 'Pocet_polozek
- M(adresa_pameti) = Mbuf(index2) * 256
- Incr Index2
- M(adresa_pameti) = M(adresa_pameti) + Mbuf(index2)
- Incr Index2
- Incr Adresa_pameti
- Next
- End If
- Index = 0
- '**** SESTAVENI PRACOVNICH PROMENNYCH ***********
- 'pokyny pro zmenu otacek od slejva
- Otacky_plus = M(30).3
- Otacky_minus = M(30).2
- 'pokyny pro master od displeje
- If Zavodneni_radio = 0 Then
- Tlak_pozadovany_automat = M(20)
- Vykon_vyveva = M(21)
- Automat = M(22).0
- If Vykon_vyveva = 100 Then
- Vyveva_prepocet = 103 * 40
- Elseif Vykon_vyveva < 100 Then
- Vyveva_prepocet = Vykon_vyveva * 40
- End If
- End If
- Hlaska_bit = M(22).1
- 'informace pro displej od slejva (informace o vstupech)
- Word5 = M(30)
- Word6 = M(31)
- Word7 = M(32)
- Word8 = M(33)
- Autec_1 = M(34)
- Autec_2 = M(35)
- Odvin = M(36)
- Predej_autec = Autec_2
- For Pt = 0 To 7
- Ptx = Pt + 8
- Teplota_oleje.pt = Word8.ptx
- Next
- For Pt = 0 To 7
- Ptx = Pt + 8
- Tlak_oleje_kalove_cerpadlo.pt = Word7.ptx
- Next
- '"vytazeni" informace o otackach motoru pro automaticke rizeni tlaku
- Call Prepocet_na_word(word6)
- Predavani_autec
- End If
- '*********PREDAVANE INFORMACE**********
- ' prirazeni informaci do prazdnych pozic wordu tlacitka_1 a tlacitka_2
- Tlacitka_1.11 = Recykl_cerp_hrub_filtr
- Tlacitka_1.12 = Cyklon
- ' predavane informace od tlacitkovych desek na rozvadeci a pridenych informaci (viz vyse)
- M(1) = Tlacitka_1
- M(2) = Tlacitka_2
- ' predavane informace od mastru a slejva pro displej (informace o stavu cidel atd...)
- M(3) = Word1
- M(4) = Word2
- M(5) = Word3
- M(6) = Word4
- Word5.4 = Recyklace_zobraz
- Word5.5 = Vystlak_cerp_zobraz
- Word5.6 = Vyveva_zobraz
- M(7) = Word5
- M(8) = Word6
- M(9) = Word7
- M(10) = Word8
- M(11) = Hlasky_zasobnik_pole(1)
- Hlaska = 0
- M(12) = Predej_autec
- M(13) = Odvin
- '********VYSLANI PREDAVANYCH INFORMACI NA LINKU UFO-M <-> UFO-S <-> DISPLAY-S
- If Vysilej = 1 Then
- Reset Vysilej
- Mbuf(1) = Skupina
- If Master = 1 Then
- Mbuf(2) = Slave
- ''Else ''JSME MASTER
- ''Mbuf(2) = 1
- End If
- Mbuf(3) = 0
- If Slave = 2 Then
- Pocet_wordu = 13
- Mbuf(4) = 13
- Elseif Slave = 1 Then
- Pocet_wordu = 2
- Mbuf(4) = 2
- End If
- Index2 = 5 : Adresa_pameti = 1 '' adresu si muzeme upravit, drzme se ale toho, ze sdilene promenne bude pocitat od jednicky a redukovat na nutny pocet
- For X = 1 To Pocet_wordu 'Pocet_polozek
- Mbuf(index2) = High(m(adresa_pameti))
- Incr Index2
- Mbuf(index2) = Low(m(adresa_pameti))
- Incr Index2
- Incr Adresa_pameti
- Next
- Decr Index2
- Crc = Crcmb(mbuf(1) , Index2) ' create checksum
- Incr Index2
- Mbuf(index2) = Low(crc) 'add to buffer
- Incr Index2
- Mbuf(index2) = High(crc)
- For X = 1 To Index2
- Printbin #2 , Mbuf(x) ; 1
- Next
- End If
- '**************KOMUNIKACE_TLACITKA******************************
- If Data_prijata_tlacitka = 1 Then
- Data_prijata_tlacitka = 0
- '' sestaveni hodnoty crc z poslednich dvou bajtu
- Index2_tl = Buf_long_tl - 1
- Crc_tl = Makeint(mbuf_tl(index2_tl) , Mbuf_tl(buf_long_tl)) ' create word of received crc
- Decr Index2_tl
- ''vypocet crc z prichozi informace (je potreba modbus.lib)
- Crc2_tl = Crcmb(mbuf_tl(1) , Index2_tl)
- Adresa_pameti = 1
- If Crc_tl = Crc2_tl Then
- If Master = 1 Then
- If Mbuf_tl(2) = 2 Then Adresa_pameti_tl = 40 : Bufik = 2
- If Mbuf_tl(2) = 3 Then Adresa_pameti_tl = 44 : Bufik = 3
- If Mbuf_tl(2) = 4 Then Adresa_pameti_tl = 48 : Bufik = 4
- If Mbuf_tl(2) = 5 Then Adresa_pameti_tl = 52 : Bufik = 5
- End If
- Zarizeni = Mbuf_tl(3) '' Naplneni "m" '' hodnot podle adresy
- Pocet_wordu = 2
- Mbuf_tl(4) = Pocet_wordu
- Index2_tl = 5
- For X_tl = 1 To Pocet_wordu 'Pocet_polozek
- M(adresa_pameti_tl) = Mbuf_tl(index2_tl) * 256
- Incr Index2_tl
- M(adresa_pameti_tl) = M(adresa_pameti_tl) + Mbuf_tl(index2_tl)
- Incr Index2_tl
- Incr Adresa_pameti_tl
- Next
- End If
- '' NAHRANI PRACOVNICH BITU V SUBROUTINE
- If Mbuf_tl(2) = 5 Then
- Zavodneni_90s = M(52).1
- Tlacitka_2.4 = Zavodneni_90s
- Zavodneni_majak = M(52).2
- Tlacitka_2.5 = Zavodneni_majak
- Zavodneni_svetlo = M(52).3
- Tlacitka_2.6 = Zavodneni_svetlo
- Zavodneni_radio = M(52).4
- Tlacitka_2.7 = Zavodneni_radio
- End If
- If Zavodneni_radio = 0 Then
- Sest_obr_spinacu
- Elseif Zavodneni_radio = 1 Then
- '' VYBER OVLADANE HADICE JE VZDY
- Vystlak_cerp_hadice_dn13 = M(44).4
- Tlacitka_1.8 = Vystlak_cerp_hadice_dn13
- Vystlak_cerp_hadice_dn25_32 = M(44).5
- Tlacitka_1.9 = Vystlak_cerp_hadice_dn25_32
- End If
- Index_tl = 0
- End If
- '************VYSLANI DOTAZU DO TLACITKOVYCH DESEK****************************
- If Vysilej_tlacitka = 1 Then
- Reset Vysilej_tlacitka
- '' POSTUONE OSLOVENI VSECH DESEK - ADRESY 2,3,4,5
- Incr Pocitadlo
- If Pocitadlo > 5 Then
- Pocitadlo = 2
- End If
- Druh_komunikace = 0 ''princip - je to modbus odpoved, odpovidame slejvovi nase hodnoty, on pak nasledne odpovi zase jeho pole promennych
- Mbuf_tl(1) = 10 'Skupina
- Mbuf_tl(2) = Pocitadlo
- Mbuf_tl(3) = 1 'Druh_komunikace
- Pocet_wordu = 1
- Mbuf_tl(4) = Pocet_wordu
- Index2_tl = 5 : Adresa_pameti_tl = 1 '' adresu si muzeme upravit, drzme se ale toho, ze sdilene promenne bude pocitat od jednicky a redukovat na nutny pocet
- For X_tl = 1 To Pocet_wordu 'Pocet_polozek
- Mbuf_tl(index2_tl) = High(m(adresa_pameti_tl))
- Incr Index2_tl
- Mbuf_tl(index2_tl) = Low(m(adresa_pameti_tl))
- Incr Index2_tl
- Incr Adresa_pameti_tl
- Next
- Decr Index2_tl
- Crc_tl = Crcmb(mbuf_tl(1) , Index2_tl) ' create checksum
- Incr Index2_tl
- Mbuf_tl(index2_tl) = Low(crc_tl) 'add to buffer
- Incr Index2_tl
- Mbuf_tl(index2_tl) = High(crc_tl)
- For X_tl = 1 To Index2_tl
- Printbin #1 , Mbuf_tl(x_tl) ; 1
- Next
- End If
- '****************RUTINA HLASKY*********************
- If Hlaska_bit <> Hlaska_bit_old Then
- Incr Hlhl
- If Hlaska_bit = 1 And Hlaska_bit_old = 0 Then
- Posun = 0
- Odesli_hlasku
- End If
- Hlaska_bit_old = Hlaska_bit
- End If
- Hlasky_rout
- If Hlaska <> Hlaska_old Then
- Odesli_hlasku
- End If
- If Hlasky_zasobnik_pole(1) = 0 And Hlaska <> 0 Then
- Hlaska = 0
- End If
- If Hlasky_zasobnik_pole(1) <> 0 And Posun = 0 Then
- Hlaska = Hlasky_zasobnik_pole(1)
- 'Hlasky_zasobnik_pole(1) = 0
- End If
- 'If Posun = 0 Then
- 'Odesli_hlasku
- 'Posun = 1
- 'End If
- '*****************RESET VSECH VYSTUPU***************
- 'Nejprve resetujeme vsechny vystupy - prvotni stav pri prochazeni smycky.
- 'Nasleduji vyhodnovaci rutiny podle jednotlivych sekci rozvadece, na jejichz
- 'konci mame pripraveny pozadovane vystupy k sepnuti.
- 'Nasleduje odeslani vystupu (send outputs, send pwm)
- Reset_vystupu
- '********************VYVEVA**************************
- '------' '---------------------' '----SOUPE----'
- 'ON/OFF' 'SANI/ODVETRANI/VYTLAK' 'DOLNI/0/HORNI'
- '------' '---------------------' '-------------'
- '****************************************************
- Vyh_vystupu_vyveva
- '****************VYSOKOTLAKE CERPADLO***********************
- '------' '----HADICE----' '-----BUBEN----' '-TLAK-'
- 'ON/OFF' 'DN13/0/DN25-30' 'DN13/0/DN25-30' 'ON/OFF'
- '------' '--------------' '--------------' '------'
- '***********************************************************
- Vyh_vystupu_vystlak_cerpadlo
- '****************RECYKLACE*******************************************
- '------' 'CIST HRUB FILTR' 'CISTENI CYKLON' 'ODCERP KAL VODY'
- 'ON/OFF' '----ON/OFF-----' '----ON/OFF----' '-----ON/OFF----'
- '------' '---------------' '--------------' '---------------'
- '********************************************************************
- Vyh_vystupu_recyklace
- '****************DOPLNKOVEFUNKCE***********************
- ' ZAVODNENI SVETLO MAJAK RADIO
- ' '------' '------' '------' '------'
- ' 'ON/OFF' 'ON/OFF' 'ON/OFF' 'ON/OFF'
- ' '------' '------' '------' '------'
- '***********************************************************
- Vyh_vystupu_doplnkove_funkce
- '************automatika_vyveva************************
- If Menu_bit = 1 Then
- '#################### NASTAVENI PWM HRANIC A RAMP PRO VYSTUPY #############################
- If Menu_pos < 17 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "NASTAVENI"
- Lcdat 2 , 1 , "VENTILU: ";
- If Set_pos = 0 Then
- Setfont 100 : Lcdat 1 , 80 , Menu_pos ; "::::::" ; : Lcdat 1 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 1 , 80 , Menu_pos ; "::::::" ; : Lcdat 1 , 60 , "::";
- End If
- Setfont Font8x8 : Lcdat 4 , 1 , "MINIMUM "
- If Set_pos = 1 Then
- Setfont 100 : Lcdat 3 , 80 , Outb(menu_pos) ; "::" ; : Lcdat 3 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 3 , 80 , Outb(menu_pos) ; "::" ; : Lcdat 3 , 60 , "::" ;
- End If
- Setfont Font8x8 : Lcdat 6 , 1 , "MAXIMUM "
- If Set_pos = 2 Then
- Setfont 100 : Lcdat 5 , 80 , Oute(menu_pos) ; "::" ; : Lcdat 5 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 5 , 80 , Oute(menu_pos) ; "::" ; : Lcdat 5 , 60 , "::" ;
- End If
- Setfont Font8x8 : Lcdat 7 , 1 , "RAM _/ :" ; : Lcdat 8 , 1 , "RAM \_ :";
- If Set_pos = 3 Then
- Lcdat 7 , 60 , ">>" ; : Lcdat 7 , 80 , Ramp_on(menu_pos) ; " " ;
- Else
- Lcdat 7 , 60 , " " ; : Lcdat 7 , 80 , Ramp_on(menu_pos) ; " " ;
- End If
- If Set_pos = 4 Then
- Lcdat 8 , 60 , ">>" ; : Lcdat 8 , 80 , Ramp_off(menu_pos) ; " " ;
- Else
- Lcdat 8 , 60 , " " ; : Lcdat 8 , 80 , Ramp_off(menu_pos) ; " " ;
- End If
- Elseif Menu_pos = 17 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont My12d
- Lcdat 5 , 40 , "EXIT? >"
- Elseif Menu_pos = 40 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , " HLADINA CISTA VODA " , 1
- Lcdat 4 , 1 , " HLADINA KALOVA VODA " , 1
- Lcdat 8 , 1 , ".CISTA:" , 1
- Lcdat 8 , 60 , ".KALOVA:" , 1
- Lcdat 8 , 36 , Akt_cista ; "%";
- Lcdat 8 , 105 , Akt_kalova ; "%";
- Setfont 100 : Lcdat 2 , 1 , ; Prevodnik(7) ;
- Setfont 100 : Lcdat 5 , 1 , ; Prevodnik(8) ;
- Setfont Font8x8 : Lcdat 2 , 60 , "MIN?" : Lcdat 3 , 60 , "MAX?" : Lcdat 5 , 60 , "MIN?" : Lcdat 6 , 60 , "MAX?" : Lcdat 7 , 60 , "EXIT?"
- If Set_pos = 2 Then
- Lcdat 2 , 90 , "<< OK?"
- Elseif Set_pos = 3 Then
- Lcdat 3 , 90 , "<< OK?"
- Elseif Set_pos = 5 Then
- Lcdat 5 , 90 , "<< OK?"
- Elseif Set_pos = 6 Then
- Lcdat 6 , 90 , "<< OK?"
- Elseif Set_pos = 7 Then
- Lcdat 7 , 90 , "<< OK?"
- Else
- Lcdat 2 , 90 , " "
- Lcdat 3 , 90 , " "
- Lcdat 5 , 90 , " "
- Lcdat 6 , 90 , " "
- Lcdat 7 , 90 , " "
- End If
- Elseif Menu_pos = 50 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , " CIDLO BLOKACE " , 1
- If Blokace_cista = 0 Then
- Lcdat 3 , 1 , "1: Cista Voda "
- Elseif Blokace_cista = 1 Then
- Lcdat 3 , 1 , "1: Cista Voda " , 1
- End If
- If Blokace_kalova = 0 Then
- Lcdat 4 , 1 , "2: Kalova Voda"
- Elseif Blokace_kalova = 1 Then
- Lcdat 4 , 1 , "2: Kalova Voda" , 1
- End If
- If Blokace_bimetal = 0 Then
- Lcdat 5 , 1 , "3: Vyveva Bim. "
- Elseif Blokace_bimetal = 1 Then
- Lcdat 5 , 1 , "3: Vyveva Bim. " , 1
- End If
- Lcdat 7 , 1 , "EXIT"
- If Set_pos = 3 Then
- Lcdat 3 , 90 , "<< OK?"
- Elseif Set_pos = 4 Then
- Lcdat 4 , 90 , "<< OK?"
- Elseif Set_pos = 5 Then
- Lcdat 5 , 90 , "<< OK?"
- Elseif Set_pos = 7 Then
- Lcdat 7 , 90 , "<< OK?"
- Else
- Lcdat 3 , 90 , " "
- Lcdat 4 , 90 , " "
- Lcdat 5 , 90 , " "
- End If
- End If
- '#################### PRIME OVLADANI VYSTUPU V TESTOVACIM REZIMU #############################
- '' POKUD JE TESTOVACI REZIM, VYSTUPY NEOVLADA PROGRAM, JEN TLACITKA
- '(
- If Menu_pos => 20 And Menu_pos < 29 Then
- Testovaci_rezim = 1
- Else
- Testovaci_rezim = 0
- End If
- ') ')
- If Menu_pos = 20 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VENTIL VYVEVA"
- Lcdat 6 , 1 , "VYVEVA SANI"
- Setfont My12d
- Lcdat 2 , 1 , " CH:OUT1"
- Lcdat 7 , 1 , " H:OUT2"
- Elseif Menu_pos = 21 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VYSTLAK CERPADLO."
- Lcdat 6 , 1 , "VYVEVA ODVETRANI."
- Setfont My12d
- Lcdat 2 , 1 , " E:OUT3"
- Lcdat 7 , 1 , " F:OUT4"
- Elseif Menu_pos = 22 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VENTIL KALOVA VYSTUP"
- Lcdat 6 , 1 , "VENTIL ZA CERP. KALY"
- Setfont My12d
- Lcdat 2 , 1 , " CH:OUT5"
- Lcdat 7 , 1 , " H:OUT6"
- Elseif Menu_pos = 23 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VE. CISTA ZA CYKLON."
- Lcdat 6 , 1 , "VE. KALY ZA CYKLONE."
- Setfont My12d
- Lcdat 2 , 1 , " E:OUT7"
- Lcdat 7 , 1 , " F:OUT8"
- Elseif Menu_pos = 24 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "REGULACNI HRIB TLAK"
- Lcdat 6 , 1 , "VENTIL DN13"
- Setfont My12d
- Lcdat 2 , 1 , " OUT9"
- Lcdat 7 , 1 , " OUT10"
- Elseif Menu_pos = 25 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VENTIL DN25"
- Lcdat 6 , 1 , "VE.CISTENI HR.FILTR"
- Setfont My12d
- Lcdat 2 , 1 , " OUT11"
- Lcdat 7 , 1 , " OUT12"
- Elseif Menu_pos = 26 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VE.NAPOUSTENI CISTA"
- Lcdat 6 , 1 , "VE.NAPOUSTENI KALO."
- Setfont My12d
- Lcdat 2 , 1 , " OUT13"
- Lcdat 7 , 1 , " OUT14"
- Elseif Menu_pos = 27 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "OVLADANI F"
- Lcdat 6 , 1 , "SOUPE DOLNI"
- Setfont My12d
- Lcdat 2 , 1 , " OUT15"
- Lcdat 7 , 1 , " OUT16"
- Elseif Menu_pos = 28 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "SOUPE HORNI"
- Lcdat 6 , 1 , "AUTO STOP"
- Setfont My12d
- Lcdat 2 , 1 , " OUT17"
- Lcdat 7 , 1 , " OUT18"
- Elseif Menu_pos = 29 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "AUTO OTACKY +"
- Lcdat 6 , 1 , "AUTO OTACKY -"
- Setfont My12d
- Lcdat 2 , 1 , " OUT19"
- Lcdat 7 , 1 , " OUT20"
- Elseif Menu_pos = 30 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont My12d
- Lcdat 1 , 50 , "EXIT? >"
- ''...
- End If
- Elseif Menu_bit = 0 Then
- If Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- If Strana = 1 Then
- Strana1
- Elseif Strana = 2 Then
- Strana2
- Elseif Strana = 3 Then
- Strana3
- Elseif Strana = 4 Then
- Strana4
- Elseif Strana = 5 Then
- Strana5
- Elseif Strana = 6 Then
- Strana6
- Elseif Strana = 7 Then
- Strana7
- End If
- End If
- End If
- '' PO OPUSTENI NASTAVENI VYSTUPU SE ZDE ULOZI DATA
- If Uloz_data = 1 Then
- Uloz_data = 0 :
- Setfont Font8x8 : Lcdat 8 , 1 , "SAVE................ " , 1
- Disable Interrupts
- For Index = 1 To 16
- Outb_ee(index) = Outb(index) : Oute_ee(index) = Oute(index)
- Ramp_on_ee(index) = Ramp_on(index) : Ramp_off_ee(index) = Ramp_off(index)
- Next Index
- Enable Interrupts
- Waitms 150 : Cls_ : Set Refresh_bit
- End If
- If Ad_bit = 1 Then
- Ad_bit = 0 : Read_inputs
- End If
- '' NASTAVENI VYSTUPU V NORMALNIM REZIMU, POKUD JSME V TESTOVACIM, OVLADAJI SE VYSTUPY TLACITKY !!!
- If Refresh_out = 1 Then
- Refresh_out = 0
- If Testovaci_rezim = 0 Then Send_outputs
- Send_pwm
- End If
- If Bit_time = 1 Then
- Bit_time = 0 : Obsluha_tlacitek
- End If
- Loop
- Sub Reset_vystupu
- 'pomocne funkce
- Reset Hadice_nastavena
- 'ciste vystupy
- Reset Vyveva_pwm
- Reset Vyveva_sani
- Reset Vystlak_cerpadlo 'vystlak ecerpadlo spojka'
- Reset Vyveva_odvetrani
- Reset Ventil_kalova_1
- Reset Ventil_zac_kaly_2
- Reset Ventil_cista_2
- Reset Ventil_horni_kaly_3
- Reset Ventil_reg_hrib
- Reset Ventil_dn13
- Reset Ventil_dn25
- Reset Cis_hruby_filtr
- Reset Klapka_nap_cista
- Reset Klapka_nap_kalova
- Reset Klapka_ovldaci_pro_f
- Reset Soupe_dolni
- Reset Soupe_horni
- Reset Auto_stop
- 'Reset Otacky_plus
- 'Reset Otacky_minus
- 'vystupy slave
- Reset Cyklon
- Reset Recykl_cerp_hrub_filtr
- Reset Recyklace_zobraz
- Reset Vystlak_cerp_zobraz
- Reset Vyveva_zobraz
- End Sub
- Sub Vyh_vystupu_vyveva
- '************************SPUSTENI VYVEVY*************************************
- If Vak_cerp_sani = 1 And Vak_cerp_vytlak = 0 Then 'And Akt_kalova < 90 Then
- Vyveva_sani = 1
- Vyveva_odvetrani = 0
- Vyveva_ok = 1
- Elseif Vak_cerp_vytlak = 1 And Vak_cerp_sani = 0 Then 'And Akt_kalova > 20 Then
- Vyveva_sani = 0
- Vyveva_odvetrani = 0
- Vyveva_ok = 1
- Elseif Vak_cerp_sani = 0 And Vak_cerp_vytlak = 0 Then
- Vyveva_odvetrani = 1
- Vyveva_sani = 1
- Vyveva_ok = 1
- Else
- Vyveva_ok = 0
- End If
- If Blokace_bimetal = 1 Or Teplota_vyveva = 1 Then
- Vyveva_prehrati = 0
- Elseif Blokace_bimetal = 0 Or Teplota_vyveva = 0 Then
- Vyveva_prehrati = 1
- End If
- If Vyveva_ok = 1 And Vyveva_prehrati = 0 Then
- If Zavodneni_radio = 1 Then
- Vyveva_pwm = Vak_cerp_on_off
- Vyveva_prepocet = Vyveva_prepocet_radio
- If Vak_cerp_on_off = 1 Then
- Set Vyveva_zobraz
- End If
- End If
- If Zavodneni_radio = 0 Then
- Vyveva_pwm = Vak_cerp_on_off
- If Vak_cerp_on_off = 1 Then
- Set Vyveva_zobraz
- End If
- End If
- If Teplota_oleje > 0 And Teplota_oleje < 21 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1400
- Temp_max = 1500
- Elseif Teplota_oleje > 20 And Teplota_oleje < 26 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1420
- Temp_max = 1530
- Elseif Teplota_oleje > 25 And Teplota_oleje < 31 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1440
- Temp_max = 1560
- Elseif Teplota_oleje > 30 And Teplota_oleje < 36 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1460
- Temp_max = 1590
- Elseif Teplota_oleje > 35 And Teplota_oleje < 41 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1480
- Temp_max = 1620
- Elseif Teplota_oleje > 40 And Teplota_oleje < 46 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1500
- Temp_max = 1650
- Elseif Teplota_oleje > 45 And Teplota_oleje < 51 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1530
- Temp_max = 1680
- Elseif Teplota_oleje > 50 And Teplota_oleje < 56 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1550
- Temp_max = 1710
- Elseif Teplota_oleje > 55 And Teplota_oleje < 61 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1600
- Temp_max = 1740
- Elseif Teplota_oleje > 60 And Teplota_oleje < 66 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1640
- Temp_max = 1770
- Elseif Teplota_oleje > 65 And Teplota_oleje < 71 And Zmena_tepl = 0 Then
- Zmena_tepl = 1
- Temp_min = 1680
- Temp_max = 1800
- End If
- If Zmena_tepl = 1 And Teplota_time = 0 Then
- Zmena_tepl = 0
- Set Teplota_time
- Outb(1) = Temp_min
- Oute(1) = Temp_max
- End If
- If Vyveva_pwm = 1 Then
- 'If Automat = 1 And Tlak_vody_hrib > 15 Then
- Otacky_pozadovane_vyveva = Vykon_vyveva * 4
- Otacky_pozadovane_vyveva = Otacky_pozadovane_vyveva + 1000
- Rozdil_otacek = Otacky_pozadovane_vyveva - Otacky_vyveva
- 'If Rozdil_otacek < 100 Then
- ' Otacky_vyveva_const = 300
- ' Cekani_vyveva_const = 150
- 'Elseif Rozdil_otacek > 100 Then
- ' Otacky_vyveva_const = 600
- ' Cekani_vyveva_const = 100
- 'End If
- If Cekej = 0 Then
- If Rozdil_otacek = 1000 Then
- Vyveva_automat = 2000
- End If
- ' If Rozdil_otacek < 300 Then Set Najeto
- 'If Najeto = 1 Then
- If Rozdil_otacek > 100 And Rozdil_otacek < 201 Then
- Vyveva_automat = Vyveva_automat + 10
- If Vyveva_automat > 4095 Then Vyveva_automat = 4095
- Cekej = 1
- Elseif Rozdil_otacek > 200 Then
- Vyveva_automat = Vyveva_automat + 20
- If Vyveva_automat > 4095 Then Vyveva_automat = 4095
- Cekej = 1
- Elseif Rozdil_otacek < -100 And Rozdil_otacek > -201 Then
- Vyveva_automat = Vyveva_automat - 10
- If Vyveva_automat < 20 Then Vyveva_automat = 0
- Cekej = 1
- Elseif Rozdil_otacek < -200 Then
- Vyveva_automat = Vyveva_automat - 20
- If Vyveva_automat < 20 Then Vyveva_automat = 0
- Cekej = 1
- End If
- 'End If
- End If
- 'Vyveva_automat_posli = Vyveva_automat_posli + Vyveva_automat
- Elseif Vyveva_pwm = 0 Then
- Otacky_pozadovane_vyveva = 0
- Vyveva_automat = 0
- Rozdil_otacek = 0
- Cekej = 0
- Najeto = 0
- End If
- End If
- '************************OVLADANI SOUPAT*************************************
- Soupe_dolni = Vak_cerp_soupe_spodni
- Soupe_horni = Vak_cerp_soupe_horni
- If Vystlak_cerp_kohout_dn13 = 1 And Vystlak_cerp_kohout_dn25_32 = 0 Then
- Ventil_dn13 = 1
- Ventil_dn25 = 0
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 1 Then
- Ventil_dn13 = 0
- Ventil_dn25 = 1
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 0 Then
- Ventil_dn13 = 0
- Ventil_dn25 = 0
- End If
- End Sub
- Sub Vyh_vystupu_vystlak_cerpadlo
- '**************SPUSTENI VYSOKOTLAKEHO CERPADLA (CISTENI HADICI)*****************
- If Vystlak_cerp_tlak_on_off = 1 Then Ventil_reg_hrib = 1
- If Vystlak_cerp_kohout_dn13 = 1 And Vystlak_cerp_kohout_dn25_32 = 0 And Akt_cista > 20 And Recyklace_cist_hrub_filtr = 0 Then
- Hadice_nastavena = 1
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 1 And Akt_cista > 20 And Recyklace_cist_hrub_filtr = 0 Then
- Hadice_nastavena = 1
- 'Elseif Vystlak_cerp_hadice_dn13 = 0 And Vystlak_cerp_hadice_dn25_32 = 1 And Akt_cista > 20 And Recyklace_cist_hrub_filtr = 0 Then
- ' Hadice_nastavena = 1
- 'Elseif Vystlak_cerp_hadice_dn13 = 1 And Vystlak_cerp_hadice_dn25_32 = 0 And Akt_cista > 20 And Recyklace_cist_hrub_filtr = 0 Then
- ' Hadice_nastavena = 1
- End If
- If Akt_cista < 21 And Hys4 = 0 Then
- Vypni_cerp = 1
- Hys4 = 1
- End If
- If Hys4 = 1 And Akt_cista > 25 Then
- Vypni_cerp = 0
- Hys4 = 0
- End If
- If Vystlak_cerp_on_off = 1 And Hadice_nastavena = 1 And Vypni_cerp = 0 Then
- Vystlak_cerpadlo = 1
- Klapka_nap_cista = 1
- Set Vystlak_cerp_zobraz
- End If
- '
- If Vystlak_cerp_tlak_on_off = 1 And Klapka_nap_cista = 1 And Vypni_cerp = 0 Then
- Ventil_reg_hrib = 1
- '***************automaticky_rezim_tlak******************************************
- If Zavodneni_radio = 1 Then
- If Tlak_pozadovany_automat_radio > 1 Then
- Tlak_pozadovany_automat = Tlak_pozadovany_automat_radio
- Automat = 1
- Elseif Tlak_pozadovany_automat_radio < 1 Then
- Tlak_pozadovany_automat = 0
- End If
- End If
- If Automat = 1 And Tlak_vody_hrib > 15 Then
- Rozdil_tlaku = Tlak_pozadovany_automat - Tlak_vody_hrib
- If Rozdil_tlaku < 10 Then
- Otacky_const = 300
- Cekani_const = 150
- Otacky_const_minus = 300
- Elseif Rozdil_tlaku > 10 Then
- Otacky_const = 600
- Cekani_const = 100
- Otacky_const_minus = 1200
- End If
- If Rozdil_tlaku > 5 And Men_otacky = 0 Then
- Set Otacky_pridej
- Elseif Rozdil_tlaku < -5 And Men_otacky = 0 Then
- Set Otacky_uber
- Else
- Reset Otacky_pridej
- Reset Otacky_uber
- End If
- If Otacky_pridej = 1 And Zmena_otacek_time < Otacky_const Then ' pridej otacky
- Otacky_plus = 1
- End If
- If Otacky_uber = 1 And Zmena_otacek_time < Otacky_const_minus Then
- Otacky_minus = 1
- End If
- If Zmena_otacek_time > Otacky_const Then
- Otacky_plus = 0
- Otacky_minus = 0
- Reset Otacky_uber
- Reset Otacky_pridej
- Zmena_otacek_time = 0
- Cteni_otacek_time = 1
- Men_otacky = 1
- End If
- If Cteni_otacek_time > Cekani_const Then
- Men_otacky = 0
- Cteni_otacek_time = 0
- End If
- Elseif Automat = 0 Then
- Reset Otacky_uber
- Reset Otacky_pridej
- End If
- End If
- End Sub
- 'Zavodneni_90s
- Sub Vyh_vystupu_recyklace
- If Recyklace_upr_vody = 1 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 And Zavodneni_90s = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 1 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 And Zavodneni_90s = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 1 And Recyklace_odcerp_kal = 0 And Zavodneni_90s = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 1 And Zavodneni_90s = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 And Zavodneni_90s = 1 Then
- Recyklace_funkce = 0
- Else
- Recyklace_funkce = 1
- End If
- If Zavodneni_90s = 1 And Recyklace_funkce = 0 And Akt_cista < 95 Then
- Set Ventil_zac_kaly_2 ' kalovy ventil za cerpadlem cerpadlo--->VENTIL--->cyklon
- Set Ventil_cista_2 ' horni klapka pro odvod ciste vody z cyklonu do ciste nadrze
- Set Ventil_horni_kaly_3 ' horni klapka pro odvod kalove vody z cyklonu do kalove nadrze
- Set Cyklon ' spusteni cyklonu
- Set Klapka_nap_cista ' otevreni napousteci klapky pro cistou nadrz ("odvzdusneni")
- End If
- '*****************SPUSTENI RECYKLACE ******************************************
- ''''''''''''''''''''''''''''''''''''''''''''''''''''And Vypni_recykl = 0
- If Recyklace_upr_vody = 1 And Recyklace_funkce = 0 And Akt_cista < 72 Then
- 'If Recyklace_1sec = 1 Then
- Set Ventil_kalova_1
- 'Elseif Recyklace_1sec = 2 Then
- Set Ventil_zac_kaly_2
- 'Elseif Recyklace_1sec = 3 Then
- Set Ventil_cista_2
- 'Elseif Recyklace_1sec = 4 Then
- Set Ventil_horni_kaly_3
- 'Elseif Recyklace_1sec = 5 Then
- If Set_cerp = 1 Then
- Set Recykl_cerp_hrub_filtr
- 'Elseif Recyklace_1sec = 6 Then
- End If
- If Set_cyklon = 1 Then
- Set Cyklon
- Recyklace_time_znovuspust = 1000
- End If
- 'Set Klapka_ovldaci_pro_f
- 'End If
- Set Recyklace_zobraz
- Set Klapka_nap_cista
- End If
- If Akt_cista > 70 And Hys2 = 0 Then
- Hys1 = 1
- Set Start_hystereze
- End If
- If Hys1 = 1 And Akt_cista > 90 Then
- Hys2 = 1
- Hys1 = 0
- Reset Start_hystereze
- End If
- If Hys2 = 1 And Akt_cista < 75 Then
- Hys2 = 0
- Recyklace_time_znovuspust = 0
- Reset Set_cerp
- Reset Set_cyklon
- End If
- '(
- If Akt_cista < 21 And Hys3 = 0 Then
- Vypni = 1
- Hys3 = 1
- End If
- If Hys3 = 1 And Akt_cista > 25 Then
- Vypni = 0
- Hys3 = 0
- End If
- ')
- '(
- If Akt_cista < 21 And Hys4 = 0 Then
- Hys3 = 1
- Set Hystereze_spodni
- End If
- If Hys3 = 1 And Akt_cista > 25 Then
- Hys3 = 0
- Reset Hystereze_spodni
- Hys4 = 1
- End If
- If Akt_cista > 30 Then
- Hys4 = 0
- End If
- ')
- ''''''''''''''''''''''''''''''''''''''''''''''''''''And Akt_kalova > 20''''''''''''
- If Recyklace_upr_vody = 1 And Recyklace_funkce = 0 And Start_hystereze = 1 Then
- 'If Recyklace_1sec = 1 Then
- Set Ventil_kalova_1
- 'Elseif Recyklace_1sec = 2 Then
- Set Ventil_zac_kaly_2
- 'Elseif Recyklace_1sec = 3 Then
- Set Ventil_cista_2
- 'Elseif Recyklace_1sec = 4 Then
- Set Ventil_horni_kaly_3
- 'Elseif Recyklace_1sec = 5 Then
- If Set_cerp = 1 Then
- Set Recykl_cerp_hrub_filtr
- 'Elseif Recyklace_1sec = 6 Then
- End If
- If Set_cyklon = 1 Then
- Set Cyklon
- Recyklace_time_znovuspust = 1000
- End If
- 'End If
- 'Set Klapka_ovldaci_pro_f
- Set Klapka_nap_cista
- Set Recyklace_zobraz
- End If
- '**************SPUSTENI CISTENI_CYKLONU NA 10s*******************************
- If Recyklace_cist_cyklon = 0 And Cisteni_cyklonu_time = 20 Then
- Cisteni_cyklonu_time = 0
- End If
- If Recyklace_cist_cyklon = 1 And Recyklace_funkce = 0 And Cisteni_cyklonu_time < 10 Then
- Set Cyklon
- Set Ventil_horni_kaly_3
- Set Klapka_ovldaci_pro_f
- Elseif Recyklace_cist_cyklon = 0 Then
- Cisteni_cyklonu_time = 0
- Elseif Cisteni_cyklonu_time > 10 Then
- Reset_vystupu
- End If
- '****************CISTENI HRUBEHO FILTRU**************************************
- If Akt_cista < 21 And Hys3 = 0 Then
- Vypni = 1
- Hys3 = 1
- End If
- If Hys3 = 1 And Akt_cista > 25 Then
- Vypni = 0
- Hys3 = 0
- End If
- If Recyklace_cist_hrub_filtr = 1 And Recyklace_funkce = 0 And Akt_cista > 20 And Akt_kalova < 90 And Vypni = 0 Then
- If Otacky_motoru < 85 Then
- Reset Vystlak_cerp_tlak_on_off
- If Cist_hrub_filtru_time > 500 Then
- Cist_hrub_filtru_time = 600
- Vystlak_cerpadlo = 1
- Ventil_reg_hrib = 1
- Set Vystlak_cerp_zobraz
- Recykl_cerp_hrub_filtr = 1
- End If
- Set Klapka_nap_cista
- Ventil_horni_kaly_3 = 1
- Klapka_ovldaci_pro_f = 1
- Cis_hruby_filtr = 1
- Reset Ventil_cista_2
- 'Set Ventil_zac_kaly_2
- 'Set Ventil_kalova_1
- End If
- If Otacky_motoru > 80 Then
- Otacky_minus = 1
- End If
- Elseif Recyklace_cist_hrub_filtr = 0 Or Vypni = 1 Then
- Cist_hrub_filtru_time = 0
- End If
- '*****************ODCERPANI KALOVE VODY**************************************
- If Recyklace_odcerp_kal = 1 And Recyklace_funkce = 0 And Akt_kalova > 5 Then
- Set Recykl_cerp_hrub_filtr
- Set Ventil_kalova_1
- End If
- End Sub
- Sub Vyh_vystupu_doplnkove_funkce
- End Sub
- Sub Init_pca9685
- '(
- / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
- /* Init code for the PCA9685 */
- /* Input:[address of the pc9685 to init] */
- /* Output:[void] */
- /********************************************/
- ')
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &B00000000 '' Mode 1 address
- I2cwbyte &B00110001 '' Setting mode to sleep so we can change teh default PWM frequency
- I2cstop '' Stop
- Waitms 1 '' Required 50 us delay
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &HFE '' PWM frequency PRE_SCALE address
- I2cwbyte 50 '' osc_clk/(4096*update_rate) '' 25000000/(4096*1500)= 4.069 ~4
- I2cstop '' Stop
- Waitms 1 '' delay at least 500 us
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &B00000000 '' Mode 1 register address
- I2cwbyte &HA1 '' Set to our prefered mode[ Reset, INT_CLK, Auto-Increment, Normal Mode]
- I2cstop '' Stop
- Waitms 1 '' delay at least 500 us
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave Address
- I2cwbyte &B00000001 '' Mode2 register address
- I2cwbyte &B00000100 '' Set to our prefered mode[Output logic state not inverted, Outputs change on STOP,
- I2cstop '' totem pole structure, When OE = 1 (output drivers not enabled), LEDn = 0]
- Waitms 1
- '' all led off
- I2cstart
- I2cwbyte &B10000000
- I2cwbyte &HFC '' Allled Off Regiter
- I2cwbyte &B00000000 ''data
- I2cwbyte &B00010000 '' ; / / Data
- I2cstop
- End Sub
- Sub Obsluha_tlacitek
- If Tl_ok = 0 And Tim_tl_ok < 1000 Then Incr Tim_tl_ok
- If Tl_ok = 1 Then Tim_tl_ok = 0
- If Tl_up = 0 And Tim_tl_up < 1000 Then Incr Tim_tl_up
- If Tl_up = 1 Then Tim_tl_up = 0
- If Tl_down = 0 And Tim_tl_down < 1000 Then Incr Tim_tl_down
- If Tl_down = 1 Then Tim_tl_down = 0
- If Menu_bit = 1 And Menu_pos > 0 And Menu_pos < 17 Then
- '' NASTAVOVANI PARAMETRU VYSTUPU
- Tlacitka_menu1
- 'NASLEDUJE UZ NOVA FORMA REAKCE TLACITEK PRO ZMENU PWM, NEBO RAMP...
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- If Set_pos = 0 Then
- If Tim_tl_up = 20 Then
- Incr Menu_pos
- If Menu_pos = 18 Then Menu_pos = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 Then
- Decr Menu_pos
- If Menu_pos = 0 Then Menu_pos = 17
- Set Refresh_bit
- End If
- '(
- ''cislo 375 = 1 sekunda
- Const Reakce_tlacitka = 20 ''prodleva po jake se vyhodnoti, ze tlacitko je stlaceno - nabezna hrana
- Const Opakovana_reakce_tlacitka = 200 '' doba podrzeni tlacitka, od ktere se hodnota " rozbehne "
- Const Rychlost_pridavku_pwm = 20 ''cislo jak rychly bude pridavek
- Const Rychlost_pridavku_ram = 20 ''cislo jak rychly bude pridavek
- Const Pridavek_pwm = 4 '' o kolik se zmeni hodnota pri podrzeni tlacitka
- Const Pridavek_ram = 4
- ')
- Elseif Set_pos = 1 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Outb(menu_pos) < 4096 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Outb(menu_pos) ''po prvnim stisknuti
- If Outb(menu_pos) < 4096 And Tim_tl_up = Opakovana_reakce_tlacitka Then Outb(menu_pos) = Outb(menu_pos) + Pridavek_pwm ''po podrzeni tlacitka
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm ''pokud je tlacitko drzeno, vraci se hodnota trochu nazpet...
- ''minimalni rozmezi (interva) max - minimum je 260. Pokud je tento interval mensi, automaticky se hranice koriguji
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 '' korekce nastaveni dokud neni hranice minimalne 261, protoze pridavek muze rozdil libovolne vychylit
- Decr Outb(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos) ''kontrolni odecet
- Wend
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Outb(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Outb(menu_pos)
- If Outb(menu_pos) > 0 And Tim_tl_down = Opakovana_reakce_tlacitka Then Outb(menu_pos) = Outb(menu_pos) - Pridavek_pwm
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 Or Outb(menu_pos) < 0
- Incr Outb(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- End If
- Elseif Set_pos = 2 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Oute(menu_pos) < 4096 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Oute(menu_pos)
- If Oute(menu_pos) < 4096 And Tim_tl_up = Opakovana_reakce_tlacitka Then Oute(menu_pos) = Oute(menu_pos) + Pridavek_pwm
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261
- Decr Oute(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Oute(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Oute(menu_pos)
- If Oute(menu_pos) > 0 And Tim_tl_down = Opakovana_reakce_tlacitka Then Oute(menu_pos) = Oute(menu_pos) - Pridavek_pwm
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 Or Oute(menu_pos) < 0
- Incr Oute(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- End If
- Elseif Set_pos = 3 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Ramp_on(menu_pos) < 1000 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Ramp_on(menu_pos)
- If Ramp_on(menu_pos) < 1000 And Tim_tl_up = Opakovana_reakce_tlacitka Then Ramp_on(menu_pos) = Ramp_on(menu_pos) + Pridavek_ram
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Ramp_on(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Ramp_on(menu_pos)
- If Ramp_on(menu_pos) > 5 And Tim_tl_down = Opakovana_reakce_tlacitka Then Ramp_on(menu_pos) = Ramp_on(menu_pos) - Pridavek_ram
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- End If
- Elseif Set_pos = 4 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Ramp_off(menu_pos) < 1000 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Ramp_off(menu_pos)
- If Ramp_off(menu_pos) < 1000 And Tim_tl_up = Opakovana_reakce_tlacitka Then Ramp_off(menu_pos) = Ramp_off(menu_pos) + Pridavek_ram
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Ramp_off(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Ramp_off(menu_pos)
- If Ramp_off(menu_pos) > 5 And Tim_tl_down = Opakovana_reakce_tlacitka Then Ramp_off(menu_pos) = Ramp_off(menu_pos) - Pridavek_ram
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- End If
- End If
- If Tim_tl_ok = Reakce_tlacitka Then
- Incr Set_pos : Set Refresh_bit
- End If
- If Set_pos > 4 Then Set_pos = 0
- '(
- If Tim_tl_ok = 20 Then
- Incr Set_pos
- If Set_pos > 4 Then Set_pos = 0
- End If
- ')
- Elseif Menu_bit = 1 And Menu_pos = 17 Then
- Tlacitka_menu1
- ''VYSKAKOVACI OBRAZOVKA
- If Tim_tl_ok = 20 Then
- Reset Menu_bit : Set Refresh_bit
- ''ulozeni zmenenych dat
- Set Uloz_data
- End If
- Elseif Menu_bit = 1 And Menu_pos >= 20 And Menu_pos < 32 Then
- '' SEVISNI A TESTOVACI FUNKCE
- '' TLACITKO OK - ROTOVANI PRES VYSTUPY
- If Tim_tl_ok = 20 Then
- Tim_tl_ok = 21 '' JASNE, PROTOZE SE TU PROCHAZELO DVAKRAT I VICKRAT :O)
- Incr Menu_pos
- If Menu_pos = 31 Then Menu_pos = 20
- Set Refresh_bit
- End If
- If Menu_pos = 20 Then
- If Tim_tl_up > 20 Then Pwm_driver(1) = 4092 '' OUT5 / VENTIL KALOVA VYSTUP
- If Tim_tl_up < 20 Then Pwm_driver(1) = 0 '' OUT5 / VENTIL KALOVA VYSTUP
- If Tim_tl_down > 20 Then Pwm_driver(2) = 4092 '' OUT6 / VENTIL ZA CERPADLEM KALY
- If Tim_tl_down < 20 Then Pwm_driver(2) = 0 '' OUT6 / VENTIL ZA CERPADLEM KALY
- Elseif Menu_pos = 21 Then
- If Tim_tl_up > 20 Then Pwm_driver(3) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(3) = 0
- If Tim_tl_down > 20 Then Pwm_driver(4) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(4) = 0
- Elseif Menu_pos = 22 Then
- If Tim_tl_up > 20 Then Pwm_driver(5) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(5) = 0
- If Tim_tl_down > 20 Then Pwm_driver(6) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(6) = 0
- Elseif Menu_pos = 23 Then
- If Tim_tl_up > 20 Then Pwm_driver(7) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(7) = 0
- If Tim_tl_down > 20 Then Pwm_driver(8) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(8) = 0
- Elseif Menu_pos = 24 Then
- If Tim_tl_up > 20 Then Pwm_driver(9) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(9) = 0
- If Tim_tl_down > 20 Then Pwm_driver(10) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(10) = 0
- Elseif Menu_pos = 25 Then
- If Tim_tl_up > 20 Then Pwm_driver(11) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(11) = 0
- If Tim_tl_down > 20 Then Pwm_driver(12) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(12) = 0
- Elseif Menu_pos = 26 Then
- If Tim_tl_up > 20 Then Pwm_driver(13) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(13) = 0
- If Tim_tl_down > 20 Then Pwm_driver(14) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(14) = 0
- Elseif Menu_pos = 27 Then
- If Tim_tl_up > 20 Then Pwm_driver(15) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(15) = 0
- If Tim_tl_down > 20 Then Pwm_driver(16) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(16) = 0
- Elseif Menu_pos = 28 Then
- If Tim_tl_up > 20 Then Out17 = 1
- If Tim_tl_up < 20 Then Out17 = 0
- If Tim_tl_down > 20 Then Out18 = 1
- If Tim_tl_down < 20 Then Out18 = 0
- Elseif Menu_pos = 29 Then
- If Tim_tl_up > 20 Then Out19 = 1
- If Tim_tl_up < 20 Then Out19 = 0
- If Tim_tl_down > 20 Then Out20 = 1
- If Tim_tl_down < 20 Then Out20 = 0
- Elseif Menu_pos = 30 Then
- If Tim_tl_up = 20 Then
- Tim_tl_up = 21
- Set Refresh_bit : Testovaci_rezim = 0 : Reset Menu_bit
- End If
- End If
- Elseif Menu_bit = 1 And Menu_pos = 40 Then
- '' NASTAVOVANI CIDEL HLADIN
- '' TLACITKO "-" - ROTOVANI PRES RADKY
- If Tim_tl_down = 20 Then
- Tim_tl_down = 21 '' JASNE, PROTOZE SE TU PROCHAZELO DVAKRAT I VICKRAT :O)
- Incr Set_pos
- If Set_pos = 1 Then Set_pos = 2
- If Set_pos = 4 Then Set_pos = 5
- If Set_pos = 8 Then Set_pos = 2
- Set Refresh_bit
- End If
- If Set_pos = 2 Then
- If Tim_tl_ok = 20 Then
- Cista_min = Hladina_vody
- Disable Interrupts
- Minimum_ee = Cista_min
- Enable Interrupts
- Waitms 100
- Set_pos = 3
- End If
- Elseif Set_pos = 3 Then
- If Tim_tl_ok = 20 Then
- Cista_max = Hladina_vody
- Disable Interrupts
- Maximum_ee = Cista_max
- Enable Interrupts
- Waitms 100
- Set_pos = 5
- End If
- Elseif Set_pos = 5 Then
- If Tim_tl_ok = 20 Then
- Kalova_min = Hladina_kalove_vody
- Disable Interrupts
- Minimum_kalova_ee = Kalova_min
- Enable Interrupts
- Waitms 100
- Set_pos = 6
- End If
- Elseif Set_pos = 6 Then
- If Tim_tl_ok = 20 Then
- Kalova_max = Hladina_kalove_vody
- Disable Interrupts
- Maximum_kalova_ee = Kalova_max
- Enable Interrupts
- Waitms 100
- Set_pos = 7
- End If
- Elseif Set_pos = 7 Then
- If Tim_tl_ok = 20 Then
- Set Refresh_bit : Testovaci_rezim = 0 : Reset Menu_bit
- End If
- End If
- Elseif Menu_bit = 1 And Menu_pos = 50 Then
- '' NASTAVOVANI CIDEL HLADIN
- '' TLACITKO "-" - ROTOVANI PRES RADKY
- If Tim_tl_down = 20 Then
- Tim_tl_down = 21 '' JASNE, PROTOZE SE TU PROCHAZELO DVAKRAT I VICKRAT :O)
- Incr Set_pos
- If Set_pos = 1 Then Set_pos = 3
- If Set_pos = 6 Then Set_pos = 7
- If Set_pos = 8 Then Set_pos = 3
- Set Refresh_bit
- End If
- If Set_pos = 3 Then
- If Tim_tl_ok = 20 Then
- Toggle Blokace_cista
- End If
- Elseif Set_pos = 4 Then
- If Tim_tl_ok = 20 Then
- Toggle Blokace_kalova
- End If
- Elseif Set_pos = 5 Then
- If Tim_tl_ok = 20 Then
- Toggle Blokace_bimetal
- End If
- Elseif Set_pos = 7 Then
- If Tim_tl_ok = 20 Then
- Set Refresh_bit : Testovaci_rezim = 0 : Reset Menu_bit
- End If
- End If
- Elseif Menu_bit = 0 Then
- If Tim_tl_up = 20 Then
- Incr Strana
- If Strana > 7 Then Strana = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 Then
- Decr Strana
- If Strana = 0 Then Strana = 7
- Set Refresh_bit
- End If
- If Tim_tl_ok = 20 Then
- Tim_tl_ok = 21
- If Strana = 1 Then
- Elseif Strana = 2 Then
- Elseif Strana = 3 Then
- Elseif Strana = 4 Then
- Menu_pos = 1 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit
- Elseif Strana = 5 Then
- Menu_pos = 40 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit
- Elseif Strana = 6 Then
- Menu_pos = 20 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit : Set Testovaci_rezim
- '' PRECHOD DO TESTOVACIHO REZIMU MUSI VYPNOUT VYSTUPY
- For I = 1 To 17
- Pwm_driver(i) = 0
- Next I
- Elseif Strana = 7 Then
- Menu_pos = 50 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit
- End If
- End If
- End If
- End Sub
- Sub Read_inputs
- Ain_(1) = Getadc(0)
- Ain_(2) = Getadc(1)
- Ain_(3) = Getadc(2)
- Ain_(4) = Getadc(3)
- Ain_(5) = Getadc(4)
- Ain_(6) = Getadc(5)
- Ain_(7) = Getadc(6)
- Ain_(8) = Getadc(7)
- 'vzorky se pridaji postupne do pole promennych (max. 20 vzorku)
- Incr I2
- Pom_ain1(i2) = Ain_(1) : Pom_ain2(i2) = Ain_(2) : Pom_ain3(i2) = Ain_(3) : Pom_ain4(i2) = Ain_(4) : Pom_ain5(i2) = Ain_(5) : Pom_ain6(i2) = Ain_(6) : Pom_ain7(i2) = Ain_(7) : Pom_ain8(i2) = Ain_(8)
- 'jednotliva pole nabranych vzorku se sectou a vydeli poctem vzorku
- If Pocet_vzorku > 20 Then Pocet_vzorku = 20
- Pom_ain1(21) = 0 : Pom_ain2(21) = 0 : Pom_ain3(21) = 0 : Pom_ain4(21) = 0 : Pom_ain5(21) = 0 : Pom_ain6(21) = 0 : Pom_ain7(21) = 0 : Pom_ain8(21) = 0 :
- For I3 = 1 To Pocet_vzorku
- Pom_ain1(21) = Pom_ain1(21) + Pom_ain1(i3)
- Pom_ain2(21) = Pom_ain2(21) + Pom_ain2(i3)
- Pom_ain3(21) = Pom_ain3(21) + Pom_ain3(i3)
- Pom_ain4(21) = Pom_ain4(21) + Pom_ain4(i3)
- Pom_ain5(21) = Pom_ain5(21) + Pom_ain5(i3)
- Pom_ain6(21) = Pom_ain6(21) + Pom_ain6(i3)
- Pom_ain7(21) = Pom_ain7(21) + Pom_ain7(i3)
- Pom_ain8(21) = Pom_ain8(21) + Pom_ain8(i3)
- Next
- 'vypocet skutecne hodnoty zprumerovanim pole vzorku, vystup je cislo 0 - 1023
- If I2 = Pocet_vzorku Then
- I2 = 0
- '***tlak_oleje_vyveva S2***proudovy
- 'maximum 400baru, minimum 0
- 'maximum 818, minimum 164
- '654/400
- Pom_single = Pom_ain2(21) / Pocet_vzorku
- Prevodnik(2) = Pom_single
- Pom_single = Pom_single - 164
- Tlak_oleje_vyveva = Pom_single / 1.635
- If Tlak_oleje_vyveva > 10000 Then Tlak_oleje_vyveva = 0
- If Tlak_oleje_vyveva < 0 Then Tlak_oleje_vyveva = 0
- Pom_byte = Tlak_oleje_vyveva / 10
- Call Prepocet_bytu(pom_byte , 1)
- If Teplota_vyveva = 1 Then
- Call Prepocet_bytu(0 , 2)
- Elseif Teplota_vyveva = 0 Then
- Call Prepocet_bytu(1 , 2)
- End If
- '***teplota_vyveva_bimetal S3***napetovy
- '(
- Pom_single = Pom_ain3(21) / Pocet_vzorku
- Prevodnik(3) = Pom_single
- Teplota_vyveva = Pom_single
- If Teplota_vyveva > 10000 Then Teplota_vyveva = 0
- If Teplota_vyveva < 0 Then Teplota_vyveva = 0
- Pom_byte = Teplota_vyveva
- Call Prepocet_bytu(pom_byte , 2)
- ')
- '*** podtlak_vyveva S4***proudovy
- Pom_single = Pom_ain4(21) / Pocet_vzorku
- Prevodnik(4) = Pom_single
- Pom_single = Pom_single - 164
- Podtlak_vyveva = Pom_single / 32.7
- If Podtlak_vyveva > 10000 Then Podtlak_vyveva = 0
- If Podtlak_vyveva < 0 Then Podtlak_vyveva = 0
- Pom_byte = Podtlak_vyveva
- 'Prevodnik(1) = Pom_byte
- Call Prepocet_bytu(pom_byte , 4)
- '*** pretlak vyveva S5***proudovy
- '0 - 654 ==> 0 bar = 327
- Pom_single = Pom_ain5(21) / Pocet_vzorku
- Prevodnik(5) = Pom_single
- Pom_single = Pom_single - 164
- Pretlak_vyveva = Pom_single / 65.4
- Pom_byte = Pretlak_vyveva
- Call Prepocet_bytu(0 , 3)
- '*** tlak_vody_hrib S6***proudovy
- ' max 400bar
- Pom_single = Pom_ain6(21) / Pocet_vzorku
- Prevodnik(6) = Pom_single
- Pom_single = Pom_single - 164
- 'Tlak_vody_hrib = Pom_single / 1.92353
- Tlak_vody_hrib = Pom_single / 1.625
- If Tlak_vody_hrib > 10000 Then Tlak_vody_hrib = 0
- If Tlak_vody_hrib < 0 Then Tlak_vody_hrib = 0
- Pom_byte = Tlak_vody_hrib
- Call Prepocet_bytu(pom_byte , 5)
- ' hladina vody rutina:
- '
- '*** hladina_vody S7***proudovy
- 'dostavam hladinu v procentech
- Pom_single = Pom_ain7(21) / Pocet_vzorku
- Prevodnik(7) = Pom_single
- Pom_single = Pom_single - 164
- Hladina_vody = Pom_single '/ 6.54
- If Hladina_vody > 10000 Then Hladina_vody = 0
- If Hladina_vody < 0 Then Hladina_vody = 0
- '*** hladina_kalove_vody S8***proudovy
- Pom_single = Pom_ain8(21) / Pocet_vzorku
- Prevodnik(8) = Pom_single
- Pom_single = Pom_single - 164
- Hladina_kalove_vody = Pom_single '/ 6.54
- If Hladina_kalove_vody > 10000 Then Hladina_kalove_vody = 0
- If Hladina_kalove_vody < 0 Then Hladina_kalove_vody = 0
- '************prepocty********************'
- Vypocet_cista
- Vypocet_kalova
- End If
- End Sub
- Sub Vypocet_cista
- ' vypocet hladin vody + prepocet hladiny na procenta
- ' princip pro minimum vetsi nez maximum stejny, akorat se nakonci vysledna hodnota pocita odectenim od 100 %
- ' interval 100% se pocita jako rozdil maxima a minima, nasledne se spocita 1 dilek z intervalu 100% (cista_konst),
- ' kterym se nasledne deli aktualni hodnota hladiny vody. Od aktualni hladiny se jeste pred prepoctem na procenta odecte minimalni hodnota
- ' takto vypocitana aktualni hladina se pak, pokud je minimum vetsi nez maximum, odecita od "100%"
- ' pri nastaveni v rutine se hodnoty minima a maxima ukladaji do epromky
- If Blokace_cista = 0 Then
- If Cista_min > Cista_max Then
- Maximum = Cista_min
- Minimum = Cista_max
- Elseif Cista_max > Cista_min Then
- Maximum = Cista_max
- Minimum = Cista_min
- End If
- Cista_konst = Maximum - Minimum
- Cista_konst = Cista_konst / 100
- If Hladina_vody > Maximum Then
- Hladina_vody_prac = Maximum
- Else
- Hladina_vody_prac = Hladina_vody
- End If
- Pom_single = Hladina_vody_prac - Minimum
- Pom_single = Pom_single / Cista_konst
- Akt_cista = Pom_single
- If Cista_min > Cista_max Then
- Akt_cista = 100 - Akt_cista
- End If
- Pom_byte = Akt_cista
- If Akt_cista < 0 Then
- Akt_cista = 0
- End If
- If Akt_cista > 100 Then Akt_cista = 100
- If Akt_cista > 200 Then Akt_cista = 0
- Elseif Blokace_cista = 1 Then
- Akt_cista = 50
- End If
- Call Prepocet_bytu(akt_cista , 6)
- End Sub
- Sub Vypocet_kalova
- ' vypocet hladin vody + prepocet hladiny na procenta
- ' princip pro minimum vetsi nez maximum stejny, akorat se nakonci vysledna hodnota pocita odectenim od 100 %
- ' interval 100% se pocita jako rozdil maxima a minima, nasledne se spocita 1 dilek z intervalu 100% (kalova_konst),
- ' kterym se nasledne deli aktualni hodnota hladiny vody. Od aktualni hladiny se jeste pred prepoctem na procenta odecte minimalni hodnota
- ' takto vypocitana aktualni hladina se pak, pokud je minimum vetsi nez maximum, odecita od "100%"
- ' pri nastaveni v rutine se hodnoty minima a maxima ukladaji do epromky
- If Blokace_kalova = 0 Then
- If Kalova_min > Kalova_max Then
- Maximum_kalova = Kalova_min
- Minimum_kalova = Kalova_max
- Elseif Kalova_max > Kalova_min Then
- Maximum_kalova = Kalova_max
- Minimum_kalova = Kalova_min
- End If
- Kalova_konst = Maximum_kalova - Minimum_kalova
- Kalova_konst = Kalova_konst / 100
- If Hladina_kalove_vody < Minimum_kalova Then
- Hladina_kalove_vody_prac = Minimum_kalova
- Elseif Hladina_kalove_vody > Maximum_kalova Then
- Hladina_kalove_vody_prac = Maximum_kalova
- Else
- Hladina_kalove_vody_prac = Hladina_kalove_vody
- End If
- Pom_single = Hladina_kalove_vody - Minimum_kalova
- Pom_single = Pom_single / Kalova_konst
- Akt_kalova = Pom_single
- If Kalova_min > Kalova_max Then
- Akt_kalova = 100 - Akt_kalova
- End If
- If Akt_kalova < 0 Then
- Akt_kalova = 0
- End If
- Pom_byte = Akt_kalova
- If Akt_kalova > 100 And Akt_kalova < 200 Then Akt_kalova = 100
- If Akt_kalova > 200 Then Akt_kalova = 0
- Elseif Blokace_kalova = 1 Then
- Akt_kalova = 50
- End If
- Call Prepocet_bytu(akt_kalova , 7)
- End Sub
- Sub Send_outputs
- 'Vyveva_pwm = 1
- If Vyveva_pwm = 1 Then
- Pwm_driver(1) = Vyveva_prepocet
- 'Pwm_driver(1) = 4095
- Else
- Pwm_driver(1) = 0
- End If
- If Vyveva_sani = 1 Then
- Pwm_driver(2) = 4095
- Else
- Pwm_driver(2) = 0
- End If
- If Vystlak_cerpadlo = 1 Then 'vystlak ecerpadlo spojka'
- Pwm_driver(3) = 4095
- Else
- Pwm_driver(3) = 0
- End If
- If Vyveva_odvetrani = 1 Then
- Pwm_driver(4) = 4095
- Else
- Pwm_driver(4) = 0
- End If
- If Ventil_kalova_1 = 1 Then
- Pwm_driver(5) = 4095
- Else
- Pwm_driver(5) = 0
- End If
- If Ventil_zac_kaly_2 = 1 Then
- Pwm_driver(6) = 4095
- Else
- Pwm_driver(6) = 0
- End If
- If Ventil_cista_2 = 1 Then
- Pwm_driver(7) = 4095
- Else
- Pwm_driver(7) = 0
- End If
- If Ventil_horni_kaly_3 = 1 Then
- Pwm_driver(8) = 4095
- Else
- Pwm_driver(8) = 0
- End If
- If Ventil_reg_hrib = 1 Then
- Pwm_driver(9) = 4095
- Else
- Pwm_driver(9) = 0
- End If
- If Ventil_dn13 = 1 Then
- Pwm_driver(10) = 4095
- Else
- Pwm_driver(10) = 0
- End If
- If Ventil_dn25 = 1 Then
- Pwm_driver(11) = 4095
- Else
- Pwm_driver(11) = 0
- End If
- If Cis_hruby_filtr = 1 Then
- Pwm_driver(12) = 4095
- Else
- Pwm_driver(12) = 0
- End If
- If Klapka_nap_cista = 1 Then
- Pwm_driver(13) = 4095
- Else
- Pwm_driver(13) = 0
- End If
- If Klapka_nap_kalova = 1 Then
- Pwm_driver(14) = 4095
- Else
- Pwm_driver(14) = 0
- End If
- If Klapka_ovldaci_pro_f = 1 Then
- Pwm_driver(15) = 4095
- Else
- Pwm_driver(15) = 0
- End If
- If Soupe_dolni = 1 Then
- Pwm_driver(16) = 4095
- Else
- Pwm_driver(16) = 0
- End If
- If Soupe_horni = 1 Then
- Out17 = 1
- Else
- Out17 = 0
- End If
- If Auto_stop = 1 Then
- Out18 = 1
- Else
- Out18 = 0
- End If
- If Otacky_plus = 1 And Otacky_minus = 0 Then
- Out19 = 1
- Else
- Out19 = 0
- End If
- If Otacky_minus = 1 And Otacky_plus = 0 Then
- Out20 = 1
- Else
- Out20 = 0
- End If
- End Sub
- Sub Tlacitka_menu1
- If Tim_tl_up = 20 And Set_pos = 0 Then
- Tim_tl_up = 21
- Incr Menu_pos
- If Menu_pos = 18 Then Menu_pos = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 And Set_pos = 0 Then
- Tim_tl_down = 21
- Decr Menu_pos
- If Menu_pos = 0 Then Menu_pos = 17
- Set Refresh_bit
- End If
- End Sub
- Sub Send_pwm
- For I = 1 To 16
- Ii = 17 - I
- 'vypocet hodnoty v intervalu
- If Pwm_out(i) = 0 Then
- Outp(ii) = 0
- Else
- Pomw1 = Oute(ii) - Outb(ii) ''vypocet poctu dilku regulacni oblasti ventilu
- If Pomw1 < 256 Then Pomw1 = 256 'korekce
- Pomw2 = Pomw1 / 4096 'urceni velikosti noveho dilku
- Pomw3 = Pwm_out(i) * Pomw2
- Outp(ii) = Pomw3 + Outb(ii)
- End If
- I2cstart '' Start
- I2cwbyte &B10000000
- Pombyte = I * 4
- Pombyte = Pombyte + 2
- I2cwbyte Pombyte '' select slected LED address
- I2cwbyte 0 : I2cwbyte 0
- Pombyte = Low(outp(ii)) : I2cwbyte Pombyte '' LED_OFF_L
- Pombyte = High(outp(ii)) : I2cwbyte Pombyte '' LED_OFF_H
- I2cstop
- Waitus 10
- Next I
- End Sub
- Sub Cls_:
- Cls
- Setfont Font8x8
- Lcdat 1 , 125 , " ";
- Lcdat 3 , 125 , " ";
- Lcdat 5 , 125 , " ";
- Lcdat 7 , 125 , " ";
- End Sub
- 'Otacky_vyveva = Vyveva_rpm
- Sub Strana1
- Setfont Font8x8
- '(
- Lcdat 1 , 1 , "blok: " ; Blokace_bimetal ; " "
- Lcdat 2 , 1 , "tepl: " ; Teplota_vyveva ; " "
- Lcdat 3 , 1 , "RECY: " ; Recyklace_upr_vody ; " "
- Lcdat 4 , 1 , "HRUB: " ; Recyklace_cist_hrub_filtr ; " "
- Lcdat 5 , 1 , "VYVE: " ; Vak_cerp_on_off ; " "
- Lcdat 6 , 1 , "SANI: " ; Vak_cerp_sani ; " "
- Lcdat 7 , 1 , "VYTL: " ; Vak_cerp_vytlak ; " "
- Lcdat 8 , 1 , "SOHO: " ; Vak_cerp_soupe_horni ; " "
- Lcdat 1 , 64 , "SODO: " ; Vak_cerp_soupe_spodni ; " "
- Lcdat 2 , 64 , "CERP: " ; Vystlak_cerp_on_off ; " "
- Lcdat 3 , 64 , "2532: " ; Vystlak_cerp_kohout_dn25_32 ; " "
- Lcdat 4 , 64 , "13: " ; Vystlak_cerp_kohout_dn13 ; " "
- Lcdat 5 , 64 , "TLAK: " ; Vystlak_cerp_tlak_on_off ; " "
- Lcdat 6 , 64 , "VYVV: " ; Pom_byte1 ; " "
- Lcdat 7 , 64 , "vyok: " ; Vyveva_ok ; " "
- Lcdat 8 , 64 , "vypr: " ; Vyveva_prepocet ; " "
- ')
- 'Rozdil_otacek , Vyveva_automat , Otacky_pozadovane_vyveva
- ' Cista_konst Hladina_vody_prac Hladina_vody Minimum Maximum Akt_cista
- '(
- Lcdat 8 , 1 , "1: M20-MASTER/VSTUPY " , 1
- Lcdat 1 , 1 , "cistkonst: " ; Cista_konst ; " "
- Lcdat 2 , 1 , "hladvprac: " ; Hladina_vody_prac ; " "
- Lcdat 3 , 1 , "hladvody: " ; Hladina_vody ; " "
- Lcdat 4 , 1 , "Minimum: " ; Minimum ; " "
- Lcdat 5 , 1 , "Maximum: " ; Maximum ; " "
- Lcdat 6 , 1 , "Akt_cista: " ; Akt_cista ; " "
- Lcdat 7 , 1 , "Cista_min: " ; Cista_min ; " "
- ')
- 'Zmena_tepl = 0
- 'Set Teplota_time
- 'Outb(1) = Temp_min
- 'Oute(1) = Temp_max
- '(
- Lcdat 8 , 1 , "1: M20-MASTER/VSTUPY " , 1
- Lcdat 1 , 1 , "zmentepl: " ; Zmena_tepl ; " "
- Lcdat 2 , 1 , "timebit: " ; Teplota_time ; " "
- Lcdat 3 , 1 , "time" ; Teplota_vyveva_time ; " "
- Lcdat 4 , 1 , "min: " ; Temp_min ; " "
- Lcdat 5 , 1 , "outmin: " ; Outb(1) ; " "
- Lcdat 6 , 1 , "max: " ; Temp_max ; " "
- Lcdat 7 , 1 , "outmax:" ; Oute(1) ; " "
- 'Lcdat 7 , 1 , "time" ; Teplota_vyveva_time ; " "
- ')
- Lcdat 8 , 1 , "1: M20-MASTER/VSTUPY " , 1
- Lcdat 1 , 1 , "In1: " ; Prevodnik(1) ; " "
- Lcdat 2 , 1 , "In2: " ; Prevodnik(2) ; " "
- Lcdat 3 , 1 , "In3: " ; Teplota_vyveva ; " "
- Lcdat 4 , 1 , "In4: " ; Prevodnik(4) ; " "
- Lcdat 1 , 64 , "In5: " ; Prevodnik(5) ; " "
- Lcdat 2 , 64 , "In6: " ; Prevodnik(6) ; " "
- Lcdat 3 , 64 , "In7: " ; Prevodnik(7) ; " "
- Lcdat 4 , 64 , "In8: " ; Prevodnik(8) ; " "
- Lcdat 6 , 1 , " ciste hodnoty z A/D"
- End Sub
- Sub Strana2
- Setfont Font8x8
- Lcdat 8 , 1 , "2: M20-MASTER/VYST.1 " , 1
- Lcdat 1 , 1 , "Out1: " ; Pwm_driver(1) ; " "
- Lcdat 2 , 1 , "Out2: " ; Pwm_driver(2) ; " "
- Lcdat 3 , 1 , "Out3: " ; Pwm_driver(3) ; " "
- Lcdat 4 , 1 , "Out4: " ; Pwm_driver(4) ; " "
- Lcdat 5 , 1 , "Out5: " ; Pwm_driver(5) ; " "
- Lcdat 1 , 64 , "Out6: " ; Pwm_driver(6) ; " "
- Lcdat 2 , 64 , "Out7: " ; Pwm_driver(7) ; " "
- Lcdat 3 , 64 , "Out8: " ; Pwm_driver(8) ; " "
- Lcdat 4 , 64 , "Out9: " ; Pwm_driver(9) ; " "
- Lcdat 5 , 64 , "Out10: " ; Pwm_driver(10) ; " "
- End Sub
- Sub Strana3
- Setfont Font8x8
- Lcdat 8 , 1 , "3: M20-MASTER/VYST.2 " , 1
- Lcdat 1 , 1 , "Out11: " ; Pwm_driver(11) ; " "
- Lcdat 2 , 1 , "Out12: " ; Pwm_driver(12) ; " "
- Lcdat 3 , 1 , "Out13: " ; Pwm_driver(13) ; " "
- Lcdat 4 , 1 , "Out14: " ; Pwm_driver(14) ; " "
- Lcdat 5 , 1 , "Out15: " ; Pwm_driver(15) ; " "
- Lcdat 1 , 64 , "Out16: " ; Pwm_driver(16) ; " "
- Lcdat 2 , 64 , "Out17: " ; Out17 ; " " '/vystupy 17 - 20 jsou ovladane primo z procesoru - tudiz nejsou pwm!
- Lcdat 3 , 64 , "Out18: " ; Out18 ; " "
- Lcdat 4 , 64 , "Out19: " ; Out19 ; " "
- Lcdat 5 , 64 , "Out20: " ; Out20 ; " "
- End Sub
- Sub Strana4
- Setfont Font8x8
- Lcdat 8 , 1 , "4: M20-MASTER/NAST.VYST " , 1
- Lcdat 6 , 1 , "LIMITY PWM,RAMPY.."
- Setfont My12d
- Lcdat 1 , 1 , "NASTAVIT"
- Lcdat 3 , 1 , "VYSTUPY?"
- End Sub
- Sub Strana5
- Setfont Font8x8
- Lcdat 8 , 1 , "5: M20-MASTER/NST.HLADINY " , 1
- Setfont My12d
- Lcdat 1 , 1 , "NASTAVIT"
- Lcdat 3 , 1 , "SNIMACE"
- Lcdat 5 , 1 , "HLADIN?"
- End Sub
- Sub Strana6
- Setfont Font8x8
- Lcdat 8 , 1 , "6: M20-MASTER/TEST " , 1
- Lcdat 6 , 1 , "TEST OVL. PRVKU"
- Setfont My12d
- Lcdat 1 , 1 , "TEST"
- Lcdat 3 , 1 , "VYSTUPU "
- End Sub
- Sub Strana7
- Setfont Font8x8
- Lcdat 8 , 1 , "6: M20-MASTER/BLOKACE " , 1
- Lcdat 6 , 1 , "BLOKACE CIDEL"
- Setfont My12d
- Lcdat 1 , 1 , "BLOKOVAT"
- Lcdat 3 , 1 , "CIDLA? "
- End Sub
- Sub Sest_obr_spinacu
- '*****************SESTAVENI OBRAZU STAVU TLACITEK**********
- If Mbuf_tl(2) = 2 Then
- Vak_cerp_on_off = M(40).1 'M(51).1
- Tlacitka_1.0 = Vak_cerp_on_off
- Vak_cerp_sani = M(40).2
- Tlacitka_1.1 = Vak_cerp_sani
- Vak_cerp_vytlak = M(40).3
- Tlacitka_1.2 = Vak_cerp_vytlak
- Vak_cerp_soupe_spodni = M(40).4
- Tlacitka_1.3 = Vak_cerp_soupe_spodni
- Vak_cerp_soupe_horni = M(40).5
- Tlacitka_1.4 = Vak_cerp_soupe_horni
- End If
- If Mbuf_tl(2) = 3 Then
- Vystlak_cerp_on_off = M(44).1
- Tlacitka_1.5 = Vystlak_cerp_on_off
- Vystlak_cerp_kohout_dn13 = M(44).2
- Tlacitka_1.6 = Vystlak_cerp_kohout_dn13
- Vystlak_cerp_kohout_dn25_32 = M(44).3
- Tlacitka_1.7 = Vystlak_cerp_kohout_dn25_32
- Vystlak_cerp_hadice_dn13 = M(44).4
- Tlacitka_1.8 = Vystlak_cerp_hadice_dn13
- Vystlak_cerp_hadice_dn25_32 = M(44).5
- Tlacitka_1.9 = Vystlak_cerp_hadice_dn25_32
- Vystlak_cerp_tlak_on_off = M(44).6
- Tlacitka_1.10 = Vystlak_cerp_tlak_on_off
- End If
- If Mbuf_tl(2) = 4 Then
- Recyklace_upr_vody = M(48).1
- Tlacitka_2.0 = Recyklace_upr_vody
- Recyklace_cist_hrub_filtr = M(48).2
- Tlacitka_2.1 = Recyklace_cist_hrub_filtr
- Recyklace_cist_cyklon = M(48).3
- Tlacitka_2.2 = Recyklace_cist_cyklon
- Recyklace_odcerp_kal = M(48).4
- Tlacitka_2.3 = Recyklace_odcerp_kal
- End If
- If Mbuf_tl(2) = 5 Then
- Zavodneni_90s = M(52).1
- Tlacitka_2.4 = Zavodneni_90s
- Zavodneni_majak = M(52).2
- Tlacitka_2.5 = Zavodneni_majak
- Zavodneni_svetlo = M(52).3
- Tlacitka_2.6 = Zavodneni_svetlo
- 'Zavodneni_radio = 1
- Zavodneni_radio = M(52).4
- Tlacitka_2.7 = Zavodneni_radio
- End If 'M(54).4
- '' WORDY PREDAVANE SLEJVU A DISPLEJI
- '(
- Tlacitka_1.0 = M(51).1 : Tlacitka_1.1 = M(51).2 : Tlacitka_1.2 = M(51).3 : Tlacitka_1.3 = M(51).4 : Tlacitka_1.4 = M(51).5
- Tlacitka_1.5 = M(52).1 : Tlacitka_1.6 = M(52).2 : Tlacitka_1.7 = M(52).3 : Tlacitka_1.8 = M(52).4 : Tlacitka_1.9 = M(52).5 : Tlacitka_1.10 = M(52).6 :
- Tlacitka_2.0 = M(53).1 : Tlacitka_2.1 = M(53).2 : Tlacitka_2.2 = M(53).3 : Tlacitka_2.3 = M(53).4:
- Tlacitka_2.4 = M(54).1 : Tlacitka_2.5 = M(54).2 : Tlacitka_2.6 = M(54).3 : Tlacitka_2.7 = M(54).4
- ')
- '(
- Tlacitka_1.0 = 1 : Tlacitka_1.1 = 1 : Tlacitka_1.2 = 1 : Tlacitka_1.3 = 1 : Tlacitka_1.4 = 1
- Tlacitka_1.5 = 1 : Tlacitka_1.6 = 1 : Tlacitka_1.7 = 1 : Tlacitka_1.8 = 1 : Tlacitka_1.9 = 1 : Tlacitka_1.10 = 1
- Tlacitka_2.0 = 1 : Tlacitka_2.1 = 1 : Tlacitka_2.2 = 1 : Tlacitka_2.3 = 1:
- Tlacitka_2.4 = 1 : Tlacitka_2.5 = 1 : Tlacitka_2.6 = 1 : Tlacitka_2.7 = 1
- ')
- End Sub
- Tim0_int:
- Reset Watchdog
- If Teplota_time = 1 And Teplota_vyveva_time < 5000 Then
- Incr Teplota_vyveva_time
- Elseif Teplota_time = 0 Then
- Teplota_vyveva_time = 0
- End If
- If Teplota_vyveva_time = 4000 Then
- Teplota_vyveva_time = 0
- Teplota_time = 0
- End If
- If Recyklace_upr_vody = 1 And Recyklace_time_znovuspust < 1000 Then Incr Recyklace_time_znovuspust
- If Recyklace_time_znovuspust > 375 Then
- Set Set_cerp
- End If
- If Recyklace_time_znovuspust > 750 Then
- Set Set_cyklon
- End If
- If Recyklace_upr_vody = 0 Then
- Recyklace_time_znovuspust = 0
- Reset Set_cerp
- Reset Set_cyklon
- End If
- '
- If Tlak_oleje_kalove_cerpadlo > 180 And Tlak_time < 2000 Then
- Incr Tlak_time
- Elseif Tlak_oleje_kalove_cerpadlo < 180 Then
- Tlak_time = 0
- Reset Tlak_hlaska
- End If
- If Tlak_time = 1900 Then
- Tlak_time = 2200
- Set Tlak_hlaska
- End If
- '' CASOVANI KOMUNINACE SLAVE1[ADRESA1] / DISPLEJ[ADRESA2]
- If Automat = 1 Then
- If Otacky_uber = 1 Or Otacky_pridej = 1 Then
- Incr Zmena_otacek_time
- Else
- Zmena_otacek_time = 0
- End If
- End If
- If Automat = 1 And Cteni_otacek_time > 0 Then
- Incr Cteni_otacek_time
- End If
- If Cekej = 1 Then Incr Cas_vyveva
- If Cas_vyveva > 150 Then
- Cekej = 0
- Cas_vyveva = 0
- End If
- If Recyklace_cist_hrub_filtr = 1 And Recyklace_funkce = 0 And Cist_hrub_filtru_time < 1000 Then
- Incr Cist_hrub_filtru_time
- End If
- Incr Comm_period
- If Comm_period = 50 Then
- Vysilej = 1 : Slave = 1
- Elseif Comm_period = 100 Then
- Vysilej_tlacitka = 1
- Elseif Comm_period = 150 Then
- Vysilej = 1 : Slave = 2
- Elseif Comm_period = 200 Then
- Vysilej_tlacitka = 1
- Comm_period = 0
- End If
- '' CASOVANI KOMUNIKACE NA DRUHEM PORTU - DESKY SE SPINACI
- Incr Comm_period_tlacitka
- If Comm_period_tlacitka = 80 Then
- '' KOLECKO ADERS SLEJVU SE RESI PRED VYSLANIM POZADAVKU
- Comm_period_tlacitka = 0
- End If
- '' CASOVANI FUNKCNOSTI TLACITEK ZDE SE NASTAVI JEN BIT PROUCHODU CASOVACEM A OSTATNI SE RESI V HLAVNI PROG SMYCCE
- Set Bit_time
- '' CASOVANI NACITANI ANALOGOVYCH VSTUPU
- Incr Ad_time
- If Ad_time = 20 Then
- Ad_time = 0 : Ad_bit = 1
- End If
- '' CASOVANI NASTAVOVANI VYSTUPU - 50MS
- Incr Time_out_pom
- If Time_out_pom = 16 Then
- Time_out_pom = 0 : Set Refresh_out
- End If
- '' CASOVANI REFRESH DISPLEJE - ZAKLAD JE 2 SEKUNDY PRO KONTROLNI OBRAZY, U NASTAVOVACICH REFR. VYVOLAVAJI I TLACITKA
- ''If Tim1 = 375 Then
- If Tim1 < 1000 Then Incr Tim1 'casova zakladna 1 sekunda
- If Tim1 = 375 Then
- Tim1 = 0
- If Strana = 1 Or Strana = 2 Or Strana = 3 Or Menu_pos = 40 Or Menu_pos = 50 Then Set Refresh_bit
- End If
- Incr Tim3
- If Tim3 = 1875 Then
- 'Reset Posun
- Tim3 = 0
- End If
- Incr Tim2
- If Tim2 = 375 Then
- Tim2 = 0
- 'Pom_single = Vyveva_rpm * 1.765
- Pom_word = Vyveva_rpm / 4
- Otacky_vyveva = Pom_word * 60
- 'Otacky_vyveva = Pom_single
- Pom_word = Otacky_vyveva / 100
- Pom_byte = Pom_word
- Prevodnik(1) = Pom_byte
- Call Prepocet_bytu(pom_byte , 0)
- 'Prevodnik(1) = Otacky_vyveva
- Vyveva_rpm = 0
- End If
- If Recyklace_upr_vody = 1 Then
- If Recyklace_time < 700 Then Incr Recyklace_time
- If Recyklace_time = 200 Then
- Recyklace_time = 0
- If Recyklace_1sec < 10 Then
- Incr Recyklace_1sec
- If Recyklace_1sec > 6 Then
- Recyklace_1sec = 15
- End If
- End If
- End If
- End If
- '(
- If Recyklace_cist_hrub_filtr = 1 Then
- If Recyklace_time < 700 Then Incr Recyklace_time
- If Recyklace_time = 200 Then
- Recyklace_time = 0
- If Recyklace_1sec < 7 Then
- Incr Recyklace_1sec
- If Recyklace_1sec > 5 Then
- Recyklace_1sec = 10
- End If
- End If
- End If
- End If
- ')
- If Recyklace_cist_cyklon = 1 Then
- Incr Recyklace_cist_cyklon_time
- If Recyklace_cist_cyklon_time = 375 Then
- If Cisteni_cyklonu_time < 15 Then Incr Cisteni_cyklonu_time
- Recyklace_cist_cyklon_time = 0
- If Cisteni_cyklonu_time > 9 Then
- Cisteni_cyklonu_time = 20
- End If
- End If
- End If
- If Space_time_tl < 150 Then Incr Space_time_tl
- If Space_time_tl > 120 Then Index_tl = 0
- If Space_time < 150 Then Incr Space_time
- If Space_time > 120 Then Index = 0 ': Index_d = 0 ''cca 3,23 * 3ms = 9,75
- If Nodata_time < 500 Then
- Incr Nodata_time
- End If
- Incr Tim_ramp
- If Tim_ramp = 5 Then ''
- Tim_ramp = 0
- For Index_ramp = 1 To 16
- Index3 = 17 - Index_ramp
- If Ramp_on(index_ramp) = 0 And Ramp_off(index_ramp) = 0 Then
- Pwm_out(index3) = Pwm_driver(index_ramp)
- Else
- If Pwm_out(index3) < Pwm_driver(index_ramp) Then
- Pwm_krok(index_ramp) = 1010 / Ramp_on(index_ramp)
- Pwm_out_integer(index_ramp) = Pwm_out_integer(index_ramp) + Pwm_krok(index_ramp)
- If Pwm_out_integer(index_ramp) > Pwm_driver(index_ramp) Then
- Pwm_out_integer(index_ramp) = Pwm_driver(index_ramp)
- End If
- Pwm_out(index3) = Pwm_out_integer(index_ramp)
- Elseif Pwm_out(index3) > Pwm_driver(index_ramp) Then
- Pwm_krok(index_ramp) = 1010 / Ramp_off(index_ramp)
- Pwm_out_integer(index_ramp) = Pwm_out_integer(index_ramp) - Pwm_krok(index_ramp)
- If Pwm_out_integer(index_ramp) < Pwm_driver(index_ramp) Then
- Pwm_out_integer(index_ramp) = Pwm_driver(index_ramp)
- End If
- Pwm_out(index3) = Pwm_out_integer(index_ramp)
- End If
- End If
- Next Index_ramp
- End If
- Return
- Urxc_isr:
- Disable Interrupts
- Modt_tl = Inkey(#1)
- 'Pwm_driver(1) = 4095
- If Index_tl = 0 Then
- ''JAKA PRISLA ADRESA SKUPINY ?
- 'Pwm_driver(2) = 4095
- If Modt_tl = 10 Then
- 'Pwm_driver(3) = 4095
- Index_tl = Index_tl + 1 'increase the buffer counter
- Mbuf_tl(1) = Modt_tl
- 'store address in location 1
- End If
- Else
- 'Pwm_driver(4) = 4095
- Index_tl = Index_tl + 1 : Mbuf_tl(index_tl) = Modt_tl ''INDEX 2 = ADRESA SLEJVA PO KTEREM CHCEME ODPOVED
- If Index_tl = 4 Then
- 'Pwm_driver(5) = 4095
- ''NA TRETI POZICI JE ULOZEN POCET WORDU
- Buf_long_tl = 2 * Mbuf_tl(4) ''- PREPOCITAME NA BYTE
- Buf_long_tl = 6 + Buf_long_tl ''A SECTEME S UVODNI CASTI A DVEMA BYTE CRC
- End If
- If Index_tl = Buf_long_tl Then
- '' JAKMILE JE HOTOVO
- 'Pwm_driver(6) = 4095
- Index_tl = 0
- If Mbuf_tl(2) = 2 Or Mbuf_tl(2) = 3 Or Mbuf_tl(2) = 4 Or Mbuf_tl(2) = 5 Then
- Data_prijata_tlacitka = 1
- 'pwm_driver(7) = 4095
- End If
- '' SESTAVIME PAK PRICHOZI DATA V CYKLU PROGRAMU
- Nodata_time_tl = 0 'Print #1 , "HURA: "
- End If
- End If
- Space_time_tl = 0
- Enable Interrupts
- Return
- Urxc_isr1: ' komunikace s displejem
- Modt = Inkey(#2)
- If Index = 0 Then
- If Modt = Skupina Then
- Index = Index + 1 'increase the buffer counter
- Mbuf(1) = Modt 'store address in location 1
- End If
- Else
- Index = Index + 1 : Mbuf(index) = Modt ''INDEX 2 = ADRESA SLEJVA PO KTEREM CHCEME ODPOVED
- If Index = 4 Then
- ''NA TRETI POZICI JE ULOZEN POCET WORDU
- Buf_long = 2 * Mbuf(4) ''- PREPOCITAME NA BYTE
- Buf_long = 6 + Buf_long ''A SECTEME S UVODNI CASTI A DVEMA BYTE CRC
- End If
- If Index = Buf_long Then
- '' JAKMILE JE HOTOVO
- Index = 0
- If Mbuf(2) = 1 Or Mbuf(2) = 2 Then
- Data_prijata = 1
- End If
- '' SESTAVIME PAK PRICHOZI DATA V CYKLU PROGRAMU
- Nodata_time = 0 'Print #1 , "HURA: "
- End If
- End If
- Space_time = 0
- Return
- Int4_int:
- Incr Vyveva_rpm
- Return
- End
- Sub Zmena_otacek(byval Jak As Byte)
- End Sub
- Sub Prepocet_bytu(byval Bytebyte As Byte , Byval Prepocet_bytu_num As Byte)
- If Prepocet_bytu_num = 0 Then
- For Pt = 0 To 7
- Word1.pt = Bytebyte.pt
- Next
- End If
- If Prepocet_bytu_num = 1 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word1.ptx = Bytebyte.pt
- Next
- End If
- If Prepocet_bytu_num = 2 Then
- For Pt = 0 To 7
- Word2.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 3 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word2.ptx = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 4 Then
- For Pt = 0 To 7
- Word3.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 5 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word3.ptx = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 6 Then
- For Pt = 0 To 7
- Word4.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 7 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word4.ptx = Bytebyte.pt
- Next
- End If
- End Sub
- Sub Prepocet_na_word(byval Word_poz As Word )
- For X = 0 To 7
- Otacky_motoru.x = Word_poz.x
- Next
- End Sub
- Sub Predavani_autec
- 'Zavodneni_radio = 1
- If Zavodneni_radio = 1 Then
- Otacky_plus = Autec_1.0
- Otacky_minus = Autec_1.1
- Recyklace_upr_vody = Autec_1.2
- Recyklace_cist_hrub_filtr = Autec_1.3
- Vak_cerp_on_off = Autec_1.4
- Vak_cerp_sani = Autec_1.5
- Vak_cerp_vytlak = Autec_1.6
- Vak_cerp_soupe_horni = Autec_1.7
- Vak_cerp_soupe_spodni = Autec_1.8
- Vystlak_cerp_on_off = Autec_1.9
- Vystlak_cerp_kohout_dn25_32 = Autec_1.10
- Vystlak_cerp_kohout_dn13 = Autec_1.11
- Vystlak_cerp_tlak_on_off = Autec_1.12
- Pom_byte1 = Autec_2
- Tlak_pozadovany_automat_radio = Pom_byte1
- Shift Autec_2 , Right , 8
- Pom_byte2 = Autec_2
- If Pom_byte2 > 120 Then Pom_byte2 = 128
- Vyveva_prepocet_radio = Pom_byte2 * 32
- End If
- End Sub
- Sub Hlasky_rout
- Hlaska_exist = 0
- If Akt_kalova < 35 And Akt_kalova > 5 Then
- Call Hlasky_zasobnik(3 , 0)
- Set Hlaska_exist
- Else
- Call Hlasky_zasobnik(3 , 1)
- End If
- If Akt_kalova < 5 Then
- Call Hlasky_zasobnik(6 , 0)
- Set Hlaska_exist
- Else
- Call Hlasky_zasobnik(6 , 1)
- End If
- If Akt_cista < 20 Then
- Call Hlasky_zasobnik(2 , 0)
- Set Hlaska_exist
- Else
- Call Hlasky_zasobnik(2 , 1)
- End If
- If Vyveva_prehrati = 1 Then
- Call Hlasky_zasobnik(1 , 0)
- Set Hlaska_exist
- Else
- Call Hlasky_zasobnik(1 , 1)
- End If
- 'Dim Teplota_oleje As Byte , Tlak_oleje_kalove_cerpadlo As Byte
- If Teplota_oleje > 70 Then
- Call Hlasky_zasobnik(4 , 0)
- Set Hlaska_exist
- Else
- Call Hlasky_zasobnik(4 , 1)
- End If
- If Tlak_hlaska = 1 Then
- Call Hlasky_zasobnik(5 , 0)
- Set Hlaska_exist
- Elseif Tlak_hlaska = 0 Then
- Call Hlasky_zasobnik(5 , 1)
- End If
- If Hlaska_exist = 0 Then
- Odesli_hlasku
- End If
- 'If Akt_kalova < 40 Then
- 'Hlasky_zasobnik(3)
- 'End If
- End Sub
- Sub Hlasky_zasobnik(byval Cislo_hlasky As Byte , Byval Vymaz As Byte)
- If Vymaz = 0 Then
- For Z = 1 To 49
- If Hlasky_zasobnik_pole(z) = Cislo_hlasky Then
- Set Zapsano
- End If
- Next
- For Zz = 1 To 49
- If Hlasky_zasobnik_pole(zz) = 0 And Zapsano = 0 Then
- Hlasky_zasobnik_pole(zz) = Cislo_hlasky
- Set Zapsano
- End If
- Next
- Reset Zapsano
- Elseif Vymaz = 1 Then
- For Z = 1 To 49
- If Hlasky_zasobnik_pole(z) = Cislo_hlasky Then
- Hlasky_zasobnik_pole(z) = 0
- Konec = 49 - Z
- For Zz = Z To Konec
- Hlasky_zasobnik_pole(zz) = Hlasky_zasobnik_pole(zz + 1)
- Next
- End If
- Next
- End If
- End Sub
- Sub Odesli_hlasku
- For Zz = 1 To 49
- Hlasky_zasobnik_pole(zz) = Hlasky_zasobnik_pole(zz + 1)
- Next
- Set Posun
- End Sub
- Logostep:
- $bgf "logostep.bgf"
- $include "font8x8.font"
- $include "my12D.font"
- $include "100.font"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement