You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@plc4x.apache.org by Christofer Dutz <ch...@c-ware.de> on 2020/08/01 07:16:36 UTC

Re: Reading Array of Int

Looking forward to it :-)
________________________________
Von: Cesar Garcia <ce...@ceos.com.ve>
Gesendet: Freitag, 31. Juli 2020 23:27
An: Apache PLC4X <de...@plc4x.apache.org>
Betreff: Re: Reading Array of Int

Hi Chris.

With the 0.6.1 (Aka Frankenstein code :-)) I solved every problem that I
was finding to get to the handling of the subscription (Type handling,
optimization, asynchronous responses from the PLC, etc.).

J ... is helping me to incorporate the code to the development branch. I am
not a Git expert, and the last thing I want is to damage something jeje.

Also, all these points are documented in Jira (including the pcap files).

For my part, I am waiting next week to be able to install a VPN and give
access to the S7-300 / 400 equipment (physical) and the tests can be
finished.

Best regards,

El vie., 31 jul. 2020 a las 3:42, Christofer Dutz (<
christofer.dutz@c-ware.de>) escribió:

> Hi Cesar,
>
> if you fixed any issues in that branch, that are not related to
> publish-subscribe and alarms, it would be great if you could port that to
> develop.
>
> Chris
>
>
>
> Am 30.07.20, 17:34 schrieb "Cesar Garcia" <ce...@ceos.com.ve>:
>
>     Hi Stefano,
>
>     I have made several modifications to the branch for a 0.6.1 revision.
>
>     If you have the time to try it you can download it from here
>
>     https://github.com/glcj/plc4x/tree/s7alarm
>
>     and a number of examples here,
>
>     https://github.com/glcj/PLC4XS7Examples
>
>     What version of PLC do you have?
>
>     Like the rest of the team, I will order to help you if you find any
> problem.
>
>     Best regards,
>
>     El mié., 29 jul. 2020 a las 6:32, Stefano Bossi (<
> stefano.bossi@gmail.com>)
>     escribió:
>
>     > 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 <st...@gmail.com> <
> stefano.bossi@gmail.com>
>     > Antworten an: <de...@plc4x.apache.org> <de...@plc4x.apache.org>
>     > Datum: Mittwoch, 29. Juli 2020 um 11:41
>     > An: <de...@plc4x.apache.org> <de...@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>, is this the same problem?
>     >
>     > Thanks for your help.
>     >
>     > Regards,
>     > Steafano Bossi
>     > ​
>     > ​
>     >
>     >
>     >
>
>     --
>     *CEOS Automatización, C.A.*
>     *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,*
>     *PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*
>
>     *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
>     *Ing. César García*
>
>     *Cel: +58 414-760.98.95*
>
>     *Hotline Técnica SIEMENS: 0800 1005080*
>
>     *Email: support.aan.automation@siemens.com
>     <su...@siemens.com>*
>
>

--
*CEOS Automatización, C.A.*
*GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,*
*PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*

*FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
*Ing. César García*

*Cel: +58 414-760.98.95*

*Hotline Técnica SIEMENS: 0800 1005080*

*Email: support.aan.automation@siemens.com
<su...@siemens.com>*