RobotStudio event

Analog Signal Scaling

Hello to all. 
i have interfaced Siemens PLC and ABB irc5 for XYZ-coordinates transfer from plc to irc5. i am getting confused in defining Analog Signal. Max/Min {Logical, Phy, Bit} values to read correct data sent from siemens plc.
As, talking about sending these values via profinet (Anybus gateway Profinet to DeviceNet), that is not an analog output of any sensor (0-10v etc).  That's simply sending data over profinet.  Very different.  What will be the Logical,Phy and bit value in this case.
Bits swapping i came to know (Big Endiannes (plc) and Little Endianness (irc5) i have already done)..
Hope i make my question clear to understand..
A little help to understand the analog signal parameters..
Tagged:

Comments

  • You dont need to map the signals as analogue inputs. You can map them as group inputs instead (GI instead of AI). But then you have to calculate negative values in rapid code.
    FYI, byte swapping can be done directly in EIO by mapping e.g. ”8-15,0-7”.
    If you want to use analogue signal, try leave physical and logical fields 0 to begin with.
    -----------------
    David
    Swedish freelance ABB robot programmer
  • thanks for your help. I am currently trying with analog input.
    As per my understanding Max/Min Logical value and corresponding Max/Min Bit value are the main players of configuration. In my case let's X-coordinate minimum value is "136.52" and maximum value is "4172.35". These are just random numbers.I did configured the output from plc (using swap, multiplication,division and conversion from real to DInt). The value at output of plc is 136.52 (checked using monitoring function on,  in siemens tia portal) but the input at the IRC5 is not the same.
    it some times run towards the minimum logic value or if i keep logical value = 0 it gives minimum bit value as X-Coordinate value (analog input).
    any help for Logical and Bit value, how they are related and how they manipulate the result.
  • To be honest I never understood how the different scalings act, especially when they are used combined. The manual is not giving a good explanation either. 
    So you use DInt? 32 bit value? You can’t use decimals with integer values so I would have just sent the values to a 32 bit group input as integers, e.g. 123.45 sent as 12345 and then divide by 100 in rapid code before use. No analog input, no scaling or anything in eio.cfg.
    -----------------
    David
    Swedish freelance ABB robot programmer
  • Here is an example of analog mapping:

          -Name "aoEqu1F1" -SignalType "AO" -Unit "DP_SIMBOARD1" -UnitMap "4-15"\
          -EncType "UNSIGNED" -MaxLog 100 -MaxPhys 10 -MaxPhysLimit 10\
          -MaxBitVal 4095

          -Name "aoEqu1F2" -SignalType "AO" -Unit "BOARD10" -UnitMap "0-15"\
          -EncType "UNSIGNED" -MaxLog 100 -MaxPhys 10 -MaxPhysLimit 10\
          -MaxBitVal 65535

    For what you want to do, you should use signed integer, it will allow for the negative values.  Consider it like -5v to +5v.  It is more efficient bitwise than using group outputs.  Basically, you will have to play around with the scaling until you get it tuned in correctly.
    Lee Justice
  • @Newman
    Ok i ll give Group Input a try also. In fact i came across a post in the forum which mentioned

    "Signal exceeds max number of allowed bits"
    "Group signals consisting of 23 bits or less can be used in IF statements and assigned to the num datatype.
    Group signals consisting of 24-32 bits or less can not be used in IF statements"
    i also came across this limitation of maximum 23 bits mapping in group input, and the data will be 32 bit DInt. That's why i was a bit hesitant in using group input. 
  • @lemster68
    Sir thank you for your feedback. i have gone through your posts regarding analog signals. i am trying to fine tune the scaling factor by changing the values. just i am confused about the relationship between Logical and Bit values. Bit value for using 32 bit data should be 2147483647. But its not working with this range. Same for the Logical value, i need both physical and logical value same. but it seems dont work fine for me..

  • 32 bits I think would be appropriate for Unsigned integer.  With -5 to +5 think 16 bits negative to 16 bits positive = 32 bit range.
    Lee Justice
  • it's done successfully with 32 bits... :)
  • as per my understandings, about logical and bit values.. 
    the output of PLC controller after swap is in DWord format which is like "123456789". this is the value sent to IRC5 as analog input. 
    For 32 bits the Max bit value should be 2147483647 and as the input data at irc5 (From PLC contoller move block in DWord format) is also of same size, i should also keep the Logical value at 2147483647. now it covers the whole range of coordinates data, and read it correctly. 
    thanks for the help my respectable @lemster68 and @Newman ...
  • Thanks for giving feedback on the resolution of the issue.
    Lee Justice