Hoppa till huvudinnehåll

RSMP (Trafikledning)

RSMP, Road Side Message Protocol, är en öppen standard för att övervaka vägsidesutrustning. Den kommer ur ett nordiskt samarbete mellan väghållare, förvaltas av RSMP Nordic och används även utanför Norden, bland annat i andra europeiska länder. Eftersom den är öppen och leverantörsoberoende övervakas utrustning från vilken leverantör som helst som implementerar den på samma sätt.

Den är inte heller specifik för en sorts utrustning. Trafiksignalstyrapparater, variabla meddelandeskyltar, väderstationer, tunnel- och bomutrustning övervakas alla genom samma protokoll, var och en beskriven av sin egen SXL.

Yggio talar RSMP som ett övervakningssystem. Det som ansluts blir vanliga Yggio-enheter: de syns i vyer, går att filtrera på, driver regler och rapporter, och ligger på kartan bland allt annat i beståndet.

Vad Yggio avkodar idag. Implementationen täcker SXL för trafiksignalstyrapparater (1.0.15): signalgrupper, detektorlogiker, larm och aggregerad status. Andra typer av RSMP-utrustning använder samma anslutning och samma protokoll, men var och en behöver sin egen SXL-avkodning innan värdena kommer in namngivna i stället för råa. Fråga supporten om du har utrustning som inte är en trafiksignalstyrapparat.

Att sätta upp en anläggning är tre steg: skapa RSMP-connectorn, installera styrapparatkomponenten, och installera sedan detektorlogikerna och signalgrupperna. Connectorn har en egen sida; de två installationsstegen beskrivs nedan.

Vad en trafiksignalstyrapparat rapporterar​

En korsning är en anläggning, och en anläggning innehåller många delar. Två statusmeddelanden bär nästan allt:

  • S0001, signalgruppsstatus. Ett tecken per signalgrupp, som beskriver vad gruppen visar: grönt, rött, gult, rödgult, släckt, blinkande.
  • S0002, detektorlogikstatus. Ett tecken per detektorlogik, 1 när detektorn är belagd och 0 när den inte är det.

Båda kommer som en enda sträng som täcker hela arrayen, inte som separata värden. Ett verkligt S0001 från en korsning med tolv grupper ser ut så här:

"sCI": "S0001", "n": "signalgroupstatus", "s": "F5F35F5F1F5F"

och ett detektorlogikmeddelande från en anläggning med hundra detektorer så här, avkortat:

"sCI": "S0002", "n": "detectorlogicstatus", "s": "0100000001100011100000000000..."

Position 2 är en 1, alltså är detektorlogik 2 belagd. Allt annat i det utdraget är fritt.

Uppdelning: en position per enhet​

En sträng är inte till mycket nytta i en dashboard, så Yggio delar upp den. Varje komponent du installerar gör anspråk på en position, och Yggio skriver bara den positionens värde till den enheten.

En enhetslista som visar 100 detektorlogiker uppdelade, var och en med sitt eget värde och sin kvalitet

De fyra rollerna avgör hur en komponent läser den råa statusen:

RollRepresenterar
ControllerSjälva styrapparaten: aggregerad status, larm, anslutningstillstånd
Detector logicEn position i S0002
Signal groupEn position i S0001
GroupEn vald uppsättning positioner, samlade till en enhet

Eftersom varje position blir en enhet fungerar allt som fungerar på enheter även här. En vy filtrerad på signalGroup ger korsningens tillstånd med en blick:

En enhetsvy med sex signalgrupper, som visar utgångsfärg, grönt, gult och rött tillstånd samt kvalitet

En andra RSMP-enhetsvy

För att följa detektorlogiker medan de händer är widgeten Swimlane ett utmärkt val. Den ger varje detektor en egen bana och rullar dem tillsammans, så ett fordon som passerar flera detektorer i följd syns som ett mönster i stället för som separata siffror som ändras. En detektorlogik är antingen upptagen eller inte, vilket gör banorna lättlästa bredvid varandra. Det är en live-vy som inte sparar någon historik, så använd den för att titta på en korsning snarare än för att slå upp något i efterhand.

Du behöver SXL​

SXL, signal exchange list, är styrapparatens egen specifikation: vilken detektorlogik och vilken signalgrupp som ligger på vilken position, och vad var och en är till för. Det är ett RSMP-begrepp, inte ett Yggio-begrepp, och anläggningens väghållare eller styrapparatleverantör har den.

Utan SXL är positionerna gissningar. Det spelar större roll än det låter, eftersom en komponent som pekar på fel position inte fallerar: den rapporterar ett verkligt värde från fel detektor, och den gör det övertygande. Bekräfta minst två positioner mot SXL innan du litar på resten.

Skaffa den innan du påbörjar installationen nedan, inte efteråt.

Installera komponenter​

Ingenting skapas automatiskt. När connectorn finns installeras varje komponent du vill ha i Yggio som en enhet, från Ny enhet med enhetstypen RSMP. Samma formulär används för alla; det är rollen som gör den ena till en styrapparat och nästa till en detektorlogik.

Installera styrapparaten först, sedan detektorlogikerna och signalgrupperna.

Steget RSMP Component info i Installera enhet, med komponent-id, externt nod-id, connector, statuskoder, roll och detektorlogiknummer

FältBeskrivning
Component IDKomponentens identifierare i styrapparaten, i SXL-form, till exempel AA+BBCCC=DDDDL001. Den måste matcha styrapparaten exakt, och varje enhet behöver sin egen
External Node IDNodidentifieraren, till exempel X00001
RSMP ConnectorConnectorn för den här anläggningen
Status CodesVilka statusmeddelanden komponenten prenumererar på: S0001 - Signal group status, S0002 - Detector logic status, eller båda
RoleVad komponenten representerar, vilket avgör hur den råa statusen läses
Detector logic number / Signal group numberVilken position i statussträngen enheten läser, räknat från 1. Visas för de roller som behöver det

Enheterna är syskon snarare än en hierarki. En detektorlogik ligger inte under styrapparatenheten: var och en refererar direkt till connectorn och bär sitt eget komponent-id. Styrapparaten är helt enkelt den komponent vars roll är Controller.

Verifiering​

  1. Kontrollera att styrapparaten ansluter: styrapparatkomponentens anslutningstillstånd ska vara levande snarare än timeoutat.
  2. Installera en detektorlogik och vänta på nästa statusmeddelande.
  3. Bekräfta att dess värde stämmer med vad SXL säger att den positionen ska vara.
  4. Jämför en andra position innan du litar på resten, eftersom ett fel på ett steg i indexet ger rimliga värden i stället för ett felmeddelande.

När en komponent beter sig fel​

Den rapporterar ingenting. Kontrollera att prenumerationen på statuskoder matchar rollen: en detektorlogik behöver S0002, en signalgrupp behöver S0001. En komponent som prenumererar på ingendera får ingen status.

Den rapporterar fel sak. Nästan alltid indexet. Positionerna räknas från 1 och definieras av anläggningens SXL, inte av den ordning komponenterna installerades.

Dess värden upprepas. Det är styrapparaten, inte Yggio. Se upprepade värden.

Upprepade värden​

Styrapparaten skickar hela arrayen så snart något ändras, inklusive de värden som inte gjorde det. Om en detektor av hundra blir belagd skickas alla hundra positioner igen, och de nittionio oförändrade kommer in med samma värde som förut. En detektorlogik som ligger på 0 kan därför rapporteras som 0 många gånger om.

Det är normalt RSMP-beteende, inte ett fel, men det spelar roll för allt nedströms:

  • Yggio undertrycker upprepningarna. Varje komponents del jämförs mot det senast skrivna värdet för den, och en identisk upprepning skrivs inte igen. Enhetens historik speglar alltså faktiska förändringar snarare än meddelandetrafik.
  • Räkna inte meddelanden som händelser. En regel som utlöses på "rapporterad" i stället för på en förändring skulle utlösas vid varje upplänk för varje position. Utlös på att värdet ändras.
  • Tidsstämplarna är styrapparatens. I exempeldatan ovan kommer tio statusmeddelanden in på cirka tre och en halv minut, vilket är skåpet som rapporterar, inte detektorerna som ändrar sig så ofta.

Färskhet​

Signalgruppsstatus bär en kvalitetsflagga från styrapparaten, och Yggio visar den på enheten. I vyerna ovan står den som recent på levande data och old på inaktuell data.

Behandla den som en del av avläsningen. En signalgrupp som visar grönt med kvaliteten old berättar vad den senast visste, inte vad ljuset gör nu, och en operativ vy bör göra det synligt snarare än att dölja det bakom värdet.

Larm och aggregerad status​

Vid sidan av statusmeddelandena skickar en styrapparat:

  • Larm, vart och ett med en larmkod, ett tillstånd och en tidsstämpel, till exempel kod A0010 som går till inActive. De styrs till den komponent de hör till.
  • Aggregerad status, styrapparatens egen sammanfattning av sitt tillstånd.

Båda landar på styrapparatkomponenten, vilket är varför det är värt att installera en även när det är detektorerna och signalgrupperna du egentligen är ute efter.