cuschera

Servo MR-J4 and QD75-MH4

10 posts in this topic

Hello all, 

For an improvement project, I have to activate solenoid valve at few specifics points during forward movement of servomotor on linear guide. To do this, I calculated all points and store it in different word. Until now no problem. I used actual value (D886) and home position of servo as reference point.
In picture below, problem occurs when servo goes to K859000 (in µm). Actual value increases so fast that the cpu can't read the data and doesn't activate M1

CPU : Q04UDV

transfert speed : 6000 mm/min

-I thought to multiplie µm value to mm value, could that improve it ?
- Must I write all points in QD75 buffers and then use it ?

Thanks a lot in advance, I hope I clearly explained my problem, I've not a really good english level.

D886.thumb.PNG.6d003da21f479654d36e64bba

Share this post


Link to post
Share on other sites

Hi Cuschera

You are making a comparison to a Value stored in Data Register D886- but as a standard Signed 16-Bit Integer will only reach a positive value of 32,767.

This might explain why your never setting 'M1'? 

Share this post


Link to post
Share on other sites

If i'm not mistaken, D886 is registered in DWORD 32 bits in the plc program, thats why I have comparison with "D=". anyway, the value that I see on HMI is a very big value, because in micro meter.

Thanks for your response

Share this post


Link to post
Share on other sites

Hi Cushera.

OK, then that is not the problem. Why can you not examine for 'GT or EQ'? If you are examing for an exact value; depending on the mechanical movement- you may not see this value on a scan of the PLC.

Share this post


Link to post
Share on other sites

Im not sure to undestand what do you mean by "examine GT or EQ" ?
 what i'm thinking is during one PLC scan (40ms but I have to confirm it) actual value exceed the constant value. So I try ton find out new way to do it. Unfortunately, i'm beginner in intelligent fonction module yet (QD75)
In any case, I can't see visualy if actual position match with d886 because to fast. 

thanks again

Share this post


Link to post
Share on other sites

I will try dividing by 1000 all my point and test again, maybe that'll solve it, I'll say you the results ;-)

Share this post


Link to post
Share on other sites

Just use  [D<= Kn Dn] and interlock the instruction till next time you need it... STL is one of the good ways.

Tested it my self and works like charm. Can still get one scan delay.

You can use poin table in continuous path control and output M codes or just monitor the positioning data number being executed and compare the value to start external function.

But still it depends on the type of application and axis control method.

Edited by glavanov

Share this post


Link to post
Share on other sites

In your example, I only use this STL if I want good result : ( but how precisely ? ) M1.thumb.PNG.e3b3604314d7f5efd2d8c6dbe53

In my example, D886 is the real current value, in micro meter unit, 

 5c0c0ff613460_d886(2).PNG.b1741198a7c0d0md101.PNG.9f4d89d86149e47f4d9fa0a5e61c4a

 


Currently I cant use the positioning data number because my points are not defined in table. The reason is because one precise point may vary between few different value. Depending in my case, of piece diameter who changed during process. Thats why its big challenge for me...
My only problem is because plc jump out the real value in micro meter, because too precise I thing... that's why i proposed to divide by 1000 µm => mm 

Hope my explanation was clear

Share this post


Link to post
Share on other sites

when the unit system is mm (microns) 100.0 microns is written as 1000 (32bit integer) int the buffer memory.

All positioning data saved in the flash memory of the motion controller can be manipulated in the buffer memory and you can change it with sequence program from the main CPU.

If i'm not wrong, the only condition is to change the data(positioning address) right before positioning start signal activation.

In another words, this can work for you, if the variable stop points are defined before start of positioning.

If you need to change the positioning address during movement, there should be FB for target value change.

Does the liner movement stops during cutting process or it's a kind of flying shear?

How and when are defined the cutting points?

Edited by glavanov

Share this post


Link to post
Share on other sites

Very interesting about FB for modification during movement... I should take a look about it, thanks ;-)

Linear movement doesnt stop during forward or backard position. 3 points are defined in table and as you said, there are sequence program to change them during process (speed and torque also) like this

d880.PNG.4cb587252a1b06292b15a64ecc3ee79

y72.PNG.28498855d24b7ace93b686307832b384
 

In my case, I just have to activate blower valve during cutting at specific position, knowing that piece diameter may be different. So i used Current value monitor. I did this today and it's working well, this solved my problem dividing by 10.000. Result with enough accurate.

IMG_0736.thumb.jpg.b386474b5288f155ece31

 

 

Last question if you have time :) 
This way to do is certainly not the best solution. I'm lucky because I've not lot of points to write. In summary, I've only need 3 points that are carry forward by offset, but I dont know how to do offset on my point in mitsubishi, so i manually wrote all my points in word.  I thought maybe to use "FOR LOOP" ... What do you thing ? 

(M1 to M9 allow me to activate or not the blower according to the position)
gf.thumb.PNG.344611932cf6e9c6a3414cd4bf9
 


I thank you for your support, !




 

 

 

Edited by cuschera

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now