Issue solved.
OVM invalid value. kss01422
Robot stopping when in Auto vary OV_PRO.
Problem was in tm_bib.src and I comment out two lines .
Now robot moves continue in Auto Mode and speed can be varied while running program.
See attached photo.
Issue solved.
OVM invalid value. kss01422
Robot stopping when in Auto vary OV_PRO.
Problem was in tm_bib.src and I comment out two lines .
Now robot moves continue in Auto Mode and speed can be varied while running program.
See attached photo.
I found some line reffering to OVM in tm bib.src
I think is linked by OV_PRO when torque monitor.
Or collision detection.
Vary on OV_PRO from potentiometer while runing, change torque values and maybe robot could interpret this as a collision and stop movement.
Should I deactivate collision detection?
Therefore, still testing today robot behaviour, Submit Works fine, do not stop anymore.
Running a simple src programm, in T1 os ok, in AUT is ok too a while, Robot Speed can be setted from potentiometer, but appear an error and stop, not in the same line , randomly saying
"OVM invalid value"
originator R1/nonname.src....my testing program
I think it happen when I try to vary robot speed while running.
When fix a speed from potentiometer and run in auto keeping it unchanged, run all program ok.
Maybe I am wrong, but what about refer OVM value?
It is linked by OV_PRO?
I don't think is a problem with the program since in T1 is running well.
Yes nPLCSspeed is declared as real, if try to define as integer , iPLCSpeed becomes red, not accepted.
Your code simplified I think is better since potentiometer is 0-10V, and couldn't give for nPLCSpeed negative values or higher than 100.
I will try it, if works will be adopted.
Thank you !
The working code for analogical robot speed control in Automatic Mode with an external potentiometer ( analogical input), to be added in sps.sub is fallowing :
;FOLD USER DECL
;please insert user defined declarations
DECL REAL nPLCSpeed
SIGNAL iPLCSpeed $ANIN[1] ; robot speed control from external potentiometer
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
.
.
.
LOOP
WAIT FOR NOT($POWER_FAIL)
TORQUE_MONITORING()
;FOLD USER PLC
;Make your modifications here
IF $AUT THEN : only apply PLC speed in Automatic Mode
nPLCSpeed = iPLCSpeed ; transcribe input byte to integer
IF nPLCSpeed<0 THEN
nPLCSpeed=0 ; avoid negative values
ENDIF
IF nPLCSpeed>0 THEN
nPLCSpeed=100 ; OV_PRO only accepts integers between 0 and 100
ENDIF
$OV_PRO=100.0*$ANIN[1] ; write speed to $OV_PRO
ENDIF
ENDLOOP
Note that underlined code line will give you when edit in WV a warning message that should be ignored not supressed with ;
The message is:
"When using a value of type 'REAL' for a parameter of type 'INT' some values may not be initialized correctly"
If you supress the message, just to have a clean syntax in Work Visual, will not function.
Important is to have no error, warnings are just warnings, do not block.
I also awarn that use of potentiometer in robot speed control should be done by end user with maximum attention, because is very easy to hit the button and instead 10% suddenly to reach 100%.
Is more safe digital control with +/- from smartpad or external digital button if needed.
Thank you Skyfire,PanicMode,Herman for your sugestions that lead me to solve this request.
It works,
when finish testing will post the correct code....
How to change analog input to digital input since I use an analog Beckhoff terminal EL3255?
You should book a course
Really?
Imagine that I know to start/stop, or deselect Submit. In this case not work, otherwise I would not write here to ask help frome someone called experienced moderator. You provide only short answers, suposing......but uncertain solutions.
If you are so good and expert with booked courses write a complete code of sps.sub including this OV_PRO functionality.
So far you provided solution are not working , and you not responde to a dump,belive me Hermann.
Have you really read first photo message?
There is no answer for that.
Submit stuck and do not start stop or deselect.
I recommend you to give up on this superior behaviour that tend to humiliate anyone asking suppport on this forum. I think that its existance reason, is to help each other and to share from all participants experience.
I am sorry but your answer bother me.
Is not working, nothing I have tried with the sps.sub
Submit stop , becomes red, and give message:
no submit program stored in command restore buffer.
ok, thank you HERMANN, will try it.
Thank you.
In Hermann post he send to Skyfire post. Sorry for missmatch.
Variable OV_APPL is available since 8.5, mine is 8.3, this is why cannot be used.
The only way is with OV_PRO but in variant $OV_PRO=nPLCSpeed syntax is orange underlined with warning message:
When using a value of type 'REAL' for a parameter of type 'INT' some values may not be initialized correctly" on line $OV_PRO = nPLCSpeed
This syntax is accepted, not sure if works, must try.
IF $AUT THEN; only apply PLC speed in Automatic modes
nPLCSpeed = 100.0*iPLCSpeed ; transcribe input byte to integer
IF nPLCSpeed < 0 THEN
nPLCSpeed=0 ; avoid negative values
ENDIF
IF nPLCSpeed>100 THEN;
nPLCSpeed=100 ; $OV_PRO only accepts integers between 0 and 100
ENDIF
nPLCSpeed = $OV_PRO ; write speed to $OV_PRO
ENDIF
Your help is very appreciated here.
Ok if you want me to add link to your post here it is:
Can you please correct my code, because the only valid version accepted by WV syntax is this:
IF $AUT THEN; only apply PLC speed in Automatic modes
nPLCSpeed = iPLCSpeed ; transcribe input byte to integer
IF nPLCSpeed < 0 THEN
nPLCSpeed=0 ; avoid negative values
ENDIF
IF nPLCSpeed>100 THEN;
nPLCSpeed=100 ; $OV_PRO only accepts integers between 0 and 100
ENDIF
nPLCSpeed=$OV_PRO; write speed to $OV_PRO (...........instead $OV_PRO=nPLCSpeed)
ENDIF
If I introduce $OV_PRO = 100.0*$ANIN{1] is not accepted
Thank you very much Panic Mode !
Ok, I will use stop robot when spindle accidentaly stop with interrupt in main task not in sps.sub.
The other issue I have is using a potentiometer to control in Automatic mode robot speed $OV-PRO.
I used from an older post from Panic Mode fallowing code but it seems not work.
I use a Beckhoff EL 3255 terminal for potentiometer as ANIN , is configured in I/O as analog input, when varies from button I see tension variable from 0 to +10V.
But In Auto Mode do not change anything when use potentiometer.
Attached are photos from sps.sub
Work Visual has no error but only a warning that says
"When using a value of type 'REAL' for a parameter of type 'INT' some values may not be initialized correctly" on line $OV_PRO = nPLCSpeed
you mean:
F $MODE_OP==#AUT THEN
IF $OUT[1]==FALSE THEN ;IF SPINDLE STOP
BRAKE ;ROBOT STOP TOO IN AUTOMATIC MODE
ELSE
RESUME
ENDIF
ENDIF
Another version:
IF $MODE_OP==#AUT THEN
IF $OUT[1]==FALSE THEN ;IF SPINDLE STOP
HALT ;ROBOT STOP TOO IN AUTOMATIC MODE
ELSE
CONTINUE
ENDIF
ENDIF
that's my new code based on your sugestions :
IF NOT $IN[1] THEN ; TOOL NOT LOCKED (S1)
$OUT[1]=FALSE ; SPINDLE STOPPED
IF $IN[2] THEN ; TOOL RELEASED (S2)
$OUT[1]=FALSE ; SPINDLE STOPPED
IF $IN[3] THEN ; IF SPINDLE ROTATING
$OUT[2]=FALSE AND NOT $IN[4] ; TOOL CHANGE AND TOOL CHANGE PUSHBUTTON NOT ALLOWED
$IN[4]=TRUE ; TOOL PUSHBUTTON CAN BE USED
IF NOT $IN[5] THEN ; SPINDLE OVERHEATED
$OUT[1]=FALSE ; SPINDLE STOPPED
ENDIF
ENDIF
ENDIF
ENDIF
Will try tomorrow.
On the other hand, still have to add a safe condition while running, if spindle stop, robot must stop too, to not destroy workpiece, tool,etc. Is that correct so:
IF $MODE_OP==#AUT THEN
IF $OUT[1]==FALSE THEN ;IF SPINDLE STOP
$OV_PRO = 0 ;ROBOT STOP TOO IN AUTOMATIC MODE
ENDIF
ENDIF
I have been iluminated meanwhile or just my hopeness.
Another manner of CODE I born it:
Here is the code from sps.sub
Yes the message is $IN[1] IS WRITE PROTECTED. What means I try to set $IN reading?
IF $IN[1]==TRUE THEN
$OUT[1]=FALSE
ENDIF
Is that syntax in a reading way? What is the difference between write protected and read only, I understand the words sense , but is expected to happen in one case, what in next?
$OUT IS NOT WRITE PROTECTED and neither assigned to any signal in STEU.