Hallo,
ich hoffe mir kann da jemand weiterhelfen. Ich habe hier zu meinem
bestehenden und funktionierenden SPS Programm ein Struktogramm erstellt,
welches ich als Vorlage nutzen will.
Ich habe keinerlei Probleme in der SPS Programmierung - jedoch habe ich
nur wenig Erfahrung mir der Assembler Programmierung.
Vielleicht kann mir jemand Unterstützung geben.
Teil 1 der Anlage ist eine Ofenüberwachung. Hier soll nur ausgewertet
werden ob der Ofen in Bewegung ist. Siehe Anhang.
>Solche Programme erstellt man heute mit einem C-Compiler...
Das wäre ein 10Zeiler in Asm...
Grundlegende Frage zu deinem Programm: Was soll der COntroller machen,
wenn er den Ofen ausgeschaltet hat?
Guck dir am besten mal die Beispiele auf sprut.de und bei Fernado Heitor
an (sofern es da welche gibt).
Dann probierst du mal aus, wie man mit einem Controller eine LED
leuchten lässt, dann wie man einen Taster einliest und irgendwann kannst
du dann auch Öfen steuern.
Hallo
Unter der Voraussetzung, dass das Programm entsprechend realisiert wird,
liegt ein grosser Vorteil von C u.a. in der Portierbarkeit. Die
Komplexität der Umsetzung ergibt sich nicht ausserdem nicht unmittelbar
aus der Anzahl der Codezeilen. Erahrungsgemäss wächst ein Programmm auch
mit der Zeit an...;)
Deshalb auch der etwas eindeutige Hinweis zur Implementierung in C.
Dazu kommt, dass sich Gregor nur wenig Erfahrung in Assembler hat...
Beste Grüsse
Geri
>Das wäre ein 10Zeiler in Asm...>Grundlegende Frage zu deinem Programm: Was soll der COntroller machen,>wenn er den Ofen ausgeschaltet hat?>Guck dir am besten mal die Beispiele auf sprut.de und bei Fernado Heitor>an (sofern es da welche gibt).>Dann probierst du mal aus, wie man mit einem Controller eine LED>leuchten lässt, dann wie man einen Taster einliest und irgendwann kannst>du dann auch Öfen steuern.
Hallo,
es gibt nicht darum einen Ofen zu steuern. Sondern diesen auf seine
Drehbewegung (Drehhochhofen) abzufragen.
Um etwas genauer dieses Projekt zu beschreiben:
es geht hier um eine Ofenlaufringinnenschmierung.
Über einen Laser wird abgetastet ob der Ofen in Bewegung ist. (Dies wäre
auch der Teil 1 der Anlage)
Teil2: wird erkannt, dass der Ofen in Betrieb ist, werden die Pratzen
des Ofens einzeln mit Öl besprüht. D.h. Einzig und allein dieser Laser
in 3m Entfernung, erkennt dann die Drehbewegung und die einzelnen
Pratzen und gibt einen Impuls ab.
Das ganze soll jedoch keine Dauerschmierung sein sondern abgestuft in 4
Phasen:
Phase0 -> Pause (2 Ofenumläufe a 10 Pratzen (somit 10 Impulse)) ==
20Takte
Phase1 -> Mixphase ( auch einstellbar z.b. 2 Ouml.)(Ölgefäß wird gemixt)
Phase2 -> Druckphase ( auch einstellbar z.b. 2 Ouml.)(Die Pumpe baut
einen Druck in einem Druckgefäß auf ca.40 Bar, wird der Druckschalter
bestätigt und ist die Anzahl der Takte auch hier erreicht, ist Phase 2
beendet.)
Phase3 -> Arbeitsphase nun wird zu jeder steigenden Taktflanke die
Sprühdüse kurzzeitig geöffnet. Nach der Arbeitsphase ist der
Sprühvorgang beendet und beginnt wieder von vorn.
Geri wrote:
> Hallo>> Unter der Voraussetzung, dass das Programm entsprechend realisiert wird,> liegt ein grosser Vorteil von C u.a. in der Portierbarkeit. Die> Komplexität der Umsetzung ergibt sich nicht ausserdem nicht unmittelbar> aus der Anzahl der Codezeilen. Erahrungsgemäss wächst ein Programmm auch> mit der Zeit an...;)>> Deshalb auch der etwas eindeutige Hinweis zur Implementierung in C.>> Dazu kommt, dass sich Gregor nur wenig Erfahrung in Assembler hat...>> Beste Grüsse>> Geri
Er redet von einer Problemlösung und Ihr redet von Portierbarkeit in C.
Für diese Anwendung reicht so gut wie jeder µC.
Welche Notwendigkeit der Portierbarkeit besteht hier, wenn noch nicht
mal die erste Lösung in Sicht ist.
@Gregor
Wobei brauchst Du jetzt genau Unterstützung?
Gibt es schon eine Hardware, µC schon ausgesucht. Hast Du schon
Erfahrung
mit Programmiersprachen wie Assembler und C oder steigst Du in die Hard
und Softwarematerie ganz neu ein.
Ich sehe bei der Realisierung dieser Aufgabe absolut kein Problem, nur
solltest Du uns mal den aktuellen Stand der vorhandenen Hardware
rübergeben.
Sonst wird dieses Forum zum A-Z Entwicklungsbüro.
Es nützt nichts, Dir jetzt ein Beispiel in Assembler oder C zu geben,
wenn wir nicht Deinen Wissenstand kenne.
gruß
Dirk
Hallo Dirk,
wir haben einen eine Controller entwickeln lassen. Dieser Controller
wird auch schon eingesetzt. D.h. wir haben ihn bisher von einer Firma
programmieren lassen. Nun ist es aber so, dass nun ein weiteres Programm
integriert werden soll. Wir haben uns nun zur Aufgabe gemacht, dieses
Projekt selbst anzugehen und auch in die assambler Programmierung
einzusteigen.
Unsere Hardware ist sozusagen schon im Einsatz und muss nur um eine
weitere Programmvariante erweitert werden.
µC: Pic16F877
Software zur Programmierung MPLAP bzw. MCLS-Modular
Um noch zu meinem Wissenstand zu kommen. Ich habe fundierte Kenntnisse
in der SPS Programmierung (damit verdiene ich mein tägliches Brot).
Ich hatte vor kurzem einen 2 Tages Assamblerkurs wo grundlegendes
abgearbeitet wurde - soviel zu meinem Stand.
Ich bräuchte jemand der mir sagen kann wie ich z.B:
Vergleiche wie <;>;== ;
Negationen
UND, ODER,
SPEICHERNDE EIN- AUSSCHALTVERZÖGERUNGEN
programmieren muss.
Noch eine Frage zuvor.
Was heisst "es soll ein weiteres Programm integriert werden" ???
Heisst das:
Programme wahlweise umschaltbar oder Integration des neuen in das
Alte???
was hast du denn 2 Tage in dem Assembler-Kurs gemacht?
In der Zeit hättest du sich C gelernt. Zumindest um son paar einfache
Sachen zu machen.
Als Hinweis: So ein Programm wie in deinem Flussdiagramm angegeben kann
man in C in 2 Stunden programmieren und Testen. Wer sowas noch in
Assembler programmiert will nur Zeit/Geld schinden.
@Gregor
>Um noch zu meinem Wissenstand zu kommen. Ich habe fundierte Kenntnisse>in der SPS Programmierung (damit verdiene ich mein tägliches Brot).
Naja, bei SPS Programmen hat man es auch bisweilen mit arg verkorksten
Konstruktionen zu tun . . .;-)
No offence.
>Ich hatte vor kurzem einen 2 Tages Assamblerkurs wo grundlegendes>abgearbeitet wurde - soviel zu meinem Stand.
Nicht wirklich viel.
>Ich bräuchte jemand der mir sagen kann wie ich z.B:>Vergleiche wie <;>;== ;>Negationen>UND, ODER,>SPEICHERNDE EIN- AUSSCHALTVERZÖGERUNGEN>programmieren muss.
Das kann dir jedes durchschnittliche Lehrbuch zu Assembler sagen. Aber
wenn du nur SPS Programmierkentnisse hast (kein BASIC, Pascal
irgendwasanderes?) dann hast du noch einen langen Weg vor dir.
MfG
Falk
tom wrote:
> was hast du denn 2 Tage in dem Assembler-Kurs gemacht?>> In der Zeit hättest du sich C gelernt. Zumindest um son paar einfache> Sachen zu machen.> Als Hinweis: So ein Programm wie in deinem Flussdiagramm angegeben kann> man in C in 2 Stunden programmieren und Testen. Wer sowas noch in> Assembler programmiert will nur Zeit/Geld schinden.
Ich will es mal so ausdrücken.
IHR SEID RICHTIGE SCHWÄTZER.
Meldet Euch zu Wort, wenn Ihr Ihm wirklich Hilfestellung leisten könnt
und labert nicht blöd umher, denn dafür ist das Forum gedacht.
Dann schreibt Ihm doch das Programm in "C".
Aber dafür müssen erst n dutzend anderer Threads geöffnet werden, wo
nach ner Library für dies und das gefragt wird. Die einfachsten Dinge
werden zum Problem.
Immer alles andere schlecht machen. Was meint Ihr denn woraus "C"
besteht?
Aus ner Liste von Assembler Anweisungen, die nur so gut wie Ihre
Programmierer und Oberprogrammierer sind.
Also gebt dem guten Mann Unterstützung.
Ich werde es tun.
@ Dirk
Schön das es mal einer sagt. Warum muss man sich ständig für PIC
und/oder Assembler Projekte rechtfertigen?
Wie Du ja über die Verwendung von C gesagt hast, kann Grundlagenwissen
in Assembler nur hilfreich sein, wenn man sich dessen bedienen möchte.
Gruss,Edson
@Dirk
Hallo Dirk,
danke zunächst, dass du dich meinem Problem gewidmet hast.
Wie du es richtig interpretiert hast, ist es eine Programmvariante,
welches je nach Dipschalterstellung aufgerufen wird.
Aber soweit müssen wir gar nicht gehen... Mir wäre es lieber mal Step by
Step das Programm zu schreiben.
Mit Mcls Modular habe ich die Möglichkeit dieses Programm dann auch noch
zu simulieren.. Und das wäre schon ein riesiger Meilenstein.
Zum Glück gibt es hier auch Leute wie dich, die einem nicht eine
Kartoffel als Banane verkaufen wollen..
Ich hab auch etwas Visual Basic und C Erfahrung dies wurde mir mal
während meiner Technikerausbildung beigebracht. Hier muss nun mal aber
Assembler programmiert werden. Ich kann mir es nicht raussuchen.
Im Assembler Kurs hab ich die 35 Befehle, Aufbau, Register und einfache
Programme geschrieben. Lauflicht, Blinklicht usw. jedoch in kürzester
Zeit..
Wie ich gemerkt hab bist du da ziemlich fit.. Geb mir auch mal ein paar
Literaturtipps.
Hallo Gregor,
hast Du eigentlich Hardware für die Programmentwicklung? Also ein Board
oder so mit ICSP?
Die beste Literatur ist meiner Meinung nach immer noch das Datenblatt
selbst. Hier steht was man Controller-spezifisch beim programmieren
beachten muss, der Rest kommt dann von selbst wenn man erst mal weiss
wie man anfängt.
Gruss,
Edson
ps. Was ist Mc1s Modular?
@Gregor
> danke zunächst, dass du dich meinem Problem gewidmet hast.>
Dafür ist dieses Forum da.
Außerdem hat mir mal jemand gesagt "Es gibt keine Probleme nur Lösungen"
:-)
> Wie du es richtig interpretiert hast, ist es eine Programmvariante,> welches je nach Dipschalterstellung aufgerufen wird.>
OK, kappiert ;-)
> Aber soweit müssen wir gar nicht gehen... Mir wäre es lieber mal Step by> Step das Programm zu schreiben.> Mit Mcls Modular habe ich die Möglichkeit dieses Programm dann auch noch> zu simulieren.. Und das wäre schon ein riesiger Meilenstein.>
Das setzt aber vorraus, daß Du Dich in dieses Programm einarbeitest, da
ich etwas anderes benutze und die evtl. entstehende Problematik nur
schwer nachvollziehen kann.
Aber gut.
> Zum Glück gibt es hier auch Leute wie dich, die einem nicht eine> Kartoffel als Banane verkaufen wollen..>> Ich hab auch etwas Visual Basic und C Erfahrung dies wurde mir mal> während meiner Technikerausbildung beigebracht. Hier muss nun mal aber> Assembler programmiert werden. Ich kann mir es nicht raussuchen.>
Dazu mache ich jetzt keine Bemerkungen, sonst werde ich hier im Forum
mit den Kartoffeln und Bananen (evtl. noch Tomaten (holländische
iiihhh)) beschossen.
Denk dran, Assembler ist keine Krankheit. Wenn Du Dich ihm widmest und
pflegst, wird er es Dir danken.
> Im Assembler Kurs hab ich die 35 Befehle, Aufbau, Register und einfache> Programme geschrieben. Lauflicht, Blinklicht usw. jedoch in kürzester> Zeit..>
Das ist natürlich absolute Sch....., 2 Tage.
Klingt wie die Bücher "Vom Baby zum Visual Studio Programmierer in 21
Tagen"
Wenn Du schon SPS programmierst, weisst Du, daß 99% Autodidaktisch sind.
Hier ist es genau so.
> Wie ich gemerkt hab bist du da ziemlich fit.. Geb mir auch mal ein paar> Literaturtipps.
Dann gib mit mal ne email adresse.
Gruß
Dirk
Vielleicht kannst du mir ja auch mal den Teil 1 als Beispiel
programmieren. Ich versuche es dann umzusetzen und werde es in der
Simulation sehen, ob ich es geschafft habe.
Ich habe nix verstanden,eine Logo für ein paar Euronen sollte dieses
Problem doch lösen,wozu Assembler,wenn man es nicht kann.
Wenn man 10000 Steuerungen dieser Art verkaufen muss,kann man dieses
Problem auch mit einem Micro lösen,dafür gibt es ja auch alle
Programmiersprachen,sogar SPS ähnlich :http://www.parsic.de/
Assembler ist in der Regel etwas für Leute,die regelmässig damit
arbeiten.
Gute Hochsprachen assemblieren schon hochwertig,sonst würden die sich ja
blamieren,wenn man deren Übersetzung ansieht.
Wer also nur ein paar Projekte im Jahr mit einem Micro hat, ist mit
einer Hochsprache besser bedient.
Wenn eine Arbeitsstunde 50-100 E kostet,sollte , wenn das Projekt es
zulässt auf Industrielle Lösungen zurückgreifen.
Dieses Programm ist genau das was wir suchen..
Ich lass mir nun ein Angebot zukommen, was diese Vollversion kosten
soll.
Sollte es jedoch bessere Programmiertools geben, dann gebt mir bitte
bescheid!
Danke für diesen Tip. @F.H.