Position Control of compumotor 406LXR linear servo table and GV-U6E(motor drive) with PCI-7344

Since I had the answers referring:
http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000DD490000&USEARCHCONTEXT_CATEGORY_0=_14_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_14_&UCATEGORY_S=0
Wiring step was done well. However, I still have a problem that MAX configuration doesn't fit in compumotor drive settings. Therefore, the setup is shown below, and I want to know how I can set up PCI-7344 configuration in MAX or LabVIEW VI.
;Uploaded from device address 0
;Gemini GV Servo Drive Setup
;Motor Setup
DMTR 1703 ;Motor ID (406-x-LXR-M-x-D13-x-x-x-x-E5-x-x-x)
DMTIC 2.48 ;Continuous Current (Amps-RMS)
DMTICD 0.00 ;Continuous Current Derating (% derating at rated speed)
DMTKE 17.6 ;Motor Ke (Volts (0-to-peak)/krpm)
DMTRES 10.10 ;Motor Winding Resistance (Ohm)
DMTJ 119.300 ;Motor Rotor Inertia (kg*m*m*10e-6)
DPOLE 1 ;Number of Motor Pole Pairs
DMTW 40.5 ;Motor Rated Speed (rev/sec)
DMTIP 7.40 ;Peak Current (Amps-RMS)
DMTLMN 3.4 ;Minimum Motor Inductance (mH)
DMTLMX 3.4 ;Maximum Motor Inductance (mH)
DMTD 0.000000 ;Motor Damping (Nm/rad/sec)
DMTRWC 0.23 ;Motor Thermal Resistance (degrees Celsius/Watt)
DMTTCM 20.0 ;Motor Thermal Time Constant (minutes)
DMTTCW 0.33 ;Motor Winding Time Constant (minutes)
DMTAMB 40.00 ;Motor Ambient Temperature (degrees Celsius)
DMTMAX 90.00 ;Maximum Motor Winding Temperature (degrees Celsius)
DHALL 1 ;Disable Hall Sensor Checking
DMTLQS 0 ;Set Q Axis Inductance Saturation
DMTLDS 0 ;Set D Axis Inductance Saturation
DTHERM 0 ;Disable motor thermal switch input
;Drive Setup
DMODE 2 ;Drive Control Mode
DRES 8400 ;Drive Resolution (counts/rev)
DPWM 16 ;Drive PWM Frequency (kHz)
SFB 1 ;Encoder Feedback
ERES 8400 ;Encoder Resolution (counts/rev)
ORES 8400 ;Encoder Output Resolution (counts/rev)
DMEPIT 42.00 ;Electrical Pitch (mm)
SHALL 0 ;Invert Hall Sensors
DMTLIM 1.5 ;Torque Limit (Nm)
DMTSCL 1.5 ;Torque Scaling (Nm)
DMVLIM 119.000000 ;Velocity Limit (rev/sec)
DMVSCL 119.000000 ;Velocity Scaling (rev/sec)
;Load Setup
LJRAT 0.0 ;Load-to-Rotor Inertia Ratio
LDAMP 0.0000 ;Load Damping (Nm/rad/sec)
;Fault Setup
FLTSTP 1 ;Fault on Startup Indexer Pulses Enable
FLTDSB 1 ;Fault on Drive Disable Enable
SMPER 8400 ;Maximum Allowable Position Error (counts)
SMVER 0.000000 ;Maximum Allowable Velocity Error (rev/sec)
DIFOLD 0 ;Current Foldback Enable
;Digital Input Setup
INLVL 11000000 ;Input Active Level
INDEB 50 ;Input Debounce Time (milliseconds)
INUFD 0 ;Input User Fault Delay Time (milliseconds)
LH 0 ;Hardware EOT Limits Enable
;Digital Output Setup
OUTBD 0 ;Output Brake Delay Time (milliseconds)
OUTLVL 0100000 ;Output Active Level
;Analog Monitor Setup
DMONAV 0 ;Analog Monitor A Variable
DMONAS 100 ;Analog Monitor A Scaling (% of full scale output)
DMONBV 0 ;Analog Monitor B Variable
DMONBS 100 ;Analog Monitor B Scaling (% of full scale ouput)
;Servo Tuning
DIBW 1500 ;Current Loop Bandwidth (Hz)
DVBW 100 ;Velocity Loop Bandwidth (Hz)
DPBW 40.00 ;Position Loop Bandwidth (Hz)
SGPSIG 1.000 ;Velocity/Position Bandwidth Ratio
SGIRAT 1.000 ;Current Damping Ratio
SGVRAT 1.000 ;Velocity Damping Ratio
SGPRAT 1.000 ;Position Damping Ratio
DNOTAF 0 ;Notch Filter A Frequency (Hz)
DNOTAQ 1.0 ;Notch Filter A Quality Factor
DNOTAD 0.0000 ;Notch Filter A Depth
DNOTBF 0 ;Notch Filter B Frequency (Hz)
DNOTBQ 1.0 ;Notch Filter B Quality Factor
DNOTBD 0.0000 ;Notch Filter B Depth
DNOTLG 0 ;Notch Lag Filter Break Frequency (Hz)
DNOTLD 0 ;Notch Lead Filter Break Frequency (Hz)
SGINTE 1 ;Integrator Option
SGVF 0 ;Velocity Feedforward Gain (%)
SGAF 0 ;Acceleration Feedforward Gain (%)
Regards,
JinHo

First of all, before connecting the drive to the 73xx controller I would check that the drive and motor configuration works correctly independent from the controller. The Gemini drives have a utility called the Motion Planner that allows you to configure your motor and drive for independent operation so you can test if the motor and drive combination are working by themselves. Refer to page 18 of the Gemini GV installation guide which you can find at the compumotor site or download from:
http://www.compumotor.com/manuals/gemini/Gemini_GV_HW_Install_Guide.pdf
Once you have tested your motor and drive combination, make sure that the drive is configured in torque mode and that the command signal is configured to be sent from the I/O connector and not through RS232 using the Motion Planner. The next step would be to connect the 7344 through the UMI-7764 breakout box in the following order:
---- UMI7764 GVU6E
---- AOut Cmd+ (pin23)
---- AOGnd Cmd- (pin24)
---- InhOut Enable- (pin2)
---- +5V Enable+ (pin24)
7344 --> EncA AX+ (pin8)
---- EncA- AX- (pin9)
---- EncB BX+ (pin10)
---- EncB- BX- (pin11)
---- Index ZX+ (pin12)
---- Index- ZX- (pin13)
---- +5V Encoder +5V (pin5)
Verify that your enable line is connected in an open collector mode (as shown in the diagram above). Our inhibit outputs can sink current but not source it so if your enable line is not behaving properly you want to make sure that the +5v supply you are suing for the UMI can source enough current for your enable line to work. Consult Compumotor on the specs of their enable switch.
Once the connections are done properly, all you need to do is configure and initialize your board for servo operation in MAX and then you can start your tuning process. Refer to the Tuning PID for servos tutorial in:
http://www.ni.com/support/motnsupp.htm
for instructions on tuning your servomotor properly. Also for more information on using MAX, refer to the following tutorial:
http://zone.ni.com/devzone/conceptd.nsf/webmain/081957EE013C7A4586256B92007818E0?opendocument

Similar Messages

  • Position Control of compumotor linear servo table and GV-U6E with PCI-7344

    I'm referring PCI-7344 (not 7334).
    I have the GV-U6E which is a drive only and does not possess control functionality. the drive only version does not store or use programs. So, serial commands can not be sent through COM port by LabVIEW even though A few basic commands can be emulated.
    I am trying to do position control as I mentioned. For example, the motor should move A point to B point exactly with a certain speed. The points must be aboulte position.
    I would like you to see the reference comment that I have been contacting with in your website forum.
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000DD490000&USEARCHCONTEXT_CATEGORY_0=_14_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_14_&UCATEGORY_S=0
    Regard,
    Jin Ho Lee
    ----- Original Message -----
    From:
    To:
    Sent: Thursday, September 26, 2002 5:00 PM
    Subject: Re: (Reference#1549-QYW196) "Position Control of linear servo table and GV-U6E with PCI-7344
    >
    > Note: Your reference number is included in the Subject field of this
    > message. It is very important that you do not remove or modify this
    > reference number, or your message may be returned to you.
    >
    >
    > JinHo. Compumotor is a very popular brand, and I know of several customers
    > who integrate our 7334 with Computmotor drives. However, when you say that
    > the MAX configuration doesn't fit in the compumotor drive settings, are you
    > referring to the specs from the 7344? It looks like the 7344 and the
    > Compumotor will work well together through a UMI break out box. If you're
    > referring to specific commands that the Compumotor receives, I'd have to
    > know more about the protocol. If the Compumotor needs serial commands,
    > then you can send them through the computer's COM port from LabVIEW.
    > Please let me know exactly what kind of configurations you're trying to
    > set. The 7344 can be completely configured in MAX and LabVIEW.
    >
    >
    > Best Regards
    >
    > Kyle Voosen
    > Applications Engineer
    > National Instruments
    > http://www.ni.com/support
    >
    > ------------------------------------------------------------------------------
    >
    > Problem Description :
    > "Position Control of compumotor 406LXR linear servo table and GV-U6E(motor
    > drive) with PCI-7344"
    >
    > "Since I had the answers referring:
    > http://exchange.ni.com/servlet/ ProcessRequest?RHIVEID=101&RPAGEID=135&
    > HOID=506500000008000000DD490000& USEARCHCONTEXT_CATEGORY_0=_14_&
    > USEARCHCONTEXT_CATEGORY_S=0& UCATEGORY_0=_14_&UCATEGORY_S=0
    >
    > Wiring step was done well. However, I still have a problem that MAX
    > configuration doesn't fit in compumotor drive settings. Therefore, the
    > setup is shown below, and I want to know how I can set up PCI-7344
    > configuration in MAX or LabVIEW VI.
    >
    >
    > -----------------------------------------------------
    >
    > Uploaded from device address 0
    >
    > Gemini GV Servo Drive Setup
    >
    >
    >
    > Motor Setup
    > DMTR 1703
    > Motor ID (406-x-LXR-M-x-D13-x-x-x-x-E5-x-x-x)
    > DMTIC 2.48
    > Continuous Current (Amps-RMS)
    > DMTICD 0.00
    > Continuous Current Derating (% derating at rated speed)
    > DMTKE 17.6
    > Motor Ke (Volts (0-to-peak)/krpm)
    > DMTRES 10.10
    > Motor Winding Resistance (Ohm)
    > DMTJ 119.300
    > Motor Rotor Inertia (kg*m*m*10e-6)
    > DPOLE 1
    > Number of Motor Pole Pairs
    > DMTW 40.5
    > Motor Rated Speed (rev/sec)
    > DMTIP 7.40
    > Peak Current (Amps-RMS)
    > DMTLMN 3.4
    > Minimum Motor Inductance (mH)
    > DMTLMX 3.4
    > Maximum Motor Inductance (mH)
    > DMTD 0.000000
    > Motor Damping (Nm/rad/sec)
    > DMTRWC 0.23
    > Motor Thermal Resistance (degrees Celsius/Watt)
    > DMTTCM 20.0
    > Motor Thermal Time Constant (minutes)
    > DMTTCW 0.33
    > Motor Winding Time Constant (minutes)
    > DMTAMB 40.00
    > Motor Ambient Temperature (degrees Celsius)
    > DMTMAX 90.00
    > Maximum Motor Winding Temperature (degrees Celsius)
    > DHALL 1
    > Disable Hall Sensor Checking
    > DMTLQS 0
    > Set Q Axis Inductance Saturation
    > DMTLDS 0
    > Set D Axis Inductance Saturation
    > DTHERM 0
    > Disable motor thermal switch input
    >
    >
    >
    > Drive Setup
    > DMODE 2
    > Drive Control Mode
    > DRES 8400
    > Drive Resolution (counts/rev)
    > DPWM 16
    > Drive PWM Frequency (kHz)
    > SFB 1
    > Encoder Feedback
    > ERES 8400
    > Encoder Resolution (counts/rev)
    > ORES 8400
    > Encoder Output Resolution (counts/rev)
    > DMEPIT 42.00
    > Electrical Pitch (mm)
    > SHALL 0
    > Invert Hall Sensors
    > DMTLIM 1.5
    > Torque Limit (Nm)
    > DMTSCL 1.5
    > Torque Scaling (Nm)
    > DMVLIM 119.000000
    > Velocity Limit (rev/sec)
    > DMVSCL 119.000000
    > Velocity Scaling (rev/sec)
    >
    >
    >
    > Load Setup
    > LJRAT 0.0
    > Load-to-Rotor Inertia Ratio
    > LDAMP 0.0000
    > Load Damping (Nm/rad/sec)
    >
    >
    >
    > Fault Setup
    > FLTSTP 1
    > Fault on Startup Indexer Pulses Enable
    > FLTDSB 1
    > Fault on Drive Disable Enable
    > SMPER 8400
    > Maximum Allowable Position Error (counts)
    > SMVER 0.000000
    > Maximum Allowable Velocity Error (rev/sec)
    > DIFOLD 0
    > Current Foldback Enable
    >
    >
    >
    > Digital Input Setup
    > INLVL 11000000
    > Input Active Level
    > INDEB 50
    > Input Debounce Time (milliseconds)
    > INUFD 0
    > Input User Fault Delay Time (milliseconds)
    > LH 0
    > Hardware EOT Limits Enable
    >
    >
    >
    > Digital Output Setup
    > OUTBD 0
    > Output Brake Delay Time (milliseconds)
    > OUTLVL 0100000
    > Output Active Level
    >
    >
    >
    > Analog Monitor Setup
    > DMONAV 0
    > Analog Monitor A Variable
    > DMONAS 100
    > Analog Monitor A Scaling (% of full scale output)
    > DMONBV 0
    > Analog Monitor B Variable
    > DMONBS 100
    > Analog Monitor B Scaling (% of full scale ouput)
    >
    >
    >
    > Servo Tuning
    > DIBW 1500
    > Current Loop Bandwidth (Hz)
    > DVBW 100
    > Velocity Loop Bandwidth (Hz)
    > DPBW 40.00
    > Position Loop Bandwidth (Hz)
    > SGPSIG 1.000
    > Velocity/Position Bandwidth Ratio
    > SGIRAT 1.000
    > Current Damping Ratio
    > SGVRAT 1.000
    > Velocity Damping Ratio
    > SGPRAT 1.000
    > Position Damping Ratio
    > DNOTAF 0
    > Notch Filter A Frequency (Hz)
    > DNOTAQ 1.0
    > Notch Filter A Quality Factor
    > DNOTAD 0.0000
    > Notch Filter A Depth
    > DNOTBF 0
    > Notch Filter B Frequency (Hz)
    > DNOTBQ 1.0
    > Notch Filter B Quality Factor
    > DNOTBD 0.0000
    > Notch Filter B Depth
    > DNOTLG 0
    > Notch Lag Filter Break Frequency (Hz)
    > DNOTLD 0
    > Notch Lead Filter Break Frequency (Hz)
    > SGINTE 1
    > Integrator Option
    > SGVF 0
    > Velocity Feedforward Gain (%)
    > SGAF 0
    > Acceleration Feedforward Gain (%)
    > -----------------------------------------------------
    >
    >
    > Regards,
    > JinHo"
    > NI Software :
    > LabVIEW version 6.0
    > NI Hardware :
    > Motion Control device PCI-7344
    > Driver Version :
    > no
    > OS :
    > Windows 2000
    > CPU :
    > Pentium
    > RAM :
    > 128
    > Vendor :
    > DELL
    > Customer Information :
    > Jin Ho Lee
    > North Carolina State Univ.
    > US
    > [email protected]
    > Ph: (
    > 919
    > )
    > 512-9929
    >
    >

    Yes, we used an NI PXI-7344 motion control card with an NI UMI-7764 box connected to a Gemini GV-U12E servo drive. (which is a drive only.)
    We did positional control in absolute position mode.
    I can send you an AutoCAD schematic detailing how to connect the UMI-7764 to the Gemini GV servo drive.
    In regard to the Rs232 interface to the GV servo drive,
    the GV drive only model is "configurable" not "programmable". You can create unique GV configuration files with Compumotor's Motion planner then download the configuration via Rs232 using LabVIEW as desired. Or, using LabVIEW via Rs232 you can change individual GV drive parameters on demand,
    or use the GV's two analog outputs back to LabVIEW's analog inputs to measure commanded motor current or torque, etc.etc.etc

  • How to create a table and add columns to it with a stored procedure

    Hi,
    I hope that someone can help me.
    I want to create an empty table with the same columns as another
    table but with 4 columns more.
    So it's actualy a copy of a table but with 4 added columns.
    I have to do it in a stored procedure but I don't know which
    statements I have to use. I need to give 3 parameters : schema,
    table and prefix(e.g. the pers from column pers_number)
    Can someone help me?
    Thanks in advance, Ann

    you can !!
    here is some examples
    DECLARE
    sql_stmt VARCHAR2(200);
    plsql_block VARCHAR2(500);
    emp_id NUMBER(4) := 7566;
    salary NUMBER(7,2);
    dept_id NUMBER(2) := 50;
    dept_name VARCHAR2(14) := 'PERSONNEL';
    location VARCHAR2(13) := 'DALLAS';
    emp_rec emp%ROWTYPE;
    BEGIN
    EXECUTE IMMEDIATE 'CREATE TABLE bonus (id NUMBER, amt
    NUMBER)';
    sql_stmt := 'INSERT INTO dept VALUES (:1, :2, :3)';
    EXECUTE IMMEDIATE sql_stmt USING dept_id, dept_name, location;
    sql_stmt := 'SELECT * FROM emp WHERE empno = :id';
    EXECUTE IMMEDIATE sql_stmt INTO emp_rec USING emp_id;
    plsql_block := 'BEGIN emp_pkg.raise_salary(:id, :amt); END;';
    EXECUTE IMMEDIATE plsql_block USING 7788, 500;
    sql_stmt := 'UPDATE emp SET sal = 2000 WHERE empno = :1
    RETURNING sal INTO :2';
    EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;
    EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num'
    USING dept_id;
    EXECUTE IMMEDIATE 'ALTER SESSION SET SQL_TRACE TRUE';
    END;

  • How can I control stepping motor with PCI-7344 & UMI-7764? And I want to know the simplest circuit that I can do by myself?

    Now I don't want to by commercial stepping motor driver, I want to do it by myself. I want to know the simplest driver circuit to drive and control my stepping motor (+5V 4 phases).

    From the 7344's perspective, in open loop stepper mode, the only necessary outputs are the pulse train for steps and a TTL flag for direction. You can also set it for CW/CCW mode, which will output two separate pulse trains: one for clockwise motion, one for counter-clockwise motion.
    If you only need to decode the signals into four phases and not amplify them above 5V, then a small IC might work for you (as long as you don't need a lot of current). A reconfigurable FPGA could be programmed to decode the incoming signal and output the four phases pretty easily. However, I honestly believe your best bet is just to buy a recommended amplifier for the motors.
    Good Luck
    Kyle V
    Applications Engineer
    National Instruments

  • Closed loop control of DC motor drive using PCI 6251

    Hi
    i am using NI PCI 6251 for closed loop control of dc drive.(shunt motor,220v, 0.5HP, 2.5A rated, 1500RPM)
    the dc motor is fed from a bidirectional dc-dc converter. this converter works in boost mode(forword motoring) and buck mode(braking mode/battery charging)
    the converter is built using mitsubishi IGBT module. at low voltage side of the converter a battery bank of 48V is connected and high voltage side the motor is connected.
    An IR sensor is developed to measure the speed of the motor and a hall current sensor is used to sense the converter current.
    in the control part i have an inner current control loop(PWM controller) and a outer speed control loop.both controllers are PI controller. To measure the speed i have used counter of the DAQ assistant, then frequency. then this frequency is converted to RPM using labview.after giving the speed and current signals  to the controllers , then i started  tunning the PI gain, but at the starting the duty cycles was 100%, so the IGBT got damaged immediately. now how to tune the controllers during the closed loop operation.  the switching frequency of the converter is 20KHz.   
    can any body suggest me how to run the dc drive in closed loop ?
    thanking you.

    Hi Premenanda
    The freq data receiverd from the daq assistant has the units of Hz, or in terms of motor speed, rps (rotations per second). I can see that you are trying to convert that to rpm (rotation per minute). which can be done by dividing the rps speed by 60. Instead, you are multiplying it by 60 and also comparing with 2000. the resultant multiplied value is displayed in your program only if it is smaller than 2000.which is causing the problem here.( as seen in file 'original code.png)
    I have attached a file named 'modified code.png' that shows how the conversion from rps to rpm is done. Please do the required changes in your code and let me know if it works.
    Attachments:
    modified code.png ‏18 KB
    Original code.png ‏15 KB

  • Polling the master detail table and to update the LAST_UPDATED with SYSDATE

    Hi
    The requirement is polling the master detail table where read_flag is null and has to update the LAST_UPDATED with SYSDATE in both tables.
    Refered the MasterDetail and PollingPureSQLSysdateLogicalDelete samples of SOASuite.
    Used the delete polling strategy in polling process and modified the generated TopLink discriptor as follows.
    set the TopLink -> Custom SQL tab -> Delete tab with the following query
    for master table (RECEIVER_DEPT) :
    update RECEIVER_DEPT set READ_FLAG= 'S' , LAST_UPDATED=sysdate where DEPTNO=#DEPTNO
    set the TopLink -> Custom SQL tab -> Delete tab with the following query
    for Detail table (RECEIVER_EMP):
    update RECEIVER_EMP set LAST_UPDATED=sysdate where EMPNO=#EMPNO
    After deploying the bpel process data is updated in master(RECEIVER_DEPT) table with LAST_UPDATED as sysdate and read_flag as S
    however data is deleted in detail(RECEIVER_EMP) table rather than updated records.

    Xtanto,
    I suggest using JSP / Struts. UIX will be replaced by ADF Faces in JDeveloper 10.1.3 and thus I wouldn't suggest new developments to be started with UIX unless time doesn't allow to wait for ADF Faces. In this case develop UIX in an MVC1 model, using the UIX events for navigation because this model seems more likely to be mgratable, according to the UIX Statement of direction on Otn.
    Back to your question. You can create a search form in JSP that forwards the request to a StrutsData Action to set the scope of teh result set. The read only table can have a link or a button to call the detail page, passing the RoewKey as a string.
    Have a look at the Oracle by Example (OBE) tutorials that contain similar exaqmples.
    Frank

  • Dynamic force control using linear servo actuator + load cell

    Hello,
    I am designing a test fixture which will allow us to test the performance of actuators we install in our products. I need to apply a constant load to the actuator while it is extending/retracting. I would like to be able to use a linear servo actuator and a load cell on the same axis as the UUT to provide and monitor the load. The actuator under test does not travel at high speeds, its max speed is approximately 1in./sec.
    I need to be able to maintain a constant load while the actuator is moving. Therefore  I'll need some kind of closed loop system to maintain a velocity such that the load being reported from the load cell is equal to the expected load as the actuator is moving.
    I am trying to figure out how to best implement this in a cost effective and time-saving way. I have not purchased any hardware at the moment so am open to suggestions. We do have LabView 2009 with all the toolkits. Would it be best to implement this using a motion controller card or would I be able to get good results using a standard DAQ?
    Message Edited by fnaeem on 02-05-2010 05:58 PM

    As you have stated correctly, you will need a deterministic closed loop system to accomplish this task. The most cost efficient while reliable solution for this purpose is a motion control board like the PCI-7352. This board provides quadrature encoder inputs for positioning tasks and analog inputs for any other type of control. Torque/force control is a very typical task for this board and it provides a simple API and useful configuration tools.
    If cost savings are a primary goal, you could also use a PCI-7342, but for your application I would recommend the PCI-7352, as the PCI-7342 provides only 12-bit ADCs, while the PCI-7352 provides 16-bit ADCs, resulting in a much better resolution of your force feedback signal.
    I hope that helps,
    Jochen Klier
    National Instruments

  • PCI-7344 Servo Torque Control

    Hi,
    Is there any body to have controlled torque with PCI-7344?
    I have two servos to keep servo's torque constant as a target value. The target torque can be changed on cerain conditions.
    So the servo's torque reaches the target, it shoud be stopped at that postion unless any change in servo's torque happens. If the servo's torque is below the target, it shoud be move forward to get more torque and vise versa also.
    Now, I would like to know how to use PCI-7344 axis to control torque.

    Hi Choijs,
    It's really the motor amplifier that is doing the torque control rather than the motion controller.
    Most amplifiers today are current(torque) amplifiers. In addition, a lot of amplifiers can operate in either torque mode, or velocity mode.
    Now, the reason why torque amplifiers are also called current amplifiers is that torque is proportional to current. When the motion controller outputs a command voltage, it's up to the amplifier to convert that voltage into current, and it's up to the amplifiers internal control loop to hold that current. Essentially, the amplifier controls the torque via a current transformer. When there is a difference between the desired torque, and the actual torque from the current feedback, the amplifier will adjust the output vo
    ltage to accomdate for the difference.
    That's probably too much information, but you just need to know that the torque control is actually done at the amplifier level, and when you are using an amplifier in torque mode, all this control is done for you by the amplifier. So, there is nothing the 7344 needs to do.
    Another way to think about this is whenever you tell a motor to go to a specified position and stay there (using a torque amplifier). You are doing torque control automatically, since it takes effort to hold a motor at a specific position. The control loop on the amplifier is constantly doing what you have described, without the 7344 knowing what it's doing.
    Hope this helps.
    Ken Sun
    Applications Engineer
    National Instruments

  • Create a Table Dynamically in WEB Dynpro Java with diferent type of column

    Hi everyone, I have a question if is possible to create a table dynamically in Web Dynpro Java?, depending of the RFC consults create the rows dynamically, ,this table must have diferent type of columns, for example link column (when the user click this link execute an action and show a adobe interactive form in another view), image column (show an image depending of the information)
    Thank you everyone
    Atte Israel

    Hello,Israel.
    Yes , it is possible through dynamic programming in wdModify of the View.
    You can do this ,for example, using cell variants.
    IWDTable tab = (IWDTable) view.getElement("TABLE_NAME");               
    IWDTableStandardCell cellV= (IWDTableStandardCell) view.createElement(IWDTableStandardCell.class,"TableStandardCell"+i); 
    cellV.setVariantKey("NotEditableVariant");
    cellV.setCellDesign((WDTableCellDesign)wdContext.nodeTableDaysTitle().currentTableDaysTitleElement().getAttributeValue("CellDesign"+i));
    IWDTextView textViewi= (IWDTextView) view.createElement(IWDTextView.class,"TextView"+i);  // -- here you control the type of the object that is displayed in the cell
    textViewi.bindText(dayAttrib);
    cellV.setEditor(textViewi);          
    tabColumn.addCellVariant(cellV);
    tab.addGroupedColumn(tabColumn,tab.numberOfGroupedColumns());     
    Using this code you can control even specific cells in the table and not only columns.
    Hope this helps you,
    Constantine

  • Script to generate all the tables and objects in a schema

    how to write a script to generate all the tables and objects in a schema.
    with toad the no of tables generated is not matching when i check from schema .

    Dear Sidhant,
    Try this script:
    set termout off
    set feedback off
    set serveroutput on size 100000
    spool ddl_schema.sql
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- DROP TABLES --');
    dbms_output.put_line('--');
        for rt in (select tname from tab order by tname) loop
            dbms_output.put_line('DROP TABLE '||rt.tname||' CASCADE CONSTRAINTS;');
        end loop;
    end;
    declare
        v_tname  varchar2(30);
        v_cname  char(32);
        v_type     char(20);
        v_null   varchar2(10);
        v_maxcol number;
        v_virg     varchar2(1);
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- CREATE TABLES --');
    dbms_output.put_line('--');
        for rt in (select table_name from user_tables order by 1) loop
            v_tname:=rt.table_name;
            v_virg:=',';
            dbms_output.put_line('CREATE TABLE '||v_tname||' (');
            for rc in (select table_name,column_name,data_type,data_length,
                                data_precision,data_scale,nullable,column_id
                    from user_tab_columns tc
                    where tc.table_name=rt.table_name
                    order by table_name,column_id) loop
                        v_cname:=rc.column_name;
                        if rc.data_type='VARCHAR2' then
                            v_type:='VARCHAR2('||rc.data_length||')';
                        elsif rc.data_type='NUMBER' and rc.data_precision is null and
                                             rc.data_scale=0 then
                            v_type:='INTEGER';
                        elsif rc.data_type='NUMBER' and rc.data_precision is null and
                                         rc.data_scale is null then
                            v_type:='NUMBER';
                        elsif rc.data_type='NUMBER' and rc.data_scale='0' then
                            v_type:='NUMBER('||rc.data_precision||')';
                        elsif rc.data_type='NUMBER' and rc.data_scale<>'0' then
                            v_type:='NUMBER('||rc.data_precision||','||rc.data_scale||')';
                        elsif rc.data_type='CHAR' then
                             v_type:='CHAR('||rc.data_length||')';
                        else v_type:=rc.data_type;
                        end if;
                        if rc.nullable='Y' then
                            v_null:='NULL';
                        else
                            v_null:='NOT NULL';
                        end if;
                        select max(column_id)
                            into v_maxcol
                            from user_tab_columns c
                            where c.table_name=rt.table_name;
                        if rc.column_id=v_maxcol then
                            v_virg:='';
                        end if;
                        dbms_output.put_line (v_cname||v_type||v_null||v_virg);
            end loop;
            dbms_output.put_line(');');
        end loop;
    end;
    declare
        v_virg        varchar2(1);
        v_maxcol    number;
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- PRIMARY KEYS --');
    dbms_output.put_line('--');
        for rcn in (select table_name,constraint_name
                from user_constraints
                where constraint_type='P'
                order by table_name) loop
            dbms_output.put_line ('ALTER TABLE '||rcn.table_name||' ADD (');
            dbms_output.put_line ('CONSTRAINT '||rcn.constraint_name);
            dbms_output.put_line ('PRIMARY KEY (');
            v_virg:=',';
            for rcl in (select column_name,position
                    from user_cons_columns cl
                    where cl.constraint_name=rcn.constraint_name
                    order by position) loop
                select max(position)
                    into v_maxcol
                    from user_cons_columns c
                    where c.constraint_name=rcn.constraint_name;
                if rcl.position=v_maxcol then
                    v_virg:='';
                end if;
                dbms_output.put_line (rcl.column_name||v_virg);
            end loop;
            dbms_output.put_line(')');
            dbms_output.put_line('USING INDEX );');
        end loop;
    end;
    declare
        v_virg        varchar2(1);
        v_maxcol    number;
        v_tname        varchar2(30);
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- FOREIGN KEYS --');
    dbms_output.put_line('--');
        for rcn in (select table_name,constraint_name,r_constraint_name
                from user_constraints
                where constraint_type='R'
                order by table_name) loop
            dbms_output.put_line ('ALTER TABLE '||rcn.table_name||' ADD (');
            dbms_output.put_line ('CONSTRAINT '||rcn.constraint_name);
            dbms_output.put_line ('FOREIGN KEY (');
            v_virg:=',';
            for rcl in (select column_name,position
                    from user_cons_columns cl
                    where cl.constraint_name=rcn.constraint_name
                    order by position) loop
                select max(position)
                    into v_maxcol
                    from user_cons_columns c
                    where c.constraint_name=rcn.constraint_name;
                if rcl.position=v_maxcol then
                    v_virg:='';
                end if;
                dbms_output.put_line (rcl.column_name||v_virg);
            end loop;
            select table_name
                into v_tname
                from user_constraints c
                where c.constraint_name=rcn.r_constraint_name;
            dbms_output.put_line(') REFERENCES '||v_tname||' (');
            select max(position)
                    into v_maxcol
                    from user_cons_columns c
                    where c.constraint_name=rcn.r_constraint_name;
            v_virg:=',';
            select max(position)
                into v_maxcol
                from user_cons_columns c
                where c.constraint_name=rcn.r_constraint_name;
            for rcr in (select column_name,position
                    from user_cons_columns cl
                    where rcn.r_constraint_name=cl.constraint_name
                    order by position) loop
                if rcr.position=v_maxcol then
                    v_virg:='';
                end if;
                dbms_output.put_line (rcr.column_name||v_virg);
            end loop;
            dbms_output.put_line(') );');
        end loop;
    end;
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- DROP SEQUENCES --');
    dbms_output.put_line('--');
        for rs in (select sequence_name
                from user_sequences
                where sequence_name like 'SQ%'
                order by sequence_name) loop
            dbms_output.put_line('DROP SEQUENCE '||rs.sequence_name||';');
        end loop;
    dbms_output.put_line('--');
    dbms_output.put_line('-- CREATE SEQUENCES --');
    dbms_output.put_line('--');
        for rs in (select sequence_name
                from user_sequences
                where sequence_name like 'SQ%'
                order by sequence_name) loop
            dbms_output.put_line('CREATE SEQUENCE '||rs.sequence_name||' NOCYCLE;');
        end loop;
    end;
    declare
        v_virg        varchar2(1);
        v_maxcol    number;
    begin
    dbms_output.put_line('--');
    dbms_output.put_line('-- INDEXES --');
    dbms_output.put_line('--');
        for rid in (select index_name, table_name
                from user_indexes
                where index_name not in (select constraint_name from user_constraints)
                    and index_type<>'LOB'
                order by index_name) loop
            v_virg:=',';
            dbms_output.put_line('CREATE INDEX '||rid.index_name||' ON '||rid.table_name||' (');
            for rcl in (select column_name,column_position
                    from user_ind_columns cl
                    where cl.index_name=rid.index_name
                    order by column_position) loop
                select max(column_position)
                    into v_maxcol
                    from user_ind_columns c
                    where c.index_name=rid.index_name;
                if rcl.column_position=v_maxcol then
                    v_virg:='';
                end if;
                dbms_output.put_line (rcl.column_name||v_virg);
            end loop;
            dbms_output.put_line(');');
        end loop;
    end;
    spool off
    set feedback on
    set termout on Best Regards,
    Francisco Munoz Alvarez
    www.oraclenz.com

  • PCI-7344 Servo Command Analog Ouput

    Hi,
    I am currently working on a project controlling several servos with PCI-7344.
    Servo amplifiers are working with +/-10 V. But with the servo's direction command, the polarity of servo command decides the motor's rotation direction.
    For an instance, with CCW direction, -10V means the maximum speed in reverse. and 0 means sero speed.
    So the problem is how to configure DAC outputs to produce -10V and +10V for full speed and 0 for zero speed.

    You have to enable the secondary feedback to the same encoder as the primary feedback. I know it sound crazy but it works. I scared half the maintenance crew to death the first time I tried to run autotune. Then tune manually start with real low values like 1. One of the techs sent the attached file it helped. Oh I found a work around for my stopping problem I break the command line to my drive and have a 100k resistor shorting the command out that takes it to 0 volt and stoppes the motor. Of the hundred plus drive we have in this plant none use torque command. So much for Industry standard :-) Hope this help you.
    Attachments:
    motion_control_hands-on_servo_tuning.pdf ‏435 KB

  • Tables and Cells - can all corners and cells be rounded?

         I need to recreate a form and it requires a lot of round "cubes" thoughout.  If these were squares, I would be doing this creating tables and cells but because most everything in it seems to have rounded corners, thats making me question the best way of going about this.  Is this possible somehow?

    Another way to do it would be to add anchored objects inside your table to mimic the rounded corners as shown in the following screen capture.
    The first exemple is relatively easy, needing only one object per cell, except for the top row and the left column which need nothing.
    The second one is more difficult, especially for the surroundings which needs more than one anchored object (especially the last cell which inherited five of them).
    But both of these are still tables and can be adjusted as needed in width and height.
    This could prove usable if you can trust the people doing the editing inside the table and this doesn't mess with the printing.
    (the inspiration for abusing tables and anchored objects in this way comes from Michael Murphy).
    emmanuel

  • I am looking for a lab view schematic for hooking up a high-power motor driver to a linear actuator with feedback

    I need some help coding in labview 2012. I am hooking up a Pololu High-Power Motor Driver 18v25 CS to a Concentric LACT12P-12V-5 Linear Actuator with Feedback: 12" Stroke, 12V, 1.7"/s.  Thanks!

    Hi James,
    How are you planning to hook up your motor driver with PC? Do you have some DAQ device or hardware target to send TTL/PWM signals to driver?
    Regards.

  • Joining disjoint tables and eliminating repetition

    Using customers as an example of my question -- I have 3 tables. Customer with cust_iid, orders with cust_id and preferences with cust_id. I want to see customer id in column 1, customer orders for that customer in column2 and customer preferences for that customer in column 3. Orders and preferences for each customer are not related to each other-only to the customer. When joining on customer id, if Customer John has 2 orders and 1 preference, the preference is repeated for each order. How can I make column 2 and 3 independent of each other so column 2 has each each order once for the customer and column 3 has each preference for the customer listed once? I feel like this should be straightforward to do but cannot find any reference to it. Pointing me where to look would be most appreciated.

    Hi,
    You'll get better answers faster if you post some sample data (CREATE TABLE and INSERT statements, or a WITH clause, like Pollywog did), and the results you want from that data.
    Given the sample data Pollywog psoted, is this the output you want?
       CUST_ID CUST_NM       R_NUM ITEM      PREFERENC
             1 John              1 TV        Blue
             1 John              2 Radio     Green
             1 John              3 Table     Orange
             2 Bob               1 CD Player Purple
             3 Frank             1           LavenderIf so, here's one way to get it:
    WITH     union_data   AS
         SELECT     cust_id
         ,     item               AS txt
         ,     ROW_NUMBER () OVER ( PARTITION BY  cust_id
                                   ORDER BY          order_no
                           )    AS r_num
         ,     'ORDERS'          AS source_name
         FROM    orders
        UNION
         SELECT     cust_id
         ,     preference_type          AS txt
         ,     ROW_NUMBER () OVER ( PARTITION BY  cust_id
                                   ORDER BY          preference_no
                           )    AS p_num
         ,     'PREFERENCES'             AS source_name
         FROM    preferences
    SELECT       c.cust_id, c.cust_nm
    ,       u.r_num     -- You don't have to display this, of course
    ,       MIN (CASE WHEN u.source_name = 'ORDERS'      THEN txt END)     AS item
    ,       MIN (CASE WHEN u.source_name = 'PREFERENCES' THEN txt END)     AS preference_type
    FROM          customers     c
    LEFT OUTER JOIN     union_data     u     ON     u.cust_id     = c.cust_id
    GROUP BY  c.cust_id, c.cust_nm
    ,            u.r_num
    ORDER BY  c.cust_id
    ,            u.r_num
    ;A customer that had 0 orders and 0 preferences would still appear on the list, but that can be changed if it's not what you want.

  • LIFA+servo position control

    HI all, I have installed the Labview Interface for Arduino.
    I just need VI s for the position control of servo motor
    I have few questions regarding this
    1) what is closed loop position control , can i do that with servo motor ( I am using RC servo -VS-2)
    2)can i control my servo without using Arduino code , directly from m Labview
    3)How to implement PID controller for position control of Servo
    Thanx

    If you want to control servo directly from LabVIEW, you need NI Daq card.
    Your starting point should be from this link : http://zone.ni.com/devzone/cda/tut/p/id/3367
    CLA 2014
    CCVID 2014

Maybe you are looking for

  • Need help in HR-ABAP programming stuff

    Hi Alls I have been assigned to work in HR-ABAP.I have gud exp in normal ABAP but i am totally new for hr-abap.Could please help to me as u guys are helping to others. What are teh basic things i need to know , so  i can start working.. Please send m

  • Flex's HTTPService dispatches a ResultEvent instead of a FaultEvent

    Flex's HTTPService dispatches a ResultEvent instead of a FaultEvent I would like to know when does Flex's HTTPService launches a ResultEvent and when does it dispatches a FaultEvent. When the servers response contain a 401 http status code error (Una

  • WM & LE questions and Answers

    Dear all , Please give me sample questions for certification exam of WM & LE sample questions. Please help. Thanks. Shreya

  • How To Load SINGLE CELL Value as Object - In 2D Object Array - InvalidCastException

    Setup: ---- VB.net - Visual Studio 2010 - Excel Version 2010 - Option Strict ON The following WORKS FINE all day long for loading MULTIPLE range values IE: ("F2:F5") or more into a 2D Object Array... No problem... as in the following.. Dim myRangeTwo

  • Slow Performance BI Launch Pad - BI 4 SP2 patch 8

    Hi experts, i have this seriuos problem: i have installed BI 4 SP2 patch 8 on windows server 2008 server based on 12 GB Ram but when tree user access at the same time at BI Launch Pad, the server has an lowering performance and to access in BI Launc