RobotStudio event

Rapid and EIO on S4C+ built on IRC5

MiSe_ARU
MiSe_ARU
edited November 8 in RAPID Programming
A question for the veterans from a newbie :)

Question no.1:
Is it possible to send a number greater than 31 in a group signal that has a range of 5 bits ? I'm asking specifically about S4C+ control, because in the program it's used the "GO" set the number 33, can this system ignore the maximum range error and if so what does it physically send after this "GO"?

The problem occurred when I am flipping the RAPID syntax from S4C+ to IRC5 control, including keeping the I/O configuration, which I also have correctly shifted, since on IRC5 there is a change with mapping start from "0" but RAPID is without syntax change.
On IRC5 I am already getting an error with a maximum range of 31 decimal.

Is it possible that this happens at S4C+?
Overflow and truncation to 5 bits: if a number higher than 31 is set in the group signal, the S4C+ system will simply take the lowest 5 bits and send them, causing an overflow. For example, a value of 33 (in binary form 100001) would be truncated to 00001, which corresponds to a value of 1. In this way, the system ignores the overflow and sends only the allowed range 0-31, generating no error or warning from the higher bits.
OR
It may happen that the system ignores the setting of "GO" to 33 by setting the default value of 0 in "GO", or it may not set the value at all and leave the last value set.

Question no.2:
On the S4C+ was it possible to use the virtual output to connect a System Input with the Start At Main action ?
In EIO it is so used.
Is this common knowledge and with the advent of IRC5 has this changed ?

Note: Unfortunately I can no longer test the old program behavior anywhere on the old control.
Post edited by MiSe_ARU on

Comments

  • The maximum decimal value of a 5 bit group output is 31.
    As far as I am aware the S4C+ and the IRC5 would both handle this in the same manner.
    Is it possible that the group output was six bits and during conversion from S4C+ to IRC5 a bit got dropped?

    In S4C+ you had a virtual unit and map the virtual bits to it as you would for a 'real' unit.
    IRC5 you simply do not assign a unit to the signal and the controller takes care of the mapping.
  • MiSe_ARU
    MiSe_ARU
    edited November 10
    The maximum decimal value of a 5 bit group output is 31.
    As far as I am aware the S4C+ and the IRC5 would both handle this in the same manner.
    Is it possible that the group output was six bits and during conversion from S4C+ to IRC5 a bit got dropped?

    In S4C+ you had a virtual unit and map the virtual bits to it as you would for a 'real' unit.
    IRC5 you simply do not assign a unit to the signal and the controller takes care of the mapping.
    Hi, thanks for feedback graemepaulin,

    Here's a sample of EIO from S4C+
    EIO:CFG_1.0:3:1::
    EIO_UNIT:
          -Name "BOARD10" -Type "d328" -Bus "BASE" -Digin 16 -Digout 16

    EIO_GROUP_PHS = EIO_SIGNAL:
          -Name "IGI_PRGNO" -Type "GI" -Unit "BOARD10" -Phsig 6 -Length 5
          -Name "OGI_POSNO" -Type "GO" -Unit "BOARD10" -Phsig 6 -Length 5

    Here's a sample of EIO from IRC5:
    DEVICENET_DEVICE:
          -Name "d652_00" -VendorName "ABB Robotics"\
          -ProductName "24 VDC I/O Device" -Label "DSQC 652 24 VDC I/O Device"\
          -Address 10 -ProductCode 26 -DeviceType 7 -ConnectionType "COS"\
          -OutputSize 2 -InputSize 2

    EIO_SIGNAL:
          -Name "IGI_PRGNO" -SignalType "GI" -Device "d652_00" -DeviceMap "5-9"
          -Name "OGI_POSNO" -SignalType "GO" -Device "d652_00" -DeviceMap "5-9"

    So Mapping is one to one transfered. 
    (S4C+ start mapping form "1", IRC5 start mapping from "0").
    I know that 5 bits is a maximum of 31 decimal bits, I just need to find out how it behaves on S4C+, because in RAPID on S4C+ it was using SetGo 33 in the program area that normally occurs, which when flipping to IRC5 so this state was not serviced due to Error.

    In the last part I address the question if on S4C+ it was possible to assign for System Input with StartAtMain action with a link to virtual Output, which is not possible on IRC5 because you have to use INPUT.


  • It should not have worked in the S4C+, you should change it to 31 if the logic is trying to turn all 5 outputs in the group on.

    You can use a cross connection to link to a virtual output.