Hallo ich habe eine Lösung gefunden.
var numRegister = myRobot.RegNumerics[1].Value.RegFloat; --> gibt float aus
LG
Hallo ich habe eine Lösung gefunden.
var numRegister = myRobot.RegNumerics[1].Value.RegFloat; --> gibt float aus
LG
Hallo Zusammen,
ich versuche gerade die Numerischen Register von einem Roboter über C# auszulesen. Das ganze funktioniert auch solange es ein Integer ist. Sobald im Register eine Gleitkommazahl steht wird eine exception geworfen.
Codeauszug:
var numRegister = (myRobot.RegNumerics[1].Value.RegLong);
Wenn in Register 1 ein Integer steht also zb. 100 geht es. Wenn nicht dann kommt folgende meldung : System.Runtime.InteropServices.COMException: "Register value is not of Integer type."
Macht Sinn da der Value halt kein Integer ist. Jetzt meine Frage.
Weiß jemand wie ich auch Gleitkommazahlen auslesen kann ? Oder geht das nicht ?
Liebe Grüße
Hallo, ja das kannst du machen. Das Panel zeigt ja nur an. Gespeichert sind die ganzen Programme etc ja auf deinem Controller. Du musst halt schauen dass dein Panel Typ auch kompatibel ist mit dem Controller an dem du es anschließt. Panel Typ steht hinten auf den Panel drauf. Je nach dem was für ein Controller also iA, iB, iB+ etc brauchst halt unterschiedliche Panel Typen.
in UD1 ordner legen nicht UT1
Ok also du benötigst 3 dateien und alles in reihenfolge 1-3 ausrühren
1.) dein dictionary.
--------------------------------------------------------------------------------------------------------------------
$1- &bg_yellow &fg_red "%s" &new_line *parameter will be included in error_code’s message if %s is specified in the dictionary text*
--------------------------------------------------------------------------------------------------------------------
Speichere das mit dem namen kalmdictionary.utx ab und konvertiere via roboguide zu .tx datei --> nur .tx dateien können von ADD_DICT gelesen werden
du kannst auch einen anderen namen benutzen für das dictionary und dann um schritt 2 beim hinzufügen halt anpassen
In meinem beispiel greife ich über den usb slot auf das dictionary zu also in roboguide in den UT1 ordner legen oder am realen robi halt via usb stick
2.) Füge dein Dictionary auf deinem Robi hinzu
------------------------------------------------------------------------------------------------------------
PROGRAM ADD_DICTIONARY
%COMMENT = 'add_dic'
%ALPHABETIZE
%NOLOCKGROUP
VAR
status : INTEGER
BEGIN
ADD_DICT('UD1:\KALMDICTIONARY' ,'KALM',DP_DEFAULT,DP_DRAM,STATUS)
IF status <> 0 THEN
WRITE TPPROMPT('ADD_DICT failed, STATUS= ',STATUS,CR)
ABORT -- Without the dictionary this program can not continue.
ELSE
WRITE TPPROMPT('DIC already loaded in system, STATUS= ',STATUS,CR)
ENDIF
END ADD_DICTIONARY
------------------------------------------------------------------------------------------------------------
Speichere das als .kl datei ab und konvertiere es via Roboguide zu .pc, dann auf dem roboter mit CALL befehl ausführen und das dictionary wird hinzugefügt
3.)
PROGRAM test_posterr
%COMMENT = 'post err'
%NOLOCKGROUP
%INCLUDE KLIOTYPS
%INCLUDE klevccdf
VAR
error_code :INTEGER
parameter :STRING[15]
cause_code :INTEGER
severity :INTEGER
BEGIN
error_code = 122001 --nummer um auf KALM Alarm Code zugreifen zu können,KALM ist für USER Specified Alarm Post
parameter= 'fehlerxy' -- deine letztendliche fehlermeldung
cause_code= 0
severity = 0 -- 0 : WARNING, no change in task execution, 1 : PAUSE, all tasks and stop all motion, 2 : ABORT, all tasks and cancel
POST_ERR(error_code, parameter, cause_code, severity)
END test_posterr
-------------------------------------------------------------------------------------
Speichere das als .kl datei ab und konvertiere es via roboguide zu .pc, dann wieder über dein roboter aufrufen und die gewünschte fehlermeldung wird erscheinen. Ist halt hartcodiert. Wenn du das variabel machen willst mit dem text und der severity etc. dann am besten mit parameterübergabe und abruf der parameter mittels GET_TPE_PRM
Hast du das Karel Handbuch ?
Hey grob gesagt musst du dir eine eigene Dictionary Datei erstellen und diese dann mit der Karel Routine ADD_DICT einfügen/aktivieren. Dann kannst du ein kleines Karel Programm schreiben in dem du dir die gewünschten Parameter zur Fehlermeldung übergibst ( Facility, Nummer, Text und Severity).
Die liest du dann mit GET_TPE_PRM aus und übergibst die wiederum POST_ERR um dann letztendlich die Fehlermeldung zu generieren...
Hast du das Panel mal an einen anderen Controller angeschlossen um zu prüfen ob es an der schnur liegt etc ?
Hallo Hermann, da hast du natürlich recht ! Machen tue ich es ja so oder so. Hat mich einfach interessiert.
Hallo Zusammen,
ist es rein rechtlich gesehen erlaubt DCS (CPC,CSC, IO Connect etc.) einzurichten obwohl man keine DCS Schulung von Fanuc hat ?
LG
Hallo Zusammen, 2 Roboter von uns sind in einem Übergaberegal zu nah aneinander vorbei gefahren und beide sind mit dieser Meldung stehen geblieben.
Kann mir jemand sagen wie die Meldung zustande kommt bzw wie/wer sie ausgelöst hat ?
LG