# Simulation



## Sven3004 (27 August 2010)

Hallo

Ich suche derzeit eine Software um eine SPS Programmierung die in AWL geschrieben ist zu testen (simulieren).
Freeware wäre super ne Demo würde reichen.
Mache gerade meinen Meister und würde das gern daheim mal testen.
Da wir mit der SPS TSX 07 arbeiten müssen 
Schön wäre es wenn man in der Software dann die einzelnen "Sprachen" durchgehen kann. also das er diese dann auch ausgeben kann. (FBS, KOP, Schaltplan)

Danke für eure Hilfe.

Sven


----------



## Sven3004 (29 August 2010)

Hat denn keiner eine Idee?


----------



## bits'bytes (29 August 2010)

Hallo Sven,
verstehe nicht ganz was du genau suchst. Wenn du eine TSX 07 programmieren musst, dann wäre es gut wenn die Telemequanic einen Simulationsmode hätte.

z.B bei B&R kannst du alle Programme in der AR000 (Automation Runtime) auf dem PC testen (Single Step debuggen usw.) Du kannst dort in allen gängigen Sprachen programmieren und das mischen wie du willst. 

Aber wieweit das dann mit der TSX 07 kompatibel ist kann ich leider nicht abschätzen. Und ist natürlich ein ganz neues System, das Automation Studio (Programmiersystem von B&R) ist auch ein gewaltiges Programm mit fast 1 GB....

bg
bb


----------



## Sven3004 (29 August 2010)

Hallo

Die TSX die wir benutzen MÜSSEN, lässt sich nur per Handprogrammiergerät bedienen.
Die ist auch nur in der Schule. Und hier daheim würde ich gern üben.
Die TSX schreibt man per AWL. Deswegen würde ich das gern auch hier am PC mit AWL programmieren und dann müsste ich es halt simulieren können. sonst bringt das üben ja nichts.

Gruss sven


----------



## bits'bytes (29 August 2010)

Wie schon erwähnt haben B&R sowie andere "größere" Systeme diese Simulationsmöglichkeit zum Testen so wie du das brauchen würdest.

Alternativ könntest du folgendes überlegen

- Assembler Programmierung unter Visual-Studio
- Assembler bzw. Compiler für DOS (glaube von Microsoft)

Mit beiden müsstest du die BASICs von AWL testen können (Sprünge, Bit-Operationen, Arithmetische Berechnungen,  usw. ...). Jedenfalls würdest du ein Gefühl für diese Art der Programmierung bekommen. 

Leider ist mir momentan nicht ganz klar was die großen Unterschiede zwischen AWL und Assembler sind (außer natürlich die SPS spezifischen Anweisungen wie IO, ... ), falls es diese Unterschiede überhaupt gibt.

Dos-Compiler könnte ich (hoffe ich ) in den Tiefen meiner Archive irgendwo auftreiben wenn du dir das mal ansehen möchtest... bitte PM falls ja...

bg
bb

--

sieh dir auch mal das hier z.B an...
http://www.spsforen.com/showthread.php?t=36251


----------



## Sera (30 August 2010)

Simulieren kannst auch mit Step7 (da gibts auch ne demo von weiß nur nicht ob da sim dabei ist)

Codesys kannst auch nutzen,  Sim + AWL, kenn ich selbst jedoch nicht

dann hab ich noch google angeworfen und trysim! gefunden damit könnte es auch gehen hier, dann winsps hier oder google selbst mal gibts sicher noch mehr ähnlich tools wie diese


----------



## Sven3004 (30 August 2010)

Hallo Sera

Also die beiden Programme hatte ich schon getestet. in dem einen kann man nur fertige Projekte von Der S7 übernehmen und in dem anderen ist es die falsch Programmiersprache.

Hallo bits'bytes

Ich versteh leider nix von dem was du geschrieben hast mit DOS compelieren oder sonst was 

Gruss Sven


----------



## bits'bytes (30 August 2010)

Sven3004 schrieb:


> Ich versteh leider nix von dem was du geschrieben hast mit DOS compelieren oder sonst was
> 
> Gruss Sven



Hi Sven,
habe mir gerade das mit dem Dos-Assembler nochmals angeschaut. Ich finde es ist doch etwas weit weg von der AWL Programmierung da du dich auch um das ganze drum-herum kümmern musst. 

Habe z.B. diese Seite gefunden - die zeigt dir mal was ich gemeint habe.

http://www.phatcode.net/downloads.php?id=175

Aber die Materie scheint doch ziemlich komplex. Wir haben das mal im Unterricht durchgemacht - wenn man Schritt für Schritt durchgelotst wird, gehts ja noch irgendwie, aber auf sich alleine gestellt :-(

Lieber doch eine SPS Simulation suchen...

bg
bb


----------



## Sera (31 August 2010)

Also ich hab eben mal Winsps selbst installiert und da kanst du einwandfrei eigenes projekt erstellen und auch in AWL schreiben! und simulieren.

musst nur die sprache im netzwerk umstellen, in jedem netzwerk gibt es oben links so ein feld in dem erst fub steht da kannst auf awl umstellen!
Also etwas genauer schauen das nächste mal!
ich hab dazu keine 20 sek gebraucht und nich in ne hilfe geschaut.

Also:

neues projekt, dann da eins anlegen, dann das angelegte anwählen und öffnen, dann auf links oben auf OB1 klicken, den dann automatisch erstellen lassen, dann im netzwerk unter Netzwerk 1 auf FUB klicken, dann ist es in awl. und losschreiben....
dann das ding übertragen an sim-sps die unten rechts auf run haun. dann die brille im symbolleiste anklicken und du siehst was passiert.... also klappt 100%

mit download und inst hatte ich das miniprogramm von mir auf der sps und simuliert in unter 5min, also hättestst dir zumindest 10 min Zeit genommen hättest das hinbekommen. 



> *ie Leistungsdaten von WinSPS-S7 Version        4*
> • WinSPS-S7 ist ein Programmier-, *Simulations-* und        Diagnoseprogramm für Speicherprogrammierbare Steuerungen der Reihe S7-300        und S7-400 von Siemens.
> • WinSPS-S7 *kann als vollständiges        Programmiergerät* für S7-Steuerungen S7-300 und S7-400 eingesetzt        werden.
> • WinSPS-S7 unterstützt die Darstellungsarten, Ausdruck und*        Programmierung*
> ...


und selbst in der Beschreibung steht es drin! *kopfschüttel*
Wenn sich schon wer die Mühe macht dir was rauszusuchen, dann schau es dir auch richtig an.

Edit:

nun habich mir auch noch trysim angeschaut: ist zwar etwas schwerer aber man kann auch in AWL programmieren, und simulieren! da darf man sich von dem mechanikzeug eben nicht ablenken lassen, getestet und funktioniert, also weiteres *kopfschütteln* 

Kannst also beide Programme nehmen um AWL Code zu testen


----------



## Sven3004 (31 August 2010)

Also egal was ich mache es funktioniert nicht. Versuche das gerade nach deiner Anleitung zu machen mit dem WINSPS.

In der Schule sieht unsere AWL Programmierung wie folgt aus

000  LD %!0.1
001  OR %I0.2
002  ST %Q0.1
003  END


Das ist eine einfache ODER-Schaltung von Eingang 1 und 2 auf den Ausgang 1

Wenn ich das so eingebe dann kommt als nur "Befehl ist nicht bekannt" .
aus dem Beispiel werde ich mal gar nicht schlau.

Das mit dem Übertragen habe ich gemacht und auch auf die Brille geklickt. Dann auf run und nichts passiert.
Ich sehe dort keine Schalter und keine Lampen für Ausgänge oder sonst was.

Sven


----------



## Sera (1 September 2010)

Ist es schwer ne Hilfe aufzumachen? Winsps hat sowas auch...
Da sind auch Beispiele!

Zum einen simuliert das Winsps ne Siemens SPS. Die Bezeichnung von Ein und Ausgängen ist E.Byte.Bit also z.B. E0.0 z.B. für ein Bit
dann Bei Merkern ist es ein M bei Ausgängen ein A


O E0.0
0 E0.1
= A0.0

Wäre dann nun deine Oderschaltung

zum Anderen
Siemensbefehle weichen zum Teil von der Norm ab. hier kannst die nachschaun. von der Funktion entsprechen sie aber der norm zumeist zumindest)

Also nochmal ne ganz kurze Anleitung,aber nutz die Hilfe! 

1. Programm starten
2. Datei\Projekt erzeugen\öffnen 
3. Neues Projekt
4.Name wählen und ok
5. Projekt mit dem eben gewählten namen auswählen und öffnen klicken
6. in der Spalte auf der linken Seite oberen Punkt "OB1" drücken
7. Meldung mit ok schließen
8. im sich öffnenden Fenster, unter Netwerk 1 auf FUB klicken so das da AWL steht
9. in Netzwerk 1 eintragen: 
O E0.0 
O E0.1
= A0.0
10. Baustein Schließen (Kreuz im Fenster, event vorher Ansicht nebenenander auswählen)
11. Bausteine übertragen mit den Symbol in der Symbolleiste mit 2 Pfeilen nach rechts (10. von links)
12.  esc zum meldefenster schließen
13. unten rechts Schalter bedienzustand klicken
14. im sich öffnenden Fenster neustart, ändert sich dann auf run
15. Baustein wieder öffnen
16 in Symbolleiste: 11. Symbol von links 2 weise kästechen, PAE/PAA Fenster klicken
17. brille anklicken
18 das durch das fenster hinzugekommene teil: PEB0= erstes Eingangsbyste: hier kannst wenn du den code wie oben geschrieben hast  nun die bits setzen die zahlen unter PEB0 sind die Bits. Auf 0 klicken ist E0.0 (farbig unterlegt) gesetzt auf 1 andere eingang E0.1 und :

dada es funktioniert im OB1 Fenster seh ich wie sich vke/sta ändert


----------



## Sven3004 (3 September 2010)

Hi

So nun habe ich es endlich mal hinbekommen.
Zumindest die Grundfunktionen.
Ich Danke dir für deine Hilfe.

Gruss Sven


----------



## BoxHead (3 September 2010)

Sven3004 schrieb:


> In der Schule sieht unsere AWL Programmierung wie folgt aus
> 
> 000  LD %!0.1
> 001  OR %I0.2
> ...



Das ähnelt aber sehr dem IEC61131-3 AWL wie man es von codesys kennt:

```
LD    %IX0.1
    OR    %IX0.2
    ST    %QX0.1
```


----------



## Sera (4 September 2010)

> Hi
> 
> So nun habe ich es endlich mal hinbekommen.
> Zumindest die Grundfunktionen.
> ...



np, dafür gibts danke button


----------



## Sven3004 (4 September 2010)

Hallo

Also habe nun mal eine Steuerung programmiert.
Der AWL Code in dem Programm WINSPS lautet


```
U    E         0.7
       U    E         0.1
       =    M         1
       O    E         0.2
       O    A         0.1
       =    A         0.1
       O    A         0.1
       =    A         0.6
       O    A         0.4
       O    M         3
       U    A         0.1
       =    A         0.4
       O    A         0.4
       =    A         0.7
       U    A         0.1
       UN   A         0.4
       U    M         1
       =    M         2
       O    M         2
       L    S5T#2S
       SI   T1
       NOP  0
       NOP  0
       NOP  0
       U    T1
       =    A         0.2
       O    A         0.2
       L    S5T#2S
       SI   T         2
       NOP  0
       NOP  0
       NOP  0
       U    T         2
       =    A         0.3
       O    A         0.3
       L    S5T#2S
       SI   T         3
       NOP  0
       NOP  0
       NOP  0
       U    T         3
       =    M         3
```

Allerdings funktioniert meine Steuerung nicht.
Angeblich kennt der den Merker nicht.

die Hilfe in dem Programm kann ich leider nicht öffnen.


----------



## Paule (4 September 2010)

Sven3004 schrieb:


> ```
> U    E         0.7
> U    E         0.1
> [COLOR=red]     =    M         1[/COLOR]
> ...


Auch ein Merker hat eine Byte und eine Bit Adresse.
Genauso wie die Ein-und Ausgänge.


```
U E 0.7
   U E 0.1
   = M 1.0
   = M 1.1
   ...
   = M 1.7
   = M 2.0
```


----------



## Sven3004 (4 September 2010)

Hi

Alles klar danke. 

Aber leider funzt mein Programm nicht. Ich werde es am Dienstag nochmal in der schule testen mit dem gleichen Aufbau.
Finde das Programm sehr umständlich


----------



## Paule (5 September 2010)

Sven3004 schrieb:


> Finde das Programm sehr umständlich


Ehrlich gesagt, ich auch.
Vor allem sehr unübersichtlich da weder Symbolik noch Kommentar vorhanden sind.
Einfache Leerzeilen machen auch gleich alles übersichtlicher.


Sven3004 schrieb:


> Aber leider funzt mein Programm nicht.


Das sehe ich auch so.
- Der Ausgang 0.1 hält sich selber bis zum jüngsten Tag
- dadurch auch der Ausgang 0.4 wenn er einmal gekommen ist
- die Zeiten laufen alle gleichzeitig ab, kann es sein das da eine SE (Einschaltverzögerung) rein sollte.
- die Zuweisung auf die Ausgänge 0.6 und 0.7 kannst du direkt machen (ist aber kein Fehler)

```
U    E         0.7
       U    E         0.1
       =    M         1.0
 
       O    E         0.2
       O    A         0.1
       [COLOR=red]??? // irgendwas sollte wieder abschalten[/COLOR]
       =    A         0.1
       =    A         0.6
 
       O    A         0.4
       O    M         3.0
       U    A         0.1  [COLOR=red]// vielleicht M 1.0?[/COLOR]
       =    A         0.4
       =    A         0.7
 
       U    A         0.1
       UN   A         0.4
       U    M         1.0
       =    M         2.0
 
       O    M         2.0
       L    S5T#2S
       SI   T 1  [COLOR=red]// vielleicht SE?[/COLOR]
       NOP  0
       NOP  0
       NOP  0
       U    T 1
       =    A         0.2
 
       O    A         0.2
       L    S5T#2S
       SI   T 2 [COLOR=red]// vielleicht SE?[/COLOR]
       NOP  0
       NOP  0
       NOP  0
       U    T         2
       =    A         0.3
 
       O    A         0.3
       L    S5T#2S
       SI   T 3 [COLOR=red]// vielleicht SE?[/COLOR]
       NOP  0
       NOP  0
       NOP  0
       U    T         3
       =    M         3.0
```


----------



## Sven3004 (5 September 2010)

> ```
> U    E         0.7
> U    E         0.1
> =    M         1.0
> ...


Ok so funzt das nun.
Fehlte die Abfrage von Öffner 0.1 und Bimetall 0.7

Das mit der Zeit versteh ich nicht.
Wenn ich Das Programm durchlaufen lasse, ist ne Verzögerung zu sehen. Allerdings nur ganz gering.

Ich dachte oben die 2s ist die Zeit.
Also muss ich nochmal probieren wie man Die Zeit erhöht.

Sven


----------



## Paule (5 September 2010)

Sven3004 schrieb:


> Das mit der Zeit versteh ich nicht.
> Wenn ich Das Programm durchlaufen lasse, ist ne Verzögerung zu sehen. Allerdings nur ganz gering.


Eine SI ist eine Impulszeit wie die SV
nur das bei der SI der Ausgang Low wird sobald das Startsignal Low wird, auch wenn die Zeit noch nicht abgelaufen ist.
Und wenn du von einer Verzögerung sprichst dann wäre das eine SE.

```
Beide Beispiele SI mit S5T#2s :
Beispiel 1:
[FONT=Courier New]                 < 3 sek. >[/FONT]
[FONT=Courier New]            |------------------|[/FONT]
[FONT=Courier New]            |                  | [/FONT]
[FONT=Courier New]Start ------|                  |------------[/FONT]
 
[FONT=Courier New]             < 2 sek. > [/FONT]
[FONT=Courier New]            |----------|[/FONT]
[FONT=Courier New]            |          |[/FONT]
[FONT=Courier New]Ausgang ----|          |--------------------[/FONT]
 
[FONT=Courier New]************************************************[/FONT]
[FONT=Courier New]Beispiel 2:[/FONT] 
[FONT=Courier New]             1 sek[/FONT]
[FONT=Courier New][FONT=Courier New]            |-----|[/FONT]
[FONT=Courier New]            |     | [/FONT]
[FONT=Courier New]Start ------|     |-------------------------[/FONT]
 
 
[FONT=Courier New]            |-----|[/FONT]
[FONT=Courier New]            |     |[/FONT]
[FONT=Courier New]Ausgang ----|     |-------------------------[/FONT]
[/FONT]
```


----------



## Sven3004 (5 September 2010)

Hi

Ok jetzt klappt es.
thx


----------



## Sera (6 September 2010)

sry war einge Tage weg, Paule hat ja aber super geholfen 

gruß


----------

