-> Hier kostenlos registrieren
Hallo Step7 – Users
Ich hab ein kleines Werkzeug für Step7 programmiert:
http://reither.ohost.de/tool4s7.htm
Speziell den enthaltenen Symbolgenerator nutze ich ständig selbst und möchte ihn nicht mehr missen.
Nun habe ich einen „AWL-Schrittkettengenerator“ hinzugefügt.
Die Frage ist: Wird außer mir selbst jemand ein damit erzeugtes Schrittgerüst als Grundlage für seine Programme verwenden?
Im beruflichen Leben muss ich häufig Spannvorrichtungen für ältere Maschinen programmieren. S7Graf kommt dann meistens wegen seines hohen Speicherbedarfes nicht in Frage.
Nun habe ich dieses Teil programmiert.
Der erzeugte Code ist vielleicht etwas unübersichtlich. Dafür werden aber viele Eventualitäten mit wenig Speicherplatz erschlagen.
Evtl. kommt noch ein Grafischer Editor hinzu, um individuelle Verzweigungen, Zeiten ... anzuordnen.
Z.Z. gibt’s nur diese Vorgabemöglichkeiten:
Nun bin ich mal auf paar Meinungen gespannt.
Beste Grüße
Holger
Hier noch ein Stück Beispielcode:

Ich hab ein kleines Werkzeug für Step7 programmiert:
http://reither.ohost.de/tool4s7.htm
Speziell den enthaltenen Symbolgenerator nutze ich ständig selbst und möchte ihn nicht mehr missen.
Nun habe ich einen „AWL-Schrittkettengenerator“ hinzugefügt.
Die Frage ist: Wird außer mir selbst jemand ein damit erzeugtes Schrittgerüst als Grundlage für seine Programme verwenden?
Im beruflichen Leben muss ich häufig Spannvorrichtungen für ältere Maschinen programmieren. S7Graf kommt dann meistens wegen seines hohen Speicherbedarfes nicht in Frage.
Nun habe ich dieses Teil programmiert.
Der erzeugte Code ist vielleicht etwas unübersichtlich. Dafür werden aber viele Eventualitäten mit wenig Speicherplatz erschlagen.
Evtl. kommt noch ein Grafischer Editor hinzu, um individuelle Verzweigungen, Zeiten ... anzuordnen.
Z.Z. gibt’s nur diese Vorgabemöglichkeiten:

Nun bin ich mal auf paar Meinungen gespannt.
Beste Grüße
Holger
Hier noch ein Stück Beispielcode:
Code:
DATA_BLOCK "DB_Schrittkette"
TITLE =
VERSION : 0.1
STRUCT
Step : ARRAY [0 .. 31 ] OF BOOL ;
Transition : ARRAY [0 .. 31 ] OF BOOL ;
END_STRUCT ;
BEGIN
END_DATA_BLOCK
FUNCTION "FC_Schrittkette" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
Init : BOOL ;
Auto : BOOL ;
Freigabe : BOOL ;
END_VAR
VAR_TEMP
n : INT ;
DwPointer : DWORD ;
Eins : BOOL ;
Null : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Info
NOP 0;
// #####################################################
// #
// Das Grundgerüst dieses Bausteines wurde erzeugt mit #
// #
// Tool4S7 Ver.: 02.10 #
// (c) 01.10.2008 - 24.04.2011 #
// #
// ( holger.reither@web.de #
// reither.ohost.de #
// olbnet.dyndns.org/hps ) #
// #
// #
// #####################################################
// #
// #
// Dieser Baustein gliedert sich in 3 Hauptabschnitte #
// 1. Initialisierung #
// Ist der Bausteineingang Init = True dann werden #
// hier alle Schritte deaktiviert und der/ die #
// Initialschritt(e) aktiviert. #
// #
// 2. Schritte + Transitionen #
// Dieser Abschnitt beinhaltet die eigentliche #
// Schrittkette. #
// An den markierten Stellen muss der #
// Anwendungsspeziefische Code ergaenzt werden. #
// #
// 3. Weiterschaltung #
// hier erfolgt die Weiterschaltung der Schritte. #
// Pro SPS-Zyklus erfolgt maximal eine #
// Weiterschaltung. #
// Damit ist auch garantiert, dass jeder Schritt #
// fuer mindestens einen SPS-Zyklus aktiv ist. #
// Anpassungen sind hier nur notwendig, wenn #
// Alternativ- oder/ und Simutanverzweigungen #
// programmiert werden sollen. #
// #
// #
// Labels: #
// S... Schritt #
// T... Transition #
// F... Weiterschaltung (<F>orward) #
// #
// #####################################################
// #
// Die Generatoreinstellungen #
// f. diesen Bausteinwaren: #
// FC-Nummer: #
// FC 80 #
// FC-Name: #
// FC_Schrittkette #
// DB-Nummer: #
// DB 80 #
// DB-Name: #
// DB_Schrittkette #
// Erzeuge interne Timer: #
// Off #
// Max.Anzahl Schritte: #
// 32 #
// Nr. 1. Schritt: #
// 0 #
// Nr. Initialschritt: #
// 0 #
// Anzahl Schritte: #
// 3 #
// Schrittabstand: #
// 1 #
// Erzeuge Rueckwaertstransitionen: #
// Off #
// In-Variable Freig. 1: #
// Auto #
// In-Variable Freig. 2: #
// Freigabe #
// In-Variable Freig. 3: #
// #
// In-Variable Freig. 4: #
// #
// #
// #####################################################
NETWORK
TITLE =Initialisierung Schrittkette
// Erzeuge Konstanten Null und Eins
O #Eins;
ON #Eins;
= #Eins;
UN #Eins;
= #Null;
// Initialisieren
U #Init;
SPBN In_X;
// Ruecksetzen aller (Zeiten,) Schritte und Transitionen
AUF "DB_Schrittkette";
L 2;
In_1: T #n;
L 1;
-I ;
L 4;
*I ; // Nummer des zu loeschenden DWord
SLW 3; // erzege Pointerformat
T #DwPointer;
L DW#16#0;
T DBD [#DwPointer]; // loesche aktuelles DWord
L #n;
LOOP In_1;
SET ;
// #####################################################
// #
// Aktiviere Initialschritt(e) #
// #
S "DB_Schrittkette".Step[0];
// #
// #####################################################
In_X: CLR ;
NETWORK
TITLE =Info Abschnitt 2
NOP 0;
// #####################################################
// #
// A b h i e r f o l g e n d i e #
// e i n z e l n e n S c h r i t t e u n d #
// T r a n s i t i o n e n #
// #
// #####################################################
NETWORK
TITLE =Schritt 000
CLR ;
U "DB_Schrittkette".Step[0];
SPBN T000;
// #####################################################
// Aktionen Schritt 000 #
SET ;
// #
// #
// #####################################################
T000: CLR ;
// #####################################################
// Transition / Weiterschaltbedingung #
U #Auto;
U #Freigabe;
// #
// #
// #####################################################
= "DB_Schrittkette".Transition[0];
NETWORK
TITLE =Schritt 001
CLR ;
U "DB_Schrittkette".Step[1];
SPBN T001;
// #####################################################
// Aktionen Schritt 001 #
SET ;
// #
// #
// #####################################################
T001: CLR ;
// #####################################################
// Transition / Weiterschaltbedingung #
U #Auto;
U #Freigabe;
// #
// #
// #####################################################
= "DB_Schrittkette".Transition[1];