sew movidrive and ipos plus programming

liew_sc

Member
Join Date
Jul 2002
Posts
2
any movitools programming
experient to share ?

about to write positioning program using SEW movitools ipos plus. must read few manual and start programming in few days time any of you have and thing to share with ??

the manual say the exicute time

task 1
1.0 ms / program line
task 2 (fast)
0.5 ms / program line

in assembly langusge !

how would you comment this processor in
this digital age.

liew_sc
 
SEW-Eurodrive's IPOS programming language is resident in
their MoviDrive products. A full set of features are
available, dealing mostly with moving the motor on a
set pattern or velocity, like any good motion package.

IPOS executes in a line-by-line fashion, and is very fast,
indeed for the product it is associated with. Keep in mind
that the regulators on the drive electronics themselves are
much faster. The speeds you stated were for the IPOS
language.
 
IPOS example program listing

It does not mean much without a functional diagram and
schematics, but, if you were interested in what a finished
IPOS program looks like, here is one example.

=/=/=/=/

Initialize interrupt as M1, on error

SETINT ERROR M1

Initialize variables
Run Ramp, Run Speed

SET H321 = 4000
SET H322 = 4000
SET H323 = 3000
SET H324 = 3000
SET H325 = 4000
SET H326 = 4000
SET H327 = 3000
SET H328 = 3000

Jog Ramp, Jog Speed

SET H329 = 800
SET H330 = 800
SET H331 = 3000
SET H332 = 3000

Jog Increment - CCW
SET H333 = 300
Jog Increment - CW
SET H334 = 300

SET H313 = 11500
SET H314 = 73500
SET H315 = 12000

MAIN LOOP START
If command not requested, see if JOG CW…

M9 :JMP LO I0000000000001000, M2
SET H320 = 0
BMOV H320.0 = H473.7
WAIT 500 ms
JMP H320 == 1 , M3
JMP UNCONDITIONED , M2
M3 :CALL M4

JOG CCW
If JOG CCW not requested, see if JOG CW

M2 :JMP LO I0000000000000010, M5
CALL M6

JOG CW
If JOG CW not requested, end to HOUSEKEEPING

M5 :JMP LO I0000000000000100, M7
CALL M8

HOUSEKEEPING,
Then go back to MAIN LOOP START

M7 :BMOV H481.2 = H483.4
JMP UNCONDITIONED , M9

JUMP Areas
- - - - - -

M4 = Move command

M4 :ASTOP IPOS ENABLE
SETSYS POS. RAMP = H321
SETSYS POS.SPEED C(C)W = H323
BMOV H481.2 = H483.4
SET H319 = H314
GOR NOWAIT H319
SET H316 = H492
SUB H316 - H315
M10 :JMP H511 < H316, M10
SETSYS POS. RAMP = H325
SETSYS POS.SPEED C(C)W = H327
M12 :JMP HI I0000000000010000, M11
JMP NOT IN POSITION, M12
M11 :ASTOP RAPID STOP
WAIT 100 ms
SET H492 = 0
SET H511 = 0

Stopped on proximity switch, or on counts.
NOW, move a ‘little more’, to engage the position verification proximity switch

GOR NOWAIT #200 inc
ASTOP IPOS ENABLE
RET

M6 = Jog CCW

M6 :JMP LO I0000000000000010, M13
JMP HI I0000000000000100, M13
SETSYS POS. RAMP = H329
SETSYS POS.SPEED C(C)W = H331
GETSYS H317 = ACT.POSITION
ADD H317 + H333
ASTOP IPOS ENABLE
GOA NOWAIT H317
BMOV H481.2 = H483.4
JMP UNCONDITIONED , M6
M13 :ASTOP TARGET POSITION
BMOV H481.2 = H483.4
RET

M8 = Jog CW

M8 :JMP LO I0000000000000100, M14
JMP HI I0000000000000010, M14
SETSYS POS. RAMP = H329
SETSYS POS.SPEED C(C)W = H331
GETSYS H318 = ACT.POSITION
SUB H318 - H334
ASTOP IPOS ENABLE
GOA NOWAIT H318
BMOV H481.2 = H483.4
JMP UNCONDITIONED , M8
M14 :ASTOP TARGET POSITION
BMOV H481.2 = H483.4
RET

M1 = Error trap


M1 :JMP LO I0000000000100000, M1
RET
END
 
Hey JD,

Do you know a how I could get Movidrive to jog off an end of travel limit switch? I've attended assembler and compiler training seminars, and haven't yet figured how to do that. Although, I do know how, if using Movidrive with devicenet.

Jeff
 
Getting a Movidrive to jog off an end limit is something I would also like to know how to do. The old Movidynes would just reference themselves off a limit, but these new drives - not so.

JeffB, if you know how to do this with device net, could you plese share this info? I tend to use Profibus, but it should work the same for both busses.

Thanks,

Doug
 
Hello Doug,

One of my biggest complaints about Movidrives, is that they won't allow you to manually jog off an end of travel. I have tested some code using assembler that will "automatically" jog away from an EOT, but it requires that the "enable" and "auto" discreet inputs to stay high throughout the whole move. Where the problem lies here, is that the fault code that I use in the PLC, will take away those drive inputs upon the fault output from the drive changing states. I have no way of knowing what type of fault the drive has.

But anyway, here's how I do this using a Movidrive that has a Devicenet interface card. I'm not sure about profibus, but with Devicenet, you have 3 input words, ( a word for drive status, the actual position word, and the actual speed word), and 3 output words, (the drive control word, the speed command, and the position command word). Whenever a drive faults, I check the input status word to see if an end of travel limit switch (or prox) is made, and if so, which one. If an EOT is made, I set a bit in the plc (I label it as "EOT jog permissive"). When this bit is high, and the operator initiates a jog in the proper direction, (CW jog if on the CCW switch), I send a value to the output control word,
that sets the jog+ or jog- bit (whichever the case may be) and sets the fault reset bit. When the drive is off the EOT switch and the fault is cleared, I reset the EOT jog permissive bit.

I'm sure I've made this clear as mud to you, if you happen to have RsLogix, I'll zip a file that has these rungs and email to you or post it here.

Hope this helped you,

Jeff
 
As stated the processing times of the IPOS program can be an issue but only for 1% or less of its applications.

The assembler is provided as an international programming environment that a user can immediately begin coding. The Compiler programming is a "C" type language and is all I use.

Jeff's application uses a canned IPOS program called the Bus Positioning Module. While easy to use it does not give you the full flexibility as writing code from scratch.

If this module is not used an EOT can be cleared in the IPOS interrupt routine. When on the EOT manual movement is not possibe so the reset must be carried out. This will cause the drive to back of the switch but the target position is still beyond this so an AXIS Stop (PStop) must be carried out to set this to the actual position.
 
Link VB 6.0 to MOVITOOLS C compiler

Hello,

I've written a C program for a drive inverter and now I have to connect a laptop (Visual Basic 6.0/serial comm.) to the inverter.
Is there anyone out there that can get me started with some VB 6.0 source code examples on this subject?

Thanks, Rob
 
Are you using the Movitools compiler?
As for the serial port, I havn't had much luck with anything but a genuine, built in serial port.
If you can post some more details, we could help.
What drive are you using? (Movidrive A or B, or Movidyne, or Movirack?)
What version of Movitools?
Does your laptop have a serial port?
Do you have an SEW RS232 to 485 converter?
 
Using VB to control the RS232 serial port is cumbersome with 6.0. If controlling the VFD safety can become an issue of the timeout detection has to be set at 500 ms or greater. Finally if using the our current Movilink protocol all the bytes transmitted must be exor'd for the final 'checksum' byte. Cumbersome but technially possible.

Attached are files to acheive this.
 
jdbrandt said:
It does not mean much without a functional diagram and
schematics, but, if you were interested in what a finished
IPOS program looks like, here is one example.

=/=/=/=/

Initialize interrupt as M1, on error

SETINT ERROR M1

Initialize variables
Run Ramp, Run Speed

SET H321 = 4000
SET H322 = 4000
SET H323 = 3000
SET H324 = 3000
SET H325 = 4000
SET H326 = 4000
SET H327 = 3000
SET H328 = 3000

Jog Ramp, Jog Speed

SET H329 = 800
SET H330 = 800
SET H331 = 3000
SET H332 = 3000

Jog Increment - CCW
SET H333 = 300
Jog Increment - CW
SET H334 = 300

SET H313 = 11500
SET H314 = 73500
SET H315 = 12000

MAIN LOOP START
If command not requested, see if JOG CW…

M9 :JMP LO I0000000000001000, M2
SET H320 = 0
BMOV H320.0 = H473.7
WAIT 500 ms
JMP H320 == 1 , M3
JMP UNCONDITIONED , M2
M3 :CALL M4

JOG CCW
If JOG CCW not requested, see if JOG CW

M2 :JMP LO I0000000000000010, M5
CALL M6

JOG CW
If JOG CW not requested, end to HOUSEKEEPING

M5 :JMP LO I0000000000000100, M7
CALL M8

HOUSEKEEPING,
Then go back to MAIN LOOP START

M7 :BMOV H481.2 = H483.4
JMP UNCONDITIONED , M9

JUMP Areas
- - - - - -

M4 = Move command

M4 :ASTOP IPOS ENABLE
SETSYS POS. RAMP = H321
SETSYS POS.SPEED C(C)W = H323
BMOV H481.2 = H483.4
SET H319 = H314
GOR NOWAIT H319
SET H316 = H492
SUB H316 - H315
M10 :JMP H511 < H316, M10
SETSYS POS. RAMP = H325
SETSYS POS.SPEED C(C)W = H327
M12 :JMP HI I0000000000010000, M11
JMP NOT IN POSITION, M12
M11 :ASTOP RAPID STOP
WAIT 100 ms
SET H492 = 0
SET H511 = 0

Stopped on proximity switch, or on counts.
NOW, move a ‘little more’, to engage the position verification proximity switch

GOR NOWAIT #200 inc
ASTOP IPOS ENABLE
RET

M6 = Jog CCW

M6 :JMP LO I0000000000000010, M13
JMP HI I0000000000000100, M13
SETSYS POS. RAMP = H329
SETSYS POS.SPEED C(C)W = H331
GETSYS H317 = ACT.POSITION
ADD H317 + H333
ASTOP IPOS ENABLE
GOA NOWAIT H317
BMOV H481.2 = H483.4
JMP UNCONDITIONED , M6
M13 :ASTOP TARGET POSITION
BMOV H481.2 = H483.4
RET

M8 = Jog CW

M8 :JMP LO I0000000000000100, M14
JMP HI I0000000000000010, M14
SETSYS POS. RAMP = H329
SETSYS POS.SPEED C(C)W = H331
GETSYS H318 = ACT.POSITION
SUB H318 - H334
ASTOP IPOS ENABLE
GOA NOWAIT H318
BMOV H481.2 = H483.4
JMP UNCONDITIONED , M8
M14 :ASTOP TARGET POSITION
BMOV H481.2 = H483.4
RET

M1 = Error trap


M1 :JMP LO I0000000000100000, M1
RET
END

Hi jdbrandt,

I'm having a movidrive programmed using IPOS, actually this is pre-programmed by the vendor. What I want to do is only edit the value of some of the position. My query is that, I don't know how to get into the ipos interface and see the ipos sourcecode. Do I just set the drive to INHIBIT mode then once I click SHELL I can access already the IPOS sourcecode?
 
To jog a Movidrive off the Limits a value of 2118 needs to be writtten to the Control Word. I am using Table Positioning via bus with a SEW DNet Gateway.

Hope this helps
 
SEW Parameter Files

Do you guys know what a "*.Par" File is?

I am working with a SEW drive, and I am trying to gain access to the parameters, through a VME system.

I have an executable named ANSITERM.EXE, and 3 files with the extension *.Par, each from each Servo drive used.

I downloaded the MoviDrive Tools Software from the web, but still I don't see the program that should open these parameter files.

I know this is Slightly Off-Topic......but since you guys seem to know the SEW drives....
 
_Wait command in Complier

Hi

I am aware that the only way you can use the _Wait command in the Compiler is with a constant or with a define name + a constant.

However I need to set up a timer system which can be set from an external device, in this case a DOP11A-10 panel.

So I looked at defining a TimerOne at say H50. Then using the compiler with _Wait (TimerOne) but of course this does not work.

Does anyone have a method for programming a timer which would work using my TimerOne example?
 
Last edited:

Similar Topics

Hi All, I'm in desperate need of help! On a customer site they have two movidrives linked together using an application module called...
Replies
3
Views
2,016
Hi. Working somebody with IPOS movidrive? I have problem with it. When I set IPOS, sometimes it set 6 word for komucation on profibus, sometimes...
Replies
0
Views
2,107
I am in a need to replace a SEW Eurodrive Movidrive Compact drive to a fan application ,but I need to use a drive that is for another project, and...
Replies
2
Views
4,416
Hi , I am trying to replace an old inverter with a new one and its giving me issues . Once the new one was installed , the S7-300 PLC started...
Replies
3
Views
97
What does the 24V operation of sew inverter mean? I can't make the inverter starting the motor
Replies
2
Views
420
Back
Top Bottom