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>*