Send and receive data via IRC5-profinet master and an end-effector slave
Hi all,
We have an IRB 6640 from 2012, with an IRC5 controller with Robotware 5.16. There is a profinet card CP1616 installed inside. We have an end-effector attached to the robot, whose force, rpm, etc can be set. Owing to the older robotware version, we were unable to use RobotStudio for the configuration. Instead, using Siemens TIA Portal, we managed to configure the profinet card together with the IRC5 as the master and the end-effector control box as the slave, with 8 bytes DI and 8 bytes DO modules added, to send and receive info to and from the end-effector.
We now want to send some data, for example, "set_speed = 3000 rpm" to the end-effector. Since this is an integer value, it first needs to be converted into its binary 101110111000, which can then be transmitted as a group digital output signal (of, say, 2 bytes size) to the end-effector control box. Is this thought process right? If not, it would be great if someone could explain how the process works. And if yes, then we are stuck because this is completely out of our expertise that we are not sure how to proceed:
- how is the signal set up in the IRC5?
- how do we write this in the program, can we just refer to the signal name and set it to 3000 (and the conversion to binary happens internally) or do we need to first convert it to binary and then set the binary value to the signal in the program?
[Our background is not robotics/electrical engineering, so if you can explain things as if you would to a child, then we would highly appreciate it! ]
0
Answers
-
Hallo, look to "technical reference manual - RAPID overview".What you need is IO-unittype, io unit and signal definition, all in EIO.cfgFor instance:#
EIO_BUS:
...
-Name "DeviceNet1" -BusType "DNET" -ConnectorID "PCI1"\
-ConnectorLabel "First DeviceNet"
...
#
EIO_UNIT_TYPE:
...
-Name "KEMP_ARC" -BusType "DNET" -VendorName "KEMPPI"\
-ProductName "KempArc" -DN_VendorId 90 -DN_ProductCode 12\
-DN_DeviceType 12 -DN_ProdInhibitTime 50 -DN_C1Type "COS"\
-DN_C1OutputSize 8 -DN_C1InputSize 8 -DN_C2Type "COS" -DN_C2InputSize 8\
-DN_QuickConnectEnabled
...
#
EIO_UNIT:
-Name "B_AW_PROC_40" -UnitType "KEMP_ARC" -Bus "DeviceNet1" -DN_Address 5
...
#
EIO_SIGNAL:
...
-Name "goMemoryChannel" -SignalType "GO" -Unit "B_AW_PROC_40"\
-UnitMap "32-39"This declares a groupoutput on a welding power source which is connected via DeviceNet.Example in from RW 5.15.The value of UnitMap depends on protocol of your IO device.Once mapped, in Rapid you just assign "SetGO goMemoryChannel, 12;" (to set the Channel to 12).In this case, there is only 1byte 8 bits. With 2bytes on a PLC you might to have swap lower and upper byte.Things are more tricky with analog values (but try to read the manual ;-) )
1 -
Treating it as an analog is the way to go. I have posted probably more than one example of how to map this out.Lee Justice0
-
Apologies for the late reply, but matti, your example provided the link that was missing in our understanding of the whole process.We added a few GO signals and set some values to it and it seems to be sending out these values correctly, though our end effector didn't seem to respond to it, but that's something new for us to dive into now, before I post more questions!But thanks for the nudge in the right direction (including the advice to read the manual )0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 800 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings