Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 12:38:55 PM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  Yaskawa Motoman Robot Forum (Moderators: Fabian Munoz, Napierian)
| | |-+  job is freezing
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: job is freezing  (Read 559 times)
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« on: January 31, 2012, 08:40:32 PM »

hello to all!! i have come across a very strange issue!!the program is freezing and does not procced to the next line. le tme inform you a bit better.
i have a program in main that calls 2 other subs which are using the same variables.
Main program

set b000 0
set b001 0
pstart s1 sub 2
pstart s2 sub 3
*start
jump *pos1 if b000=1      }problem apears here
jump *pos2 if b001=1      }problem apears here
jump *start
*pos 1
.....
set b000 0
jump *start
*pos2
...
set b001 0
jump *start

-----------------
S1 job
NOP
*start
wait #in 1 on
set b000 1
jump *start
end

-----------------
S2 job
NOP
*start
wait #in 2 on
set b001 1
jump *start
end


With the s1 and s2 jobs i set the flags for making some operations in my main progam. the problem is that the cursor of the program stays always to either the first or the second jump and does not proceed to the next line. at the begining i thought that my logic was wrong and that i cannot see the cursor because it goes very fast but i was wrong. the program was running and always showing the jump*pos1 if b000=1 and i had b001=1 and b000=0 so normally it should go to the next line but it didnt. i placed it to teach, move the cursor to the next jump *pos2 if b001=1 and then i pressed run and it worked just fine.after that it stuck again to the firts jump. i also tried the opposite and this time it got stuck to the second jump.
the only thing i am guessing is that ite proccesor is confused because other subs handle also the b variables. which is the answer to my problem? any help? any parameter i should change?
thanx and sorry for the very long post
« Last Edit: January 31, 2012, 08:42:47 PM by potis » Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #1 on: January 31, 2012, 08:50:53 PM »

controller is nx100
Logged
Fabian Munoz
Global Moderator
*****
Offline Offline

Gender: Male
Posts: 918


Uruguay Campeon de America 2011 !!!!!!!!!!


« Reply #2 on: January 31, 2012, 10:16:50 PM »

wild guess  

*start
timer .02
jump *pos1 if b000=1      }problem apears here
timer .02
jump *pos2 if b001=1      }problem apears here
jump *start

I think is a race between you *start loop which is going up and down  and   the pstart from sub2 and sub 3.  The three of them are trying at one point to access the B database  I had problems in the past trying to access Bs at the same time from different places
« Last Edit: February 01, 2012, 02:45:33 AM by Fabian Munoz » Logged

somar
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #3 on: January 31, 2012, 10:51:15 PM »

i will give it a try but i am not so optimisic because when the job freezes and i check the other subs they are to the wait #in and not in the set b variables. 
Logged
tony gast
Hero Member
*****
Offline Offline

Gender: Male
Posts: 713


Can I barrow a cup of robots?


« Reply #4 on: February 01, 2012, 01:31:27 AM »

On early NX100s I had many issues using B variables with program "freezing" ,START lamp on and NO errors

I think newer software corrected this

Try using   I   variables if you are not using DIN or DOUT
Logged

Oh, well
smurrill73
Newbie
*
Offline Offline

Posts: 10


« Reply #5 on: February 01, 2012, 07:15:09 PM »

I had a similar problem recently.  I used SET B014=1 in SUB1 and in SUB2 I used WAIT B014=1.  Most of the time it worked just fine, except when I stopped the robot (via Hold or E-Stop) and then resumed it.  The programs would execute and then freeze at the the SET and WAIT instructions.  The variable was not being set to 1, and nothing else was writing to it.

I solved the problem by picking an unused output signal and using DOUT and WAIT instead.  No more deadlock.

Hope this helps,
Scott
Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #6 on: February 01, 2012, 07:59:06 PM »

thanx for the replies. after tony's suggestion the logic worked fine. use of I instead of B solved the problem.
i had 2 robots with this problem. the first is ok but the second handles also an I/f panel and the processor is struggling as also no effect after the change of the variables. i will have to disable the i/f panel and connect normal cables for making this baby to work.
as for software version i think that they are from the latest. hope dx has solved this.
 
Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #7 on: February 02, 2012, 02:46:44 PM »

 
i thought that the problem was gone but when i press hold or emg and then resume it the freeze comes back and gets me very angry. smurrill73 you were right. unfortunately i do not have spare i/o to connect them. any other suggestion?Huh???
Logged
Fabian Munoz
Global Moderator
*****
Offline Offline

Gender: Male
Posts: 918


Uruguay Campeon de America 2011 !!!!!!!!!!


« Reply #8 on: February 02, 2012, 04:42:36 PM »

Do you need a hardware i/O ?

Can you just use logical i/o using concurrent programming ?

Pick a group such as GRP #21100  / #01070 for the inputs. and GRP #11100  /# 31130 for the outputs
Find out which IN and OT they are and use them on your JBI.
Obviously you have to do same logic in the concurrent I/O.

I hope you understand my idea
Logged

somar
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #9 on: February 02, 2012, 08:15:11 PM »

i thought of 2 thinks.
1st is what fabian suggests. instead of using variables to use dummies i/o because there are no spare in my existing robot. the problem is that in if instructions only inputs are been checked and no outputs. with this the only way to overcome this is to interconnect them from the ladder. any other way?
2nd is to use interrupts instead of continues running subs. the only questionmark that i have with the interrupts is how the robot will behave because iam doing welding and any small pause will damage the welding result as also what effect will have an interrupt when an imov is been prosseced. will it come to the end or will it start over resulting to a collision? the interrupts will only handle a few lines with no wait or timer instructions.
Logged
trinket
Newbie
*
Offline Offline

Posts: 3


« Reply #10 on: February 16, 2012, 10:19:51 AM »

Have tou try TSYNC instruction?
Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #11 on: February 18, 2012, 06:28:35 PM »

i have never used it before amd have no experience with this command. i will check the manual but i do not hink that it could help me because i do not want to ever "stop" my master program with a tsync. if you can post an example but based to this specific problem it would help.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!