Divisionsrest?

Zuviel Werbung?
-> Hier kostenlos registrieren
@volker

Hallo Volker


Der Programm Teil sieht so aus:

L "Leitges"
L "Wickel1"
/I
T "MW 177"

aus dieser division bruache ich nun den rest
in einem seperaten mw


danke ... mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Re: @volker

apachler schrieb:
Code:
      L     "Leitges"
      L     "Wickel1"
      /I    
      T     "MW 177"   //Quotient
     SRD 16
      T     "MW 179"   //Divisionsrest
Desweiteren rechnet MOD mit Doppelwörtern. Aber beim Laden von Wörtern werden die oberen 16 Bit genullt. Wenn es sich um vorzeichenbehaftete Zahlen handeln kann, muss nach dem Laden jeweils ein ITD verwendet werden.
 
ja ist es wohl. das funktioniert aber auch nur mit int-werten. bei dint musst du mod benutzen.
 
Re: daannkkee

apachler schrieb:
hallo


danke für deine antwort ...

das ist sicherlich die schönere lösung als mit MOD



mfg Andreas

Neh, ist es nicht. Wie soll das Programm noch ein Nichtinformatiker lesen können? Bei MOD geht jeder Instandhalter auf F1 und die Sache ist geklärt, obige Lösung ist zwar sehr interessant und für Entwickler eine wichtige Info, aber sollte möglichst nicht verwendet werden.

pt
 
Re: daannkkee

plc_tippser schrieb:
Neh, ist es nicht. Wie soll das Programm noch ein Nichtinformatiker lesen können? Bei MOD geht jeder Instandhalter auf F1 und die Sache ist geklärt, obige Lösung ist zwar sehr interessant und für Entwickler eine wichtige Info, aber sollte möglichst nicht verwendet werden.
pt

genau so sehe ich das auch
 
Zuviel Werbung?
-> Hier kostenlos registrieren
War mir so nicht genau bewusst. Aufgrund der Fragestellung "Wie kann ich den Divisionsrest der in AKKU1-H steht in ein MW transferieren??" war es für mich die klare Lösung. Wenn die Frage gelautet hätte "Wie komme ich an den Divisionsrest?" hätte ich ich auch die Sequenz mit MOD geschrieben.
 
Ich habe auf Grund der obigen Anregungen unter der Rubrik "Programmierstrategien" das Thema "Verwendete S7-Befehle" eingestellt. Mich interessiert dabei, wie die S7-Programme überwiegend geschrieben werden.
 
Rainer Hönle schrieb:
War mir so nicht genau bewusst. Aufgrund der Fragestellung "Wie kann ich den Divisionsrest der in AKKU1-H steht in ein MW transferieren??" war es für mich die klare Lösung. Wenn die Frage gelautet hätte "Wie komme ich an den Divisionsrest?" hätte ich ich auch die Sequenz mit MOD geschrieben.

Das ist keine böse Kritik. Im Gegenteil, ich freue mich, solche Informationen zu bekommen. Deswegen immer her damit. Nur, man sollte sich beim programmieren überlegen, wie und wer die Programme nachvollziehen kann/soll. Ich bekomme schon immer Ärger mit den Kollegen, wenn ich mit indirekter Adressierung arbeite, was sich ja nun mal oft nicht vermeiden lässt.

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
plc_tippser schrieb:
Das ist keine böse Kritik.
Das weiss ich doch. In diesem Forum gibt es seit der Aufteilung sowieso nur konstruktive Beiträge *riesig freu* :D :D.
Bei mir ist es halt so, dass ich meine Brötchen nicht mit der SPS-Programmierung verdiene. Dies ist bei mir eher Hobby bzw. Testumgebung. Deshalb kann ich die Anwendungsfälle und damit verbundenen Probleme nicht immer genau einschätzen. In C sind Dinge wie Wortlogik, Pointer und indirekte Adressierung halt selbstverständlich. Und das versuche ich manchmal auf die S7, die hier gegenüber der S5 deutlich zugelegt hat, zu übernehmen Aus diesem Grund auch die "Umfrage" in Programmierstrategien, damit ich etwas mehr über die normalen Einsatzgebiete lerne. Ich bitte um rege Beteiligung :wink: .
 
Jedoch!

Hallo!

Um mal bei eurer Diskussion teilzunehmen.


Wenn ich den Code mit SRD verwirkliche dann sieht das ganze so aus:
L "Leitges"
L "Wickel1"
/I
T "MW 177"
SRD 16 // Rette AKKU1-H nach AKKU1-L - Divisionsrest
T "MW 179"


jedoch mit MOD:
L "Leitges"
L "Wickel1"
/I
T "MW 177"

L "Leitges"
L "Wickel1"
MOD
T "MW 179"

das programm wird um einiges länger denn ich muss dies 10 mal machen.


ich bin der meinung das
1) den AWL code sowieso net jeder (instandhalter) lesen kann
2) die anweisung mit SRD auch zu durchblicken ist
3) in meinem fall nur leute die das auch interpretieren können den code zu lesen bekommen



mfg
 
Das stimmt. Und die Zykluszeit wird dadurch auch belastet, ja, minimalst.

Ich habe in der Hilfe nachgeschaut und es steht dort sogar niedergeschrieben. Von daher, keine weiteren Einwände von meiner Seite.

Gruß, pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Re: Jedoch!

apachler schrieb:
Wenn ich den Code mit SRD verwirkliche dann sieht das ganze so aus:
Code:
L     "Leitges"
L     "Wickel1"
/I    
T     "MW 177"
SRD   16                          // Rette AKKU1-H nach AKKU1-L - Divisionsrest
T     "MW 179"
Es geht sogar noch etwas kürzer, schneller und unverständlicher. Bedingung:
a) Die Zuordnung Quotient und Divisionsrest wird vertauscht
b) beide Wörter liegen im selben Doppelwort

dann kann das Ganze auch so
Code:
L     "Leitges"
L     "Wickel1"
/I    
T     MD 177
geschrieben werden. in MW 177 steht nun der Rest und in MW 179 der Quotient. Dies ist allerdings nun wirklich unverständlich (außer die Worte werden direkt mit sinnvoller Symbolik verwendet).
 
Also die Basis beim programmieren sind nun mal die Zahlensysteme (10er/16er) und ein z.B. Linksschieben ist einfacher in schleifen und auch schneller als DIV 2. Also Informatiker muss man da nicht sein, wenn man ein Wort 16 Bit nach rechts schiebt... Oder ???
Ich versuche hier jedoch möglichst unkomplizierte Beispiele zu schreiben, worauf meist mit einer kürzeren, jedoch undurchsichtigeren Routine geantwortet wird. Ich für meinen Teil, bin jedoch meist bemüht, schnellen und kompakten Code zu schreiben. Ob es ein Instandhalter dann versteht ist bei uns eine Frage der Schulung und der Erfahrung der Monteure vor Ort, was immer wichtiger sein muss, wie einfach formulierte AWL-Zeilen...
 
Zurück
Oben