Understanding IOSYS

  • Good Morning :smiling_face:


    Im trying to remember/understand what each argument does in the IOSYS file


    I tried to make various examples in the following code

    Please correct me if I am misinterpreting the way this works.


    Thanks :smiling_face:

  • From the comments section of later-version IOSYS:


  • IOSYS is hierarchical. The DRIVERS section controls which drivers are active, and assigns an integer "handle" to each active driver (Note: DO NOT alter these numbers, they are all pre-assigned). Such as:

    DEVNET=2,dnInit,dn2drv.o With no ; in front to comment out the line, this activates the MFC DeviceNet driver with "handle" 2.


    The integer "handle" is used by IOCTL commands for programatically dis/re-connecting modules (for tool changes).


    The name is a reference to the next layer down in IOSYS. Each driver has a "detailed" section marked by the name of the driver, inside square brackets, like so: [DEVNET]

    Directly beneath the driver section header, you put lines defining each "connection" between bytes of the robot's internal I/O table and bytes on the bus modules:

    [DEVNET]

    OUTB130=55,0,x1


    This example connects the 131st Output byte of the robot's internal I/O table (131st b/c the first byte is OUTB0, not OUTB1), which would be $OUT[1039] through $OUT[1046] to Module 55 (MAC ID 55 on the DeviceNet bus), Byte 0. The 'x1' is a multiplier -- setting this to 'x2' would allow you to map OUBT130 and OUTB131 to 55,0 and 55,1 respectively, in a single line. However, in some older versions of KSS, these multipliers can be unreliable, so approach with care.


    However, DeviceNet also requires a "scan list" file -- something that tells the robot how many devices are on the bus, and what their addresses/MAC-IDs are. This is DEVNET.INI:

    [krc]

    debug=0

    baudrate=500

    [1]

    macid=55


    The [KRC] Section controls the logging to DEVNET.LOG (Debug=0 is no logging, =1 is logging), and sets the baud rate on the bus.

    Then, for each device, there is a [1], [2], etc -- these numbers must be sequential. Under this number, MACID=?? tells the DevNet driver which addresses to look for. In this example, if the driver cannot get a response from a DeviceNet module on MAC ID 55, a DevNet fault message will be generated.

Advertising from our partners