Jump to content
OMRON Forums

teremock

Members
  • Posts

    13
  • Joined

  • Last visited

Everything posted by teremock

  1. I think it's easy to do over SSH connect. You can try something like the following samples scp username@b:/path/to/file /path/to/destination scp -P 7121 /users/admin/downloads/* root@155.138.150.12:/home/
  2. Sorry, I try to find link but I can't now ... I only remember that it was a Polish or Slavic site or a technical forum... Roman
  3. It seems I find necessary file. See attachment. ELP-EC-XML-File_V1.06.zip
  4. Hello Is there way to include Leadshine ELP-ECxxx (EtherCAT) servos into PowerPMAC project? It seems like IDE wants ESI xml file after detect EhterCAT slaves. Can anybody provide such ESI file? or some other advise for resolve that issue? Roman
  5. Yes, you are right. I find sample project with following code: OPEN PROG 100 DO { INC LINEAR TA 1 TS 0 f(JogZSpeed) Z(IncDistZ) } WHILE(1) CLOSE and PLC script: .... IF(JogZPlusIn) { IncDistZ = IncDist START 2:100 WHILE(JogZPlusIn){} ABORT 2 WHILE(Coord[2].ProgActive || Coord[2].DesVelZero == 0){} pmatch } IF(JogZMinusIn) { IncDistZ =-IncDist START 2:100 WHILE(JogZMinusIn){} ABORT 2 WHILE(Coord[2].ProgActive || Coord[2].DesVelZero == 0){} pmatch } ...... Thank you.
  6. Hello I implement Forward and Inverse kinematic for axis Z. Axis Z contains several motors. All works good with CS commands like cpx linear Z12.34 F10; But Now I need to JOG Z axis. Something like &Zj+ Is that possible or is there a some advice? Roman
  7. Hello Alex It seems I resolved the issue. I moved "error" code into *.plc script. And same code works perfect in PLC script. PLC code reads and copies the necessary axes ratios into GLOBAL arrays. After that, I can access to that GLOBAL arrays in kinematic scripts *.kin It is strange that compiler logic is different for *.plc and *.kin files. Thank you. Roman
  8. Eric, can you explain why following code in kinematic script: open forward (1) // Put Coordinate System number inside "(cs)" LOCAL mot; local ax; LOCAL ratio; ax = 1; mot = 1; ratio = Motor[mot].CoordSf[ax]; close ... raises following compiler error: ... Total Project download time = 3.344 seconds. Total Project build and download time = 3.344 seconds. There were errors during the download process and the download process has stopped. The following errors were found: 1 Error(s) C:\job\.....\PMAC Script Language\Kinematic Routines\Forward1.kin(18,1) : Error : ( error #31) invalid data : L322 = Motor[L320].CoordSf[L321] What is wrong? How to fix it? Roman
  9. Alex, thank you for detailed reply. Let me a bit explain: 1) I show Z kinematic code as sample only. In real case it will be 2 or 3DOF arm. Therefore, I need to use the *.kin scripts. 2) Yes, I know about a bit mask for used axes. In real code, I use: ... KinAxisUsed = KinEnaAxisZ + KinEnaAxisX + KinEnaAxisY; ... 3) Hmmm ... I will think and check ... 4) I try to implement forward1.kin script from PMAC Script Language\Kinematic Routines\Forward1.kin Please note that it is the short sample only. In real code, the MOT and AX variables are indexes in loops. I show this sample only to show compiler error for you. open forward (1) // Put Coordinate System number inside "(cs)" LOCAL mot; local ax; LOCAL ratio; ax = 1; mot = 1; ratio = Motor[mot].CoordSf[ax]; close I click Download All Programs and see the following error: ... Total Project download time = 3.344 seconds. Total Project build and download time = 3.344 seconds. There were errors during the download process and the download process has stopped. The following errors were found: 1 Error(s) C:\job\.....\PMAC Script Language\Kinematic Routines\Forward1.kin(18,1) : Error : ( error #31) invalid data : L322 = Motor[L320].CoordSf[L321] Maybe I need to somehow change the local declaration of AX variable? version of PPMAC v4.5.1.3 Roman
  10. Hello Alex Maybe "on fly" is not the correct word. but our equipment allows to have different configurations of manipulator axes. Some time it is XY only, some time customer adds rotation and angle axes XYZAC. All servo drivers are EtherCAT. If they are detached physically, Ether CAT shows error. Our desktop app starts and initializes ck3e with necessary actual axes to motor params. Also, we need to set necessary ratios that can differ in differ configuration of hardware. Therefore, when app starts, it sends: &1 #1->123.33X #2->33.21Y ... ... and so on for other manipulator config and start (to change that parameters every time over ck3e firmaware from PowerPMAC IDE is not suitable for customer) And if app sets ratios over that commands, kinematic routines code needs to know current values of ratios for correct mapping axes to motors at runtime. So, I understand that access to CoordSf[...] values over variable index is not possible? Roman
  11. Alex, thank you for quick reply. I understand, and You confirm, that I need to map all used in CS motors to axes and vice verse. But problem that in our solution CS configuration can be changed at any time over SSH commands. And I need to detect actual CS configuration in inverse() and forward() code at runtime. I try following code: LOCAL mot; local ax; LOCAL ratio; mot = 1; while(mot <= Sys.MaxMotors) { ax = 0; do { ratio = Motor[mot].CoordSf[ax]; ax++; }while(ax <33 && ratio != 0); if(ratio != 0) { KinPosAxis(ax) = KinPosMotor(mot) / ratio; } mot++; } But the compiler shows the following error for line: ratio = Motor[mot].CoordSf[ax]; ...\Forward1.kin(23,1) : Error : ( error #31) invalid data : L322 = Motor[L320].CoordSf[L321] It seems like compiler does not like AX variable and it wants a constant value in index of CoordSf[...] How can I use variable in index of CoordSf[...] ? Sorry if this issue too easy - I'm newbie in DT ck3e. Thank you Roman
  12. Hello I define following CS1: undefine all &1 #1->x #2->y #3->i #4->i Then I declare necessary kinematic for motors #3 and #4 only: open forward (1) // Put Coordinate System number inside "(cs)" if (KinVelEna > 0) callsub 100; // Double pass for velocity or error calcs KinAxisUsed = KinEnaAxisZ; N100: KinPosAxisZ = (KinPosMotor3 + KinPosMotor4) / 2000 * 360; close open inverse (1) // Put Coordinate System number inside "(cs)" KinPosMotor3 = KinPosAxisZ * 2000; KinPosMotor4 = (KinPosAxisZ - 100) * 2000; if (KinVelEna > 0) { // True for unsegmented PVT only KinVelMotor3 = KinVelAxisZ * 2000; KinVelMotor4 = KinVelAxisZ * 2000; } close I expect that DT will move X,Y as default built-in kinematic and move Z by my declared logic. But DT ck3e shows Z axis only: &1p Z0 Axes X and Y are invisible. Is possible to use default kinematic together with custom kinematic in one CS? If I add logic for X and Y into inverse() and forward() than all works fine &1p X0 Y0 Z0 Roman
  13. Hello Is there any news about Ethernet/IP support in C3KE? Roman
×
×
  • Create New...