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 <cesar.gar...@ceos.com.ve>
Gesendet: Mittwoch, 5. Februar 2020 05:12
An: Apache PLC4X <dev@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.automat...@siemens.com
<support.aan.automat...@siemens.com>*

Reply via email to