Side 1 af 1

PLC telegram styring af Loco og sporskifte

: 09 maj 2023, 14:30
af HJ_Pro

Hej
Her lidt om teknikken i mit begynder anlæg.
Jeg benytter en PLC til styring af mit Märklin H0 3 C skinne anlæg og mfx, jeg interesserer mig mest for det tekniske.

Min HW består af en PLC med et PLC RS232 modul og en bidirektional dongle converter
RS323<-> CAN2B (LAWICEL.SE www.can232.com pris ca. 900-kr) samt en Märklin Gleisbox.
Desuden har jeg en MS2 som er rar at have, men ikke behøves for at udføre nedenstående.
Der findes mange forskellige CAN busser, de simpleste er CAN A og CAN2B, Märklin benytter CAN2B .
Fra udgangen af PLC RS232 modulet sender PLC programmet telerammer med ASCII karakterer til RS232 siden af donglen og fra CAN siden af donglen, som er forbundet til den ene indgang af Gleisboxen pin CAN high og CAN Low, sendes CAN telegrammer. Det er muligt at forbinde MS2 til den anden indgang, eller et oscilloskop. Der er mulighed for på MS2 at se til hvilket Loco der er sendt f.eks. start ordre og hastigheds ordre til. Hvis der sendes hastighedsværdien 0 svarer det til Stop Loco.
Med disse telegrammer er det muligt at sende drift ordre til Loco og sporskifte:

  • Stoppe/starte anlægget (svarende til Stop på MS2)
  • Start/ stoppe valgte Loco
  • sende hastigheds ordre til valgte Loco
  • Sende retnings ordre til valgte Loco
    -sende Loco Funktioner (tænd/sluk lys, start/stop Lyd m.v.)
  • sende skifteordre til sporskifte
    Jeg har på min PC foruden USB udgange også en RS232 udgang. For testformål kan PC RS232 udgangen forbindes direkte til donglens RS232 side. (Der findes convertere dongler der conveterer fra USB til RS232)
    Der findes et program Terminal.exe som er freeware, med dette program har jeg sendt ASCII karakterer ud på PC’ens RS232 udgang, så jeg kunne foretage test uden PLC og PLC program.
    Der skal indtastes ca. 20 ASCII karakterer for hver at teste ovennævnte drift funktioner.

Jeg har brugt en Märklin manual: Kommunikationsprotokoll Graphical User Interface Prozessor (GUI)
(søg på CAN CS2) Manualen beskriver indholdet i de forskellige telegrammer der typisk er på 20 karakterer.
For at realisere ovenstående skal PLC’en og PLC programmet sende tekststrenge ud på typisk 20 karakterer for hvert telegram. Til f.eks en start og hastigheds ordre til forskellige Loco har jeg kun en program blok med telegrammet, hvor jeg skifter indholdet i 2 byte der indeholder Loco adr.
Lige før stationerne har jeg Reed Switche monteret under skinnen som giver et on signal til PLC'en
når loko med en magnet monteret kører over skinnen. On signalet trigger et hastighedstelegram med en lavere hastighed, Det samme har jeg gjort en gang til lige før stop ordren sendes. (hastighedstelegram med hastighedsværdien 0. (jeg har glemt alt om bremsemoduler)
Mit layout består af en enkeltsporet oval med 2 stationer med hver 3 spor og et trinbræt uden sidespor.
Jeg har fremstillet en køreplan med 3 Loco, alle 3 Loco starter på skift fra Station 1 fra hvert sit spor og mødes alle på station 2 på hvert sit spor. Her returnerer loko 3 til station1 spor 3, Loco 1 fløjter og kører videre over trinbrættet til station 1 spor 1. Loco 2 kører til trinbrættet og stopper, fortsætter og køere til station 1 sidespor 2.
Jeg har en dynamisk grafik der viser sporerene og sporbelægninger og med farve skift for skiftesporenes stilling. Desuden er der Button for manual kørsel for hvert tog med Frem Bak Hastighed 25% 50% og kryb hastighed.

Nedenfor er vist noget af hastighedsordren til Loco fra manualen.

3.4 Befehl: Lok Geschwindigkeit
Kennung:
Lok Geschwindigkeit (0x04, in CAN-ID: 0x08)

Lok mit LOC-ID wird mit Geschwindigkeit angesteuert. Geschwindigkeit im Bereich von 0 bis 1024 (10
Bit). Für alle Protokolle wird die Geschwindigkeit auf die reale mögliche Fahrstufe umgerechnet.
Fahrstufe 0 ist Lok - Haltebefehl mit eingestellter Anfahr- und Bremsverzögerung (Nicht Nothalt).

Beispiel:
00084711 6 00 00 08 03 03 20 Lok Geschwindigkeit SX1 Adr 3, V=0x0320=800 von 1024
00084711 6 00 00 08 03 00 A0 Lok Geschwindigkeit SX1 Adr 3, V=0x00A0=10 von 1024
00084711 6 00 00 40 01 03 20 Lok Geschwindigkeit mfx Adr 1, V=0x0320=800 von 1024
00084711 6 00 00 C0 03 01 20 Lok Geschwindigkeit DCC Adr 3
00084711 6 00 00 C0 03 00 A0 Lok Geschwindigkeit DCC Adr 3

Hastiheds telegrammet:
Hastighedværdi 0 svarer til Stop. Hastighedsværdi større end 0 betyder start og kør med hastigheden som angivet.

De 08, 40 og C0 angiver valgt protocol.
4711 angiver bl.a. Märklin hardware id.

Med venlig hilsen
HJ_Pro

-


Re: PLC telegram styring af Loco og sporskifte

: 09 maj 2023, 20:10
af Søren

Det lyder meget spændende!

Jeg tolker dit setup som at du er afhængig af at systemet ved hvilket tog der kommer hvor.

Altså at et vilkårligt lokomotiv med en magnet kan forstyrre driften? Eller er der noget jeg ikke ser?


Re: PLC telegram styring af Loco og sporskifte

: 09 maj 2023, 22:58
af moppe

Har i mange år brugt hyperterminal, men til mere komplicerede opgaver bruger jeg YAT.

Er feedback bare monteret direkte i PLC?

Klaus


Re: PLC telegram styring af Loco og sporskifte

: 10 maj 2023, 21:39
af HJ_Pro

Hej Søren
Hvis man manualt kører med et tog på den planlagte køreplansstrækning vil det ikke umiddlbart forstyrre køreplans afviklingen, men det vil forstyrre hvis det sker umiddelbart foran det køreplans tog fordi det vil påvirke den (de) følere som bl.a skal stoppe køreplanstoget.
Køreplans afviklinger har jeg lavet som Sekvens styring (trinstyring), dvs man har det der kaldes Udgangstrin og Overgangsbetingelser. For at gå fra et trin til det næste skal overgangsbetingelserne være opfyldt. Ting der skal ske i en bestemt fastlagt rækkefølge kan med fordel styres af en sekvensstyring,
Jeg har et starttrin (inittrin) for at gå til næstetrin er der sat nogle betingelser op feks at følerne skal
melde at alle 3 tog står på Station1, hvis det er opfyldt gås videre til trin 2. Udganden på trin 2 stiller f.eks sporskifterne, sætter lyd på Loco osv. Næste overgangsbetinkelse kunne være at sporskifterne melder rigtig stilling og det næste tilhørende Udgangstrin kunne starte Loco 3.

Jeg kunne godt have sat ind som betingelse at sporbesatmelderne for hel togstrækningen fra Station 1 til Station 2 skulle skulle være fri.
Jeg har ikke tilbagemelding for eksakt hvilket tog der står på sporbesatmelderen, kun at der står et tog.
Manual kørsel sker ikke med en sekvensstyring men med en almindekig logik styring.

Med venlig hilsen
HJ_Pro


Re: PLC telegram styring af Loco og sporskifte

: 10 maj 2023, 22:10
af HJ_Pro

Hej Klaus
Ja, alle mine tilbagemeldinger on/off går direkte til indgangene på PLC'en,

Senere vil jeg selvfølgelig også bruge on off udgangene fra PLC til bygningsbelysning, gadebelysning mv.
men indtil nu forgår alle udgange via telegramme til banen via Gleisboxen.
Jeg har lagt en Loco lyddekoder ind i stationsbygningen, således at jeg kan lave meddelser der kommer fra stationsbygningen. Jeg har så lagt en indtalt lydfil i decoderen som siger at toget kører til Kalumborg. De fysiske udgange fra decoderen i stationsbygningen bruger jeg til indebelysning i stationsbygningen.
Jeg styrer det så vha Loco Funktioner.

Med venlig hilsen
HJ_Pro


Re: PLC telegram styring af Loco og sporskifte

: 10 maj 2023, 22:21
af moppe

Det er ... lidt spændende.....

Jeg er selv en smule inde i PLC og har programmeret alt fra Omron, og Mitsubishi til Siemens S7-1200.
Loftbelysningen over det tyske anlæg på Modelbanen i Hadsten er styret af S7-1200....

Klaus


Re: PLC telegram styring af Loco og sporskifte

: 11 maj 2023, 23:20
af HJ_Pro

Hej Klaus
Tak for info.
Jeg tror ikke der er noget i vejen for at bruge en 1200PLC til samme styring som min.
Jeg vil evt. teste det på et tidspunkt.
1200 CPU'en kan udvides med kommunationsmoduler ved siden af CPU ligesom med I/O moduler,
men det er også muligt at sætte et RS232 modul direkte på CPU'en som et "Signal board", som "klipses" direkte på CPU'en. (er billiere).
Dog understøtter 1200 CPU'en ikke det grafiske sprog S7Graph som benyttes til sekvensstyringer, som så skal udføres i LAD/FBD eller i tekst sproget SCL, et sprog der minder om pascal.
PS: har forsøgt at indsætte screndump billeder med copy/paste her direkte i teksten, men det er ikke lykkeses for mig.

MVH HJ_Pro