HI Julian, did you have the opportunity to have a look to the regression?
Do you want I open a ticket in jira ? Regards, Stefano Bossi On 07/08/2020 14:23, Stefano Bossi wrote: > > Hi Julian, > > unfortunately I think I found a regression in your code. > > I am using the compiled 0.8.0-SNAPSHOT version of the library which > fix the reading of INT Arrays, unfortunately this version isn’t no > more able to real STRING Array !!! > When I call a sync read of a STRING the > > |PlcReadResponse syncResponse = readRequest.execute().get(); | > > never come back, it freeze forever. > > Here are the captured frame when I ask for |--field-addresses > '%DB1:6.0:STRING[6]'| via the HelloPlc4x > > Request: > > |S7 Communication Header: (Job) Parameter: (Read Var) Function: Read > Var (0x04) Item count: 1 Item [1]: (DB 1.DBX 6.0 CHAR 8) Variable > specification: 0x12 Length of following address specification: 10 > Syntax Id: S7ANY (0x10) Transport size: CHAR (3) Length: 8 DB number: > 1 Area: Data blocks (DB) (0x84) Address: 0x000030 .... .000 0000 0000 > 0011 0... = Byte Address: 6 .... .... .... .... .... .000 = Bit > Address: 0 | > > Answer: > > |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: OCTET STRING (0x09) Length: 8 Data: > fe04746573740000 | > > The PLC respond correctly |0474657374| -> |test| STRING. > > I have downgraded the library to the 0.7.0 just for testing and it > works, the answer on the wire is the same and the |get()| call report > the data correctly. > > Is this a regression? > > Thanks, > Stefano Bossi > > On 03/08/2020 11:58, Julian Feinauer wrote: > >> Thank you Stefano, first for your feedback and second fort he >> compliments. >> >> >> >> We are doing our best and it feels really good if people see our >> efforts <3 >> >> Julian >> >> >> >> *Von: *Stefano Bossi <stefano.bo...@gmail.com> >> *Datum: *Montag, 3. August 2020 um 11:49 >> *An: *<dev@plc4x.apache.org>, Julian Feinauer >> <j.feina...@pragmaticminds.de>, Christofer Dutz >> <christofer.d...@c-ware.de> >> *Betreff: *Re: Reading Array of Int >> >> >> >> Thanks you guys !!!! >> >> I have downloaded and compiled the develop code and now I cloud read >> the INT array without any problem! >> >> You are managing a great project with a great support !!! >> >> Thanks, >> Stefano >> >> On 02/08/2020 21:08, Julian Feinauer wrote: >> >> Hi, >> >> >> >> sorry for the delayed working on it but I just took a look and think I >> fixed the issue. >> >> >> >> It seems that arrays where not properly implemented in the S7 Driver (?). >> >> >> >> I opened up a PR (https://github.com/apache/plc4x/pull/175) and hope >> that @Christofer Dutz finds some time to have a quick look (as he did most >> of the work there) and merge it, if he agrees with it. >> >> >> >> If you could try out the branch and give your feedback I would be happy. >> >> >> >> Thanks for the excellent preparation of work! : ) >> >> >> >> Julian >> >> >> >> Am 02.08.20, 20:40 schrieb "Julian Feinauer" >> <j.feina...@pragmaticminds.de> <mailto:j.feina...@pragmaticminds.de>: >> >> >> >> Hi, >> >> >> >> I'm looking into it : ) >> >> >> >> J >> >> >> >> Am 01.08.20, 16:17 schrieb "Christofer Dutz" >> <christofer.d...@c-ware.de> <mailto:christofer.d...@c-ware.de>: >> >> >> >> 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 <stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com> >> >> Antworten an: <dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org> >> >> Datum: Samstag, 1. August 2020 um 11:25 >> >> An: <dev@plc4x.apache.org> <mailto:dev@plc4x.apache.org>, Julian >> Feinauer <j.feina...@pragmaticminds.de> <mailto:j.feina...@pragmaticminds.de> >> >> 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><https://aka.ms/ghei36> <https://aka.ms/ghei36> >> >> >> >> >> >> >> >> ________________________________ >> >> >> >> Von: Stefano Bossi <stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com><mailto:stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com> >> >> >> >> Gesendet: Mittwoch, 29. Juli 2020, 12:32 >> >> >> >> An: dev@plc4x.apache.org >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org>; 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 <stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com><mailto:stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com><mailto:stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com><mailto:stefano.bo...@gmail.com> >> <mailto:stefano.bo...@gmail.com> >> >> >> >> Antworten an: <dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org> >> >> >> >> Datum: Mittwoch, 29. Juli 2020 um 11:41 >> >> >> >> An: <dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org><mailto:dev@plc4x.apache.org> >> <mailto:dev@plc4x.apache.org> >> >> >> >> 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><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 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >
signature.asc
Description: OpenPGP digital signature