+- 10V Analog output - Beckhoff

hapetter

Member
Join Date
Feb 2009
Location
Kristiansand
Posts
58
Hi.

I have an application where I going to control a servo motor. The input to servo motor driver card is +-10V. So I have a +-10V output card in my Beckhoff CX1030 controller.
The position of the servo is +-30degree, hence +-10V is +-30degree. The speed of the servo is given by frequency of signal. So im planning to use a triangular signal generator.

The position feedback signal is +-3V. I will make a simple closed loop to position the servo. I know how to make the input scaling, but not the output scaling..

So my question is:
How to scale the output signal. My setpoint value is in degree. If I set 30 degree, then I like 10V. If I set -10degree, then I want output to be -3,33V.

How to make this scaling function in code?

Thanks!

Best Regards
Hans Pettersson
 
I guess this is a continuation of the recent topic about controlling a galvo which no one, unfortunately, had answered. I am not very proficient about Beckhoff but I'll try to put my two cents in anyway.

First, it seems to me you are a bit confused talking about signal frequency as a speed control. There are servo drives that are controlled by a 'pulse train': every pulse being output by a PLC to a drive commands it to move one 'step'; the higher the frequency of the pulses, the faster the motor moves. In other words, pulse train is a position command: the final position of the motor is determined by how many pulses the PLC has sent.

However, your motor, as you have mentioned, is controlled by an analog signal. That is a different way of controlling a servo. A typical servo drive with analog control interprets the analog input (also often called 'reference signal') as a velocity command: 0V means nothing is moving; +10V (or whatever the drive's max input voltage) means moving forward at 100% rated speed; -10V means moving back at 100% speed and so on. It should also be mantioned that some servos can be switched to 'torque mode' where the value of the analog input determines the torque rather than velocity, but in this case it does not matter.

What matters is this: your galvo is different from a typical servo yet. Analog reference signal here means 'position', not 'velocity' or 'torque'. At 0V your galvo will stay at 0 deg; at +10V it will stay at 30 deg and so on. When a typical motion control system need to move a servo motor to a certain position, it will calculate what is called a 'motion profile': the reference signal (i.e. speed of the servo) will gradually increase from 0V to some value and, as the servo approaches its target position, will gradually decrease down to 0V again - the servo stops at the new position. If you were to use this this with your galvo, you would see a different picture: your galvo would gradually deflect from 0 deg to some other position and then return back to 0 deg instead of staying where you need it to stay. Creating a set of triangular pulses on your output would mean your galvo moves back and forth instead of moving and staying where you need it.

What you need is a 'ramped' output, i.e. an analog output that gradually changes over time. The steeper the ramp, the higher the rate of change, the faster your galvo will move. If you were to change your output from 0 to max, your galvo would jump to its max deflection as fast as it mechanically can, which is not good.

Now, it has to be checked with the specs of your Beckhoff output module, but if I remember correctly, most of them are 16-bit modules. That means that a value of 0 in the output register produces 0V, 32767 produces max (+10V in your case) and -32768 produces -10V. Hence, you may use a simple proportion to find out the output value for the desired position. If you need to deflect to 30 deg, write 32767 to the output; for 15 deg - 16384, for 10 deg - 10922 and so on.

But, as I mentioned before, you cannot change the output value momentarily (the galvo will jump like crazy), you have to ramp it. There must be a ramping function if Beckhoff library and I would appreciate if someone more familiar with the system would point it out. You would need to determine what is the max speed you need (in deg/sec or deg/ms) and use ramping function to generate gradual position outputs.

Hope this helps.
 
Thank you for your good explanation. You are right, I am a bit confused. I tought it was just liek you have explained here. But it seems to be different on this galvo control.

Look at my conversation with a suport engineer at GSI:

My initial questions was:
1. Is each galvanometer controlled by +-10V?
2. How to control speed? +-10V?
3. Position is given as a +-10V output?
4. Differential or single ended analog signals?

Answer from GSI:
The position output is always +/-3V. Depending on the tuning, this corresponds to a certain scan angle. I.e. +/-3V are equal to +/-30 deg opt. Half of the command input signal results in half of the position signal and half of the scan angle. Also, depending on how your command input signal looks like, the scanner will react to it. I.e. if you command a triangle waveform with a certain frequency, the scanner will follow the commanded signal with a constant velocity. If you command a jump (step waveform), the rotor/mirror will also jump to a certain position (jump size depends on amplitude of your commanded step).

Differential/Single ended: I always set my analogue signal to Command + (Pin 1) and as reference Command - (Pin 2) to the signal source Ground (GND). So, Pin 1 has a signal which swings between +/-3V for full scale (or with the LNISD +/-5, 8 or 10V) and Pin 2 to GND of the signal source.

My follow questions:
So just to get it right: If I generate a triangle waveform of amplitude +5V and frequency of 50Hz. What will position and velocity be?

Answer from GSI:
when the LNISD is set for +/-5V à +/-30 deg opt and you are commanding +5V and 50Hz: The position will be half of the +/-3V position output, so +3V and the time the mirror moves from left corner to right corner 10ms (triangle 50Hz; 1 periode is 20ms).


So, it seems to be different LadderLogic right?

Best Regards
Hans Pettersson
 
I honestly beleive the GSI guy actually says the same: if you are to provide a triangular periodic signal, the mirror will move back and forth at the frequency; the max and min deflections would be determined by the max and min values of the signal.

I think it will all become clear once you are able to test the setup: provide a value to the output and see what the galvo would do.

P.S. That's GSI Lumonics, right? We used to have their 3D inspection machine and I even was there for training once. Quite a long time ago though.
 

Similar Topics

Click Plc/analog 0-10 v output module/0-10v dimmable led driver. I made a program using multiple drum to create by increment fade in and out led...
Replies
3
Views
1,409
I just wanted to send a 0-10VDC to my IF2OF2 module connected to ML1100 (1763-L16BWA) to control a VFD. The idea is to input a number on the...
Replies
17
Views
6,836
Hi Friends, I have a LVDT for measurement of cylinder stock which output in resistance. How can I connect it to PLC's analog input? If is there...
Replies
1
Views
2,286
Hi guys, I've a field instrument (actuator) using 24V AC, 0-10V. The terminal connection as below: Terminal 1 = 24VAC Terminal 2 = 24VAC Com...
Replies
3
Views
3,948
Does anyone have experience wiring this type of analog pressure transmitter up? It's 4 wires. 3 blacks and 1 green which I assume is earth...
Replies
9
Views
264
Back
Top Bottom