This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Sitara AM3359 ICE V2 works with Profinet

Other Parts Discussed in Thread: AM3359

Hey,

i have a problem with the Profinet-example at the AM3359.

The processor operates correctly and the task run. The Ethernet LED2 is blinking. The LED_0 (Speed LED) lights up and the display shows the profinet example.

I read the Molex documentation for profinet on sitara, but without any solution.

This is my workflow:

I connect a Siemens CPU314C- 2 PN/DP over Profinet with the Sitara-board.

I include the GDSML-file in the Siemens-TIA-Portal and create the configuration successfully.

In TIA-portal, i gave the Molex-TI-device the name " molex-dev", the device-number "1" and the IP "192.168.0.2", such as the sub-net  "255.255.255.0"

In the TIA-configuration i connect ETH-Port2 from Siemens-CPU with the Eth-Port0 of the sitara.

On Port1 from Siemens-CPU, my PC is connected.

On the sitara, i set the Boot-jumper J5 between 2&3.

I set the CPSW/ICSS-Jumper between 2&3 for Profinet.

I turn the "ETH SLAVE ADD SEL" (Rotary Switch SW1) on "1" for the Profinet-slave-adress 1.

The sitara board run, but there isn't any communication.

After i start the the CortxA8-prozessor successfully, this text is shown in CCs-debugger:

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

[CortxA8] Network Added: If-1:192.168.0.20
Network Removed: If-1:192.168.0.20
Network Added: If-1:255.255.255.255

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

Does someone have an idea whats wrong with my settings?

Or can give me support?

Do i need the rotary switch?

Do i have to configure a Profinet-adress or Subnet in the software?

Regards,

Sebastian

  • Sebastian,

    The rotary switch is not used in the Profinet example provided in SDK.

    To connect to the device, the ICEv2 board should have a name set(same as configured in TIA i.e., molex-dev in this case). Right click on "molex-dev" in TIA and click "Assign device name to device". Once the name is assigned(you can monitor this via wireshark), it should connect.

    Regards,
    Vinesh

  • Hey Vinesh,

    ok thanks for the tipp with the rotary switch.


    Yes i know that the main issue for Profinet is the name of the device and the station number. I already checked that the device in TIA-Portal uses the name "molex-dev".

    But i found a string in iPNDrv.c on the sitara-profinet-example in line 48:

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

    #ifdef DCP_FILTER_TEST
    Uint8 DCP_SLAVE_NAME[] = "molex-devwn";
    #endif

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

    is this the device-name on the sitara board?

    Can this be the problem or do you have an other idea?

    Regards,

    Sebastian

  • Sebastian,

    As I mentioned in the previous post, the IO Device should have a consistent name to the PLC configuration if the connect should be successful. You can assign the name to the IO Device via TIA.

    Regards,
    Vinesh

  • Hey Vinesh,

    i gave the sitara a name in TIA-Portal and i wrote the same name in the "iPNDrv.c" -file in the profinet example on sitara.So i have the same name.

    I know from other profinet devices, that you have to configure a "Device-number". In TIA-Portal i gave the number 1 to sitara. But can i set a device-number in the example on sitara too? And wherer can i find this? You say the rotary switch on sitara is not used! So i have to set the device-number in software?

    Regards,

    Sebastian

  • Sebastian,

    You can NOT set the name of the profinet_slave example application via software(as you mentioned by modifying iPNDrv.c). 

    Please follow the instruction I gave above. You have to SET the device name manually using TIA. Connect the ICEv2 board to TIA(via PLC, or directly) and assign name to it(you can search assigning a name to IO device in TIA help for more info). Device number is NOT used here

    Regards,
    Vinesh

  • Hey Vinesh,

    thank you for the answer. I understood the problem!

    Now I'm connected to the sitara.
    But where can i send and receive data with PLC?

    In the functions " inputJ9" and "outputJ9" from main, i found the location to write to the array. Isn't it?

    I found "gbyInput_Data[MAX_DATA_FRAME_IO]" in the main. I think this is the array to receive data and "gbyCurrentData" to transmit data to the PLC. "gbyCurrentData" isn't an array, so i can only send one value.

    How can i send more values?  Like an array?

    And what is J9? In example they say it is a jumper, but in layout it is the RS232.?!?

    And in "outputJ9" i found "SetupI2CTransmitMan(0,0x44, gbyInput_Data[0])" is this the function to receive the data from a PLC?

    Do you have an idea?

    Regards,
    Sebastian

  • Sebastian,

    Your observation is correct, "gbyCurrentData" is used to send data to PLC and "gbyInputData" is the data received from the PLC. As you can see, these are variables internal to the Profinet stack.

    SetupI2CTransmitMan manipulates the Digital Outputs(LEDs) according to "gbyInputData", so that we can see what data is received from PLC. 

    J9 is an indication of jumper on ICEv1, on ICEv2 the Digital inputs are at J14.

    This is an example application which only illustrates the basic functions of Profinet RT. You cannot do much customization on the Input/Output data, for which you will have to contact the stack provider and get the stack source code.

    Regards,
    Vinesh

  • Hey Vinesh,

    your answer was very good!
     Thanks a lot.

    But do you mean i can't receive more than one value ( only "gbyCurrentData" ?)? Can i see the place where the data from "gbyCurrentData" sent to PLC? Or do you mean an array for sending can only change the stack provider?

    The next problem is "gbyInputData". I send the data from PLC to sitara, but in "gbyInputData" only a point is shown. Where is the code function which read the Profinet-protocol? Or is there any other possibility for reading the values from PLC?

    Regards,

    Sebastian

  • Sebastian,

    gbyInputData and gbyCurrentData are internal variables of the Profinet slave stack. The SDK only includes the library of this stack, and you have to contact the stack vendors to get the source.

    Regards,
    Vinesh

  • Hey together,


    so I have to accept that I can not change "gbyInputData and gbyCurrentData".


    I can send a Byte with gbyCurrentData and read out the value by PLC.

    But i can not receive a value from PLC. gbyInputData is already empty! On PLC i send a different value to each Address of the sitara board. But gbyInputData is already empty!

     

    Does  anyone  know the problem?

     

    @Vinesh do you know how i can contact Molex? Or can get the Profinet slave stack?

     

    Regards,

    Sebastian

  • Sebastian,

    Please visit www.molex.com, For more detailed information, you could start at profinet@molex.com

    Regards,
    Vinesh