Beiträge von Mathias Voegtle

    Also nach langem rumprobieren konnte ich das Problem eingrenzen und lösen.


    Hatte nichts mit gleichzeitigem Schreibzugriff oder sowas in der Richtung zu tun, sondern ich hatte wie gewohnt einen String mit StrClear() gelöscht und das schmeckt dem OPC wohl gar nicht, wenn ich nach StrClear() aber das erste Zeichen in ein Leerzeichen ändere funktioniert es.

    Guten Abend,


    wir haben vor kurzem bei einem Projekt zum ersten mal den Device Connector 2.1 in der CustomerData Variante eingesetzt, was auch ganz gut funktioniert hatte.

    Bei dieser Anwendung hatte ich aber nur am Programmanfang einmal Parameter von Extern, also eben über diese OPC Customer Daten, eingelesen und auf interne Variablen kopiert.


    Nun sind wir grad am testen eines neuen Projekts mit dieser Option, hatten heute aber immer wieder das Problem das Variablen, bzw. Arrays von Strukturen, von der SPS (Beckhoff) und UaExpert nicht erreichbar waren, genau kann ich das Verhalten nicht beschreiben weil das unser SPS'ler getestet hat.

    Der Unterschied zum ersten Projekt ist das ich hier im Submit ständig lesend auf diese Daten zugreife und teilweise halt auch auf einzelne Elemente dieser Strukturen sowohl von SPS als auch Submit und Roboter Interpreter geschrieben wird.


    Könnte das schon zu Problemen führen ?

    Kann das Problem leider auch nicht so gut beschreiben weil ich nicht wirklich Ahnung von dem OPC Thema hab.


    Danke schon mal...

    Die eigentliche Korrektur wird erst in Base_Teachen berechnet und geschrieben, der Submit schreibt nur die 3 Punkte Koordinaten.

    Ich bin mir halt sicher das die neue Korrektur im Unterprogramm ankommt weil ich in dem Abschnitt das Base mit den neuen Daten überschreibe und noch mal eine Position anfahre, die bisher auch immer korrekt war.


    Wenn ich gewusst hätte das es so ein Problem geben könnte hätte ich es vielleicht anders gemacht. Sind halt jetzt drei unterschiedliche Anlagen beim Kunden, aber mit derselben Programm Struktur, die knapp ein Jahr laufen. Aber diese werden über die nächsten Jahre immer wieder dupliziert, darum wollte ich das Problem jetzt gelöst haben.

    Guten Morgen,


    also ich muss doch etwas Code zeigen, ist teilweise etwas unschön, weil ich gedacht hab ob vielleicht der Vorlaufzeiger was damit zu tun hat.

    Ich starte den Submit im Teachprogramm und bleib dort drin bis er wieder abgewählt wurde und danach wird erst wieder eine SAK Fahrt gemacht, darum glaub ich weniger an an zeitliches Problem.


    Ich mach das ganze über den Submit weil ich ein Dialog anzeige (wenn Zustimmtaster gedrückt wieder lösche) in dem ich die Abweichung zur Soll Position Anzeige und wenn die Abweichung zu groß ist gar nicht zulasse das geteacht wird.

    Und fürs Base brauche ich drei Punkte, im Hauptprogramm würde immer wieder eine SAK Fahrt gemacht werden.



    Unterprogramm mit An/Abfahrt und Aufruf zum Teachprogramm:

    Unterprogramm .dat

    Code
    CONST FRAME baseData={X 877.819,Y -2524.93896,Z 924.000,A -70.0000,B 0.0,C 0.0}
    FRAME baseKorr={X 4.01829338,Y -68.3535,Z -22.9292736,A -1.41691315,B 0.0170311499,C -0.214197621}
    
    CONST E6AXIS startAxTeachBase={A1 75.0000,A2 -110.000,A3 118.000,A4 -15.0000,A5 20.0000,A6 15.0000,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    
    CONST FRAME p1TeachBase={X 0.0,Y 0.0,Z 0.0,A 180.000,B 0.0,C 180.000}
    CONST FRAME p2TeachBase={X 100.000}
    CONST FRAME p3TeachBase={X 100.000,Y 100.000}


    Base_Teachen.src

    Base_Teachen.dat


    Submit

    Hallo,


    ich hab schon längere Zeit ein etwas nerviges Problem, das aber sporadisch relativ selten vorkommt, ich bekomm diese Situation aber an der Anlage bzw. in Office Lite nicht simuliert und tue mir so etwas schwer eine Lösung zu suchen.


    Code zu posten wird etwas schwer aber ich versuch die Problematik zu beschreiben.

    Ich hab diverse Unterprogramme z.B für Paletten, Maschinen usw., in diesen .dat`s (sind nicht global) sind für die Base Daten und die Endpunkte Soll-Frames angelegt die aus SimPro kommen und Korrektur-Frames die mit diesen verrechnet werden (wird immer Base 1 verwendet und die Daten je nach aktivem Unterprogramm überschrieben).


    Ich hab für das Teachen der Base`s und Endpunkte halbautomatische Routinen gemacht (keine Inline Forms). Grob umrissen wird aus dem Unterprogramm ein Teachprogramm aufgerufen in das die aktuelle Korrektur übergeben wird (.dat global) dieses startet ein Submit der Dialog gesteuert die aktuelle Position mit der alten Korrektur verrechnet und die neue Korrektur in ein anderes Frame (global) im Teachprogramm schreibt. Aus dem Teachprogramm wird wieder in das Unterprogramm zurück gesprungen und das neue globale Korrektur Frame sollte in das lokale geschrieben werden.

    Danach werden die lokal neu geteachten Daten noch mal aktiviert und zur Prüfung die neue End-Position angefahren, und bis hier her funktioniert es auch immer.


    In sehr seltenen Fällen hatte sich aber an dem lokalen Korrektur Frame nichts geändert, als ich das festgestellt hatte und das Unterprogramm erneut angewählt hab (ohne zu starten) um mir die aktuellen Werte des Korrektur Frames anzuschauen waren komischerweise noch die neu geteachten Daten drin, obwohl das Programm abgewählt war, aber ins .dat wurden sie halt nicht geschrieben.

    Und so muss ich jetzt halt immer kontrollieren ob die Daten wirklich geschrieben wurden, was halt einfach nervt, der Fehler lässt sich auch nicht auf ein bestimmtes Unterprogramm eingrenzen, trat schon in verschiedenen auf.


    Vielleicht hatte jemand schonmal ein ähnliches Problem oder eine Idee was ich probieren kann.


    Danke schon mal

    Gruß Mathias

    Hi , mit dem RCS Modul hab ich manchmal auch Probleme, hab jetzt kein SimPro zur Hand aber bei den Roboter RCS Einstellungen, lösch den Pfad und schreib <data packed> rein, wenn du dann die Simulation startest werden neue Mada´s erstellt...hilft bei mir immer.

    Das Programm VorPosition() sieht man jetzt leider nicht, ich denke darin liegt das Problem, die Inline Punkte sollten funktionieren.


    Würde aber eher Hinweismeldung und nicht Fehlermeldung sagen, oder anders gesagt einfach ignorieren, sieht man im Auto Betrieb eh nicht mehr...ausser du bist auf perfekte Bewegungen aus :)

    Guten Abend,


    wie händelt ihr in SimPro (3.1) komplexere Anlagen mit mehr als 32 Bases, ich würde ungern gestückelte Dateien machen.


    Ich kann zwar im Modellierung Kontext mehr anlegen aber diese beim Punkte teachen nicht auswählen, hat jemand ne Idee ?


    Gruß Mathias

    Hallo,


    hat hier jemand Erfahrung wie man z.B Ints oder Strings von einer SPS (in meinem Fall Twincat) über SimPro in Office Lite bekommt ?


    Boolsche Verknüpfungen, direkt auf Inputs und Outputs funktionieren in beide Richtungen.


    Ich hatte mir auf der Roboter Componente ein Int Signal angelegt, dieses auf dem Server mit der SPS verknüpft und wollte mir dann ein Python Skript machen, welches den Int Wert in bits wandelt, diese mit einer Schleife durchlaufen und auf die einzelnen Eingänge des Roboters schreiben, geht das überhaupt ?


    Hatte es mit den vcBooleanSignalMap Funktionen output und setPortSignal versucht...


    Wäre über Hilfe froh...danke.


    Gruß Mathias