Erste einfache Probleme bei einem Schachprogramm auf der SPS

Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich schreibe an einem Schachprogramm für eine Wago SPS. Das Programm soll in einer Webvisualisierung laufen. Ob es sin macht oder warum ich tue, was ich tue, weiß ich nicht.

Nun möchte ich aber erstmal mein Schachbrett in der Mitte meines Monitors bekommen. Ich verwende die CoDeSys 3.5 und habe alle Einstellungen ausprobiert. Außer bei einer Visualisierung von (1920x1080) und einem Monitor im Vollbildmodus mit gleicher Auflösung habe ich es geschafft es in die Mitte zu bekommen.

Als nächstes würde ich gern sehen, wenn eine Spielfläche gedrückt wird. Hier wäre es schön, wenn jede der 64 Flächen mir eine Zahl von 1 bis 64 sendet, z.B. über eine Integer Variablen. Oder eine Funktion erfährt das irgendwo eine Spielfläche gedrückt wurde.

Vielen Dank für alle Antworten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Als nächstes würde ich gern sehen, wenn eine Spielfläche gedrückt wird. Hier wäre es schön, wenn jede der 64 Flächen mir eine Zahl von 1 bis 64 sendet, z.B. über eine Integer Variablen. Oder eine Funktion erfährt das irgendwo eine Spielfläche gedrückt wurde.
Na ja, die Frage ist woraus Du dein Schachbrett aufgebaut hast. Besteht es zum Beispiel aus einzelnen Rechtecken kannst Du für jedes Rechteck über die Eigenschaften bei der Eingabekonfiguration festlegen, was wann passieren soll, z.B., dass eine Variable beim Anklicken auf einen bestimmten Wert gesetzt wird.
 
Hi Frankenstein,
die Visualisierungsseite ist hierbei eigentlich ziemlich schnell und einfach gestaltet, falls dies deine Frage ist.
Bevor du beginnst, überlege dir eine geeignete Struktur für deine Visualisierungsschnittstelle.

Als kleiner Tipp um Arbeit und Pflegeaufwand zu sparen empfiehlt es sich hierbei mit Frames zu arbeiten.
Für jedes Grundelement erstellst du dir ein Frame mit den jeweiligen Eigenschaften z.B. ein Quadrat für die Schachbrettfelder (+den jeweiligen Eigenschaften die du für dein Spielverlauf benötigst).
In deiner Hauptvisualisierung kannst du dann die Elemente z.B. das oben erstellte Quadrat per Frame einfügen, diesem ein Array zuweisen und mit Rechtsklick "Visualisierungselement vervielfachen" auf die Anzahl der benötigten Felder vervielfachen lassen. (siehe CODESYS - Onlinehilfe).
So baust du dir dein Spielfeld auf, der Vorteil hierbei ist, dass das zugewiesene Array gleich den Elementen zugewiesen wird und du nicht X-mal das gleiche Element erstellen musst (spart Arbeit und Zeit ;-) ).
Danach beginnt die Logik im eigentlichen Programm...
 
Hallo oliver.tonn

Ja ich habe mir auch überlegt, aber dann müsste ich eine Funktion schreiben die 64 Eingänge hat, um alle Spielfelder zu überwachen und zu unterscheiden. Mir wäre es lieber ich würde mit einer Variablen arbeiten, in der dann steht welches Feld gedrückt wurde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo oliver.tonn

Ja ich habe mir auch überlegt, aber dann müsste ich eine Funktion schreiben die 64 Eingänge hat, um alle Spielfelder zu überwachen und zu unterscheiden. Mir wäre es lieber ich würde mit einer Variablen arbeiten, in der dann steht welches Feld gedrückt wurde.
Hääääh, ich komm da nicht mit.
Was hindert Dich denn daran über die Eingabekonfiguration eine Variable auf einen bestimmten Wert zu setzen? Die Variable könnte zum Beispiel uiActiveField heißen und jedes Feld setzt diese dann auf einen anderen Wert, Feld A1 auf 1, Feld B1 auf 9, usw.
 
Ich muss gestehen das ich dachte, dass es über "Variable schreiben" geht, da muss man den Wert aber immer eingeben, was ja für Dich nicht in Frage komm, aber es geht, nicht ganz so offensichtlich, doch.
Eine Variable im SPS-Programm anlegen, in der Visu ein Rechteck hinzufügen, bei der Eingabekonfiguration z.B. bei der Aktion "OnMouseClick" auf "Konfigurieren..." klicken, im Fenster "ST-Code ausführen" auswählen und mit ">" hinzufügen, dann sinnvollen Code hinzufügen. Wenn die Variable in MAIN steht, z.B. so:
1703243629005.png
Bei WAGO heißt das Standard Programm allerdings Main_PRG meine ich.
 
Zurück
Oben