Hi,

I'm looking into it : )

J

Am 01.08.20, 16:17 schrieb "Christofer Dutz" <[email protected]>:

    Hi Stefano,

    I think such a Jira would be a good idea.

    I’m currently working on the Beckhoff ADS and would try to have a look as 
soon as possible.

    Chris



    Von: Stefano Bossi <[email protected]>
    Antworten an: <[email protected]>
    Datum: Samstag, 1. August 2020 um 11:25
    An: <[email protected]>, Julian Feinauer <[email protected]>
    Betreff: Re: Reading Array of Int

    Hi julian,

    if you need or think could simplify the development I could open a jira 
ticket and upload a couple of pcap capture for you.

    As I wrote I am using the 0.7.0 version from Maven and I am talking with a 
real Siemens 1200 with firmware 1.2 (pretty old but I didn't find a way to 
upgrade it ).

    Let me know.

    Thanks for help.

    Regards,
    Stefano

    On 30/07/2020 07:49, Julian Feinauer wrote:

    Hey Stefano, I will try to have a look later today. Are you using plc4x 
version 0.6 or 0.7?



    Thank you!



    Julian



    Holen Sie sich Outlook für 
Android<https://aka.ms/ghei36><https://aka.ms/ghei36>



    ________________________________

    Von: Stefano Bossi <[email protected]><mailto:[email protected]>

    Gesendet: Mittwoch, 29. Juli 2020, 12:32

    An: [email protected]<mailto:[email protected]>; Christofer Dutz

    Betreff: Re: Reading Array of Int



    Thanks Chris,



    yes definitely this is a workaround, I am experimenting and learning.



    I really appreciate your time on the investigation of the issue.



    Thanks,

    Stefano Bossi







    On 29/07/2020 12:08, Christofer Dutz wrote:



    Well that’s a workaround, but not a fix …



    We should focus on fixing this.



    I’ll investigate the issue as soon as I’m done with the Beckhoff ADS/AMS 
stuff …



    Perhaps Julian could find some time to investigate?



    Chris







    Von: Stefano Bossi 
<[email protected]><mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>

    Antworten an: 
<[email protected]><mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>

    Datum: Mittwoch, 29. Juli 2020 um 11:41

    An: 
<[email protected]><mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>

    Betreff: Re: Reading Array of Int





    I have adopted a workaround reading all the INT variable separated.



    --connection-string 's7:tcp://192.168.1.192?controller-type=S7_1200' 
--field-addresses '%DB1:274.0:INT' '%DB1:276.0:INT' '%DB1:278.0:INT' 
'%DB1:280.0:INT'



    In this way on the wire you have:

    the query:



    Frame 296: 111 bytes on wire (888 bits), 111 bytes captured (888 bits) on 
interface utun2, id 0



    Null/Loopback



    Internet Protocol Version 4, Src: 192.168.100.4, Dst: 192.168.1.192



    Transmission Control Protocol, Src Port: 57188, Dst Port: 102, Seq: 48, 
Ack: 50, Len: 67



    TPKT, Version: 3, Length: 67



    ISO 8073/X.224 COTP Connection-Oriented Transport Protocol



    S7 Communication



        Header: (Job)



        Parameter: (Read Var)



            Function: Read Var (0x04)



            Item count: 4



            Item [1]: (DB 1.DBX 274.0 INT 1)



            Item [2]: (DB 1.DBX 276.0 INT 1)



            Item [3]: (DB 1.DBX 278.0 INT 1)



            Item [4]: (DB 1.DBX 280.0 INT 1)



    the answer:



    Frame 297: 89 bytes on wire (712 bits), 89 bytes captured (712 bits) on 
interface utun2, id 0



    Null/Loopback



    Internet Protocol Version 4, Src: 192.168.1.192, Dst: 192.168.100.4



    Transmission Control Protocol, Src Port: 102, Dst Port: 57188, Seq: 50, 
Ack: 115, Len: 45



    TPKT, Version: 3, Length: 45



    ISO 8073/X.224 COTP Connection-Oriented Transport Protocol



    S7 Communication



        Header: (Ack_Data)



        Parameter: (Read Var)



            Function: Read Var (0x04)



            Item count: 4



        Data



            Item [1]: (Success)



            Item [2]: (Success)



            Item [3]: (Success)



            Item [4]: (Success)



    [INFO ] 10:15:44.727 it.fox.datapicker.HelloPlc4x.printResponse() - 
Value[value-0]: 10



    [INFO ] 10:15:44.733 it.fox.datapicker.HelloPlc4x.printResponse() - 
Value[value-1]: 11



    [INFO ] 10:15:44.737 it.fox.datapicker.HelloPlc4x.printResponse() - 
Value[value-2]: 12



    [INFO ] 10:15:44.741 it.fox.datapicker.HelloPlc4x.printResponse() - 
Value[value-3]: 13



    Unfortunately my java knowledge are not so advanced to fix the bug in 
reading the array in a single command, anyway there’s a workaround.



    Hope this mail help some newbies like me to find the right way to read data 
from the PLC.



    Regards,

    Stefano



    On 28/07/2020 11:38, Stefano Bossi wrote:



    Dear plc4x forum,



    I have found a possible problem in reading an array of INT.

    I am using the HelloPlc4x app for testing and I am trying to read the field 
address: '%DB1:274.0:INT[3]'



    In the request, captured via wireShark I can see the query:



    Frame 3: 75 bytes on wire (600 bits), 75 bytes captured (600 bits) on 
interface utun2, id 0



    Null/Loopback



    Internet Protocol Version 4, Src: 192.168.100.4, Dst: 192.168.1.192



    Transmission Control Protocol, Src Port: 54543, Dst Port: 102, Seq: 1, Ack: 
1, Len: 31



    TPKT, Version: 3, Length: 31



    ISO 8073/X.224 COTP Connection-Oriented Transport Protocol



    S7 Communication



        Header: (Job)



        Parameter: (Read Var)



            Function: Read Var (0x04)



            Item count: 1



            Item [1]: (DB 1.DBX 274.0 INT 3)



                Variable specification: 0x12



                Length of following address specification: 10



                Syntax Id: S7ANY (0x10)



                Transport size: INT (5)



                Length: 3



                DB number: 1



                Area: Data blocks (DB) (0x84)



                Address: 0x000890



    and the response:



    Frame 4: 75 bytes on wire (600 bits), 75 bytes captured (600 bits) on 
interface utun2, id 0



    Null/Loopback



    Internet Protocol Version 4, Src: 192.168.1.192, Dst: 192.168.100.4



    Transmission Control Protocol, Src Port: 102, Dst Port: 54543, Seq: 1, Ack: 
32, Len: 31



    TPKT, Version: 3, Length: 31



    ISO 8073/X.224 COTP Connection-Oriented Transport Protocol



    S7 Communication



        Header: (Ack_Data)



        Parameter: (Read Var)



            Function: Read Var (0x04)



            Item count: 1



        Data



            Item [1]: (Success)



                Return code: Success (0xff)



                Transport size: INTEGER (0x05)



                Length: 6



                Data: 000a000b000c



    The 3 INT I would like to read are there: 000a, 000b, 000c but in the 
response of:



    PlcReadResponse syncResponse = readRequest.execute().get();



    only the first one is present.



    I read in jira that there was a similar bug here 
PLC4X-57<https://issues.apache.org/jira/browse/PLC4X-57><https://issues.apache.org/jira/browse/PLC4X-57><https://issues.apache.org/jira/browse/PLC4X-57><https://issues.apache.org/jira/browse/PLC4X-57>,
 is this the same problem?



    Thanks for your help.



    Regards,

    Steafano Bossi













Reply via email to