Posts by tboekhorst

    Thank you HawkME .


    When I go to Background Logic: MENU > SETUP > BG Logic, my Program: DEMO_BG got STATUS; Stop. I feel ike it never runs.


    Can you explain why?

    When I manually set RUN.

    The following error occurs: Invalid Item for Mixed Logic..


    I am on a fanuc robot LR 200iC/5L, software version 7.50

    So I can use IF statement, but not IF THEN


    Code:

    --------------------------------------------------------

    Program name: DEMO_BG:


    IF (UO[6: Fault]), CALL DEMO_IO_OFF


    --------------------------------------------------------

    Program name: DEMO_IO_OFF:


    DO[101] = OFF

    DO[102] = OFF

    Hello,


    I am using background program to turn all outputs off when an error occurs:


    Code:


    LBL[1]

    IF UO[6: FAULT] = ON JUMP LBL[2]

    JMP LBL[1]


    LBL[2]

    DO[101] = OFF

    DO[102] = OFF


    However, I get the error: INTP-202.

    How can I fix this simple problem?

    I am not familiar with Pos lock and it is not mentioned in the DPM manual. I also don't know the inner work of DPM, but I'm guessing it is feeding the offsets received every ITP into its servo loop.

    Haven't worked with DPM myself. But would like to read more about it. I did look on the internet for a DPM manual, but couldn't find any. It would be very kind if you could send me the manual please; i will PM you my e-mail adress.

    After adding Inboud rules for both Roboguide.exe and HandlingPro.exe I was able to create a project tree.

    And followed your steps with succes.


    Thanks for your help massula !

    Thanks for your reply massula . When creating a cell in Roboguide the following error occurs: see picture.

    Do you know what is going on? I am running robotguide handelingPRO (trial) with administrator rights.


    "RGCCommonWorkcellWizard.RGCWorkcellWizardIntereface_CreateWorkcell


    Object reference not set to an instance of an object. at SimPRO.RGCCommonWorkcellWizard.RGCWorkcellWizardInterface_CreateWorkcell()"


    The software on our side (FTS) has camming/gearing functionalities, which makes it possible to rectify this inaccuracy over a CamTable ( hermann)


    However, the data does indeed need to come in faster to improve synchronization. There is already a connection to FANUC's web server via TCP/IP. Nevertheless, we would like to explore the possibility of master-slave communication using R648: User Socket Msg. The license is on the controller (R30iA Mate). Furthermore, the controller does not contain a KAREL license ( Famous_Fella).


    Your best bet would be using KAREL Socket Messaging function to send and recieve positional data to and from the robot with .csv file manipulation

    Is there any information I could find on Socket Messaging R648?

    Note: This involves reading out the position data of the robot into a python program.

    Thank you all for thinking along.


    I checked all the options above. With our team we came to the conclusion that we want to configure the robot as a master and FTS as a slave. The FTS system can make very accurate movements, and is therefore better able to serve as a slave of the robot. The FTS system has a camming and gearing functionality which I will not bother you with.


    So we are going to focus on getting the position data from the robot to a PC application (python) via TCP/IP.


    On the Robot Controller we have the following functionality:

    - R648 Socket User Msg


    The PC already has a connection by means of TCP/IP and can read the current position of the robot via the web server. If there are any more tips on how to get the robot position data I would like to hear that. Otherwise thank you very much for your help.

    Sorry for my late reply.

    1 Error SRVO-062 BZAL error is fixed!

    2 Error SRVO-220 Orded new fuses, so should be fixed!


    Do you know how to solve the SRVO-218 error?

    I am not using external E-stop.

    Error 2; SRVO-220 is fixed after ordering new fuses.

    Error 3; SRVO-218 is fixed after placing jumper pins like fmiroslav said.


    Thank you for your help.


    This post is solved! :)


    Thank you all for thinking along.


    FTS is a complex system that accurately determines its position based on MR sensors (0.1 micrometer accuracy). It can be controlled via Python by providing a position reference in position unit (pu = 1 micrometer). For example, the track is scaled from 0 to 80 000 pu (a circular or straight track does not matter. In the FTS software the track is plotted in a real number), give value 10 000 and the carrier of FTS will go to this possition very accurately.


    I don't see AB points on the picture.

    Do I understand correctly, that the robot has to follow the conveyor only on semicircle?

    If so, this is a clear case for circular linetracking.

    Correct. I didn't draw the points in the picture, but that is the correct way of thinking.

    The robot only has to follow the carrier on the FTS track on the half cirkle of the track.

    By synchronized do you mean that the robot and the carriage can be moving at the same time relative to each other (complex).

    Thanks for your reply HawkME and for thinking along.


    This is exactly what I have in mind. It is indeed quite complex.


    Currently, I have achieved synchronisation based on IO, I will give the robot and carrier a start signal and both will follow the track at the same speed. However, of course this is not really synchronous.

    Let me explain to you what kind of system is involved. It is called a flexible transport system (FTS).


    see the following video: FTS


    The robot must be synchronized with a carrier of this FTS system. Imagine that the track is in a cirkle like in the video (also see attachment). The robot is attached to the platform and must rotate a semicircle with a carrier of FTS from point A to B. When the movement is finished it goes back to point A and waits for a new carrier.


    Eventually the robot will have to perform a specific movement (depends on the customer), but for now I want to have the robot arm running synchronize with the carrier (from A to B) at all times.


    What do you think could be a valuable option to make this work?

    I want to read the robot position in the world-coordinate system (preferably as soon as possible). By means of these values I will make calculations to make another machine sync with the robot.

    Sorry for not clearifing enough.


    I made a brief summory:


    If read the robot positioning to PC:

    You will want to either read the position system variable directly or first store it in a register then read it from there.


    If writing the robot positioning from PC:

    You could do that by writing a position to registers then triggering the robot to move to that position in a TP program.


    Option 1) EXPLICIT MESSAGING

    Option 2) Tcp/ip or Http, User Socket Messaging

    Option 3) Using the pyModbus library for using Python and Modbus TCP to communicate between a robot and a PC. However, hawkME is telling TCP Modbus is typically done with a PLC.


    I will look into this. Thanks for your help so far.


    This morning I was in contact with a fanuc engineer, explained the situation and he advised to use FANUC Linetracking software and hardware.

    Any thoughts?

    Thanks HawkME for the anwswer.


    Important note that I forgot to mention.

    Firstly I want to try only writing the position data of the robot 'as fast as possible', so +- every 8ms from FANUC to PC.


    1 ) Is it possible to send GO (Group Outputs) with TCP/IP, Socket Server Messaging?

    Therefore will need a KAREL script if I am not mistaking.


    R648 - User Socket Messaging

    R632 - KAREL


    2) What about using CRMA15 (CRMA62) and CRMA16 (CRMA63)?

    Or is this only for DI/DO?

    Thanks for the reaction Fabian Munoz.

    I found sending group outputs XYZ WPR coordinates:


    GO[1:X POS]=($SCR_GRP[1].$MCH_POS_X*10)

    GO[2:Y POS]=($SCR_GRP[1].$MCH_POS_Y*10)

    GO[3:Z POS]=($SCR_GRP[1].$MCH_POS_Z*10)

    GO[4:W ANG]=($SCR_GRP[1].$MCH_POS_W*100)

    GO[5:P ANG]=($SCR_GRP[1].$MCH_POS_P*100)

    GO[6:R ANG]=($SCR_GRP[1].$MCH_POS_R*100)


    Note that I’ve multiplied the X, Y, and Z positions by 10, so Iwill have to divide by 10 in my PC program. Likewise I multiplied the W, P, and R angles by 100, so divide by 100.


    Run this as a program in the background with BG Logic.

    However in which way can I send the data to my PC?