Welcome, Guest. Please login or register.
September 03, 2010, 05:41:03 PM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Robot Help and Discussion Center
| |-+  KUKA Robot Forum (Moderators: Werner Hampel, Martin H, SkyeFire)
| | |-+  IO Mapping in IOSYS.INI
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: IO Mapping in IOSYS.INI  (Read 1804 times)
Vlappe
Newbie
*
Offline Offline

Posts: 1


« on: September 05, 2008, 09:16:10 AM »

Hi All

Can anybody explain to me how the following works.
;digital inputs
INB1=1 ;$IN[9-16]
INW2=2 ;$IN[17-32]
INB4=5 ;$IN[33-40]
INB5=7 ;$IN[41-48]
INB6=6 ;$IN[49-56]
;Slave Inputs
INW16=896 ;$IN[129-144]
INW18=898 ;$IN[145-160]
INW20=900 ;$IN[161-176]
INW22=902 ;$IN[177-192]
INW24=904 ;$IN[193-208]
INW26=906 ;$IN[209-224]

I understand that in INB5=7, that your range starts at byte 5 but what is the 7.


Logged
RAS-Skordos GR
Jr. Member
**
Offline Offline

Gender: Male
Posts: 86



WWW
« Reply #1 on: September 05, 2008, 10:39:44 AM »

Hello Vlappe

I asked KUKA the same question once and here's what I figured out:

When you write INB1 it means...
...that you are talking about INput
...BYTE length 8-bits (could also be WORD INW 16-bits, for example)
...and the "1" means that the robot is starting the range from 9 and ends at 16. If it was "0" it would be from 1 to 8.
This is the LOGICAL range to which the robot is referring to.

Now, the second part, the "=1", refers to the actual physical signal. It also means range, in this example from 9-16, but it is the physical signal.

Be careful with the following example...
If you write INB1=0, then you are mapping the logical (software) range 9-16 to the actual physical range 1-8! This simply means that if in your program you have a line WAIT FOR $IN[9]=TRUE, it will only be fulfilled if a signal arrives at the physical input 1!

Hope this helped

Nikos
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 912


« Reply #2 on: September 05, 2008, 05:23:22 PM »

Depends on which section of IOSYS.INI you are in.

In a line like this:

INB1=5,2

Anything to the left of the "=" refers to the robot internal I/O table.  INB1 refers to the first 8 bits in the robot's I/O table.  In other words, $IN[1] through $IN[8].

Anything on the right side of the "=" refers to the remote resource.  Most of the time, it refers to the network address and byte address of a network I/O module.  So, if this line is in the [DEVICENET] section of IOSYS.INI, 5,2 refers to the device with the Devicenet network address (MAC ID) of 5, and Byte #2 on that device.

It should be noted that, while the robot I/O table numbers from 1 to whatever, the *network* devices byte numbering almost always starts at 0.  So 5,2 refers to the *third* input byte on the device at address 5.

Now, if there's only one number after the "=". that only turns up in certain I/O types, like Interbus (where bytes are counted sequentially around the entire network ring, IIRC), or single-group I/O like the Fast-Measure or new stuff like the O2I and VIO sections.

Usually, the best place to learn how this works is actually the comments in most modern copies of IOSYS.INI.  For the last few years, the factory IOSYS.INI has *pages* of comments at the end of it spelling out a lot of this stuff.

Logged
markopo
Full Member
***
Offline Offline

Gender: Male
Posts: 156



« Reply #3 on: October 31, 2008, 03:04:49 AM »

I have to add.

In KUKA adressing is allowed to assign as below:

INB2=2,x2 ;$IN[17-32]


In this example You assing 2 (two) bytes in for example master starting from second byte. So You can assing few bytes, words starting from chosen by Your area in I/o robot.

That way simplify way to quick assign Physical with logical I/O's.

Greets Marek
Logged
markopo
Full Member
***
Offline Offline

Gender: Male
Posts: 156



« Reply #4 on: October 31, 2008, 03:33:39 AM »

Sorry I've made mistake

In above example we assign 3 (third) Physical InputByte (0 - 1  - 2).

Sorry.
Logged
leguide59
Newbie
*
Offline Offline

Posts: 2


« Reply #5 on: October 31, 2008, 06:02:58 PM »

If you look more down on the iosys.ini, It explain you how does it work. after ENDSECTION
Logged
stefanm
Newbie
*
Offline Offline

Posts: 32


« Reply #6 on: November 02, 2008, 05:29:26 AM »



just to make it complete:
At byte 896 the physical memory for the interbus slave starts.

INW16=896 ;$IN[129-144]
Means word 16 (starting from zero) of the logical memory will be assigned to Byte-start address 896 of the physical memory (actually the first byte of the Interbus slave).

equal to:

inB32=896 ; $in[129-136]
inB33=897 ; $in[137-144]

For Profibus DP-slaves the phisical Io-range starts at 127


Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 912


« Reply #7 on: November 04, 2008, 10:25:19 PM »

I/O can be mapped anywhere using IOSYS.INI.  In fact, using byte-based assignment, I could easily assign Inputs 1-8 to a Devicenet node, Inputs 9-16 to a Profibus node, then Inputs 17-24 to the second byte of the first Devicenet node.  Basically, any byte in the robot's IO table can be assigned to any byte of any device networked to the robot.  Most of the time, most peole avoid criss-crossing assignments in this way in order to make their I/O tables less confusing.  But any I/O byte is fair game for assigning to any available hardware device.

Analog I/O works the same way, although all the bits for an analog word need to be contiguous, and analog setup requires an additional layer of settings.

The most recent versions of KSS now support some newer I/O types that I'm not yet completely familiar with.  One of the new elements in IOSYS.INI appears to be a means to set up "crossover" IO -- that is, you can connect certain outputs and inputs together in IOSYS.INI.  So if $IN[25] is "cross-connected" to $OUT[57], $OUT[57] will always follow the state of $IN[25].  Before this, you had to set up a $OUT[57]=$IN[25] in the SPS.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!