Step 7 CHAR Variable im DB beschreiben

Frozen19

Level-2
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!

Ich habe eine Frage zu folgender Programmierung im S7 Simatic Classic, Steuerung S-300, wie man das realisieren kann.

Es soll auf eine deklarierte Char variable im DB das ABC… Zeitgesteuert geschrieben werden.

Wie könnte man sowas graphisch programmieren in KOP, FUP. Ich hätte da an einem Zähler gedacht der mir den Wert (Buchstaben) auf die char variable schiebt (move).

Oder wäre es in SCL einfacher zu realisieren mit Counter und der IF Anweisung?

LG
Frozen
 
Ich bin leider in KOP nicht ganz so firm. Aber normalerweise sollte es mit 'A' zB funktionieren. Soll es dynamisch funktionieren, muss der Char Wert durch addition selbst bestimmt werden

Gesendet von meinem SM-G930F mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es soll immer in das selbe Byte (Char) nacheinander 'A', 'B', 'C' ... geschrieben werden (wie ein Lauftext von 1 Zeichen Länge)?

Das ist in FUP/KOP wie SCL eigentlich gleich einfach zu realisieren, nur die Datentypprüfung ist in FUP etwas schwieriger zu befriedigen (wenn aktiviert, dann 2 zusätzliche MOVE).
FUP/KOP:
- im ersten Netzwerk zählst Du mit einem Zähler Deine Zeit-Ereignisse (Zählumfang 0..25 oder 65..90) und gibst den Zähler-Ausgang "DUAL" auf eine WORD-Variable Temp_word
- im zweiten Netzwerk stellst Du den Zählumfang des Zählers ein (0..25 oder 1..26 oder 65..90): MOVE Temp_Word zu Temp_Int --- CMP>I Temp_Int > max oder CMP<I Temp_Int < min --- Setzen des Zählers auf min (C#0 oder C#1 oder C#65) und Zähler-Ausgang "DUAL" auf Temp_word
- im dritten Netzwerk bei Zähler 65..90: MOVE Temp_Word auf Dein Char
- im dritten Netzwerk bei Zähler 1..26: WOR_W Temp_Word und W#16#40 auf Temp_Word, dann MOVE Temp_Word auf Dein Char
- im dritten Netzwerk bei Zähler 0..25: MOVE Temp_Word zu Temp_Int, dann ADD Temp_Int + 65 auf Temp_Int, dann MOVE Temp_Int auf Dein Char

Harald
 
Zurück
Oben