Floating point value over PROFINET

  • Guys,


    I have an IRC5 controller connected to a Siemens PLC via PROFINET. Is it somehow possible to directly receive floating point values, e.g. 3.75 or -1.25? Somebody told me to use the analog signal type. Is that possible and if yes, could somebody give an example on how to set it up on the robot side?


    Appreciate your help!

  • I read a great example today in the forums.robot.studio where somebody tested this out with success for GO to PLC. You will still have to scale your floating point to a whole number before sending over profinet. From what I understand as long as the bit values are the maximum + and - values needed and twos compliment is selected in the signal params you will be okay. Although you will still have to do some math as the value will be a int when received in the robot.


    I will be testing this out tomorrow as well. I have the forum discussion open on my desk that I am referring to and can post a link tomorrow.


    In the ABB Technical Overview for System Parameters there is a section going over analog outputs.

  • You can use folllowing code:

    those byteX are 8 bitwise grouped outputs/inputs to/from PLC, and should be set/read in the calling routines.

    No analog signals used (that would be kind of nogo imho)

  • You need 4 groups, each 8 bits. The value of those 4 bytes are represented by the variables value1, value2 ...

    On PLC side you can just copy a float value onto the same address that goes to those 4 bytes on the robot, no conversion on PLC side needed. On Siemens PLC a float occupies 4 bytes, in standard IEEE format. With the two routines these 4 bytes are raw copied into/from the storage of a real value on the robot. Then the robot has the same bytes in his storage as the PLC. By addressing them as a real value, you get the same real value as on the PLC, because the robot internally also uses the same IEEE format.

Advertising from our partners