Jump to content
OMRON Forums

Amar

Members
  • Posts

    21
  • Joined

  • Last visited

Posts posted by Amar

  1. I'm using IDE 3.1.1.0 with a CK3E running (5) Yaskawas. I've got it configured and can jog from the Jog Ribbon. No PLC's or Prog's in the project yet. Have gotten the following error regarding Variable Mapping every time I try to build and download the project, has not succeeded mapping ever as of yet...

     

    ------ Build started: Project: CK3E11517, Configuration: Debug Any CPU ------

    Please wait while mapping PowerPMAC variables.

    Synchronizing Database failed.

    Could not map PowerPMAC variables.

    Project Building and Mapping total time = 7.68 sec

    ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

     

    Possible causes? Thanks!

     

    First build your project without PLC. Once it is succeeded then include your PLC and build and download it once again.

  2. Click on your user name. Upper right hand side, click on private messages

     

    i haven't received any messages. please mail me on Kaustubh and mail id.

     

    kaustubh@intelmotion.com

    amar@intelmotion.com

  3. You know that the PLC (0 in this case) keeps on executing over and over again... At RTI rate. That is NOT good. I would never write a PLC with motion until I have full control over the system. You do NOT need a PLC for this function. You can turn it on/off with MasterCtrl.

     

    Do you need to do cascaded loop or just electronic gearing? What is it physically that you are trying to achieve? What does the input represent? Typically, force, height, or tension work better with integrating the cascaded motor output in the ECT.

     

    You do need to make sure that your cascaded motor output direction matches your physical motor direction or else you are creating a runway condition.

     

    Thanks..

    Here i haven't described whole plc0. In plc0 i am taking care of, it will execute once and other task will execute over and over again.

    We are using same scenario in UMAC for Auto Mode in Antenna system for satellite tracking. Error will generate at continuous rate from integrated tracking receiver. I want to know what i missing in PPMAC. Why DAC is reaching at maxdac value? Till reaching at maxdac value of outer loop inner loop motor is following correctly. once outer loop dac output reach at maxdac value it will stop motion.

  4. I am trying to implement cascade loop with analog feedback in PPMAC.

    Resolution of the analog feedback is +/-10 volts mapped into -32767 to 32767 counts.

    I am giving this signal to a virtual axis through encoder conversion table.

    I am closing the virtual loop by giving command #14j=32767. I want to make error zero. Somewhere i am making mistake. After some time Motor[14].IqCmd is reaching at 32767 and it will stop motion of inner loop if still error is there.

    Please suggest me if i am making any mistake.

     

    Below is the setting for encoder table, outer loop motor and gearing with inner loop.

     

    ptr ainError->Acc28E[4].AdcSdata[3]

     

    Sys.Idata[1501] = ainError + 32767; //(Error will be +/- 32767)

     

    //Encoder table settings

    EncTable[12].type = 1

    EncTable[12].pEnc = Sys.Idata[1501].a

    EncTable[12].pEnc1 = Sys.pushm //Sys.Idata[1501].a

    EncTable[12].index1 = 0

    EncTable[12].index2 = 0

    EncTable[12].index3 = 0

    EncTable[12].index4 = 0

    EncTable[12].index5 = 0

    EncTable[12].ScaleFactor = 1

     

    EncTable[14].type = 1

    EncTable[14].pEnc = Sys.Idata[3001].a

    EncTable[14].pEnc1 = Sys.pushm

    EncTable[14].index1 = 0

    EncTable[14].index2 = 0

    EncTable[14].index3 = 0

    EncTable[14].index4 = 0

    EncTable[14].index5 = 0

    EncTable[14].ScaleFactor = 1/65536

     

    //Cascade motor setup

    Motor[14].pDac = Sys.Idata[3001].a

    Motor[14].pEnc = EncTable[12].a

    Motor[14].pEnc2 = EncTable[12].a

    Motor[14].Servo.Kvfb = 0

    Motor[14].Servo.Kp = 0.1

    Motor[14].Servo.Ki = 0.0001

    Motor[14].Servo.BreakPosErr = 0

    Motor[14].Servo.Kvff = 0

    Motor[14].Servo.Kaff = 0

    Motor[14].pAmpEnable = 0

    Motor[14].FatalFeLimit = 0

    Motor[14].PosSf = 1

    Motor[14].Pos2Sf = 1

    Motor[14].AbortTa = 256

    Motor[14].InvAmax = 256

    Motor[14].JogTa = 256

    Motor[14].JogTs = 32

    Motor[14].JogSpeed = 16384

    Motor[14].PwmSf = 1

    Motor[14].MaxDac=32767

    Motor[14].InPosBand = 100

    Motor[14].FatalFeLimit = 32000

    Motor[14].WarnFeLimit = 16000

    Motor[14].pAmpFault=0

    Motor[14].pLimits=0

     

    //PLC for controlling inner loop using gearing

     

    open plc0

    Motor[1].pMasterEnc = EncTable[14].a

    Motor[1].MasterPosSf = 1

    Motor[1].MasterCtrl = 1

     

    CMD "#14j=32767"

    close

  5. Hi,

     

    We have a scenario where we need to have either a plc or cplc program open, fill and close motion buffers with all move details, before executing the move.

     

    We cannot use motion programs directly, as the moves are not known in advance, but will be sent via the rtiplc routine. Further, the plc programs cannot be used to define motion directly, as we require blended moves, but only "rapid" is possible from plc programs.

     

    Is it possible to achieve this through a plc program, other than using "cmd" & "sendallcmds" to fill the buffers?

     

    Similarly, for cplc are there options to fill an axis motion buffer other than using "Command"?

     

    Thanks

     

    You can use Rotary Motion Programs.

  6. Dear Sir,

     

    We are interfacing Hengstler encoder with PPMAC through Beckhoff switch over EtherCAT and we are unable to update encoder device XML file. After clicking on update file button there is popup error message. Here we are attaching screenshot of error message and device XML file in text format. Please go through attached file in PNGformat.

    Earlier we managed to interface encoder with PPMAC (CPU 465) using unusual technique in which we directly copy and paste file into the folder "ECATDeviceFiles". With this technique we were detecting virtual encoder which is not actually detected by the EtherCAT Master. We mapped PDOS of this virtual encoder and we were getting data. Because of this unusual technique we are facing EtherCAT enable issue with ABB EtherCAT amplifiers which we are also interfaced with the PPMAC. All amplifiers are not getting enabled.But without interfacing encoder to PPMAC we can enable EtherCAT of all the amplifiers.

     

    Here I have also attached screenshot for firmware and IDE version. Please go through attached file in PNG format.

     

    Please help me to overcome from this problem.

    1260462375_IDEAndFirmwareVersion.thumb.png.b6ef06e08fc2ed5853b527f05f3a3a07.png

    1326063059_ErrorMsg.thumb.png.7a21044f602ceb59e814e3f91d711fdc.png

    Hengstler ACURO.txt

  7. I have developed application using PDK licence copy and tried to deploy on other OS platform. Application running properly on Windows 7, windows 8. But on windows server 2012 its not running properly. Many functions working properly on windows server 2012 except Data gathering using data gathering utility of PDK ("DeltaTauGatherProgram.exe").

    Our final application will run on windows server 2012 and data gathering is most important for us. So please help us to resolve this issue asap.

     

    I think may be problem with distribution DLL "cygwin1" for windows server 2012. For other OS one dialog box is appearing with option "Allow" when i start data gather but its not appearing in windows server 2012.

  8. Hi Amar,

     

    Could you explain more about the issue?

    with 465 CPU, can you open IDE and communicate?

    If you can get into IDE, then under what condition does it fail communication when it's in IDE already?

    We would like to have more info on the failure.

     

    No. I am not able to establish connection with CUP 465 at any instance. Even its not pinging. First time I am trying to connect with CUP 465. Before that I was working on CUP 460. And every thing is fine with CPU 460.

  9. You must associate a motor to the function and then enable it in the IDE. See the section "ASSOCIATING MOTORS WITH USER-WRITTEN SERVO AND PHASE ALGORITHMS" in the IDE manual (pg 220):

    "http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Power PMAC IDE.pdf"

     

    I have already done this. But still i am missing something like setup parameter for motor or anything else. Please help me to solve this.

     

    Regards,

    Amar

    Intelligent Motion Technology Pvt. Ltd.

     

    Now its working. I didn't selected "usercode.c" file compile option. Before it was "content". After selecting "compile" option it's working..

    Thanks...

  10. You must associate a motor to the function and then enable it in the IDE. See the section "ASSOCIATING MOTORS WITH USER-WRITTEN SERVO AND PHASE ALGORITHMS" in the IDE manual (pg 220):

    "http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Power PMAC IDE.pdf"

     

    I have already done this. But still i am missing something like setup parameter for motor or anything else. Please help me to solve this.

     

    Regards,

    Amar

    Intelligent Motion Technology Pvt. Ltd.

  11. Dear Sir,

     

    I have only PPMAC CPU only.

    I am trying to run user servo algorithm. I have assigned below function on servo interrupt for one motor using servo setup utility. In below function i have assigned value to global variable.

    But its not working. Its not changing value of global variable. I think this function is not invoking on servo interrupt.

     

    double user_pid_ctrl( struct MotorData *Mptr)

    {

    double *p;

    p = pushm;

    MyGlobal = 10;

    return 0;

    }

  12. Make a thread in your host program to poll variables/structures (whatever you are trying to gather) at a set period. That is as close to real-time data gathering that you can achieve without purchasing the PDK, which has built-in real-time gathering tools.

     

    Remember to poll something in gpascii -2 mode, all you have to do is query (i.e. send down the variable/structure name to PPMAC) (e.g. send down Motor[1].Servo.Kp and PPMAC responds with the current value).

     

    To change the way PPMAC replies, you can set the "echo" parameter.

     

    echo 7 makes PPMAC respond with just the value, omitting the structure name, in the current communication thread.

     

    Thank You Sir..

  13. Talking to PPMAC through Linux with your own driver should not be too bad. For example, if you want to go with Python on Linux, you can use Paramiko, which is a native SSH implementation:

     

    http://www.paramiko.org/

     

    Or others:

     

    https://wiki.python.org/moin/SecureShell

     

    Connect to your PPMAC IP Address (default 192.168.0.200), port 22

     

    It will request a username, which is "root". Password is "deltatau"

     

    After that, issue "gpascii -2"

     

    Then, you can issue commands as though you are talking through the IDE.

     

    This naturally will not be as fancy or nice as the PDK, but you can do virtually anything you need still.

     

    Dear Sir,

     

    Thank you very much.

    Is it possible to implement DPRAM like functionality?

     

    How to do real time data gathering?

  14. Talking to PPMAC through Linux with your own driver should not be too bad. For example, if you want to go with Python on Linux, you can use Paramiko, which is a native SSH implementation:

     

    http://www.paramiko.org/

     

    Or others:

     

    https://wiki.python.org/moin/SecureShell

     

    Connect to your PPMAC IP Address (default 192.168.0.200), port 22

     

    It will request a username, which is "root". Password is "deltatau"

     

    After that, issue "gpascii -2"

     

    Then, you can issue commands as though you are talking through the IDE.

     

    This naturally will not be as fancy or nice as the PDK, but you can do virtually anything you need still.

     

    Dear Sir,

     

    Thank you very much.

    Is it possible to implement DPRAM like functionality?

  15. that means, i can't connect to Power PMAC straightway from host PC application developed using other tool and there is no any API library like "PCOMMSERVERLib.dll" which we are using previously to communicate with UMAC or other PMAC modules.

     

    Can i write our own driver for Ethernet using other development tool in host PC to communicate with Power PMAC or i can't do this without PDK?

  16. We are using Power PMAC for our application developed in Microsoft Visual Studio .Net. I tried to establish communication using "PowerPmacComLib.dll" using SSH connection type. We have not yet tested it, hope it will communicate properly.

    After importing this library i have found that there is lots of functions unavailable.

    We need command for Download motion program file into Power PMAC.

    As per unavailability of DPRAM in Power PMAC what are the other options to fetch real time data in Host PC?

     

    Note - We are not using Power PMAC Development Kit.

  17. Dear All,

     

    I am working on VB.NET project. We want to fetch parameter from DPRAM (CLIPPER).

     

    But I am unable to fetch parameter from DPRAM. Please help me to overcome from this issue. Here I am attaching some code from PLC and in VB.NET. Here I am fetching axis enabled status. But its always give me false result even after axis is enabled.

    ;Configuration of DPRAM variable

    I24=$60000

    ;==== PLC CODE =====

    CLOSE

    DELETE GATHER

    M2100->F:$60DC4

    M2101->F:$60DC5

    M2102->F:$60DC6

    OPEN PLC1 CLEAR

    ;===== Enable Status

    M2100 = M139

    M2101 = M239

    M2102 = M339

    CLOSE

     

    '====== VB.NET Code to read DPRAM=====

    Public mem(3) As Single

    Public Function fetchFromUMACmemoryBlock() As Boolean

    PmacDPRGetMem(0, &H3580, 3 * 4, mem(0))

    populateFromUMAC()

    End Function

     

    Public Sub populateFromUMAC()

    Var.aIn.M1Enabled = mem(0)

    Var.aIn.M2Enabled = mem(1)

    Var.aIn.M3Enabled = mem(2)

    End Sub

     

    '=== Module for API declaration

    Public Declare Function ClosePmacDevice Lib "pcomm32W.dll" ( _

    ByVal dwDevice As Integer) As Boolean

     

    Public Declare Function OpenPmacDevice Lib "pcomm32W.dll" ( _

    ByVal dwDevice As Integer) As Boolean

     

    Public Declare Sub PmacDPRGetMem Lib "pcomm32W.dll" ( _

    ByVal dwDevice As Integer, _

    ByVal offset As Integer, _

    ByVal count As Integer, _

    ByRef val As Single)

×
×
  • Create New...