Archiv verlassen und diese Seite im Standarddesign anzeigen : SPS selber bauen, Speicher SD-Card, USB Port
Ein Hallo an Euch,
habe wieder einmal eine verrückte Idee! *wie immer*
Möchte mir eine kleine SPS selber bauen.
Ist ja an sich nicht schwer, Optokopler an den Eingängen und HEXFet´s an den Ausgängen.
Was mich "juckt" ist die Art der Programmierung!
Das "Teil" soll aus drei Komponenten bestehen.
1. Die SPS selber, µC mit den IOs, SP-Card als Programmspeicher und nen USB Anschluß für den Datenaustausch
2. Eine kleine Software zur Programmerstellung auf dem PC "VBasic" oder so etwas - über USB.
3. Ein Programmiergerät im Handyformat, ein µC mit Display und ner kleinen Tastatur und auch mit nem USB Anschluß zur Datenübertragung.
Die zwei µC Geschichten sind ja nicht schwer zum bauen.
Meine Herausforderung liegt darin das ich nicht in einer µC-Sparache programmieren will sondern mit den Typischen SPS-Befehlen.
Das soll sowohl am PC und am Handyprammiergerät so sein.
Jetzt brauche ich Eure Hilfe!!!
Ich muß die SPS Befehle die ich eingebe (PC und Handypr.) ja direckt in ein HEX-File umwandeln. Damit der Bootloder in der SPS die Daten die auf der SD-Card gespeichert sind ja auch versteht.
Wie mach ich so etwas???
Ich muß doch damit das klappt so eine Art "Online-Interpreter" programmieren oder???
Bin gespannt auf Eure Vorschläge
Gruß MrQu
tach MrQu
hab' mal dazu etwas hier gesehen:
http://www.mikrocontroller.net/forum/read-4-62596.html#new
Habs aber nicht genauer angeschaut sollte sich für dich aber lohnen.
gruss Frank
@Fränki
Danke!
Die haben mich mit auf die Idee gebracht.
Ich bin nur im programmieren nicht so gut. Hardware aber super!
Möchte halt noch zusätzlich zu dem was die bei "Mikrocontroller.Net" bauen ein Handbedienteil, PC mit einbinden und die Übertragung per USB.
Damit man wirklich unabhängig ist und es auch bei neuen Notebooks geht.
Gruß MrQu
Wie mach ich so etwas???
Ich muß doch damit das klappt so eine Art "Online-Interpreter" programmieren oder???
Ja,genau das ist die Primäre Arbeit die du leisten mußt.
Je nachdem was alles möglich sein soll kannste dich drauf einstellen das du platz brauchst also den Controller nicht zu klein wählen.
Das zu interpretierende Programm dann wie du schon vor hattest bequem auf nem schnellen externen Speicher.
Aber genaugenommen stellt sich jetzt die Frage warum ne SPS mit interpreter ?
Einfacher,platzsparender und schneller ist es gleich ein passendes Programm in As. C oder Basic zu schreiben.
Weißte was ich meine ?
badamtam
08.01.2006, 08:46
Der Gedanke einen µC in der Art einer SPS zu programmieren ist schon verlockend. Nich zuletzt Arbeit mit einem Prozessabbild, bei dem der Status der Aus/Eingänge erst nach Zyklusende aktualisiert wird, macht ein ganz anderes Programmieren möglich. Der Interpreter macht eine komfortable Art des Onlinedebuggins möglich - man könnte sich halt, wie bei einer Möller, oder Siemens den Inhalt jeder Variablen life anzeigen lassen.
Weiß nur nicht wie das Geschwindigkeitsmäßig noch vernünftig auf einem Atmega zu realisieren wäre. Für sehr einfach Sachen wärs ja bestimmt interessant, aber bei (SPS-typisch) dutzenden nebeinander laufenden Timern und Zählern, aktiver Onlineverfolgung und einem etwas umfangreichern Hauptprogramm kann man die Zykluszeit warscheinlich mit der Stopuhr ausmessen - oder?
vanveeteren
08.01.2006, 09:45
Hallo
hier auch noch ein link zu so einem projekt
http://www.mcselec.com/index.php?option=com_content&task=view&id=59&Itemid=57
Hi und Servus
@Ratber und @badamtam
Ich habe das etwas anders vor!
<u>Handprogrammiergerät:</u>
Ich möchte im Handprogrammiergerät z. B. einen ATMega32 einsetzen oder kleiner. Sollte ja langen. Er muß ja nur ein Display ansteuern, die kleine Tastatur abfragen, das ganze SPS Programm in ein IC2 EEprom zwischenspeichern und dann entweder über den USB-Prort übertragen oder auf der SD-Card speichern.
<u>PC Software:</u>
Eigendlich nur eine Art Editor, vergleichbar wie mit dem Taschenrechner unter XP. Mit der Möglichkeit zum speichern und dann auch per USB zum übertragen oder zum speichern auf die SD-Card. Es soll auch nur das reine SPS Programm gespeichert und übertragen werden.
<u>SPS:</u>
Hir sollen die ganzen IOs, ADs, DAs, Timer, Merker, ... und und und laufen. Die CPU soll das SPS-Programm zuerst übersetzen und in diesem Zustand dann auf einem internen Speicher (vielleicht auch auf einer zweiten SD-Card) speichern. Dann soll er "Online gehen" und das compilierte Programm abarbeiten. Als CPU habe ich mir eine ARM7 oder ARM9 von Atmel gedacht.
Was haltet Ihr von dieser Lösung???
Gruß MrQu
Ja so hab ich das schon verstanden.
Programierung per PC oder Handgerät.
Programm liegt auf Karte vor ,wird nochmal in Token umgesetzt und läuft dann interpretiert.
Is im Grunde das gleiche wie die kleinen Mini-SPS die man auf dem Markt findet nur etwas erweitert.
Ja,wie lang die Zyklenzeit ist hängt primär nur von der Programlänge ab und was noch so nebenbei genutzt bzw. Emuliert wird (zb. Timer)
Schon ne Vorstellung wie die Sprache aussehen soll und welche Funktionen enthalten sein sollen ?
Nochmal Hallo,
bin noch am überlegen ob "Schleifen" auch enthalten sein sollen???
Gruß MrQu
Ja,also die üblichen Grundlegenden Befehle.
Schleifen machen Sinn wenn du was Abarbeiten willst was nicht mit den anderen Befehlen geht.(zb. Eigene Rampen für PWM)
Hmmm,
meinst Du @Ratber das es umbedingt nötig ist eigene PWMs zu erstellen?
Schleife an sich finde ich ja OK.
Hat die S5 oder S7 überhaupt Schleifen? Weiß ich jetzt garnicht genau.
Wie gut bist Du eigendlich im Programmieren?
Und aus welcher Ecke von D kommst Du eigendlich - vielleicht können wir da ja zusammen basteln.
Gruß MrQu
meinst Du @Ratber das es umbedingt nötig ist eigene PWMs zu erstellen?
Nun,PWM ist recht individuell.
Du kannst nicht erwarten das jeder Motor oder Antrieb mit der gleichen Frequenz zurecht kommt.
Und eine feste Rampe ist zwar nett aber was machst du wenn du bei einem schweren Antrieb langsamer sein mußt als vorgesehen ?
Eine Schleife ala........
For X= Y to Z
PWM = X
Pause T
Next
......Umgeht das Problem mit wenig Aufwand.
Alternativ lass die Rampe konfigurierbar werden
zb. Ramp = x (Steigungsrate in ms)
Schleife an sich finde ich ja OK.
Hat die S5 oder S7 überhaupt Schleifen? Weiß ich jetzt garnicht genau.
Die S7 auf jeden Fall.
Bei der S5 weiß ich nicht mehr.
@Ratber
Wie würdest Du den eine Schleife in der SPS-Syntax realisieren?
Gruß MrQu
Murphywareinoptimist
08.01.2006, 18:41
Ah....
Ich glaube ihr solltet Euch erst eimal klar darüber werden WELCHE Sprache nach der IEC 61131 ihr verwenden wollt. Wenn das ganze einen Sinn ergeben soll solltet ihr Euch auf eine festlegen und nicht wild mischen.
Da das ganze in VB stattfinden soll warum dann nicht FBD?
Ehrlich gesagt ...äh... was soll das ganze am Ende bringen?
Gruß Olli
Is doch seine Sache wie er die Sprache zusammenzimmert.
Schreibt ja auch keiner vor wie ein Roboter auszusehen hat. :wink:
Murphywareinoptimist
08.01.2006, 19:04
Hi!
Is doch seine Sache wie er die Sprache zusammenzimmert.
Äh... ja klar... aber wenn ich das richtig verstanden habe soll das ganze ja möglichst nahe an eine SPS herankommen...
Davon abgesehen dass es da noch einiges gibt was man beachten müsste.
Dann kann man das ganze doch auch möglichst real machen... seine Liste ist an AWL/IL angelehnt. Deine Schleifenstruktur aber an ST!
Das müsste mann dann wohl mit bedingten Sprüngen machen.
Befehle die sich an die Sprache anlehnen ... es so aber in keiner SPS gibt ist eine Sache... aber der Gesamteindruck soll doch stimmen??
Na ja wie dem auch sei... ich würde mit IL nicht gerade eine der unkonfortablen Sprachen wählen. O:)
Das geht ja schon fast in richtung Assembler. 8-[
Gruß Olli
Der jetzt stille schweigt :-#
[/quote]
Ja es soll eine SPS werden aber der Namen "SPS" (Speicjer Programierbare Steuerung) erhebt keinerlei bindung an einen Standard.
Schau mal auf den Markt da findeste neben den großen auch noch haufenweise Kleinsysteme mit ganz eigenen Ansätzen.
Irgendwo bei Conrad oder ELV gabs mal eine die man schön Visuell mit Schaltsymbolen (ISO-Gattern) programieren konnte.
Wichtig ist das es geht.
Murphywareinoptimist
08.01.2006, 19:28
Hi!
Dann habe ich das Anliegen falsch verstanden.
Das was du sagst ist so nicht ganz richtig! Das was du meinst sind Nieschenprodukte! Versuch mal in Amiland eine SPS zu verkaufen die nicht in zumindest in Ansätzen mit KOP zu Programmieren ist.
Endlich gibt es so was (na ja eigentlich schon über 10 Jahre) wie die IEC 61131 obwohl das Endziel was dahinter steht (z.B. das Program was z.B. mit einer Schneider Software geschrieben ist für eine Schneider SPS auch auf einer Siemens läuft) wohl nie erreicht wird.
Selbst die Kleisteuerungen wie z.B. die EASY (KOP) und die LOGO (FUP) nennen sich eigentlich nur programmierbares Relais.
Nennen wir das ganze doch programmierbare Relaiskarte. :-b
Gruß Olli
Abend, *:-)*
ich bezwecke mit der Sache folgendes:
Ich habe im Freundeskreis und auch bei vielen Mitgliedern hir im Forum den Eindruck, daß es viele Einsteiger giebt und sehr viele Berührungsänste gibt.
Ich denke mir wenn man eine einfach zu progrierende µC Einheit hätte wäre es für viele einfacher.
Ich denke dabei auch an Kinder oder Jugendliche. Mein Kleiner z. B. will bei mir immer mitbasteln und kann nicht, gut jetzt ist er noch zu klein.
@Olli
Schreib mir doch mal eine Beispiel AWL wie das nach deiner ISO aussehen müsste.
Gruß MrQu
zu schnell abgeschickt!!!
Die Sache mit dem Programmiergerät und der einfachen PC Software soll ja auch nur für den Einstieg sein.
Ich möchte die "SPS" auch so bauen das die CPU Einheit auf die IO Platine aufgesteckt ist. Mann kann die CPU Einheit auch seperat betreiben und wie gewohnt programmieren und als normales µC Bord betreiben und über den COM- oder USB- Port wie bei allen ARMs programmieren.
Gruß MrQu
Murphywareinoptimist
08.01.2006, 20:41
Also nach IEC gibt es fünf Sprachen
Die alten KOP FUP AWL (nur benannt mit englischen Abkürzungen)
Beispiel in Anweisungsliste (AWL)
LD E1.0
U E1.1
= A2.0
Beispiel (KOP)
E 1.0 E1.1 A2.0
---------[ ]--------[]-------( )
Bei FUP werden Merker Ein- und Ausgänge an Schaltzeichen aus der Digitaltechnik parametriert.
Ach ja die Variablen werden in der IEC mit I und Q % und einem Zahlenschwanz benannt… da sind sich aber die Hersteller noch lange nicht einig ;-)
Die beiden “Neuen“ sind AS und ST
Strukturierter Text ist an Hochsprachen angelehnt und zur Programmierung komplexer Vorgänge. AS ist so eine Art Programmiersprache wie ein Ablaufdiagram (ganz grob Ausgedrückt)
Du hast Dir gerade Mit AWL die Sprache ausgesucht (neben ST) die keine grafische Unterstützung hat und damit für Einsteiger am Schwersten zu erlernende Sprache ist.
Bei den Grundverknüpfungen ist sie wohl einfacher... wenn man an Komplexere Dinge herangeht wie Ein- oder Ausschaltverzögerungen oder Flankenerkennungen... na ja...
Gruß Olli
Murphywareinoptimist
08.01.2006, 20:48
Hab noch mal im Netz geschaut... was zum Lesen.
http://193.108.217.183/ATProducts/plcwebsite/Dokumentation/doku/072304-104.pdf
Gruß Olli
Das was du sagst ist so nicht ganz richtig! Das was du meinst sind Nieschenprodukte! Versuch mal in Amiland eine SPS zu verkaufen die nicht in zumindest in Ansätzen mit KOP zu Programmieren ist.
Ja,mach es konform,dann noch den Papierkrieg nebst Kosten das du dir "Konform" auf das Banner schreiben und damit werben darfst.
Dann erzähl mir was eine Einheit kostet und schau auf den Preis für ein S7-Einsteigerset (Derzeit ca. 450 Öcken).
Spätestesn jetzt interessiert es in Amiland überhaupt keinen mehr ob das ding Konform ist oder nicht.
Endlich gibt es so was (na ja eigentlich schon über 10 Jahre) wie die IEC 61131 obwohl das Endziel was dahinter steht (z.B. das Program was z.B. mit einer Schneider Software geschrieben ist für eine Schneider SPS auch auf einer Siemens läuft) wohl nie erreicht wird.
Wilkommen in der Realität.
Es war noch nie anders als so wie du es beschrieben hast.
Alle großen Systeme teilen sich zwar den gleichen Grundfunktionssatz aber die Featuritis geht weit auseinander so das von Kompatibilität keine Rede sein kann.
Is also wie Linux.
Alle Häuser Heucheln Standard aber unterm Tisch wird weiterhin kräftig getrampelt.
Witzlos.
Genauso könnte man den Amis erzählen das se endlich den Vertrag erfüllen sollen den se in Frankreich vor einigen Jahrzehnten unterschrieben haben :wink:
Wie war noch das mit der DVD ?
Die erste Fassung hat nicht lange gelebt.
Wer sich die Teuren Geräte geholt hat hat sich hinterher in den Allerwertesten gebissen.
Ja und der "Standard" danach existiert Zweigeteilt was die beschreibbaren angeht.
Bei der noch jungen Blueray das gleiche Spiel nur das man hier schon vor der richtigen Einführung gleich zwei Standards geschaffen.
Es geht in erster Linie ums Geld und nicht umn Konformität.
Für SPS gilt das gleiche oder glaubst du Siemens und AEG hätten sich seinerzeit was geschenkt ?
Also kann man eine kleine Autarke Preiswerte SPS so gestallten wie es einem gefällt.
Der Sinn ist die Erfahrung und nicht der Befehlssatz.
Selbst die Kleisteuerungen wie z.B. die EASY (KOP) und die LOGO (FUP) nennen sich eigentlich nur programmierbares Relais.
Nennen wir das ganze doch programmierbare Relaiskarte.
Gut dann nenne ich den Krempel von Siemens,AEG usw. nur "Programierbare Mess und Steuerkarten"
@Olli
Na ja, ich will die Einsteiger ja ans Programmieren gewöhnen und nicht ans "Bilder mahlen".
Sie sollen dann ja an den Punkt kommen wo sie auf normale µC Sprachen umsteigen.
Mann soll ja eben das "Gefühl" für einen µC bekommen, aber lernen in der reinen Theorie macht keinen Spaß. Wenn ich aber ein paar Lampen leuchten sehe oder einen einfachen Roboter (Fahrzeug) sich bewegt macht es gleich mehr Spaß.
Hast Du nen Link oder ne Liste mit den Befehlen nach IEC für mich.
Kannst mir die ja auch eMailen: mrqu@mrqu.de
Gruß MrQu
Murphywareinoptimist
08.01.2006, 21:31
Hi!
Jetzt habe ich auch verstanden was das eigentliche Ziel ist...
Da gebe ich Euch recht... da ist es mumpe wie man das Kind nennt. Der Grundbefehlsvorrat einer SPS ist da gut geeignet...
Ist ja quasi ein Experimentierboard nur mit digitalen E/A´s
Hier mal schnell die Grundfunktionen aus dem Kopf:
UND
ODER
NICHT
RS
SR
TON (Einschaltverzögerung)
TOF (Ausschaltverzögerung)
TP (Impulszeit)
R-Trig (Positive Flankenerkennung)
F-TRig (Negative Flankenerkennung)
Mit diesen paar Befehlen kannst du schon SEHR viel bewegen! Mehr brauchst du für deine Zwecke gar nicht.
Gruß Olli
Ja,mehr ist im Grunde nicht nötig.
Einige zeitgemäß gefragte Extras dazu und fertig ist die Laube was den Befehlsvorrat angeht.
Wer mit S5 oder S7 basteln, und auch noch preiwert lernen, will
hier eine leckere Adresse:
http://www.muff-electronic.ch/
Ich bastel gerade eine Platine dafür.
Da gibt es eine freie SPS-Soft, die auch noch dem Siemens Wortschatz gleicht.
@Stromi
Danke für den Link.
Das Ding sieht gut aus, werde mir da mal ein paar Infos und Tipps hollen.
Aber Du kennst das ja, selber machen macht glücklich. Sind wir nicht alle ein bischen "Düsentrieb".
Sag mir doch wie Dein Versuch ausgegangen ist.
Gruß MrQu
fwallenwein
10.01.2006, 10:50
Ein Hallo an Euch,
Auch ein Hallo an Dich !
....
Ist ja an sich nicht schwer, Optokopler an den Eingängen und HEXFet´s an den Ausgängen.
Sag mal - hast Du denn schon eine Schaltung dafür ?
Ich denke auch über so eine SPS nach und such nach Schatungsideen.
Gruss
Frank
Rage_Empire
10.01.2006, 11:25
So wie ich das sehe Basiert das Ding von Muff-Electronic auch auf einem Atmel-µC.
Ja,scheint so.
Macht auch Sinn.
Es sind zu 99% keine Komplexen Rechenschritte nötig also zählt das Befehls/Takt Verhältnis und da haben Risc-CPUs gute Karten.
Rage_Empire
10.01.2006, 11:41
Ja,scheint so.
Macht auch Sinn.
Es sind zu 99% keine Komplexen Rechenschritte nötig also zählt das Befehls/Takt Verhältnis und da haben Risc-CPUs gute Karten.
Ich würd nicht drauf schwören. Weiß nicht obs ein AVR-Mega oder nen 89er ist.
Wer schört denn hier ?
Ich sagte da es Sinn macht.
Nehmen kann man so ziemlich alles was greifbar ist.
Also auch nen alten 6502 oder nen Strong-Arm je nach Geschmackt,Geldbeutel und Kenntnissen.
Also die Muff CPU ist ein 89er AVR, steht drauf. Ich hatte vor ein paar Jahren mal ein Garagentor gebaut und jetzt mal eine neue CPU mit LCD und I2C gekauft. Mit dem Projekt soll SPS "gelehrt" werden.
Der große Vorteil ist die Siemens Kompalität und das dann preiswert !
Rage_Empire
10.01.2006, 13:29
Ja stimmt, hab die Schalpläne nicht gleich gesehen:
http://www.muff-electronic.ch/pdf/DPB-1_83M.pdf
Abend Ihr µC-Bastler *lach :-)*
@fwallenwein
Bin gerade dabei den Schaltplan zu zeichnen.
Habe aber in der Arbeit sau viel zu tun, werde es vor Anfang nächste Woche nicht schaffen. Stell Ihn aber dann hier rein. - Versprochen.
Gruß MrQu
Rage_Empire
10.01.2006, 18:57
Was für ein Schaltplan meinst du MrQu?
Für die Chips von" muff" gibt es bereits schaltpläne auf der Page als PDF. Denke das schwierigste an der Arbeit wird das Programmieren des Interpreters sein.
Hat schonmal wer einen Interpreter geschrieben?
@Rage_Empire
Ne, einen Interpreter habe ich noch nicht geschrieben. UND Du...?
Ich will die Schaltung anders machen.
Zwar nicht auf 24V wie bei der Org.SPS. Aber alle IOs auf 12V und Postenzialfrei.
Bin auch am überlegen die ADs/DAs potenzialfrei potenzialfrei zu machen.
Man soll wirklich testen könne ohne das gleich was abraucht wenn man mal nen kleinen Fehler macht,
Gruß MrQu
Rage_Empire
10.01.2006, 19:55
Aufpassen mit Potentialfrei bei Analogen Dingen...muß alles linear sein, sonst kannst messungen damit vergessen.
Nein, Interpreter hab ich noch keine geschrieben. Nur kleine Terminal-Sequenzen, welche mit einfachen Buchstaben zu bedienen sind.
@Rage_Empire
Gibts von Maxim, linearer analoger Trennverstärker mit 1000V Iso.Spannung.
Gruß MrQu
Murphywareinoptimist
10.01.2006, 22:06
Aber alle IOs auf 12V und Postenzialfrei.
Mach die A´s am Besten gleich über Relais. Dann bist du freier in den Einsatzgebieten. Für die meisten Anwendungen brauchst du dann eh Koppelrelais.
Gruß Olli
Hat schonmal wer einen Interpreter geschrieben?
Wenn du dich mal damit versuchen möchtest ? Das Musterbeispiel ist der PL0-Compiler von Nikolaus Wirth. Den haben schon Tausende in der Ausbildung abgeschrieben. Deshalb findest du auch jede menge Beispiele und Erweiterungen im Internet.
http://www.246.dk/pl0.html
Oder hier ist auch noch was:
http://www.cosc.canterbury.ac.nz/tad.takaoka/cosc230/
Rage_Empire
11.01.2006, 08:16
@Vogon:
Danke für die Links, werds mir mal durchstudieren ;-)
Hallo,
kennt ihr den Algorithm Builder von Atmel? Das ist so ne Art vereinfachte
AS für den AVR. Ist nicht ganz einfach zu verstehen, könnte aber eine Hilfe sein, eine eigene Sprache zu entwickeln.
Ich hatte auch schon Gedanken, eine Blockorientierte Sprache zu entwickeln. Damit man wie bei einem Petrinetz die Programmmodule
einfach hintereinander hängen kann.
Hat das schonmal jemand irgendwo gesehen? Ich glaube bei Lego ist das
auch so. Aber gibts das auch für Mikrocontroller?
Gruß, Admiral
Habe mal das Platinenlayout für die MUFF SPS drangehängt, ich habe auch noch eine I2C Erweiterung mit ähnlichen Bauelementen.[/img]
Habt ihr mal hier geguckt:
http://www.muff-electronic.ch/
Fluxi
@flux
Dafür ist doch mein Platinenlayout, 2 Beiträge höher :-)
MfG
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.