Sonstiges Siemens Logo Programmierhilfe

EMZ

Level-2
Beiträge
232
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

ich habe ein Programm geschrieben, das aber leider nicht so einfach gelöst ist. Deshalb wollte ich nach einer besseren Lösung fragen.

Funktionsbeschreibung des Programms:

Wenn Sensor 1 und Sensor 2 schalten, sollen erstmal 4 Impulse gezählt werden, danach sollen 100 weitere Impulse gezählt werden und anschließend für 4 Impulse Ausgang Q1 geöffnet werden.
Jetzt das Problem: Wenn in der Zwischenzeit, die 100 Impulse schon von einem Zähler abgezählt werden und Sensor 1 und Sensor 2 wieder betätigt werden, sollen wieder erstmal 4 Impulse gezählt werden, danach weitere 100 Impulse, dann anschließend Ausgang Q1 für 4 Impulse geöffnet werden (dann wieder zu)
Und das könnte ja mehrmals passieren, so in der Art Kreislauf. Es soll also jedesmal wenn Sensor 1 + Sensor 2 betätigt wird der Ausgang Q1 nach den Impulsen geöffnet werden, egal wie oft hintereinander.

Habe jetzt mal das Programm zum Ausprobieren geschrieben, allerdings habe ich nur 4 Zähler genommen damit es übersichtlich wird. In Wirklichkeit würden die 4 Zhäler wahrscheinlich nicht reichen, sondern ca. 30 - 50 oder mehr. Und das wäre halt ziemlich lange. Frage ist, ob es dazu eine einfachere Lösung gibt.


LG
EMZ
 

Anhänge

  • V 2.1.lsc.zip
    16,5 KB · Aufrufe: 29
Hallo EMZ,

da hab' ich wohl Deine Funktionsbeschreibung gestern in der PN nicht ganz richtig verstanden.
Sorry. :oops:



Also zu Deiner Vorstellung der Programmfunktion:
Üblicherweise löst man sowas mit einem Schieberegister. Man gibt am Anfang einen Impuls (Bit) ein und nach x Takten (in Deinem Fall 100) kommt der Impuls am Ausgang an. Der Vorteil gegenüber Zählern - man kann jederzeit einen neuen Impuls eingeben, auch wenn einer gerade im Schieberegister "unterwegs" ist. Und jeder dieser eingegebenen Impulse kommt immer nach den x Takten (in Deinem Fall 100) am Ausgang an.

Ich hab' Dir dazu mal 'n Versuchsprogramm erstellt:




Jetzt hast Du da allerdings bei der Logo 2 Probleme:
1. Es gibt nur 4 Schieberegister und das auch nur bei der 0BA7. 0BA4 bis 0BA6 haben nur eins, noch ältere gar keins.
2. Wenn Du mit dem Testprogramm etwas herumprobierst, wirst Du feststellen, das Du bei der Übergabe der Bits vom 1. zum 2. Schieberegister auch noch eine Stelle "verlierst", weil die Schieberegisterbits 1.8 und 2.1 immer den gleichen Zustand haben.
Somit kannst Du einen Impuls also nur max. 29 Takte weiterschieben, bis er am Ende der vorhandenen Schieberegister ankommt.

Du wolltest aber 100 Takte. Genau genommen 105 Takte, da ja immer erst 4 Takte ein, dann 100 Takte aus und beim nächsten Takt wieder ein.
Da nach den 100 Impulsen auch wieder 4 Takte, genau wie am Anfang, eingeschaltet sein soll, kannst Du die 4 Anfangstakte einfach mit durchschieben, so dass Du auch am Ende wieder 4 Eintakte hast. Ansonsten müsstest Du nur den Startimpuls durch schieben und jeweils am Start und am Ende separat die gewünschten Eintakte zählen.


Zählen wir jedoch als 1. mal die Startimpulse, dass benötigst Du so oder so:




Dann brauchst Du ein eigenes Schieberegister:
Ich hab' zuerst mal geschaut, wie so ein Schieberegister aufgebaut ist. Es besteht aus hintereinander geschalteten D-Flipflops. Ein solches D-Flipflop besteht aus min. 4 NANDs. Bei 105 Stellen wären das schon allein 420 Bausteine. Damit ist selbst bei der 0BA7 die Grenze der möglichen Bausteine im Programm überschritten und diese Variante scheidet somit aus.
Ob man ein Schieberegister auch mit RS-Flipflops bauen kann, hab' ich nicht weiter recherchiert, da es bei 105 Takten sicher ähnlich aufwendig wird.
Dann also vlt. was "Analoges". Dazu ein paar Vorbetrachtungen. Wenn ein Bit in einem Binärwert um eine Stelle nach links verschoben wird, so wird z.B. aus 'ner 1 eine 2, aus 'ner 2 eine 4 oder aus 'ner 8 eine 16. Es entspricht also einer Multiplikation mit 2. Wird dagegen das höchste Bit aus dem Wert herausgeschoben, veringert sich der Wert um 2^x, wobei x der herausgeschobenen Bitstelle (begonnen bei 0) entspricht.
Analogwerte können bei der Logo bis 32.767 berechnet werden. Das sind 15 Bits (Bit 0 - 14). Das 16. Bit dient übrigens, wie üblich, als Vorzeichen.
Allerdings können bei Schwellwertschaltern nur Grenzwerte bis 20.000 eingestellt werden. Da aber bei der gesetzten Bitstelle 14 Werte von 2^14 = 16.384 bis 2^15-1 = 32.767 vorkommen, muss man als Grenzwert für Ein und Aus den gleichen Wert wählen und der entspricht dann dem Wert, bis zu dem der Schwellwertschalter aus ist. Das wäre 2^14-1 = 16.383.

Das Ganze hab' ich also mit den Analogbausteinen, die das Rechnen ermöglichen, versucht nachzubauen. Es entstand ein 15-Bit-Schieberegister:




So, jetzt noch alles in einem Programm vervielfältigen bzw. verknüpfen und dabei noch auf die Reihenfolge der analogen Schieberegister achten, damit man da nicht auch bei der Übergabe eine Bitstelle "verliert" und dann kommt z.B. sowas heraus:



Hinweis: Bei 'ner realen Logo dürfen (hier die analogen) Bausteinausgänge nicht unbeschaltet bleiben. Der Simulation ist das egal. Daher hab' ich das einfach weg gelassen, um nicht vom eigentlichen Programm abzulenken.


Die letzten 15 Bits hab' ich mal mit den vorhandenen Schieberegistern gemacht. Bei denen ist es etwas einfacher, ein beliebiges der 8 Bits abzufragen, auch wenn es mitten im Schieberegister ist. Da hier aber nach der Abfrage des 105. Bits die Bits dann auch ausgeschoben werden, hätte man das auch mit dem analogen Schieberegister machen können und müßte dann nur die Werte von Schwellwertschalter und abzuziehendem Wert anpassen.
Ist was zum Üben. ;)
(Damit sollte das Programm dann auch auf 'ner 0BA6 laufen. Älter geht u.a. wegen der nicht vorhandenen "Arithmetischen Anweisung" nicht.)

Ich hatte noch versucht, die wiederkehrende Logik der analogen Schieberegister in ein UDF auszulagern und dieses dann mehrfach aufzurufen. Allerding hatte die Logo-Software anscheinend Probleme mit den Baustein-Verweisen innerhalb der UDFs, so dass ich das (erst mal) wieder verworfen habe. Aber eigentlich ist das ja eine typische Anwendung für UDFs.


Ach' übrigens -> schönes Projekt!
Da mußte ich meine Gehirngrütze doch ganz schön umrühren.
 

Anhänge

  • EMZ 105-Bit Schieberegister + Versuchsprogramme.zip
    53,2 KB · Aufrufe: 28
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmals Danke für deine Hilfe.
Aber ich glaube das Programm entspricht nicht ganz meinen Vorstellungen.
Oder ich check da nicht ganz durch. Weil ist schon bisschen anspruchsvoll.

Also, ich mein wenn Sensor 1 + Sensor 2 betätigt wurden, sollen erst von dort an 100 Impulse (oder können auch zum testen weniger sein die Zahl spielt vorerst keine Rolle) gezählt werden, und dann erst der Ausgang Q1 angehen. Nachdem dann Ausgang Q1 an ist, sollen einfach nochmals 4 Impulse gezählt werden, damit der Ausgang wieder ausgeht.
Soll in der Zwischenzeit , in der die 100 Impulse z.B. über einen Geber gezählt werden, nochmal der Fall vorkommen, dass Sensor 1 + Sensor 2 betätigt werden, dann sollen parallel die 100 Impulse gezählt werden und dann der Eingang wieder nach 100 Impulsen für 4 Impulse angehen.

LG
EMZ
 
Macht doch das Programm.
Es gibt Dir bei Betätigung von Sensor 1 + 2 die nächsten 4 Impulse vom B005 aus (so wie Du's oben noch wolltest), dann die nächsten 100 Impulse Pause und dann wieder 4 Impulse.
Wenn Du's nicht als Impulsausgabe willst, sondern als Dauersignal, läßt Du einfach die Freigabe B010 weg, dann hast Du jeweils ein Dauersignal.

Willst Du die Einschaltung am Anfang nun doch nicht mehr, läßt Du nur das Startsignal durch das Schieberegister laufen und schaltest den Rückwärts-Zähler damit erst am Ende ein.

Im Prinzip nur Abwandlungen.


Hast Du mal mit dem versuch des Schieberegisters experimentiert?
Da kann man doch das Prinzip ganz gut erkennen.
 
Hab' Dir das Programm mal auf die Schnelle nach Deiner neuen Beschreibung angepaßt, ich hoffe diesmal wie von Dir gewollt:



Es geht nur noch die Startmeldung (1 Impuls, grün) durch das Schieberegister, dann nach weiteren 100 Impulsen ist es durch und schaltet den Ausgang und Zähler (orange) für die gewünschte Anzahl von 4 Impulsen ein und zwar dauerhaft. Die beiden vorher benötigten Bausteine (rot) für Impulse am Anfang und am Ende (B009) sowie Ausgabe als Impulse (B010) hab' ich mal sicherheitshalber drin gelassen, auch wenn sie hier nicht unbedingt benötigt werden.


Du kannst beliebig oft Deine beiden Starteingänge einschalten, immer 100 Impulse später (wenn ich mich nicht verzählt habe) wird der Ausgang für 4 Impulse eingeschaltet.
Ich hoffe, Du erkennst jetzt das Prinzip.
 

Anhänge

  • EMZ 105-Bit Schieberegister V2.zip
    20,9 KB · Aufrufe: 14
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dir Perfekt. Ich werde mich erstmals in das Programm einlesen müssen. Aber das erst wenn ich wieder vom Urlaub da bin, reise nämlich gleich ab.

Eine Frage fällt mir jetzt schon ein. Wie kann ich die Impulszahl verändern? Sodass z.B. anstatt 100 Impulsen 430 Impulse gezählt werden sollen.


LG
EMZ
 
Dann mußt Du die Größe des Schieberegisters verändern. Du brauchst halt für jeden Impuls eine Speicherzelle.
Hast Du Dir die Beschreibung zum Schieberegister angesehen? Mit jedem Takt/Impuls wird der ganze Speicherinhalt um eine Stelle verschoben. Bei einem 8bit Schieberegister braucht es also 8 Takte, damit ein Eingangssignal am Ausgang ankommt. Bei 15 Bit 15 Takte. Oben hab' ich schon ein 105 Bit Schieberegister gebaut und bei 430 Impulsen brauchst du wieviele Bits?

Bei 430 Impulsen könntest du aber schon an die Grenzen der Logo gelangen. Das ist dann doch eher etwas für ausgewachsene SPSen. ;)


Übrigens könnte man die 4 Impulse auch gleich am Anfang zählen und mit durchs Register schicken. Das spart die Zählung am Ausgang.
Dazu müßten nur 2 Verbindungen aus meiner ersten Programmversion gelöscht werden und Du hättest auch die gewünschte Funktionalität.
Einmal die Ausgabe der Startimpulse (grün) und die Ausgabe als Impulse (rot):

->


Na denn, schönen Urlaub! :cool:
 

Anhänge

  • EMZ 105-Bit Schieberegister V3.zip
    19,9 KB · Aufrufe: 12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi hucki,

bin wieder im Heimatland. So also ich hab mal ne Frage zu deinem Hinweis:

Hinweis: Bei 'ner realen Logo dürfen (hier die analogen) Bausteinausgänge nicht unbeschaltet bleiben. Der Simulation ist das egal. Daher hab' ich das einfach weg gelassen, um nicht vom eigentlichen Programm abzulenken.


Heißt das, dass ich allen einzelnen Analogbausteinen einen Analogausgang zuweisen muss?


Und ich habe jetzt zwar nachgeschaut, aber ich weiß nicht, wie ich die Impulszahl ändern kann. An welchen Baustein muss ich dazu den Parameter ändern?

LG

EMZ
 
bin wieder im Heimatland.
Wünsche einen schönen Urlaub gehabt zu haben.
:D



So also ich hab mal ne Frage zu deinem Hinweis:
Hinweis: Bei 'ner realen Logo dürfen (hier die analogen) Bausteinausgänge nicht unbeschaltet bleiben. Der Simulation ist das egal. Daher hab' ich das einfach weg gelassen, um nicht vom eigentlichen Programm abzulenken.
Heißt das, dass ich allen einzelnen Analogbausteinen einen Analogausgang zuweisen muss?
Das wäre eine Möglichkeit. Meistens nimmt man analoge Merker dafür. Wenn die knapp werden sollten, kann man z.B. mit dem Analogkomperator als Dummy 2 Analogbausteine abschließen und diesen wiederum mit einer offenen Klemme. Davon sind mehr verfügbar.
Letztendlich darf kein Baustein einen unbeschalteten Ausgang besitzen, es sei denn, es ist ein Ausgang, ein Merker oder eine offene Klemme.




Und ich habe jetzt zwar nachgeschaut, aber ich weiß nicht, wie ich die Impulszahl ändern kann. An welchen Baustein muss ich dazu den Parameter ändern?
Es gibt keinen Parameter, den Du einfach ändern kannst. Über die Anzahl der Schiebestellen (Bits) werden die notwendigen Impulse, die ein Signal vom Eingang bis zum Ausgang benötigt, bestimmt.
Du mußt also Schiebestellen im Programm hinzufügen oder rauslöschen.

Das ist wie 'ne Taktstraße in der Autofabrik. Du schiebst vorne den Auftrag, ein Auto zusammen zu bauen, rein und dann sind x-Arbeitsschritte (die vorher im Zusammenbau-Programm festgelegt wurden) nötig, damit der fertige Auftrag hinten rauskommt. Wenn dieser Auftrag den 1. Schritt absolviert hat, kann man jederzeit wieder einen neuen Auftrag einschieben und auch der braucht die vorgegebenen Schritte, um hinten fertig raus zu kommen.
Stellst Du fest, das nicht 100 Schritte nötig sind, um das Auto fertig zu stellen, sondern 110, müssen halt die nötigen Arbeitsschritte in die Taktstrasse eingefügt werden.

Die integrierten Schieberegister der Logo! haben max. 8 Bit, wobei man in den Eigenschaften festlegen kann, welches Bit den Ausgang darstellt.
Das von mir selbst erstellte Register "besitzt" max. 15 Bits. Wieviele es tatsächlich sind, wird über den Wert des Schwellwertschalters und der anschließenden arithmetischen Anweisung bestimmt. Bei letzterer ist der Wert 2^x(Bits) und beim Schwellwertschalter muss man davon dann Eins abziehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke

Ah okey verstanden. Aber kann man das ganze für die Funktion nicht einbisschen noch einfacher lösen?

Ich mein das ist echt einbisschen Prolike :D
Ich blick da nicht wirklich so durch, weil es halt auch viele Funktionen sind, die mit mathematischen rechenfunktionen sind und ich noch nie auf so einem hohen niveau programmiert habe.
Gibts es da keine andere Möglichkeit ?

LG
EMZ
 
Aber kann man das ganze für die Funktion nicht einbisschen noch einfacher lösen?
Gibts es da keine andere Möglichkeit ?
Die integrierten Schieberegister der Logo! sind doch recht einfach.
Vom obigen Versuchsaufbau ist dass das Schieberegister mit insgesamt 15 Bit (2 8-Bit-Schieberegister kaskadiert; die Sicherheits-Flanke hab' ich auch noch entfallen lassen):



Die Logo! hat aber leider nur max. 4 solcher Register.

Vlt. ist sie damit nicht die geeignetste Wahl für Deine Aufgabe. Für eine ausgewachsene SPS ist so etwas eine Standardaufgabe, denn das fällt unter die so genannten FIFO-Speicher (First In, First Out). Hier als einfacher boolscher FIFO. In der Praxis werden dann meist auch noch Informationen, z.B. Seriennummern, mit auf den Weg durch's Register gegeben.



PS: Übrigens hab' ich irgendwie das Gefühl, dass Du Dir den Versuchsaufbau und den Link zum Schieberegister, um die Funktionsweise zu verstehen, nicht wirklich angesehen hast. :evil: ;)
 
Hi, also ich habe mir dein Versuchsaufbau und den Link angeschaut. Nur richtig verstanden habe ich das nicht. Also die Hilfe im LOGO ist für mich irgendwie als Anfänger nicht so ausreichend. Ich hab so das Gefühl, das bei manchen Bausteinen nur die Funktion gut verstanden wird, wenn man schon ein bestimmtes Programmierniveau hat. Naja unwichtig jetzt.

Frage zu den Schieberegister: Warum habe ich eig. bei den ersten Schieberegister (B002) nach 8 Bit (impulsen) eine logische 1 am Ausgang des Bausteins und bei dem zweiten (B003) nach 7 Bit schon eine logische 1 am Ausgang?
Kannst du mir vielleicht mal mit deinen Worten die Funktion des Bausteins erklären ? Also diese Beschreibung in Logo mit dem Timing Diagramm macht mit ganz wirr :confused::confused:

Kann ich eigentlich beliebig viele Zähler einsetzen?

Das Problem mit dem Schieberegister ist, dass man nur 1 Schieberegisterbist bei den Versionen 0BA4 bis 0BA6 verwenden kann. Wir haben doch aber zwei drin.

Kann man das garnicht anders lösen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Hucki,

in deinen Lösungsansatz und die schriftliche Ausarbeitung hast du ja merklich einige Stunden Zeit und Hirnschmalz gesteckt - Respekt!
Deshalb von mir (zwar unbeteiligt am Thema) ein "Danke" über den Button... ;-)
Die Arbeit macht sich echt nicht jeder!

Gruß, Toki
 
Ich antworte mal hier auf Deine PN, weil es anderen vlt. auch hilft und Deine Frage sicher nicht der Geheimhaltung unterliegt:
PN von EMZ schrieb:
Statt Logo S7 1200 oder 200

Welche Funktionsbausteine würde ich denn in S7 brauchen, um so eine Funktion hinzukriegen?
In S7 programmier ich genauso wie in Logo nur in FUP, weil wir das nur in dieser Programmiersprache ausführlich gelernt haben. Sehr gern würde ich mir auch mal SCL zu Herzen bringen, aber da muss ich mir dann einen Lehrer finden.

Ich mag zwar die S7-200 sehr, aber sie steht leider schon auf der Liste der vom Aussterben bedrohten Arten.
Daher solltest Du Dein Augenmerk besser auf die S7-1200 (und/oder deren große Brüder) legen.

Diese kannst Du in FUP/KOP oder in SCL programmieren, wobei Letzteres für Deine Aufgabenstellung m.M.n. prädestiniert ist.
Ich bin darin allerdings mangels bisheriger Einsatzmöglichkeiten nicht gerade die größte Leuchte. Deshalb freu' ich mich über diese Trainingseinheit und würde Deine obige Aufgabenstellung folgendermaßen in einem eigenem FB umsetzen (ungetestet):
Code:
[FONT=Courier New]FUNCTION_BLOCK "Boolsches_Schieberegister"

VAR_INPUT
    Start1: BOOL;                               // Startbedingung 1
    Start2: BOOL;                               // Startbedingung 2
    Takt: BOOL;                                 // Impuls-Eingang
    Schritte: INT;                              // Impulszahl bis zur Ausgabe
    Laenge: INT;                                // Ausgabelänge des Impulses in Takten
END_VAR

VAR_OUTPUT
    Ausgabe: BOOL;                              // Impulsausgabe
END_VAR

VAR
    Takt_Old: BOOL;                             // Flankenmerker für Eingang Takt
    Start: BOOL;                                // Startbedingung erfüllt
    Schieberegister: ARRAY [0..500] OF BOOL;    // statische Variablen
    Ausgangszaehler: INT;                       // Zähler für Ausgabelänge
END_VAR

VAR_TEMP
    Schieben: BOOL;                             // positive Flanke Eingang Takt
    Index: INT;                                 // Array-Zeiger
END_VAR


    // Schrittbegrenzung
    IF Schritte > 500 THEN
        Schritte := 500;
    END_IF;
    
    // Startbedingung erfüllt?
    IF Start1 AND Start2 THEN
        Start := true;
    END_IF;
    
    // Flankenerkennung Eingang Takt
    Schieben := Takt AND NOT Takt_Old;
    Takt_Old := Takt;
    
    
    // Schieberegister
    IF Schieben THEN
        
        // Register weiterschieben
        FOR Index := Schritte TO 1 BY -1 DO
            Schieberegister [Index] := Schieberegister [Index - 1];  
        END_FOR;
        
        // Startbedingung ins Schieberegister übernehmen
        Schieberegister [0] := Start;
        Start := false;
        
        // Ausgang Schieberegister
        IF Schieberegister [Schritte] THEN
            Ausgangszaehler := Laenge;
        END_IF;
        
        // Ausgabe
        Ausgabe := Ausgangszaehler > 0;
        
        // Zähler Ausgabelänge
        IF Ausgabe THEN
            Ausgangszaehler := Ausgangszaehler - 1;
        END_IF;
        
    END_IF;
    
    
END_FUNCTION_BLOCK[/FONT]
Ich denke mal, dass es hier relativ einfach zu erkennen ist, wie Du die Impulse zwischen erfüllter Startbedingung und der Signalausgabe variieren kannst.
;)

Das Ganze kann man wahrscheinlich auch in FUP umsetzen, ist dann aber ziemlich sicher aufwendiger.

Wenn man das Format des Arrays ändert, kann man auch andere Informationen als nur EIN/AUS durch das Register schicken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, also die Programmiersprache in SCL kenne ich leider nicht so gut, deshalb sagt es mir auch nicht so viel.

Ich müsste mich erstmals mit SCL vertraut machen. Gibt es eig. dazu irgendwo Anfängerhilfen etc. ?


Ich hab das mit Logo nocheinmal so programmiert, mit einpaar Zählern mehr.
Info zur Simulation: I2 kannst betätigt lassen und dann I1 beliebig oft betätigen.

Du brauchst dir nur Zähler 1 anschauen, die restlichen 21 sind gleich. Ich weiß ist ziemlich lang und unübersichtlich, aber da kann ich jede beliebige LOGO verwenden.

Was haltest du von diesem Programm ?

LG

EMZ
 

Anhänge

  • V2.2 _ 22 Zähler.lsc.zip
    49,5 KB · Aufrufe: 15
Hi, also die Programmiersprache in SCL kenne ich leider nicht so gut, deshalb sagt es mir auch nicht so viel.

Ich müsste mich erstmals mit SCL vertraut machen. Gibt es eig. dazu irgendwo Anfängerhilfen etc. ?
Auf den Siemensseiten gibt's irgendwo 'ne Beschreibung. Hab' allerdings gerade keinen Link zur Hand.
Zum Lesen meines obigen Codes sollten allerdings auch rudimentäre Englisch- und Mathekenntnisse genügen. Einfach wie einen Buchtext lesen. ;)

PS: Bis zum letzten End_Var sind's ja auch nur die Deklarationen der Variablen, genau wie in FUP. Damit ist ja schon die Hälfte erschlagen.



Ich hab das mit Logo nocheinmal so programmiert, mit ein paar Zählern mehr.

... Ich weiß ist ziemlich lang und unübersichtlich, aber da kann ich jede beliebige LOGO verwenden.

Was haltest du von diesem Programm ?
Du sagst doch hier selbst schon, was damit nicht stimmt!

Und wenn Du auf die Geräteauswahl gehst, wirst Du feststellen, das auch Dein Programm mindestens die 0BA6 benötigt, anstatt jeder beliebigen LOGO!. Das Gleiche gilt für mein obiges Programm, wenn man anstatt der beiden integrierten Schieberegister nur die selbst erstellten benutzt. Ich hatte mich hauptsächlich für die beiden entschieden, um Dir deren Anwendung zu zeigen.

Ehrlich gesagt, würde ich bei den meisten neu zu erstellenden Anwendungen auch die Varianten bis 0BA5 nicht gerade in die engere Auswahl einbeziehen. Wenn's doch 'ne ältere sein soll, mußt Du das wirklich bei der Programmentwicklung von Anfang an beachten.
 
Zuletzt bearbeitet:
-Danke dir, wie würde dann das Programm aussehen wenn ich das ohne den zwei integrierten Schieberegistern mache, sondern nur mit den selbst erstellten ?

-Also wenn ich das jetzt bei deinen selbsterstellten Schieberegistern ansehe, hast du immer in 15 ner Schritten (Bits) gearbeitet . Kann man auch je Schieberegister eine beliebige Zahl nehmen z.B. 12 ? Wenn ja wie kann ich es definieren, dass je Schieberegister statt 15 Bit z.B. 12 Bit verschoben werden?

-Wenn ich z.B. die On/OFF Werte beim analogen Schwellwertschalter ändere, dann macht das Programm irgendwas und die Funktion ist dann nicht mehr erfüllt, ich weiß aber nicht warum.

-Ich habe mal versucht ein selbsterstellen Schieberegister zu bauen, um zu den 105 Bits 15 Bits mehr hinzuzufügen, hat irgendwie nicht geklappt, obwohl ich die Parametersätze wie bei den anderen Funktionsblöcken übernommen habe. So ganz habe ich das Programm noch nicht durchleuchtet. :confused::confused:


So ich glaub das sind mal einpaar Fragen, mit deren Antworten ich um einiges mehr durchcheck :)

LG EMZ
 
Zuletzt bearbeitet:
Zurück
Oben