Amar
-
Posts
21 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Downloads
Posts posted by Amar
-
-
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
-
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.
-
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
-
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.
-
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.
-
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.
-
Dear All,
Thank you very much for yours valuable feedback..
I already tried all these things but nothing is worked. One more thing i need to notify is that same CPU (465) working properly with windows 7.
-
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.
-
Dear Sir,
I am having Windows 8 as my OS. I have installed Power PMAC IDE (Ver 2.2.0.39). We have two types of PPMAC CPU i.e. AMP86xxx (465) and 460EX. My Power PMAC IDE is communicating properly with 460EX which is having firmware 2.1.0.39 but not with AMP86xxx (465) which is having latest firmware 2.1.1.3.
Kindly reply at the earliest...
-
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...
-
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.
-
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;
}
-
We are going to purchase PDK License copy.
I would like to know, Is it Enterprise Edition?
-
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..
-
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:
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?
-
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:
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?
-
Thanks for your valuable feedback..
I have other doubts, i.e
what about Linux?
Is PDK available for Linux environment also? (Our lots of application will develop on Linux)
Is any barrier for MODBUS? ( separate firmware is required?)
We need manuals for PDK and DLL. How can we get this?
-
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?
-
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.
-
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)
Variable Mapping
in Power PMAC
Posted
First build your project without PLC. Once it is succeeded then include your PLC and build and download it once again.