FC indirekt aufrufen

SPS_Fuzzy

Level-2
Beiträge
34
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum!

Gibt es in Step7 eine Möglichkeit FCs indirekt aufzurufen, ähnlich wie man z.B. DBs indirekt mittels AUF DB[XYZ] öffnen kann?
Das das ganze eigentlich keinen Sinn macht und für z.B. Instandhalter nicht wirklich nachvollziehbar ist ist mir auch klar.
Es soll auch nicht in einem Projekt eingesetzt werden sondern ist pures Interesse, da mir persönlich kein Weg bekannt ist sowas zu realiseren (und auch kein echter Nutzen...).

Vielen Dank im Voraus!

MfG SPS_Fuzzy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ralle,

zunächst mal vielen Dank für den Link. Die Infos dort waren sehr nützlich! :s1:

Natürlich hatte ich die Suchfunktion genutzt bevor ich mein nettes Thema geschrieben habe. Aber leider hatte ich damit nicht soviel Erfolg wie Du...
:???:

Da ich hier wirklich regelmäßig mitlese kenne ich die netten Hinweise auf die Suchfunktion und kann auch nicht verstehen das so viele Fragen gestellt werden die schon 1000mal beantwortet wurden...

Laut Link kann ich ja "nur" FBs indirekt öffnen und benötige daher auch entsprechende Instanz-DBs. Noch schöner wäre es halt mit FCs.


MfG SPS Fuzzy
 
mal eine frage wieso probierst du es nicht einfach :rolleyes:

Also du willst einen FC indirekt aufrufen

also wie wärs mit

Code:
L 10   // für FC 10
T MW 100
UC FC [MW100] :ROFLMAO:
:ROFLMAO: :ROFLMAO:
Viel spass
 
mal eine frage wieso probierst du es nicht einfach :rolleyes:

Also du willst einen FC indirekt aufrufen

also wie wärs mit

Code:
L 10   // für FC 10
T MW 100
UC FC [MW100] :ROFLMAO:
:ROFLMAO: :ROFLMAO:
Viel spass

Und wenn es nicht geht, dann:

U M10.0
CC FC10
U M10.1
CC FC11
...

Aber so ganz kann ich den Sinn der Adressierung über den Index auch nicht erkennen. Es sei denn, er will 200 FC so aufrufen. :ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber so ganz kann ich den Sinn der Adressierung über den Index auch nicht erkennen. Es sei denn, er will 200 FC so aufrufen. :ROFLMAO:
Es wäre schön, wenn er es uns sagt.

Eine Idee wäre eine Verpackungsmachine, die unterschiedlich geformte und geartete Päckchen einpacken kann: Wenn es nur verschiedene Weggeberwerte für die Paketgrößen wäre, würde es auch eine Tabelle im DB tun. Wenn sich aber der Ablauf ändert, zum Beispiel ein Paket zweimal umwickelt werden sollte, wäre eine längere Schrittkette zu durchlaufen. Da könnte man jedem Paket anhand einer Typnummer einen spezifischen Ablauf zuordnen.
 
Der Grund für mein merkwürdiges Vorhaben ist leider unseriöser Wettbewerb bei einem unserer Kunden.
Deren Chef gibt in letzter Zeit (leider) immer wieder unsere Programme für deren mehr oder minder standardisierten Maschinen an unseren Wettbewerb weiter.
Wettbewerb schadet nie, das sehe ich auch so, aber ich finde es eben unschön mehrere Mannjahre an Entwicklung verschenken zu müssen, bloß weil ein Kunde denkt er könne die Software von einer Hinterhofklitsche ein paar Euronen billiger haben, da er findet wir seien zu teuer...

Seltsamerweise kam er aber nach einem Wechsel des SW Lieferanten und HSS Planung+Bau immer wieder zu uns zurück, da die anderen bei den ersten paar dutzend Maschinen eben nicht in eine saubere Programmstruktur und wirklich sehr ausgeknobbelte Diagnosefunktionen investiert haben und deshalb nicht so wie wir in der Vergangenheit bei den ersten Maschinen einer neuen Serie kräftig draufgelegt haben...

Neulich habe ich mal wieder mit dessen Elektriker privat telefoniert und dabei erfahren das unsere alten Projekte an die Mitbewerber weitergeben werden sollen, was ich eigentlich als unlauteren Wettbewerb sehen, aber naja...

Da wir gerade wieder mal viel Hirnschmalz in eine neue Maschienserie investiert haben, die kurz vor der ersten Auslieferung in ein Werk in Indien steht die schon einmal 1 Maschine bei denen gekauft haben und mittlerweile 10 baugleiche Maschinen ohne uns/unseren Kunden nachgebaut haben, wollte ich per SFC51 die Seriennummer der MMC auslesen und die SPS bei nicht zum Programm passender Seriennummer in Stop setzen, oder urlöschen, die Visu direkt nach einem Neustart der SPS runterfahren und bei jedem Neustart sofort wieder oder oder oder
Auf diese Weise schütze ich uns ein bisschen und indirekt auch unseren Kunden.

Zusätzlich finde ich das die Konkurrenz wenn sie schon Programme kopiert zumindest mal 1-2 nette Stolpersteinchen in schwierigen FCs/FBs vorfinden sollte, die man nicht einfach per Querverweis findet.

Die Bausteine mit einem Knowhowschutz versehen fände ich nicht gut, weil dann zum Einen die armen Jungs aus der Instandhaltung des Endkunden keine Fehlersuche mehr betreiben können, wenn mal eine Bewegung nicht möglich ist, weil z.B. mal ein Ini nicht bedämpft wird und dies blöderweise nicht als Bedienerhinweis in der Visu erscheint und weil zum Anderen jeder Mensch der mal was von Google gehört hat, über diesen Knowhowschutz nur lacht.
Wenn keiner Unfug treibt/treiben will stört dieser Schutz wirklich niemanden, da mir nicht 1 Fall einer defekten MMC bekannt ist und man bei dieser Variante des Knowhowschutzes selbst eine defekte SPS problemlos tauschen kann.

Schade finde ich eigentlich nur das man sich über sowas leider immer öfter Gedanken machen muß. Ich selbst habe bis heute immer alle Programme ungeschützt und mit viel Kommentar im Programm und Erklärungen wie das ganze programmiert wurde an das Instandhaltungspersonal und unsere Kunden übergeben.

Aber ich denke mal in Zukunft wird da wohl ein UC für 1-2 nette FCs auftauchen die netten Code im Bauch haben.

Naja, ich mal schaun was draus wird!
 
Zuletzt bearbeitet:
....
Die Bausteine mit einem Knowhowschutz versehen fände ich nicht gut, weil dann zum Einen die armen Jungs aus der Instandhaltung des Endkunden keine Fehlersuche mehr betreiben können...
Zum einen denke ich, daß Nachvollziehbarkeit für Wartung und Nicht-Nachvollziehbarkeit zwecks Kopierschutz/Abschreckung sich widersprechende Anforderungen sind.
Zum anderen bezweifel ich, daß Indizierte FC/FB-Aufrufe ein geeignetes Mittel sind. Laß die Nummer von jedem FB/FC durch Verknüpfung mit dem Ergebnis des SFC51 berechnen. Dann guckst du, welche Nummern auf der funktionierenden Maschine aufgerufen werden und setzt die Nummern fest ein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber so ganz kann ich den Sinn der Adressierung über den Index auch nicht erkennen. Es sei denn, er will 200 FC so aufrufen. :ROFLMAO:

Wir haben ne Maschine, da wurde auf die Art eine Schrittkette gebastelt.
Wenn alles erfüllt war, wurde am Ende die neue Schrittnumer geladen.

Dacht auch mich trifft der Schlag als ich das, das erste mal sah :ROFLMAO:

Gruss Andy
 
da mir nicht 1 Fall einer defekten MMC bekannt ist

@SPS_Fuzzy, ich weiß nicht ob das Problem schon gelöst ist (hoffentlich wohl!) aber als Siemens die neue MMC Reihe ...8Lx11... vor drei oder vier jahren eingeführt hat, hatten sie reihenweise Probleme mit kaputten MMC Karten. Ich verstehe wo Du hin willst, und auch weswegen, aber ich würde versuchen das irgendwie H/W unabhängig zu realisieren.
 
Zunächst mal Danke an alle die sich Gedanken darüber gemacht haben.
Natürlich werden alle normalen Bausteinaufrufe die für die Funktion der Maschine gebracht werden mit einem CALL und direkt erledigt.
Die indirekten Aufrufe sollen nur für die Diebstahlsteuerung irgendwo tief in wichtigen Standardfunktionen liegen.
Wenn ich das ganze HW unabhängig mache und jemand baut die Anlage 1-1 nach, also mech. und elektrisch, dann sind die beiden Kisten für die SPS gleich und ich kann sie so nicht schützen.
Der einzige Weg der da bleibt sind irgendwelche unveränderbaren HW Eigenschaften wie Seriennummern...
Da aber ein MP270, eine SPS, EA-Karte... mal durch welche Gründe auch immer kaputt gehen können und deshalb ausgetauscht werden müssen, bleiben nicht mehr allzuviel Möglichkeiten um irgendwas zu realisieren!

Da ich noch nie von einer defekten MMC gehört hatte (bis eben) schien mir das einer der einfachsten und wohl auch besten Wege zu sein.
Falls jetzt halt mal doch eine MMC getauscht werden muß, muß halt das Datenwort mit dem Vergleichswert per VAT angepaßt werden. Das sehe ich auch nicht als so goßes Problem, da in unseren Panels immer die SteuernVar Funktion integriert ist und somit selbst ein normaler Bediener mit meiner Anleitung die ausgelesene Nummer auslesen und in den Vergleichwert schreiben kann, da ja beides in DBs gespeichert wird...

Ich kann nur nochmal sagen das mir sowas überhaupt nicht gefällt:sad:, aber wenn der Markt uns zu sowas zwingt, dann sollte es zumindest halbwegs ordentlich gelöst werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Böse Welt.
Vielleicht hilft dir folgende Idee weiter:
Ich würde den CPU-stopp in mehreren geschützten Standardbausteinen verstecken, die zeitversetzt oder zu bestimmten Daten (Datums?) einsetzen.
 
Hallo Kiesstumpe,

genau so will ich es ja machen.

Bloß halt ohne die Bausteine zu schützen, damit die Wartung sie weiterhin beobachten kann, man es aber denoch nicht via Querverweis findet. Daher ja der ganze Aufwand. Noch geiler wäre es wenn man die SFC Aufrufe auf gleiche Weise "verstecken" könnte.
 
Ne, ich meine in so ganz einfachen unscheinbaren Funktionen, wie Skalierungen, Konvertierungen, Umrechnungen und dergleichen. Die werden doch doch sicher zig.mal in deinem Programm aufgerufen-oder könnten es zumindest. Die rührt auch kein Instandhalter an (und ich habe die Dinger auch schon jahrelange nicht mehr angerührt). Musst das Ding halt einmal richtig und protokolliert mit allen Konstellationen durchtesten - und dann zumachen.


hth
 
Zurück
Oben