-> Hier kostenlos registrieren
Hiho,
Frage 1.
hoffe das mir hier jemand mit einer eleganten lösung weiterhelfen kann =)
Zwar bin ich im moment an einem Projekt mit ein paar anderen Lehrlingen, an denen 2 CPU mithilfe von Profinet verbunden wurden. Klappt auch alles einwandfrei.
Jedoch stehe ich nun vor einem problem und suche eine "elegante" lösung dafür.
Habe auf jeder CPU ein Programm, die untereinander mithilfe der SFB12/13 einen Merkerbereich austauschen und somit kommunizieren (Keinen Master)
Nun hab ich jedoch in beiden programmen einen Zähler drinnen, die ihren Wert aber abgleichen sollen. D.h. CPU1 Zähler = 4, dann soll auf CPU 2 der Zähler auch auf 4 sein. Jedoch soll dies auch im umgekehrten Fall passieren.
Am Programm kann nichtsmehr verändert werden, da es nicht von mir geschrieben wurde und für diese Aufgabe nun zuviel aufwand wäre.
Meine befürchtung jedoch bei dem Datenaustausch ist der, dass wenn ich ohne eine verriegelung des Sendens die Daten sich austauschen lasse, mir der Zähler die falschen Werte überträgt und somit die richtigen überschreibt. Er muss ja nur ein paar ms früher die Daten von dem alten Zählwert schicken, die mir dann ausversehen die neuen"" Daten überschreiben.
Rein theoretisch würde ich es schon Programmiert bekommen, aber es gibt ja gewiss immer einen einfacheren Weg, auf den man aber nicht kommt.
Frage 2.
Um einen Pointerbereich in einem DB anzugeben, wo die Werte alle INT format haben, wie geschieht das?
Bei Merkern schreibt man ja
P#M XYZ BYTE XYZ
jedoch wenn ich einen DB bereich aufrufen will, schreibt er mir das immer rot.
Oder muss man vorher
Auf DB100
P#DBD XYZ BYTE XYZ
schreiben?
Schonmal vielen dank für eure hilfe =)
Frage 1.
hoffe das mir hier jemand mit einer eleganten lösung weiterhelfen kann =)
Zwar bin ich im moment an einem Projekt mit ein paar anderen Lehrlingen, an denen 2 CPU mithilfe von Profinet verbunden wurden. Klappt auch alles einwandfrei.
Jedoch stehe ich nun vor einem problem und suche eine "elegante" lösung dafür.
Habe auf jeder CPU ein Programm, die untereinander mithilfe der SFB12/13 einen Merkerbereich austauschen und somit kommunizieren (Keinen Master)
Nun hab ich jedoch in beiden programmen einen Zähler drinnen, die ihren Wert aber abgleichen sollen. D.h. CPU1 Zähler = 4, dann soll auf CPU 2 der Zähler auch auf 4 sein. Jedoch soll dies auch im umgekehrten Fall passieren.
Am Programm kann nichtsmehr verändert werden, da es nicht von mir geschrieben wurde und für diese Aufgabe nun zuviel aufwand wäre.
Meine befürchtung jedoch bei dem Datenaustausch ist der, dass wenn ich ohne eine verriegelung des Sendens die Daten sich austauschen lasse, mir der Zähler die falschen Werte überträgt und somit die richtigen überschreibt. Er muss ja nur ein paar ms früher die Daten von dem alten Zählwert schicken, die mir dann ausversehen die neuen"" Daten überschreiben.
Rein theoretisch würde ich es schon Programmiert bekommen, aber es gibt ja gewiss immer einen einfacheren Weg, auf den man aber nicht kommt.
Frage 2.
Um einen Pointerbereich in einem DB anzugeben, wo die Werte alle INT format haben, wie geschieht das?
Bei Merkern schreibt man ja
P#M XYZ BYTE XYZ
jedoch wenn ich einen DB bereich aufrufen will, schreibt er mir das immer rot.
Oder muss man vorher
Auf DB100
P#DBD XYZ BYTE XYZ
schreiben?
Schonmal vielen dank für eure hilfe =)