# Programmieren für Anfänger oder "Ich sehe was was du nicht siehst..."



## SPSTorsten (17 November 2008)

Bed.Bausteinende nach absoluter Art:

      AUF   DB   101
      L     DBW  420
      L     1
      T     DBW  420
      L     DBW  420
      ==I   
      BEB 


Wer nicht hüpft der ist ein Schalker:
...
SPA   M012
M007: SPA   M012
M015: SPA   M013
...

Ich höre immer nur "JA", egal was du sagst:
      O      M      0.0
      ON    M      0.0




Immer wieder schön wenn man solche Programme konvertieren soll...


----------



## MW (17 November 2008)

Frei nach dem Motto: Warum Einfach, wenn es auch (unnötig) kompliziert geht.


Das scheint mal wieder so ein Programm zu seien, wo der Inbetriebnehmer keine Zeit mehr hatte aufzuräumen oder die Instandhalter ohne nachzudenken was geändert haben.


----------



## SPSTorsten (17 November 2008)

ich glaub es ging eher darum, das programm möglichst kompliziert zu machen, so das es niemand mehr versteht...

hab hier grad n fc offen:
- ca 300 zeilen lang (4 DINA4seiten)
- 18 sprungmarken
- 21 sprünge (SPB, SPBN, SPA)

Und das ist leider noch der simple Teil...


----------



## MW (17 November 2008)

SPSTorsten schrieb:


> ich glaub es ging eher darum, das programm möglichst kompliziert zu machen, so das es niemand mehr versteht...



Stichwort: Know How Schutz


----------



## Drutbluck (17 November 2008)

Ich habe mal Code gesehen, das ging so ähnlich wie (in AWL)

```
if a<b then result := 100-(b-a);
elseif b<a then result := 100+(a-b); end_if;
```
result war ein VAR_TEMP.


----------



## Question_mark (18 November 2008)

*???*

Hallo,



			
				SPSTorsten schrieb:
			
		

> O M 0.0
> ON M 0.0



Gibt es bei mir in jedem Programm :

O   M 0.0
ON M 0.0
R   M 0.0     Ist mein VKE = 0 

O   M 0.1
ON M 0.1
S   M 0.1    Ist mein VKE = 1 

Braucht man immer wieder und ist in meinem Standardgerüst immer vorhanden. Ist das jetzt so schlimm ?
Die anderen Beispiele kommentiere ich mal jetzt nicht, da hast Du Recht ...

Gruß

Question_mark


----------



## vierlagig (18 November 2008)

gern auch zwei ausführungen davon, QM. also einmal für immer so wie du es präsentierst und dann fürs temporäre, also für IBN oder, instandhaltung läßt grüßen, das überbrücken von sensoren ... so kann man das alles schneller wieder finden ... immer0 und immer1 haben daseinsberechtigung!


----------



## SPSTorsten (18 November 2008)

das stimmt, ich leg mir auch meistens einen einsmerker und einen nullmerker an, aber diese verknüpfung in 8 aufeinanderfolgenden netzwerken zu sehen, fand ich schon ein wenig -sagen wir mal- befremdlich...


----------



## thomass5 (18 November 2008)

... und dann verwendet jemand so einen 0-Merker als Fehlerausgang an nem Baustein und du suchst dir nen Wolf...
Thomas


----------



## Gerhard K (18 November 2008)

also ich generiere meine 0 und 1 merker immer im ob 100 mit SET und CLR.


----------



## vierlagig (18 November 2008)

thomass5 schrieb:


> ... und dann verwendet jemand so einen 0-Merker als Fehlerausgang an nem Baustein und du suchst dir nen Wolf...
> Thomas



grundsätzlich ist davon auszugehen, dass derjenige, der ran darf auch weiß, was er tut. bei uns gibt es dafür eine dienstanweisung, die in etwa lautet "M50.0 - logisch 0 und M50.1 - logisch 1 sind nur zu verwenden wenn bestimmte funktionen dauerhaft verändert werden. M99.0 und M99.1 sind als temporäre verknüpfungsbeeinflußen zu verwenden." ... durch VersionWorks kann man dann auch schön nachvollziehen, wer sich nicht dran gehalten hat. der wird dann öffentlich aufm betriebshof ausgepeitscht


----------



## Perfektionist (18 November 2008)

vierlagig schrieb:


> ...
> M99.0 und M99.1 sind als temporäre verknüpfungsbeeinflußen zu verwenden." ...


in S5 doch hoffentlich?


----------



## vierlagig (18 November 2008)

Perfektionist schrieb:


> in S5 doch hoffentlich?



das grundgerüst dieses S7-programms stammt noch aus S5-zeiten ... da findet man immer wieder so schöne kommentare wie:



> DER BAUSTEIN ERSETZT DEN S5 FB50.


----------



## Perfektionist (18 November 2008)

vierlagig schrieb:


> das grundgerüst dieses S7-programms stammt noch aus S5-zeiten ...


na, dann bin ich ja beruhigt 

ich hatte schon so als Bild vor Augen, wie jemandem der Platz auf dem L-Stack ausgeht :sb7: und er sich schlaflos hin- und herwälzt, bis ihm die Erleuchtung :sm5: in Form von Schmiermerkern aufgeht.


----------



## HeizDuese (18 November 2008)

Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...




Geht auch bei S5 etwas zu optimieren:


```
U M 0.0
R   M 0.0     Ist mein VKE = 0 

UN M 0.1
S   M 0.1    Ist mein VKE = 1
```
 

Vielleicht ist ja "noch mehr drin"


----------



## diabolo150973 (18 November 2008)

Hallo,

spricht hier irgendetwas gegen?


```
SET   
      =     "Logisch_1"

      CLR   
      =     "Logisch_0"
```
Auszug aus der Symboltabelle:

M0.0 = Logisch_0
M0.1 = Logisch_1

Ich habe noch keine Probleme damit gehabt, aber das will ja nichts heißen...


----------



## Perfektionist (18 November 2008)

diabolo150973 schrieb:


> Hallo,
> 
> spricht hier irgendetwas gegen?
> 
> ...


 
ja, dagegen spricht:

```
SET   
      =     "Logisch_1"
      R     "Logisch_0"
```

gab es bei S5 SET und CLR schon?
ich persönlich benötige in AWL übrigens keine Null- und Einsmerker ...


----------



## diabolo150973 (18 November 2008)

Das war auch eigentlich nur mal eine Frage aus reiner Neugier. Ich habe mich da an den ersten Teil der Überschrift gehalten: Programmieren für Anfänger

Unser Programmierer hat das bei uns in jedem Programm drin, aber das heißt ja nicht, dass es gut ist... Ob es das zu S5-Zeiten schon gab, weiss ich nicht. Mit S5 sieht es bei mir absolut düster aus...

Falls es "unschön" sein sollte: Kannst Du mir leichtverständlich erklären, warum? Dann kann ich das bei uns mal bemängeln...

Danke und Gruß,

dia
http://www.sps-forum.de/showthread.php?p=167461#post167461


----------



## Gebs (18 November 2008)

Perfektionist schrieb:


> j
> gab es bei S5 SET und CLR schon?



Leider gab es das noch nicht. Deshalb hat man ja mit
O M 0.0
ON M 0.0
S M 0.0

etc.

gearbeitet

Grüße
Gebs


----------



## Perfektionist (18 November 2008)

diabolo150973 schrieb:


> ...
> Falls es "unschön" sein sollte ...


nein, es ist nicht unschön - es ist eine von tausend Möglichkeiten, Null- und Einsmerker zu bilden und gehört zu den gebräuchlichsten. Ich wollte nur nach reiner Klugscheissermanier auf eine noch kürzere Formulierungsmöglichkeit hinweisen 

ja, die "gute" alte S5-Zeit. wegen der nicht vorhandenen Befehle SET und CLR hatte ich damals auch zwingend meine Null- und Einsmerker. Heute schreib ich halt einfach in meinen AWL-Code an passender Stelle SET oder CLR rein (statt O "VKE1" bzw U "VKE0"), wenn ich es brauche. Nun ja, die KOP/FUP-Leute sind nach wie vor auf ihre Null- und Einsmerker angewiesen (bei S7-200 gibt es die als Sondermerker vom System her bereits vorgefertigt).


----------



## vierlagig (18 November 2008)

ihr immer mit euren drei zeilen 


```
*
      L     2
      T     MB     0
```


----------



## Perfektionist (18 November 2008)

vierlagig schrieb:


> ihr immer mit euren drei zeilen
> 
> 
> ```
> ...


:sb5::sm12:


----------



## MW (18 November 2008)

vierlagig schrieb:


> ihr immer mit euren drei zeilen
> 
> 
> ```
> ...



Und die anderen 6 Bit´s werden jedesmal auf Null gesetzt, da nem ich lieber nen 3 oder 4 zeiler. Funktionieren tut es selbstverständlich aber macht das jemand wirklich so ?


----------



## Steve81 (18 November 2008)

MW schrieb:


> Und die anderen 6 Bit´s werden jedesmal auf Null gesetzt, da nem ich lieber nen 3 oder 4 zeiler. Funktionieren tut es selbstverständlich aber macht das jemand wirklich so ?


 
Ich glaube der Beitrag von 4L war nicht ganz ernst gemeint (nur noch ne weitere Möglichkeit). Wenn doch bin ich schwer entteuscht!

Wenn man es aber im OB100 so macht könnte man die anderen 6 Merker sogar noch verwenden.


----------



## vierlagig (18 November 2008)

ihr seid ja süß 

auszug aus liefervorschriften... sind das eigentlich unsere? *kopfkratz*

M0.0 false
M0.1 true
M0.2 IBN false
M0.3 IBN true
M0.4 Instandhaltung false
M0.5 Instandhaltung true
M0.6 unklar VKE 1 (IBN)
M0.7 Schmiermerker

also wäre es richtig so:


```
*
      L     106
      T     MB     0
```
und nein, ich mache das nicht so!


----------



## MW (18 November 2008)

vierlagig schrieb:


> und nein, ich mache das nicht so!



hatte ich auch nicht anders erwartet. 

bekommt jetzt noch einer nen einzeiler hin ??


----------



## OHGN (18 November 2008)

vierlagig schrieb:


> auszug aus liefervorschriften... sind das eigentlich unsere? *kopfkratz*
> 
> M0.0 false
> M0.1 true
> ...


Was bin ich froh da nicht Lieferant zu sein und sowas programmieren zu müssen (wobei sich mir der Magen umdrehen würde).:sm12:


----------



## Steve81 (18 November 2008)

mw schrieb:


> bekommt jetzt noch einer nen einzeiler hin ??


 
mb 0 := 106;


----------



## HeizDuese (18 November 2008)

vierlagig schrieb:


> ihr seid ja süß
> 
> auszug aus liefervorschriften... sind das eigentlich unsere? *kopfkratz*
> 
> ...




Ne- so will ich's lieber nicht machen.
Erkläre mal, warum es für die Inbetriebnahme und die Instandhaltung jeweils andere TRUE und FALSE gibt - wozu braucht man sowas???


----------



## vierlagig (18 November 2008)

HeizDuese schrieb:


> Erkläre mal, warum es für die Inbetriebnahme und die Instandhaltung jeweils andere TRUE und FALSE gibt - wozu braucht man sowas???



ich hab das so nicht erstellt, denke mir aber, dass man so die leichen von der IBN besser findet ... es geht eigentlich nur darum mit den querverweisen schnell den grund der änderung bzw. des einsatzes herauszufinden.


----------



## HeizDuese (18 November 2008)

Ja, ok  - an so was habe ich auch schon mal gedacht. Kaum wird die Anlage "scharf" gemacht, werden online noch schnell Änderungen gemacht, oder man probiert mal schnell was- ratz-fatz und schon ist ein 0- oder 1-Merker verwendet worden. Nimmt man seinen "Standard-Merker" dafür, sind diese Änderungsstellen wahrscheinlich nachher nicht mehr auffindbar - macht also doch Sinn! *ACK*


----------



## Perfektionist (18 November 2008)

HeizDuese schrieb:


> ... werden online noch schnell Änderungen gemacht, oder man probiert mal schnell was ...


*SCHRECK* wie arbeitet ihr denn?

Bei IBN kommen bei mir an so ein Grab, wo vielleicht eine Leiche zu duften anfangen könnte, ein oder mehrere fette Ausrufezeichen ran. Ansonsten empfielt es sich bei Instandhaltungsmaßnahmen doch, den Zustand vor der Änderung zu dokumentieren/sichern. Und natürlich auch zu notieren, was geändert wurde ...


----------



## HeizDuese (18 November 2008)

Das muss doch kein Grab sein . Wenn man sich eines solchen IBN-Merkers bedient hat, um einen gewünschten Zustand an einer laufenden Anlage zu erzeugen, damit z.B. die Produktion nicht unterbrochen werden muss, macht es durchaus Sinn, bei Produktionende nach diesen Stellen zu suchen, um sie anzupassen (richtiger Merker, oder sonstige Änderungen, die vielleicht im Betrieb nicht möglich waren).


----------



## centrox (18 November 2008)

Jep, ist bei uns auch gang und gebe dass jeder Programmierer einen IBN- Nullmerker verwendet. Diese dürfen dann nach der IBN in der Crossreferenz nicht mehr auftauchen.


----------



## Majestic_1987 (2 Oktober 2012)

Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...



Warum einfach, wenns auch kompliziert geht...


```
SET
= M 0.0

CLR
= M 0.1
```

EDIT: Man sollte den Thread zuerst zu Ende lesen, bevor man andere wiederholt. Kann meinen Beitrag bitte jemand löschen?


----------

