lauantai 25. lokakuuta 2008

Tietokone DCC-keskusyksikkönä, osa 4: asetinlaitteen perustekniikkaa

Osassa 2 käsiteltiin esimerkkitapauksena PoRhan näyttelyrataa ja osassa 3 sähkökytkentöjä. Nyt kerrotaan mitä asetinlaitteena toimiva PC on tarkemmin ottaen syönyt.

Tarkastellaan ensin laitteistoa. PoRhan turvalaitteita komensi seuraavanlainen kone:
  • Pentium II 350 MHz
  • 512 MB muistia (muistaakseni)
  • pienehkö kiintolevy
  • perustason näytönohjain
  • sellainen näyttö, johon mahtui raidekaavio kerralla.
Käyttöjärjestelmänä oli Debian GNU/Linux ja ohjelmistoina srcpd ja SpDrS60 for Linux. Kaikki mainitut ovat open source -ohjelmistoja ja vapaasti verkosta ladattavissa. srcpd hoitaa tietokoneen ja radan välistä tietoliikennettä, ja sprds60 toimii asetinlaitteen käyttötauluna.

Seuraavassa selostetaan miten vastaava kokonaisuus rakennetaan itse.

Ensin asennetaan käyttöjärjestelmä ja ohjelmat.

Debianin lisäksi on mahdollista käyttää periaatteessa mitä tahansa Linux-jakelua. Ubuntu, Fedora ja SuSE lienevät helpoimmasta päästä; niille on tehty srcpd:stä ja SpDrS60:stä valmiit paketit. Valittu Linux-jakelu asennetaan sen omien asennusohjeiden mukaan; tässä ei ole käytännöllistä kuvata kaikkia asennusmahdollisuuksia. Toinen vaihtoehto on käyttää tekemääni Puppy Linux -versiota, jossa on valmiiksi asennettuna srcpd ja SpDrS60. ISO-tiedostosta poltetaan CD-levy, jolla käynnistetään kone. Tämän jälkeen ohjelmat ovat heti käytettävissä. 

(CD poltetaan Windowsissa Nero-ohjelmalla näin: Recorder -> Burn Image, kohdasta Files of type valitaan All files. Etsitään äsken imuroitu tiedosto puppy-400tkasl.iso, painetaan Write.

CD poltetaan Macilla näin: Avataan imuroitu ISO-tiedosto Levytyökalussa. Syötetään asemaan tyhjä CD. Painetaan Polta.)

Mikäli käytössä on Debian, Ubuntu, Fedora tai SuSE, imuroidaan srcpd:n ja spdrs60:n asennuspaketit ja asennetaan ne käyttöjärjestelmän työkalulla. (Suunnilleen näin: Ensin mennään root-käyttäjäksi komennolla sudo -s, joka kysyy käyttäjän omaa salasanaa, tai su -, joka kysyy rootin salasanaa. Sen jälkeen paketin asennus; Ubuntu ja Debian: dpkg -i paketti.deb; Fedora ja SuSE: rpm -U paketti.rpm.)

Jos käytetään Puppy Linuxia, kone käynnistetään CD:ltä ja käyttäjän luomat tiedot tallennetaan yhteen tiedostoon, joka voidaan tallentaa esim. muistitikulle. Tallennustiedoston nimeen voidaan haluttaessa sisällyttää yksilöivä osa (ei pakollinen). Tiedoston tallennuspaikkaa ja nimen yksilöivää osaa kysytään konetta ensimmäistä kertaa sammutettaessa. Muihin kysymyksiin voi vastata Enterin painalluksella. 

Tässä vaiheessa on syytä testata, että kone lähtee käyntiin ja spdrs60 toimii. srcpd:n toiminta voidaan todeta seuraavasti: valitaan spdrs60:n Daemon-valikosta Connect. Todetaan, että tilariville tulee ilmoitus "Info socket connected."

Seuraavaksi määritellään komento-ohjauslaitteiston asetukset. Tässä on kätevä apu srcpd:n konfiguraatiosivu. Ensimmäisessä vaiheessa valitaan komento-ohjausjärjestelmän liityntä tietokoneeseen. Mikäli vahvistin on kytketty suoraan sarjaporttiin, kysymyksessä on suorakäyttö eli DDL, jolloin valitaan ensimmäinen kohta, "DDL". Jos halutaan käyttää myös kirjoitinporttiin kytkettyä S88-palauteväylää, valitaan myös kohta "S88 at parallel port." Tässä käytetään esimerkkinä kokoonpanoa, joka sisältää nämä kaksi väylää. Lopuksi painetaan nappia Step 2.

Seuraavalla sivulla tehdään väyläkohtaiset asetukset. SRCP-protokollassa väylät on aina numeroitu, ja itse palvelin esitetään väylänä numero 0. Ensimmäisessä sarakkeessa on siis srcpd:n yleiset asetukset: millä käyttäjätunnuksilla toimitaan, paljonko lokimerkintöjä tehdään, mihin tiedostoon tallennetaan prosessin numero. Näistä kannattaa vaihtaa Group ID arvoon lp, jotta kirjoitinporttiin on pääsyoikeudet. 

Seuraavassa sarakkeessa on väylä numero 1, DDL. Käydäänpä asetukset yksi kerrallaan läpi.
  1. Debuglevel - INFORMATION: paljonko tietoa lokiin merkitään. NONE on vähiten, ALL on eniten.
  2. Auto power ON - X: kun tässä on merkki, rataan kytketään automaattisesti virta kun srcpd käynnistyy. Jätetään tähän rasti.
  3. Device name - /dev/ttyS0: käytettävä sarjaportti. /dev/ttyS0 on ensimmäinen sarjaportti (COM1 tai A), /dev/ttyS1 toinen (COM2 tai B). Tämä valitaan käytettävän sarjaportin mukaan. Esimerkissämme käytetään ensimmäistä sarjaporttia, siis laitetta /dev/ttyS0.
  4. max Loco Address - 1 (oletus 81): jos tämän sarjaportin kautta aikoo ajaa junia, tähän laitetaan korkein käytettävä veturiosoite (DCC:ssä 99 tai 9999). Jos tämän sarjaportin kautta ei ajeta junia, laitetaan jokin pieni numero (esim. 1). Esimerkkimme on ainoastaan asetinlaitekäytössä, siis tähän laitetaan 1.
  5. max GA Address - 324: vastaavasti kuin edellä. Tähän tulee käytettävien vaihde- ja opastindekooderien korkein osoite. Jätetään tässä vaiheessa oletusarvoon.
  6. Enable MM - tyhjä (oletus X): jos käytetään Märklin/Motorola-protokollaa noudattavia dekoodereita, tähän tarvitaan rasti, muuten otetaan pois. Esimerkissämme käytetään pelkästään DCC-dekoodereita, joten rasti pois.
  7. Enable NMRA/DCC - X:  jos käytetään DCC-dekoodereita (kaksikiskodekooderit muuten paitsi Selectrix ja valmistajien omat protokollat kuten FMZ), tähän tarvitaan rasti; jos käytetään ainoastaan Märklin-dekoodereita, rasti otetaan pois. Esimerkissämme tähän tulee rasti.
  8. Ring Indicator Check: tarkkaillaan onko Ring Indicator -signaali (nasta 9) aktiivinen.
  9. Check Short: valvotaan oikosulkuja.
  10. Inverse DSR: Data Send Ready -signaalin merkitys on käänteinen.
  11. Shortcut Delay: 0. Huomautus: Neljää viimeksimainittua (kohdat 8-11) ei oikein ole dokumentoitu enkä ole kovin hyvin perillä niiden toiminnasta. Näiden annetaan olla toistaiseksi oletusarvoissaan. Selvitystyö jatkuu...
  12. NMRA/DCC Translation Table: 3. Tällä valitaan DCC-signaalin tuottotapa. Numero 3 on yleensä sopiva.
  13. Improve NMRA/DCC Timing: tätä tarvitaan mikäli DCC-järjestelmässä esiintyy vetureiden karkailua tms. toimintahäiriöitä.
  14. Enable usleep patch: tätä tarvitaan, jos Märklin-signaalin tuottaminen vie kohtuuttomasti prosessoritehoa tai ei onnistu ollenkaan. Jollei Märklin-signaalia tuoteta, tätäkään ei tarvita.
  15. usleep wait time (ms): 0. Jos Enable usleep patch on valittuna, tähän voi kokeilla erilaisia arvoja (mahdollisesti väliltä 0-50), jolla signaalin tuotto saadaan onnistumaan.
Viimeisessä sarakkeessa määritellään väylä 2 eli S88-palauteväylä. Käydään senkin asetukset läpi.
  1. Debuglevel - INFORMATION. Sama merkitys kuin edellä.
  2. Auto power ON - X: kun tässä on merkki, rataan kytketään automaattisesti virta kun srcpd käynnistyy. Palauteväylän tapauksessa ei merkitystä, mutta jätetään tähän rasti. Ei siitä haittaakaan ole.
  3. IO Port - kolme valintaa: 0x378, 0x278 ja 0x3bc. Oletusarvo 0x378. Valitaan se, joka vastaa käytössä olevaa kirjoitinporttia; usein tämän voi määritellä koneen BIOS-asetuksista. Oikean portin saa selville, kun avaa pääteikkunan (Terminal) ja antaa seuraavan komennon: cat /proc/ioports | grep parport Komennon tulosteessa ensimmäinen numerosarja on joko 0378, 0278 tai 03bc. Esimerkissämme valitaan ensimmäinen eli 0x378.
  4. Clock Scale: 35.
  5. Refresh Cycle: 100.
  6. Min Time Span for 0: 0. Kolme edellistä (kohdat 4-6) liittyvät protokollan hienosäätöön ja saavat yleensä olla oletusarvoissaan.
  7. # FB1 Modules: 0 (oletusarvo). Kirjoitinporttiin voidaan kytkeä neljä rinnakkaista S88-väylää. Tähän kirjoitetaan montako palautemoduulia on kytketty ensimmäiseen väylään. Jos käytetään osassa 3 esitettyä kytkentää, kaikki moduulit tulevat ensimmäiseen väylään ja seuraavat kohdat jätetään nolliksi. Esimerkissämme on kaksi palautemoduulia, siis tähän kirjoitetaan numero 2.
  8. # FB2 Modules: 0 (oletusarvo). Tähän kirjoitetaan montako palautemoduulia on kytketty toiseen väylään.
  9. # FB3 Modules: 0 (oletusarvo). Montako palautemoduulia on kytketty kolmanteen väylään.
  10. # FB4 Modules: 0 (oletusarvo). Montako palautemoduulia on kytketty neljänteen väylään.
Kun kaikki kohdat on saatu täytetyksi, painetaan Finish. Valmis ylläolevan esimerkin mukaan tehty tiedosto on ladattavissa täältä. Syntynyt tiedosto tallennetaan nimellä /etc/srcpd.conf. Tämän jälkeen avataan pääteikkuna (terminal, xterm, rxvt tms.) ja annetaan siinä seuraavat komennot:
  1. sudo -s tai su - (Tätä komentoa ei tarvita Puppy Linuxissa.)
  2. /etc/init.d/srcpd stop (tällä pysäytetään srcpd)
  3. /etc/init.d/srcpd start (tällä käynnistetään srcpd)
srcpd täytyy pysäyttää ja käynnistää uudelleen aina kun sen asetustiedostoon (/etc/srcpd.conf) on tehty muutoksia.

Jotta palautemoduulit alkavat toimia, tehdään vielä seuraavat toimenpiteet SpDrS60:ssä:
  1. valitaan valikosta Edit->Preferences
  2. siirrytään välilehdelle Feedback modules
  3. valitaan kohdasta Module size monenko tulon moduuleita käytetään (8 vai 16)
  4. Bus numbering -kohdasta valitaan Flexible (SRCP 0.8)
  5. Connected modules per bus -kohdassa kirjoitetaan väylän numeroa vastaavaan kohtaan montako moduulia on kytketty, eli samat tiedot kuin srcpd:n asetuksiin. Esimerkissämme ensimmäinen palauteväylä on numero 2 ja siihen on kytketty 2 moduulia, eli Bus: 2, Modules: 2. Saman kirjoitinportin muut S88-väylät saavat kolme seuraavaa numeroa eli esimerkissämme 3, 4 ja 5. Esimerkissämme niistä ei tarvitse välittää.
Nyt voidaan kytkeä komponentit yhteen ja todeta toiminta. Ensi alkuun voi vahvistimeen kytkeä vaikkapa hehkulampun tai kaksi LEDiä, jotka on kytketty eri suuntiin rinnan ja koko paketti sarjaan noin 1 kilo-ohmin vastuksen kanssa. Molempien LEDien pitäisi tällöin palaa kytkettäessä paketti pienoisrautatiemuuntajan vaihtovirtalähtöön - siihen, josta otetaan virta vaihteiden kääntöön - tai Märklinin muuntajan L- ja 0-napojen eli keltaisen ja ruskean välille. Jos molemmat LEDit palavat tasaisesti, vahvistin tuottaa vaihtovirtaa. Jos vain toinen palaa, vahvistin tuottaa tasavirtaa ja se on syytä sammuttaa välittömästi ja tarkistaa kytkennät.

Palautemoduulien toiminnan voi todeta SpDrS60:ssä valitsemalla valikosta View->Feedback modules ja avautuvasta paneelista oikean väylän. Varmistetaan, että ohjelma on yhteydessä palvelimeen valitsemalla valikosta Daemon->Connect. Tämän jälkeen kokeillaan aktivoida palautemoduulien tuloja yksi kerrallaan ja katsotaan tapahtuuko näytössä muutosta.

Seuraavassa osassa siirrytään teoriaosuuteen: johdatus turvalaitelogiikkaan pienoisrautatieharrastajan näkökulmasta.

Ei kommentteja:

Lähetä kommentti