augenstern
Level-1
- Beiträge
- 17
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zunächst mal an alle im Forum!
Ich bin aboluter S7 Anfänger (komme aus dem Windows-Umfeld, mehrjährige Programmiertätigkeit in C/C++, auch Embedded-Realtime-System auf C-Basis).
Ich befasse mich mit SCL und soll eine C-Software, die auf einer Motorola-CPU läuft nach S7 portieren.
Randbedingung: auf der S7 läuft bereits eine andere Steuerungssoftware, ich bin also nicht alleine. Die bestehende SW macht heftig Gebrauch von C-üblichen Datenmanipulationen (Bitoperationen, Schiebungen, ...Pointeraritmethik....)
Als Schnittstelle nach außen fungiert eine TCP/IP-Socket-Verbindung.
Unter C recht einfach, stellen sich mir beim Studium von S7/SCL andauernd "Hindernisse" und "Beschränkungen" in den Weg.
Also ich fange mal an:
Sockets: ich will die AG_SEND/AG_RECEIVE benutzen, in SCL benutze ich die ANY-Pointer, das ist auch klar.
Der Anypointer braucht ja u.a. die Bausteinnummer (DB), die Anfangsadresse und den Offset des Datenbereiches.
Wenn ich "hardcoded" die Nummern, Längen und Adressen der Datenbereiche eintrage, dann stosse ich spätestens dann auf Schwierigkeiten, wenn sich meine Bausteinnummern ändern (davon ist auszugehen, wenn in ein bestehendes System integriert wird). Auch wenn sich die Daten des Bausteins ändern ist Sense.
In C gibt es die recht handlichen Direktiven sizeof()/offsetof() usw.
Genau sowas ähnliches suche ich.
Wenn ich alle meine Datein in einen einzigen (oder wenige DB) reinkriege, habe ich später weniger Aufwand (== Fehlerquellen).
Kann mir jemand einen Tipp geben, wie man sizef/offsetof in SCLK realisieren kann?
Wie sind im Allgemeinen die Erfahrungen, wenn man ein Zusatzprogramm auf eine bestehende Steuerung draufpackt.
Ich bin ehrlich: ich halte es für eine Katastrophe, aber leider will mein Chef das so (hat keine Ahnung von SPSs).
Ich fühle mich hier irgendwie auf einem Himmelfahrts-Projekt ....
Ich bin aboluter S7 Anfänger (komme aus dem Windows-Umfeld, mehrjährige Programmiertätigkeit in C/C++, auch Embedded-Realtime-System auf C-Basis).
Ich befasse mich mit SCL und soll eine C-Software, die auf einer Motorola-CPU läuft nach S7 portieren.
Randbedingung: auf der S7 läuft bereits eine andere Steuerungssoftware, ich bin also nicht alleine. Die bestehende SW macht heftig Gebrauch von C-üblichen Datenmanipulationen (Bitoperationen, Schiebungen, ...Pointeraritmethik....)
Als Schnittstelle nach außen fungiert eine TCP/IP-Socket-Verbindung.
Unter C recht einfach, stellen sich mir beim Studium von S7/SCL andauernd "Hindernisse" und "Beschränkungen" in den Weg.
Also ich fange mal an:
Sockets: ich will die AG_SEND/AG_RECEIVE benutzen, in SCL benutze ich die ANY-Pointer, das ist auch klar.
Der Anypointer braucht ja u.a. die Bausteinnummer (DB), die Anfangsadresse und den Offset des Datenbereiches.
Wenn ich "hardcoded" die Nummern, Längen und Adressen der Datenbereiche eintrage, dann stosse ich spätestens dann auf Schwierigkeiten, wenn sich meine Bausteinnummern ändern (davon ist auszugehen, wenn in ein bestehendes System integriert wird). Auch wenn sich die Daten des Bausteins ändern ist Sense.
In C gibt es die recht handlichen Direktiven sizeof()/offsetof() usw.
Genau sowas ähnliches suche ich.
Wenn ich alle meine Datein in einen einzigen (oder wenige DB) reinkriege, habe ich später weniger Aufwand (== Fehlerquellen).
Kann mir jemand einen Tipp geben, wie man sizef/offsetof in SCLK realisieren kann?
Wie sind im Allgemeinen die Erfahrungen, wenn man ein Zusatzprogramm auf eine bestehende Steuerung draufpackt.
Ich bin ehrlich: ich halte es für eine Katastrophe, aber leider will mein Chef das so (hat keine Ahnung von SPSs).
Ich fühle mich hier irgendwie auf einem Himmelfahrts-Projekt ....