You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@plc4x.apache.org by Cesar Garcia <ce...@ceos.com.ve> on 2020/02/05 04:12:29 UTC
S7 Asynchronous events.
Hi Alls,
I take some time to inform you of the progress I am making for handling
asynchronous events in the S7 Legacy driver (Netty version).
Currently the modification allows to selectively receive the events
associated with the PLC.
1. PLC event handling was added. To say:
. MODE: Detects when the PLC changes state.
. SYS: Internal PLC events.
. USER: Events generated by the user within the PLC program.
.ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 & S7400)
.ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
These events are translated into a "PlcSubscriptionEvent" type and sent to
the "Consumer" defined by the final application, using the programming
pattern defined in the API (or as I interpret it).
I have tried as far as possible that "Events" be as close as possible to
the MapMessage interface of the JMS API. This allows you to get the most
out of the PLC, being able to send process states using ActiveMQ or in my
case AdminEvent from OSGi.
Another point of application for this feature is the term of quality
associated with the values read by the driver. For example, if you use a
CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
when the CPU goes to STOP mode for any event the quality of the read values
is doubtful.
2. Subscription to cyclic values.
This feature allows the subscription to fields within the PLC
synchronously. The data is sent from the PLC, so the driver does not
perform a PULL of data. There are many points of improvement since the
implementation depends on the amount of data that the CPU can send in a
request.
This is the typical way of working with WinCC, but it is especially useful
for embedded devices since it lightens the CPU load. I hope to test this
feature on the BegleBone Black, Raspberry Pi 3, and my new toy the Siemens
IOT2040.
3. SSL
It is important that with this feature, the PLC can be diagnosed. The
original driver design uses this feature to determine the properties of the
PLC.
The driver was modified so that the information arrived complete, but not
processed to the client. I will be adding a utility class to interpret the
byte buffer, something that is laborious since each request has a different
response pattern, but for my application it is extremely useful.
The code is in GitHub, it is a spaghetti and there are many things to
clean, but it is a breakthrough.
I hope you find the information useful,
Best regards,
--
*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: 0416-681.03.99*
*Cel: 0414-760.98.95*
*Hotline Técnica SIEMENS: 0800 1005080*
*Email: support.aan.automation@siemens.com
<su...@siemens.com>*
Re: S7 Asynchronous events.
Posted by Cesar Garcia <ce...@ceos.com.ve>.
Hello Chris,
On my part there is no problem next week, I propose to define the day from
Wednesday.
My location is GMT-4, take it into account. And my internet connection is
really bad :-).
I will try to document as much as I can to share with the team.
Best regards,
El jue., 6 feb. 2020 a las 4:01, Christofer Dutz (<ch...@c-ware.de>)
escribió:
> Wow this is great stuff!!!!
>
> Sorry for not responding yesterday. I'm currently on a big conference and
> yesterday they had no internet and reading large emails and responding on
> the phone is sort of not that ideal.
>
> I'm so totally looking forward to being this functionality into the new s7
> driver.
>
> How about we do a slack call some time next week?
>
> Chris
> ________________________________
> Von: Cesar Garcia <ce...@ceos.com.ve>
> Gesendet: Mittwoch, 5. Februar 2020 05:12
> An: Apache PLC4X <de...@plc4x.apache.org>
> Betreff: S7 Asynchronous events.
>
> Hi Alls,
>
> I take some time to inform you of the progress I am making for handling
> asynchronous events in the S7 Legacy driver (Netty version).
>
> Currently the modification allows to selectively receive the events
> associated with the PLC.
>
> 1. PLC event handling was added. To say:
> . MODE: Detects when the PLC changes state.
> . SYS: Internal PLC events.
> . USER: Events generated by the user within the PLC program.
> .ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 & S7400)
> .ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
>
> These events are translated into a "PlcSubscriptionEvent" type and sent to
> the "Consumer" defined by the final application, using the programming
> pattern defined in the API (or as I interpret it).
>
> I have tried as far as possible that "Events" be as close as possible to
> the MapMessage interface of the JMS API. This allows you to get the most
> out of the PLC, being able to send process states using ActiveMQ or in my
> case AdminEvent from OSGi.
>
> Another point of application for this feature is the term of quality
> associated with the values read by the driver. For example, if you use a
> CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
> when the CPU goes to STOP mode for any event the quality of the read values
> is doubtful.
>
> 2. Subscription to cyclic values.
>
> This feature allows the subscription to fields within the PLC
> synchronously. The data is sent from the PLC, so the driver does not
> perform a PULL of data. There are many points of improvement since the
> implementation depends on the amount of data that the CPU can send in a
> request.
>
> This is the typical way of working with WinCC, but it is especially useful
> for embedded devices since it lightens the CPU load. I hope to test this
> feature on the BegleBone Black, Raspberry Pi 3, and my new toy the Siemens
> IOT2040.
>
> 3. SSL
>
> It is important that with this feature, the PLC can be diagnosed. The
> original driver design uses this feature to determine the properties of the
> PLC.
>
> The driver was modified so that the information arrived complete, but not
> processed to the client. I will be adding a utility class to interpret the
> byte buffer, something that is laborious since each request has a different
> response pattern, but for my application it is extremely useful.
>
> The code is in GitHub, it is a spaghetti and there are many things to
> clean, but it is a breakthrough.
>
> I hope you find the information useful,
>
> Best regards,
>
> --
> *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: 0416-681.03.99*
>
> *Cel: 0414-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: 0416-681.03.99*
*Cel: 0414-760.98.95*
*Hotline Técnica SIEMENS: 0800 1005080*
*Email: support.aan.automation@siemens.com
<su...@siemens.com>*
Re: S7 Asynchronous events.
Posted by Lukas Ott <ot...@gmail.com>.
Great, thanks!
Am Do., 6. Feb. 2020 um 13:47 Uhr schrieb Christofer Dutz <
christofer.dutz@c-ware.de>:
> Hi Lukas,
>
> That's why I suggested slack. I know it works with multiple participants.
>
> Chris
>
> ------------------------------
> *Von:* Lukas Ott <ot...@gmail.com>
> *Gesendet:* Donnerstag, 6. Februar 2020 09:20
> *An:* dev@plc4x.apache.org <de...@plc4x.apache.org>
> *Betreff:* Re: S7 Asynchronous events.
>
> Hi ,
>
> Can that call be available for all the PLC4X developers/ interests?
>
> That would be great for learning !
>
> Thank you!
>
> Lukas
>
> Am Do., 6. Feb. 2020 um 09:01 Uhr schrieb Christofer Dutz <
> christofer.dutz@c-ware.de>:
>
> > Wow this is great stuff!!!!
> >
> > Sorry for not responding yesterday. I'm currently on a big conference and
> > yesterday they had no internet and reading large emails and responding on
> > the phone is sort of not that ideal.
> >
> > I'm so totally looking forward to being this functionality into the new
> s7
> > driver.
> >
> > How about we do a slack call some time next week?
> >
> > Chris
> > ________________________________
> > Von: Cesar Garcia <ce...@ceos.com.ve>
> > Gesendet: Mittwoch, 5. Februar 2020 05:12
> > An: Apache PLC4X <de...@plc4x.apache.org>
> > Betreff: S7 Asynchronous events.
> >
> > Hi Alls,
> >
> > I take some time to inform you of the progress I am making for handling
> > asynchronous events in the S7 Legacy driver (Netty version).
> >
> > Currently the modification allows to selectively receive the events
> > associated with the PLC.
> >
> > 1. PLC event handling was added. To say:
> > . MODE: Detects when the PLC changes state.
> > . SYS: Internal PLC events.
> > . USER: Events generated by the user within the PLC program.
> > .ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 &
> S7400)
> > .ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
> >
> > These events are translated into a "PlcSubscriptionEvent" type and sent
> to
> > the "Consumer" defined by the final application, using the programming
> > pattern defined in the API (or as I interpret it).
> >
> > I have tried as far as possible that "Events" be as close as possible to
> > the MapMessage interface of the JMS API. This allows you to get the most
> > out of the PLC, being able to send process states using ActiveMQ or in my
> > case AdminEvent from OSGi.
> >
> > Another point of application for this feature is the term of quality
> > associated with the values read by the driver. For example, if you use a
> > CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
> > when the CPU goes to STOP mode for any event the quality of the read
> values
> > is doubtful.
> >
> > 2. Subscription to cyclic values.
> >
> > This feature allows the subscription to fields within the PLC
> > synchronously. The data is sent from the PLC, so the driver does not
> > perform a PULL of data. There are many points of improvement since the
> > implementation depends on the amount of data that the CPU can send in a
> > request.
> >
> > This is the typical way of working with WinCC, but it is especially
> useful
> > for embedded devices since it lightens the CPU load. I hope to test this
> > feature on the BegleBone Black, Raspberry Pi 3, and my new toy the
> Siemens
> > IOT2040.
> >
> > 3. SSL
> >
> > It is important that with this feature, the PLC can be diagnosed. The
> > original driver design uses this feature to determine the properties of
> the
> > PLC.
> >
> > The driver was modified so that the information arrived complete, but not
> > processed to the client. I will be adding a utility class to interpret
> the
> > byte buffer, something that is laborious since each request has a
> different
> > response pattern, but for my application it is extremely useful.
> >
> > The code is in GitHub, it is a spaghetti and there are many things to
> > clean, but it is a breakthrough.
> >
> > I hope you find the information useful,
> >
> > Best regards,
> >
> > --
> > *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: 0416-681.03.99*
> >
> > *Cel: 0414-760.98.95*
> >
> > *Hotline Técnica SIEMENS: 0800 1005080*
> >
> > *Email: support.aan.automation@siemens.com
> > <su...@siemens.com>*
> >
>
Re: S7 Asynchronous events.
Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Lukas,
That's why I suggested slack. I know it works with multiple participants.
Chris
________________________________
Von: Lukas Ott <ot...@gmail.com>
Gesendet: Donnerstag, 6. Februar 2020 09:20
An: dev@plc4x.apache.org <de...@plc4x.apache.org>
Betreff: Re: S7 Asynchronous events.
Hi ,
Can that call be available for all the PLC4X developers/ interests?
That would be great for learning !
Thank you!
Lukas
Am Do., 6. Feb. 2020 um 09:01 Uhr schrieb Christofer Dutz <
christofer.dutz@c-ware.de>:
> Wow this is great stuff!!!!
>
> Sorry for not responding yesterday. I'm currently on a big conference and
> yesterday they had no internet and reading large emails and responding on
> the phone is sort of not that ideal.
>
> I'm so totally looking forward to being this functionality into the new s7
> driver.
>
> How about we do a slack call some time next week?
>
> Chris
> ________________________________
> Von: Cesar Garcia <ce...@ceos.com.ve>
> Gesendet: Mittwoch, 5. Februar 2020 05:12
> An: Apache PLC4X <de...@plc4x.apache.org>
> Betreff: S7 Asynchronous events.
>
> Hi Alls,
>
> I take some time to inform you of the progress I am making for handling
> asynchronous events in the S7 Legacy driver (Netty version).
>
> Currently the modification allows to selectively receive the events
> associated with the PLC.
>
> 1. PLC event handling was added. To say:
> . MODE: Detects when the PLC changes state.
> . SYS: Internal PLC events.
> . USER: Events generated by the user within the PLC program.
> .ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 & S7400)
> .ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
>
> These events are translated into a "PlcSubscriptionEvent" type and sent to
> the "Consumer" defined by the final application, using the programming
> pattern defined in the API (or as I interpret it).
>
> I have tried as far as possible that "Events" be as close as possible to
> the MapMessage interface of the JMS API. This allows you to get the most
> out of the PLC, being able to send process states using ActiveMQ or in my
> case AdminEvent from OSGi.
>
> Another point of application for this feature is the term of quality
> associated with the values read by the driver. For example, if you use a
> CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
> when the CPU goes to STOP mode for any event the quality of the read values
> is doubtful.
>
> 2. Subscription to cyclic values.
>
> This feature allows the subscription to fields within the PLC
> synchronously. The data is sent from the PLC, so the driver does not
> perform a PULL of data. There are many points of improvement since the
> implementation depends on the amount of data that the CPU can send in a
> request.
>
> This is the typical way of working with WinCC, but it is especially useful
> for embedded devices since it lightens the CPU load. I hope to test this
> feature on the BegleBone Black, Raspberry Pi 3, and my new toy the Siemens
> IOT2040.
>
> 3. SSL
>
> It is important that with this feature, the PLC can be diagnosed. The
> original driver design uses this feature to determine the properties of the
> PLC.
>
> The driver was modified so that the information arrived complete, but not
> processed to the client. I will be adding a utility class to interpret the
> byte buffer, something that is laborious since each request has a different
> response pattern, but for my application it is extremely useful.
>
> The code is in GitHub, it is a spaghetti and there are many things to
> clean, but it is a breakthrough.
>
> I hope you find the information useful,
>
> Best regards,
>
> --
> *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: 0416-681.03.99*
>
> *Cel: 0414-760.98.95*
>
> *Hotline Técnica SIEMENS: 0800 1005080*
>
> *Email: support.aan.automation@siemens.com
> <su...@siemens.com>*
>
Re: S7 Asynchronous events.
Posted by Lukas Ott <ot...@gmail.com>.
Hi ,
Can that call be available for all the PLC4X developers/ interests?
That would be great for learning !
Thank you!
Lukas
Am Do., 6. Feb. 2020 um 09:01 Uhr schrieb Christofer Dutz <
christofer.dutz@c-ware.de>:
> Wow this is great stuff!!!!
>
> Sorry for not responding yesterday. I'm currently on a big conference and
> yesterday they had no internet and reading large emails and responding on
> the phone is sort of not that ideal.
>
> I'm so totally looking forward to being this functionality into the new s7
> driver.
>
> How about we do a slack call some time next week?
>
> Chris
> ________________________________
> Von: Cesar Garcia <ce...@ceos.com.ve>
> Gesendet: Mittwoch, 5. Februar 2020 05:12
> An: Apache PLC4X <de...@plc4x.apache.org>
> Betreff: S7 Asynchronous events.
>
> Hi Alls,
>
> I take some time to inform you of the progress I am making for handling
> asynchronous events in the S7 Legacy driver (Netty version).
>
> Currently the modification allows to selectively receive the events
> associated with the PLC.
>
> 1. PLC event handling was added. To say:
> . MODE: Detects when the PLC changes state.
> . SYS: Internal PLC events.
> . USER: Events generated by the user within the PLC program.
> .ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 & S7400)
> .ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
>
> These events are translated into a "PlcSubscriptionEvent" type and sent to
> the "Consumer" defined by the final application, using the programming
> pattern defined in the API (or as I interpret it).
>
> I have tried as far as possible that "Events" be as close as possible to
> the MapMessage interface of the JMS API. This allows you to get the most
> out of the PLC, being able to send process states using ActiveMQ or in my
> case AdminEvent from OSGi.
>
> Another point of application for this feature is the term of quality
> associated with the values read by the driver. For example, if you use a
> CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
> when the CPU goes to STOP mode for any event the quality of the read values
> is doubtful.
>
> 2. Subscription to cyclic values.
>
> This feature allows the subscription to fields within the PLC
> synchronously. The data is sent from the PLC, so the driver does not
> perform a PULL of data. There are many points of improvement since the
> implementation depends on the amount of data that the CPU can send in a
> request.
>
> This is the typical way of working with WinCC, but it is especially useful
> for embedded devices since it lightens the CPU load. I hope to test this
> feature on the BegleBone Black, Raspberry Pi 3, and my new toy the Siemens
> IOT2040.
>
> 3. SSL
>
> It is important that with this feature, the PLC can be diagnosed. The
> original driver design uses this feature to determine the properties of the
> PLC.
>
> The driver was modified so that the information arrived complete, but not
> processed to the client. I will be adding a utility class to interpret the
> byte buffer, something that is laborious since each request has a different
> response pattern, but for my application it is extremely useful.
>
> The code is in GitHub, it is a spaghetti and there are many things to
> clean, but it is a breakthrough.
>
> I hope you find the information useful,
>
> Best regards,
>
> --
> *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: 0416-681.03.99*
>
> *Cel: 0414-760.98.95*
>
> *Hotline Técnica SIEMENS: 0800 1005080*
>
> *Email: support.aan.automation@siemens.com
> <su...@siemens.com>*
>
Re: S7 Asynchronous events.
Posted by Christofer Dutz <ch...@c-ware.de>.
Wow this is great stuff!!!!
Sorry for not responding yesterday. I'm currently on a big conference and yesterday they had no internet and reading large emails and responding on the phone is sort of not that ideal.
I'm so totally looking forward to being this functionality into the new s7 driver.
How about we do a slack call some time next week?
Chris
________________________________
Von: Cesar Garcia <ce...@ceos.com.ve>
Gesendet: Mittwoch, 5. Februar 2020 05:12
An: Apache PLC4X <de...@plc4x.apache.org>
Betreff: S7 Asynchronous events.
Hi Alls,
I take some time to inform you of the progress I am making for handling
asynchronous events in the S7 Legacy driver (Netty version).
Currently the modification allows to selectively receive the events
associated with the PLC.
1. PLC event handling was added. To say:
. MODE: Detects when the PLC changes state.
. SYS: Internal PLC events.
. USER: Events generated by the user within the PLC program.
.ALM_S: Subscription to ALARM_S alarms and their variants. (S7300 & S7400)
.ALM_8: Subscription to alarms ALARM_8 and its variants. (S7400).
These events are translated into a "PlcSubscriptionEvent" type and sent to
the "Consumer" defined by the final application, using the programming
pattern defined in the API (or as I interpret it).
I have tried as far as possible that "Events" be as close as possible to
the MapMessage interface of the JMS API. This allows you to get the most
out of the PLC, being able to send process states using ActiveMQ or in my
case AdminEvent from OSGi.
Another point of application for this feature is the term of quality
associated with the values read by the driver. For example, if you use a
CP343-1 / CP443-1 (Ethernet) its operation is independent of the CPU, so
when the CPU goes to STOP mode for any event the quality of the read values
is doubtful.
2. Subscription to cyclic values.
This feature allows the subscription to fields within the PLC
synchronously. The data is sent from the PLC, so the driver does not
perform a PULL of data. There are many points of improvement since the
implementation depends on the amount of data that the CPU can send in a
request.
This is the typical way of working with WinCC, but it is especially useful
for embedded devices since it lightens the CPU load. I hope to test this
feature on the BegleBone Black, Raspberry Pi 3, and my new toy the Siemens
IOT2040.
3. SSL
It is important that with this feature, the PLC can be diagnosed. The
original driver design uses this feature to determine the properties of the
PLC.
The driver was modified so that the information arrived complete, but not
processed to the client. I will be adding a utility class to interpret the
byte buffer, something that is laborious since each request has a different
response pattern, but for my application it is extremely useful.
The code is in GitHub, it is a spaghetti and there are many things to
clean, but it is a breakthrough.
I hope you find the information useful,
Best regards,
--
*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: 0416-681.03.99*
*Cel: 0414-760.98.95*
*Hotline Técnica SIEMENS: 0800 1005080*
*Email: support.aan.automation@siemens.com
<su...@siemens.com>*