Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 37

Thema: Beckhoff TwinCat ADS OCX und VB.net

  1. #11
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo

    ich muss mich normal bei dir melden weil ich mit dem Zeug überhaupt net zurecht komm. Evt. sollte ich erwähnen das ich kein Programmierer bin sondern nur ein paar einfache Oberflächen mit ein paar simplen Bedingungen und Berechnungen in VB6 gecodet hab. Dazu zählen zum Beispiel ein Programm zum Auswerten eines Tischtennis oder Schafkopfturniers (^^) und ein paar Oberflächen für Maschinen wie zum Beispiel eine Statusanzeige für Schwerlastzylinder und ähnliches. Dabei hab ich halt immer meine Variablen dimensioniert und dann halt a weng was zam rechnen lassen, teilen, wurzeln, differenzieren und so weiter und dann halt irgedwo anzeigen lassen.

    So meine Oberfläche und meine Maschinensteuerung funktionieren mittlerweile auch unter VB.Net oder 2005 und wie das jetzt heißt.

    Das einzige was ich noch brauche ist die Kommunikation mit TwinCat.

    Ich kann dir ja mal erklären was ich bisher gemacht hab.

    Also ich habe mit des neue OCX dings geholt und dann mit Verweis hinzufügen in mein Projekt eingebunden.

    Als nächstes hab ich im Code (ganz oben, also im allgemeinen Bereich)

    Imports TwinCAT.Ads

    reingeschrieben. Das scheint dafür da zu sein um dieses OCX dings irgendwie zu implementieren

    Als nächstes habe ich unter der Class des Forms

    Private tcClient As TcAdsClient

    eingefügt.

    Bis jetzt hab ich immer noch keine ahnung was diese Anweisung bedeuet aber scheint irgend eine Dimensionierung zu sein. Ich hab die nur reingeschrieben weil mir jemand gesagt hat ich solls reinschreiben....

    So nun müsste ich ja irgendwie den Port und die NetId angeben damit das ding kommunizieren kann.

    Unter Form Load steht bis jetzt

    tcClient = New TcAdsClient()

    was das nun wieder genau bedeutet..: keine Ahnung

    so aber nun müsste ich ja eine Var mit irgend etwas beschreiben

    Also mit Dim varTest as Integer mal ne Testvar erstellt und dann hab ich gelesen brauch ich

    varTest = tcClient.AddDeviceNotification(Gruppe,Offset,dataStream??,Länge,AdsTransMode.OnC hange,Cycle,Delay,userData as Object???)

    so das meiste is mir klar aber was ist ein dataStream oder was erwartet der da von mir und was is Userdata as Object. In VB6 kommt ja da der Name für die var rein die mit dem Wert beschrieben werden soll....


    Nun ja etz weißt du auf was für einen Stand ich bin und was mir fehlt. Ich hab mir schon mehrere Codes angeschaut werd aber aus dem Objekt zeug net schlau... Also mir war die Art von VB6 wesentlich lieber... das hat man noch verstanden ohne Informatik gelernt zu haben.

    MfG
    Andre Wagner

  2. #12
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Streams sind die Datenströme in .Net. Dabei ist es nicht wichtig, ob etwas aus einer Datei, dem Speicher oder einer SPS kommt oder geschrieben wird, so die Theorie. Die verschiedenen Streams sind verschieden mächtig.

    Du eröffnest einen Stream weil du Daten aus der SPS holen willst. Genauso gut kannst du einen Stream eröffnen, um eine Datei zu lesen.

  3. #13
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    aja und wie eröffne ich einen solchen stream und welche "mächtigkeit" brauch ich dafür...

    gibt es irgendwo deutschsprachige erklärungen zu den entsprechenden methoden und ähnliches....

    wie gesagt ich benutzt vb.net erst seid 2 monaten und war die meiste zeit damit beschäftigt die oberfläche zu erstellen und mich da etwas reinzudenken...

    und warum ich am anfang das

    Private tcClient As TcAdsClient

    schreibe weiß ich immer noch net^^....

    ich hab mir auch ein paar bücher angeschaut aber da steht nur sowas drin wie eine klasse ist ein blablabla das nix davon wie ich das hinschreib und was das alles zu bedeuten hat..

    für vb6 war wenigstens in der beckhoff doku explizit gestanden was man tun muss und was was in der anweisung heißt und so konnte ich das auch nachvollziehen aber hier stehen nur tausend fachbegriffe und ich hab keine ahnung mehr

    mfg
    andre wagner

  4. #14
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Du hast ein Problem mit der objektorientierten Programmierung. Lese das Buch zum herunterladen und lerne VB programmieren.

    http://download.galileo-press.de/ope...sual_basic.zip


    Mit ein bisschen Suchen hättest du diverse Hilfen für VB.net gefunden.

  5. #15
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich danke für die umfassenden antworten und Unterlagen die ich von dir bekommen hab. Allerdings habe ich dadurch aus festgestellt das ich ein schweres Problem habe.

    Ich habe bis ende der Woche eine Frist für diese Anlage und das ist ein sehr großes Problem.

    Kurzer Überblick zur erklärung:

    Ich programmiere seit einigen Jahren SPS in einem kleineren Betrieb, was ich mir in größtenteils selbst oder über Bücher beigebracht habe.
    Dazu gehört die Logo von Siemens, alle arten von Möller und ein paar wenige andere. Meist wurden damit nur kleine Maschinen mit maximal 40 Ein- und Ausgängen angesteuert.

    Seid einiger Zeit mache ich das auch mit Beckhoff da ich dort VB6 über Busskoppler verwenden kann. VB6 habe ich mir auch über die Jahre selbst beigebracht und konnte damit einiges bewerkstelligen.
    Nun habe ich eine neue Maschine und eine neue Steuerung, nämlich eine CX1010-xxxx und die Aus und Eingänge sind etwas mehr geworden. Die komplexität ist nicht das Problem das das Hauptprogramm mehr oder weniger komplett vorliegt und die Aufgaben erfüllt.

    Das Problem ist wie geschrieben die Kommunikation.
    Ich ging beim erwerb dieser Steuerung von der einfachheit von VB6 aus und lies mich dazu überreden VS2005 zu verwenden da dies (so wurde mir gesagt) sich von den Anweisungen nicht stark von VB6 unterscheidet.

    Nachdem sich Windows CE als ungenügend herausstellte habe ich auf einen Win XP rechner gewechselt, die Programmierung unter VS2005 is zwar wesentlich einfacher geworden und meine Oberfläche und Programmablauf sind größtenteils fertig aber das Problem an Kunden ist das sie diesen Aufwand nicht sehen sondern immer drehende Teile zu ihrer zufriedenheit verlangen.
    Wie ich ja nun auf grund deiner Unterlagen nachlesen konnte is das mehr als komplex und ich werde das bis Freitag nicht komplett schaffen.

    Nun 2 Fragen die mehr oder weniger über leben und tot entscheiden^^:

    gibt es von Beckhoff oder irgendwem anders eine dll oder sonst irgendetwas die einem den ganzen Müll von Klassen und sonst allem abnimmt so das man wieder auf seine ausreichend Primitive Call adsocx1.AdsReadIntegerConnect ( ... und so weiter kommt...??


    2. Wenn es sowas nicht gibt, gibt es irgendwo eine stelle oder Hotline oder am besten aussendienst oder kurs oder was weiß ich auch immer der in ungeahnter geschwindigkeit (das heißt bis Freitag) das einem zeigt und erklärt.

    Das Problem is nicht das ich etwas nicht verstehe wenn man mir sagt wozu diese anweisung da ist was sie tut was sie verlangt und so weiter...

    Nur wenn ich ein Buch vor mir habe der mich mit Begriffen überschüttet und ich immern noch net so viel mehr von Streams weiß dann is das bis Freitag unmachbar....

    Mfg
    Parallax

    PS: Ich kann in diesem Projekt leider nicht mehr auf VB6 wechseln da die anschaffungskosten für VS2005 mit in das Projekt mit einfließen und der kunde dann natürlich auch in dieser Version ein Programm haben willl

  6. #16
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Uppss, da bist du wirklich in einer schwierigen Situtation. Nein, es gibt ausser der ADS-Bibliothek keine weiteren Hilfen und das ist wirklich Mist.

    Ich empfehle:

    1) Werfe alles über Bord, was ich über das Freigeben von Ressourcen schrieb und mache es Straightforward. Das führt später zu kleineren Problemen, die aber als Bug verkauft werden können.

    2) Dann brauchts du sowieso eine Bibliothek, die eine Architektur gemäss meinen Angaben verlangt und schreibst das Programm mit Hilfe der Bibliothek neu. (dauert max 1Tag)

  7. #17
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hm ich hab ja über wochenende schon verschiedene bücher durchgelesen aber so schnell lernt man das leider nicht...

    jetzt hab ich beckhoff am sonntag ne email geschrieben in der hoffnung das mir einer ihrer entwickler erklärt an einem auskommentierten beispielprogramm wie ich von anfang an nachdem ich das adsocx.dll eingebunden habe die verbindung aufbau und dann einen wert auslesen...

    bekommt heute nachmittag antwort.. ich hoffe das dass was wird....

    ich habe mir gestern noch gedacht naja kann ja net so schwer sein einfach ne ne verbindung herzustellen und dann einen wert zu lesen... nur wenns schon mal an dem stream scheitert weiß ich auch net...

    mein chef hat schon angeboten er zahlt was wenn mir das jemand erklärt aber du wirst auch net aus der nähe von Hersbruck/Nürnberg kommen^^??

    mfg
    parallax

  8. #18
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Nee, ich komm nicht aus der Nähe Ich bräuchte so mit dem Flugzeug (inkl. aller Wartezeiten grrr) so 1 Tag Anreisezeit und 1000Eu für einen Flug. Wenn ich nicht demnächst meinen Job wechseln sollte, können wir die Lib auf Sourceforge zusammen designen. Ich brauche sowieso eine verbesserte Version. Einen grossen Teil der Tipperei habe ich ja schon.
    Geändert von drfunfrock (15.04.2008 um 13:15 Uhr)

  9. #19
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    naja ich hab mich für den nächsten kurs eingetragen allerdings hilft der mir für das projekt auch nix mehr....

    hm... aber mal im ernst...

    in vb6 brauchte ich zum connecten auf eine variable ca 3 minuten und dann gings...

    des kann doch net denen ihr aller ernst sein das man nun mehr als ne stunde und n diplom in vb.net braucht um mich mit einer variable zu verbinden...

    also entweder bin ich in dem fall schwer von begriff oder ich übersehe einfach irgendwas....

    wenn ich schon mal ne auflistung von den befehlen methoden und sonst was hab was mit des ADS teil bringt wäre ich ja schon mal sehr glücklich nur leider finde ich in dem Infosys von beckhoff nur zeug für vb.net... irgendwas will mich bei dem projekt tierisch verarschen...

    mfg
    parallax

  10. #20
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nein, du hast recht, es ist einfach. Aber, die praktischen Probleme gibt es hinterher, denn wenn z.B. der HMI-PC heruntergefahren wird, ohne dass das Programm alle seine Variablen zur SPS freigegeben hat. Die wird dann irgendwann immer mehr CPU verbrauchen. Das kann man hervorragend sichtbar machen, wenn den FB aus der Systembibliothek nutzt und sich die CPU-Belastung anzeigen lässt. Die steigt dann nämlich. Ausserdem hatten wir Probleme mit dem Netzwerk und dann passiert ähnliches. Meine einzigste Abwehr war, alles sehr geordnet hoch und herunterzufahren.

    Damit ich dass einfach machen konnte, habe ich alle Variablenverbindungen in eine Liste eines Objektes gelegt, und beim Beenden des Programmes brauche ich nur noch zu schreiben: PLS.close, weil ich einfach mit einer Schleife alle Verbindungen durchgehen kann, anstatt 80 oder mehr Variablen freizugeben. So viel hatte ich nämlich in einem Programm und mir wurde das alles zu unübersichtlich.

    Hier bietet die Objektorientierung einfach das bessere Mittel, auch wenn es mehr Tippserei ist.


    Die Organisation ist so:

    Hauptklasse ist

    "PLC"

    - Legt die Verbindung zur SPS an und überwacht diese st¨ndig. Bei einem Timeout, werden alle Variablen freigeben und die Verbindung neu aufgebaut.
    - Verwaltet alle Variablen

    Dann kommt
    "PLCVariable"

    - Diese Klasse ist Wurzelklasse für alle Variablentypen wie z.B. PLCInteger
    - Weil alle Valriablenklassen von "PLCVariable" abstammen, kann ich die in die Liste packen, ohne dass es Typkonflikte gibt.


    Um in eine Var vom Typ Int zu schreiben mache ich das einfach so:

    dim t as PLCInteger = new PLCInteger('.X_Value')
    t.val = 2
    t.write
    t.dispose

    Das wars. Das ist auch der Sinn dieser Lib. EInmal geschrieben, nimmt die einem viel Arbeit ab und verhindert mögliche Fehler.

Ähnliche Themen

  1. Beckhoff Twincat
    Von AdrianS im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 09.01.2012, 19:33
  2. Beckhoff Twincat Symbolik
    Von Anaconda55 im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 01.10.2008, 09:35
  3. Begriffsdefinition Beckhoff TwinCat
    Von MSB im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 27.03.2008, 20:21
  4. Zykluszeitproblem mit Beckhoff/Twincat
    Von andimann im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 09.01.2008, 15:55
  5. ? -> TwinCAT mit Beckhoff NOV/DP-RAM
    Von Kurt im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 29.09.2005, 13:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •