Lacita

MrPLC Member
  • Content count

    21
  • Joined

  • Last visited

Posts posted by Lacita


  1. 5 hours ago, innoaloe said:

    I think I'm starting to get what's happening... but you need to try it.
    Delete all of the Initial Values set for your Socket variable. In the SktUDPCreate documentation it describes that both SrcAdr and DstAdr sections will be filled with zero once the socket is created. As UDP is an unconnected communication, you don't need to specify any source IP Address.

    If the UDPCreate is successful, fill the DstAdr with your target device IPAddress and PortNumber, then try the UDPSend command.


    The Handle value is basically just a pointer. If you Create a socket one time in the entire program, it will be filled with 1. If you create another socket, it will have 2 as the handle value. If say socket 1 is closed properly, next time you open a socket it will get 1 as the handle value. So it's predetermined by the CPU.

    Oh wow thank you very much innoaloe, it works!!!

    This is my setup, hope it will help for anyone have to face this problem.

     

     

    13.PNG


  2. 12 hours ago, innoaloe said:

    Port Number does not matter AFAIK, as long as it's not the common port number used in other TCP/UDP protocol (like port 80) or not being used by another Socket.

    I see in your variable tables that you are Initializing some values, such as the Socket definition.
    I think, prevent to Initialize the "Handle" value of the Socket. When you are Creating a Socket by the Create FB, you will get a new value assign to that Handle, just as a pointer. This is later on Outputted by the Create FB.

    Try checking the current value of the Handle in your Socket. It will not be able to send anything if the value is 0.

    I checked that Handle value, it's different from my initial value (= 0), it's 1 as you can see.

    But Send FB still not work. 

    What value should that Handle be? Or what shoul I do now?

    10.PNG


  3. 22 minutes ago, innoaloe said:

    It's basically the EDS file itself, in a human readable form.

    The naming conventions can be confusing since different vendor uses different naming sometimes. In this case, in the DX200 we have OUTPUT Instance 102 and INPUT Instance 101. My guess it means 102 are the memory instance to be sent to PLC and the 101 is the memory instance that need to read from PLC.

    In the NX1P side, Omron naming convention is always seen from the PLC side as the Scanner / Master unit. So the meaning of the INPUT Instance in Sysmac Studio actually refers to the memory instance on the DX200 that sends data to NX1P (Output in DX200 :)). That's why it is 102. The same applies for the OUTPUT Instance which is 101.

    So my setup was right yah? But the error still there.

    Maybe tomorrow I will try again with this setup, and dont transfer tag setting in synchronize (and dont tick to last option in this window) but transfer in connection window like Crossbow said.

    Please let me know if you regconize something wrong :(


  4. 7 hours ago, Crossbow said:

    My only thought would be that I once had a problem getting a unit to work when using Synchronize to send the settings to the EIP.  I actually did it from the Ethernet setup screen using the Transfer to Controller button at the bottom and it fixed itself.

    Is this that button you remind. (In this image it's disable because I dont connect with PLC)

    I also try this, but it's not work :( 

    b1.png


  5. 3 minutes ago, innoaloe said:

    I don't think the issue is with In/Out being reversed.
    How about the External IO Allocation page in the DX200? I believe it should be set up prior to generating the EDS otherwise NX1P2 will not know to which physical memory the 128 bits is to be read/write.

    Capture.JPG.7f45ac1bcfc8b2d202517c1019fd

    I left my working place so I cant check it right now for sure.

    But I can remember, because I setup this based on the Motoman guide documents, so it looks like your image. Except the External IO Allocation Screen has 1 more line (last line) and dont relate to the Ethernet. And I also create EDS files after these steps.


  6. 2 hours ago, IO_Rack said:

    Double check Motoman's definition of Input and Output instance values. Generally the Inputs and Outputs are referred to from the Master's (NX) perspective. If this is the case then you have them reversed.

    My English is not good, so I dont sure what you mean. The instance value for input, output and config I take from some example of Motoman Ethernet Guide Documents.

    I also try reverse tag set in NX (Input: 101, Ouput: 102). But the error still there.

    Thank you very much for replying me.


  7. 10 minutes ago, Michael Walsh said:

    Try making your Input and Output variables arrays of bytes, 16 bytes each.  If that works, then you can create a union that is either an array of bytes or an array of bits.  

    Is this what you mean?

    But the Error is the same.

    In the old Project, I used to connect successful. I think I missed some step..

    a1.PNG

    a2.PNG

    a3.PNG

    a4.PNG


  8. Hi guys, I'm trying to connect my PLC (NX1P2) to Motoman Robot through Ethernet. I follow the instructions but it's not work. This is my setup procedure:

    1. In PLC:

    - I check my IP Address of my PLC, it's: 192.168.1.10 and I test connection in "Controller => Communication Setup => Ethernet Communication Test => Test OK"

    - I add the EDS file of Motoman Robot (created from DX200 Controller) with address: 192.168.1.22

    1.png

    - Create 2 Global Varibles to test Input and Ouput: 

    4.PNG

    - Create Tag Set and Tag

    3.PNG2.PNG

    - Add device to Connection

    5.PNG

     

    - Build and Tranfer

    6.PNG

     

    - And this is the error

    7.PNG

     

    2. This is my setup in DX200 Controller of Motoman Robot

    8.jpg78.jpg

     

    Please help me solve this..