Hallo,
Ich würde gerne dauerhaft die aktuelle Position des KRC5 Roboters an die übergeordnete Siemens S7-1500 SPS senden, damit dies auf der HMI angezeigt werden kann. Dazu übertrage ich die $POS_ACT und $AXIS_ACT Werte in einem Submit in tausendstel Millimeter bzw. Grad als Integer an die SPS und wandle sie dort wieder in REAL Werte. Dies funktioniert auch soweit, allerdings stoppt der Submit immer bei Abwahl eines Programmes, da $TOOL geleert wird und somit keine $POS_ACT existiert.
Damit dies nicht mehr geschieht, dachte ich mir, dass die aktuelle Werkzeugnummer $ACT_TOOL und $ACT_TOOL_C auf >=0 abfrage. Das funktioniert aber leider auch nicht, der Submit hält ab und zu trotzdem an. Ich habe auch versucht $TOOL auf einen "Empty" Wert abzufragen, habe das aber leider nicht hinbekommen.
Hat hierzu jemand eine Idee, wie ich das umsetzen könnte?
Hier noch die entsprechenden Programmschnipsel.
DEFDAT write_outputs PUBLIC
...
GLOBAL SIGNAL pos_act_x $OUT[257] TO $OUT[288]
GLOBAL SIGNAL pos_act_y $OUT[289] TO $OUT[320]
GLOBAL SIGNAL pos_act_z $OUT[321] TO $OUT[352]
GLOBAL SIGNAL pos_act_a $OUT[353] TO $OUT[384]
GLOBAL SIGNAL pos_act_b $OUT[385] TO $OUT[416]
GLOBAL SIGNAL pos_act_c $OUT[417] TO $OUT[448]
...
ENDDAT
DEF PLC ( )
...
LOOP
...
if ($act_tool >= 0) and ($act_tool_c >= 0) then ;Übertragen nur wenn Werkzeug angewählt
;Übergabe Pos_Act als 6 Integer
pos_act_x=$POS_ACT.x*1000
pos_act_y=$POS_ACT.y*1000
pos_act_z=$POS_ACT.z*1000
pos_act_a=$POS_ACT.a*1000
pos_act_b=$POS_ACT.b*1000
pos_act_c=$POS_ACT.c*1000
endif
...
;ENDFOLD (USER PLC)
ENDLOOP
END
Display More
Vielen Dank im Voraus.
MfG
T1m