SPS -OPC - .NET (C#)

Hallo,

wie sieht heute das Zusammenspiel aus? Wie wird da programmiert?

Meine Recherche hat das ergeben. Internetsuche

Steuerung in der SPS (z.B B&R, Beckhoff) Die Oberfl=E4che in C#

Ich tue mir jetzt etwas schwer den Zusammenhang, sprich die Schnittstelle zu verstehen.

GUI - .NET(C#) ----- OPC ? ---- SPS .................................Steuerung Achssystem .................................Roboter .................................Transportband, Lebensmittel

Gibt es irgendwo Musterbeispiele? C# --- OPC? ... Siemens S7 ---OPC ? .... Codesys

Datenspeicherung in C#, dann werden alle Postionen x und y zur SPS =FCbertragen. Wie?

formatting link
formatting link

Gr=FC=DFe Sandra

Reply to
Sandra Bauer
Loading thread data ...

formatting link

Braucht man da unbedingt .NET dazu? (Eine S7, Step7-Software und ein Laptop mit USB-PPI-Kabel tut es auch.) Ansonsten bietet

formatting link
noch einiges an Beispielen fuer den Aufbau SoftSPS (Multiprog) auf Proconos (SPS-Laufzeitsystem).

Regards Karsten

Reply to
Karsten Roch

Geht es dir speziell um OPC, oder um eine Kommunikation zwischen PC und einer SPS?

Wir haben uns mit dem Thema OPC vor einigen Jahren beschäftigt und das Thema weitgehend zu den Akten gelegt. Damals gab es lustige Effekte, Update auf IE6 und anschließend lief OPC nicht mehr.

Wir verwenden seitdem wenn möglich andere Techniken.

Zum Verständnis:

Der OPC-Server ist ein Programm, das in der Regel auf einem PC läuft, und das die Kommunikation mit der SPS übernimmt.

Das Bedienprogramm ruft dann eine Programmbibliothek auf, mit dem die Kommunikation mit einem oder mehreren OPC-Servern aufgebaut wird.

Früher lief das per COM bzw. DCOM. Das war auch der Grund für die lustigen Effekte beim Windows- bzw. IE-Update.

Reply to
Stefan

Folgendes: Johurtmarkiermaschine (Datum, Halbtbarkeit) x,y Positionen.

Steuerung dachte ich k=F6nnte eine SPS machen. Die Datenkommunikation mit SQL Server, Accessdatenbank .NET (C#)

Das Programm verwaltet C# und sendet dann die Positionen zu der SPS. Wie? Die Tintenanlage bringt das Datum auf. Seriell COMPort

Ich muss eine Machbarkeitsstudie erstellen. Noch nicht programmieren. Ein Konzept entwerfen.

Gr=FC=DFe Sandra

Reply to
Sandra Bauer

Hallo Karsten,

Ein Kollege meinte mache alles mit C# .NET. Es gibt I/O Karten f=FCr den PC.

Pollen der Eing=E4nge? Prellen, wie lange liegt das Signal an.....

Wei=DF nicht. Microsoft geht den Weg in die Automatisierung, Maschinenbau.

Sandra

Reply to
Sandra Bauer

Hallo, Sandra,

Du meintest am 25.10.09:

"Access"-Datenbank? Schmeiss sie weg. Access taugt höchstens zur Verwaltung eines Weinkellers.

".net"? Microsoft-Spezialllösung "C#"? Microsoft-Speziallösung

Du willst also den armen Kunden dazu zwingen, auf umbestimmte Zeit nur Microsoft-Programme laufen zu lassen. Das ist nicht kundenfreundlich.

Die SPS sollte ASCI-Dateien lesen können, und das führt zu CSV-Dateien.

In früheren Zeiten hätte ein BASIC-Programm gereicht. C ist überdimensioniert, C# erst recht.

??? Der RS232-Port stirbt aus. Sagtest Du nicht, dass eine SPS beteiligt sein sollte? Die hat zwar vielleicht einen RS232-Port, aber nicht für einen Drucker.

Dann lass doch zuallererst die (verfrühte) Festlegung auf bestimmte Produktnamen (wie C#).

Viele Gruesse! Helmut

Reply to
Helmut Hullen

"Sandra Bauer" schrieb

Ich mache sowas in C# und mit Beckhoff-System. Bei Beckhoff gibt es TwinCat das man locker in C# einbinden kann. Dann steht nat. alles zur Verfügung was man in C# eben hat.

Man sollte aber nicht einfach drauflos programmieren, auch hier wird ein wenig System verlangt, sonst kommt man schnell durcheinander und die Sache wird extrem unübersichtlich.

Ich habe mir dazu schon einiges ausgedacht.

Im Prinzip braucht man sowas hier : VisiWin

Das ist in C# und nutzt auch OPC und wird im Visual-Studio programmiert. Besteht eigentlich nur aus Komponenten f. C#, auch wenn es eine eigene Entwicklungsumgebung noch extra dazu gibt.

Vielleicht wollt Ihr ja sowas selber programmieren, dann melde Dich(ich suche gerade was Neues in genau dieser Richtung -> paredo(at)gmx.net )

Man sollte nat. die fortgeschrittenen Prorammiertechniken in C# beherrschen, wie Events/Delegats, MAn sollte Kompoennten entwickeln können etc.

OPC ist nur ein Treiber, der, da standardisiert, es ermöglicht allerlei Hardware an die eigene Software anzubinden, sofern die eine OPC-Schnittstelle hat.

OPC gibt nur ein paar Variablen rüber, eigentlich ein standardisiertes OLE, wie es ganz Windows verwendet und damit besteht auch die Einschränkung auf Windows-Rechner mit den entsprechenden Problemen. Neuerdings gibt es OPC-UA, welches auf Ethernet-Technik beruht - da könnte man nun auch Linux nehmen, als Steuerrechner.

Mit C# kann man nat. nicht wirklich eine Anlage STEUERN! Man kann Zustände anzeigen und Variablen setzen und die Daten für Produkttypen in einer DB speichern und dann für die schnelle Umrüstung wieder an die Anlage geben. Mann kann Messwerte speichern um sie später auswerten zu können bzw. um die Qualität zu sichern und die Produktion nachverfolgen zu können. Das wird heute ja auch durch ISO9000 usw. gefordert. Natürlich kann man verschiedene Sprachen für die Oberfläche zur Verfügung stellen und es damit verschied. Nutzern ermöglichen in ihrer Muttersprache über die Oberfläche zu bekommen. Auch kann man die Oberfläche übersichtlich und selbsterklärend gestallten, was den Bedienern nat. auch weiterhilft etc.

Reply to
Uwe Paredo

"Sandra Bauer" schrieb

Machbar ist das!

Bei Beckhoff gibt es ja Einiges, z.b. eine Kopplung der SPSe über Profibus. Dabei kommt eien Profibus-Karte in den PC und über die Beckhoff-Software/TwinCat kommt man an die Werte der SPS ran und kann sie über C# auswerten und setzen.

Bei Beckhoff geht eigentlich alles über dieses TwinCat, auch wenn man da direkt eine SPS über diese Busklemmen ansteuern will oder nur die Busklemmen hne SPS. Aber das alles hier aufzuführen macht mir zuviel Schreibabrbeit ;-)

Reply to
Uwe Paredo

Hallo, Uwe,

Du meintest am 25.10.09:

Pure Neugier: ist so etwas "echtzeit-fähig" im DIN-Sinne?

Viele Gruesse! Helmut

Reply to
Helmut Hullen

"Helmut Hullen" schrieb

Wohl kaum, aber wozu auch? Man nutzt das für eine GUI - also als graph. User-Interface.

Für Echtzeit nimmt man eine SPS und der gibt man nur Werte, die nicht unbedingt zeitrelevant sind.

Alternativ muss sie, die SPS, eben warten bis sie vom C#-Programm ein Signal bekommen hat, das es weitergehen kann.

Eine Achse würde man nicht direkt ansteuern, man würde einer SPS sagen wo die Achse hin soll. Wenn sie da angekommen ist, liefert die SPS, falls notwendig, ein Signal für den Vollzug an die C#-Software. Die aktuelle Position kann man anzeigen, aber auch nicht jede Änderung, da sonst zuviel Traffic entsteht. Hier lässt man sich die Werte zyklisch geben z.b alle

500ms - für die Anzeige reicht das aus.

Allerdings geht da schon einiges - bei mir kommt fast 1MB pro Sekunde über den Profibus auf den PC an und das funktioniert seit Jahren problemlos. Natürlich geht das nicht mit reiner Anfänger-Programmierung, da sollte man sich schonmal etwas eingelesen haben ;-)

Threads, Events usw. sollte man nutzen können.

Aber warum das unbedingt selber machen? Das lohnt nur für Firmen, die diese Software als Produkt verkaufen wollen oder bei sehr grossen Stückzahlen um Lizenzkosten zu sparen. Alle anderen sollten was Fertiges nehmen, wie VisiWin oder WinCC oder diverse andere. Bei einmaligen Projekten sollte man gleich Externe Fachleute bemühen.

Reply to
Uwe Paredo

Hallo, Uwe,

Du meintest am 25.10.09:

Dafür wäre es sinnvoll - klar.

Aber vermutlich weisst auch Du, auf was für Ideen Kunden kommen.

"Machbarkeitsstudie" klingt nach Firma (vielleicht macht die Erstfragerin dort so etwas wie ein Praktikum und soll - indirekt - zeigen, ob sie Lösungen finden kann)

Viele Gruesse! Helmut

Reply to
Helmut Hullen

"Helmut Hullen" schrieb

Es kommt halt immer auf das Projekt an. Es gibt auch Projekte ohne Echtzeitanforderungen und dafür habe ich so einige Programme schon laufen. Aber eine Anlage sollte man erstmal über eine SPS steuern lassen, allein wegen den log. Verknüpfungen. Allerdings fragen diese SPS dann bei meinen C# nach, ob ein Teil gut oder schlecht ist, welches meine Software aus diversen Werten ermittelt. Diese Werte stehen so nicht alle der SPS zur Verfügung und es wäre wegen der Flexibilität der Anlage auch schwierig alles die SPS machen zu lassen.

Die modernen PCs sind ja ungeheuer schnell und Dot.Net läuft auch 24/7 durch, anders als die Win32-Programmierung vorher.

Da können wir jetzt lange rätseln. Software ist für einen Maschinenbauer in der Regel aber nun auch wirklich ein anderes Fachgebiet. Das gilt auch noch für E-Techniker. Da macht es schon Sinn sich an Fachleute zu halten. Möglichkeiten gibt es jedenfalls viele ;-)

Reply to
Uwe Paredo

"Uwe Paredo" schrieb

Wobei Beckhoff eine Soft-SPS anbietet, also eine die auf einem PC läuft und echtzeitfähig sein soll. Diese wird auch in den BusKlemmen verwendet, die mit PC ausgerüstet sind. Auch kann man diesen PC für die Anzeige verwenden, also einen Bildschirm anschließen etc.

Reply to
Uwe Paredo

Hallo Zusammen,

OK gibt es aber Dokumente, Beispiele, Simulationen wie das aussieht.

Praktikum 2.tes Elektrotechnik.

Ich denke es gibt fertige Treiber f=FCr Achssysteme Also kann ich Objekte anlegen.

CAxis x x.MoveReferenz() x.MoveToPosionInMM(234,44)

CAxis y y.MoveReferenz() y.MoveToPosionInMM(10,76)

Verwalten tue ich alles in C# .NET

Liste an Koordinaten

Wie kommst nun zur Achse. Wie geht das das will ich. Ich will keinen Treiber f=FCr eine Servoachse schreiben. Meist sind es ja Ansteuerung in CAN CANOpen Profibus Seriell

Vielleicht gibt es Treiber in .NET.

Gr=FC=DFe Sandra

Reply to
Sandra Bauer

Man müsste mal sehen, was der Tintenstrahldrucker von sich aus schon kann. Ich hab vor einiger Zeit mal mit einer Anlage zum Beschriften von Rohren direkt am Extruder zu tun gehabt.

Der Tintenstrahldrucker war ziemlich aufwendig und konnte auch direkt programmiert werden. Wir haben nur noch Taktimpulse aus einer SPS auf den Drucker gegeben und der hat dann den Rest gemacht.

Für mich klingt das nach einer Standardaufgabe:

Datenbank mit Artikeldaten (kein Access!), Drucker wird vom PC aus konfiguriert, Joghurth wird von einem Sensor erkannt und der Drucker druckt. Die Konfiguration des Druckers geht unter Umständen einfach über die serielle Schnittstelle. Ich würde da Delphi vorziehen, aber mit C# oder VB dürfte das auch gehen. Alle zeitkritischen Sachen sollte der Drucker von sich aus machen, eventuell mit Hilfe einer kleinen SPS.

Ich vermute mal, dass für eine gewisse Zeit immer dieselben Joguhrts mit derselben LOT-Nr. und demselben MHD kommen, und dass beim Produktwechsel ein Eingriff erfolgt, d.h. das Programm bekommt mitgeteilt, dass jetzt Joghurths aus einer anderen Charge kommen. Der Drucker/PC muss also nicht jeden einzelnen Joghurt identifizieren.

Gruß

Stefan DF9BI

Reply to
Stefan Brröring

Wir hatten auch mal so einen Tintenpisser in eine Prüfanlage eingebaut, der durchlaufende Langteile bepinkeln mußte. Interessantes Gerät, leider aus Froschfresserland und deswegen etwas, äähm, schlecht dokumentiert.

Die Dünste, die der ausgestoßen hat, haben das halbe Haus benebelt, und die Alkoholflasche, in die irgendwelche Teile eingelegt wurden, damit sie nicht eintrocknen, wurde trotz dem Aufkleber "Verschmutzt!" von einem Kollegen verwendet, der damit einen an sich harmlosen Fleck am Boden beseitigen wollte. Daraufhin war der Fleck plötzlich schwarz, ca. einen Meter groß, und je ärger der verzweifelte Kollege rubbelte, desto doller wurde das Schwarz :-))) Der hat das nicht einfach nicht überrissen, daß gerade der (kontaminierte) Alkohol den Dreck erst macht!

-ras

Reply to
Ralph A. Schmid, dk5ras

"Sandra Bauer" schrieb

Demo-SW gibts komplett kostenlos und funktionsfähig. Nach 30Tagen muss neu installiert werden. Hardware gibts wohl eher nicht kostenlos und ein paar Hürden sind schon zu überwinden.

Das sollte eine SPS machen, nicht sie C#-SW Dafür gibt es auch Klemmen von B. einfach mal die Website durchstöbern oder den Support anrufen.

Über die Busklemme, für die es verschiedene Varianten gibt und damit Ansteuermöglichkeiten von USB, Profibus bis Ethernet.

...der nennt sich TwinCat und dafür gibt es eine Dot.Net-DLL

Vielleicht gibt es auch andere Hersteller, aber B. hat das alles ehr gut gelöst. Dafür muss man die Website studieren und verstehen lernen oder nächsten Monat auf die Messe in Nürnberg(SPS/IPC/Drives 2009) gehen und sich das erklären lassen.

Ich habe ja gesagt, gaaanz so einfach ist es nun auch wieder nicht, wenn man mit der Materie keine Übung hat.

Reply to
Uwe Paredo

Sandra Bauer schrieb:

Nichts für ungut...

So wie Du das hier schreibst gibt das die beim Wartungspersonal allseits beliebte Variante...

Irgendjemand schreibt, in irgendeiner Sprache, ein gerade läuffähiges Programm das nirgendwo dokumentiert ist und mit irgendwelchen Schnittstellenaufrufen arbeitet.

Ein kompetenter Kunde kauft das nicht. Eine starke Instandhaltungsabzeilung verwirft das wenn es ihr "intern" angeboten wird.

Der hier genannte Ansatz externes System gibt Daten an SPS/CNC und die kümmert sich autark um den Rest ist das was passt, alles andere gebastel das irgendwann zu Problemen führt

(erlebte Anekdote zum Thema: Gelenke sollen mit X Gramm Fett befüllt werden, unbedingt soll das alles in einer Hochsprache passieren weil der Ing. nur das kann. Nach 3 Monaten Betrieb wurde es dann umgestellt das die SPS das selbst tut. Warum? 8-) Der Tisch auf dem das fetten automatisch vorgenommen wurde war das 4. mal unter dem Fett verschwunden).

gruss Markus

Reply to
Markus Philippi

Hallo Markus,

ok. Also besser die SPS steuert, C# macht die Datenhaltung. Gibt es irgendwo Beispielcode, wie das Zusammenspiel aussieht. Beispielprojekte.

Im Studium lernt man das nicht. OK nur S7.

Gr=FC=DFe Sandra

Reply to
Sandra Bauer

Hallo Uwe,

formatting link

Serielle Ansteuerung, k=F6nnte C# ja machen.

Gr=FC=DFe Sandra

Reply to
Sandra Bauer

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.