1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. Fanuc Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Creating a Real-time robot torque monitor in PLC HMI

  • Famous_Fella
  • June 14, 2020 at 2:47 PM
  • Thread is Unresolved
  • Famous_Fella
    Reactions Received
    25
    Trophies
    4
    Posts
    131
    • June 14, 2020 at 2:47 PM
    • #1

    As the title says, I am trying to create a real time robot torque monitor screen where the end-user will be able to monitor real time robot crucial parameters like disturbance torque, torque average from servo DSPs, OVCs and temperature simulated from servos all these in an effort to give my clients a better way to understand if their programs are smooth and healthy for their robots and take actions if not.

    My strategy was at first to pull all the system variables I need and store them into 16bit Group Outputs in a BG LOGIC program and from there directly to the PLC but to my bad luck all of the values read are 90% decimal so I cannot store them in GOs.
    Second approach was to store them directly to Registers and have the PLC pull them out using explicit messaging but this solution will not work really well because having a PLC bit always open for the explicit message, doesnt update the data continuously and having a reset output of the explicit message bit every cycle doesnt seem like a good option to me.

    Also I must account for the fact that every PLC variable needs at least 100ms to reach the HMI. BG LOGIC scan time and Ethernet IP communication between Robot and PLC are 8ms set.

    Is there any other optimal way of storing these decimal values directly to GOs?

    Edited once, last by Famous_Fella (June 14, 2020 at 2:57 PM).

  • HawkME
    Reactions Received
    568
    Trophies
    11
    Posts
    3,268
    • June 14, 2020 at 2:57 PM
    • #2

    Don't bother with GOs. Use registers. Put a 100 ms self reseting timer in the plc that triggers the explicit message read.

  • Famous_Fella
    Reactions Received
    25
    Trophies
    4
    Posts
    131
    • June 14, 2020 at 3:01 PM
    • #3

    Thank you HawkMe. I browsed the forum all weekend before creating the thread but all I found was a solution to apply a strategy that would send have the integer half the decimal portion and have the PLC re-assemble the number. I will go with the Timer reset function strategy but I would be curious to know how could I brake a decimal number at the robot side without the Math add-on option on the robot ?

    I guess its not possible yes ?

  • HawkME
    Reactions Received
    568
    Trophies
    11
    Posts
    3,268
    • June 14, 2020 at 4:13 PM
    • #4

    I suppose you could split the decimal and integer apart and reassemble but that's a lot of unnecessary work if have the ability to read registers directly.

  • andreic
    Reactions Received
    24
    Trophies
    4
    Posts
    282
    • June 15, 2020 at 8:42 AM
    • #5

    What HMI model you have? If it's possible why not read the data directly into the HMI, without sending it to the PLC and then to the HMI?

  • Famous_Fella
    Reactions Received
    25
    Trophies
    4
    Posts
    131
    • June 15, 2020 at 8:55 AM
    • #6

    I don't have the HMI

    Quote from andreic

    What HMI model you have? If it's possible why not read the data directly into the HMI, without sending it to the PLC and then to the HMI?

    I am using an OMRON NA5 HMI. I also just checked that I have the HMI Device (SNPX) R553 installed on the robot but I never bothered to learn SNPX . Can you please point me to the correct manual describing in debth the HMI SNPX function ?

  • andreic
    Reactions Received
    24
    Trophies
    4
    Posts
    282
    • June 15, 2020 at 11:28 AM
    • #7

    A google search returns: https://pdfslide.net/documents/igni…industrial.html

    Instead Kepware you just use your HMI.

  • MMCINTIRE
    Reactions Received
    2
    Trophies
    3
    Posts
    29
    • June 15, 2020 at 2:34 PM
    • #8
    Quote from ps0f0r

    I don't have the HMI

    I am using an OMRON NA5 HMI. I also just checked that I have the HMI Device (SNPX) R553 installed on the robot but I never bothered to learn SNPX . Can you please point me to the correct manual describing in debth the HMI SNPX function ?

    The manual for the GE Series 90 SNPX is MARUCHMID06121E ... depending on the version of software you are using you might also be able to use Modbus/TCP or OPC UA to read registers with the PLC. These are available with option R553 in version 9.10 or later I believe. The manual for the Modbus/TCP and OPCUA is MARUCHOPM05191E.

    Also, if you have troubles configuring your SNPX addresses, there are some posts on this forum for assigning the SNPX addresses.

  • Online
    DaveP
    Reactions Received
    23
    Trophies
    4
    Posts
    201
    • June 15, 2020 at 2:48 PM
    • #9

    This is an example of some entries in the $SNPX_ASG variables. The HMI will be able to see robot registers, string registers, last alarm, alarm number, alarm text, alarm history, TP program, etc. The HMI can see robot variables by adding them to the $SNPX_ASG list. The HMI variable references the number in the $ADDRESS field. You also need to set the $NUM_CIMP variable to at least a 1 or higher to allow the HMI to see the variables, this is in the $SNPX_PARAM variable. I've had to set the number to 2 or higher on some cells to make it work properly.

    [*SYSTEM*]$SNPX_ASG Storage: CMOS Access: RW : ARRAY[80] OF SNPX_ASG_T

    Field: $SNPX_ASG[1].$ADDRESS Access: RW: SHORT = 1

    Field: $SNPX_ASG[1].$SIZE Access: RW: SHORT = 1000

    Field: $SNPX_ASG[1].$VAR_NAME Access: RW: STRING[37] = 'R[1]@1.1'

    Field: $SNPX_ASG[1].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[2].$ADDRESS Access: RW: SHORT = 1001

    Field: $SNPX_ASG[2].$SIZE Access: RW: SHORT = 2000

    Field: $SNPX_ASG[2].$VAR_NAME Access: RW: STRING[37] = 'R[1]'

    Field: $SNPX_ASG[2].$MULTIPLY Access: RW: REAL = 0

    Field: $SNPX_ASG[3].$ADDRESS Access: RW: SHORT = 3001

    Field: $SNPX_ASG[3].$SIZE Access: RW: SHORT = 1000

    Field: $SNPX_ASG[3].$VAR_NAME Access: RW: STRING[37] = 'SR[1]'

    Field: $SNPX_ASG[3].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[4].$ADDRESS Access: RW: SHORT = 4001

    Field: $SNPX_ASG[4].$SIZE Access: RW: SHORT = 40

    Field: $SNPX_ASG[4].$VAR_NAME Access: RW: STRING[37] = '$alm_if.$last_alm'

    Field: $SNPX_ASG[4].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[5].$ADDRESS Access: RW: SHORT = 4041

    Field: $SNPX_ASG[5].$SIZE Access: RW: SHORT = 60

    Field: $SNPX_ASG[5].$VAR_NAME Access: RW: STRING[37] = 'ALM[1]@6.6'

    Field: $SNPX_ASG[5].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[6].$ADDRESS Access: RW: SHORT = 4101

    Field: $SNPX_ASG[6].$SIZE Access: RW: SHORT = 400

    Field: $SNPX_ASG[6].$VAR_NAME Access: RW: STRING[37] = 'ALM[1]@12.40'

    Field: $SNPX_ASG[6].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[7].$ADDRESS Access: RW: SHORT = 4501

    Field: $SNPX_ASG[7].$SIZE Access: RW: SHORT = 600

    Field: $SNPX_ASG[7].$VAR_NAME Access: RW: STRING[37] = 'ALM[E1]@6.6'

    Field: $SNPX_ASG[7].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[8].$ADDRESS Access: RW: SHORT = 5101

    Field: $SNPX_ASG[8].$SIZE Access: RW: SHORT = 4000

    Field: $SNPX_ASG[8].$VAR_NAME Access: RW: STRING[37] = 'ALM[E1]@12.40'

    Field: $SNPX_ASG[8].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[9].$ADDRESS Access: RW: SHORT = 9101

    Field: $SNPX_ASG[9].$SIZE Access: RW: SHORT = 40

    Field: $SNPX_ASG[9].$VAR_NAME Access: RW: STRING[37] = '$TP_DEFPROG'

    Field: $SNPX_ASG[9].$MULTIPLY Access: RW: REAL = 1

    Field: $SNPX_ASG[10].$ADDRESS Access: RW: SHORT = 9141

    Field: $SNPX_ASG[10].$SIZE Access: RW: SHORT = 40

  • Famous_Fella
    Reactions Received
    25
    Trophies
    4
    Posts
    131
    • June 16, 2020 at 7:02 PM
    • #10

    I finally chose to use the explicit message way as I was unable to setup the SNP communication successfully on the HMI side. I was not able to establish a connection from the HMI to the robot as an external device. The only external devices I could add from sysmac studio were other Omron CPUs and the vendor list was only Omron. anyway, here is a quick video with the result IMG_1036.mp4

    Yeah, J6 is partying a lot on those kinds of programs

    Edited once, last by Famous_Fella (June 16, 2020 at 7:14 PM).

  • dudz
    Reactions Received
    12
    Trophies
    2
    Posts
    65
    • February 7, 2024 at 3:38 PM
    • #11

    Could you share the variables you used in this project please?

  • ssaul
    Reactions Received
    8
    Posts
    54
    • March 28, 2025 at 8:01 AM
    • #12
    Quote from Famous_Fella

    I finally chose to use the explicit message way as I was unable to setup the SNP communication successfully on the HMI side. I was not able to establish a connection from the HMI to the robot as an external device. The only external devices I could add from sysmac studio were other Omron CPUs and the vendor list was only Omron. anyway, here is a quick video with the result IMG_1036.mp4

    Yeah, J6 is partying a lot on those kinds of programs

    Could you share the variables you used in this project please?

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download