Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Planlegging

Visualisering

I starten ble det viktig å legge inn de forskjellige variablene som skulle kommuniseres over de forskjellige feltbussene, slik at det ble enklere for gruppemedlemmene å jobbe hver for seg.

Vi startet med en rask skisse av hvordan selve kommunikasjonen skulle funke mellom enhetene:


Image Added

DEN MÅ LEGGES INN HER

Videre ble de forskjellige variablene som trengte for kommunikasjonen laget:



Deretter var det en del funksjoner som trengter


.


.


.



Til slutt ble sekvensen laget for robotbevegelsen. Det ble igjen brukt mye tid for å få kommunikasjonen som planlagt, men etter mye prøving og feiling ble det satt opp riktig i både TM Flow og CODESYS, ref MODBUS side.


Sekvensen for selve spillingen endte opp med å se slik ut:


Det generelle oppsettet til hver kodeblokk i robotspillingen var veldig likt, bortsett fra forandinger i hvordan koordinatene ble satt. For å kunne ta motspilleren sine brikker måtte en gameState for "capture" bli lagt til, som hopper tilbake til vanlig bevegelse når motstanderen kommer i kontakt med flere.



På bilde under viser tre forskjellige tabell:

Den første tabellen merket "FromPos" representere den startposisjoner til sjakkbrikkene på brettet. Denne tabellen viser hvor hver brikke er plassert før et trekk gjøres. Brikkene er plassert i standard startposisjoner for et sjakkspill. Både store og små bokstaver brukes for å skille mellom hvit og svart brikkene. De hvite brikkene representeres av store bokstaver, mens de svarte brikkene representeres av små bokstaver.

Den andre tabellen merket "ToPos" den nye posisjonen til sjakkbrikkene etter at et trekk er gjort. Denne tabellen viser hvordan brikkene vil være plassert på brettet etter at trekket er utført. 

Den siste tabellen merket "UpdatedPiecePos" representere den kombinerte og oppdaterte posisjonen til alle sjakkbrikkene etter å ha trekkene Fra "FromPos" til "ToPos". Den gir komplett oversikt over sjakkbrettet etter at trekkene er utført.

Tekstfeltene merket "WhitePiecePos" og "BlackPiecePos" viser fra og til posisjoner for hvite og svarte brikker.


Funksjon blokk

Målet med dette programmet er å lage et sjakkspill som kan flytte sjakkbrikkene fra posisjoner til posisjoner på sjakkbrettet samt oppdatere disse posisjonene når brikkene flyttes koden inneholder:

-FromPos: Denne koden setter opp startposisjonene til de hvite og svarte brikkene

-PosName og PosNumber: Denne koden definerer brettets koordinater med bokstaver (a-h) og tall (1-8) som tilsvarer kolonner og rader på sjakkbrettet.
-PiecePos: Denne koden er for å kombinere posisjonsnavn og tall for hver brikke på brettet.
-FromPos[WselectedX, WselectedY] og FromPos[bselectedX, bselectedY]: Denne koden
er for sjekker om det er en hvit og en svart brikke ved valgt startposisjon
-FromPos[WTargetX, WTargetY] og ToPos[bTargetX, bTargetY]: Denne koden flytter
stykke til endeposisjon.
-WhitePiecePos og BlackPiecePos: Denne koden er oppdatert med en kombinert streng som representerer bevegelsen fra startposisjon til sluttposisjon
-UpdatedPiecePos: Denne koden oppdaterer brettet til å vise brikkenes nye plassering etter
en brikke er flyttet.

Under viser til slutt ble det brukt en funksjonsblokk for å kunne flytte brikker fra posisjon til posisjon

.