TIA Befehl BLOCK_DB bei S7-1500

Zuviel Werbung?
-> Hier kostenlos registrieren
So weit ich weiss liegt das an der 1500 die Block_DB nicht mehr unterstützt. (nicht an Step 7 V13!) Also wenn man eine 300er in TIA Projektiert müsste es immer noch funktionieren!

Ich bin auch der Meinung du solltest mal mit euer Entwicklung sprechen! Warum kannst du keinen FB nehmen? was machst du denn wenn du mal eine Flanke auswerten willst? Schön einen Merker ran schreiben oder? Programmiert ihr eure S7-1500 auch noch so wie damals die S5? Es wird bestimmt alles direkt adressiert oder? ich wette dieses "VB - wir können nur FCs" ist schon jahren im Unternehmen "verankert" oder?
Ich verstehe nicht wenn sich jemand eine S7-1500 kauft und sein 300er Programm einfach in diese reinschubst. Dann soll er doch wieder ne 300er nehmen, wenn man die Vorteile der 1500 nicht nutzt. Das ist ja wie 16GB Arbeitsspeicher im PC und WinXP installiert!
 
@Flipdajunk

Sehr konstruktiver Beitrag. Danke!

Ich bin leider erst seit kurzer Zeit im Softwarebereich, hatte bisher nur Step7 Projekte und war froh hier die verwendeten Tools zu verstehen. Jetzt habe ich ein Projekt mit TIA, für unser Unternehmen das erste Projekt und da denke ich ist es verständlich, wenn ich versuche die alten und funktionierenden Funktionen anzuwenden. Ich bin weder geschult auf Step7 geschweige denn auf TIA. Das ich dann unter Zeitdruck stehend versuche es auf die alte Weise zu realisieren, ist wohl nachvollziehbar. Es war leider keine Zeit noch Geld da jemanden von uns auf TIA zu schulen der dann überhaupt in der Lage ist bei einem Projekt die Vorteile, die es wohl geben wird, anzuwenden.

Aber schön so ein Kommentar wie Deiner hier zu lesen. Ich hatte dem Kunden auch vorgeschlagen 300er zu nehmen, aber er will einfach halt die neue 1500er haben und ich muss schauen dass ich innerhalb der kalkulierten Zeit ein Projekt realisiere.

Grüße

AndyD

EDIT: Du kannst mir aber gerne die Vorteile der 1500er nennen wenn Du diese so gut kennst. Dann haste hier sogar was positives niedergeschrieben und ich habe einen Lerneffekt...
 
Zuletzt bearbeitet:
ich greife das Thema mal wieder auf...

im S7 300er Programm habe ich eine Instanz via BLOCK_DB an eine Funktion übergeben (die Instanz des FB_SEND für open user Kommunikation)

in der Funktion habe ich dann folgendes aufrufen können:

call FB_SEND, #BLOCK_DB


Mit der 1500er geht das laut Hilfe nicht mehr, hier muss nach der Migiration umgeschrieben werden. Ich habe das mit DB_ANY versucht, jedoch klappt das nicht:

call FB_Send, #DB_ANY

Wie man das nun syntax-richtig schreiben muss, verrät mir die TIA hilfe leider nicht :(

Da meine Kommunikationsfunktionen in mehrere Ebenen aufgeteilt sind und sehr dynamisch sind, bin ich auf diese Übergabefunktion schon angewiesen. Einen direkten Instanzaufruf für die Sende und EMpfangs-FBs kann ich hier nicht machen.


grüsse
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

wenn noch jemand das Problem hat hier ne Lösung.
in der 1500er

Als Input die Nummer des DB angeben
INPUT: DBNR Typ: INT

Eine Temp Variable

Temp_DBNR : INT


und im FC dann folgendes:

L DBNR
T TEMP_DBNR

AUF DB [#TEMP_DBNR]

Man muß über die Temp Variable gehen weil direkt über den Input ist es nicht zulässig.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo baitsch,


würde dir empfehlen mal mit Anwenderdatentypen (Udt) zu Arbeiten. Damit kannst Strukturen Anlegen im DB und dann am Fc oder Fb übergeben. Somit kannst du im Fb /Fc sauber Symbolisch Programmieren. Einfach den Udt an der Schnittstelle vom Fb/FC als Parameter anlegen. Nun kannst du hier deinen DB beim Aufruf Übergeben.


Gruß Tia
 
Hallo baitsch,


würde dir empfehlen mal mit Anwenderdatentypen (Udt) zu Arbeiten. Damit kannst Strukturen Anlegen im DB und dann am Fc oder Fb übergeben. Somit kannst du im Fb /Fc sauber Symbolisch Programmieren. Einfach den Udt an der Schnittstelle vom Fb/FC als Parameter anlegen. Nun kannst du hier deinen DB beim Aufruf Übergeben.


Gruß Tia

Hallo,

ja das kenne ich auch wir handhaben dies auch, nur ging es darum wie kann ich einfach den "Block_DB" ersetzen glaube ich.

Viel Spass an alle.
 
An einem FC oder FB kann man einen INOUT vom Typ eines FB (zum Beispiel "cont_c") übergeben.
Man kann beim Aufruf dann den passenden Instanzdatenbaustein antragen und intern voll symbolisch lesen/schreiben. Ein Traum.

PS:
Das ist ein immer wieder kehrendes Problem: Wie bekomme ich ewig alte Programme (mitunter damals schon von S5 Quellen migriert) auf TIA umgesetzt.
Das passt natürlich gar nicht zusammen, Thema absolutes<->symbolisches Programmieren.
Wenn ich sehe, wie die meisten Programme geschrieben sind:
- AWL
- Über direkte Adressierung oder Pointer im Instanzdatenbaustein oder gar globalen Bausteinen RUMHUREN(!)
- kaum verständlicher Code ohne Kommentare
- Für einfache Aufgaben hunderte Zeilen historisch gewachsener Code mit Leichen

Das Umsetzen auf TIA ist dann sehr müßig, aber ich versuche die alte Funktion zu verstehen und mit aktuellen Hilfmitteln nachzubilden
- um Gottes Willen nicht nur migrieren und "gut ist" - das bleibt für immer so
- viele UDTs erstellen
- alle externen DBs als UDT am FC oder FB übergeben und intern mit Symbolen arbeiten
- AWL meiden, bevorzugt in SCL oder FUP mit kurzen SCL-Hilfsnetzwerken gemischt <3 *I love*
- Bibliothek mit den neuen Standardfunktionen anlegen und verwenden
- die Kollegen mitnehmen

Anders wird man dieser alten Grütze nicht Herr.

Wenn man alles durchzieht wird man belohnt:
- bei Änderungen freuen, dass man in Hochsprache und mit Kommentaren fix versteht was da passiert
- bei Änderungen im UDT freuen, dass alle Programme, die ihn verwenden ohne großes Murren mitziehen und man nicht in 13 + x Bausteinen Offsetpointer anpassen muss
 
Zuviel Werbung?
-> Hier kostenlos registrieren
An einem FC oder FB kann man einen INOUT vom Typ eines FB (zum Beispiel "cont_c") übergeben.
Man kann beim Aufruf dann den passenden Instanzdatenbaustein antragen und intern voll symbolisch lesen/schreiben. Ein Traum.

PS:
Das ist ein immer wieder kehrendes Problem: Wie bekomme ich ewig alte Programme (mitunter damals schon von S5 Quellen migriert) auf TIA umgesetzt.
Das passt natürlich gar nicht zusammen, Thema absolutes<->symbolisches Programmieren.
Wenn ich sehe, wie die meisten Programme geschrieben sind:
- AWL
- Über direkte Adressierung oder Pointer im Instanzdatenbaustein oder gar globalen Bausteinen RUMHUREN(!)
- kaum verständlicher Code ohne Kommentare
- Für einfache Aufgaben hunderte Zeilen historisch gewachsener Code mit Leichen

Das Umsetzen auf TIA ist dann sehr müßig, aber ich versuche die alte Funktion zu verstehen und mit aktuellen Hilfmitteln nachzubilden
- um Gottes Willen nicht nur migrieren und "gut ist" - das bleibt für immer so
- viele UDTs erstellen
- alle externen DBs als UDT am FC oder FB übergeben und intern mit Symbolen arbeiten
- AWL meiden, bevorzugt in SCL oder FUP mit kurzen SCL-Hilfsnetzwerken gemischt <3 *I love*
- Bibliothek mit den neuen Standardfunktionen anlegen und verwenden
- die Kollegen mitnehmen

Anders wird man dieser alten Grütze nicht Herr.

Wenn man alles durchzieht wird man belohnt:
- bei Änderungen freuen, dass man in Hochsprache und mit Kommentaren fix versteht was da passiert
- bei Änderungen im UDT freuen, dass alle Programme, die ihn verwenden ohne großes Murren mitziehen und man nicht in 13 + x Bausteinen Offsetpointer anpassen muss



Hallo Road

100% geb ich dir recht. Würde deinen Beitrag echt als FAQ Vorschlagen „Wie Programmiere ich in Tia Richtig“ auf einer Din A4 Seite was ich immer noch wichtig Finde ist der Syntax der Variablen vom Aufbau und Struktur.



Gruß Tia
 
Wir hatten gerade genau das gleiche Problem.
Wir haben es gelöst, indem wir eine Parameterinstanz generiert haben und diese über die Schnittstelle INOUT zugewiesen haben.
 
Zurück
Oben