Sew IPOS Programmierhilfe

sawo333

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

j8K2JJGvSrGhQAAAABJRU5ErkJggg==

Brake time.png
Ich brauche eine Sprengen von mehr als 2 s , 2S - Limit.
So programmieren Sie es über IPOS ?

Vielen Dank für jede Antwort
 
Zuletzt bearbeitet:
Hi, die Fragestellung ist nicht klar. Bitte ggf. die Frage in Englisch nochmal stellen.
Hi, the question is not clear, can you please repeat this question in English?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Yes , better would be english to descript problem as my deutsch is not very good ,im new to IPOS programming(my local support he don´t want to call with me when i want to help with IPOS :( )

OUTPTS:
P620(DO01)-output stage ON(when motor run=1 ,when stops=0)
P621(DO02)- brake applied
P622(DO03)- brake released

I´m using MDX61B movidrive ,My aplications sequence which is working , but i want delays here to make in IPOS -- Task1:MOTOR RUN(P620 --- ON)---(P622 --- ON),(P621-OFF) = {DO03 is ON} - {DO02 is OFF} ,,,, Task2:MOTOR IS STOPPED(P620 --- OFF) ---(P622---OFF)---(P621-ON) = {DO02 is ON} - {DO03 is OFF}, And what i need is to delay turning on and off DB00 and DO02 when motor is stopping and starting.

I want to know how to for example define in IPOS compiler INPUTS and OUTPUTS from my drive to let IPOS compiler read or write them or SetBit,ClearBit on them.Because it is not wroking good i want use DO01 to condition IF(DO01==0) - do _Wait(5000);and do TASK2 ,,, ELSE - do _Wait(5000);and do TASK 1 .

And if it is possible can someone show me some better examples on DIG inputs , DIG outputs , their reading and writing in code and using _Movilink command . I´m quite confused from IPOS manual.


Thank you for any answer.

Here is what i have tried , but it was not working , because i was trying use DB00 instead of DO03:

Brake.jpg

I thought that when i #include <iob.h> is writen at start of my code , then if i write DO01 it will know that it is DIGITAL OUTPUT 01 - outoutstage ON(0,1) .
Do I have to somehow also use this bits inside iob.h file:
IOBH.jpg
 
Zuletzt bearbeitet:
So Probably i figgured it out :

123.jpg
So it was because i was using brake functions instead of IPOSoutput , so DO01 is defined when i write DO01? - What about analog inputs i didn´t find analog inputs defined here #include <iob.h> ? how i define analogs for reading and writing in code.
Can someone help me explain then _Movilink command and modyfing parameters and #include <constb.h>#include <iob.h> - this include means that every command that is inside this files when i open them in text editor is alredy defined and i can use it .
 
Before you begin:
If any output-setting is different from "IPOS output", the output is controlled driectly by the firmware, you cannot override this functionality. In your case:
DB00 has a fixed definition, DO01..DO03 are controlled by the firmware.
No matter, what you are programming in IPOS, nothing is going to happen with these 4 outputs.


OUTPTS:
P620(DO01)-output stage ON(when motor run=1 ,when stops=0)
P621(DO02)- brake applied
P622(DO03)- brake released

I´m using MDX61B movidrive ,My aplications sequence which is working , but i want delays here to make in IPOS -- Task1:MOTOR RUN(P620 --- ON)---(P622 --- ON),(P621-OFF) = {DO03 is ON} - {DO02 is OFF} ,,,, Task2:MOTOR IS STOPPED(P620 --- OFF) ---(P622---OFF)---(P621-ON) = {DO02 is ON} - {DO03 is OFF}, And what i need is to delay turning on and off DB00 and DO02 when motor is stopping and starting.


I don't think that it is necessary to make these delays in IPOS. You can use the motor brake function of the firmware. You had alread the correct parameters P731 and P732

P731 Brake release time:
The inverter switches on the output stage with f = 0, and after the pre-magnetization time it switches DB00 (release brake). After another little time (P731) the inverter starts with the rotation field (f > 0). P731 s typically 0,1 or 0,15 seconds. Of course, you make this time longer.

P732 Brake application time:
The inverter reduzes its rotating field to f = 0 and holds this state. Then it switches off the output DB00. Now the time, set up in P732 starts to run. After this time is over, the output state of the inverter is being turned off. So P732 is the time, that the brake needs from switching of DB00 until being applied. If you are using SEW-motors this time is typically 0,15 to 0,35 seconds. You can set this longer if you want.
I have never seen applications with P731 = 0 or P732 = 0. Even if the motor has no mechanical brake, i leave this values in their default.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Can you please help me better descript example or _Movilink command with this command i'm able to modify some parameters? It have to contain some structure? And it activates by calling this command?
 
You can use _MoviLink for reading or setting parameters The Standard form is
Code:
_MoviLink(ml_T1);

ml_T1 needs to be a global tag of the type MOVLNK and needs 7 H-Variables. You can define globals with the directive #pragma globals

For example:
Code:
#pragma globals          128 312   // global declared variables H127 .. H312

long a;                           // H128 variable a
MOVLNK ml_T1;                     // H129 - H135 data structures MoviLink Task 1 (7x)
long ML_T1_DATA;                  // H136 ML-data

A description of the MOVLNK is in the onlinehelp and in the IPOS programm manual.

A typical setup to set parameter in Task 1 is:

Code:
  // initialize
  ml_T1.BusType  = ML_BT_SBUS;                   // MOVILINK SYSTEMBUS
  ml_T1.Address  = ML_ADR_OWN;                   // MOVILINK ADRESSE (this device)
  ml_T1.Format   = ML_FT_PAR;                    // MOVILINK Parameter without PD
  ml_T1.Service  = ML_S_RD;                      // MOVILINK read
  ml_T1.DPointer = numof(ML_T1_DATA);            // MOVILINK data

  // write volatile parameter
  ml_T1.Service = ML_S_WRV;       // Service: Write volatile
  ml_T1.Index = xxxxxx;           // Index of parameter
  ML_T1_DATA = yyyyyyy;           // value to send
  _MoviLink(ml_T1);               // process movilink
  while(ml_T1.Result != 0);       // wait until movilink finished
 
It is possible to use it to change minimum speed
Speed.png
Code:
/*=============================================
              IPOS Source File
===============================================*/
#include <constb.h>
#include <iob.h>
MOVLNK Ml;
MLDATA Mld;


/*=============================================
      Main Function (IPOS Entry Function)
===============================================*/
main() {
  Ml.BusType  = ML_BT_SBUS;                   // MOVILINK SYSTEMBUS
  Ml.Address  = ML_ADR_OWN;                   // MOVILINK ADRESSE (this device)
  Ml.Service  = ML_S_WRV;
  Ml.Index = 8516;       // Index of P301
  Ml.DPointer = numof(Mld);








  /*-------------------------------------
              Initialisation
  --------------------------------------*/


  /*-------------------------------------
                Main Loop
  --------------------------------------*/
  while(1)


    {


      if(DO01==0)
  {
  _Wait(5000);
  _BitClear(StdOutpIPOS,3);
  _BitSet(StdOutpIPOS,2);


  }
  else
  {
   _Wait(5000);
  _BitClear(StdOutpIPOS,2);
  _BitSet(StdOutpIPOS,3);
   Mld.WritePar = 500; //Speed of P301
  _MoviLink(Ml);






  }








    }




  }
 
Zuletzt bearbeitet:
Zurück
Oben