Millainen kytkentä olisi paras ?
Kytkentään kuuluu 3 releen käämiä, nimetään ne A, B ja C.
Haluttu toiminta on se, että kolmea relettä ohjataan kahdella bitillä seuraavasti (ja tässä järjestyksessä):
Ohjausbitit Vetävät releet
00 Ei mikään
01 A
10 A ja B
01 A
00 Ei mikään
01 A
11 A ja C
01 A
00 Ei mikään
Tässä olisi tärkeää, ettei esiinny hallitsemattomia tilanmuutoksia.
siis:
Releet B ja C eivät saa koskaan vetää yhtäaikaa
Releen A tulee vetää yhtäjaksoisesti koko ohjauksen 01 - 10 - 01 sekä 01 - 11 -01 aikana
Myöskään tilanmuutos 01-10 ei saisi aiheuttaa ongelmaa. Jos ohjaukseen käyttää esim. PC:n sarjaportin kahta ohjausnastaa, niin entä, jos kaksi muuttuvaksi tarkoitettua bittiä eivät muutukaan täsmälleen yhtäaikaa ? Moisten erojen toki olettaisi jäävän miksrosekuntiluokkaan, eikä rele mekaanisena toimielimenä ehdo juuri reagoida alle mikrosekunnin kestäviin häiriötiloihin.
Toki täytynee ohjausohjelmaa koodattaessa erityisesti Windows -ympäristössä kiinnittää huomiota siihen, että voisiko 2 ohjausta tehdä samalla käyttöjärjestelmäkutsulla yhtäaikaa, ettei vaan skeduleri riistä suoritusvuoroa ohjauksia tekevältä säikeeltä. Jos ei, niin ainoa keino on ilmeisesti pyrkiä minimoimaan vahingot nostamalla säikeen prioriteetti maksimiin ennen ohjausta ja pudottamalla se takaisin normaaliksi kun ohjaukset on asetettu halutuiksi.
Kytkentään kuuluu 3 releen käämiä, nimetään ne A, B ja C.
Haluttu toiminta on se, että kolmea relettä ohjataan kahdella bitillä seuraavasti (ja tässä järjestyksessä):
Ohjausbitit Vetävät releet
00 Ei mikään
01 A
10 A ja B
01 A
00 Ei mikään
01 A
11 A ja C
01 A
00 Ei mikään
Tässä olisi tärkeää, ettei esiinny hallitsemattomia tilanmuutoksia.
siis:
Releet B ja C eivät saa koskaan vetää yhtäaikaa
Releen A tulee vetää yhtäjaksoisesti koko ohjauksen 01 - 10 - 01 sekä 01 - 11 -01 aikana
Myöskään tilanmuutos 01-10 ei saisi aiheuttaa ongelmaa. Jos ohjaukseen käyttää esim. PC:n sarjaportin kahta ohjausnastaa, niin entä, jos kaksi muuttuvaksi tarkoitettua bittiä eivät muutukaan täsmälleen yhtäaikaa ? Moisten erojen toki olettaisi jäävän miksrosekuntiluokkaan, eikä rele mekaanisena toimielimenä ehdo juuri reagoida alle mikrosekunnin kestäviin häiriötiloihin.
Toki täytynee ohjausohjelmaa koodattaessa erityisesti Windows -ympäristössä kiinnittää huomiota siihen, että voisiko 2 ohjausta tehdä samalla käyttöjärjestelmäkutsulla yhtäaikaa, ettei vaan skeduleri riistä suoritusvuoroa ohjauksia tekevältä säikeeltä. Jos ei, niin ainoa keino on ilmeisesti pyrkiä minimoimaan vahingot nostamalla säikeen prioriteetti maksimiin ennen ohjausta ja pudottamalla se takaisin normaaliksi kun ohjaukset on asetettu halutuiksi.
Vastaukset 1
Vanhimmat
En tiiä mitä olet tekemässä ja miten aikakriittistä juttua, mutta ota toiminnoille käyttöön vaikka nelibittinen puskuri, johon sarjaportista lähetät toimintokomennon. Kaksi identtistä kahden bitin lähetystä ja jos tulevat oikein puskuriin niin toiminto suoritetaan.
Tuota toista kohtaa en tajua, eli mitä varten pitää sarjaporttiin saada kaksi ohjauskomentoa yhtä aikaa? Nopeuttako siinä tavoitellaan?