soft automatizare PC

dac

Well-Known Member
Trenulist
15 Septembrie 2007
1.455
367
Bucuresti
LOCATION
Bucuresti
Intrucat interfata de conectare a centralei Roco la PC este gata (GenLi-S88 + 2 module S88 a 8 intrari fiecare)

dati-mi un sfat in privinta softului pe care sa il folosesc.

A mai incercat cineva automatizarea dioramei ?
Caut un soft bun si preferabil free care sa stie sa citesca senzorii S88 si sa trimita comenzi prin XpressNet.
TrainController pare a fi bun, dar parca n-as da 100 eur pe varianta Bronze (cu atat mai putin 300 sau 450 pe Silver sau Gold); poate daca ne "cuplam" mai multi la o licenta... :grin:
 
Mda, cu Rocrail ma "distrez" si eu acum: cu el am testat functionalitatea interfetei si intr-adevar merge cu GenLi si centrala Roco si stie sa citeasca cele 16 intrari S88.

Problema e ca imi pare greoi de invatat si excesiv de complex si parca gandit pentru diorame mari.

Spre exemplu, nu ma dumiresc cum sa il fac sa functioneze astfel: trenul pleaca din gara, da N ture de diorama si se intoarce de unde a plecat. Vrea musai puncte de plecare si destinatie diferite...
 
Eu am incercat cu Traincontroller si mi-a functionat foarte bine. Din pacate nu am decat o varianta demo a acestui program, motiv pentru care dupa o anumita perioada de timp acesta se intrerupe.
Am utilizat: Nanox-s88, GenLi, S88, decodoare pentru accesorii, decodoare vagoane si decodoare locomotive. Pe toate acestea le-am putut actiona fara probleme.
Din cauza faptului ca nu am o diorama, modulul S88 l-am probat doar pe 3 segmente de linie si pot sa spun ca pe ecranul laptopului imi arata segmentul de linie este ocupat.
In concluzie, daca este posibil, sunt dispus la un ''parteneriat'' pentru licenta la acest program.
 
Interesat de ''parteneriat'' dac㒠nu v㒠geranjează’. Evident prefer Gold. La mai mulţi... cred c㒠merită’.
Am central㒠şi Rocomotion luate sh, neprobate, nu am manual în română’. M㒠poate ajuta cineva pt Rocomotion?
 
Eu din cate stiu am gasit varianta crack la rocomotion sau trains controller. O sa o caut prin calculator si daca o gasesc o dau cui vrea. :|

PS: aia cu iphone-ul m-a dat gata... :-D
 
dac
trage o privire la linkul asta de unde poti sa faci si download la software:

http://jmri.sourceforge.net/help/en/html/apps/DecoderPro/index.shtml

Traian
 
OK. Multumesc pt. sugestii.
Vad ca nu exista prea multa experienta in domeniul automatizarii (digitale) a dioramei, deci ma asteapta o munca de pionierat...

Ca sa nu ma zapacesc, am sa abordez problema pas cu pas. Deocamdata mai "sap" la Rocrail, sa vad de ce e in stare: prea il lauda lumea !

Va tin la curent !
 
Primii pasi:

In mod manual o tura de diorama e ceva banal - cateva butoane si locomotiva executa frumos comenzile primite; altfel sta treaba insa, cand vine vorba de programarea unui soft care sa faca exact acelasi lucru...

Iata un scurt video cu primele ture de diorama sub comanda Rocrail:
http://www.youtube.com/watch?v=MxFRGRfO-Yg
o gramada de pasi programati: semnal verde, timpi asteptare, lumini pornite, accelerare din linia laterala in traseul principal, decelerare la 50% la sfarsitul primei ture, frana usoara pe pod si pornire inapoi catre linia laterala, inca o incetinire la 30%, oprire in fata semaforului, lumini stinse, semnal rosu. Toate cu doar 3 senzori implementati pt. moment.

Scobitoarea indica punctul de plecare/sosire.
 
presupun ca diorama e digitala, ce ai folosit pentru interfatarea cu pc-ul ?
ai folosit senzori de prezenta ? presupun ca sunt hal sau reed, ca altfel cu detectia curentului pe blocul ocupat e un pic mai complicata treaba
apropos, vezi ca ai un mic bug in semnalizare: la sfarsit cand se intoarce locomotiva in punctul initial semaforul arata ceva cu verde, la fel ca la pornire; abia dupa aia se transforma in rosu; dar cum probabil e prima dubla si mai e loc destul de programare, da-i inainte, ca bine faci; poate daca avem ceva puncte comune mai impartim niste cunostinte, cert este ca eu cam vreau sa reinventez roata, adica sa iau totul de la zero; nu stiu cat de buna e ideea, dar se poate
 
Interfata este GenLi-S88 (vezi primul post) iar senzorii sunt BOD-uri.

La final semaforul trece in rosu pt. ca macazul de intrare pe circuit isi schimba pozitia.
 
Pai tot nu e corect, daca vrem sa fie ca in realitate ar trebui ca atunci cand locomotiva intra in statie semnalul sa fie rosu, ca doar linia e ocupata chiar cu locomotiva care vine, asta voiam sa zic.
Bine, in cazul unei gari logica ajunge sa devina cam rau de complicata. As fi curios daca exista ceva matematica sau informatica legata de semnalizare, adica grafuri & shit, poate chestiile pot fi facute foarte simplu, muuuuuuuult mai simplu decat pare la prima vedere. Nu ma refer la implementarea fizica sau logica a fiecarui caz in parte, ci strict la cultura generala in ceea ce priveste logica de semnalizare.
 
eu zic ca pentru orice gara exista o solutie matematica, iar domeniu grafurilor este cred cel mai protrivit pentru asa ceva...
ca idee se poate pentru fiecare senzor de pe diorama, sa se acorde o pozitie in spatiu, xyz, pentru fiecare legatura intre 2 senzori, o distanta, o limitare de sens daca este cazul, alte particularitati, panta mare, viteza redusa...
intre 2 puncte fizice cu o distanta cunoscuta se poate realiza multe alte puncte virtuale, spre exemplu o locomotiva merge de la P1 la P2, cu o viteza v, acceleratie a, se stie exact in cat timp face acea locomotiva, se poate executa media a mai multe incercari, si chiar o sectiune in program care aduna tot timpu aceste date...

suna interesant :D

cel mai important din punctul meu de vedere, ceea ce nu am obs. sa ia nimeni in calcul, windowsul este un sistem de operare bazat pe evenimente, si nu in timp real.... adica eu dau click pe butonul de open ... da programul se deschide dupa 0.5 sec, sau altadata cand memoria e mai plina peste 5 sec...
acesti timpi pot fi cruciali si trebuie tinut cont de ei... cred ca solutia este sa se genereze in program o simulare in avans cu x pasi, sau timp... si acolo unde sunt situatii critite sa fie transferate spre un modul intermediar, care comanda in timp real diorama...
 
Pai, cam toate softurile de automatizare lucreaza cu grafuri. Termenii sunt insa mai naturali: varfurile grafului sunt reprezentate de blocuri, iar muchiile sau arcele grafului sunt rutele ce unesc blocurile intre ele. Drumurile unui graf pot fi considerate a fi o succesiune de rute (adica tocmai o cursa plecare-destinatie).

Blocurile sunt segmente de sina ce gazduiesc un tren intreg la un moment dat. Sunt dotate cu senzori de ocupatie (Rocrail recomanda un optim de 3 senzori / bloc, dar sunt situatii si cu 5 sau mai multi). Eu am sa folosesc doar cate un senzor / bloc, intrucat testele facute demonstreaza ca este suficient pt. gradul de complexitate a dioramei. (iar Rocrail dispune intr-adevar de functii puternice care compenseaza nr. redus de senzori)

Senzorii pot fi folositi si pe traseu (intre blocuri) in zone "nevralgice" (incrucisari, bretele, bariere).

Rutele definesc legaturile dintre blocurile adiacente precum si setarile de macazuri si semnale necesare. Contin restrictii de viteza sau tip de tren si pot declansa o gramada de actiuni conditionate (de ex. goarna de locomotiva la apropierea de o bariera)

Rocrail poate rula in 2 moduri:
- full auto - adecvat dioramelor mari si f. mari cu multiple gari, triaje marfa, halte; trenurile se misca aleator intre gari, dar respecta o multime de conditionari, prioritizari (de ex. un intercity va avea prioritate fata de o cursa locala precum si un regim de viteza sporit, dar nu va opri in statiile de tip halta si nici nu are acces pe rutele de marfa)
- half auto - in care trenurile respecta un orar prestabilit. (si care necesita o minutioasa si atenta programare prealabila pt. a evita posibilele incidente nedorite).
Exista si posibilitatea mixarii cu control manual al unor garnituri, dar siguranta este mai scazuta in cazul in care "mecanicul" nu respecta semnalele... :grin:

Rocrail este construit in arhitectura client - server, iar serverul poate fi inregistrat ca "service" sub Windows; totusi pt. o buna functionare este recomandat un PC dedicat.
 
mai se poate folosi un mod mai natural, asa cum este folosit in realitate
nu ai senzori punctiformi, ci masori curentul pe fiecare bloc in parte (asta inseamna automat izolarea fiecarui bloc, macar pe o sina); ai circuitul inchis pe blocul respectiv, automat blocul este ocupat (exact cum se intampla si in realitate)
dar aici apare o mica complicatie, si anume oprirea la semnal, caz in care ar mai trebui inca un senzor punctiform (reed, hall) ca sa stii cand sa-i dai trenului comanda de oprire (sau in analog inca un bloc izolat, pentru a putea taia curentul de pe el; sau daca vrei sa faci chiar ca in realitate, atunci se mai adauga inca un senzor, pentru franare: trece de primul senzor si nu are liber pe urmatorul bloc, incepe sa franeze, ajunge la al doilea senzor, primeste comanda de oprire fix in fata semnalului/semaforului
legat de grafuri, ma gandeam la o reprezentare mai reala: varfurile sunt pozitii fixe pe diorama, iar muchiile sunt blocurile (ocupate sau nu); ca sa ajung din a in b trebuie ca toate blocurile respective sa fie libere; nu stiu cat de corect este, pentru ca fiecare pozitie (varf) se afla totusi pe un bloc (adica daca stau la semafor automat blocul in care stau este si ocupat - cu alte cuvinte varful este si in muchie)
 
apropos, windowsul e cam exclus pentru ceva serios, dar mai toate programele sunt pe windows (ca asta foloseste lumea); insa clar nu este real time, si de multe ori te poti trezi cu mari probleme tocmai pentru ca rasneste el in nestire chiar si cand teoretic nu se intampla nimic
mai curand as recomanda un linux (desi nici el nu este realtime), dar totusi lasat liber (fara programe aiurea ruland pe el), se apropie foarte bine de ce avem noi nevoie
 
'Opa ca nu mai inteleg... Din cate stiu eu (va rog sa ma corectati daca gresesc) centralele comerciale cu conectare la PC nu au nevoie de "real time". Encodarea DCC a comenzilor o face PIC-ul nu PC-ul.

Eu folosesc un ubuntu server in care am un proces de generare a semnalului DCC care ruelaza in "real mode"; dar asta pentru ca eu generez semnal DCC din PC iar la celalalt capat e doar un booster. Pana acum face fata iar fluctuatiile de timpi sunt in limitele acceptate.

M-am mai lovit de JMRI dar nu am stat sa il studiez. Cine stie, poate ajuta la ceva...

Oricum, dac, daca tot esti la capitolul asta am putea profita de tine :D. Niste review-uri succinte softuri-urile incercate pot fi de folos pentru cei care vor sa-ti paseasca pe urme.
 
problema e urmatoarea: un bloc se ocupa (pe bune sau din greseala) la cateva secunde inainte de a opri un tren care vine in sens invers; daca e realtime eu pot sa-i trimit imediat 'opreste' si se opreste (nu e nici asta infailibil si probabil mai trebuie cautate metode de protectie in plus); dar daca pe langa asta mai vine si delay-ul de cateva secunde intre releu si comanda efectiva (ca deh, trebuie sa mai proceseze si windozu ceva pe acolo), atunci catastrofa feroviara e iminenta (noroc ca e la scara 1:87)
 
Traficul intre interfata GenLi si PC este destul de intens si fara sa faca mare lucru: inafara comenzilor trimise catre centrala, PC-ul primeste si actualizari ale statusului de la aceasta, precum si citirea senzorilor S88. Accentul pica pe viteza de transfer a informatiilor precum si pe procesarea lor rapida avand in vedere ca la H0 o secunda poate sa insemne 40 cm parcursi.

Rocrail se prezinta si in versiune Linux, tocmai pt. viteza de reactie crescuta. Dar functioneaza f. bine si sub windows cu conditia evitarii rularii si a altor programe concomitent (mai ales daca sunt "CPU / memory hungry").
Probleme pot sa apara numai in situatii in care au loc multe evenimente simultan: locomotive care intra in blocuri diferite in acelasi timp declanseaza o cascada de comenzi de miscare catre ele, setari macazuri si semnale, actiuni conexe de genul sunete, aprindere/stingere lumini, fum, etc.
Toate acestea pot supraincarca portul serial sau pot fi pur si simplu ignorate de centrala daca se depaseste buferul intern. Rezultatul = dezastru.
Scenariul descris apare insa numai in cazul unor diorame mari cu jdemii de blocuri si peste 20 trenuri simultan.

Am studiat putin cateva softuri pt a vedea care este mai potrivit pt. necesitatile mele: JMRI, Rocrail, TrainController, Win-Digipet, SSI MRCS. In cele din urma, m-am orientat catre Rocrail, care este de departe cel mai avansat, avand cele mai flexibile functii, design "user-friendly" si a rezolvat relativ usor problemele puse de mine. (Si mai e si free 8) )

Absenta unui manual download-abil il face insa destul de greu de inteles la inceput; pe de alta parte ar fi si inutil, intrucat versiuni noi apar la cateva zile si pot contine noi functii sau simplificari ale celor vechi. Pare a necesita un efort ceva mai mare de programare a acestor functii fata de alte softuri, dar flexibilitatea lor il face extrem de puternic si adaptabil de la diorame mici la mari.

Cand un tren porneste in cursa intre blocurile A si B (plecare si destinatie), se face si o rezervare a blocurilor de pe parcurs ce urmeaza a fi strabatute. Orice activare a unui senzor de parcurs inainte ca softul sa se astepte genereaza o exceptie "ghost train" si este imediat taiat semnalul DCC. In plus, o tentativa de rezervare a unui bloc, deja rezervat de alt tren determina generarea unei comenzi de stop pt. cel de-al 2-lea. Aceste mecanisme stau la baza sigurantei traficului mai ales in regim full auto.