MPI6_ReadByte Zugriffszeit

Alles zum Kommunikationstreiber ComDrvS7

Moderatoren: Matthias, Weiss_MHJ

Antworten
leibezem
SPSTreff-User
Beiträge: 2
Registriert: 07 Nov 2014, 07:59

MPI6_ReadByte Zugriffszeit

Beitrag von leibezem »

Hallo,

Wir setzen zur Zeit in mehreren Projekten den COMDrvS7 in der Version V6.21 ein um über Datenbausteine mit der S7 Steuerung zu kommunizieren.

In einem Projekt wird dazu alle 1000ms ein Block mit 8000byte gelesen. Bei Tests hat sich jezt heruasgestellt, dass der Lesevorgang über MPI6_ReadByte alleine schon ca. 1500ms benötigt. Da im gleichen Zyklus noch mehrere andere Datenbausteine ausgelesen werden müssen, ergeben sich hier erhebliche Verzögerungen.

Wodurch kann diese doch relativ lange Zugriffszeit beim Lesen veruhrsacht werden?

Gruß
Mario

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 673
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Beitrag von Weiss_MHJ »

Hallo,

sehr viele Faktoren sind für die Kommunikationsgeschwindigkeit verantwortlich. Einige davon sind:

- Was für eine Verbindung besteht zwischen PC und SPS (TCP/IP, NetLink, USB-MPI, MPI über CP5711 ....)?

- Was für eine SPS wird angesprochen und welche Firmware hat diese?
Es gibt z.B. erhebliche Unterschiede in der Kommunikationsgeschwindigkeit zwischen 300er-CPUs mit Firmware 2.X und 3.X.

- Welche Zykluszeit hat die CPU?

- Wie viele weitere Kommunikationspartner sind mit der CPU verbunden?
Dazu zählen TPs/OPs, ist die CPU Master in einem Netz, Verbindungen zu weiteren CPUs (z.B. S7-Kommunikation).

- Wird die Verbindung zu der CPU offen gelassen oder wird diese bei jedem Lesevorgang geöffnet und wieder geschlossen?

Somit kann man mit den von Ihnen angegebenen Infos hier keine Aussage machen ob die Verbindung überhaupt langsam ist. Je nach Randbedingung könnte diese sogar schnell sein.

Gruss

leibezem
SPSTreff-User
Beiträge: 2
Registriert: 07 Nov 2014, 07:59

MPI6_ReadByte

Beitrag von leibezem »

Hallo,

hat leider etwas länger gedauert alle nötigen Informationen zusammenzutragen. Ich hoffe, damit alle Fragen beantworten zu können:

1. Die Verbindung wird über TCP/IP hergestellt

2. Es wird eine 319F-3 PN/DP CPU mit der Firmware Version 3.2.10 angesprochen

3. Die Zykluszeit beträgt 34ms

4. es sind 3 PGs, 3 OPs, 0 S7-Basis-Kommunikation, 0 S7-Kommunikation und 1 sonstige Kommunikation belegt. Ausserdem sind noch 2 Verbindungen über Industrial Ethernet offen.

5. Die Verbindung zur SPS wird nur beim Programmstart geöffnet. Die Abfragen über MPI6_ReadByte erfolgen dann zyklisch alle 1000ms ohne die Verbindung zu unterbrechen.

mfg

Benutzeravatar
mhj
Site Admin
Beiträge: 350
Registriert: 09 Jan 2010, 11:35
Kontaktdaten:

Beitrag von mhj »

Ich denke, die Zeitdauer für das Auslesen von 8000 Bytes ist recht gut. Die Priorität einer SPS ist es, die Zykluszeit so gering wie möglich zu halten.

Mit dieser Zeitdauer müssen Sie leben, oder die Anzahl der Daten reduzieren.

Benutzeravatar
Weiss_MHJ
Site Admin
Beiträge: 673
Registriert: 13 Apr 2010, 16:34
Kontaktdaten:

Beitrag von Weiss_MHJ »

Hallo,

die CPU bietet noch zwei Einstellungen, mit der die Kommunikation beeinflusst werden kann. Beide sind in der Hardwarekonfiguration der CPU vorhanden.

Die erste Einstellung nennt sich "Priorisierte BuB Kommunikation". Wird diese aktiviert, dann beschleunigt sich die Bedienen- und Beobachten-Kommunikation, allerdings wird dabei die Zykluszeit verlängert.
Diese ist mit 34ms bei der eingesetzten 319 schon jetzt relativ hoch.

Die zweite Einstellung nennt sich "Zyklusbelastung durch Kommunikation".
Auch hier kann sich die Zykluszeit der CPU drastisch erhöhen.

Sie sollten sich überlegen, ob eine Erhöhung der Zykluszeit ein Problem darstellt oder nicht. Wenn die Erhöhung kein Problem ist, dann beginnen Sie mit der Selektion der ersten Einstellung.

Gruss

Antworten