TwinCat und C# Taster

J_Kapkan

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen!

Ich bin neu hier und bin auch ein Anfänger.


Ich habe eine vielleicht zu blöde frage , aber ich versuche grade ein Visualisierung mit C# zu Programmieren. Nun ich weis nicht wie ich die Variable in TwinCat einfach nur schreibe und sofort zurücksetze, also Funktion eines Tasters! Halt einfach einen Impuls an eine bestimmte Variable gebe




Danke

Mit freundlichen Grußen
Jürgen
 
Weiß jmd was passiert wenn man über ADS zwei Schreibbefehle für die gleiche Variable hintereinander schickt? Ich wollte das schon ewig mal ausprobieren, habs aber irgendwie immer wieder verpennt....

Also ich regel das mit den Buttons in meinen C# Visus immer so, das sie die Variablen sowohl lesen als auch schreiben. Das hat auch den Vorteil das auch Signaländerungen in der Visu abgebildet werden können, die vom SPS Programm ausgehen. Ich habe mir eine eigene Usercontrol mit einem Button erstellt, die ich entweder als Schalter oder Taster einsetzen kann.
Als Taster gebe ich der Control einen Standardzustand vor, z.B. FALSE. Wenn jetzt der Button betätigt wird sendet er ein TRUE an die Variable in der SPS. Beim nächsten auslesen der SPS Variable prüft die Control ob sie den Standardzustand hat. Wenn das nicht der Fall ist, sendet er einen Schreibbefehl mit und setzt die Variable zurück auf Standard zurück.

Alternativ kannst du das auch im SPS-Programm regeln. Da kannst du ja auch prüfen ob die Variable den Default-Wert hat und wenn nicht diesen dann zuweisen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Keine Klasse für?

Ok Danke erstmal werde mal versuchen schade das es da keine klasse für gibt, ich meine bei der Visu in TwinCat kann man den Button ja auch als Taster einstellen., und meine eingangs variablen die später das Signal von den Taster bekommen sind doch jetzt auf Standard false und wenn die ein True bekommen von c# da bleiben die auf true
 
Warum sollte es da eine Klasse für geben? Die ADS Bibliothek von Beckhoff liefert dir die Kommunikation, die Button Control in C# das Click-Event. Der Rest liegt an dir. Wenn du es einfacher haben willst, musst du eine HMI Software kaufen. Da sind dann schon Taster enthalten.
 
Ok Danke euch! Bekomme ich irgendwie hin.
Dann habe ich aber noch ne frage wie kriege ich es hin in TwinCat von eine Dauersignal als z. B Schalter einen einzigen Impuls raus? In TwinCat gib es zwar Baustein TP aber der gibt immer wieder Impulse raus ich brauch aber einen einzigen
 
Hi Leute

Also das mit TRUE un FALSE geht auch so!


private void Button_Click_1(object sender, RoutedEventArgs e)
{
try
{
adsClient.WriteAny(WZ_Licht1, Boolean.Parse("TRUE"));
adsClient.WriteAny(WZ_Licht1, Boolean.Parse("FALSE"));

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
 
Hi Ich bins Wierder

Ich habe jetzt versuch mit BC9100 zu verbinden das Programm ist in C# geschrieben. Auf lokalen Run time funktionier es wuderbar aber wenn ich versuche mit BC9100 zu verbinden bekomme ich immer die Fehler Meldung "ads-error 0x701 service is not supported by server"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So weit mir das in Erinnerung ist, unterstützen die Busklemmencontroller (BC und BX) keinen Symbolischen zugriff über ADS. D.h. du kannst keine Handles mit dem Variablennamen holen.
Was funktioniert ist der direkte Zugriff auf den Speicher. Dazu musst du die Variablen die mittels ADS gelesen/geschrieben werden sollen als Merker mit fester Adresse anlegen.
Im C# Programm kannst du dann z.B. mit ReadAny / WriteAny über IndexGroup und IndexOffset die Merker lesen oder schreiben.
Die IndexGroup für den Merkerbereich ist 4020h. Über den IndexOffset kannst du dann Byteweise navigieren.
 
Hi Danke das du Antwortest sehr nett!

Ich habe es grade ausprobiert und es funktioniert, nur mir ist aufgefallen das ich die Input Variablen nur lesen kann aber nicht schreiben. Das heißt für mich das ich alles nur mit Merker machen müsste ist das richtig?


Danke nochmal für die Antwort du hast mir sehr geholfen.
 
Input bzw. Output Variablen können immer nur in eine Richtung benutzt werden.
Aber laut Infosys kann man auch bidirektionale Variablen im Systemmanger erzeugen. Siehe dazu ->Link<- .
Habe ich aber noch nie getestet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK
Schade eigentlich
Also habe ich das richtig verstanden, ich kann die Output und Input nur lesen (In einer Richtung), oder meinst du das ich es entweder schreiben oder lesen kann,
aber nicht beides gleichzeitig?. Das mit den System Manager geht glaube ich nicht mit BC9100! das läuft nur auf den Rechner, werde aber am WE ausprobieren.


Ereignisgesteuertes Lesen
Ach ja noch was weist du ob http://infosys.beckhoff.com/index.php?content=../content/1031/tcsample_net/html/twincat.ads.sample03.htm&id=12982 das auch mit BC9100 geht??

Danke dir
 
Zuletzt bearbeitet:
Kann mir vielleicht nur einer sagen ob es mit den BC9100 überhaupt Notification funktioniert.

Danke

Mit freundlichen Grußen
Jürgen
 
Zurück
Oben