home *** CD-ROM | disk | FTP | other *** search
/ Saturn 1 / Saturn.iso / lernen / 029 / 029.exe / SPS.DOC < prev    next >
Text File  |  1994-07-13  |  310KB  |  7,201 lines

  1.  
  2.                           ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ 
  3.                           ▒▒█▀▀▀▀ ▒▒█▀▒▒█ ▒▒█▀▀▀▀ 
  4.                           ▒▒▒▒▒▒▄ ▒▒▒▒▒▒█ ▒▒▒▒▒▒▄ 
  5.                            ▀▀▀▒▒█ ▒▒█▀▀▀▀  ▀▀▀▒▒█ 
  6.                           ▒▒▒▒▒▒█ ▒▒█     ▒▒▒▒▒▒█ 
  7.                            ▀▀▀▀▀▀  ▀▀      ▀▀▀▀▀▀ 
  8.  
  9.     ▒▒▒▒▒▒▄ ▒▒▄ ▒▒▒▄▄▒▒▒▄ ▒▒▄ ▒▒▄ ▒▒▄     ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄
  10.     ▒▒█▀▀▀▀ ▒▒█ ▒▒█▒▒█▒▒█ ▒▒█ ▒▒█ ▒▒█     ▒▒█▀▒▒█  ▀▒▒█▀▀ ▒▒█▀▒▒█ ▒▒█▀▒▒█ 
  11.     ▒▒▒▒▒▒▄ ▒▒█ ▒▒█ ▀▀▒▒█ ▒▒█ ▒▒█ ▒▒█     ▒▒▒▒▒▒█   ▒▒█   ▒▒█ ▒▒█ ▒▒▒▒▒█▀ 
  12.      ▀▀▀▒▒█ ▒▒█ ▒▒█   ▒▒█ ▒▒█ ▒▒█ ▒▒█     ▒▒█ ▒▒█   ▒▒█   ▒▒█ ▒▒█ ▒▒█▀▒▒▄ 
  13.     ▒▒▒▒▒▒█ ▒▒█ ▒▒█   ▒▒█ ▒▒▒▒▒▒█ ▒▒▒▒▒▒▄ ▒▒█ ▒▒█   ▒▒█   ▒▒▒▒▒▒█ ▒▒█ ▒▒█ 
  14.     ▀▀▀▀▀▀  ▀▀  ▀▀    ▀▀  ▀▀▀▀▀▀  ▀▀▀▀▀▀  ▀▀  ▀▀    ▀▀    ▀▀▀▀▀▀  ▀▀  ▀▀ 
  15.  
  16.  
  17.  
  18.                  ▒▒▄ ▒▒▄   ▒▒▄ ▒▒▄      ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄
  19.                  ▒▒█ ▒▒█   ▒▒█ ▒▒█      ▒▒█▀▀▀▀  ▀▀▀▀▒█
  20.                  ▒▒█ ▒▒█   ▒▒▒▒▒▒█      ▒▒▒▒▒▒▄ ▒▒▒▒▒▒█
  21.                   ▒▒▒▒█▀    ▀▀▀▒▒█       ▀▀▀▒▒█  ▀▀▀▀▒█
  22.                    ▒▒█▀        ▒▒█ ▒▒▄  ▒▒▒▒▒▒█ ▒▒▒▒▒▒█
  23.                     ▀▀         ▀▀  ▀▀    ▀▀▀▀▀   ▀▀▀▀▀
  24.  
  25.  
  26.                  ╓─┐  ╥┐ ┬ ╥    ┬ ╓─── ╥┐ ┬ ╥──┐ ╓─── ╓──┐    
  27.                 ╓╨─┴┐ ║└┐│ ╙╖┌┐┌┘ ╟──  ║└┐│ ║  │ ╟──  ╟─┬┘ ── 
  28.                 ╨   ┴ ╨ └┴  ╙┘└┘  ╙─── ╨ └┴ ╨──┘ ╙─── ╨ └─    
  29.    
  30.                   ╥  ┬  ╓─┐  ╥┐ ┬ ╥──┐ ╓─┐  ╥  ┬ ╓──┐ ╥  ┬ 
  31.                   ╟──┤ ╓╨─┴┐ ║└┐│ ║  │ ╟─┴┐ ║  │ ║    ╟──┤ 
  32.                   ╨  ┴ ╨   ┴ ╨ └┴ ╨──┘ ╙──┘ ╙──┘ ╙──┘ ╨  ┴ 
  33.  
  34.  
  35.  
  36.                 Ein Simulator für speicherprogrammierbare
  37.         Steuerungen angelehnt an der Programmiersprache STEP 5 (R).
  38.  
  39.  
  40.  
  41.                              STAND: Juli 1994
  42.  
  43.  
  44.                              (C) 1991, 1994
  45.  
  46.                           Matthias Habermann jr.
  47.                         Albert-Einstein-Straße 22
  48.                              D-75015 Bretten
  49.  
  50.                          Telefon (07252) 87890
  51.                          Fax     (07252) 78780
  52.  
  53.                               G E R M A N Y
  54.  
  55.  
  56.  
  57.  
  58.             Alle Warenzeichen sind Eigentum Ihrer Besitzer.
  59.                             
  60.  
  61.       INHALTSVERZEICHNIS
  62. ──────────────────────────────────────────────────────────────────────────────
  63.       ╓─── ╥ ╥┐ ┬ ╓─── ╥  ┬ ╓─── ╥  ┬ ╓──┐ ╥  ┬ ╥┐ ┬ ╓──┐ 
  64.       ╟──  ║ ║└┐│ ╟──  ║  │ ╟──  ╟──┤ ╟─┬┘ ║  │ ║└┐│ ║ ─┬ 
  65.       ╙─── ╨ ╨ └┴ ╨    ╙──┘ ╙─── ╨  ┴ ╨ └─ ╙──┘ ╨ └┴ ╙──┘ 
  66.  
  67.       0.1        Möglichkeiten des SPS-Simulators V4.53 ........7
  68.       0.2        Hardwarevoraussetzungen .......................8
  69.       0.3        Installation und Start des SPS-Simulators .....9
  70.       0.4        Files auf der Diskette ........................10
  71.       0.5        Garantie- und Haftungsausschluß ...............11
  72.       0.6        Ausdrucken des Handbuchs (SPS.DOC) ............11
  73.  
  74.  
  75.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥
  76.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ║ 
  77.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───   ╨ 
  78.  
  79.       Beschreibung der Menuepunkte
  80.  
  81.       1.1 MENUEPUNKT DATEI
  82.  
  83.       1.1.1      Bausteinhandling ..............................12
  84.       1.1.1.1       Was wird angezeigt ?........................12
  85.       1.1.1.2       Baustein anwählen ..........................12
  86.       1.1.1.3       Tastaturbelegung ...........................12
  87.  
  88.       1.1.2      Integrierte Bausteine..........................13
  89.       1.1.3      Abspeichern ...................................13
  90.       1.1.3.1       Bausteine abspeichern ......................14
  91.       1.1.3.2       Anweisungslisten als ASCII-Datei speichern..14
  92.  
  93.       1.1.4      Pfäde ändern ..................................14
  94.       1.1.5      Neuer Baustein anlegen ........................15
  95.       1.1.5.1       OB's, FB's, PB's oder SB's anlegen .........15
  96.       1.1.5.2       DB's anlegen ...............................15
  97.  
  98.       1.1.6      Programm Ende .................................16
  99.  
  100.  
  101.       1.2 MENUEPUNKT EINGEBEN
  102.  
  103.       1.2.1      Tastenbelegung des Editors ....................17
  104.       1.2.2      Allgemeine Eingabehinweise ....................18
  105.       1.2.3      Eingeben von Kommentaren ......................19
  106.       1.2.4      Arbeiten mit Blöcken ..........................20
  107.       1.2.4.1       Wie erstelle ich einen Block ? .............20
  108.       1.2.4.2       Wie hole ich den erstellten Block  
  109.                     wieder zurück ? ............................20
  110.       1.2.5      Erstellung einer Zuweisungsliste ..............21
  111.       1.2.6      Automatische Kommentarerzeugung mit Hilfe 
  112.                  der Zuweisungsliste ...........................22
  113.       1.2.7      Erstellung einer BEZeichnerliste ..............23
  114.       1.2.8      Die Suchen-Funktion ...........................24
  115.       1.2.9      Die Suchen-und-Ersetzen-Funktion ..............24ff
  116.       1.2.10     Netzwerke .....................................25
  117.       1.2.11     Fehlermeldungen bei der AWL-Eingabe ...........26
  118.  
  119.                             ─── Seite 1  ───
  120.  
  121.       INHALTSVERZEICHNIS
  122. ──────────────────────────────────────────────────────────────────────────────
  123.  
  124.       1.3 MENUEPUNKT SIMULATION
  125.  
  126.       1.3        AWL-Simulation.................................26
  127.       1.3.1      Einleitung ....................................26
  128.       1.3.2      Tastenbelegung während der AWL-Simulation .....27
  129.       1.3.3      Umschalten der Eingänge .......................28
  130.       1.3.4      "Steuern Variable"- Funktion ..................28
  131.       1.3.5      Hinweise zur AWL-Simulation ...................29
  132.  
  133.       1.4        AWL-Debugging .................................30
  134.  
  135.       1.4.1      Tastenbelegung im Debug-Modus .................30
  136.  
  137.  
  138.       1.5 FUP-SIMULATION
  139.  
  140.       1.5.1      Einleitung ....................................31
  141.       1.5.2      Allgemeine Regeln für die Programmierung von  
  142.                  Zeiten, Zähler und Speicher ...................31
  143.       1.5.3      Programmierung von Zeiten .....................32
  144.       1.5.4      Programmierung von Zähler .....................33ff
  145.       1.5.5      Programmierung von Speichern ..................35
  146.       1.5.6      Einsetzen von Konnektoren .....................37
  147.       1.5.6.1       Was ist ein Konnektor ? ....................37
  148.       1.5.6.2       Welchen Zweck haben Konnektoren ? ..........37
  149.       1.5.6.3       Beispiele zu Konnektoren ...................37
  150.       1.5.7      Was tun, wenn sich die Anweisungsliste nicht
  151.                  umwandeln läßt ? ..............................38
  152.       1.5.8      Netzwerkprogrammierung ........................38
  153.       1.5.9      Bedienung der FUP-Simulation ..................38
  154.       1.5.10     Tastenbelegung während der FUP-Simulation .....39
  155.       1.5.11     Funktionsplan ausdrucken ......................39
  156.       1.5.12     Funktionsplan als ASCII-Datei abspeichern .....39
  157.  
  158.  
  159.       1.6 AG-Maske-Simulation
  160.  
  161.       1.6.1      Einleitung ....................................40
  162.       1.6.2      Tastenbelegung während der AG-Maske-Simulation 
  163.       1.6.3      Welche Eingangs- und Ausgangsbytes werden 
  164.                  angezeigt ? ...................................40
  165.       1.6.4      Wie kann man die Eingänge umschalten ? ........40ff
  166.  
  167.  
  168.  
  169.       1.7 MENUEPUNKT KONFIGURATION
  170.  
  171.       1.7.1      Remanente Merker/Zähler/Timer .................41
  172.       1.7.2      Escape Sequenzen einstellen ...................41ff
  173.       1.7.3      Testdruck .....................................42
  174.       1.7.4      AWL/FUP-Zeilen pro Seite ......................44
  175.       1.7.5      Interne Kommentare löschen ....................45
  176.       1.7.6      Tastaturgeschwindigkeit .......................45
  177.  
  178.  
  179.                             ─── Seite 2  ───
  180.  
  181.       INHALTSVERZEICHNIS
  182. ──────────────────────────────────────────────────────────────────────────────
  183.  
  184.       1.7.7      Einstellen der Videomodi ......................46
  185.       1.7.8      Einstellung der PAE/PAA- Leiste ...............
  186.       1.7.9      Monochromeinstellung ..........................47
  187.       1.7.10     Coloreinstellung ..............................47
  188.       1.7.11     Konfiguration laden ...........................47
  189.  
  190.  
  191.       1.8 MENUEPUNKT AG
  192.  
  193.       1.8.0      Allgemeines ...................................48
  194.       1.8.1      Was Sie beachten müssen .......................48
  195.       1.8.2      Übertragen PC -> AG (ALT/F5) ..................48
  196.       1.8.2.1       Bausteinliste holen 
  197.                     (Übertragen von mehreren  Bausteinen) ......49
  198.       1.8.2.2       Manuelle Eingabe
  199.                     (Übertragung eines Bausteines) .............49
  200.       1.8.3      Übertragen AG -> PC (ALT/F6) ..................50
  201.       1.8.3.1       Bausteinliste holen (BuchAG) -
  202.                     Übertragung von mehreren Bausteien. ........50
  203.       1.8.3.2    Manuelle Eingabe ..............................50
  204.       1.8.4      Bausteine im AG löschen (ALT/F8) ..............50
  205.       1.8.4.1       Alle Bausteine im AG löschen ...............50
  206.       1.8.5      Komprimieren ..................................50
  207.       1.8.6      Buch AG (ALT/F9) ..............................51
  208.       1.8.6.1       "Alle" Bausteine auflisten .................51
  209.       1.8.6.1       "OB", "PB", "FB", "SB", "DB" - 
  210.                     nur Bestimmte Bausteintypen auflisten ......51
  211.       1.8.7      AG Start/Stop .................................51
  212.       1.8.7.1       AG Start (ALT/F9) ..........................51
  213.       1.8.7.2       AG Stop (ALT/F10) ..........................51
  214.       1.8.8      Schnittstelle prüfen ..........................51
  215.       1.8.9      Kommunikationsparameter .......................51ff
  216.       1.8.10     Parameter zeigen ..............................52
  217.  
  218.      
  219.  
  220.       1.9 MENUEPUNKT SONSTIGES
  221.  
  222.       1.9.1      Anweisungsliste ausdrucken ....................53
  223.       1.9.2      Querverweisliste erzeugen .....................53
  224.       1.9.3      PC Panel-Verbindung testen ....................54
  225.  
  226.  
  227.       1.10 MENUEPUNKT INFOS
  228.  
  229.       1.10.1     Befehlssatz ...................................54
  230.       1.10.2     Dokumentation .................................55
  231.       1.10.3     README-Datei ..................................55
  232.       1.10.4     Datei lesen ...................................55
  233.       1.10.5     Bestellung ....................................55
  234.       1.10.6     Copyright .....................................55
  235.  
  236.  
  237.  
  238.  
  239.                             ─── Seite 3  ───
  240.  
  241.       INHALTSVERZEICHNIS
  242. ──────────────────────────────────────────────────────────────────────────────
  243.  
  244.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥ ╥
  245.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ║ ║
  246.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───   ╨ ╨
  247.  
  248.       2.1        Zeitglieder
  249.       2.1.1      Einführung ....................................56
  250.       2.1.2      Eingänge und Ausgänge eines Zeitgliedes .......57
  251.       2.1.3      Eigenschaften der Zeitglieder .................58
  252.       2.1.3.1       SE (Einschaltverzögert) ....................58
  253.       2.1.3.2       SI (Impuls) ................................59
  254.       2.1.3.3       SV (Impulsverlängerung) ....................59
  255.       2.1.3.4       SA (Ausschaltverzögerung) ..................60
  256.       2.1.3.5       SS (Einschaltverzögert, speichernd) ........60
  257.  
  258.       2.2        Zähler ........................................61
  259.       2.3        Programmierung von Klammern ...................62
  260.       2.4        Die Beinflussung der Akkus ....................62
  261.       2.5        Die Beeinflussung der Anzeigebits .............63ff
  262.       2.6        Der Bearbeitebefehl ...........................65
  263.       2.7        Der Divisionsbefehl ...........................66
  264.  
  265.  
  266.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥ ╥ ╥
  267.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ║ ║ ║
  268.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───   ╨ ╨ ╨
  269.       
  270.       3 Pogrammierung und Umgang mit Bausteinen
  271.  
  272.       3.1        Was ist ein Baustein ?.........................67
  273.       3.2        Warum sollte man größere Programme
  274.                  in Bausteine aufteilen ?.......................67
  275.       3.3        Verfügbare Bausteine...........................67
  276.       3.3.1         OB's (Organisationsbausteine)...............67
  277.       3.3.2         PB's (Programmbausteine) &
  278.                     SB's (Schrittbausteine).....................68
  279.       3.3.3         FB's (Funktionsbausteine)...................68
  280.       3.3.4         Integrierte Bausteine.......................68
  281.       3.3.5         DB's (Datenbausteine).......................69
  282.  
  283.       3.4        Wie erzeuge ich Bausteine ?....................70
  284.  
  285.       3.5        Der Aufruf von Bausteinen......................71
  286.  
  287.       3.6        Die Simulation eines SPS-Programms mit
  288.                  verschiedenen Bausteinen.......................71
  289.  
  290.       3.6.1      Laden eines Bausteins..........................71
  291.  
  292.       3.6.2      Aktivierung der Simulation.....................72
  293.       3.6.2.1       Simulation von OB's FB's PB's & SB's........72
  294.       3.6.2.2       Simulation von DB's.........................72
  295.  
  296.  
  297.  
  298.  
  299.                             ─── Seite 4  ───
  300.  
  301.       INHALTSVERZEICHNIS
  302. ──────────────────────────────────────────────────────────────────────────────
  303.  
  304.       3.6.3      Informationen bei der Simulation...............73
  305.       3.6.3.1       Wird der angezeigte Baustein
  306.                     bearbeitet ?................................73
  307.       3.6.3.2       Wieviele Bausteinebenen besitzt das
  308.                     simulierte Programm ?.......................73
  309.  
  310.       3.7        Der Datenbausteineditor - 
  311.                  Erstellung von Datenbausteinen.................73
  312.       3.7.1         Aufruf des Datenbausteineditors.............73
  313.       3.7.2         Eingeben von Daten..........................74
  314.       3.7.3         Besonderheiten des DB-Editors...............75
  315.   
  316.  
  317.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥ ╥  ┬
  318.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ║ ╙╖┌┘ 
  319.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───   ╨  ╙┘  
  320.  
  321.       4  Parametrierbare Funktionsbausteine
  322.  
  323.       4.1        Was sind parametrierbare FB's ? ...............76
  324.       4.2        Erstellung von parametrierten FB's ............76
  325.       4.3        Aufruf von parametrierten FB's ................77
  326.       4.4        Ändern der BEZeicherliste .....................77
  327.       4.5        Simulation von parametrierten FB's ............77
  328.       4.6        Beispiel ......................................77ff
  329.       4.7        Was Sie beachten sollten ......................79
  330.       4.8        Mögliche Bausteinparameter und zugelassene
  331.                  Aktualoperanden ...............................80
  332.  
  333.  
  334.  
  335.  
  336.  
  337.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥  ┬   
  338.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ╙╖┌┘   
  339.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───    ╙┘    
  340.  
  341.       5  SPS-Steuerbefehle 
  342.       
  343.       5.1        Was sind SPS-Steuerbefehle ? ..................81
  344.       5.2        Definition von Tastern und Schaltern ..........81
  345.       5.3        Definition von akustischen Ausgängen ..........82
  346.       5.4        Einstellung der Statusanzeige .................82
  347.       5.5        Einstellung von Peripheriebytes ...............83
  348.       5.5.1      Programmierung einer Interface- Karte
  349.                  mit 8255- Portbausteinen ......................83ff
  350.       5.5.2      Programmierung  einer  Interface- Karte mit
  351.                  mit festen Ein- Ausgangsbelegungen ............85ff
  352.       5.6        Einstellung des aktuellen Eingangsbytes .......86
  353.       5.6.1         Gemeinsame Einstellung des Startbytes von
  354.                     PAE und PAA ................................86
  355.       5.6.2         Einstellung des aktuellen Eingangsbyte .....86
  356.       5.6.3         Einstellung des aktuellen Ausgangsbytes ....86
  357.       5.7        Programmierung der Klartextanzeige ............87
  358.  
  359.                             ─── Seite 5  ───
  360.  
  361.       INHALTSVERZEICHNIS
  362. ──────────────────────────────────────────────────────────────────────────────
  363.  
  364.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥  ┬ ╥
  365.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ╙╖┌┘ ║
  366.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───    ╙┘  ╨
  367.  
  368.  
  369.       5.8        Einstellung der Analogeingabe .................88
  370.  
  371.  
  372.       6 Sonstiges
  373.  
  374.       6.1        Simulation von Analogwerteingaben .............89ff
  375.       6.2        Abfrage des Joysticks .........................90ff
  376.       6.3        Die Konfigurationsdatei "SPS-CFG" .............91
  377.       6.4        Die Konfigurationsdateien "Farben.VGA" und
  378.                  "Farben.MON" ..................................92
  379.  
  380.       6.5        Mitgelieferte integrierte Bausteine (nur VV)
  381.       6.5.1         FB 240 Wandlerbaustein BCD -> DUAL .........92
  382.       6.5.2         FB 241 Wandlerbaustein DUAL -> BCD .........92
  383.       6.5.3         FB 242 Rechenbaustein Multiplizierer .......93
  384.       6.5.4         FB 243 Rechenbaustein Dividierer ...........93
  385.       6.5.5         FB 250 Analogeingabe .......................93
  386.       6.5.6         FB 251 Analogausgabe .......................95
  387.  
  388.  
  389.       ╥ ┬   ╓─┐  ╓──┐ ╥ ┌─╥─┐ ╓─── ╥      ╥  ┬ ╥ ╥
  390.       ╟─┴┐ ╓╨─┴┐ ╟──┘ ║   ║   ╟──  ║      ╙╖┌┘ ║ ║
  391.       ╨  ┴ ╨   ┴ ╨    ╨   ╨   ╙─── ╙───    ╙┘  ╨ ╨      
  392.  
  393.       7 Beispielprogramme
  394.  
  395.       7.1        Auswertung einer ansteigenden Flanke ..........96
  396.       7.2        Auswertung einer abfallenden Flanke ...........96
  397.       7.3        Taktgeneratoren
  398.       7.3.1         Taktgenerator mit einem SV-Glied ...........97
  399.       7.3.2         Taktgenerator mit zwei SE-Glieder ..........97
  400.       7.3.3         Taktgenerator mit einem Zeit-OB ............98
  401.       7.4        Anlasserschaltung mit akustischen Ausgängen ...98ff
  402.  
  403.  
  404.        ╓─┐  ╥┐ ┬ ╥  ┬  ╓─┐  ╥┐ ┬ ╓──┐
  405.       ╓╨─┴┐ ║└┐│ ╟──┤ ╓╨─┴┐ ║└┐│ ║ ─┬ 
  406.       ╨   ┴ ╨ └┴ ╨  ┴ ╨   ┴ ╨ └┴ ╙──┘ 
  407.       
  408.       A1  Kurzanleitung bzw. Einstiegshilfe in das Programm ....100ff<==
  409.       A2  Simulation von Ablaufsteuerungen .....................106ff
  410.       A3  Verfügbare Operationen ...............................108ff
  411.       A4  Dimensionen der Operanden und Befehle ................118ff
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.                             ─── Seite 6  ───
  420.  
  421.       EINFÜHRUNG
  422. ──────────────────────────────────────────────────────────────────────────────
  423.  
  424.       Alle Warenzeichen, die in dieser Dokumentation erwähnt werden,
  425.       sind Eingentum Ihrer Besitzer !
  426.  
  427.       0 Einführung
  428.  
  429.       0.1 Möglichkeiten des SPS-Simulators V4.53
  430.  
  431.       Der   SPS-Simulator   V4.53   ist   ein  Simulator  für  speicher-
  432.       programmierbare Steuerungen, angelehnt an der Programmiersprache
  433.       STEP  5 (R).   Die  vorliegende Version kann fast alle Operationen
  434.       bearbeiten,  die  auch  reale  speicherprogrammierbare Steuerungen
  435.       besitzen.  Ein  Überblick  über  alle  Operationen  verschaft  die
  436.       Befehlsübersicht   im   Anhang.  Eine  kurze  Übersicht  über  die
  437.       Funktionen des SPS- Simulators:
  438.  
  439.  
  440.       Verfügbare Operanden                  Operationsvorrat
  441.       ─────────────────────────────────────────────────────────────────
  442.  
  443.       ■ 128 Eingangs.- und Ausgangsbytes    ■ Verknüpfungsoperationen
  444.         (1024 Eingänge und Ausgänge)        ■ Speicheroperationen
  445.       ■ 256 Merker                          ■ Ladeoperationen
  446.       ■ 256 Datenbausteine                  ■ Transferoperationen
  447.       ■ 256 Timer                           ■ Zeitoperationen
  448.       ■ 256 Zähler                          ■ Zähloperationen
  449.       ■ maximal 3000 Anweisungen            ■ arithmetische Befehle
  450.         simulierbar (VOLLVERSION)           ■ Vergleichsoperationen
  451.       ■ 256 Peripheriebytes                 ■ Bausteinaufrufoperationen
  452.                                             ■ Bausteinaufrufoperationen
  453.                                             ■ Bit-Test-Operationen
  454.                                             ■ Umwandlungsoperationen
  455.                                             ■ Schiebeoperationen
  456.                                             ■ Formaloperanden
  457.                                               (parametrierbare FB's)
  458.  
  459.       Weitere Fähigkeiten:
  460.  
  461.       ■ Simulation von Analogeingaben über die Tastatur. So können 
  462.         insgesamt 6 analoge Eingänge simuliert werden.
  463.       ■ Eine "Steuern Variable"- Funktion ist für Bit-, Byte- und 
  464.         Wortoperanden während der AWL- und FUP- Simulation verfügbar.
  465.       ■ PG-Funktionen wie übertragen von Bausteinen, AG-Komprimieren,
  466.         AG Start, AG Stop, Buch AG, Bausteine löschen.
  467.       ■ Erzeugen einer Querverweisliste
  468.       ■ Programmierbare Klartextanzeige
  469.       ■ Definition von Tastern und Schaltern (Öffner und Schließer)
  470.       ■ Integrierte Bausteine FB240 ... FB243, FB250, FB251 (Vollvers.)
  471.       ■ AWL-Simulation
  472.       ■ FUP-Simulation
  473.       ■ AG-Maske-Simulation
  474.       ■ AWL-Einzelschritt-Simulation
  475.  
  476.       Die  Bedieneroberfläche  bietet  viele  nützliche  und komfortable
  477.       Funktionen, wie z.B.
  478.  
  479.                             ─── Seite 7  ───
  480.  
  481.       HARDWAREVORAUSSETZUNGEN
  482. ──────────────────────────────────────────────────────────────────────────────
  483.  
  484.       ■ einfache Simulation von Bausteinen
  485.       ■ einfache Simulation von Datenbausteinen
  486.       ■ Erstellung einer Zuweisungsliste, die in der AWL-Simulation
  487.         integriert ist.
  488.       ■ Blockoperationen
  489.       ■ übersichtliche Handhabung der Bausteine
  490.       ■ einfache Eingabe der AWL
  491.       ■ schneller Wechsel zu anderen Bausteinen
  492.       ■ SPS-Steuerbefehle (zur Einstellung des SPS-Simulators)
  493.       ■ Zeit OB's, Start OB
  494.       ■ schnelle Erstellung von OB's, PB's, FB's, SB's und DB's
  495.       ■ Datenbausteineditor
  496.  
  497.  
  498.       0.2 Hardwarevoraussetzungen
  499.  
  500.       ■ IBM-PC / AT ab 286/12MHz
  501.         Ideal: 80386/33MHz mit 4 MB RAM
  502.  
  503.       ■ MS-DOS ab V 3.3
  504.  
  505.       ■ 550 KBytes freier Arbeitsspeicher (SPS.EXE)
  506.         4 MB RAM für die Protected-Mode Version (SPS386.EXE)
  507.  
  508.       ■ Grafikkarte : EGA/VGA oder Hercules
  509.         Ideal: S-VGA 1MB RAM (zur Darstellung hochauflösender Textmodi)
  510.  
  511.       ■ einen beliebigen Drucker für den Ausdruck von Funktions-
  512.         plänen oder Anweisungslisten
  513.  
  514.  
  515.       0.3 Installation und Start des SPS-Simulators
  516.  
  517.       Installation des Simulators:
  518.  
  519.       Die   Installation   des   Simulators  erfolgt  mit  dem  Programm
  520.       "INSTALL.EXE". Nach dem Start, können Sie das Ziellaufwerk und das
  521.       Zielverzeichnis  angeben.  Mit  der  [Tab]-Taste  können  Sie  die
  522.       einzelnen Eingabefelder wechseln.
  523.       Quellaufwerk   und  Quellverzeichnis  müssen  normalerweise  nicht
  524.       verändert werden.
  525.       Nach  Anklicken  des  Buttons  "Installation  starten", oder durch
  526.       Drücken der Tastenkombination [ALT]/[S] wird das Archiv "SPS!.SFX"
  527.       auf das Ziellaufwerk kopiert und ausgepackt.
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.                             ─── Seite 8  ───
  540.  
  541.       Starten des SPS-Simulators / Optionen
  542. ──────────────────────────────────────────────────────────────────────────────
  543.  
  544.       Voraussetzungen für eine erfolgreiche Installation sind:
  545.  
  546.       ■ mind. 2 MB freier Speicher auf der Festplatte
  547.       ■ PC/AT 286, 386, 486, ...
  548.  
  549.  
  550.  
  551.       Starten des SPS-Simulators
  552.  
  553.       Der  Simulator  wird  in  zwei RUN- Versionen geliefert. Die Datei
  554.       "SPS.EXE"  ist das Hauptprogramm für 286'er Rechner. Diese Version
  555.       kann  maximal  1000 Anweisungen bearbeiten.
  556.  
  557.       Wenn  Sie  einen  386'er oder 486'er mit 4 MB RAM besitzen, können
  558.       Sie  die  "Protected  Mode" - Version benutzen. Diese Version kann
  559.       bis  zu 3000 Anweisungen bearbeiten. Starten Sie den den Simulator
  560.       mit  Eingabe  von  "SPS386.EXE".  Letztere  Version ist nur in der
  561.       VOLLVERSION enthalten.
  562.  
  563.       Es  ist  möglich,  den  Simulator  mit  verschiedenen  Optionen zu
  564.       starten. Dabei spielt die Reihenfolge und Groß-Kleinschreibung der
  565.       Optionen keine Rolle.
  566.  
  567.       WICHTIG !!! Zwischen zwei Optionen muß ein Leerzeichen stehen !
  568.  
  569.       Folgende Optionen sind möglich:
  570.  
  571.       ■ /L[Bausteinname]
  572.         Beispiel: SPS /LAnlage1
  573.         Diese Option lädt nach dem Start die AWL (OB1) mit dem
  574.         Namen "Anlage1". Dies geht nur, wenn ein OB1 vorhanden ist !
  575.  
  576.       ■ /AWL
  577.         Beispiel: SPS /AWL /LAnlage1
  578.         Diese Option lädt den OB1 von "Anlage1" und startet dann
  579.         anschließend die AWL-Simulation.
  580.  
  581.       ■ /FUP
  582.         Beispiel: SPS /FUP /LAnlage1
  583.         Diese Option lädt den OB1 von "Anlage1" und startet dann
  584.         anschließend die FUP-Simulation.
  585.  
  586.       ■ /AGMASKE
  587.         Beispiel: SPS /AGMASKE /LAnlage1
  588.         Diese Option lädt den OB1 von "Anlage1" und startet dann
  589.         anschließend die AG-Maske-Simulation.
  590.  
  591.       Anmerkung zu den letzten drei Optionen: 
  592.  
  593.       Wenn  Sie  keine  AWL  mit der Option "/L" laden, wird die zuletzt
  594.       bearbeitete  AWL  geladen.
  595.       Die  Optionen  "/AWL", "/FUP" und "/AGMASKE" können also auch ohne
  596.       explizites Laden einer AWL eingesetzt werden.
  597.  
  598.  
  599.                             ─── Seite 9  ───
  600.  
  601.       Dateien auf der Diskette
  602. ──────────────────────────────────────────────────────────────────────────────
  603.  
  604.       ■ /EGA
  605.         Beispiel: SPS /EGA
  606.  
  607.         Falls Sie Probleme mit dem Cursor haben, starten Sie das
  608.         Programm mit der Option 'EGA': SPS /EGA
  609.         (Unabhänig von der Grafikkarte)
  610.  
  611.  
  612.       !! Achtung NOVELL DOS 7.0 Besitzer !!
  613.  
  614.       Wenn  "SPS386.EXE"  auf Ihrem Rechner nicht läuft, sollten Sie
  615.       den Schalter "DPMI" des Treibers "EMM386.EXE" auf "OFF" stellen.
  616.  
  617.  
  618.  
  619.  
  620.       0.4 Dateien auf der Diskette
  621.  
  622.       Folgende Dateien müssen auf der Diskette vorhanden sein:
  623.  
  624.       ■ SPS!.SFX      Das Simulatorpaket in komprimierter Form
  625.       ■ INSTALL.EXE   Operationsvorrat des SPS-Simulators
  626.  
  627.       Nach der Installation befinden sich folgende Verzeichnisse
  628.       und Dateien auf der Festplatte:
  629.  
  630.       Unterverzeichnisse im Hauptverzeichnis:
  631.  
  632.       ■ INTEGR        Verzeichnis für integrierte Bausteine
  633.       ■ BLOECKE       Verzeichnis für abgespeicherte Blöcke
  634.       ■ AWL           Verzeichnis für Anweisungslisten
  635.       ■ COMPILER      Verzeichnis für den AWL-Batch-Compiler (Shareware)
  636.  
  637.       Dateien im Hauptverzeichnis:
  638.  
  639.       ■ EGAVGA.BGI   Grafik-Treiber für AG-Maske-Simulation
  640.       ■ SPS.CFG      Konfigurationsdatei für den SPS-Simulator
  641.       ■ BEFEHLE.DOC  Befehlsübersicht
  642.       ■ SPS.DOC      Handbuch zum Simulator
  643.       ■ VGAMODES.DOC Liste von VGA-Textmodi
  644.       ■ RTM.EXE      RUN-TIME-Manager für SPS386.EXE
  645.       ■ SPS.EXE      Startprogramm des Simulators
  646.       ■ SPS386.EXE   Startprogramm des Simulators
  647.       ■ READ.ME      Wichtige Hinweise und Informationen
  648.       ■ FARBEN.MON   Konfigurationsdatei für Farben bei Hercules-Karte
  649.       ■ WASIST.NEU   Programmneuerungen
  650.       ■ DPMI16BI.OVL DOS-PROTECTED-MODE-INTERFACE für SPS386.EXE
  651.       ■ BESTELL.TXT  Bestellformular
  652.       ■ INFO.TXT     wird nur beim ersten Start des Simulator angezeigt
  653.       ■ TEMP.TXT     INFO.TXT wurde in TEMP.TXT nach dem Start umbenannt
  654.       ■ SINFO.TXT    Sharewareinfo
  655.       ■ FARBEN.VGA   Konfigurationsdatei für Farben EGA/VGA-Karte
  656.  
  657.  
  658.  
  659.                             ─── Seite 10 ───
  660.  
  661.       Garantie- und Haftungsausschluß / Ausdrucken des Handbuchs
  662. ──────────────────────────────────────────────────────────────────────────────
  663.  
  664.       0.5 Garantie- und Haftungsausschluß
  665.  
  666.       Ich   garantiere  NICHT  die  Eignung  des  Programmes  für  einen
  667.       bestimmten    Anwendungsfall    oder   eine   bestimmte   Hardware
  668.       Konfiguration.
  669.  
  670.       Weiterhin  bin ich UNTER KEINEN UMSTÄNDEN für Schäden haftbar, die
  671.       sich aus der Nutzung oder Unfähigkeit zur Nutzung des vorliegenden
  672.       Produktes    ergeben.    Dies    schließt    den    Verlust    von
  673.       Geschäftsgewinnen,  die  Unterbrechung der geschäftlichen Abläufe,
  674.       den  Verlust von Daten sowie alle übrigen materiellen und ideellen
  675.       Verluste und deren Folgeschäden ein und gilt selbst dann, wenn ich
  676.       zuvor   ausdrücklich   auf   die  Möglichkeit  derartiger  Schäden
  677.       hingewiesen worden bin.
  678.  
  679.       Sollte  ein Fehler entdeckt werden, so bin ich bestrebt, diesen so
  680.       schnell wie möglich zu korrigieren.
  681.  
  682.       DURCH  DIE  NUTZUNG DER VORLIEGENDEN SOFTWARE ERKLÄRT DER ANWENDER
  683.       SEIN EINVERSTÄNDNIS MIT O.G. GARANTIE- UND HAFTUNGSAUSSCHLUSS.
  684.  
  685.  
  686.  
  687.       0.6 Ausdrucken des Handbuchs
  688.  
  689.       Das  Handbuch  ist in der Datei "SPS-DOC" abgespeichert. Es umfaßt
  690.       ca. 110  Seiten,  wobei  jede  Seite 59 Zeilen hat. Wollen Sie das
  691.       Handbuch ausdrucken, müssen Sie folgendes sicherstellen:
  692.  
  693.       ■ Ist genügend Blanko-Papier vorhanden ?
  694.       ■ Ist der Drucker so eingestellt, daß er 59 Zeilen auf
  695.         ein Blatt drucken kann ?
  696.         Dies können Sie im Menuepunkt "Testdruck" ausprobieren.
  697.       ■ Der Seitenvorschub des Druckers muß ausgeschaltet sein.
  698.         Ist das nicht der Fall werden viele leere Blätter ausgeworfen.
  699.  
  700.       Mit  dem  DOS-Befehl  "TYPE SPS.DOC >LPT1" können Sie das Handbuch
  701.       ausdrucken.
  702.  
  703.  
  704.  
  705.       Kleiner Hinweis:
  706.  
  707.       Den  Ausdruck  des  Handbuch können Sie sich sparen, wenn Sie sich
  708.       die   VOLLVERSION   kaufen.  In  der  Registrationsgebür  ist  ein
  709.       gebundenes Handbuch im DIN A5- Format enthalten !
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.                             ─── Seite 11 ───
  720.      
  721.       Menuepunkt DATEI                                         KAPITEL 1
  722. ──────────────────────────────────────────────────────────────────────────────
  723.  
  724.       1.1 Menuepunkt Datei
  725.  
  726.       1.1.1 Bausteinhandling
  727.  
  728.       1.1.1.1 Was wird angezeigt ?
  729.  
  730.       In  diesem  Dialogfenster  haben Sie Zugriff auf alle Bausteine im
  731.       eingestellten  Pfad. In fünf Auswahlboxen werden die verschiedenen
  732.       Bausteintypen   (OB/FB/PB/SB   und   DB)  aufgelistet.  In  diesem
  733.       Dialogfester haben Sie folgende Möglichkeiten:
  734.  
  735.             ■ einen Baustein laden
  736.             ■ den Namen von einem Baustein oder von Bausteinen ändern
  737.             ■ einen Baustein von der Festplatte/Diskette löschen
  738.             ■ den Datenbausteineditor aktivieren
  739.             ■ Baustein-Vorschau:  Sie  können sich vorab die ersten paar
  740.               AWL-Zeilen  eines  bestimmten  Bausteins  anzeigen lassen,
  741.               ohne ihn zu laden.
  742.  
  743.  
  744.       1.1.1.2 Baustein anwählen
  745.  
  746.       Mit  Hilfe  der  [TAB]-  oder  [SHIFT/TAB]-Taste  wählen  Sie  den
  747.       gewünschten   Bausteintyp  vor.  Wenn  Sie  nun  einem  bestimmten
  748.       Bausteinnamen  suchen, können Sie einfach den 1. Buchstaben dieses
  749.       Bausteins  drücken.  Die  Auswahlbox  überprüft  dann,  ob  solche
  750.       Bausteine vorhanden sind. Ist das der Fall, wird der Auswahlbalken
  751.       auf  diesen Baustein gesetzt. Wenn nun der aktuelle Baustein nicht
  752.       der  gesuchte  Baustein  ist,  drücken  Sie  einfach  den  zweiten
  753.       Buchstaben  des  gesuchten  Bausteins.  Dies  können  Sie so lange
  754.       treiben,  bis  Sie  den  gesuchten  Baustein  gefunden haben, oder
  755.       feststellen, daß dieser nicht vorhanden ist.
  756.  
  757.  
  758.       1.1.1.3 Tastaturbelegung
  759.  
  760.       Taste                   Befehl
  761.       ─────────────────────────────────────────────────────────────
  762.       [TAB]                   Bausteintyp wechseln (Rechtsumlauf)
  763.       [SHIFT/TAB]             Bausteintyp wechseln (Linksumlauf)
  764.       [PFEIL NACH OBEN]       Auswahlbalken nach oben bewegen
  765.       [PFEIL NACH UNTEN]      Auswahlbalken nach unten bewegen
  766.       [PFEIL NACH RECHTS]     Suchbuchstabe nach rechts wechseln
  767.       [PFEIL NACH LINKS]      Suchbuchstabe nach links wechseln
  768.       [POS1]                  Suchbuchstabe = erster Buchstabe
  769.       [POS1][POS1]            Zum ersten Eintrag springen 
  770.                               (schnell hintereinander drücken)
  771.       [ENDE]                  Zum letzten Eintrag springen
  772.       [RETURN]                Baustein laden bzw. DB-Editor aufrufen
  773.       [STRG/RETURN]           Baustein-Vorschau
  774.       [ALT/R]                 Bausteinname(n) ändern
  775.       [ALT/D]                 Baustein(e) löschen
  776.       [ALT/P]                 Pfad für Anweisungslisten ändern
  777.       [ESC]                   Dialogfester oder DB-Editor verlassen
  778.  
  779.                             ─── Seite 12 ───
  780.  
  781.       MENUEPUNKT DATEI                                         KAPITEL 1
  782. ──────────────────────────────────────────────────────────────────────────────
  783.  
  784.       1.1.2 Integrierte Bausteine
  785.  
  786.       Dieser  Menuepunkt  entspricht  dem Menuepunkt "Bausteinhandling".
  787.       Der  Unterschied  ist,  daß  hier  nur  die integrierten Bausteine
  788.       aufgelistet  werden.  Wenn  Sie  diesen  Menuepunkt anwählen, wird
  789.       einfach  der  Pfad  für  die Anweisungslisten auf den Pfad für die
  790.       integrierten  Bausteine  eingestellt.  Jetzt  haben Sie über diese
  791.       Bausteine   die   gleiche   Übersicht,  wie  über  die  "normalen"
  792.       Bausteine.  Wenn  Sie noch nicht den entsprechenden Abschnitt über
  793.       die  integrierten  Bausteine  gelesen  haben,  hier ein paar Worte
  794.       dazu:   Wenn   Sie  einen  Baustein  unter  dem  Namen  "@@@@@@@@"
  795.       abspeichern,  wird dieser als integrierter Baustein behandelt. Das
  796.       bedeutet,  daß  Sie  diesen  Baustein  von jedem Programm aufrufen
  797.       können.  Das  ist  eigentlich  schon alles. Dies hat natürlich nur
  798.       einen  Sinn,  wenn  Sie nur solche Bausteine als integr. Bausteine
  799.       abspeichern,  die  man  auch in anderen SPS- Programmen gebrauchen
  800.       kann. Ich denke da an Taktgeneratoren oder Ähnliches.
  801.  
  802.  
  803.  
  804.       1.1.3 ABSPEICHERN
  805.  
  806.       1.1.3.1 Bausteine abspeichern
  807.  
  808.       In  diesem  Fenster  können  Sie  einen  Baustein (OB, PB, FB, SB)
  809.       abspeichern. Folgendes erscheint auf dem Bildschirm:
  810.  
  811.       ───────────────────────────────────────────────────────
  812.       Baustein             [xxxxx]
  813.       Bausteinname         [xxxxxxxx]
  814.       erstellt am          [xxxxxxxxxx]
  815.       geändert am          [xxxxxxxxxx]
  816.       Autor                [xxxxxxxxxxxxxxxxxxxxxxx]
  817.  
  818.       Beschreibung         [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
  819.  
  820.       Umleitung auf Datei  [N]
  821.       ───────────────────────────────────────────────────────
  822.  
  823.       Die "x"-Zeichen stehen für den jeweiligen Inhalt.
  824.  
  825.       Wenn  Sie  einen neuen Baustein abspeichern wollen, müssen Sie auf
  826.       jeden  Fall  den  Bausteintyp und den Bausteinnamen festlegen. Die
  827.       anderen  Angaben  sind  nicht  unbedingt  notwendig  aber  dennoch
  828.       sinnvoll. Z.B. werden diese Informationen beim AWL-Druck als 'AWL-
  829.       Kopf'  mit  ausgedruckt. Die Angabe einer Beschreibung findet auch
  830.       noch  Verwendung,  wenn Sie in einer Anweisungsliste einen anderen
  831.       Baustein  aufrufen.  Dann  wird  nämlich  diese  Beschreibung  als
  832.       Anweisungskommentar  in Ihre Anweisungsliste mit übernommen. Diese
  833.       Angabe  kann  ich  also  wärmstens  empfehlen.  Bei der Angabe des
  834.       Bausteintyps geben Sie OB, PB, FB, oder SB und danach einer Nummer
  835.       zwischen  0  und 255 ein. Z.B.: PB1, FB25, SB233.
  836.  
  837.  
  838.  
  839.                             ─── Seite 13 ───
  840.  
  841.       MENUEPUNKT DATEI                                         KAPITEL 1
  842. ──────────────────────────────────────────────────────────────────────────────
  843.  
  844.       Datenbausteine  können  hier  nicht abgespeichert werden. Wenn Sie
  845.       einen  DB mit Hilfe des Datenbausteineditors editieren, werden Sie
  846.       beim Verlassen des Editors gefragt, ob der DB abgespeichert werden
  847.       soll.
  848.       WICHTIG: Der Bausteinname darf keine Sonderzeichen oder
  849.       Leerzeichen beinhalten.
  850.  
  851.       1.1.3.2 Anweisungslisten als ASCII- Datei abspeichern
  852.  
  853.       Wenn  Sie  die Anweisungsliste als ASCII-Datei abspeichern wollen,
  854.       dann  geben  Sie  in der untersten Zeile 'J' ein. Nach Drücken der
  855.       [PGDN]-Taste  erscheint  ein  Fenster,  in dem Sie die gewünschten
  856.       Bausteine  markieren  können, die Sie exportieren wollen. Wenn Sie
  857.       keinen  Baustein  markieren,  gilt der hervorgehobene Baustein als
  858.       markiert.  Nach  Drücken  der [RETURN]-Taste werden die markierten
  859.       Bausteine   nacheinander   exportiert,   und  zwar  in  die  Datei
  860.       [BAUSTEINNAME.AWL].  Welche  Möglichkeiten Sie haben, um bestimmte
  861.       Bausteine zu markieren, ersehen Sie im Dialogfenster.
  862.  
  863.       Nachdem  der  Vorgang beendet ist, erscheint ein Infofenster. Wenn
  864.       Sie   gleich   anschließend  den  Menuepunkt  "INFOS/Datei  lesen"
  865.       aktivieren ist die entsprechende Datei bereits vorgewählt. Drücken
  866.       Sie  die  [RETURN]-Taste.  Jetzt  können  Sie  die exportierte AWL
  867.       ansehen oder ausdrucken.
  868.  
  869.       Die  exportierte  AWL  kann  vom  Simulator  nicht  wieder geladen
  870.       werden.  Diese  Möglichkeit  ist  ausschließlich dafür da, daß Sie
  871.       geschriebene    Anweisungslisten    mit   einer   Textverarbeitung
  872.       weiterverarbeiten können.
  873.  
  874.  
  875.  
  876.       1.1.4 Pfäde ändern 
  877.  
  878.       Im Simulator können Sie drei Pfadangaben machen:
  879.  
  880.       1. Pfad für normale Anweisungslisten
  881.       2. Pfad für integrierte Bausteine
  882.       3. Pfad für Anweisungsblöcke
  883.  
  884.  
  885.       Wenn  Sie im Editor einen Baustein aufrufen, wird im ersten und im
  886.       zweiten  Pfad  nach diesem Baustein gesucht, wobei im zweiten Pfad
  887.       nur  nach  Bausteinen  mit  dem  Namen "@@@@@@@@" gesucht wird. So
  888.       werden  nämlich integrierte Bausteine gekennzeichnet. Wenn Sie den
  889.       Menuepunkt "Bausteinhandling" anwählen werden diejenigen Bausteine
  890.       aufgelistet, die sich im ersten Pfad befinden.
  891.  
  892.       Die  zweite Pfadangabe ist für die integrierten Bausteine gedacht.
  893.       Wenn  Sie  einen  Baustein unter diesen Namen abspeichern, wird er
  894.       automatisch in diesem Verzeichnis abgelegt.
  895.  
  896.  
  897.  
  898.  
  899.                             ─── Seite 14 ───
  900.  
  901.       Menuepunkt DATEI                                         KAPITEL 1
  902. ──────────────────────────────────────────────────────────────────────────────
  903.  
  904.       Im  dritten  Pfad  werden Anweisungsblöcke abgespeichert. Das sind
  905.       die  Anweisungen,  die  Sie  im  Editor  als  Block  markieren und
  906.       abspeichern  können.  Mit  Hilfe  dieser  Blöcke  können  Sie z.B.
  907.       Anweisungen zu einer anderen Stelle des Programms kopieren.
  908.  
  909.       Hinweis:
  910.  
  911.       Wenn  Sie  in  einem  Feld  keinen Pfad angeben, d.h. das Feld ist
  912.       leer, wird der Pfad auf das aktuelle Verzeichnis eingestellt. Dies
  913.       können  Sie  leicht  kontrollieren, wenn Sie nach Verlassen dieses
  914.       Dialogfenster, das selbige nochmals aufrufen.
  915.  
  916.  
  917.  
  918.  
  919.       1.1.5 Neuer Baustein anlegen
  920.  
  921.       Wenn  Sie  einen neuen Baustein anlegen wollen, sollten Sie dieses
  922.       Dialogfenster  verwenden.  Es erscheinen 3 Eingabefelder, in denen
  923.       Sie  den  Bausteintyp,  die  Bausteinnummer  und den Bausteinnamen
  924.       eingeben müssen.
  925.  
  926.       Hinweis  zur  Bausteinprogrammierung:
  927.  
  928.       Wenn  Sie  z.B.  einen  OB1  mit  dem Namen "ANLAGE" abgespeichert
  929.       haben,  und  Sie  wollen  jetzt  einen  Programmbaustein (PB29) zu
  930.       diesem OB1 eröffnen, müssen Sie diesem Baustein den gleichen Namen
  931.       geben,  also  auch "ANLAGE". Im ersten Eingabefeld würden Sie dann
  932.       "PB" und im zweiten Eingabefeld "29" angeben.
  933.  
  934.  
  935.  
  936.       1.1.5.1 OB's, FB's, PB's oder SB's anlegen
  937.  
  938.       Wenn  Sie  im  ersten  Eingabefeld OB, FB, PB, oder SB, im zweiten
  939.       Eingabefeld  die  Bausteinnummer  und  im  dritten Eingabefeld den
  940.       Bausteinnamen  eingeben, springt das Programm nach Bestätigung mit
  941.       der [PGDN]-Taste automatisch in den Editor.
  942.  
  943.  
  944.  
  945.       1.1.5.2 DB's anlegen
  946.  
  947.       Wenn  Sie  als  Bausteintyp "DB" angeben springt das Programm nach
  948.       der   Bestätigung   mit   der   [PGDN]-Taste  automatisch  in  den
  949.       Datenbausteineditor.  Wenn Sie den Datenbaustein bearbeitet haben,
  950.       und  ihn wieder mit der [ESC]-Taste verlassen, werden Sie gefragt,
  951.       ob  Sie  den  DB  abspeichern  wollen. Wenn das der Fall ist, dann
  952.       drücken  Sie die [RETURN]-Taste. Wenn Sie den DB nicht abspeichern
  953.       wollen, dann drücken Sie die [ESC]-Taste.
  954.  
  955.  
  956.  
  957.  
  958.  
  959.                             ─── Seite 15 ───
  960.  
  961.       Menuepunkt DATEI                                         KAPITEL 1
  962. ──────────────────────────────────────────────────────────────────────────────
  963.  
  964.  
  965.       1.1.6 Programm Ende
  966.  
  967.       Zu  diesem  Menuepunkt  ist nicht viel zu sagen. Wenn Sie den SPS-
  968.       Simulator verlassen wollen, dann aktivieren Sie diesen Menuepunkt.
  969.       Falls   noch   ein  Programm  im  Editor  steht,  das  noch  nicht
  970.       abgespeichert worden ist, folgt noch eine Sicherheitsabfrage.
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.                             ─── Seite 16 ───
  1020.  
  1021.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1022. ──────────────────────────────────────────────────────────────────────────────
  1023.  
  1024.  
  1025.       1.2. MENUEPUNKT EINGEBEN
  1026.  
  1027.       1.2.1 Tastenbelegung des Editors.
  1028.  
  1029.       Taste                   Befehl
  1030.       ────────────────────────────────────────────────────
  1031.       Cursorsteuerung
  1032.       ────────────────────────
  1033.       [Pfeil nach rechts]     Cursorbewegungen nach rechts.   
  1034.       [Pfeil nach links]      Cursorbewegungen nach links.    
  1035.       [STRG] /                                                
  1036.       [Pfeil nach rechts]     Cursorsprünge wortweise nach rechts.
  1037.       [STRG] /                                                
  1038.       [Pfeil nach links]      Cursorsprünge wortweise nach links.
  1039.       [Pfeil nach oben]       Cursorbewegungen nach oben.     
  1040.       [Pfeil nach unten]      Cursorbewegungen nach unten.    
  1041.       [PGDN]                  Vorblättern.                    
  1042.       [PGUP]                  Zurückblättern.                 
  1043.       [POS1]                  Der Cursor springt in die erste 
  1044.                               Spalte.                         
  1045.       [ENDE]                  Der Cursor springt in die       
  1046.                               Kommentarspalte.                
  1047.       [STRG/Q] oder [STRG/+]  Zum nächsten Netzwerk springen
  1048.       [STRG/A] oder [STRG/-]  Zum vorhergehenden Netzwerk springen
  1049.  
  1050.                         
  1051.       Korrekturen
  1052.       ────────────────────────
  1053.       [EINFG]                 Einfügemodus EIN/AUS
  1054.       [ENTF]                  Entfernt ein Zeichen.
  1055.       [ALT/D]                 Marke/Anweisung oder Bemerkung
  1056.                               löschen
  1057.       [ALT/U]                 Undo
  1058.       [TAB]                   Zur nächsten Tabulatorposition  
  1059.       [STRG/N]                Eine ganze Zeile wird eingefügt.
  1060.       [STRG/Y]                Eine ganze Zeile wird gelöscht. 
  1061.       [ALT/S]                 Eine bestimmte Textstelle suchen
  1062.       [ALT/E]                 Eine bestimmte Textstelle suchen
  1063.                               und ändern                      
  1064.       Blockoperationen                                        
  1065.       ────────────────────────
  1066.       [STRG/K][B]             Blockanfang markieren           
  1067.       [STRG/K][K]             Blockende markieren             
  1068.       [STRG/K][C] oder        Abgespeicherten Block laden und
  1069.       [STRG/K][R]             kopieren
  1070.  
  1071.       Sonderfunktionen
  1072.       ────────────────────────
  1073.       [STRG/RETURN]           Baustein wechseln                  
  1074.       [ALT/Z]                 Zuweisungsliste erstellen
  1075.       [F4]                    AWL-Zeile duplizieren
  1076.       [F5]                    Eine AWL-Zeile kurzzeitig sichern
  1077.       [F7]                    Information über Analogeingaben anzeigen
  1078.  
  1079.                             ─── Seite 17 ───
  1080.  
  1081.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1082. ──────────────────────────────────────────────────────────────────────────────
  1083.  
  1084.       [F6]                    Die mit [F5] gesicherter
  1085.                               AWL-Zeile wieder zurückschreiben
  1086.       [F8]                    Eine AWL-Zeile als Kommentar kennzeichnen
  1087.                               oder Kommentarstatus aufheben
  1088.       [F9]                    Netzwerk abgrenzen
  1089.       [F10]                   Bezeichnerliste erstellen
  1090.                               (parametrierter FB)
  1091.          
  1092.       Sonstige Funktionen             
  1093.       ────────────────────────
  1094.       [F1]                    Hilfe                           
  1095.       [F2]                    Baustein abspeichern.
  1096.       [F3]                    Anderes SPS-Programm laden
  1097.                               (Bausteinhandling)
  1098.       [ALT/K]                 Kommentarinfo
  1099.       [ALT/H]                 Zeit.-oder Zählermaske holen    
  1100.       [ALT/P]                 Anweisungsliste drucken         
  1101.       [ESC]                   Editor verlassen                
  1102.  
  1103.       Hinweis
  1104.  
  1105.       ■ Die  UNDO-Funktion  (ALT/U)  kann nur dann eine AWL-Zeile wieder
  1106.         herstellen, wenn diese noch nicht bestätigt wurde.
  1107.  
  1108.  
  1109.  
  1110.       1.2.2 Allgemeine Eingabehinweise
  1111.  
  1112.       Sie  brauchen  bei  der  Eingabe  der  Anweisungen  auf  keinerlei
  1113.       Formation  Rücksicht nehmen. D.h. Sie können die AWL-Zeile einfach
  1114.       eintippen,  ohne Leerzeichen. Wenn die Operation bekannt ist, wird
  1115.       die  Zeile  automatisch  angeordnet (formatiert). Wenn Sie bei der
  1116.       Eingabe  einen  Fehler  gemacht  haben,  erscheint ein Fenster mit
  1117.       einer  entsprechenden  Meldung.  Nachdem Sie die Fehlermeldung mit
  1118.       einer  beliebigen  Taste  zur  Kenntnis  genommen  haben, wird die
  1119.       eingegebene  AWL-  Zeile  als Kommentar gekennzeichnet. Sie können
  1120.       jetzt  den  Fehler  korrigieren. Drücken Sie nun die [F8]-Taste um
  1121.       den  Kommentarstatus  wieder zu entfernen. Die Anweisung wird nach
  1122.       Drücken  der  [RETURN]-Taste  wieder  kontrolliert,  und, wenn sie
  1123.       richtig ist, wird die Anweisung übernommen.
  1124.       Nochmals:
  1125.       Wenn Sie einen Fehler bei der Eingabe machen, wird die eingegebene
  1126.       AWL- Zeile als Kommentar gekennzeichnet. Wenn Sie den Fehler nicht
  1127.       beheben,  wird die AWL-Zeile als Kommentar behandelt, und wird bei
  1128.       der  Simulation nicht berücksichtigt. Kommentarzeilen werden durch
  1129.       einen  inversen  Doppelpunkt  gekennzeichnet.  Bei  EGA/VGA-Karten
  1130.       haben Kommentare sogar eine eigene Farbe.
  1131.  
  1132.       Der  Editor stellt Ihnen viele hilfreiche Werkzeuge zur Verfügung,
  1133.       die  Sie  unbedingt  einmal ausprobieren müssen. Sehr oft kann man
  1134.       die  [F4]-Taste  gebrauchen.  Wenn diese Taste gedrückt wird, wird
  1135.       die vorhergehende AWL-Zeile dupliziert.
  1136.  
  1137.  
  1138.  
  1139.                             ─── Seite 18 ───
  1140.  
  1141.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1142. ──────────────────────────────────────────────────────────────────────────────
  1143.  
  1144.       Wenn    Sie    z.B.    mehrere    UND-Verknüpfung   hintereinander
  1145.       programmieren,  sind  Sie  um einiges schneller, wenn Sie die AWL-
  1146.       Zeile  zuerst  duplizieren  und  dann die Operanden oder Parameter
  1147.       verändern.  Am  Besten  Sie  sehen sich die Tastenbelegung an, und
  1148.       probieren einfach mal alle Tastenbelegungen aus.
  1149.  
  1150.       Als  letzte  Anweisung  muß  immer  "BE" (Bausteinende) eingegeben
  1151.       werden.  Das  Programm springt dann automatisch in die Menueleiste
  1152.       zurück.
  1153.  
  1154.  
  1155.  
  1156.       1.2.3 Eingeben von Kommentaren
  1157.  
  1158.       Sie können zwei Arten von Kommentaren erzeugen:
  1159.  
  1160.       1.  Kommentare  über  die ganze Zeile.
  1161.  
  1162.       Drücken  Sie einmal die [F8]- Taste. Der Doppelpunkt vor der Zeile
  1163.       wird  nun  invers dargestellt. D.h. die ganze Zeile wird jetzt als
  1164.       Kommentar  betrachtet.  Wenn  Sie nochmals die [F8]-Taste drücken,
  1165.       wird  die  Zeile  wieder  als  Operation  betrachtet.  Ganzzeilige
  1166.       Kommentare sollten Sie nur vor und nach  einem Netzwerk plazieren,
  1167.       denn  sonst  kann  es  passieren, daß der Funktionsplan nicht mehr
  1168.       richtig  aufgebaut  werden kann. Ganzzeilige Kommentare sind dafür
  1169.       gedacht,  um  das  geschriebene Programm in der Anweisungsliste zu
  1170.       beschreiben.  Wenn  Sie  dafür  die  ersten  paar Zeilen benutzen,
  1171.       wissen  Sie  sofort, wenn Sie im Menuepunkt "Bausteinhandling" die
  1172.       Vorschau aktivieren, um welches Programm es sich handelt.
  1173.  
  1174.       Beim  Ausdruck  einer Anweisungsliste mit ganzzeiligen Kommentaren
  1175.       wird  anstatt  des  den  inversen  Doppelpunkts  das  Zeichen  '#'
  1176.       gedruckt.
  1177.  
  1178.  
  1179.       2.  Kurzkommentare.
  1180.  
  1181.       Diese  Kommentare  stehen in der gleichen Zeile wie die Operation.
  1182.       Kurzkommentare  sollten  dafür benutzt werden, um die geschriebene
  1183.       Operation  zu  kommentieren.  Wollen  Sie  einen solchen Kommentar
  1184.       eingeben,  dann  drücken Sie die [ENDE]-Taste. Der Cursor wird nun
  1185.       auf  die richtige Position gesetzt. Nun können Sie einen Kommentar
  1186.       eingeben.  Mit  Hilfe  der Zuweisungsliste können diese Kommentare
  1187.       auch  automatisch  erzeugt  werden.  Lesen  Sie dazu den Abschnitt
  1188.       "Automatische Kommentarerzeugung mit Hilfe der Zuweisungsliste".
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.                             ─── Seite 19 ───
  1200.  
  1201.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1202. ─────────────────────────────────────────────────────────────────────────────
  1203.  
  1204.       1.2.4 Arbeiten mit Blöcken
  1205.  
  1206.       Mit  Hilfe  von  Blöcken  können  Sie  Teile  von Anweisungslisten
  1207.       schnell  und  einfach  kopieren,  und  auch ganze Anweisungslisten
  1208.       unter  einem  bestimmten Namen als Block abspeichern. Diese Blöcke
  1209.       können  dann von jedem anderen Programm wieder geladen werden. Sie
  1210.       könnten  sich AWL-Zeilen, die Sie oft benötigen, unter einem Block
  1211.       abspeichern  und  dann  bei  Bedarf  einfach  in  die aktuelle AWL
  1212.       einfügen.
  1213.  
  1214.  
  1215.       1.2.4.1 Wie erstelle ich einen Block ?
  1216.  
  1217.       Markieren   Sie   den   Blockanfang   mit   der  Tastenkombination
  1218.       [STRG/K]/[B].  In Worten: Drücken Sie gleichzeitig die [STRG]- und
  1219.       [K]-  Taste.  Jetzt  beide  Tasten  wieder loslassen, und dann die
  1220.       [B]-Taste   drücken.   Im  oberen  Bereich  des  Bildschirms  wird
  1221.       angezeigt, daß Sie einen Blockanfang markiert haben. Bestimmen Sie
  1222.       nun  mit  dem  Cursor  die  Blockhöhe. Anschließend können Sie mit
  1223.       Hilfe  der  Tastenkombination  [STRG/K]/[K] den Block abschließen.
  1224.       Wieder in Worten ausgedrückt: Drücken Sie gleichzeitig die [STRG]-
  1225.       und  [K]- Taste. Jetzt beide Tasten wieder loslassen, und dann die
  1226.       [K]-Taste  drücken.  Wenn  Sie die richtigen Tasten gedrückt haben
  1227.       erscheint  ein  Fenster,  in  dem  Sie  einen  Namen für den Block
  1228.       eingeben  müssen.  Wenn  Sie noch keinen Block abgespeichert haben
  1229.       erscheint  im  Eingabefeld  eine Vorgabe, nämlich "TEMP". Wenn Sie
  1230.       einen  Block  nur  kurzzeitig  brauchen,  sollten Sie immer diesen
  1231.       Namen  angeben,  da  sich sonst zu viele Blöcke auf der Festplatte
  1232.       ansammeln.   Nachdem   Sie  die  Eingabe  mit  der  [RETURN]-Taste
  1233.       bestätigt  haben,  wird  der Block in das eingestellte Verzeichnis
  1234.       für Blöcke abgespeichert.
  1235.  
  1236.  
  1237.  
  1238.       1.2.4.2 Wie hole ich den erstellten Block wieder zurück ?
  1239.  
  1240.       Einen  abgespeicherten  Block können Sie mit der Tastenkombination
  1241.       [STRG/K]/[C]  oder  [STRG/K]/[R]  zurückholen.  Nach  einer dieser
  1242.       Tastenkombination   erscheint   eine   Auswahlbox,   in  dem  alle
  1243.       abgespeicherten  Blöcke  aufgelistet  werden.  Die Auswahlbox kann
  1244.       maximal 200 Blöcke aufnehmen. Wollen Sie nun z.B. dem Block "TEMP"
  1245.       laden,  können  Sie einfach [T] drücken (den ersten Buchstaben des
  1246.       Blockes).  Die  Auswahlbox  sucht  jetzt  nach einem Block mit dem
  1247.       Anfangsbuchstaben  "T".  Ist  nur  ein Block mit diesem Buchstaben
  1248.       vorhanden,  wird  er  sofort gefunden und markiert. Wenn Sie jetzt
  1249.       die  [RETURN]-Taste  drücken, wird  der  Block geladen und bei der
  1250.       aktuellen Cursor-Position in die AWL eingefügt.
  1251.  
  1252.       Hinweis:
  1253.  
  1254.       Wollen  Sie  einen Block von der Festplatte wieder löschen, müssen
  1255.       Sie das von der MS DOS-Ebene aus tun.
  1256.  
  1257.  
  1258.  
  1259.                             ─── Seite 20 ───
  1260.  
  1261.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1262. ──────────────────────────────────────────────────────────────────────────────
  1263.  
  1264.       1.2.5 Erstellung einer Zuweisungsliste
  1265.  
  1266.       Wenn  Sie  schon  mal mit einem Simulator gearbeitet haben, kennen
  1267.       Sie   sicherlich   folgendes   Problem:  Sie  haben  ein  Programm
  1268.       vollständig eingegeben und wollen es jetzt simulieren. Nachdem Sie
  1269.       einige  Eingänge  umgeschaltet  haben,  blinkt ein Ausgang, andere
  1270.       Ausgänge  führen  Signalzustand  '1',  andere  wiederum nicht. Sie
  1271.       wissen  auf  den  ersten  Blick  (und  auch auf den zweiten Blick)
  1272.       nicht, ob Ihr Programm das tun, was es tun soll.
  1273.  
  1274.       Sie  müssen  zuerst  nachschauen  welche  Bedeutung  die einzelnen
  1275.       Operanden  haben.  Sie wenden also Ihren Blick zur Zuweisungsliste
  1276.       und  vergleichen  dann die Operanden. Jetzt habe ich mir überlegt,
  1277.       wenn  man eine Zuweisungsliste erstellen könnte, in der gleich die
  1278.       Zustände  der Operanden angezeigt würden, könnte man viel Zeit bei
  1279.       der  Überprüfung  des  SPS-Programms einsparen. Genau das kann der
  1280.       Simulator:   Der  Simulator  bietet  Ihnen  die  Möglichkeit  eine
  1281.       Zuweisungsliste  mit  in  die  AWL-Simulation  zu integrieren. Die
  1282.       Zuweisungsliste  wird  am  Anfang  von  einem  beliebigen Baustein
  1283.       erstellt - also mit Hilfe des Editors. Die Zuweisungsliste ist auf
  1284.       300  Eintragungen  begrenzt. Die Zuweisungsliste muß folgende Form
  1285.       haben:
  1286.  
  1287.         .      .          .
  1288.         .      .          .
  1289.       0005     :-E0.0     :ANLAGE AUS (OEFFNER)
  1290.       0006     :-E0.1     :ANLAGE EIN
  1291.       0007     :-E0.2     :MOTOR TIPPEN
  1292.       0008     :-E1.1     :PLATZ 1 IST FERTIG
  1293.       0009     :-E1.2     :PLATZ 2 IST FERTIG
  1294.       0010     :-E1.3     :PLATZ 3 IST FERTIG
  1295.       0011     :-E1.4     :ENDMONTAGEPLATZ FREI
  1296.       0012     :-A4.1     :STEUERUNG IST EIN
  1297.       0013     :-A5.0     :ANZEIGE PLATZ 1 FERTIGMELDUNG
  1298.       0014     :-A5.1     :ANZEIGE PLATZ 2 FERTIGMELDUNG
  1299.         .      .          .
  1300.         .      .          .
  1301.   
  1302.  
  1303.       Drücken  Sie  zuerst  die  [F8]-Taste,  damit  die  AWL-Zeile  als
  1304.       Kommentar   betrachtet   wird.   Als   erstes  Zeichen  steht  ein
  1305.       Minuszeichen,  danach  steht  der  Operand.  Sie dürfen hier keine
  1306.       Leerzeichen  eingeben. Drücken Sie nun die [TAB]-Taste. Der Cursor
  1307.       wird  dadurch auf die nächste Tabulatorposition gesetzt. Geben Sie
  1308.       nun  einen  Doppelpunkt und anschließend einen passenden Kommentar
  1309.       ein.  Der  Kommentar  sollte  nicht länger als 30 Zeichen sein, da
  1310.       dieser   Kommentar   in   der  Anweisungsliste  als  Kurzkommentar
  1311.       übernommen   werden   kann.  Damit  die  Abstände  und  somit  die
  1312.       Zuweisungsliste  bei  allen  SPS- Programmen gleich aussieht, habe
  1313.       ich  die  Erstellung  der Zuweisungsliste "automatisiert". Drücken
  1314.       Sie   die  gleichzeitig  die  Tasten  [ALT/Z].  Es  erscheint  ein
  1315.       Abfragefenster,  in  dem  Sie den Operanden eingeben müssen. Geben
  1316.       Sie  z.B.  "E3.3" ein.
  1317.  
  1318.  
  1319.                             ─── Seite 21 ───
  1320.  
  1321.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1322. ──────────────────────────────────────────────────────────────────────────────
  1323.  
  1324.       Nach  der Bestätigung mit der [RETURN]-Taste erscheint ein zweites
  1325.       Fenster,  in  dem  Sie  einen passenden Kommentar eingeben müssen.
  1326.       Nach  Bestätigung folgt nun ein Eintrag in die Zuweisungsliste mit
  1327.       sinnvollen Abständen zwischen Operand und Kommentar. Wenn Sie alle
  1328.       Zuweisungen  eingebeben  haben,  beenden  Sie  den Vorgang mit der
  1329.       [ESC]-Taste.  Der  Eintrag  in  die  Zuweisungsliste erfolgt immer
  1330.       dort,  wo  der  Cursor steht. Wollen Sie einen bestehenden Eintrag
  1331.       ändern,  können  Sie  demnach  dort den Cursor plazieren, und dann
  1332.       wieder  die  angegebene  Tastenkombination  drücken.
  1333.       Das  Programm  erkennt,  daß  an  dieser  Stelle schon ein Eintrag
  1334.       steht,  und  fragt  Sie,  ob Sie den Eintrag überschreiben wollen,
  1335.       oder  ob Sie einen zusätzlichen Eintrag einfügen wollen. Haben Sie
  1336.       die  Zuweisungsliste  erstellt,  können  Sie  den  Editor  mit der
  1337.       [ESC]-Taste  verlassen  und  dann  mit  der  [F9]-Taste  die  AWL-
  1338.       Simulation  aktivieren.  Jetzt  können  Sie in der Zuweisungsliste
  1339.       sehen,  welche  Operanden HIGH oder LOW sind. Es können nur binäre
  1340.       Zustände in der Zuweisungsliste angezeigt werden. Eine Anzeige von
  1341.       MB's  oder  DW's  ist  nicht  möglich.  Da  müßten  Sie  dann  die
  1342.       allgemeine  Statusanzeige  benützen. Sie können also als Operanden
  1343.       E,A,M,Z oder T angeben.
  1344.  
  1345.  
  1346.  
  1347.       1.2.6 Automatische Kommentarerzeugung mit Hilfe der
  1348.             Zuweisungsliste.
  1349.  
  1350.       Haben  Sie  eine  Zuweisungsliste  erstellt,  wird  sie  auch dazu
  1351.       verwendet  um  die  geschriebene  Anweisungsliste zu kommentieren.
  1352.       Wenn Sie z.B. ein Operand in einer Operation verwenden, der in der
  1353.       Zuweisungsliste   steht,  wird  der  Kommentar,  den  Sie  in  der
  1354.       Zuweisungsliste  angegeben  haben,  als  Kurzkommentar  in die AWL
  1355.       übernommen. Vorausgesetzung ist aber, daß dort noch kein Kommentar
  1356.       steht.  Besser  gesagt,  es  wird  überprüft,  ob  in  der  ersten
  1357.       Kommentarspalte   (das   ist   die  Cursorposition,  die  mit  der
  1358.       [ENDE]-Taste  erreicht  wird)  ein  Leerzeichen steht. Ist das der
  1359.       Fall  wird  der  Zuweisungs-  Kommentar eingefügt. Auf diese Weise
  1360.       können  Sie  auch  einen  eigenen Kurzkommentar schreiben oder den
  1361.       vorhandenen     ergänzen.    Wenn    Sie    möchten,    daß    der
  1362.       Zuweisungskommentar  einen vorhandenen Kurzkommentar überschreibt,
  1363.       können  Sie  die  Tasten  [ALT/Q]  drücken. Mit den Tasten [ALZ/K]
  1364.       können  Sie  nachsehen,  wieviele  Zuweisungskommentare  Sie schon
  1365.       eingegeben haben.
  1366.  
  1367.       Wichtiger Hinweis:
  1368.  
  1369.       Wenn Sie ein neues Programm laden, in dem Sie eine Zuweisungsliste
  1370.       eingegeben   haben,   müssen   Sie   den   Baustein,  in  dem  die
  1371.       Zuweisungsliste  steht,  einmal  in  den  Editor  holen, damit die
  1372.       Kommentare in der Zuweisungsliste im RAM-Speicher abgelegt werden.
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.                             ─── Seite 22 ───
  1380.  
  1381.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1382. ──────────────────────────────────────────────────────────────────────────────
  1383.  
  1384.       1.2.7 Erstellung einer BEZeichnerliste
  1385.  
  1386.       Mit   diesem   Simulator   können   Sie  auch  parametrierte  FB's
  1387.       simulieren.   Wenn   Sie  einen  parametrierten  FB  programmieren
  1388.       möchten,  müssen  Sie  zuerst  die  Parameter  festlegen, die beim
  1389.       Aufruf  übergeben  werden.  Hier  zunächst  ein  Beispiel, wie ein
  1390.       parametrierter FB aussehen könnte:
  1391.  
  1392.       0001 NAME:TAKTGENERATOR
  1393.       0002 BEZ :STAR              E   BI
  1394.       0003 BEZ :T1                T
  1395.       0004 BEZ :T2                T
  1396.       0005 BEZ :TIME              D   KT
  1397.       0006 BEZ :AUS               A   BI
  1398.       0007     :U    =   STAR
  1399.       0008     :UN   =   T2
  1400.       0009     :LW   =   TIME
  1401.       0010     :SE   =   T1
  1402.       0011     :U    =   T1
  1403.       0012     :LW   =   TIME
  1404.       0013     :SE   =   T2
  1405.       0014     :U    =   T1
  1406.       0015     :=    =   AUS
  1407.       0015     :BE
  1408.  
  1409.       Ein  parametrierter  FB beginnt immer mit dem Label "NAME", danach
  1410.       kommt  eine  Beschreibung des FB's. Jetzt folgt die Parameterliste
  1411.       oder Bezeichnerliste. Eine Parameterdefinition muß immer das Label
  1412.       "BEZ" haben. Um diese Definitionen etwas zu vereinfachen, habe ich
  1413.       diesen  Vorgang  "automatisiert".  Probieren Sie mal die obige AWL
  1414.       abzutippen:  Drücken Sie die [F10]-Taste. Als Erstes erscheint ein
  1415.       Fenster,  in  dem  Sie  eine Beschreibung des FB's angeben müssen.
  1416.       Geben   Sie  hier  z.B.  "TAKTGENERATOR"  ein.  Danach  folgt  die
  1417.       eigentliche   BEZ-Liste:   Im  nächsten  Fenster  müssen  Sie  den
  1418.       Formaloperanden eingeben, wobei dieser maximal 4 Zeichen lang sein
  1419.       darf.  Geben  Sie  hier  z.B.  "STAR"  ein. Dies sollte eigentlich
  1420.       "START"  heißen,  da  aber  nur  4  Zeichen erlaubt sind, heißt es
  1421.       "STAR".  Nach  der  Bestätigung mit der [RETURN]-Taste, müssen Sie
  1422.       den  Typ  des  Operanden eingeben. Geben Sie hier z.B. "E" ein. Im
  1423.       darauffolgenden  Fenster  muß  die  Parameterart angegeben werden,
  1424.       hier  können Sie z.B. "BI" eingeben. Jetzt haben Sie alle Eingaben
  1425.       für  einen  BEZ-Eintrag gemacht. Wenn Sie die Eingaben bestätigen,
  1426.       wird  der  BEZ-Eintrag  in  die  AWL  eingefügt. Danach werden Sie
  1427.       gefragt,  ob  Sie nochmals einen Eintrag einfügen wollen. Wenn Sie
  1428.       dies bejahen, geht das ganze Spiel nochmals von vorne los.
  1429.  
  1430.       Auf  diese  Weise  können  Sie  auch bestehende BEZ-Listen ändern.
  1431.       Bewegen  Sie  einfach  den  Cursor  auf die Stelle, die Sie ändern
  1432.       wollen,  und  drücken  Sie die [F10]-Taste. Wenn Sie alle Eingaben
  1433.       gemacht  haben, merkt das Programm, daß an dieser Stelle schon ein
  1434.       Eintrag   steht,   und  es  frägt  nach,  ob  Sie  diesen  Eintrag
  1435.       überschreiben  wollen,  oder ob ein neuer Eintrag an dieser Stelle
  1436.       eingefügt werden soll.
  1437.       Ausführlichere  Informationen über parametrierbare FB's finden Sie
  1438.       im Kapitel 4.
  1439.                             ─── Seite 23 ───
  1440.  
  1441.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1442. ──────────────────────────────────────────────────────────────────────────────
  1443.  
  1444.       1.2.8 Die Suchen-Funktion
  1445.  
  1446.       Wenn  Sie  ein größeres Programm geschrieben haben, und Sie wollen
  1447.       nach  einer  bestimmten  Operation suchen , kann das manchmal ganz
  1448.       schön  in  Arbeit ausarten. Der Simulator nimmt Ihnen diese Arbeit
  1449.       ab.  Drücken  Sie im Editor die Tastenkombination [ALT/S]. Es wird
  1450.       nun  ein  Fenster  geöffnet, in dem  Sie  eine  Operation eingeben
  1451.       können.
  1452.       Nachdem  Sie  die  Operation  eingegeben  haben,  können  Sie noch
  1453.       festlegen,  ob  von  Anfang an, oder ab der Cursorposition gesucht
  1454.       werden  soll. Geben Sie im entsprechenden Eingabefeld entweder 'J'
  1455.       oder 'N' an.
  1456.       Im  letzten  Eingabefeld  können  Sie  festlegen,  ob  Sie  nur im
  1457.       aktuellen  Bautsein  suchen  möchten,  oder  in  mehreren (globale
  1458.       Suche).  Wenn  Sie  die  globale  Suche  aktivieren ('J' angeben),
  1459.       erscheint  ein  Dialogfenster, indem Sie die gewünschten Bausteine
  1460.       markieren  können.  Wenn  Sie  in allen Bausteinen suchen möchten
  1461.       drücken  Sie [ALT/A]. Dadurch werden alle Bausteine markiert. Wenn
  1462.       Sie nun die [RETURN]-Taste drücken, wird die Suche gestartet.
  1463.  
  1464.       Wenn  Sie  nach  einem Label oder nach einer Marke suchen möchten,
  1465.       müssen Sie den Doppelpunkt nach der Marke ebenfalls eingeben. Wenn
  1466.       Sie z.B. nach der Marke "M1" suchen müssen Sie folgendes eingeben:
  1467.       "M1  :".  Beachten  Sie dabei, daß die Leerzeichen auch eingegeben
  1468.       werden müssen.
  1469.  
  1470.       Suchen nach Netzwerken:
  1471.  
  1472.       Wenn  Sie  nach  Netzwerke  suchen  wollen,  geben  Sie  folgenden
  1473.       Suchstring  ein:  "NWXXX". (Ohne Eingabe von Leerzeichen). Für die
  1474.       letzten  drei  Buchstaben  ("X")  steht  die Netzwerknummer. Dabei
  1475.       müssen  Sie beachten, daß diese immer dreistellig angegeben werden
  1476.       muß. Wenn Sie also Netzwerk 9 suchen, müssen Sie "NW009" eingeben.
  1477.  
  1478.  
  1479.       Hinweis:
  1480.  
  1481.       Die  Suchfunktion  funktioniert nur bei Operationen und Netzwerke,
  1482.       nicht bei Kommentaren.
  1483.  
  1484.  
  1485.  
  1486.       1.2.9 Die Suchen-und-Ersetzen-Funktion
  1487.  
  1488.       Mit  dieser  Funktion  haben  Sie  die Möglichkeit, eine beliebige
  1489.       Operation   zu  suchen  und  anschließend  zu  ändern.  Durch  die
  1490.       Abänderung  der  AWL  kann es aber zu Fehler kommen. Wenn Sie z.B.
  1491.       als  Suchtext  '0.0'  und als neuer Text '222.2' eingeben kommt es
  1492.       bei   der   Änderung   'E  0.0'  zu  'E  222.2'  zu  einem  Fehler
  1493.       (Bereichsüberschreitung).   Deshalb   wird   vor   jeder  Änderung
  1494.       überprüft,  ob  diese  überhaupt  zulässig  ist.  Wird  ein Fehler
  1495.       entdeckt,  wird  diese  Zeile auf keinen Fall geändert.
  1496.  
  1497.  
  1498.  
  1499.                             ─── Seite 24 ───
  1500.  
  1501.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1502. ──────────────────────────────────────────────────────────────────────────────
  1503.  
  1504.       Sie  können dann entscheiden ob weitergemacht, oder ob abgebrochen
  1505.       werden soll. Durch die "Suchen und Ersetzen"- Funktion können also
  1506.       keine  syntaktische  Fehler  entstehen.  Nachdem Sie die Operation
  1507.       eingegeben  haben,  können  Sie auch hier festlegen, ob von Anfang
  1508.       an,  oder  ob  ab der Cursorposition gesucht werden soll. Außerdem
  1509.       können  Sie  festlegen, ob vor jeder Änderung zurückgefragt werden
  1510.       soll.  Geben Sie einfach bei den entsprechenden Eingabefeldern ein
  1511.       'J' oder ein 'N' ein. Auch hier haben Sie die Möglichkeit, wie bei
  1512.       der  Suchen-Funktion,  nur  den aktuellen oder mehrere Baustein zu
  1513.       bearbeiten.  Wenn  Sie  im  letzten  Eingabefeld die globale Suche
  1514.       aktivieren   erscheint,   wie   bei   der  "Suchen"-Funktion,  ein
  1515.       Dialogfenster,  indem  Sie  die  gewünschten  Bausteine  markieren
  1516.       können.
  1517.  
  1518.       Hinweis:
  1519.       Die   Suchfunktion   sucht   nur   nach  Operationen,  nicht  nach
  1520.       Kommentaren.  Wenn  Sie nach Marken oder Labels suchen, müssen Sie
  1521.       einiges   beachten.  Lesen  dazu  den  Hinweis  bei  "Die  Suchen-
  1522.       Funktion".
  1523.  
  1524.  
  1525.  
  1526.       1.2.10 Netzwerke
  1527.  
  1528.       Mit  der  [F9]-Taste ist es im Editor möglich, die AWL in einzelne
  1529.       Netzwerke  zu  unterteilen.  Die  einzelnen  Netzwerke können aber
  1530.       nicht  getrennt  editiert  werden. Sie sollen nur helfen, einzelne
  1531.       Funktionen   in   der  AWL  optisch  zu  trennen.  Alternativ  zur
  1532.       [F9]-Taste  können Sie auch im Editor drei "***"-Zeichen eintippen
  1533.       und  anschließend die [RETURN]-Taste drücken. Es wird nun der Text
  1534.       "NETZWERK  ???" in die AWL eingefügt. Die drei Fragezeichen stehen
  1535.       für  die  Netzwerknummer,  die erst eingestellt wird, wenn Sie den
  1536.       Editor wieder verlassen.
  1537.  
  1538.       Wenn  Ihr  System  eine  EGA/-oder  VGA- Karte besitzt, werden die
  1539.       Netzwerke  in einer besonderen Farbe dargestellt. Wenn Sie mehrere
  1540.       Netzwerke   in  Ihrem  SPS-Programm  haben,  können  Sie  mit  den
  1541.       Tastenkombinationen   [STRG/Q]  und  [Strg/A]  zum  nächsten  bzw.
  1542.       vorhergehenden Netzwerk springen.
  1543.  
  1544.       Zu  jedem  Netzwerk  können  Sie einen Netzwerkkommentar vergeben.
  1545.       Bewegen  Sie  den Cursor hinter die Netzwerknummer oder hinter die
  1546.       drei  Fragezeichen,  und geben Sie den Kommentar ein. Wenn Sie nun
  1547.       die  [Return]-Taste  betätigen, wird der Kommentar in die richtige
  1548.       Spalte  verschoben.  Wenn  Sie in der Datei "SPS.CFG" den Schalter
  1549.       (ON/OFF)  'Ganzzeilige  Kommentare erlauben' einschalten, wird der
  1550.       Netzwerk- Text auch im FUP dargestellt. Im FUP können auch mehrere
  1551.       Netzwerke zur gleichen Zeit auf dem Bildschirm dargestellt werden,
  1552.       vorausgesetzt sie sind klein genug.
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.                             ─── Seite 25 ───
  1560.  
  1561.       Menuepunkt EINGEBEN                                      KAPITEL 1
  1562. ──────────────────────────────────────────────────────────────────────────────
  1563.  
  1564.       1.2.11 Fehlermeldungen bei der AWL-Eingabe
  1565.  
  1566.       Wenn Sie bei der Eingabe einen Fehler machen, z.B. eine unbekannte
  1567.       Operation,   oder   falsche  Parameter  eingeben,  erscheint  eine
  1568.       entsprechende  Fehlermeldung.  Nachdem  Sie  die Fehlermeldung zur
  1569.       Kenntnis  genommen haben, und eine beliebige Taste gedrückt haben,
  1570.       wird die eingegebene AWL-Zeile als Kommentar gekennzeichnet. Diese
  1571.       Kennzeichnung   erkennen   Sie  zum  einen  durch  einen  inversen
  1572.       Doppelpunkt und zum anderen an der Kommentarfarbe. Wenn Ihr System
  1573.       mit  einer  EGA/- oder VGA- Karte ausgestattet ist, werden nämlich
  1574.       Kommentare  mit einer besonderen Farbe dargestellt. Sie können nun
  1575.       die  fehlerhafte  AWL-Zeile  korrigieren.  Danach  drücken Sie die
  1576.       [F8]-Taste  um  den  Kommentarstatus  wieder aufzuheben. Wenn Ihre
  1577.       Eingabe jetzt korrekt ist, wird die Anweisung formatiert (d.h. Sie
  1578.       wird auf dem Bildschirm ausgerichtet).
  1579.  
  1580.       Ich  muß  nochmals  betonen:  Wenn  Sie eine fehlerhafte AWL-Zeile
  1581.       nicht   korrigieren   wird   diese  in  der  AWL-Simulation  nicht
  1582.       bearbeitet, da das Proramm davon ausgeht, daß die betreffende AWL-
  1583.       Zeile ein Kommentar ist.
  1584.  
  1585.       Auf  die  Auflistung  der  möglichen Fehlermeldungen will ich hier
  1586.       verzichten,   da   Sie   alle  selbsterklärend  sind,  wenn  diese
  1587.       auftauchen.
  1588.  
  1589.  
  1590.  
  1591.  
  1592.       1.3. MENUEPUNKT SIMULATION
  1593.  
  1594.       1.3.1 Einleitung
  1595.  
  1596.       Während der AWL-Simulation haben Sie folgende Möglichkeiten:
  1597.  
  1598.       ■ Eingänge oder Operanden umschalten
  1599.       ■ Sie können sich jeden Operanden in allen verfügbaren 
  1600.         Anzeigeformaten anzeigen lassen (Steuerbefehl "$S")
  1601.       ■ Anzeige von Akku-Inhalten, VKE's, Anzeige-Bits in jeder
  1602.         AWL-Zeile
  1603.       ■ Superschneller Wechsel zu anderen Bausteinen.
  1604.       ■ Aktivierung des DB-Editors, der während der Simulation
  1605.         zyklisch aktualisiert wird.
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.                             ─── Seite 26 ───
  1620.  
  1621.       Menuepunkt Simulation / AWL-Simulation                   KAPITEL 1
  1622. ──────────────────────────────────────────────────────────────────────────────
  1623.  
  1624.       1.3.2 Tastenbelegung während der AWL-Simulation.
  1625.  
  1626.       Taste                   Befehl
  1627.       ────────────────────────────────────────────────────
  1628.       Verfügbare Anzeigen                                   
  1629.       ────────────────────────
  1630.       [V]                     VKE Anzeige                     
  1631.       [H]                     Akkuanzeige im Hexadezimalsystem
  1632.       [F]                     Akkuanzeige in Festpunktzahlen  
  1633.       [W]                     Akkuanzeige in Word-Zahlen      
  1634.       [M]                     Akkuanzeige im Dualsystem       
  1635.       [S]                     Allgemeine Statusanzeige        
  1636.       [A]                     Anzeige Bits                    
  1637.       [Z] oder [C]            Zähler-Istwert-Anzeige (Z0-Z14) 
  1638.       [T]                     Timer-Istwert-Anzeige  (T0-T14) 
  1639.       [F6]                    alle Anzeigen ein- und ausschalten
  1640.  
  1641.       AWL-Steuerung                                         
  1642.       ────────────────────────
  1643.       [STRG/RETURN]           Bausteinwechsel
  1644.       [TAB]                   Eingangsleiste verschieben
  1645.       [Shift-TAB]             Eingangsleiste verschieben
  1646.       [Pfeil nach rechts] /
  1647.       [Pfeil nach links]      Anwählen eines Eingangsbytes     
  1648.       [0] bis [7]             Umschalten von Eingängen        
  1649.       [ALT/O]                 Umschalten von Operanden        
  1650.       [F1]                    Hilfe                           
  1651.       [PGDN]                  Seitenweise vorblättern         
  1652.       [PGUP]                  Seitenweise zurückblättern      
  1653.       [Pfeil nach oben]       eine Zeile zurück               
  1654.       [Pfeil nach unten]      eine Zeile vor
  1655.       [ALZ/Q] oder [STRG/+]   Zum nächsten Netzwerk springen
  1656.       [ALT/A] oder [STRG/-]   Zum vorhergehenden Netzwerk springen
  1657.       [SPACE]                 alle Eingänge zurücksetzen      
  1658.       [+]                     Simulation beschleunigen        
  1659.       [-]                     Simulation verlangsamen         
  1660.       [STRG/P] oder
  1661.       [ALT/RETURN]            PAE/PAA- Anzeige einstellen
  1662.       [F9], [F10]             AnalogRaster erhöhen, erniedrigen
  1663.  
  1664.       [ESC]                   Simulation beenden
  1665.  
  1666.  
  1667.       Steuern von Analogeingaben siehe Seite 88.
  1668.  
  1669.       Hinweis:
  1670.  
  1671.       Die   Tastenkombination   [ALT/P]  oder  [ALT/RETURN]  stellt  die
  1672.       PAE/PAA-  Anzeige  wieder  auf  die  eingestellten Werte, wenn Sie
  1673.       vorher diese Anzeige durch die [TAB]- Taste verschoben haben.
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.                             ─── Seite 27 ───
  1680.  
  1681.       Menuepunkt Simulation / AWL-Simulation                   KAPITEL 1
  1682. ──────────────────────────────────────────────────────────────────────────────
  1683.  
  1684.       1.3.3 Umschalten der Eingänge.
  1685.  
  1686.       Mit  dem  Simulator  können  bis  zu  !  1024 ! Eingänge simuliert
  1687.       werden.  Mit  der  [TAB] oder [SHIFT/TAB] -Taste erreichen Sie die
  1688.       einzelnen Eingangsbytes 0 bis 127. Mit der [Pfeil nach links]- und
  1689.       [Pfeil  nach rechts]- Taste wählen Sie ein bestimmtes Eingangsbyte
  1690.       aus.  Das momentan aktive Eingangsbyte wird optisch hervorgehoben.
  1691.       Nun  können  Sie  mit  den  Tasten  [0]  bis  [7]  das  gewünschte
  1692.       Eingangsbit  umschalten  oder betätigen. Eingänge können sogar als
  1693.       Taster  oder Schalter definiert werden. Lesen Sie dazu das Kapitel
  1694.       "SPS-Steuerbefehle".
  1695.  
  1696.       Sie  kennen  jetzt  eine Möglichkeit die Eingänge umzuschalten. Es
  1697.       gibt   noch   eine   zweite   Möglichkeit,   wobei  aber  nur  die
  1698.       Eingangsbytes 0 bis 7 erreicht werden können:
  1699.  
  1700.       Drücken  Sie gleichzeitig die [ALT]-Taste und eine Ziffer zwischen
  1701.       0 und 7. Dabei entspricht die Ziffer dem gewünschten Eingangsbyte.
  1702.       Drücken Sie nun nochmals eine Ziffer zwischen 0 und 7, wobei diese
  1703.       nun  das  jeweilige Eingangsbit darstellt. Um z.B. den Eingang 0.0
  1704.       umzuschalten  drücken  Sie  zuerst  gleichzeitig  [ALT/0] und dann
  1705.       anschließend [0].
  1706.  
  1707.       Hinweis:
  1708.       Nachdem  das  gewünschte Eingangsbyte eingegeben wurde, wartet das
  1709.       Programm  auf  die  Eingabe  des Eingangsbits. D.h. die Simulation
  1710.       wird  angehalten.  Sie  sollten also diese Tastenkombination zügig
  1711.       eingeben.
  1712.  
  1713.  
  1714.  
  1715.       1.3.4  "Steuern Variable"- Funktion
  1716.   
  1717.       Über die Tastenkombination [ALT/O] können Sie während der
  1718.       AWL- oder FUP-Simulation Bit- Byte- oder Wortoperanden auf einen
  1719.       bestimmten Wert setzen.
  1720.   
  1721.       Nach Drücken dieser Tastenkombination erscheint ein Dialogfenster.
  1722.       Sie können nun einen Operanden mit einem "Sollwert" angeben.
  1723.       Beispiele:
  1724.   
  1725.       MB3=KF30
  1726.       A4.4=1
  1727.       M4.7=1
  1728.       D50.15=1
  1729.       DW10=KH FFFF
  1730.       MW=KM0000000011111111
  1731.   
  1732.       Sie sehen an den Beispielen, daß Sie die Operanden bit-, byte
  1733.       oder wortweise manipulieren können !!
  1734.   
  1735.   
  1736.  
  1737.  
  1738.  
  1739.                             ─── Seite 28 ───
  1740.  
  1741.       Menuepunkt Simulation / AWL-Simulation                   KAPITEL 1
  1742. ──────────────────────────────────────────────────────────────────────────────
  1743.  
  1744.       Sie können maximal 7 Operanden gleichzeitig angeben.
  1745.       Nach Drücken der [PGDN] bzw. [Bild nach unten]- Taste
  1746.       werden die angegebenen Operanden auf die angegebenen
  1747.       Werte gesetzt.
  1748.  
  1749.       Wenn Sie danach dieses Dialogfenster wieder öffnen,
  1750.       stehen die Operanden noch immer in den Zeilen.
  1751.       Der "Sollwert" ist aber nicht mehr eingetragen.
  1752.       Nach dem Operanden steht nur noch das Gleichheitszeichen.
  1753.       Nach diesem Zeichen können Sie nun wieder Ihren gewünschten
  1754.       "Sollwert" eingeben.
  1755.   
  1756.       Hinweise:
  1757.   
  1758.       ■ Wenn Sie Eingänge einen bestimmten Wert zuweisen,
  1759.         haben die betreffenden Eingänge nur innerhalb eines Zyklus
  1760.         den eingestellten Wert, da nach BE im OB1 das PAE wieder
  1761.         aktualisiert wird.
  1762.   
  1763.       ■ Wenn Sie Operanden einen neuen Wert zuweisen, die innerhalb
  1764.         des Zyklus sofort wieder manipuliert werden, werden die
  1765.         gemachten Änderungen keine Wirkung zeigen.
  1766.   
  1767.  
  1768.  
  1769.       1.3.5 Hinweise zur AWL-Simulation
  1770.  
  1771.       ■ Werden in der Anweisungsliste Anweisungen übersprungen (z.B. bei
  1772.         Sprungbefehlen/BEA/BEB),   dann  werden  diese  Anweisungen  mit
  1773.         kleinen Blöcken (■ = ASCII 254) markiert.
  1774.  
  1775.       ■ Die  Akkuanzeige im Dezimalsystem (Festpunktzahl) betrachtet den
  1776.         Akkuinhalt   als   vorzeichenbehaftete   Dezimalzahl.  Wenn  die
  1777.         Festpunktzahl  negativ  ist  (Bit 16 ist "1"), wird die Zahl mit
  1778.         Hilfe des Zweierkomplements dargestellt. Dadurch ergibt sich ein
  1779.         Zahlenbereich von -32768 ... +32767
  1780.  
  1781.       ■ Die  Akkuanzeige  im  Dezimalsystem (Word-Zahlen) betrachtet den
  1782.         Akkuinhalt als vorzeichenlose 16-Bit-Zahl (0 ... 65535).
  1783.  
  1784.       ■ Die  Akkuanzeige im Dualsystem gibt den Akkuinhalt als Bitmuster
  1785.         zurück. Das linke Byte ist das High-Byte und das rechte Byte ist
  1786.         das Low-Byte.
  1787.  
  1788.       ■ Mit   Hilfe   der  allgemeinen  Statusanzeige  können  Sie  sich
  1789.         zusätzlich jeden gewünschten Operanden anzeigen lassen
  1790.  
  1791.       ■ Werden  mit  Hilfe  der  allgemeinen  Statusanzeige  Datenwörter
  1792.         angezeigt,  wird  der aktuelle Datenbaustein in der 8. Zeile von
  1793.         oben, ganz rechts angezeigt. Die angezeigten Datenwörter stammen
  1794.         immer  von  dem  Datenbaustein, der kurz vor der "BE"- Anweisung
  1795.         des  OB1  aktiv  ist.  Wollen  Sie  also  Datenwörter  von einem
  1796.         bestimmten  Datenbaustein  anzeigen, müssen Sie diesen DB in der
  1797.         vorletzten AWL-Zeile im OB1 aufrufen (A DB xxx).
  1798.  
  1799.                             ─── Seite 29 ───
  1800.  
  1801.       Menuepunkt SIMULATION / AWL-Debugging                    KAPITEL 1
  1802. ──────────────────────────────────────────────────────────────────────────────
  1803.  
  1804.       1.4. AWL-Debugging.
  1805.  
  1806.       Mit diesem Simulationsmodus können Sie die Anweisungsliste Schritt
  1807.       für  Schritt simulieren. Sie können die verschiedenen Anzeigen wie
  1808.       in   der   normalen  Simulation  umschalten.  Nach  jedem  Schritt
  1809.       ([Return]-Taste)    werden    alle   Statusanzeigen   und   Zeiten
  1810.       aktualisiert.
  1811.  
  1812.       1.4.1 Tastenbelegung im Debug Modus
  1813.  
  1814.       Taste                   Befehl
  1815.       ────────────────────────────────────────────────────
  1816.       Verfügbare Anzeigen                                   
  1817.       ────────────────────────
  1818.       [V]                     VKE Anzeige                     
  1819.       [H]                     Akkuanzeige im Hexadezimalsystem
  1820.       [F]                     Akkuanzeige in Festpunktzahlen  
  1821.       [W]                     Akkuanzeige in Word-Zahlen      
  1822.       [M]                     Akkuanzeige im Dualsystem       
  1823.       [S]                     Allgemeine Statusanzeige        
  1824.       [A]                     Anzeige Bits                    
  1825.       [Z] oder [C]            Zähler-Istwert-Anzeige (Z0-Z14) 
  1826.       [T]                     Timer-Istwert-Anzeige  (T0-T14) 
  1827.       [ALT/A]                 alle Anzeigen ausschalten       
  1828.       [ALT/E]                 alle Anzeigen einschalten
  1829.  
  1830.       AWL-DEBUG-Steuerung                                 
  1831.       ────────────────────────
  1832.       [Pfeil n  rechts] bzw.                                  
  1833.       [Pfeil n. links]        Anwählen eines Eingangsbytes     
  1834.       [0] bis [7]             Umschalten von Eingängen        
  1835.       [ALT/O]                 Umschalten von Operanden        
  1836.       [F1]                    Hilfe                           
  1837.       [Return]                Anweisung bearbeiten            
  1838.       [Space]                 Alle Eingänge zurücksetzen      
  1839.       [Pfeil nach  oben]      Anweisungen nach unten verschieben
  1840.       [Pfeil nach unten]      Anweisungen nach oben verschieben
  1841.       [F9], [F10]             AnalogRaster erhöhen, erniedrigen
  1842.       [ESC]                   Simulation beenden              
  1843.  
  1844.  
  1845.  
  1846.       Steuern von Analogeingaben siehe Seite 88.
  1847.  
  1848.       Hinweise:
  1849.  
  1850.       ■ Wenn  Sie  in Ihrem Programm Bausteinaufrufe programmiert haben,
  1851.         können   diese   nicht   schrittweise  simuliert  werden.  Diese
  1852.         Bausteine werden auf einmal durchgearbeitet.
  1853.  
  1854.       ■ Eingänge, die als Taster definiert wurden, können nicht
  1855.         simuliert werden.
  1856.  
  1857.  
  1858.  
  1859.                             ─── Seite 30 ───
  1860.  
  1861.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  1862. ──────────────────────────────────────────────────────────────────────────────
  1863.  
  1864.       1.5 FUP-SIMULATION
  1865.  
  1866.       1.5.1 Einleitung
  1867.       
  1868.       Wenn   Sie   die   FUP-Simulation   aktivieren,  wird  zuerst  Ihr
  1869.       geschriebenes   Programm   in   einen  Funktionsplan  umgewandelt.
  1870.       Voraussetzung  für  eine korrekte Umwandlung ist aber, daß Sie bei
  1871.       der  Programmierung  einige  Regeln  beachtet  haben,  die  in den
  1872.       folgenden    Abschnitten    erläutert   werden.   Die   wichtigste
  1873.       Voraussetzung  ist,  daß  Sie  Zeiten, Zähler und Speicher richtig
  1874.       belegt  haben  bzw.  die "NOP's" richtig gesetzt haben.
  1875.       Wenn  Ihnen  der Bildschirmausschnitt zu klein ist, können Sie die
  1876.       Eingangs.-   Ausgangsleiste   ausblenden,   oder   besser,   einen
  1877.       hochauflösenden  Textmodus  wählen.  Letzteres geht aber nur, wenn
  1878.       Sie   eine  VGA-Karte  besitzen.
  1879.       Lesen Sie dazu den Abschnitt "Einstellen der Videomodi".
  1880.  
  1881.  
  1882.  
  1883.       1.5.2 Allgemeine Regeln für die Programmierung von Zeiten,
  1884.             Zähler und Speicher.
  1885.  
  1886.       Zeiten,  Zähler  und  Speicher  sind  im  Funktionsplan sogenannte
  1887.       komplexe   Glieder   mit   mehreren  verschiedenen  Eingängen  und
  1888.       Ausgängen. Diese Belegungen müssen in der Anweisungsliste in einer
  1889.       bestimmten   Reihenfolge   programmiert   werden,  die  Sie  immer
  1890.       einhalten  müssen.  Es  gibt zwei Ausnahmen: Bei Zähler können Sie
  1891.       natürlich  die  Reihenfolge des "ZV"- und "ZR"-Eingang fei wählen.
  1892.       Auch  bei  Speicher  können  Sie  die  Reihenfolge  des Setz.- und
  1893.       Rücksetzeinganges frei wählen (Setz.- oder Rücksetzdominanz).
  1894.  
  1895.       Werden  bestimmte  Belegungen  nicht  benötigt,  müssen  diese mit
  1896.       jeweils  einem  "NOP 0" belegt werden. Die Operation "NOP 0" dient
  1897.       hier  nur als Platzhalter, damit der Simulator die Anweisungsliste
  1898.       in  einen  Funktionsplan  umwandeln  kann. Zwischen den Belegungen
  1899.       dürfen sich keine Leerzeilen oder ganzzeilige Kommentare befinden.
  1900.  
  1901.       Bitte beachten Sie folgende Einschränkungen:
  1902.  
  1903.       Bei  Zeiten  kann der Rücksetzeingang mit nur einem Operand belegt
  1904.       werden.   Sie  können  also  nicht  zwei  oder  mehrere  Operanden
  1905.       miteinander  verknüpfen,  und  dann  das  Verknüpfungsergebis  als
  1906.       Rücksetzsignal  benutzen.  Das gleiche trifft sinngemäß auf Zähler
  1907.       bei  dem  Setz.-  und Rücksetzeingang zu. Diese Einschränkung gilt
  1908.       nur   dann,  wenn  Sie  das  geschriebene  SPS-Programm  in  einen
  1909.       Funktionsplan umwandeln möchten.
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.                             ─── Seite 31 ───
  1920.  
  1921.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  1922. ──────────────────────────────────────────────────────────────────────────────
  1923.  
  1924.       1.5.3 Programmierung von Zeiten
  1925.  
  1926.       Ein Timer besitzt folgende Ein.- und Ausgänge:
  1927.  
  1928.       ■ Starteingang (wird beim Aufruf einer Zeit belegt)
  1929.       ■ Rücksetzeingang
  1930.       ■ Ausgang DUAL (DU)
  1931.       ■ Ausgang BCD (DE)
  1932.       ■ Ausgang Binär
  1933.  
  1934.       Der  Starteingang  wird  automatisch  belegt  wenn  Sie  eine Zeit
  1935.       aufrufen (z.B. SE T 0). Die anderen Ausgänge müssen mit einem
  1936.       "NOP 0" versorgt werden, wenn diese nicht benutzt werden.
  1937.  
  1938.  
  1939.       Ein voll belegter Timer könnte folgendermaßen aussehen:
  1940.  
  1941.       0001     :U   E   0.0
  1942.       0002     :L   KT  200.0
  1943.       0003     :SE  T   0                ANZUGVERZÖGERT
  1944.       0004     :U   E   0.1
  1945.       0005     :R   T   0                RÜCKSETZ-EINGANG
  1946.       0006     :L   T   0                AUSGANG DUAL
  1947.       0007     :T   MW  200
  1948.       0008     :LC  T   0                AUSGANG BCD
  1949.       0009     :T   MW  202
  1950.       0010     :U   T   0                ZUWEISUNG
  1951.       0011     :=   A   0.0
  1952.       0012     :BE
  1953.  
  1954.       Der zugehörige Funktionsplan sieht folgendermaßen aus:
  1955.                                          T0
  1956.                            ┌───┐       ┌─────┐     
  1957.                     E0.0  ─┤ & ├───────┤T├─┤0├A0.0 
  1958.                            └───┘KT200.0┤TW DU├MW200
  1959.                                        │   DE├MW202
  1960.                                        │     │     
  1961.                                        │-SE- │     
  1962.                                 E0.1   ┤R    │     
  1963.                                        └─────┘     
  1964.       Wenn  Sie  einen  bestimmten Eingang oder Ausgang nicht benötigen,
  1965.       müssen Sie diesen Ausgang mit einem "NOP 0" versorgen.
  1966.       Dieses  "NOP  0"  dient als Platzhalter für den jeweiligen Eingang
  1967.       oder Ausgang.
  1968.  
  1969.       Beispiel:
  1970.  
  1971.       0001     :U   E   0.0
  1972.       0002     :L   KT  200.0
  1973.       0003     :SE  T   0                ANZUGVERZÖGERT
  1974.       0004     :NOP 0                    RÜCKSETZ-EINGANG
  1975.       0005     :L   T   0                AUSGANG DUAL
  1976.       0006     :T   MW  200
  1977.       0007     :NOP 0                    AUSGANG BCD
  1978.  
  1979.                             ─── Seite 32 ───
  1980.  
  1981.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  1982. ──────────────────────────────────────────────────────────────────────────────
  1983.  
  1984.       0008     :U   T   0                ZUWEISUNG
  1985.       0009     :=   A   0.0
  1986.       0010     :BE
  1987.  
  1988.       Hier  wird der Rücksetzeingang und der BCD-Ausgang nicht benötigt.
  1989.       Diese werden jeweils mit einem "NOP 0" versorgt.
  1990.  
  1991.       Die   Reihenfolge  der  Belegungen  müssen  Sie  genau  einhalten.
  1992.       Zwischen  den  Belegungen dürfen keine Leerzeilen oder ganzzahlige
  1993.       Kommentare  stehen.  Die  Reihenfolge  der Belegungen brauchen Sie
  1994.       sich  nicht  zu  merken.  Sie  können sich im Editor mit Hilfe der
  1995.       [ALT/H]-Taste eine Hilfestellung in die AWL kopieren.
  1996.  
  1997.  
  1998.  
  1999.       1.5.4 Programmierung von Zähler
  2000.  
  2001.       Ein Zähler besitzt folgende Ein.- und Ausgänge
  2002.  
  2003.       ■ Eingang für das Vorwärtszählen
  2004.       ■ Eingang für das Rückwärtszählen
  2005.       ■ Setzeingang
  2006.       ■ Rücksetzeingang
  2007.       ■ Ausgang DUAL (DU)
  2008.       ■ Ausgang BCD (DE)
  2009.       ■ binärer Ausgang
  2010.  
  2011.       Jeder  dieser  Ein-  oder  Ausgang  muß  mit  einem "NOP 0" belegt
  2012.       werden,  wenn er nicht benötigt wird. Sie müssen demnach maximal 6
  2013.       (nicht   7)   "NOP  0"-  Operationen  setzen,  da  mindestens  ein
  2014.       Zähleingang belegt werden muß, um den Zähler uberhaupt aufzurufen.
  2015.  
  2016.       Ein voll belegter Zähler könnte folgendermaßen aussehen:
  2017.  
  2018.       0001     :U   E   0.0
  2019.       0002     :ZV  Z   1                ZÄHLER VORWÄRTS ZÄHLEN
  2020.       0003     :U   E   0.1
  2021.       0004     :ZR  Z   1                ZÄHLER RÜCKWÄRTS ZÄHLEN
  2022.       0005     :U   E   0.2              
  2023.       0006     :L   KZ  400       
  2024.       0007     :S   Z   1                ZÄHLER SETZEN
  2025.       0008     :U   E   0.3
  2026.       0009     :R   Z   1                ZÄHLER RÜCKSETZEN
  2027.       0010     :L   Z   1                ZÄHLER ISTWERT TRANSF.DUAL
  2028.       0011     :T   DW  2
  2029.       0012     :LC  Z   1                ZÄHLER ISTWERT TRANSF. BCD
  2030.       0013     :T   DW  3
  2031.       0014     :U   Z   1                ZUWEISUNG
  2032.       0015     :=   A   0.0
  2033.       0016     :BE
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.                             ─── Seite 33 ───
  2040.  
  2041.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2042. ──────────────────────────────────────────────────────────────────────────────
  2043.  
  2044.       Der dazugehörige Funktionsplan:
  2045.  
  2046.                                           Z1          
  2047.                           ┌───┐       ┌────────┐    
  2048.                    E0.0  ─┤ & ├───────┤ZV     Q├A0.0
  2049.                           └───┘       │        │    
  2050.                                       │        │    
  2051.                           ┌───┐       │        │    
  2052.                    E0.1  ─┤ & ├───────┤ZR      │    
  2053.                           └───┘       │        │    
  2054.                                E0.2   ┤S       │    
  2055.                                KZ400  ┤ZW    DU├DW2 
  2056.                                       │      DE├DW3 
  2057.                                E0.3   ┤R       │    
  2058.                                       └────────┘    
  2059.  
  2060.       Sie  sehen, daß dieser Zähler vollständig belegt ist. Wenn Sie nun
  2061.       eine  Belegung  (Eingang  oder Ausgang) nicht benötigen, muß diese
  2062.       mit einem "NOP 0" ersetzt werden. Beispiel:
  2063.  
  2064.       0001     :U   E   0.0
  2065.       0002     :ZV  Z   1                VORWÄRTSZÄHLEN
  2066.       0003     :NOP 0                    RÜCKWÄRTS ZÄHLEN
  2067.       0004     :NOP 0                    ZÄHLER SETZEN ─┐2
  2068.       0005     :NOP 0                                  ─┘NOP's
  2069.       0006     :U   E   0.3
  2070.       0007     :R   Z   1                ZÄHLER RÜCKSETZEN
  2071.       0008     :L   Z   1                ZÄHLER ISTWERT TRANSF.DUAL
  2072.       0009     :T   DW  2
  2073.       0010     :NOP 0                    ZÄHLER ISTWERT TRANSF. BCD
  2074.       0011     :U   Z   1
  2075.       0012     :=   A   0.0              ZUWEISUNG
  2076.       0013     :BE
  2077.  
  2078.       Sie  sehen,  daß  der  Rückwärtszähl-Eingang  und  der BCD-Ausgang
  2079.       jeweils  mit  einem "NOP 0" belegt sind. Der Zähler-Setzen-Eingang
  2080.       muß  mit  zwei  "NOP 0" belegt werden. Bis zur Version V4.05 mußte
  2081.       man  einen  nicht belegten Setz-Eingang mit einem "NOP 0" belegen,
  2082.       was aber nicht kompatibel zu SIEMENS ist !
  2083.  
  2084.       Der dazugehörige Funktionsplan:
  2085.                                         Z1
  2086.                           ┌───┐       ┌────────┐     
  2087.                    E0.0  ─┤ & ├───────┤ZV     Q├A0.0 
  2088.                           └───┘       ┤ZR      │     
  2089.                                       │        │     
  2090.                                       ┤S       │
  2091.                                       ┤ZW    DU├DW2
  2092.                                       │      DE├     
  2093.                                E0.3   ┤R       │     
  2094.                                       └────────┘     
  2095.       Wenn  Sie  nur den "ZR"-Eingang benötigen, können Sie einfach
  2096.       die Operation "ZV Z1" in "ZR Z1" umschreiben.
  2097.  
  2098.  
  2099.                             ─── Seite 34 ───
  2100.  
  2101.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2102. ──────────────────────────────────────────────────────────────────────────────
  2103.  
  2104.       1.5.5 Programmierung von Speichern
  2105.  
  2106.       Ein Speicher hat folgende Ein.- und Ausgänge:
  2107.  
  2108.       ■ ein Setzeingang
  2109.       ■ ein Rücksetzeingang
  2110.       ■ ein Ausgang 
  2111.  
  2112.       Ein vollständig belegter Speicher:
  2113.  
  2114.       Anweisungsliste:
  2115.  
  2116.       0001     :U   E   0.0
  2117.       0002     :U   E   0.1
  2118.       0003     :S   M   0.0               MERKER SETZEN
  2119.       0004     :U   E   0.2
  2120.       0005     :U   E   0.3
  2121.       0006     :R   M   0.0               MERKER RÜCKSETZEN
  2122.       0007     :U   M   0.0
  2123.       0008     :=   A   0.3
  2124.       0009     :BE
  2125.  
  2126.       Funktionsplan:
  2127.  
  2128.                                       M0.0       
  2129.                         ┌───┐       ┌─────┐     
  2130.                  E0.0  ─┤ & ├───────┤S  Q ├ A0.3
  2131.                  E0.1  ─┤   │       │     │     
  2132.                         └───┘       │     │     
  2133.                                     │     │     
  2134.                         ┌───┐       │     │     
  2135.                  E0.2  ─┤ & ├───────┤R    │     
  2136.                  E0.3  ─┤   │       │     │     
  2137.                         └───┘       └─────┘     
  2138.  
  2139.       Wenn  Sie  nun  den  Ausgang  nicht  benötigen müssen Sie die
  2140.       Anweisungsliste folgendermaßen ändern:
  2141.  
  2142.       0001     :U   E   0.0
  2143.       0002     :U   E   0.1
  2144.       0003     :S   M   0.0               MERKER SETZEN
  2145.       0004     :U   E   0.2
  2146.       0005     :U   E   0.3
  2147.       0006     :R   M   0.0               MERKER RÜCKSETZEN
  2148.       0007     :NOP 0
  2149.       0008     :BE
  2150.  
  2151.       Beachten  Sie,  daß nun nach dem Rücksetzbefehl ein "NOP 0" steht.
  2152.       Dieses "NOP 0" wird hier oft vergessen.
  2153.  
  2154.       Der  Funktionsplan  sieht genauso aus wie oben, nur am Ausgang des
  2155.       Speichers steht kein Operand.
  2156.  
  2157.  
  2158.  
  2159.                             ─── Seite 35 ───
  2160.  
  2161.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2162. ──────────────────────────────────────────────────────────────────────────────
  2163.  
  2164.       Wenn  Sie  mehrere  Operanden  gleichzeitig  setzen und rücksetzen
  2165.       wollen, müssen die AWL folgendermaßen schreiben:
  2166.  
  2167.       0001     :U   E   0.0
  2168.       0002     :U   E   0.1
  2169.       0003     :S   M   0.0
  2170.       0004     :S   M   0.1
  2171.       0005     :S   M   0.2
  2172.       0006     :NOP 0
  2173.       0007     :NOP 0
  2174.       0008     :U   E   0.2
  2175.       0009     :U   E   0.3
  2176.       0010     :R   M   0.0
  2177.       0011     :R   M   0.1
  2178.       0012     :R   M   0.2
  2179.       0013     :NOP 0
  2180.       0014     :NOP 0
  2181.       0015     :BE
  2182.  
  2183.       Sie  müssen  also  2  Speicher  programmieren,  und mit dem ersten
  2184.       Speicher  alle  Operanden setzen und mit dem zweiten Speicher alle
  2185.       Operanden wieder rücksetzen.
  2186.  
  2187.       Der Funktionsplan sieht dann so aus:
  2188.  
  2189.  
  2190.                                     M0.0   M0.1   M0.2
  2191.                       ┌───┐       ┌─────┐
  2192.                E0.0  ─┤ & ├───────┤S  Q ├
  2193.                E0.1  ─┤   │       │     │
  2194.                       └───┘       │     │
  2195.                                   │R    │
  2196.                                   └─────┘
  2197.  
  2198.                                     M0.0   M0.1   M0.2
  2199.                       ┌───┐       ┌─────┐
  2200.                E0.2  ─┤ & ├───────┤R  Q ├
  2201.                E0.3  ─┤   │       │     │
  2202.                       └───┘       │     │
  2203.                                   │S    │
  2204.                                   └─────┘
  2205.  
  2206.  
  2207.       Hinter   diesen   Blöcken   sollten   Sie  keine  weiteren  Blöcke
  2208.       plazieren,  da  es  sonst  zu Problemen mit obigen Operanden
  2209.       (M0.0 M0.1 M0.2) geben kann.
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.                             ─── Seite 36 ───
  2220.  
  2221.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2222. ──────────────────────────────────────────────────────────────────────────────
  2223.  
  2224.       5.6 Einsetzen von Konnektoren.
  2225.  
  2226.       5.6.1 Was ist ein Konnektor ?
  2227.  
  2228.       Ein Konnektor sind 2 Anweisungen die folgendermaßen aussehen:
  2229.  
  2230.         .     .
  2231.         .     .
  2232.       0008     :=   A   0.0
  2233.       0009     :U   A   0.0
  2234.         .     .
  2235.         .     .
  2236.  
  2237.       Es  wird  also ein Operand (E,A,M,T oder Z) zugewiesen, und in der
  2238.       nächsten  AWL-Zeile  wird  genau  dieser  Operand  mit  einer UND-
  2239.       Operation weiterverknüpft.
  2240.       Hinweis: Negierte Konnektoren sind nicht möglich !
  2241.  
  2242.       1.5.6.2 Welchen Zweck haben Konnektoren ?
  2243.  
  2244.       Konnektoren dienen dazu, um die Anweisungsliste übersichtlicher in
  2245.       einen  Funktionsplan  umwandeln zu können. Ein Konnektor verbindet
  2246.       FUP-Objekte  miteinander.  Ein  anderer Vorteil ist, daß man immer
  2247.       wiederkehrende     Verknüpfungen     einspart,    da    man    das
  2248.       Verknüpfungsergebnis einem Zwischenspeicher (Operand) zuweist.
  2249.  
  2250.  
  2251.  
  2252.       1.5.6.3 Beispiel zu Konnektoren
  2253.         .     .
  2254.         .     .
  2255.       0008     :U   E   0.0
  2256.       0009     :U   E   0.1
  2257.       0010     :U   E   0.2
  2258.       0011     :U   E   0.3
  2259.       0012     :U   E   0.4
  2260.       0013     :U   E   0.5
  2261.       0014     :=   M   0.0 ┐
  2262.       0015     :U   M   0.0 ┘  Konnektor
  2263.       0016     :U   E   0.6
  2264.       0017     :=   A   0.4
  2265.         .     .
  2266.         .     .
  2267.  
  2268.       Ein   Konnektor   wird   im   Funktionsplan  mit  dem  "#"-Zeichen
  2269.       gekennzeichnet:
  2270.  
  2271.                       ┌───┐          ┌───┐       ┌───┐
  2272.                E0.0  ─┤ & ├───#M0.0──┤ & ├───────┤ = ├ A0.4 
  2273.                E0.1  ─┤   │   E0.6  ─┤   │       └───┘      
  2274.                E0.2  ─┤   │          └───┘                  
  2275.                E0.3  ─┤   │                                 
  2276.                E0.4  ─┤   │                                 
  2277.                E0.5  ─┤   │                                 
  2278.                       └───┘                                 
  2279.                             ─── Seite 37 ───
  2280.  
  2281.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2282. ──────────────────────────────────────────────────────────────────────────────
  2283.  
  2284.       1.5.7 Was  tun wenn,
  2285.             sich die Anweisungsliste nicht umwandeln läßt ?
  2286.  
  2287.       Wenn  sich Ihre AWL nicht umwandeln läßt, sollten Sie folgendes
  2288.       kontrollieren:
  2289.  
  2290.       ■ Haben Sie kein "NOP 0" vergessen ?
  2291.       ■ Haben Sie bei überall die gleiche Operandennummer
  2292.         eingegeben ?
  2293.         (Bei Zeiten oder Zähler überall die gleiche Nummer)
  2294.       ■ Zwischen den Anweisungen dürfen keine Leerzeilen stehen.
  2295.       ■ Zwischen den Anweisungen dürfen keine ganzzeilige
  2296.         Kommentare stehen.
  2297.       ■ Stimmt die Reihenfolge der Belegungen.
  2298.  
  2299.  
  2300.  
  2301.       1.5.8 Netzwerkprogrammierung
  2302.  
  2303.       Wenn  Sie  eine  AWL in einen Funktionsplan umwandeln möchten, ist
  2304.       die  Programmierung  in Netzwerken nicht erforderlich. Es ist aber
  2305.       ratsam  Ihre  AWL  in Netzwerke zu unterteilen. Sie können dann zu
  2306.       jedem  Netzwerk  ein  Kommentar  angeben,  der  unter  den anderen
  2307.       Kommentaren  auffällt, weil er an einer anderen Spalte anfängt als
  2308.       die   anderen   Kommentartypen   (Kurzkommentare  und  ganzzeilige
  2309.       Kommentare).  Außerdem  werden  Netzwerke  bei  VGA/EGA-Karten mit
  2310.       einer  anderen  Farbe  dargestellt. Netzwerke können zum einen mit
  2311.       der  [F9]-Taste,  und  zum  anderen  mit  drei Sternchen "***" und
  2312.       anschließender  [RETURN]-Taste  in  die  Anweisungsliste eingefügt
  2313.       werden.
  2314.  
  2315.       Der Netzwerktext erscheint auch im Funktionsplan, wenn Sie bei der
  2316.       Datei  "SPS.CFG"  den  Schalter  (ON/OFF)  "Ganzzeilige Kommentare
  2317.       erlauben" eingeschaltet haben.
  2318.  
  2319.  
  2320.  
  2321.       1.5.9 Bedienung der FUP-Simulation
  2322.  
  2323.       Falls   die   Ein/Ausgangsleiste  eingeschaltet  ist  (siehe  FUP-
  2324.       Konfiguration),  werden  alle  Eingänge  und  Ausgänge  im  oberen
  2325.       Bereich  des  Bildschirms dargestellt.  Die  Zustände der Eingänge
  2326.       können  auch  hier,  wie  bei der AWL-Simulation, auf verschiedene
  2327.       Arten   umgeschaltet   werden.  Wenn  Sie  die  Ein/Ausgangsleiste
  2328.       ausgeschaltet   haben,   sollten   Sie   auf  die  2.  Möglichkeit
  2329.       zurückgreifen (siehe AWL- Simulation).
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.                             ─── Seite 38 ───
  2340.  
  2341.       Menuepunkt SIMULATION / FUP-SIMULATION                   KAPITEL 1
  2342. ──────────────────────────────────────────────────────────────────────────────
  2343.  
  2344.       1.5.10 Tastenbelegung während der FUP-Simulation:
  2345.  
  2346.       Verschiebung des Funktionsplanes                                
  2347.       ──────────────────────
  2348.       [Pfeil nach unten] od. [Y]       zeilenweise nach oben verschieben
  2349.       [Pfeil nach oben] od. [W]        zeilenweise n.unten verschieben
  2350.       [STRG/Pfeil nach rechts] od. [S] nach links verschieben
  2351.       [STRG/Pfeil nach links] od. [A]  nach rechts verschieben
  2352.       [PGDN]                           seitenweise vorblättern
  2353.       [PGUP]                           seitenweise zurückblättern
  2354.  
  2355.       FUP-Steuerung                                         
  2356.       ──────────────────────
  2357.       [Pfeil n. rechts] bzw.                               
  2358.       [Pfeil n. links]      Anwählen eines Eingangsbytes    
  2359.       [0] bis [7]           Umschalten von Eingängen       
  2360.       [ALT/O]               Umschalten von Operanden       
  2361.       [F1]                  Hilfe                          
  2362.       [ESC]                 Simulation beenden             
  2363.       [SPACE]               alle Eingänge zurücksetzen     
  2364.       [ALT/P]               Funktionsplan drucken
  2365.       [STRG/P] oder
  2366.       [ALT/RETURN]          PAE/PAA- Anzeige einstellen
  2367.       [F9], [F10]           AnalogRaster erhöhen, erniedrigen
  2368.  
  2369.       Tastenbelegung für Analogeingabe siehe Seite 88.
  2370.  
  2371.       1.5.11 Funktionsplan ausdrucken
  2372.  
  2373.       Der Funktionsplan kann folgendermaßen aufs Papier gebracht werden:
  2374.       Durch  gleichzeitiges Drücken der Tasten [ALT/P] oder [STRG/DRUCK]
  2375.       erscheint  zunächst ein  Fenster, in dem nochmal die Bausteindaten
  2376.       angezeigt  werden.  Kontrollieren  Sie  diese auf Richtigkeit, und
  2377.       drücken  Sie  dann  die  [PGDN]-Taste.  Nun erscheint ein Fenster,
  2378.       in dem die  wichtigsten  Einstellungen  für den Ausdruck angezeigt
  2379.       werden.   Nachdem  Sie  einen  Blick  darauf  geworfen  haben  und
  2380.       eventuelle  Änderungen vorgenommen haben, drücken Sie nochmals die
  2381.       [PGDN]-Taste.  Nach  einer Sicherheitsabfrage wird der FUP für den
  2382.       Ausdruck  aufbereitet  und dann zum Drucker geschickt. Möchten Sie
  2383.       einen   Ausdruck   vorzeitig   beenden,   dann   drücken  Sie  die
  2384.       [ESC]-Taste.
  2385.  
  2386.  
  2387.       1.5.12 Funktionsplan als ASCII-Datei abspeichern
  2388.  
  2389.       Wenn   Sie   sich   in   der   FUP-Simulation   befinden  und  die
  2390.       Tastenkombination  [ALT/P] drücken, erscheint das bekannte Fenster
  2391.       "Funktionsplan   drucken".   Wenn   Sie   im  letzten  Eingabefeld
  2392.       "Umleitung  auf  Datei"  ein  "J"  eingeben  und  anschließend die
  2393.       [PGDN]-Taste  betätigen, wird der Funktionsplan als ASCII-Datei in
  2394.       den  eingestellen  Pfad  für Anweisungslisten abgespeichert. Diese
  2395.       Funktion  dient  nur  dazu,  daß Sie einen Funktionsplan mit einer
  2396.       Textverarbeiung  oder  einem Editor weiter verwenden können. Diese
  2397.       Datei kann nicht mehr eingelesen werden.
  2398.  
  2399.                             ─── Seite 39 ───
  2400.  
  2401.       Menuepunkt SIMULATION / AG-MASKE-SIMULATION              KAPITEL 1
  2402. ──────────────────────────────────────────────────────────────────────────────
  2403.  
  2404.       1.6 AG-Maske-Simulation
  2405.  
  2406.       1.6.1 Einleitung
  2407.       
  2408.       Diese  Simulationsart ist für diejenigen Anwender gedacht, die mit
  2409.       16  Ein-  und  Ausgängen  auskommen. Die grafische Darstellung der
  2410.       Eingänge und Ausgänge als LED's oder Lampen, ist besonders für den
  2411.       SPS-Anfänger leichter zu durchschauen.
  2412.  
  2413.       Die  AG-Maske-Simulation  zeigt  auf  dem  Grafik-Bildschirm  eine
  2414.       Pseudo-  SPS  mit 16 Eingängen und 16 Ausgängen. Jeder Eingang ist
  2415.       mit   einem   Schalter   verbunden.   Diese  Schalter  können  mit
  2416.       Steuerbefehlen   als   Taster/Schalter   (Öffner  oder  Schließer)
  2417.       definiert  werden.  Je  nachdem  werden sie dann auch grafisch als
  2418.       Schließer  oder  Öffner dargestellt. Wenn Sie eine Zuweisungsliste
  2419.       programmiert  haben, erscheinen vorhandene Kommentare direkt neben
  2420.       den  Ein-  und  Ausgängen.  Diese Kommentare werden aber in dieser
  2421.       Simulationsart   wegen  Platzmangel  auf  10  Zeichen  beschränkt.
  2422.       Außerdem  sehen  Sie auf dem Bildschirm in der oberen rechten Ecke
  2423.       die  Klartextanzeige.  Diese  Anzeige kann ebenfalls mit Hilfe von
  2424.       Stuerbefehlen   programmiert  werden.  Unter  der  Klartextanzeige
  2425.       befindet   sich   ein  Fenster,  in  dem  definierte  Statuszeilen
  2426.       angezeigt werden.
  2427.  
  2428.       1.6.2 Tastenbelegung während der AG-Maske-Simulation
  2429.  
  2430.       Taste                   Befehl
  2431.       ────────────────────────────────────────────────────
  2432.  
  2433.       [Pfeil nach rechts]
  2434.       [Pfeil nach links]      Umschalten des aktiven Eingangbytes
  2435.       [0] - [7]               Umschalten von Eingängen
  2436.       [F1]..[F7]              Umschalten des 2. Eingangsbytes
  2437.                               (nur bei Schaltern nicht bei Tastern)
  2438.       [SPACE]                 Alle Eingänge auf "0" schalten
  2439.       [F9], [F10]             AnalogRaster erhöhen, erniedrigen
  2440.       [ESC]                   Simulation beenden
  2441.  
  2442.       Tastenbelegung für Analogwerteingabe siehe Seite 88.
  2443.  
  2444.       1.6.3 Welche Eingangs- und Ausgangsbytes werden angezeigt ?
  2445.  
  2446.       Die  ersten  zwei Eingangs- und Ausgangsbytes, die in der AWL/FUP-
  2447.       Simulation eingestellt sind, werden auch hier angezeigt.
  2448.       Die  angezeigten  Eingangs-  und  Ausgangsbytes  können hier nicht
  2449.       verschoben werden !
  2450.  
  2451.  
  2452.       1.6.4 Wie kann man die Eingänge umschalten ?
  2453.  
  2454.       Die  Eingänge  werden  wie in der AWL-Simulation umgeschaltet. Mit
  2455.       den  Cursor-Tasten  (Rechts,  Links)  wählen Sie zuerst das aktive
  2456.       Eingangsbyte  aus. Mit den Ziffern "0" bis "7" können Sie dann das
  2457.       gewünschte Bit umschalten.
  2458.  
  2459.                             ─── Seite 40 ───
  2460.  
  2461.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2462. ──────────────────────────────────────────────────────────────────────────────
  2463.  
  2464.       Das  untere  Eingangsbyte  kann auch mit den Funktionstasten "F10"
  2465.       und "F1" bis "F7" manipuliert werden. Dies geht aber nur, wenn die
  2466.       Eingänge nicht als Taster definiert worden sind.
  2467.  
  2468.  
  2469.  
  2470.       1.7 MENUEPUNKT KONFIGURATION
  2471.  
  2472.       1.7.1 Remanente Merker/Zähler/Timer
  2473.  
  2474.       Dieser Menuepunkt bietet Ihnen die Möglichkeit,
  2475.       remanente Merker, Zähler oder Timer festzulegen.
  2476.  
  2477.       Wenn  Sie  einen  solchen  Operanden  als remanent festlegen, wird
  2478.       dieser bei Simulationsstart nicht auf Null gesetzt.
  2479.  
  2480.       Wenn  Sie  z.B.  die  Merkerbytes 0 bis 20 remanent haben möchten,
  2481.       geben  Sie im ersten 0 und im zweiten Eingabefeld 20 ein. Wenn Sie
  2482.       keine remanente Merker haben möchten, geben Sie bei beiden Feldern
  2483.       Null ein.
  2484.       Hinweis:
  2485.       wenn  Sie  bei  beiden  Eingabefelder  die  gleiche Zahl eingeben,
  2486.       werden keine remantente Operanden festgelegt.
  2487.  
  2488.  
  2489.       1.7.2 Escape Sequenzen einstellen
  2490.  
  2491.       Allgemeines:
  2492.  
  2493.       Eine Escape-Sequenz ist eine Aneinanderreihung von ASCII- Zeichen,
  2494.       wobei  diese  mit dem ASCII-Zeichen Nr. 27 (ESC) eingeleitet wird.
  2495.       Mit   Hilfe  dieser  ESC-Sequenzen  können  Drucker  initialisiert
  2496.       werden.  D.h.  wenn  der  Drucker  solche  Zeichenketten empfängt,
  2497.       werden  diese  nicht  ausgedruckt,  sondern dazu verwendet, um den
  2498.       Drucker einzustellen.
  2499.  
  2500.       Sie  können  z.B.  Schriftart,  Zeilenabstand,  Schriftgröße  etc.
  2501.       einstellen.   Sie   können   zehn  Sequenzen  editieren  und  auch
  2502.       unabhängig  voneinander  aktivieren.  Diejenige  Sequenz,  die Sie
  2503.       aktivieren,  wird  vor jedem Ausdruck der AWL zum Drucker gesandt.
  2504.       Sie  können  die  Steuerzeichen entweder durch ASCII- Zeichen oder
  2505.       durch  dreistellige  Dezimalziffern  eingeben. Das Zeichen mit der
  2506.       ASCII  Nummer  27  (ESC)  kann  mittels dem Doppelpunkt eingegeben
  2507.       werden.  D.h.  anstatt  dem  Doppelpunkt  wird  beim  Ausdruck ein
  2508.       chr(27)  gesendet.  Steuerzeichen,  die  ein  symbolisches  ASCII-
  2509.       Zeichen  besitzen,  können  direkt  eingegeben  werden. Achten Sie
  2510.       darauf,  daß ein kleines 'u' nicht das Gleiche ist, wie ein großes
  2511.       'U'.  Wenn  Sie  die Steuerzeichen nummerisch eingeben wollen: Die
  2512.       Zahlen  müssen  im  Dezimalsystem  und  in drei Stellen eingegeben
  2513.       werden. Außerdem müssen die Zahlen in eckigen Klammern stehen.
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.                             ─── Seite 41 ───
  2520.  
  2521.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2522. ──────────────────────────────────────────────────────────────────────────────
  2523.  
  2524.       z.B.: <027 060 123 003>
  2525.  
  2526.       Dieses         Beispiel         sendet         dem        Drucker:
  2527.       chr(27)+chr(60)+chr(123)+chr(3).  Die Leerzeichen können auch weg-
  2528.       gelassen werden!
  2529.  
  2530.       Wichtig  ist, daß Sie immer 3 Stellen eingeben, und das die Zahlen
  2531.       in  eckigen  Klammern  stehen.  Sie  können  auch  beide  Methoden
  2532.       kombinieren:
  2533.  
  2534.       z.B.: <027>ahK oder :ahK (der Doppelpunkt ist chr(27))
  2535.             sendet chr(27)+'ahK'
  2536.  
  2537.       Diese  Einstellung  kann  Sie  etwas  Zeit  kosten,  bis  Sie  das
  2538.       gewünschte  Ergebnis  erreicht  haben.  Es ist aber sinnvoll diese
  2539.       Einstellung vorzunehmen, weil Sie dann nicht mehr die Schriftgröße
  2540.       und  Zeilenabstand  am  Drucker  einstellen  müssen.  Wenn Sie das
  2541.       gewünschte  Ergebnis  erreicht  haben,  speichern  Sie die Sequenz
  2542.       sofort  ab. (unter Konfiguratiom / Konfiguration sichern) Wenn Sie
  2543.       keine Sequenz eingeben wollen, geben Sie als Sequenz ein: <000>
  2544.  
  2545.       Hinweis:
  2546.  
  2547.       Die geschweifte Klammer-Auf ('{') leitet einen Kommentar ein, d.h.
  2548.       alles  was  hinter  diesem Zeichen steht wird nicht gesendet. Wenn
  2549.       Sie  dieses  Zeichen als Steuerzeichen benutzen wollen, können Sie
  2550.       das dezimale Äquivalent benutzen: <123>
  2551.  
  2552.  
  2553.  
  2554.       1.7.3 Testdruck
  2555.  
  2556.       Hier  können  Sie  auf  einfache  Weise ausprobieren, ob Ihre ESC-
  2557.       Sequenz-Einstellung   sinnvoll   ist.   Für   den   Ausdruck   des
  2558.       Funktionsplans  müssen  Sie  sicherstellen, daß die ESC-Sequenz so
  2559.       gewählt  wurde,  daß  Ihr  Drucker mind. 106 Spalten drucken kann.
  2560.       Geben  Sie  also im Eingabefeld 'Zeichen pro Zeile' 106 ein. Dabei
  2561.       ist ein linker Rand von ca. 10 sinnvoll. Wenn Sie eine ESC-Sequenz
  2562.       für  die  Anweisungsliste  testen wollen, geben Sie im Eingabefeld
  2563.       'Zeichen pro Zeile' 73 und einen linken Rand  von  4  ein.  
  2564.       Wenn Sie keine ESC-Sequenz einstellen und auch
  2565.       keine  hardwaremäßige  Einstellung  vornehmen,  druckt Ihr Drucker
  2566.       maximal  80  Zeichen  pro Zeile. Diese Einstellung ist für die AWL
  2567.       optimal, aber für den FUP nicht ausreichend.
  2568.  
  2569.       Beispiel für einen Probeausdruck für den Funktionsplan:
  2570.  
  2571.       Geben Sie im 1. Eingabefeld (Anzahl der Spalten) 106 ein.
  2572.  
  2573.       Im  zweiten  Eingabefeld  müssen  Sie  abschätzen  wieviele Zeilen
  2574.       möglich  sind. Wenn Sie sich nicht sicher sind, geben Sie z.B. 100
  2575.       ein.
  2576.  
  2577.  
  2578.  
  2579.                             ─── Seite 42 ───
  2580.  
  2581.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2582. ──────────────────────────────────────────────────────────────────────────────
  2583.  
  2584.       Im   dritten   Eingabefeld  müssen  Sie  die  Druckerschnittstelle
  2585.       festlegen.  Wenn  Sie  nur eine Druckerschnittstelle besitzen, muß
  2586.       hier die '1' stehen.
  2587.  
  2588.       Im vierten Eingabefeld ist nach der ESC-Sequenz gefragt. Geben Sie
  2589.       hier  diejenige  ESC-Sequenznummer ein, die Sie vorher eingestellt
  2590.       haben.
  2591.  
  2592.       Damit  Sie  die  ausgedruckten  Blätter anschließend auch abheften
  2593.       können,  sollten  Sie  im  fünften  Eingabefeld  einen linken Rand
  2594.       festlegen. Geben Sie also hier z.B. '9' ein.
  2595.  
  2596.       Nachdem  Sie  nun  alle  Eingaben  mit  der [PGDN]-Taste bestätigt
  2597.       haben, wird der Ausdruck nach einer Sicherheitsabfrage gestartet.
  2598.  
  2599.       Der Ausdruck sollte nun folgendermaßen aussehen:
  2600.  
  2601.                 linker Rand
  2602.                   ┌─┴──┐    Anzahl der Spalten
  2603.                         ┌──────────┴────────────┐
  2604.                         │                       │
  2605.                   ┌─────────────────────────────────┐
  2606.                   │                                 │
  2607.                   │    1                       #    │
  2608.                   │    2                       #    │
  2609.                   │    3                       #    │
  2610.                   │    4                       #    │
  2611.                   │    5                       #    │
  2612.                   │    .                       .    │
  2613.                   │    .                       .    │
  2614.  
  2615.       Die  Zahlen und das '#'-Zeichen sollten also ungefähr in der Mitte
  2616.       des Blattes liegen. Ist das der Fall ist Ihre ESC- Sequenz korrekt
  2617.       eingestellt.
  2618.  
  2619.       Für  den  Ausdruck  der  Anweisungsliste müssen Sie auch eine ESC-
  2620.       Sequenz  einstellen,  obwohl  nicht  mehr als 73 Zeichen pro Zeile
  2621.       ausgedruckt  werden.  Der  Grund  hierfür  ist: wenn Sie einen FUP
  2622.       ausdrucken   wird   der  Drucker  auf  eine  bestimmte  Schriftart
  2623.       eingestellt.  Wenn  Sie  nun  anschließend die AWL ausdrucken, ist
  2624.       diese  Schriftart  noch  aktiv.
  2625.       
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.                             ─── Seite 43 ───
  2640.  
  2641.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2642. ──────────────────────────────────────────────────────────────────────────────
  2643.  
  2644.       Ich  habe  Ihnen  ein  paar  Escape-Sequenzen  für die wichtigsten
  2645.       Drucker zusammengestellt:
  2646.  
  2647.       Wenn  Sie  einen  Nadeldrucker  besitzen,  sollten  Sie die EPSON-
  2648.       Einstellung ausprobieren.
  2649.  
  2650.         ╒═════════════════╤════════════════════════════╤═════╤══════╕
  2651.         │Drucker          │     Escape Sequenz         │Rand │Zeilen│
  2652.         │                 │                            │     │/Seite│
  2653.         ╞═════════════════╧════════════════════════════╧═════╧══════╡
  2654.         │    Epson kompatible Drucker (9 oder 24 Nadel Drucker)     │
  2655.         ╞═════════════════╤════════════════════════════╤═════╤══════╡
  2656.         │Esc-Sequence AWL │:@:<018>                    │ 5   │ 56   │
  2657.         ├─────────────────┼────────────────────────────┼─────┼──────┤
  2658.         │Esc-Sequence FUP │:@:<015>                    │ 8   │ 56   │
  2659.         ╞═════════════════╧════════════════════════════╧═════╧══════╡
  2660.         │         HP Desk Jet 500 & kompatible                      │
  2661.         ╞═════════════════╤════════════════════════════╤═════╤══════╡
  2662.         │Esc-Sequence AWL │:(s0p12h12v0s0b1Q:&l6D:&l3E │ 5   │ 59   │
  2663.         ├─────────────────┼────────────────────────────┼─────┼──────┤
  2664.         │Esc-Sequence FUP │:(s0p16h12v0s0b1Q:&l7D:&l3E │ 10  │ 69   │
  2665.         ╞═════════════════╧════════════════════════════╧═════╧══════╡
  2666.         │         HP-Laser Jet & kompatible                         │
  2667.         ╞═════════════════╤════════════════════════════╤═════╤══════╡
  2668.         │Esc-Sequence AWL │:(s0p8h12V:&l6D             │ 4   │ 63   │
  2669.         ├─────────────────┼────────────────────────────┼─────┼──────┤
  2670.         │Esc-Sequence FUP │:(s0p16h12V:&l8D            │ 10  │ 84   │
  2671.         └─────────────────┴────────────────────────────┴─────┴──────┘
  2672.  
  2673.  
  2674.       Wenn   Sie   nun  einen  Ausdruck  starten,  müssen  Sie  nur  die
  2675.       eingestellte Sequenz im entsprechenden Eingabefeld aktivieren.
  2676.  
  2677.  
  2678.  
  2679.       1.7.4 AWL/FUP-Zeilen pro Seite
  2680.  
  2681.       AWL-Zeilen pro Seite:
  2682.  
  2683.       Hier  haben  Sie  die Möglichkeit, die Anzahl der Zeilen pro Seite
  2684.       einzustellen.  Wenn  die  eingestellte Zahl erreicht ist, wird ein
  2685.       Seitenvorschub  ausgeführt  und  der 'AWL-Kopf' wird gedruckt. Die
  2686.       Anzahl  der  möglichen  Zeilen  ist  natürlich  abhängig  von  der
  2687.       Zeichengröße  und  dem  Zeichenabstand. Deshalb stellen Sie zuerst
  2688.       die   gewünschte   Escape-Sequenz   ein   und  machen  dann  einen
  2689.       Testausdruck  mit  Hilfe  des  Menueunterpunks  'Testdruck'. Diese
  2690.       Einstellung  müssen  Sie  nur  vornehmen, wenn Sie auf jedem Blatt
  2691.       einen  'AWL-Kopf'  haben wollen. Wenn Sie das nicht wollen, können
  2692.       Sie  die  Anzahl  der  Zeilen pro Seite einfach auf eine hohe Zahl
  2693.       setzen, die nie erreicht wird. Ermitteln Sie diese Einstellung mit
  2694.       Hilfe des Menueunterpunkts "Testdruck".
  2695.  
  2696.  
  2697.  
  2698.  
  2699.                             ─── Seite 44 ───
  2700.  
  2701.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2702. ──────────────────────────────────────────────────────────────────────────────
  2703.  
  2704.       Anmerkungen
  2705.  
  2706.       ■ Im  'AWL-Kopf'  stehen  Informationen zum Baustein. Z.B. Art des
  2707.         Bausteines, Größe, Autor u.s.w.
  2708.  
  2709.       ■ Der  Begriff  'AWL-Zeilen' bezieht sich auf die gesamten Zeilen,
  2710.         dabei müssen auch die Zeilen des AWL-Kopfes mitgerechnet werden.
  2711.  
  2712.  
  2713.       FUP-Zeilen pro Seite:
  2714.  
  2715.       Wenn  Sie einen Funktionsplan ausdrucken wollen, müssen Sie zuerst
  2716.       diese  Einstellung  vornehmen. Vor dem Ausdruck des Funktionsplans
  2717.       werden zuerst die Funktionsblöcke der AWL gesucht, und danach wird
  2718.       eine  Seiteneinteilung  vorgenommen.  Wenn diese Einstellung nicht
  2719.       stimmt  wird  entweder vorzeitig oder mitten in einem Netzwerk ein
  2720.       Seitenvorschub   vollzogen.   Deshalb   stellen   Sie  zuerst  die
  2721.       gewünschte  Escape-Sequenz  ein und machen dann einen Testausdruck
  2722.       mit  Hilfe  des  Menueunterpunks  'Testdruck'. Sie können dann die
  2723.       Anzahl  der  Zeilen  pro Seite einfach ablesen. Geben Sie aber zur
  2724.       Sicherheit  eine  Zeile  weniger  ein, als in Wirklichkeit möglich
  2725.       ist.
  2726.  
  2727.       Anmerkung
  2728.       ■ Der  Begriff  'FUP-Zeilen' bezieht sich auf die gesamten Zeilen,
  2729.         dabei müssen auch die Zeilen des FUP-Kopfes mitgerechnet werden.
  2730.  
  2731.  
  2732.       1.7.5 Interne Kommentare löschen
  2733.  
  2734.       Wenn   Sie   eine   Zuweisungsliste  erstellt  haben,  werden  die
  2735.       Kommentare im RAM abgespeichert. Wenn Sie diese Kommentare aus dem
  2736.       Speicher   entfernen   möchten,   können   Sie  diesen  Menuepunkt
  2737.       aktivieren.
  2738.   
  2739.   
  2740.       1.7.6 Tastaturgeschwindigkeit
  2741.   
  2742.       Hier   haben   Sie   die  Möglichkeit,  die Tastaturwiederholrate
  2743.       einzustellen. Wenn dieser Wert zu klein ist, kann es sein, daß der
  2744.       Tastaturpuffer  zu schnell gefüllt wird. Die Folge ist ein Piepsen
  2745.       des Lautsprechers. Ist das bei Ihnen der Fall, dann geben Sie hier
  2746.       eine  größere  Zahl  ein.  Den Wert, den Sie hier eingeben müssen,
  2747.       hängt von Ihrem Computer und Ihrer Tastatur ab. Richtwerte:
  2748.  
  2749.       AT 286/12 : ca. 20 einstellen
  2750.       AT 386/33 : ca. 05 einstellen
  2751.       AT 486/33 : ca. 01 einstellen
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.                             ─── Seite 45 ───
  2760.  
  2761.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2762. ──────────────────────────────────────────────────────────────────────────────
  2763.  
  2764.       1.7.7 Einstellen der Videomodi
  2765.  
  2766.       In   diesem   Menuepunkt   haben  Sie  die  Möglichkeit,  für  die
  2767.       Anweisungsliste und für den Funktionsplan einen eigenen Videomodus
  2768.       einzustellen.  Da  die  erweiterten  Videomodi nicht genormt sind,
  2769.       müssen Sie die Anleitung Ihrer VGA-Karte zur Hand nehmen, und dort
  2770.       einen  geeigneten Videomodus suchen. Suchen Sie in Ihrer Anleitung
  2771.       nach  den  Stichworten  'display  formats',  'display  modes' oder
  2772.       'screen modes'.
  2773.  
  2774.       Für die Einstellung eines neuen Videomodus benötigen
  2775.       Sie 3 Angaben:
  2776.  
  2777.       1. Die Nummer des Videomodi       (hexadezimale Schreibweise)
  2778.       2  Die Anzahl der Spalten/Columns (dezimale Schreibweise)
  2779.       3. Die Anzahl der Zeilen/Rows     (dezimale Schreibweise)
  2780.  
  2781.       Geben  Sie  diese  Zahlen  im entsprechenden Eingabefeld ein. Nach
  2782.       Drücken   der   [BILD]-  oder  [PGDN]-Taste  wird  der  Videomodus
  2783.       aktiviert.   Wenn  Sie  den  Videomodus  für  die  Anweisungsliste
  2784.       geändert haben, wird er nach Drücken einer Taste sofort aktiviert.
  2785.       Wenn  Sie  sich  bei  der  Anzahl der Zeilen oder Spalten verlesen
  2786.       haben,  kann  der  Bildschirm nicht mehr richtig aufgebaut werden.
  2787.       Durch   Drücken   der   [F5]-Taste  gelangen  Sie  wieder  in  den
  2788.       Standardmodus   zurück,   und   können  die  Einstellung  nochmals
  2789.       vornehmen.
  2790.  
  2791.  
  2792.       Hinweise:
  2793.  
  2794.       ■ mit  Hilfe  der  [F5]-Taste  können  Sie  nur  den Modus für die
  2795.         Anweisungsliste umschalten.
  2796.  
  2797.       ■ die  [F5]-Taste  ist nur aktiv, wenn Sie sich in der Menueleiste
  2798.         befinden.
  2799.  
  2800.       ■ wenn  Sie  falsche  Werte  eingegeben haben, kann der Bildschirm
  2801.         nicht  mehr  korrekt aufgebaut werden. Gehen Sie dann auf keinen
  2802.         Fall in den Editor, sondern drücken Sie gleich die [F5]-Taste.
  2803.  
  2804.       ■ Das  Produkt  aus  Anzahl der Spalten und Anzahl der Zeilen darf
  2805.         8100  nicht  überschreiten.  Es wäre also z.B. ein Modus mit 132
  2806.         Spalten und 60 Zeilen gerade noch möglich (132*60=7960).
  2807.  
  2808.       ■  Auf der Diskette ist die Datei "VGAMODES.DOC" abgespeichert. In
  2809.          dieser  Datei  finden Sie zu den gängigsten Karten die Textmodi
  2810.          aufgelistet.
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.                             ─── Seite 46 ───
  2820.  
  2821.       Menuepunkt KONFIGURATION                                 KAPITEL 1
  2822. ──────────────────────────────────────────────────────────────────────────────
  2823.  
  2824.       1.7.8  Einstellung der PAE/PAA- Leiste
  2825.   
  2826.       Diese  Funktion  gibt  Ihnen  die  Möglichkeit,  die Eingangs- und
  2827.       Ausgangsleiste  (PAE,  PAA)  individuell  einzustellen. Sie können
  2828.       angeben,  wieviele  Eingangsbytes (1-8) und wieviele Ausgangsbytes
  2829.       (1-8)  dargestellt  werden  sollen.  Desweiteren  können  Sie frei
  2830.       einstellen,  welche  Eingangsbytes  bzw.  Ausgangsbytes  angezeigt
  2831.       werden sollen.
  2832.  
  2833.       Beispiel:
  2834.  
  2835.       In  der  Eingangsleiste  sollen  die
  2836.       Eingangsbytes  1,10,127 und 32 hintereinander angezeigt werden.
  2837.  
  2838.       =>  Geben  Sie  im Eingabefeld "PAE Anordnung" ein: 1,10,127,32.
  2839.  
  2840.       Im Eingbefeld PAE-Länge müssen Sie mindestens eine "4" einstellen,
  2841.       da  Sie  4 Eingangsbytes angegeben haben. Gegen Sie in diesem Fall
  2842.       mehr  als  "4" an, werden die restlichen Eingangsbytes fortlaufend
  2843.       angezeigt.
  2844.  
  2845.       Beachten  Sie hierbei, daß das Ganze nur funktioniert, wenn Sie in
  2846.       der  AWL  !nicht!  den  Steuerbefehl "$B" verwendet haben. Mit der
  2847.       [TAB]-Taste   können   Sie   wie   üblich   die   Eingangs-   bzw.
  2848.       Ausgangsleiste verschieben.
  2849.  
  2850.       Wenn Sie wieder Ihre eingestellten Werte haben wollen, drücken Sie
  2851.       [ALT]/[Return] oder [STRG]/[P] gleichzeitig.
  2852.  
  2853.       1.7.9 Monochromeinstellung
  2854.  
  2855.       Wird  dieser  Punkt  aktiviert, werden alle internen Einstellungen
  2856.       für Hercules-Grafikkarten aktiviert. Falls die Datei "FARBEN.MON"
  2857.       bei  Herculeskarten  nicht  existiert, wird dieser Menueunterpunkt
  2858.       beim Programmstart ausgeführt.
  2859.  
  2860.  
  2861.       1.7.10 Coloreinstellung
  2862.  
  2863.       Wird  dieser  Punkt  aktiviert, werden alle internen Einstellungen
  2864.       für  VGA/EGA- Karten aktiviert. Falls die Datei "FARBEN.VGA" bei
  2865.       VGA  oder  EGA-Karten nicht existiert, wird dieser Menueunterpunkt
  2866.       beim Programmstart ausgeführt.
  2867.  
  2868.  
  2869.       1.7.11 Konfiguration laden
  2870.  
  2871.       Die  Konfigurationsdatei "SPS.CFG" wird eingelesen und alle 
  2872.       Parameter werden neu eingestellt.
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.                             ─── Seite 47 ───
  2880.  
  2881.       Menuepunkt AG                                            KAPITEL 1
  2882. ──────────────────────────────────────────────────────────────────────────────
  2883.  
  2884.       1.8 Menuepunkt AG
  2885.  
  2886.       1.8.0 Allgemeines
  2887.  
  2888.       Die AG-Funktionen wurden mit folgenden AG's getestet:
  2889.       90U, 95U, 100U, 115U.
  2890.  
  2891.       Um  zu überprüfen, ob die Verbingung zum AG aufgebaut werden kann,
  2892.       sollten Sie den Menuepunkt "Schnittstelle prüfen" aktivieren. Wenn
  2893.       die  Prüfung  nicht  ordnungsgemäß  mit der Meldung "O.K." beendet
  2894.       wird,   können  alle  anderen  AG-Funktionen  im  Simulator  nicht
  2895.       ausgeführt werden.
  2896.       Wenn  der  Menuepunkt  "Schnittstelle  prüfen" nicht funktioniert,
  2897.       könnte das folgende Gründe haben:
  2898.  
  2899.       - die eingestellte Schnittstellennummer stimmt nicht.
  2900.  
  2901.       - Ihr Verbindungskabel ist defekt oder nicht angeschlossen
  2902.         (V24 <->20mA).
  2903.  
  2904.       - Wenn   Probleme  mit  der  Protected-Mode  Version  (SPS386.EXE)
  2905.         auftreten, klären  Sie  zuerst ab, ob diese Probleme auch in der
  2906.         Real-Version  (SPS.EXE)  auftreten. Ist dies der Fall, versuchen
  2907.         Sie   mal   das  Problem  zu  beheben,  indem  Sie  den  Treiber
  2908.         "EMM386.EXE" in der Datei "C:\CONFIG.SYS" entfernen.
  2909.  
  2910.  
  2911.  
  2912.       1.8.1 Was Sie beachten müssen ...
  2913.  
  2914.       ■ Wenn     Sie    im    Simulator    Kommentare,    Steuerbefehle,
  2915.         Zuweisungslisten,  ...  programmiert  haben,  werden  diese AWL-
  2916.         Zeilen  natürlich  nicht  in  das  AG  übertragen.  Wenn Sie nun
  2917.         Bausteine   vom   AG   holen,   und  die  bestehenden  Bausteine
  2918.         überschreiben,  sind  sämtliche  oben genannten AWL-Zeilen nicht
  2919.         mehr  vorhanden.  Sie  sollten  also  bestehende Bausteine nicht
  2920.         überschreiben,   sondern   einen   neuen   Bausteinnamen  wählen
  2921.         ([ALT/R]).
  2922.  
  2923.       ■ Wenn  sich  im  AG Operationen befinden, die der Simulator nicht
  2924.         simulieren  kann  (AF, AS, LIR, TIR, ...), werden diese durchaus
  2925.         empfangen.  Nachdem  der Baustein empfangen worden ist, erhalten
  2926.         Sie  eine  Liste,  in  der  alle  empfangenen  nichtsimulierbare
  2927.         Operationen  aufgelistet werden. Diese Operationen werden in der
  2928.         Simulation nicht bearbeitet !
  2929.  
  2930.       ■ Wenn  Sie  in  einem  Funktionsbaustein  Sprungbefehle zu Marken
  2931.         einsetzen,  darf  das  Sprungziel  nur  innerhalb des Netzwerkes
  2932.         liegen.
  2933.  
  2934.       ■ Geben Sie einem FB "immer" einen Namen (F10 im Editor drücken)
  2935.  
  2936.       ■ Wenn Sie parametrierbare FB's programmieren, darf zwischen den
  2937.         BEZ-Listen keine Leerzeilen stehen.
  2938.  
  2939.                             ─── Seite 48 ───
  2940.  
  2941.       Menuepunkt AG                                            KAPITEL 1
  2942. ──────────────────────────────────────────────────────────────────────────────
  2943.  
  2944.       ■ Nicht   alle   AG's   können   sämtliche   Bausteine  verwalten.
  2945.         Informieren  Sie  sich,  welche  Bausteine Ihr AG unterstützt.
  2946.  
  2947.       ■ Nicht  alle  AG's können alle Befehle des Simulators bearbeiten.
  2948.         Ein  AG  S5-90U kann z.B. keine parametrierbare FB's bearbeiten.
  2949.         Wenn  Sie  einen  solchen  Baustein  übertragen,  wird dieses AG
  2950.         sofort in den "STOP"-Betrieb übergehen.
  2951.  
  2952.       ■  Ältere AG's (z.B. Vorgängermodell der 90U) können Bausteine nur
  2953.          im  STOP-Zustand  übertragen.  Tritt ein solcher Fall auf, kann
  2954.          der Simulator keine Fehlermeldung anzeigen.
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.       1.8.2 Übertragen PC -> AG (ALT/F5)
  2966.  
  2967.       1.8.2.1 Bausteinliste holen (Übertragen von mehreren Bausteinen)
  2968.       
  2969.       Es  erscheint  ein  Dialogfenster,  in dem alle Bausteine in einer
  2970.       Auswahl- box erscheinen. Sie können nun die gewünschten Bausteine,
  2971.       die  Sie  übertragen  möchten,  markieren.Wenn Sie keine Bausteine
  2972.       markieren, gilt der hervorgehobene Baustein als markiert. Wenn Sie
  2973.       anschließend  die  [RETURN]-Taste betätigen, werden alle markierte
  2974.       Bausteine  zum  AG  übertragen. Um den Vorgang abzubrechen, können
  2975.       Sie jederzeit die [ESC]-Taste drücken.
  2976.  
  2977.  
  2978.       1.8.2.2 Manuelle Eingabe (Übertragung eines Bausteines)
  2979.  
  2980.       Die  manuelle  Eingabe ermöglicht die Übertragung eines Bausteins.
  2981.       Um  den  aktuellen  Baustein  im Editor zu übertragen, sollten Sie
  2982.       diesen  Menuepunkt  benutzen,  da  dieser  Baustein im Eingabefeld
  2983.       schon eingetragen ist. Sie können aber auch jeden anderen Baustein
  2984.       angeben.  Wenn  der  Baustein  nicht vorhanden ist, erscheint eine
  2985.       entsprechende Fehlermeldung.
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.                             ─── Seite 49 ───
  3000.  
  3001.       Menuepunkt AG                                            KAPITEL 1
  3002. ──────────────────────────────────────────────────────────────────────────────
  3003.  
  3004.       1.8.3 Übertragen AG -> PC (ALT/F6)
  3005.       
  3006.       1.8.3.1 Bausteinliste holen (BuchAG) - Übertragung von mehreren 
  3007.               Bausteien.
  3008.     
  3009.       Dieser Menuepunkt dient zum Übertragen von mehreren Bausteinen vom
  3010.       AG  zum  Simulator.  Es  erscheint  ein  Dialogfenster in dem alle
  3011.       Bausteine  aufgelistet  werden.  Mit der Tastenkombination [ALT/R]
  3012.       können  Sie  vor dem Übertragen einen neuen Bausteinnamen angeben.
  3013.       Wenn  Sie  dies  nicht  tun, werden die bestehenden Bausteine nach
  3014.       einer   Sicherheitsabfrage   überschrieben.   Markieren   Sie  die
  3015.       gewünschten  Bausteine,  und  drücken  Sie die [Return]-Taste. Nun
  3016.       werden   alle  markieren  Bausteine  auf  die  Festplatte/Diskette
  3017.       abgespeichert.
  3018.  
  3019.  
  3020.       1.8.3.2 Manuelle Eingabe 
  3021.  
  3022.       Mit  diesem  Menuepunkt  können  Sie  einen  Baustein  vom  AG zum
  3023.       Simulator  übertragen.  Wenn  der  angegebene Baustein im AG nicht
  3024.       vorhanden ist, erscheint eine entsprechende Fehlermeldung.
  3025.  
  3026.  
  3027.  
  3028.       1.8.4 Bausteine im AG löschen (ALT/F8)
  3029.  
  3030.       1.8.4.1 Alle Bausteine im AG löschen
  3031.  
  3032.       Dieser  Funktion  löscht alle Anwenderbausteine im AG (Urlöschen).
  3033.       Dieser  Menuepunkt  kann  angewandt  werden,  wenn  Sie  ein neues
  3034.       Programm  in das AG übertragen wollen, oder wenn das AG nicht mehr
  3035.       in den "RUN"-Betrieb übergeht.
  3036.  
  3037.  
  3038.       1.8.5 Komprimieren 
  3039.  
  3040.       Diese Funktion wird benötigt, wenn der RAM-Speicher im AG zu klein
  3041.       wird. Jedes Mal, wenn Sie bestehende Baustein im AG überschreiben,
  3042.       wird  der  alte  Baustein nicht gelöscht, sondern nur als ungültig
  3043.       markiert.  D.h. der alte Baustein befindet sich noch im AG, obwohl
  3044.       er  nie  mehr  benutzt  wird.  Irgendwann ist der RAM-Speicher mit
  3045.       diesen  Speicherleichen  so  angereichert, das kein freier RAM für
  3046.       die   neuen   Bausteinen   zur  Verfügung  steht.  Der  Menuepunkt
  3047.       "Komprimieren"  entfernt  nun  diese  Bausteine,  damit wieder RAM
  3048.       Speicher für andere Bausteine frei wird.
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.                             ─── Seite 50 ───
  3060.  
  3061.       Menuepunkt AG                                            KAPITEL 1
  3062. ──────────────────────────────────────────────────────────────────────────────
  3063.  
  3064.       1.8.6 Buch AG (ALT/F7)
  3065.  
  3066.       1.8.6.1 "Alle" Bausteine auflisten
  3067.  
  3068.       Die  "Buch  AG"-Funktion liefert eine Übersicht über alle gültigen
  3069.       Bausteine  im  AG.  Es  werden nacheinander alle OB's, PB's, FB's,
  3070.       SB's und DB's aufgelistet.
  3071.  
  3072.  
  3073.       1.8.6.1 "OB", "PB", "FB", "SB", "DB" - nur
  3074.                Bestimmte Bausteintypen auflisten 
  3075.  
  3076.       Wenn  Sie  nur  die Bausteinliste von einem bestimmten Bausteintyp
  3077.       benötigen,  sollten  Sie diesen Menuepunkt anwählen. Es erscheinen
  3078.       dann nur die Bausteine, zum ausgewählten Bausteintyp.
  3079.  
  3080.  
  3081.       1.8.7 AG Start/Stop 
  3082.  
  3083.       1.8.7.1 AG Start (ALT/F9)
  3084.  
  3085.       Dieser Menuepunkt schaltet das AG in den "RUN"-Betrieb. Ist das AG
  3086.       bereits  im  "RUN"-Betrieb, bleibt  es  auch  weiterhin  in diesem
  3087.       Zustand.
  3088.  
  3089.  
  3090.       1.8.7.2 AG Stop (ALT/F10)
  3091.  
  3092.       Dieser  Menuepunkt  schaltet das AG in den "STOP"-Betrieb. Ist das
  3093.       AG  bereits  im "STOP"-Betrieb, bleibt es auch weiterhin in diesem
  3094.       Zustand.
  3095.  
  3096.  
  3097.       1.8.8 Schnittstelle prüfen
  3098.  
  3099.       Diese Funktion dient nur dazu, um zu überprüfen, ob die Verbindung
  3100.       zum AG aufgebaut werden kann. Wenn dies der Fall ist, erhalten Sie
  3101.       ein freundliches "O.K."
  3102.  
  3103.  
  3104.  
  3105.       1.8.9 Kommunikationsparameter
  3106.  
  3107.       AG-Schnittstelle
  3108.       
  3109.       In  diesem  Eingabefeld  kann die gewünschte Schnittstelle für das
  3110.       Automatisierungsgerät einstellen.
  3111.  
  3112.       PC Panel-Schnittstelle
  3113.  
  3114.       In   diesem   Eingabefeld   kann   die   Schnittstelle   für   das
  3115.       Visualisierungsprogramm "PC Panel" eingestellt werden.
  3116.  
  3117.  
  3118.  
  3119.                             ─── Seite 51 ───
  3120.  
  3121.       Menuepunkt AG                                            KAPITEL 1
  3122. ──────────────────────────────────────────────────────────────────────────────
  3123.  
  3124.       PC Panel-Anzahl der Worte/Zyklus
  3125.  
  3126.       Die    Kommunikation   der   beiden   Programme   vollzieht   sich
  3127.       ausschließlich  über  Datenwörter eines Datenbausteins. Mit dieser
  3128.       Einstellung  kann  man  nun  angeben,  wieviele  Worte  pro Zyklus
  3129.       übertragen  werden  sollen. Die Voreinstellung liegt hier bei etwa
  3130.       10 Worte pro Zyklus. Je größer diese Zahl ist, desto schneller ist
  3131.       der  Datenaustausch  beider Programme. Der Nachteil wäre dann, daß
  3132.       die Zykluszeit der Programmberarbeitung sehr ansteigt.
  3133.  
  3134.  
  3135.       Interrupt Nr. für COM3 und COM4.
  3136.  
  3137.       Da die Interrupt Nr. für COM3 und COM4 je nach Hardwareeinstellung
  3138.       verschieden  ist,  hat man hier die Möglichkeit, die Interrupt Nr.
  3139.       einzustellen.  Wenn  Sie sich nicht sicher sind, welche Interrupts
  3140.       durch  Ihre  I/O-Karte  belegt  sind,  sollten  Sie COM1 oder COM2
  3141.       verwenden.
  3142.       Bei  den Standard-Karten liegt COM3 auf 0Chex und COM4 auf 0Bhex.
  3143.  
  3144.       1.8.10 Parameter zeigen
  3145.  
  3146.       Dieser  Menuepunkt  zeigt die aktivierte Schnittstellennurmmer mit
  3147.       allen wichtigen Parametern.
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.                             ─── Seite 52 ───
  3180.  
  3181.       Menuepunkt SONSTIGES                                     KAPITEL 1      
  3182. ──────────────────────────────────────────────────────────────────────────────
  3183.  
  3184.       1.9 Menuepunkt Sonstiges
  3185.  
  3186.       1.9.1 Anweisungsliste ausdrucken:
  3187.      
  3188.       Hier kann die Anweisungsliste ausgedruckt werden. Theoretisch kann
  3189.       jeder  Drucker  verwendet  werden,  da  nur ASCII-Zeichen gesendet
  3190.       werden.  Als  Steuerzeichen  werden  nur die ASCII- Zeichen Nr. 13
  3191.       (Wagenrücklauf),    Nr.    10    (Zeilenvoschub)    und   Nr.   12
  3192.       (Seitenvorschub)  verwendet. Zuerst erscheint ein Kontrollfenster,
  3193.       in  dem die Bausteindaten angezeigt werden. Konrollieren Sie diese
  3194.       Angaben  auf  Richtigkeit,  und  ändern Sie diese bei Bedarf. Wenn
  3195.       alle   Angaben   richtig   sind,   drücken  Sie  die  [PGDN]  oder
  3196.       [BILD]-Taste.
  3197.  
  3198.       Jetzt  erscheint  ein  Fenster, in dem  Sie folgende Einstellungen
  3199.       vornehmen können:
  3200.  
  3201.                   Drucker Port Nr.       [1]
  3202.                   Aktive Escape Sequenz  [1 ]
  3203.                   Linker Rand            [4  ]
  3204.                   AWL-Zeilen pro Seite   [55]
  3205.                   AWL/FUP-Kopf drucken   [J]
  3206.  
  3207.       Hier   werden  nochmals  die  wichtigsten  Einstellungen  für  den
  3208.       Ausdruck  angezeigt,  und  können auch hier verändert werden. Wenn
  3209.       Sie  die Angaben mit Hilfe der [PGDN] oder [BILD]-Taste bestätigen
  3210.       wird    nach    einer   Sicherheitsabfrage   die   Anweisungsliste
  3211.       ausgedruckt.
  3212.  
  3213.       Ist  der  angeschlossene  Drucker  nicht betriebsbereit, erscheint
  3214.       eine Fehlermeldung.
  3215.  
  3216.       Anmerkung
  3217.  
  3218.       ■ Mit  der Einstellung der Escape-Sequenzen können
  3219.         Sie Schriftart, Zeilenabstand etc. einstellen.
  3220.  
  3221.  
  3222.  
  3223.  
  3224.       1.9.2 Querverweisliste erzeugen
  3225.  
  3226.       Diese  Funktion  erzeugt  eine Querverweisliste aller Operanden in
  3227.       allen  Bausteinen. Wie die Querverweisliste aufgebaut ist, wird am
  3228.       Anfang  der Liste erklärt. Hier haben Sie auch die Möglichkeit die
  3229.       Querverweisliste auszudrucken ([D]-drücken).
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.                             ─── Seite 53 ───
  3240.  
  3241.       Menuepunkt SONSTIGES                                     KAPITEL 1      
  3242. ──────────────────────────────────────────────────────────────────────────────
  3243.  
  3244.  
  3245.       1.9.3 PC Panel- Verbindung testen
  3246.  
  3247.       Der  Simulator  kann  mit Visualisierungssoftware der Firma AIT in
  3248.       Augsburg  kommunizieren.  Es werden zwei Rechner benötigt. Auf dem
  3249.       einen  Rechner  läuft  der  Simulator  und auf dem anderen Rechner
  3250.       läuft das  Visualisierungsprogramm  "PC Panel". Die Rechner müssen
  3251.       über  ein  s.g.  NULLMODEM-Kabel über die seriellen Schnittstellen
  3252.       verbunden werden.
  3253.  
  3254.       Dieser  Menuepunkt  dient nun dazu, um die Verbindung zwischen den
  3255.       beiden   Programmen   zu  prüfen.  Zuerst  muß  dieser  Menuepunkt
  3256.       aktiviert  werden.  Danach  starten  Sie  auf dem Zweitrechner die
  3257.       Visualisierungssoftware.  Aktivieren  Sie auch hier den Menuepunkt
  3258.       "Optionen/Simulator-Verbindung  prüfen".  Wenn  nun die Verbindung
  3259.       aufgebaut   werden  kann,  erscheint  in  beiden  Programmen  eine
  3260.       entsprechende Meldung.
  3261.  
  3262.       Die   Schnittstelle  für   "PC Panel"   muß   mit  dem  Menuepunkt
  3263.       "AG/Kommunikationsparameter" eingestellt werden.
  3264.  
  3265.  
  3266.  
  3267.       1.10 Menuepunkt Infos
  3268.  
  3269.       1.10.1 Befehlssatz
  3270.  
  3271.       Wird   dieser   Menuepunkt   aktiviert,   wird  zuerst  die  Datei
  3272.       'BEFEHLE.DOC'  eingelesen.  Sie  können  nun  mit  den  [Pfeil  n.
  3273.       oben]/[Pfeil   n.unten]/[PGDN]/[PGUP]-   Tasten   den  Befehlssatz
  3274.       anschauen.  Mit  der  Option  'Suchen'  können  Sie  gezielt  nach
  3275.       Befehlen  suchen.  Beachten  Sie bei der Eingabe von Suchbegriffen
  3276.       darauf,  daß Klein- und Großschreibung unterschieden wird. Mit der
  3277.       Taste  'D'  können  Sie die Datei ausdrucken. Zuerst wird nach der
  3278.       gewünschten  Escape-Sequenz  abgefragt.  Wenn  Sie  keine  Escape-
  3279.       Sequenzen  aktivieren  möchten,  geben Sie hier Null ein. Nach der
  3280.       [Return]  Taste können Sie noch einen linken Rand eingeben. Danach
  3281.       wird, falls der Drucker betriebsbereit ist, die Datei ausgedruckt.
  3282.  
  3283.  
  3284.       Hinweis:
  3285.  
  3286.       Wenn  Sie  die  Real-Mode  Version  (SPS.EXE)  benutzen,  kann  es
  3287.       vorkommen,  daß  der Arbeitsspeicher zu klein ist, um den gesamten
  3288.       Text  anzuzeigen.  Wenn  Sie einen 386'er PC mit 4MB RAM besitzen,
  3289.       solten Sie die Protected-Mode Version benutzen (SPS386.EXE).
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.                             ─── Seite 54 ───
  3300.  
  3301.       Menuepunkt INFOS                                         KAPITEL 1
  3302. ──────────────────────────────────────────────────────────────────────────────
  3303.  
  3304.       1.10.2 Dokumentation
  3305.  
  3306.       Wird  dieser Menuepunkt aktiviert, wird zuerst die Datei 'SPS.DOC'
  3307.       eingelesen. Tastenbelegung: siehe Menueunterpunkt Befehlssatz.
  3308.  
  3309.  
  3310.       Hinweis:
  3311.  
  3312.       Wenn  Sie  die  Real-Mode  Version  (SPS.EXE)  benutzen,  kann  es
  3313.       vorkommen,  daß  der Arbeitsspeicher zu klein ist, um den gesamten
  3314.       Text  anzuzeigen.  Wenn  Sie einen 386'er PC mit 4MB RAM besitzen,
  3315.       solten Sie die Protected-Mode Version benutzen (SPS386.EXE).
  3316.  
  3317.  
  3318.       1.10.3 README-Datei
  3319.  
  3320.       Wenn  Sie  diesen  Menuepunkt aktivieren, wird die Datei "READ.ME"
  3321.       geladen und angezeigt.
  3322.  
  3323.  
  3324.  
  3325.       1.10.4 Datei lesen
  3326.  
  3327.       Unter  diesem  Menüpunkt  kann  eine  beliebige Datei aufgelistet,
  3328.       durchsucht und ausgedruckt werden. Geben Sie zuerst den Dateinamen
  3329.       (evtl.  mit Pfad) an. Wenn die Datei gefunden wird, wird die Datei
  3330.       eingelesen. Tastenbelegung: siehe Menueunterpunkt Befehlssatz.
  3331.  
  3332.       Hinweis
  3333.  
  3334.       Dieser  Dateibetrachter  ist  eigentlich nur für den SPS-Simulator
  3335.       und  seine  Dateien  gedacht.  Die  eingelesenen Texte sollten nur
  3336.       Zeilen mit je maximal 80 Zeichen beinhalten. Falls längeren Zeilen
  3337.       auftauchen werden diese abgeschnitten.
  3338.  
  3339.  
  3340.  
  3341.       1.10.5 Bestellung
  3342.  
  3343.       Wird   dieser   Menuepunkt   aktiviert,   wird  zuerst  die  Datei
  3344.       'BESTELL.TXT'  eingelesen.  Diese Datei sollten Sie als Bestellung
  3345.       der   Vollversion  verwenden.  Drücken  Sie  "D"  um  diese  Datei
  3346.       auszudrucken.  Bei  den  Abfragen  nach der Escape-Sequenz und dem
  3347.       linken  Rand  geben Sie jeweils Null ein. Danach wird der Ausdruck
  3348.       gestartet.
  3349.  
  3350.  
  3351.  
  3352.       1.10.6 Copyright
  3353.  
  3354.       Hier  erfahren Sie die Versionsnummer des vorliegenden Simulators,
  3355.       die  Anschrift  und Telefonnummer des Autors (das bin ich) und die
  3356.       Anzahl der freien Bytes im Arbeitsspeicher.
  3357.  
  3358.  
  3359.                             ─── Seite 55 ───
  3360.       
  3361.       Zeitglieder                                              KAPITEL 2
  3362. ──────────────────────────────────────────────────────────────────────────────
  3363.  
  3364.       2.1 Eigenschaften und Arten von Zeitglieder
  3365.  
  3366.       2.1.1 Einführung
  3367.  
  3368.       Der  Simulator  kennt  5 verschiedene Zeiten, die in den folgenden
  3369.       Abschnitten erläutert werden.
  3370.  
  3371.       Wird  eine  Zeit aufgerufen, holt sich das Zeitglied den Startwert
  3372.       und  das  Zeitraster  aus  dem Akku 1. Dieser Wert muß BCD-codiert
  3373.       vorliegen.  Die  einfachste  Möglichkeit bietet der Befehl "L KT".
  3374.       Diese  Operation  legt  den  Startwert  und  das Zeitraster in der
  3375.       richtigen Form ab:
  3376.  
  3377.                     L   KT 235.2
  3378.                            │   │
  3379.                            │   └─>  Zeitraster (0..3)
  3380.                            └─────>  Startwert (2.999)
  3381.  
  3382.       Nach dieser Operation steht im Akku 1 folgender Inhalt:
  3383.  
  3384.               ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
  3385.               │-│-│1│0│0│0│1│0│0│0│1│1│0│1│0│1│
  3386.               └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
  3387.                    │ │ │     │ │     │ │     │
  3388.                    └─┘ └──┬──┘ └──┬──┘ └──┬──┘
  3389.                   Raster  │       │       │
  3390.                           │     Zehner   Einer
  3391.                         Hunderter
  3392.  
  3393.  
  3394.       Der  Startwert  ist BCD-codiert abgelgt. D.h., daß für eine Stelle
  3395.       (z.B.  Einerstelle)  immer vier Bits benötigt werden. Der geladene
  3396.       Zeitwert (235) läßt sich folgendermaßen aufschlüsseln:
  3397.  
  3398.                         2     3     5
  3399.                         │     │     │
  3400.                         │     │     └─ Einer     => 0101
  3401.                         │     └─────── Zehner    => 0011
  3402.                         └───────────── Hunderter => 0010
  3403.  
  3404.  
  3405.       Wenn  man  nun  diese  drei Dekaden nacheinander (die Einerstellen
  3406.       wird  immer ganz rechts plaziert) hinschreibt, erhält man die BCD-
  3407.       Zahl von 235:
  3408.  
  3409.                               0010 0011 0101
  3410.  
  3411.  
  3412.       Die  BCD-Zahl  belegt  also die ersten 12 Bits (0-11). Nach diesen
  3413.       zwölf  Bits  wird das Zeitraster in zwei Bits abgelegt (Bit 12 und
  3414.       13).  Das  Zeitraster  wird  dualcodiert abgelegt. Da der Wert des
  3415.       Zeitrasters von 0-3 beschränkt ist, reichen 2 Bits aus.
  3416.  
  3417.       Das Zeitraster 2 wird dann folgendermaßen abgelegt: 10
  3418.  
  3419.                             ─── Seite 56 ───
  3420.  
  3421.       Zeitglieder                                              KAPITEL 2
  3422. ──────────────────────────────────────────────────────────────────────────────
  3423.  
  3424.       Der  gesamte Inhalt des Akku 1 sieht dann, wie oben dargestellt so
  3425.       aus:
  3426.  
  3427.                       --10 0010 0011 0101
  3428.  
  3429.       Die  Bits  14  und  15  (mit  einem Strich markiert), werden nicht
  3430.       benötigt.
  3431.  
  3432.  
  3433.       Welche Bedeutung hat der Startwert und das Zeitraster ?
  3434.  
  3435.       Der  Startwert gibt an, von welchem Wert heruntergezählt wird. Das
  3436.       Zeitraster gibt an, wie schnell heruntergezählt wird.
  3437.  
  3438.       Mögliche Werte des Zeitrasters:
  3439.  
  3440.       0 => 10 ms
  3441.       1 => 100 ms
  3442.       2 => 1000 ms = 1 Sekunde
  3443.       3 => 10 000 ms = 10 Sekunden
  3444.  
  3445.       Wenn  Sie  nun  eine  Zeit  von  20  Sekunden benötigen, haben Sie
  3446.       mehrere Möglichkeiten:
  3447.  
  3448.           1. L  KT 200.1    => 200 * 100 ms    = 20 Sekunden
  3449.           2. L  KT 20.2     => 20 * 1 Sekunde  = 20 Sekunden
  3450.           3. L  KT 2.3      => 2 * 10 Sekunden = 20 Sekunden
  3451.  
  3452.       Wenn  der  Zeitwert  den  Wert  "0"  erreicht  hat,  ist  die Zeit
  3453.       abgelaufen.
  3454.  
  3455.       2.1.2 Eingänge und Ausgänge eines Zeitgliedes (FUP):
  3456.  
  3457.                               T0
  3458.                             ┌─────┐     
  3459.               Starteingang  ┤T├─┤0├  binärer Ausgang
  3460.                             ┤TW DU├  DUAL- codierter Ausgang (Istwert)
  3461.                             │   DE├  BCD- codierter Ausgang (Istwert)
  3462.                             │     │     
  3463.                             │-SE- │     
  3464.                 Rücksetz-   ┤R    │     
  3465.                 Eingang     └─────┘     
  3466.              
  3467.              
  3468.       Anweisungsliste:
  3469.  
  3470.       0001     :U   E   0.0     Starteingang
  3471.       0002     :L   KT  200.0
  3472.       0003     :SE  T   0       Zeitart "SE"
  3473.       0004     :U   E   0.1     Rücksetz-Eingang
  3474.       0005     :R   T   0       
  3475.       0006     :L   T   0       Ausgang DUAL
  3476.       0007     :T   MW  200
  3477.       0008     :LC  T   0       Ausgang BCD
  3478.  
  3479.                             ─── Seite 57 ───
  3480.  
  3481.       Zeitglieder          SE                                  KAPITEL 2
  3482. ──────────────────────────────────────────────────────────────────────────────
  3483.  
  3484.       0009     :T   MW  202
  3485.       0010     :U   T   0       Zuweisung des binären Ausganges
  3486.       0011     :=   A   0.0
  3487.       0012     :BE
  3488.  
  3489.       Hinweis:
  3490.  
  3491.       Die  Reihenfolge der Belegungen ist nicht beliebig. Lesen Sie dazu
  3492.       "Programmierung von Zeiten" im Abschitt "FUP-Simulation".
  3493.  
  3494.  
  3495.  
  3496.       2.1.3 Eigenschaften der Zeitglieder
  3497.  
  3498.       Die  Zeitglieder "SE", "SI", "SS", "SV" werden nur gestartet, wenn
  3499.       der  Sinalzustand  des  Starteingangs  von  '0'  nach '1' wechselt
  3500.       (HIGH- FLANKE).
  3501.  
  3502.       Das  Zeitglied "SA" wird nur gestartet, wenn der Signalzustand des
  3503.       Starteingangs von '1' nach '0' wechselt (LOW-FLANKE).
  3504.  
  3505.  
  3506.  
  3507.       2.1.3.1 Eigenschaften der Zeitart "SE":
  3508.  
  3509.       ■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
  3510.       ■ einschaltverzögert
  3511.       ■ nicht speichernd
  3512.       ■ der Starteingang muß während des Ablaufs Signalzustand 1 führen.
  3513.  
  3514.       Ablaufdiagramm der Zeitart "SE":
  3515.  
  3516.       1 │   ┌───────┐       ┌─┐
  3517.       0 ├───┘       └───────┘ └────  Starteingang
  3518.         │   .       .
  3519.         │   .       .
  3520.       1 │   .   ┌───┐
  3521.       0 ├───────┘   └──────────────  Ausgang
  3522.         └───────────────────────────────────> t
  3523.             │ T │
  3524.  
  3525.               T ist die eingestellte Zeit.
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.                             ─── Seite 58 ───
  3540.  
  3541.       Zeitglieder          SI / SV                             KAPITEL 2
  3542. ──────────────────────────────────────────────────────────────────────────────
  3543.  
  3544.       2.1.3.2 Eigenschaften der Zeitart "SI"
  3545.  
  3546.       ■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
  3547.       ■ Liefert einen Impuls
  3548.       ■ nicht speichernd
  3549.       ■ der Starteingang muß während des Ablaufs Signalzustand 1 führen.
  3550.  
  3551.  
  3552.       Ablaufdiagramm der Zeitart "SI":
  3553.  
  3554.       1 │   ┌───────┐       ┌─┐
  3555.       0 ├───┘       └───────┘ └────  Starteingang
  3556.         │   .
  3557.         │   .
  3558.       1 │   ┌───┐           ┌─┐
  3559.       0 ├───┘   └───────────┘ └────  Ausgang
  3560.         └───────────────────────────────────> t
  3561.             │ T │
  3562.  
  3563.               T ist die eingestellte Zeit.
  3564.  
  3565.  
  3566.  
  3567.       2.1.3.3 Eigenschaften der Zeitart "SV"
  3568.  
  3569.       ■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
  3570.       ■ Liefert einen Impuls 
  3571.       ■ ist speichernd
  3572.  
  3573.       Ablaufdiagramm der Zeitart "SV":
  3574.  
  3575.       1 │   ┌───────┐       ┌─┐
  3576.       0 ├───┘       └───────┘ └────  Starteingang
  3577.         │   .               .
  3578.         │   .               .
  3579.       1 │   ┌───┐           ┌───┐
  3580.       0 ├───┘   └───────────┘   └──  Ausgang
  3581.         └───────────────────────────────────> t
  3582.             │ T │           │ T │
  3583.  
  3584.               T ist die eingestellte Zeit.
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.                             ─── Seite 59 ───
  3600.  
  3601.       Zeitglieder            SA / SS                           KAPITEL 2
  3602. ──────────────────────────────────────────────────────────────────────────────
  3603.  
  3604.       2.1.3.4 Eigenschaften der Zeitart "SA"
  3605.  
  3606.       ■ die Zeit wird nur bei einer LOW-FLANKE gestartet
  3607.       ■ ausschaltverzögert
  3608.       ■ ist speichernd
  3609.  
  3610.  
  3611.       Ablaufdiagramm der Zeitart "SA":
  3612.  
  3613.       1 │   ┌───────┐       ┌─┐
  3614.       0 ├───┘       └───────┘ └────  Starteingang
  3615.         │   .       .       . .
  3616.         │   .       .       . .
  3617.       1 │   ┌───────────┐   ┌─────┐
  3618.       0 ├───┘           └───┘     └─ Ausgang
  3619.         └───────────────────────────────────> t
  3620.                     │ T │     │ T │
  3621.  
  3622.               T ist die eingestellte Zeit.
  3623.  
  3624.  
  3625.  
  3626.       2.1.3.5 Eigenschaften der Zeitart "SS"
  3627.  
  3628.       ■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
  3629.       ■ einschaltverzögert
  3630.       ■ ist speicherd
  3631.       ■ ist die Zeit abgelaufen, kann diese erst wieder gestartet
  3632.         werden, wenn danach einmal der Rücksetzeingang aktiviert wurde.
  3633.  
  3634.       Ablaufdiagramm der Zeitart "SS":
  3635.  
  3636.       1 │   ┌─┐ ┌──┐    ┌─────┐
  3637.       0 ├───┘ └─┘  └────┘     └────  Starteingang
  3638.         │   .           .
  3639.         │   .           .
  3640.       1 ├─┐        ┌──┐ .
  3641.       0 │ └────────┘  └────────────  Rücksetzeingang
  3642.         │   .      .    .
  3643.         │   .      .    .
  3644.       1 │   .   ┌──┐    .   ┌──────
  3645.       0 ├───────┘  └────────┘        Ausgang
  3646.         └───────────────────────────────────> t
  3647.             │ T │       │ T │
  3648.  
  3649.               T ist die eingestellte Zeit.
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.                             ─── Seite 60 ───
  3660.  
  3661.       Zähler                                                   KAPITEL 2
  3662. ──────────────────────────────────────────────────────────────────────────────
  3663.  
  3664.       2.2. Eigenschaften eines Zählers
  3665.  
  3666.       ■ Ein   Zähler  "zählt"  nur  dann,  wenn  der  Signalzustand  des
  3667.         Starteingangs von '0' auf '1' wechselt (HIGH-FLANKE).
  3668.  
  3669.       ■ Steht eine HIGH-FLANKE an, wird immer um den Wert 1 hoch- oder
  3670.         heruntergezählt.
  3671.  
  3672.       ■ Der   binäre  Ausgang  führt  den  Signalzustand  '1'  wenn  der
  3673.         Zählerstand ungleich Null ist.
  3674.  
  3675.       ■ soll ein Zähler auf einen bestimmten Zählerstand gesetzt werden,
  3676.         muß dieser Zählerstand BCD-codiert geladen werden (L KZ).
  3677.  
  3678.  
  3679.  
  3680.       Ein.- und Ausgänge eines Zählers (FUP):
  3681.  
  3682.                                     Z1           
  3683.                                 ┌────────┐     
  3684.                 Vorwärtszählen  ┤ZV     Q├ Binärer Ausgang
  3685.                 Rückwärtszählen ┤ZR      │     
  3686.                                 │        │     
  3687.                 Zähler setzen   ┤S       │     
  3688.                                 ┤ZW    DU├ Ausgang DUAL (Zählerstand)
  3689.                                 │      DE├ Ausgang BCD (Zählerstand)
  3690.                 Zähler rück-    ┤R       │     
  3691.                 setzen          └────────┘     
  3692.  
  3693.  
  3694.       Anweisungsliste
  3695.  
  3696.       0001     :U   E   0.0
  3697.       0002     :ZV  Z   1       Vorwärtszählen          
  3698.       0003     :U   E   0.1
  3699.       0004     :ZR  Z   1       Rückwärtszählen               
  3700.       0005     :U   E   0.2     
  3701.       0006     :L   KZ  400     400 BCD-codiert laden
  3702.       0007     :S   Z   1       Zähler auf den Wert 400 setzen
  3703.       0008     :U   E   0.3
  3704.       0009     :R   Z   1       Zähler rücksetzen
  3705.       0010     :L   Z   1       Zählerstand dual codiert laden
  3706.       0011     :T   DW  2       und transferieren
  3707.       0012     :LC  Z   1       Zählerstand BCD-codiert laden
  3708.       0013     :T   DW  3       und transferieren
  3709.       0014     :U   Z   1       binärer Zustand es Zählers zuweisen
  3710.       0015     :=   A   0.0
  3711.       0016     :BE
  3712.  
  3713.  
  3714.       Hinweis:
  3715.       Die Belegung eines Zähles ist nicht beliebig. Bitte lesen Sie dazu
  3716.       den Abschnitt "Programmierung von Zählern".
  3717.  
  3718.  
  3719.                             ─── Seite 61 ───
  3720.  
  3721.                                                                KAPITEL 2
  3722. ──────────────────────────────────────────────────────────────────────────────
  3723.  
  3724.       2.3. Programmierung von Klammern
  3725.  
  3726.       Der  Einsatz  von  Klammern  kann  Ihnen  den  einen  oder anderen
  3727.       Hilfsmerker  ersparen.  Es  können  einfache  oder  verschachtelte
  3728.       Klammern  programmiert werden. Die Verschachtelungstiefe ist auf 8
  3729.       Klammerebenen  begrenzt.  Überschreiten Sie diese Grenze, erhalten
  3730.       Sie eine Fehlermeldung.
  3731.  
  3732.       Verschachtelte  Klammern werden im allgemeinen nicht programmiert,
  3733.       da  diese unübersichtlich sind. Eine Alternative dazu ist, mehrere
  3734.       einfache Klammern hintereinander zu programmieren.
  3735.  
  3736.       Hinweise zu den Klammern:
  3737.  
  3738.       ■ Sprungmarken innerhalb von Klammern sind nicht erlaubt
  3739.       ■ Sprungbefehle innerhalb von Klammern sind nicht erlaubt
  3740.  
  3741.  
  3742.  
  3743.       2.4. Die Beinflussung der Akkus
  3744.  
  3745.       Die   Akkuinhalte   werden   ausschließlich  von  Ladebefehle  und
  3746.       arithmetischen Befehlen beeinflußt. Bei allen Ladeoperationen wird
  3747.       zuerst der Inhalt des 1. Akkus in das 2. Akku transferiert. Danach
  3748.       wird die eigentliche Operation ausgeführt.
  3749.  
  3750.       ■ Wenn  Sie  ein BYTE laden (z.B.: L EB 1), wird dieses Byte immer
  3751.         in  das  LOW-Byte des 1. Akkus geladen, wobei das HIGH-Bytes des
  3752.         Akku 1 auf Null gesetzt wird.
  3753.  
  3754.       ■ Wenn  Sie  ein  Wort laden (z.B. L EW 0), dann wird das Low-Byte
  3755.         (EB  1) in das Lowbyte und das High-Byte (EB 0) in das High-Byte
  3756.         des Akku 1 geladen.
  3757.  
  3758.       Wenn  Sie  ein  Byte transferieren, wird immer das Low-Byte des 1.
  3759.       Akkus in den angegebenen Operanden transferiert. Wenn Sie ein Wort
  3760.       (z.B.  T EW 0) transferieren, wird das Low-Byte des Akku 1 in EB 1
  3761.       und das Highbyte des Akku 1 in EB 0 transferiert.
  3762.  
  3763.       Wichtiger Hinweis:
  3764.  
  3765.       Wenn  Sie  eine  Wortadresse  (EW/AW/MW/PW)  betrachten,  ist  das
  3766.       höherwertige  Byte  das  Lowbyte  und  das  niederwertige Byte das
  3767.       Highbyte:
  3768.  
  3769.       MW 20  besteht aus  MB 20
  3770.                      und  MB 21
  3771.                                 wobei MB 20 das Highbyte 
  3772.                                 und   MB 21 das Lowbyte ist.
  3773.  
  3774.       dies  trifft  nicht  auf  Datenwörtern  zu, da ja diese nicht über
  3775.       Bytes ansprechbar sind, sondern explizit über 'DR' und 'DL'.
  3776.  
  3777.  
  3778.  
  3779.                             ─── Seite 62 ───
  3780.  
  3781.                                                                KAPITEL 2
  3782. ──────────────────────────────────────────────────────────────────────────────
  3783.  
  3784.       2.5. Die Beeinflussung der Anzeigebits
  3785.  
  3786.       Allgemeines:  
  3787.       Die  Anzeigebits sind interne Bits, die bei bestimmten Operationen
  3788.       manipuliert  werden.  Diese Bits kommen dann bei den verschiedenen
  3789.       Sprüngen  zum  Einsatz.  Welche  Bedingungen  für  welche  Sprünge
  3790.       Voraussetzung    sind,    können    sie   direkt   im   Menuepunkt
  3791.       INFO/Befehlssatz  abrufen.  Die  Anzeigebits  können  während  der
  3792.       Simulation  angezeigt  werden. Die Anzeigebits sind am Bildschirm,
  3793.       wenn sie eingeschaltet sind, folgendermaßen angeordnet:
  3794.  
  3795.           VKE      AKKU1  AKKU2      Anzeigebits
  3796.  
  3797.             0       0000   0000       000
  3798.                                       │││
  3799.                                       │││
  3800.                                       ││└──────────> Overflow Bit
  3801.                                       ││
  3802.                                       ││
  3803.                                       │└───────────> Anz0
  3804.                                       └────────────> Anz1
  3805.  
  3806.  
  3807.       Veränderung der Anzeigebits bei Vergleicherbefehlen:
  3808.  
  3809.             ┌───────────────────┬─────────┬─────────┐
  3810.             │ Inhalt der Akkus: │   Anz1  │ Anz0    │
  3811.             ├───────────────────┼─────────┼─────────┤
  3812.             │ AKKU 2 = AKKU 1   │    0    │   0     │
  3813.             │                   │         │         │
  3814.             │ AKKU 2 < AKKU 1   │    0    │   1     │
  3815.             │                   │         │         │
  3816.             │ AKKU 2 > AKKU 1   │    1    │   0     │
  3817.             └───────────────────┴─────────┴─────────┘
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.                             ─── Seite 63 ───
  3840.  
  3841.                                                                KAPITEL 2
  3842. ──────────────────────────────────────────────────────────────────────────────
  3843.  
  3844.         Veränderung der Anzeigebits bei arithmetischen Befehlen:
  3845.  
  3846.  
  3847.           ┌────────────────────┬──────────┬─────────┬───────────────┐
  3848.           │  Ergebnis          │    Anz1  │   Anz0  │ Overflow (OV) │
  3849.           ├────────────────────┼──────────┼─────────┼───────────────┤
  3850.           │  < -32768          │     1    │    0    │     1         │
  3851.           │                    │          │         │               │
  3852.           │  -32768 bis -1     │     0    │    1    │     0         │
  3853.           │                    │          │         │               │
  3854.           │  0                 │     0    │    0    │     0         │
  3855.           │                    │          │         │               │
  3856.           │  +1 bis +32767     │     1    │    0    │     0         │
  3857.           │                    │          │         │               │
  3858.           │  > + 32767         │     0    │    1    │     1         │
  3859.           └────────────────────┴──────────┴─────────┴───────────────┘
  3860.  
  3861.  
  3862.       Veränderung der Anzeigebits nach Umwandlungsoperationen (KZW ...)
  3863.  
  3864.         ┌────────────────────┬──────────┬─────────┬───────────────┐
  3865.         │  Ergebnis          │    Anz1  │   Anz0  │ Overflow (OV) │
  3866.         ├────────────────────┼──────────┼─────────┼───────────────┤
  3867.         │  < -32768          │     1    │    0    │     1         │
  3868.         │                    │          │         │               │
  3869.         │  -32768 bis -1     │     0    │    1    │     0         │
  3870.         │                    │          │         │               │
  3871.         │  +1 bis +32767     │     1    │    0    │     0         │
  3872.         │                    │          │         │               │
  3873.         │  > + 32767         │     0    │    1    │     1         │
  3874.         └────────────────────┴──────────┴─────────┴───────────────┘
  3875.  
  3876.       Veränderung der Anzeigebits nach wortweisen Verknüpfungen:
  3877.       
  3878.       ┌─────────────────┬──────────────┬──────────┬───────────────┐
  3879.       │Inhalt von Akku 1│      Anz1    │   Anz0   │  Overflow (OV)│
  3880.       ├─────────────────┼──────────────┼──────────┼───────────────┤
  3881.       │      0          │      0       │    0     │     -         │
  3882.       ├─────────────────┼──────────────┼──────────┼───────────────┤
  3883.       │     <> 0        │      1       │    0     │      -        │
  3884.       └─────────────────┴──────────────┴──────────┴───────────────┘
  3885.  
  3886.  
  3887.       Veränderung der Anzeigebits nach Schiebeoperationen:
  3888.  
  3889.  
  3890.       ┌───────────────────┬─────────────┬──────────┬────────────────┐
  3891.       │Wert des zuletzt   │   Anz1      │   Anz0   │  Overflow (OV) │
  3892.       │hinausgeschobenen  │             │          │                │
  3893.       │Bits               │             │          │                │
  3894.       ├───────────────────┼─────────────┼──────────┼────────────────┤
  3895.       │       0           │     0       │    1     │       -        │
  3896.       │                   │             │          │                │
  3897.       │       1           │     1       │    0     │       -        │
  3898.       └───────────────────┴─────────────┴──────────┴────────────────┘
  3899.                             ─── Seite 64 ───
  3900.  
  3901.                                                                KAPITEL 2
  3902. ──────────────────────────────────────────────────────────────────────────────
  3903.  
  3904.       2.6 Der Bearbeitebefehl
  3905.  
  3906.       Mit  diesem  Befehl  können  Sie verschiedene Operationen indirekt
  3907.       parametrieren.
  3908.  
  3909.       Format des Bearbeitebefehls.
  3910.  
  3911.       1. Zuerst muß festgelegt werden, ob ein Merkerwort oder ein Daten-
  3912.          wort als Adressierung verwendet werden soll.
  3913.       2. Dann legen Sie den Operanden fest, den Sie indirekt adressieren
  3914.          wollen, indem Sie sein(e) Parameter mit Null angeben.
  3915.  
  3916.          z.B.:  B  DW  100      Das Datenwort 100 wird als Adressierung
  3917.                                 verwendet.
  3918.                 U  A   0.0      Jetzt wird derjenige Ausgang verknüpft,
  3919.                                 der die Parameter hat, die im Datenwort
  3920.                                 abgelegt sind.
  3921.  
  3922.  
  3923.       Sollen  binäre  Operanden  adressiert werden, muß im High-Byte die
  3924.       Bitadresse und im Low-Byte die Byteadresse stehen.
  3925.  
  3926.       Beachten Sie:
  3927.  
  3928.       wenn  Sie einen Wortoperanden (EW/AW/MW/PW) betrachten, z.B. EW 2,
  3929.       ist  das  Highbyte  EB  2  und das Lowbyte EB 3. Bei allen anderen
  3930.       Fällen  steht  die  Adresse im Low-Byte, während das Highbyte Null
  3931.       sein muß.
  3932.  
  3933.  
  3934.       Folgende Operationen können Sie indirekt adressieren:
  3935.  
  3936.       ■ U/UN/O/ON/=/S/R/FR/SE/SI/SV/SA/SS
  3937.       ■ L...EB/EW/AB/AW/MB/MW/DR/DL/DW/PB/PW/Z/T
  3938.       ■ Bausteinaufrufe
  3939.       ■ A DB/ E DB
  3940.       ■ SLW/SRW
  3941.  
  3942.  
  3943.       Beispiel zum Bearbeitebefehl:
  3944.  
  3945.       Baustein:FB1   Name:BTEST
  3946.  
  3947.       0001     #Demonstration des Bearbeitebefehls
  3948.       0002     #Es werden die Datenwörter 1 bis 100
  3949.       0003     #mit dem Inhalt des Eingangswort 0 geladen.
  3950.       0004     #Rufen Sie während der AWL-Simulatiom den
  3951.       0005     #DB-Editor auf (STRG/RETURN), und drücken Sie
  3952.       0006     #verschiedene Eingänge (E0.0 bis E1.7)
  3953.       0007     :
  3954.       0008     :
  3955.       0009     :L   MW  200              ZÄHLER
  3956.       0010     :L   KB  100
  3957.       0011     :><F                      SOLANGE UNGLEICH
  3958.  
  3959.                             ─── Seite 65 ───
  3960.  
  3961.                                                                KAPITEL 2
  3962. ──────────────────────────────────────────────────────────────────────────────
  3963.  
  3964.       0012     :SPB =   M1               -> ZU MARKE M1 SPRINGEN
  3965.       0013     :L   KB  0                ZÄHLER AUF NULL SETZEN
  3966.       0014     :T   MW  200
  3967.       0015 M1  :
  3968.       0016     :L   MW  200
  3969.       0017     :L   KB  1
  3970.       0018     :+F
  3971.       0019     :T   MW  200              ZÄHLER UM 1 ERHÖHEN
  3972.       0020     :L   EW  0
  3973.       0021     :B   MW  200              IN MW200 STEHT DIE DW-NUMMER
  3974.       0022     :T   DW  0                JEWEILIGE DATENWORT BESCHREIBEN
  3975.       0023     :BE
  3976.  
  3977.  
  3978.       Dieses  Programm  transferiert nacheinander das Eingangswort Nr. 0
  3979.       zu den Datenwörtern 1 bis 100.
  3980.  
  3981.       Auf  der  Diskette  befindet  sich ebenfalls noch ein Beispiel zum
  3982.       Bearbeitefehl (AWL "TEXT" - nur in der VOLLVERSION).
  3983.  
  3984.  
  3985.  
  3986.  
  3987.       2.7 Der Divisionsbefehl
  3988.  
  3989.       Mit  dem  Befehl  /F  können Sie eine Division durchführen. Dieser
  3990.       Befehl  manipuliert das 8. Bit des Merkerbytes 255. Wenn Sie durch
  3991.       Null  teilen  wird  M 255.7 auf '1' gesetzt, ansonsten wird es auf
  3992.       '0' gesetzt. Sie sollten also das 7. Bit des Merkerbytes 255 nicht
  3993.       verwenden, da es bei einem Divisionsbefehl manipuliert wird.
  3994.  
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.                             ─── Seite 66 ───
  4020.       
  4021.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4022. ──────────────────────────────────────────────────────────────────────────────
  4023.  
  4024.       3.1 Was ist ein Baustein ?
  4025.  
  4026.       Ein  Baustein ist, einfach ausgedrückt, ein Unterprogramm in Ihrem
  4027.       SPS-Programm.  In  einem Baustein werden eine bestimmte Anzahl von
  4028.       Anweisungen  zusammengefaßt, die eine bestimmte Aufgabe erledigen.
  4029.       Bei  STEP 5 (R) gibt es verschiedene Typen von Bausteinen (OB, FB,
  4030.       SB, PB, DB). Jeder dieser Bausteine ist für einen bestimmten Zweck
  4031.       gedacht,  der in den nächsten paar Abschnitte erläutert wird. Beim
  4032.       Simulator   wird   jeder   Baustein   in  einer  getrennten  Datei
  4033.       abgespeichert.  Wenn Sie das Dialogfenster "Dateihandling" öffnen,
  4034.       sehen  Sie  in 5 verschiedenen Auswahlboxen alle Bausteine, die im
  4035.       eingestellten Pfad vorhanden sind.
  4036.  
  4037.  
  4038.  
  4039.       3.2 Warum sollte man größere Programme in Bausteine
  4040.           aufteilen ?
  4041.  
  4042.       Wenn  Sie  ein  großes  Programm geschrieben haben, kann es leicht
  4043.       passieren,  daß  Sie  die  Übersicht  über die AWL verlieren. Eine
  4044.       Abhilfe  dieses  Problems schafft die Programmierung in Bausteine.
  4045.       Der  Sinn  ist  dabei,  einzelne  Teilaufgaben  des  Programms  in
  4046.       verschiedene   Bausteine  abzulegen.  Damit  verleihen  Sie  Ihrem
  4047.       Programm eine übersichtliche Struktur.
  4048.  
  4049.  
  4050.       3.3 VERFÜGBARE BAUSTEINE
  4051.  
  4052.       3.3.1 OB's (Organisationsbausteine)
  4053.  
  4054.       Der Simulator unterstützt verschiedene Organisationsbausteine:
  4055.  
  4056.                                   OB1
  4057.  
  4058.       Dieser  Organisationsbaustein  bildet  die  Basis für alle anderen
  4059.       Bausteine.  Er  muß  normalerweise in jedem SPS-Programm vorhanden
  4060.       sein. Der Simulator kann aber auch einzelne Bausteine ohne den OB1
  4061.       simulieren.   Wenn   kein   OB1   vorhanden  ist,  erscheint  eine
  4062.       entsprechende  Meldung in der obersten Zeile des Bildschirm. Diese
  4063.       Meldung  erscheint  aber  nur  in der AWL-Simulation, nicht in der
  4064.       FUP-Simulation.  Es  ist  üblich,  ein  Programm  in  verschiedene
  4065.       Bausteine  zu  unterteilen.  Im  OB1  werden  dann diese Bausteine
  4066.       absolut aufgerufen.
  4067.  
  4068.                               OB10 - OB13
  4069.  
  4070.       Diese  Bausteine  sind  sogenannte  Zeitoperationsbausteine. Diese
  4071.       Bausteine  werden  nicht  zyklisch  bearbeitet,  sondern werden in
  4072.       bestimmten Zeitabständen absolut aufgerufen:
  4073.  
  4074.       OB 10 wird alle 10   ms aufgerufen.
  4075.       OB 11 wird alle 50   ms aufgerufen.
  4076.       OB 12 wird alle 1000 ms aufgerufen.
  4077.       OB 13 wird alle 5000 ms aufgerufen.
  4078.  
  4079.                             ─── Seite 67 ───
  4080.  
  4081.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4082. ──────────────────────────────────────────────────────────────────────────────
  4083.  
  4084.       Wenn Sie also so im OB10 eine AWL eingeben und anschließend in die
  4085.       AWL-Simulation   gehen,   werden   diese   Anweisungen  alle  10ms
  4086.       durchlaufen.    Einsatzgebiete    dieser   Bausteine   sind   z.B.
  4087.       Programmteile,  bei  denen  es  nicht  darauf  ankommt,  daß  jede
  4088.       Anweisung  zyklisch  bearbeitet  wird.  Praktisches  Beispiel: Sie
  4089.       müssen  einen  Füllstand  kontrollieren,  der sich aus technischen
  4090.       Gründen alle 2 Stunden um 2 % ändert. Hier ist es nicht notwendig,
  4091.       die  Füllstandsanzeige  zyklisch  zu  aktualisieren.  Es  wäre nun
  4092.       sinnvoll den Baustein, der diese Aufgabe erledigt, alle 5 Sekunden
  4093.       bearbeiten   zu  lassen.  Die  Lösung:  Ein  SPA-Aufruf  in  einem
  4094.       Zeitgesteuerten OB.
  4095.  
  4096.                             OB21 (Start-OB)
  4097.  
  4098.       Dieser  Organisationsbaustein wird nur einmal bei Simulationsstart
  4099.       bearbeitet.    In   diesem   Baustein   könnten   Sie   notwendige
  4100.       Datenbausteine  erzeugen,  oder  irgendwelche  Operanden auf einen
  4101.       Anfangszustand   setzen.  Wenn  Sie  Steuerbefehle  programmieren,
  4102.       sollten Sie diese hier ablegen
  4103.  
  4104.  
  4105.  
  4106.       3.3.2. PB's (Programmbausteine) & SB's (Schrittbausteine)
  4107.  
  4108.       Diese  Bausteine haben keine Besonderheiten. In Programmbausteinen
  4109.       stehen  "normale"  Anweisungen.  In  Schrittbausteine  sollten Sie
  4110.       AWL's ablegen, die in einem besonderen Programmierstil geschrieben
  4111.       worden  sind,  nämlich in Schrittketten.
  4112.  
  4113.  
  4114.       3.3.3. FB's (Funktionsbausteine)
  4115.  
  4116.       In Funktionsbausteine können Sie den gesamten Operationsvorrat des
  4117.       SPS-Simulators  ausnutzen.  Hier  werden komplexe Anweisungen oder
  4118.       Berechnungen abgelegt. Funktionsbausteine können auch parametriert
  4119.       werden,  d.h.  Sie  können  einem  Funktionsbaustein  beim  Aufruf
  4120.       mitteilen, mit welchen Daten oder Operanden er arbeiten soll. Wenn
  4121.       Sie   sich  in  höheren  Programmiersprachen  auskennen,  ist  ein
  4122.       parametrierbarer  FB  mit  einer  Procedure  oder  einer  Funktion
  4123.       vergleichbar, der sie Variablen übergeben. (CALL BY REFERENCE)
  4124.  
  4125.  
  4126.       3.3.4. Integrierte Bausteine
  4127.  
  4128.       Nehmen  wir  mal  an  Sie  haben  ein  OB1  mit  dem Namen 'MBAND'
  4129.       erstellt.  Wenn  Sie nun ein Funktionsbaustein für dieses Programm
  4130.       erstellen  wollen,  müssen  Sie  beim  Abspeichern  des  FB's  den
  4131.       gleichen  Bausteinnamen  angeben  (MBAND).  Wenn  nun dieser FB so
  4132.       flexibel   und  unabhängig  ist,  daß  Sie  ihn  auch  in  anderen
  4133.       Programmen  einsetzen  könnten, müßten Sie normalerweise hergehen,
  4134.       und  den FB nochmals unter anderem Namen abspeichern - Und so geht
  4135.       es einfacher: Wenn Sie den FB einen bestimmten Namen geben, können
  4136.       Sie
  4137.  
  4138.  
  4139.                             ─── Seite 68 ───
  4140.  
  4141.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4142. ──────────────────────────────────────────────────────────────────────────────
  4143.  
  4144.       diesen  FB  auch  von  anderen  SPS-Programmen  (die einen anderen
  4145.       Bausteinnamen haben) aufrufen.
  4146.  
  4147.       Der Name ist : @@@@@@@@
  4148.  
  4149.       Das  sind 8 ASCII-Zeichen mit der Nummer 64. Dieses ASCII- Zeichen
  4150.       erreichen  Sie  mit  der Tastenkombination [ALTGR/Q]. Wenn Sie den
  4151.       Baustein   abspeichern,  wird  er  im  voreingestellten  Pfad  für
  4152.       integrierte Bausteine abgespeichert.
  4153.  
  4154.       Sie  sollten  aber  nur solche Bausteine als integrierte Bausteine
  4155.       abspeichern,  die  es  wirklich  verdient haben. D.h. der Baustein
  4156.       sollte  fehlerfrei  sein,  und  er  sollte  auch  von anderen SPS-
  4157.       Programmen genutzt werden können.
  4158.  
  4159.       Folgende  Baustein  können als integrierte Bausteine abgespeichert
  4160.       werden: OB's, FB's, PB's und SB's
  4161.  
  4162.       Wichtiger Hinweis:
  4163.  
  4164.       Bei  Simulationsstart  werden  alle  integrierten Bausteine in den
  4165.       Speicher geladen  (auch wenn diese gar nicht benötigt werden). Sie
  4166.       sollten  sich  also  zweimal  überlegen, ob Sie einen Baustein als
  4167.       integrierten Baustein abspeichern.
  4168.  
  4169.  
  4170.       3.3.5. DB's (Datenbausteine)
  4171.  
  4172.       Datenbausteine   unterscheiden   sich  gewaltig  von  den  anderen
  4173.       Bausteinen:  Sie beinhalten keine AWL-Zeilen sondern, wie der Name
  4174.       schon  vermuten  läßt,  reine Daten. Hier können also Zahlenwerte,
  4175.       Texte,  oder  sonstige  Informationen  untergebracht  werden.  Ein
  4176.       Datenbaustein besteht aus 256 Datenwörtern, also aus 512 Bytes. In
  4177.       Bezug  auf  eine  speicherprogrammierbare  Steuerung ist dies eine
  4178.       riesige  Datenmenge, wenn man bedenkt, daß man in diesen 512 Bytes
  4179.       beinahe  250 Operationen unterbringen kann. Wenn man aber in einem
  4180.       Datenbaustein  Texte  unterbringen  will, wird man schnell merken,
  4181.       daß  dieser  Speicher  recht  schnell  gefüllt  ist. Da ein ASCII-
  4182.       Zeichen  ein  Byte benötigt, können Sie in einem Datenbaustein 512
  4183.       Zeichen unterbringen. Zum Vergleich: Eine Bildschirmseite benötigt
  4184.       80  x 25 = 2000 Zeichen also 2000 Byte. Zum Glück gibt es ja nicht
  4185.       nur einen Datenbaustein sondern gleich 255 Stück davon. Sie können
  4186.       soviele  Bausteine aufrufen, bis der Arbeitsspeicher Ihres Rechner
  4187.       erschöpft ist.
  4188.  
  4189.       Mit  Hilfe  der  Operation  "E  DB" können Sie einen Datenbaustein
  4190.       erzeugen.  Dabei  ist  zu beachten, daß nur dann ein Datenbaustein
  4191.       erzeugt  wird,  wenn der Wert im Akku 1 ungleich Null ist. Ist der
  4192.       Wert  in Akku 1 Null, wird der angegebene DB im Speicher entfernt.
  4193.       Nachdem  Sie  einen  DB  erzeugt  haben, müssen Sie diesen mit der
  4194.       Operation  "A DB" aufrufen.
  4195.       Wenn  Sie  einen  Datenbaustein  aufrufen,  der noch nicht erzeugt
  4196.       wurde, wird die Simulation mit einer Fehlermeldung abgebrochen.
  4197.  
  4198.  
  4199.                             ─── Seite 69 ───
  4200.  
  4201.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4202. ──────────────────────────────────────────────────────────────────────────────
  4203.  
  4204.       Die  anderen  Bausteine  (OB/FB/PB/SB)  können  DB's mit folgenden
  4205.       Operationen auf einfache Weise bearbeiten:
  4206.  
  4207.       A DB 10   Datenbaustein Nr. 10 aufrufen (2..255).
  4208.       L DW 10   Ein Wort (2 Bytes) aus dem Datenbaustein auslesen.
  4209.       L DL 20   Linkes Byte von Datenwort 20 laden.
  4210.       L DR 20   Rechtes Byte von Datenwort 20 laden.
  4211.       T DW 20   Ein Wort zum Datenwort 20 transferieren.
  4212.       T DL 30   Ein Byte zum linken Byte von Datenwort 30 trans-
  4213.                 ferieren.
  4214.       T DR 30   Ein Byte zum rechten Byte vom Datenwort 30 trans-
  4215.                 ferieren.
  4216.  
  4217.       Wenn   Sie  vorab  einen  Datenbaustein  mit  Werten  oder  Texten
  4218.       versorgen   wollen,   können   Sie   das   über  den  integrierten
  4219.       Datenbausteineditor tun. Wie das geht können Sie im entsprechenden
  4220.       Abschnitt nachlesen.
  4221.  
  4222.  
  4223.  
  4224.       3.4 Wie erzeuge ich Bausteine ?
  4225.  
  4226.       Wenn  Sie  einen  neuen  Baustein erzeugen wollen, sollten Sie das
  4227.       immer mit Hilfe des Menuepunktes DATEI/Neuer Baustein anlegen tun.
  4228.       Nehmen  wir mal an Sie wollen ein Programm schreiben, daß folgende
  4229.       Bausteine enthält: OB1 OB21 PB10 PB11 FB30 FB40. Zuerst müssen Sie
  4230.       sich  einen sinnvollen Namen für das Programm überlegen, unter dem
  4231.       das  Programm  auf  Diskette  oder  Festplatte abgespeichert wird.
  4232.       Dieser  Name  darf  maximal  8 Zeichen lang sein. Drücken Sie nun,
  4233.       vorausgesetzt   Sie   befinden   sich   in  der  Menueleiste,  die
  4234.       [F4]-Taste.
  4235.  
  4236.       Alternativ  können  Sie auch den Menuepunkt "Datei" und danach den
  4237.       Menueunterpunkt   "Neuer   Baustein   anlegen"  aktivieren.  Jetzt
  4238.       erscheint   ein   Fenster,   in   dem  Sie  den  Bausteintyp,  die
  4239.       Bausteinnummer  und den Bausteinname angeben müssen. Wenn Sie alle
  4240.       Felder  ausgefüllt  haben, müssen Sie die [PGDN]-Taste drücken, um
  4241.       die Eingaben zu bestätigen. Wenn Sie das getan haben, befinden Sie
  4242.       sich  nun im Editor, wo Sie Ihr Programm eingeben können. Wenn Sie
  4243.       den  Baustein  abschließen möchten, geben Sie als letzte Anweisung
  4244.       "BE" ein.
  4245.  
  4246.       Danach  springt  das  Programm in die Menueleiste zurück. Wenn Sie
  4247.       nun  die  [F2]-Taste betätigen erscheint ein Dialogfenster, in dem
  4248.       Sie  noch eine Beschreibung und, wenn Sie darauf Wert legen, Ihren
  4249.       Namen  angeben  können.  Nach Betätigung der [PGDN]-Taste wird der
  4250.       Baustein abgespeichert.
  4251.  
  4252.       Die  gleiche  Procedure führen Sie noch mit den anderen Bausteinen
  4253.       durch, wobei Sie immer den gleichen Bausteinnamen angeben müssen.
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.                             ─── Seite 70 ───
  4260.  
  4261.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4262. ──────────────────────────────────────────────────────────────────────────────
  4263.  
  4264.       3.5 Der Aufruf von Bausteinen
  4265.  
  4266.       Sie können Bausteine absolut aufrufen, d.h. unabhängig vom Zustand
  4267.       des  VKE  (Verknüpfungsergebnis)  oder  bedingt, d.h. der Baustein
  4268.       wird nur aufgerufen, wenn das VKE den Signalzustand '1' führt.
  4269.  
  4270.       Wenn   Sie   im  Editor  einen  Funktionsbaustein  aufrufen,  wird
  4271.       nachgeprüft,  ob  der  Baustein auf dem Datenträger vorhanden ist.
  4272.       Ist  das  nicht  der  Fall erhalten Sie eine Fehlermeldung und die
  4273.       AWL-Zeile  wird  als  Kommentar  gekennzeichnet. Das bedeutet, Sie
  4274.       können  einen Funktionsbausteinaufruf nur programmieren, wenn sich
  4275.       der  betreffende  Baustein  im eingestellten Pfad befindet. Ein FB
  4276.       muß  beim Aufruf vorhanden sein, damit nachgeprüft werden kann, ob
  4277.       dieser mit Formaloperanden arbeitet. Ist dies der Fall, müssen Sie
  4278.       die Aktualoperanden im Editor eingeben.
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.       3.6 DIE SIMULATION EINES SPS-PROGRAMMS MIT VERSCHIEDENEN
  4285.           BAUSTEINEN.
  4286.  
  4287.  
  4288.       3.6.1 Laden eines Bausteins
  4289.  
  4290.       Nehmen  wir  mal  an,  Sie  haben  ein  Programm  geschrieben, daß
  4291.       verschiedene  Bausteine  enthält.  Um  das Programm zu simulieren,
  4292.       müssen Sie es zuerst in den Speicher laden. Wenn Sie [STRG/RETURN]
  4293.       drücken  erscheint  das  Bausteinhandling-  Fenster,  in  dem alle
  4294.       Bausteine aufgelistet werden. Machen Sie mit Hilfe der [TAB]-Taste
  4295.       das Fenster mit den OB's (das ist das Dateifenster ganz links) zum
  4296.       aktuellen  Dateifenster,  und  drücken  Sie  den Anfangsbuchstaben
  4297.       Ihres  SPS-Programms.  Die Auswahlbox such jetzt nach OB's, welche
  4298.       mit dem gedrückten Buchstaben anfangen.
  4299.  
  4300.       War die Suche erfolgreich springt der Auswahlbalken zur gefundenen
  4301.       Position.  Wenn  Sie  jetzt  den  zweiten  Buchstaben  Ihres  SPS-
  4302.       Programms  drücken  wird  wieder  gesucht  und  der  Auswahlbalken
  4303.       springt  erneut zur gefundenen Position. Auf diese Weise haben Sie
  4304.       Ihr  geschriebenes  Programm  schnell  gefunden.  Nach Drücken der
  4305.       [RETURN]-Taste wird das SPS- Programm geladen.
  4306.  
  4307.       Es macht kein Unterschied, wenn Sie statt dem OB einen vorhandenen
  4308.       PB, FB oder SB laden.
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.                             ─── Seite 71 ───
  4320.  
  4321.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4322. ──────────────────────────────────────────────────────────────────────────────
  4323.  
  4324.       3.6.2 Aktivierung der Simulation
  4325.  
  4326.       Jetzt können Sie die AWL-Simulation mit der [F9]-Taste aktivieren.
  4327.       Es  werden  jetzt  alle  Bausteine, die den gleichen Bausteinnamen
  4328.       haben,  geladen.  Dabei  spielt es keine Rolle, ob der Baustein in
  4329.       der  AWL  aufgerufen  wird,  oder  nicht.  Auch  alle integrierten
  4330.       Bausteine  werden  geladen. Nachdem alle Bausteine geladen wurden,
  4331.       wird  zuerst  der OB21 (falls er vorhanden ist) bearbeitet. Danach
  4332.       wird der OB1 zyklisch abgearbeitet.
  4333.  
  4334.  
  4335.  
  4336.       3.6.2.1 Simulation von OB's FB's PB's & SB's
  4337.  
  4338.       Im Simulationsfenster sehen Sie jetzt den Baustein, den Sie vorher
  4339.       geladen haben. Natürlich ist es jetzt interessant nachzusehen, wie
  4340.       sich die anderen Bausteine verhalten - drücken Sie [STRG/RETURN].
  4341.  
  4342.       Es  erscheint  nun  rechts ein kleines Auswahlfenster, in dem alle
  4343.       Bausteine, die sich im Speicher befinden, nacheinander aufgelistet
  4344.       werden.  Die Simulation wird dadurch nicht unterbrochen, sie läuft
  4345.       im Hintergrund weiter.
  4346.  
  4347.       Sie  können  jetzt  bequem  ein  Baustein  aussuchen  und anzeigen
  4348.       lassen. Auch hier können Sie, wie beim Laden von Bausteinen, durch
  4349.       Drücken  der  Anfangsbuchstaben schneller den gewünschten Baustein
  4350.       anwählen. Die Bausteine werden immer in der Reihenfolge OB-FB- PB-
  4351.       SB-DB aufgelistet.
  4352.  
  4353.  
  4354.  
  4355.       3.6.2.2 Simulation von DB's 
  4356.  
  4357.       Das  Auswahlfenster,  das  Sie  mit  Hilfe  der  Tastenkombination
  4358.       [STRG/RETURN]  erreichen, listet vorhandene Datenbausteine zuletzt
  4359.       auf.  Dabei  ist  der  Datenbaustein Nr. 2 immer vorhanden. Dieser
  4360.       Datenbaustein  wird  in  der  AWL-Simulation  bearbeitet, wenn Sie
  4361.       keine  anderen  erzeugen  oder  aufrufen.  Wenn Sie nun aus dieser
  4362.       Auswahlliste   einen   DB   auswählen,   wird   der  DB-Editor  im
  4363.       Simulationsmodus  aktiviert, und Sie können während der Simulation
  4364.       den  Inhalt  des  ausgesuchten  Datenbausteins betrachten. Mit den
  4365.       Tasten  [+]  und  [-]  können  Sie  das  Sichtfenster  zeilenweise
  4366.       verschieben.  Dabei  bleiben  die anderen Tasten für die Steuerung
  4367.       der   AWL-Simulation   weiter   aktiv.   Eingeschaltete   Anzeigen
  4368.       (Akku/VKE/...) sind während der DB- Simulation nicht aktiv.
  4369.  
  4370.       Mit der [ESC]-Taste verlassen Sie wieder den DB-Editor.
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.                             ─── Seite 72 ───
  4380.  
  4381.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4382. ──────────────────────────────────────────────────────────────────────────────
  4383.  
  4384.       3.6.3 INFORMATIONEN BEI DER SIMULATION
  4385.  
  4386.       3.6.3.1 WIRD DER ANGEZEIGTE BAUSTEIN BEARBEITET ?
  4387.  
  4388.       Wenn  Sie  einen Baustein im Simulationsfenster ansehen, heißt das
  4389.       noch lange nicht, daß dieser auch bearbeitet wird. Vielleicht wird
  4390.       er  ja  gar nicht angesprungen. Wird ein Baustein bearbeitet sehen
  4391.       Sie  rechts  in  der  untersten  Zeile  des Bildschirms das ASCII-
  4392.       Zeichen  4 (eine Raute) flackern. Es ist in bestimmten Fällen aber
  4393.       auch möglich, daß ein Baustein bearbeitet wird, und dieses Zeichen
  4394.       nicht  erscheint.  Dieser  Fall  tritt  ein,  wenn der Baustein im
  4395.       Simulationsfenster  klein  gegenüber  den  anderen Bausteinen ist.
  4396.       Dann  wird das Raute- Zeichen viel öfter gelöscht als dargestellt.
  4397.       Das Ergebnis ist, daß Sie das Zeichen nicht mehr erkennen.
  4398.       Hinweis:
  4399.       Werden  OB's  im  Simulationsfenster  angezeigt,  wird  das Raute-
  4400.       Zeichen nicht angezeigt.
  4401.  
  4402.  
  4403.  
  4404.       3.6.3.2 Wieviele Bausteinebenen besitzt das simulierte Programm ?
  4405.  
  4406.       Wenn  Sie  im  OB  1  einen Baustein aufrufen, und im aufgerufenen
  4407.       Baustein  wird  wieder  ein  Baustein  aufgerufen,  und  in diesem
  4408.       Baustein wird ebenfalls wieder ein Baustein aufgerufen, dann haben
  4409.       Sie  ein  verschachteltes  SPS-Programm  geschrieben.  In der AWL-
  4410.       Simulation wird die maximal erreichte Bausteinebene in der letzten
  4411.       Bildschirmzeile rechts in eckigen Klammern angezeigt.
  4412.  
  4413.       Die  maximale  Verschachtelungstiefe ist beim SPS-Simulator auf 15
  4414.       begrenzt.  Bei  Überschreitung  dieser  Grenze wird die Simulation
  4415.       durch eine Einleitung des STOP-Befehls abgebrochen.
  4416.  
  4417.       Eine  solche  Fehlermeldung  erhalten  Sie  z.B.  wenn  Sie  einen
  4418.       unkontrollierten  rekursiven  Aufruf  bewerkstelligen.  Sie wissen
  4419.       nicht  was  das  ist ? Ganz einfach, wenn sich ein Baustein selbst
  4420.       aufruft.  Das  hat verheerende Folgen, da innerhalb kürzester Zeit
  4421.       alle   Bausteinebenen   durchlaufen   werden,   bis  die  maximale
  4422.       Verschachtelungstiefe  erreicht  wird.  Sie  können  es  gerne mal
  4423.       ausprobieren.
  4424.  
  4425.  
  4426.  
  4427.       3.7  DER DATENBAUSTEINEDITOR - ERSTELLUNG VON DATENBAUSTEINEN
  4428.  
  4429.       3.7.1 Aufruf des Datenbausteineditors
  4430.  
  4431.       Der  SPS-Simulator  besitzt in der vorliegenden Version auch einen
  4432.       Datenbausteineditor.  Mit  Hilfe  dieses Werkzeuges können Sie auf
  4433.       einfache  Weise einen Datenbaustein bearbeiten. Der Editor kann in
  4434.       drei  Anzeigemodi arbeiten: "KC", "KH" und "KF". Diese Modi können
  4435.       zur jeder Zeit, wenn der Datenbausteineditor sichtbar ist, mit der
  4436.       [TAB]-Taste umgeschaltet werden.
  4437.  
  4438.  
  4439.                             ─── Seite 73 ───
  4440.  
  4441.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4442. ──────────────────────────────────────────────────────────────────────────────
  4443.  
  4444.       Wenn  Sie einen Datenbaustein erstellen möchten, gehen Sie genauso
  4445.       vor,  wie  bei  der  Erstellung eines anderen Bausteins. Gehen Sie
  4446.       also zum Menuepunkt "DATEI/Neuer Baustein anlegen" und drücken Sie
  4447.       die  [RETURN]-Taste. Geben Sie nun im Eingabefeld Bausteintyp "DB"
  4448.       ein.  Die  anderen zwei Felder müssen auch noch mit entsprechenden
  4449.       Daten versorgt werden (Bausteinname und Bausteintyp). Nach drücken
  4450.       der [PGDN]-Taste wird der Datenbausteineditor aufgerufen.
  4451.  
  4452.       Wenn   Sie   sich   im   "normalen"   Editor   befinden   und  die
  4453.       Tastenkombination  [STRG/RETURN] drücken, erscheint
  4454.       ein  Auswahlfeld,  in dem Sie ebenfalls ein Datenbaustein anwählen
  4455.       können.  Ebenso  können  Sie  einen  abgespeicherten  DB laden und
  4456.       editieren,  wenn  Sie  sich  im  Dialogfenster  "Bausteinhandling"
  4457.       befinden  ([F3]-Taste). In  diesen  Auswahlfeldern werden aber nur
  4458.       schon  erstellte  Datenbausteine  aufgelistet. Wenn Sie also einen
  4459.       neuen   Datenbaustein  erstellen  wollen,  müssen  Sie  die  zuvor
  4460.       vorgestellte Möglichkeit wählen.
  4461.  
  4462.  
  4463.  
  4464.       3.7.2 Eingeben von Daten
  4465.  
  4466.       Je nachdem, was für Daten Sie eingeben möchten, können Sie mit der
  4467.       [TAB]-Taste  das Anzeigeformat umschalten. Wenn Sie Texte eingeben
  4468.       wollen,  ist  es natürlich sinnvoll, das "KC"-Format zu wählen. Es
  4469.       hindert  Sie  aber  niemand daran, die "KH"-Anzeige zu wählen, und
  4470.       die   entsprechenden   ASCII-Codes  hexadezimal  einzuhacken.  Ein
  4471.       Unterschied macht nur der jeweilige Zeitaufwand.
  4472.  
  4473.  
  4474.       Folgende Steuertasten sind im Datenbausteineditor aktiv:
  4475.       (Nur im Editormodus - also nicht während der Simulation)
  4476.  
  4477.       Taste                   Befehl
  4478.       ─────────────────────────────────────────────────────────────
  4479.       [PGDN]                  Vorblättern.
  4480.       [PGUP]                  Zurückblättern.
  4481.       [Pfeil nach oben]       Cursor um eine Zeile nach oben
  4482.                               bewegen.
  4483.       [Pfeil nach unten]      Cursor um eine Zeile nach unten
  4484.                               bewegen.
  4485.       [Pfeil nach rechts]     Cursor um eine Spalte nach rechts
  4486.                               bewegen.
  4487.       [Pfeil nach links]      Cursor um eine Spalte nach links
  4488.                               bewegen.
  4489.       [ALT/D]                 Datenbaustein von Datenträger
  4490.                               entfernen.
  4491.       [ALT/C]                 Datenbausteininhalt löschen.
  4492.       [ALT/P]                 Datenbaustein drucken.
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.                             ─── Seite 74 ───
  4500.  
  4501.       PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN                 KAPITEL 3
  4502. ──────────────────────────────────────────────────────────────────────────────
  4503.  
  4504.       Aktive Tasten bei ..
  4505.       ────────────────────
  4506.       Einstellung "KC" ...... alle Zeichen sind erlaubt.
  4507.       Einstellung "KF" ...... Ziffern von "0" bis "9", "+" und "-" sind
  4508.                               erlaubt.
  4509.       Einstellung "KH" ...... Zeichen "A"-"F" und die Ziffern 
  4510.                               "0" bis "9" sind erlaubt.
  4511.  
  4512.       Wenn  Sie  einen  Datenbaustein  geändert  haben,  werden  Sie vor
  4513.       Verlassen  des  DB-Editors gefragt, ob der DB abgespeichert werden
  4514.       soll. Wenn Sie dies bestätigen, ist dieser Baustein ab sofort auch
  4515.       im Menuepunkt "Bausteinhandling" erreichbar.
  4516.  
  4517.  
  4518.  
  4519.       3.7.3 Besonderheiten des DB-Editors
  4520.  
  4521.       Der Datenbausteineditor kann in zwei verschiedenen Modi aufgerufen
  4522.       werden.  Wenn Sie sich in der AWL-Simulation befinden und von dort
  4523.       einen    Datenbaustein    aufrufen,    wird   der   DB-Editor   im
  4524.       Simulationsmodus  aufgerufen.  Die  Anzeige  wird  dann nach jedem
  4525.       Zyklus,  wie  die  Anweisungsliste  auch,  aktualisiert. In diesem
  4526.       Modus  sind  nur  die  Tasten [+] und [-] aktiv. 
  4527.       Mit diesen Tasten können Sie den Ausschnitt des DB-Editors während 
  4528.       der AWL-Simulation verschieben.
  4529.  
  4530.       Gleichzeitig sind die anderen Tasten für die AWL-Simulation weiter
  4531.       aktiv.  Sie  können  also,  während Sie  den DB-Editor betrachten,
  4532.       Eingänge umschalten und durch die AWL blättern.
  4533.  
  4534.       Hinweis:
  4535.  
  4536.       Wenn  Sie sich in der AWL-Simulation befinden und die "KC"-Anzeige
  4537.       ist  aktiv,  wird das Byte Nr. 7 als Punkt (".") dargestellt. Wenn
  4538.       man  nämlich  dieses  ASCII-Zeichen  auf  den  Bildschirm ausgeben
  4539.       würde, würde ein akustisches Signal ertönen.
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.                             ─── Seite 75 ───
  4560.  
  4561.       PARAMETRIERBARE FUNKTIONSBAUSTEINE                       KAPITEL 4
  4562. ──────────────────────────────────────────────────────────────────────────────
  4563.  
  4564.       4.1 Was sind parametrierbare FB's
  4565.  
  4566.       Ein parametrierter FB ist ein Funktionsbaustein, dem man Parameter
  4567.       oder Operanden (Aktualoperanden) übergeben kann.
  4568.  
  4569.       Beispiel:
  4570.  
  4571.       Es  wäre  möglich,  mit Hilfe eines p. FB's einen Taktgenerator zu
  4572.       schreiben,  dem  Sie  mitteilen  können,  welche  Taktfrequenz  er
  4573.       erzeugen  soll,  und  mit welchen Operanden er arbeiten soll. Wenn
  4574.       Sie  nun  in  Zukunft  einen  Taktgenerator  benötigen, können Sie
  4575.       einfach  diesen  FB  aufrufen.  Es  ist  sogar  möglich, mit einem
  4576.       solchen    FB    mehrere    Taktgeneratoren    gleichzeitig    mit
  4577.       unterschiedlichen  Taktfrequenzen  zu  erzeugen.  Sie  müssen  nur
  4578.       diesen  FB  mehrmals  mit  verschiedenen  Parameter  und Operanden
  4579.       aufrufen.
  4580.  
  4581.  
  4582.  
  4583.       4.2 Erstellung von parametrierten FB's
  4584.  
  4585.       Zunächst  müssen  Sie  einen  neuen  FB  eröffnen.  Gehen  Sie zum
  4586.       Menuepunkt  "Datei/Neuer  Baustein  anlegen", und  drücken Sie die
  4587.       [RETURN]-Taste.  Im  Eingabefeld "Bausteintyp" geben Sie "FB" ein.
  4588.       Die  Bausteinnummer  können  Sie frei wählen, der Bausteinname muß
  4589.       mit  dem  Bausteinname  des  OB1  übereinstimmen.  Wenn  Sie  alle
  4590.       Eingabefelder   mit   Daten   versorgt   haben,   können  Sie  die
  4591.       [PGDN]-Taste  drücken, danach befinden Sie sich im Editor. Drücken
  4592.       Sie nun  die  [F10]-Taste. Jetzt erscheint ein Fenster, in dem Sie
  4593.       einen  Namen oder eine Beschreibung des FB's angeben müssen. Geben
  4594.       Sie  einen passenden Text ein, und drücken Sie die [RETURN]-Taste.
  4595.       Jetzt werden nacheinander die Formaloperanden definiert.
  4596.  
  4597.       Für jeden Formaloperand müssen Sie drei Angaben machen:
  4598.  
  4599.       1. Symbol mit maximal 4 Zeichen
  4600.       2. Typ des Parameters
  4601.       3. Parameterart
  4602.  
  4603.       Bei  den  Parametertypen  "B",  "T"  und  "Z"  entfällt die dritte
  4604.       Angabe. Wenn Sie alle 3 Angaben gemacht haben, wird der Eintrag in
  4605.       die  AWL  vorgenommen  und der Vorgang beginnt von Neuem. Wenn Sie
  4606.       keinen  Formaloperanden  mehr  eingeben  wollen,  drücken  Sie die
  4607.       [ESC]-Taste.
  4608.       In einem FB können maximal 40 Formaloperanden definiert werden.
  4609.  
  4610.       Nachdem  Sie  alle  Formaloperanden  festgelegt  haben,  folgt das
  4611.       eigentliche  Programm. In diesem Programm können Sie nun besondere
  4612.       Operationen     mit     Formaloperanden    programmieren    (siehe
  4613.       Operationsvorat im Anhang). Natürlich können Sie in diesem FB auch
  4614.       die "normalen" Operationen verwenden.
  4615.  
  4616.  
  4617.  
  4618.  
  4619.                             ─── Seite 76 ───
  4620.  
  4621.       PARAMETRIERBARE FUNKTIONSBAUSTEINE                       KAPITEL 4
  4622. ──────────────────────────────────────────────────────────────────────────────
  4623.  
  4624.       4.3 Aufruf von parametrierten FB's
  4625.  
  4626.       Ein  parametrierter  FB kann von jedem anderem Baustein aufgerufen
  4627.       werden.  Der  FB  kann  absolut  (SPA  FB)  oder  bedingt (SPB FB)
  4628.       aufgerufen  werden.  Bei einem solchen Aufruf wird nachgeprüft, ob
  4629.       der   FB   vorhanden   ist.  Wenn  das  der  Fall  ist,  wird  die
  4630.       Parameterliste,  die  am  Anfang  des FB abgespeichert ist, in den
  4631.       aktuellen Baustein eingefügt. Sie müssen nun jede eingefügte Zeile
  4632.       mit einem entsprechenden Parameter oder Aktualoperanden belegen.
  4633.  
  4634.  
  4635.  
  4636.       4.4 Ändern der BEZeicherliste
  4637.  
  4638.       Wenn  Sie  einen  parametrierten  FB  programmiert  haben, kann es
  4639.       vorkommen,   daß   Sie   die  BEZeicherliste  ändern  müssen.  Zur
  4640.       Erinnerung:  In  der  BEZeichnerliste  müssen alle Formaloperanden
  4641.       definiert  werden.  Diese  Liste  steht immer an erster Stelle des
  4642.       FB's.  Wenn  Sie  nun diese Liste ändern, werden folgende Probleme
  4643.       auftauchen:   Zum   einen   können  Operationen,  die  Sie  im  FB
  4644.       programmiert  haben,  nicht mehr ausgeführt werden, weil diese mit
  4645.       dem  neuen Parametertyp nicht möglich sind. Zum anderen kann es zu
  4646.       Problemen bei der Parameterübergabe bei der AWL-Simulation kommen.
  4647.       Sie  müssen  dann  alle  FB-Aufrufe  ebenfalls  ändern,  damit die
  4648.       Parameter wieder übereinstimmen.
  4649.  
  4650.  
  4651.  
  4652.       4.5 Simulation von parametrierten FB's
  4653.  
  4654.       Wenn  Sie ein Programm simulieren, daß einen p. FB enthält, können
  4655.       Sie  diesen  natürlich  auch im Simulationsfenster sichtbar machen
  4656.       ([STRG/RETURN] und dann auswählen). Beachten Sie aber: Wenn ein p.
  4657.       FB  mehrmals  aufgerufen  wird,  zeigen  die AWL- Zeilen (HIGH/LOW
  4658.       Status) keinen definierten Zustand mehr an, da ja bei jedem Aufruf
  4659.       andere Operanden im Spiel sind.
  4660.  
  4661.  
  4662.  
  4663.       4.6 Beispiel
  4664.  
  4665.       In  diesem  Beispiel wird ein Taktgenerator als parametrierter FB
  4666.       realisiert.
  4667.       Wir werden nun folgende Bausteine programmieren:
  4668.  
  4669.       1. FB100
  4670.          Bausteinname: "BEISPIEL"
  4671.  
  4672.       2. OB1
  4673.          Bausteinname: "BEISPIEL"
  4674.  
  4675.       Sie  sehen,  beide  Bausteinnamen  stimmen  überein. Dies ist eine
  4676.       Voraussetzung, daß der aufgerufene FB gefunden wird.
  4677.  
  4678.  
  4679.                             ─── Seite 77 ───
  4680.  
  4681.       PARAMETRIERBARE FUNKTIONSBAUSTEINE                       KAPITEL 4
  4682. ──────────────────────────────────────────────────────────────────────────────
  4683.  
  4684.       1. Programmierung des FB100
  4685.  
  4686.       Eröffnen Sie zuerst einen neuen Baustein mit dem Namen "BEISPIEL",
  4687.       Bausteintyp "FB" und Bausteinnummer "100".
  4688.  
  4689.       Geben   Sie  nun  folgende  Anweisungsliste  ein,  wobei  Sie  die
  4690.       Definition der Formaloperanden mit Hilfe der [F10]-Taste erstellen
  4691.       können.
  4692.  
  4693.       Baustein:FB100   Name:BEISPIEL
  4694.  
  4695.       0001 NAME:TAKTGENERATOR
  4696.       0002 BEZ :HILF              E   BI
  4697.       0003 BEZ :TIME              T
  4698.       0004 BEZ :ZEIT              D   KT
  4699.       0005 BEZ :AUSG              A   BI
  4700.       0006     :                ┌──────────────────┐                  
  4701.       0007     :UN  =  HILF     │ => UN   M  10.0  │
  4702.       0008     :LW  =  ZEIT     │ => L    KT 50.0  │
  4703.       0009     :SVZ =  TIME     │ => SV   T  1     │
  4704.       0010     :U   =  TIME     │ => U    T  1     │
  4705.       0011     :=   =  HILF     │ => =    M  10.0  │  
  4706.       0012     :                │                  │
  4707.       0013     :U   =  HILF     │ => U    M  10.0  │
  4708.       0014     :BEB             │ => BEB           │
  4709.       0015     :UN  =  AUSG     │ => UN   A  5.0   │
  4710.       0016     :=   =  AUSG     │ => =    A  5.0   │
  4711.       0017     :                │                  │
  4712.       0018     :BE              └─────────┬────────┘
  4713.  
  4714.                                 Diese Kommentare
  4715.                                 müssen Sie nicht eingeben.
  4716.  
  4717.       Die  Kommentare  in  der  rechten  Spalte zeigen, wie das Programm
  4718.       später bearbeitet wird.
  4719.  
  4720.  
  4721.  
  4722.       2. Programmierung des OB1
  4723.  
  4724.       Eröffnen Sie zuerst einen neuen Baustein mit dem Namen "BEISPIEL",
  4725.       Bausteintyp "OB" und Bausteinnummer "1".
  4726.  
  4727.       Geben Sie dann folgende Anweisungsliste ein:
  4728.  
  4729.  
  4730.       Baustein:OB1   Name:BEISPIEL
  4731.  
  4732.       0001     :
  4733.       0002     :
  4734.       0003     :
  4735.       0004     :SPA FB  100
  4736.       0005 NAME:TAKTGENERATOR
  4737.       0006 HILF:M10.0             E   BI
  4738.  
  4739.                             ─── Seite 78 ───
  4740.  
  4741.       PARAMETRIERBARE FUNKTIONSBAUSTEINE                       KAPITEL 4
  4742. ──────────────────────────────────────────────────────────────────────────────
  4743.  
  4744.       0007 TIME:T1                T
  4745.       0008 ZEIT:50.0              D   KT
  4746.       0009 AUSG:A5.0              A   BI
  4747.       0010     :
  4748.       0011     :
  4749.       0012     :BE
  4750.  
  4751.       Wenn  Sie nun dieses Programm starten, blinkt der Ausgang A5.0 mit
  4752.       einer  Frequenz  von  einem Herz. Sie können nun mal ausprobieren,
  4753.       diesen  FB  mehrmals  hintereinander  mit verschiedenen Parametern
  4754.       aufzurufen. Achten Sie dabei, daß Sie bei jedem Aufruf eine andere
  4755.       Zeitnummer  (T1)  und  einen anderen Hilfsmerker angeben. Wenn Sie
  4756.       gleiche  Zeitnummern  übergeben, arbeiten zwei Taktgeneratoren mit
  4757.       einer  Zeit.  Die  Folge  ist,  daß  Ihr  Taktgenerator nicht mehr
  4758.       richtig funktioniert.
  4759.  
  4760.  
  4761.       4.7 Was Sie beachten sollten
  4762.  
  4763.       ■ Wenn  Sie  einen parametrierten FB mehrmals aufrufen, in dem Sie
  4764.         Zeiten  oder  Zähler  programmiert  haben,  müssen Sie bei jedem
  4765.         Aufruf  andere Operandenummern (z.B. T1) übergeben. Sonst können
  4766.         die Zeitglieder nicht mehr richtig ablaufen.
  4767.  
  4768.       ■ Die Anzahl der Formaloperanden ist in einem FB auf 40 begrenzt.
  4769.  
  4770.       ■ Die definierten Formaloperanden sind nicht außerhalb eines FB's
  4771.         verwendbar.
  4772.  
  4773.       ■ Wenn Sie Aktualoperanden oder Konstanten in der Parameterliste
  4774.         angeben, dürfen Sie dabei keine Leerzeichen eingeben.
  4775.         Beispiel: KT200.2 oder KF+32000 (nach KT darf kein Leerzeichen
  4776.                   stehen!).
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.                             ─── Seite 79 ───
  4800.  
  4801.       PARAMETRIERBARE FUNKTIONSBAUSTEINE                       KAPITEL 4
  4802. ──────────────────────────────────────────────────────────────────────────────
  4803.  
  4804.       4.8 Mögliche Bausteinparameter und zugelassene Aktualoperanden
  4805.  
  4806.       In  der  folgenden  Tabelle finden Sie alle Parameterarten mit den
  4807.       möglichen Aktualoperanden.
  4808.  
  4809.         ╔══════════╤════════════════════╤═══════════════════════════╗
  4810.         ║Art des   │     Typ des        │    Zugelassene            ║
  4811.         ║Parameters│     Parameters     │    Aktualoperanden        ║
  4812.         ╠══════════╪════════════════════╪═══════════════════════════╣
  4813.         ║          │                    │       E  X.X              ║
  4814.         ║   E, A   │ BI   Operand mit   │       A  X.X              ║
  4815.         ║          │      Bitadresse    │       M  X.X              ║
  4816.         ╟──────────┼────────────────────┼───────────────────────────╢
  4817.         ║          │                    │       EB X                ║
  4818.         ║   E, A   │ BY   Operand mit   │       AB X                ║
  4819.         ║          │      Byteadresse   │       MB X                ║
  4820.         ║          │                    │       DL X                ║
  4821.         ║          │                    │       DR X                ║
  4822.         ║          │                    │       PB X                ║
  4823.         ╟──────────┼────────────────────┼───────────────────────────╢
  4824.         ║          │                    │       EW X                ║
  4825.         ║   E, A   │ W    Operand mit   │       AW X                ║
  4826.         ║          │      Wortadresse   │       MW X                ║
  4827.         ║          │                    │       DW X                ║
  4828.         ║          │                    │       PW X                ║
  4829.         ╟──────────┼────────────────────┼───────────────────────────╢
  4830.         ║          │  KM   Bitmuster    │                           ║
  4831.         ║   D      │  KY   2-Byte-Zahl  │                           ║
  4832.         ║          │  KH   Hex-Zahl     │       jeweilige           ║
  4833.         ║          │  KC   2 Zeichen    │                           ║
  4834.         ║          │  KT   Zeitwert     │       Konstante           ║
  4835.         ║          │  KZ   Zählwert     │                           ║
  4836.         ║          │  KF   Festpunktzahl│                           ║
  4837.         ╟──────────┼────────────────────┼───────────────────────────╢
  4838.         ║          │                    │                           ║
  4839.         ║          │     keine          │    DB X  (=> A DB X)      ║
  4840.         ║   B      │     Typenangabe    │    FB X  (=> SPA FB X)    ║
  4841.         ║          │     zulässig       │    PB X  (=> SPA PB X)    ║
  4842.         ║          │                    │    SB X  (=> SPA SB X)    ║
  4843.         ║          │                    │                           ║
  4844.         ╟──────────┼────────────────────┼───────────────────────────╢
  4845.         ║          │    keine           │                           ║
  4846.         ║   T      │    Typenangabe     │    T xx                   ║
  4847.         ║          │    zulässig        │                           ║
  4848.         ╟──────────┼────────────────────┼───────────────────────────╢
  4849.         ║          │    keine           │                           ║
  4850.         ║   Z      │    Typenangabe     │    Z xx                   ║
  4851.         ║          │    zulässig        │                           ║
  4852.         ╚══════════╧════════════════════╧═══════════════════════════╝
  4853.  
  4854.       Hinweis:
  4855.  
  4856.       Die  Parameterarten  "E"  und  "A"  haben nichts mit Eingängen und
  4857.       Ausgängen  zu   tun.   Sie   stehen   für   Eingangsparameter  und
  4858.       Ausgangsparameter.
  4859.                             ─── Seite 80 ───
  4860.  
  4861.       STEUERBEFEHLE                                            KAPITEL 5
  4862. ──────────────────────────────────────────────────────────────────────────────
  4863.       SPS-Steuerbefehle
  4864.  
  4865.       5.1 Was sind SPS-Steuerbefehle
  4866.  
  4867.       Mit  Hilfe  von  SPS-Steuerbefehlen  kann  der  Simulator  auf das
  4868.       jeweilige  Programm  im Editor angepaßt werden. Alle Steuerbefehle
  4869.       beginnen  mit  dem  Zeichen "$". Danach folgt je nach Steuerbefehl
  4870.       ein  oder  zwei  Kennbuchstabe(n)  und  eine  bestimmte Anzahl von
  4871.       Parametern.  Die  einzelnen Parameter müssen bei der Eingabe durch
  4872.       ein  Leerzeichen  getrennt  werden. Nach Bestätigung mit Hilfe der
  4873.       [RETURN]-Taste    wird    der    Steuerbefehl   kontrolliert   und
  4874.       ausgerichtet.   Steuerbefehle   haben  bei  EGA/VGA-  Karten  eine
  4875.       besondere Farbe.
  4876.  
  4877.       Wichtige Hinweise
  4878.  
  4879.       ■ Steuerbefehle  werden  immer absolut bearbeitet, d.h. unabhängig
  4880.         vom VKE
  4881.  
  4882.       ■ Steuerbefehle  müssen  nur  einmal bearbeitet werden. Es bietet
  4883.         sich darum an, diese Befehle in den OB21 zu schreiben.
  4884.         Ausnahme: $K : Steuerbefehl für die Klartextanzeige
  4885.  
  4886.       ■ Bei   der  Eingabe  von  Steuerbefehlen,  müssen  die  einzelnen
  4887.         Parameter mit einem Leerzeichen getrennt werden.
  4888.  
  4889.       Möglichkeiten von SPS-Steuerbefehlen:
  4890.  
  4891.       ■ individuelle Einstellung der allgemeinen Statusanzeige.
  4892.       ■ Festlegung von akustischen Ausgängen, für die Simulation von
  4893.         Motoren oder Hupen.
  4894.       ■ Festlegung von Tastern und Schalter 
  4895.       ■ Einstellung von Peripheriebytes, zur Ansteuerung von Eingangs-
  4896.         Ausgangskarten.
  4897.       ■ Getrennte und gemeinsame Einstellung der PAE- und PAA Anzeige
  4898.       ■ Programmierung der Klartextanzeige
  4899.       ■ Einstellung der Anlogeingabe
  4900.  
  4901.       5.2 Definition von Tastern und Schaltern
  4902.  
  4903.       Steuerbefehl: $E 1 0.0 T S
  4904.                     ││ │  │  │ │
  4905.                     ││ │  │  │ └───── S=Schließer; O=Oeffner
  4906.                     ││ │  │  └─────── T=Taster; S=Schalter
  4907.                     ││ │  └────────── Eingang
  4908.                     ││ └───────────── laufende Nummer von 1 bis 40
  4909.                     │└─────────────── Kennbuchstabe
  4910.                     └──────────────── Einleitung des Steuerbefehls
  4911.  
  4912.       Die "laufende Nummer" darf sich nicht wiederholen, da Sie sonst
  4913.       andere Definitionen wieder überschreiben.
  4914.       Beispiele:
  4915.       $E  1  4.0  T  S =>  E4.0 ist Taster, Ausführung Schließer
  4916.       $E  2  4.1  T  O =>  E4.1 ist Taster, Ausführung Oeffner
  4917.       $E  3  4.2  S  O =>  E4.2 ist Schließer, Ausführung Oeffner
  4918.       $E  4  4.3  S  S =>  E4.3 ist Schalter, Ausführung Schließer
  4919.                             ─── Seite 81 ───
  4920.  
  4921.       STEUERBEFEHLE                                            KAPITEL 5
  4922. ──────────────────────────────────────────────────────────────────────────────
  4923.  
  4924.       5.3 Definition von akustischen Ausgängen
  4925.  
  4926.  
  4927.       Steuerbefehl: $A  1  0.0  100
  4928.                     ││  │   │    │
  4929.                     ││  │   │    └───── Frequenz in Hz
  4930.                     ││  │   └────────── Ausgang
  4931.                     ││  └────────────── laufende Nummer (1..20)
  4932.                     │└───────────────── Kennbuchstabe
  4933.                     └────────────────── Einleitung des Steuerbefehls
  4934.       Beispiele
  4935.  
  4936.       $A  1  0.0  20   => A0.0 ist akustischer Ausgang mit 20 Hz
  4937.       $A  2  0.1  200  => A0.1 ist akustischer Ausgang mit 200 Hz
  4938.       $A  3  2.2  420  => A2.2 ist akustischer Ausgang mit 420 Hz
  4939.       $A  4  4.4  620  => A4.4 ist akustischer Ausgang mit 620 Hz
  4940.  
  4941.       Achtung:
  4942.       Es  können nicht mehrere akustische Ausgänge gleichzeitig ertönen.
  4943.       Wenn Sie mehrere akustische Ausgänge festgelegt haben, und mehrere
  4944.       Ausgänge   gleichzeitig   Signalzustand  '1'  führen,  ertönt  der
  4945.       Ausgang, der die kleinste "laufende Nummer" hat.
  4946.  
  4947.  
  4948.  
  4949.       5.4 Einstellung der Statusanzeige
  4950.  
  4951.       Steuerbefehl: $S  1  EB  1  KH
  4952.                     ││  │  │   │   │
  4953.                     ││  │  │   │   └───── Anzeigeformat
  4954.                     ││  │  │   └───────── Operandennummer
  4955.                     ││  │  └───────────── Operand
  4956.                     ││  └──────────────── laufende Nummer (1..15)
  4957.                     │└─────────────────── Kennbuchstabe
  4958.                     └──────────────────── Einleitung des Steuerbefehls
  4959.  
  4960.       Beispiele:
  4961.  
  4962.       $S 1 EB  4  KH =>  def. d. 1. Zeile der Statusanzeile auf EB4 KH
  4963.       $S 2 T   44 KF =>  def. d. 2. Zeile der Statusanzeile auf T44 KF
  4964.       $S 5 DW  8  KC =>  def. d. 5. Zeile der Statusanzeile auf DW8 KC
  4965.       $S 7 AW  44 KM =>  def. d. 7. Zeile der Statusanzeile auf AW44 KM
  4966.  
  4967.       Hinweise:
  4968.       ■ Werden  mit  Hilfe der Statusanzeige Datenwörter angezeigt, wird
  4969.         der aktuelle Datenbaustein in der 8. Zeile von oben, ganz rechts
  4970.         angezeigt.  Die  angezeigten  Datenwörter  stammen immer von dem
  4971.         Datenbaustein,  der  kurz  vor der "BE"- Anweisung des OB1 aktiv
  4972.         ist.   Wollen   Sie   also   Datenwörter  von  einem  bestimmten
  4973.         Datenbaustein  anzeigen,  müssen Sie diesen DB in der vorletzten
  4974.         AWL-Zeile im OB1 aufrufen (A DB xxx).
  4975.  
  4976.       ■ Diese  Statusanzeige  kann  keine Datenwörtern von verschiedenen
  4977.         Datenbausteine anzeigen.
  4978.  
  4979.                             ─── Seite 82 ───
  4980.  
  4981.       STEUERBEFEHLE                                            KAPITEL 5
  4982. ──────────────────────────────────────────────────────────────────────────────
  4983.  
  4984.       5.5 Einstellung von Peripheriebytes
  4985.  
  4986.       Mit   diesem   Steuerbefehl   können   Sie   z.B.  Interfacekarten
  4987.       programmieren.
  4988.  
  4989.       Steuerbefehl: $P 10 220 EB4
  4990.                     ││ │   │   │
  4991.                     ││ │   │   └──── Eingang oder Ausgangsbyte
  4992.                     ││ │   └──────── Portadresse in HEX
  4993.                     ││ └──────────── laufenden Nummer
  4994.                     ││               (Peripheriebyte) 
  4995.                     │└────────────── Kennbuchstabe 
  4996.                     └─────────────── Einleitung des Steuerbefehls
  4997.  
  4998.  
  4999.       Besonderheiten:
  5000.  
  5001.       Wenn  der  dritte  Parameter  (Eingangs-  oder  Ausgangsbyte)  ein
  5002.       Eingangsbyte   ist,   dann   wird  der  angegebene  Port  zyklisch
  5003.       ausgelesen und zum angegebenen Eingangsbyte transferiert.
  5004.  
  5005.       Wenn  der  dritte  Parameter  (Eingangs-  oder  Ausgangsbyte)  ein
  5006.       Ausgangsbyte ist, dann wird der angegebene Port mit dem Inhalt des
  5007.       angegebenen Ausgangsbyte beschrieben.
  5008.  
  5009.       Wenn  Sie  keinen  dritten  Parameter angeben, wird nicht zyklisch
  5010.       gelesen  oder beschrieben. Sie können dann mit Hilfe der Lade- und
  5011.       Transferbefehle auf den Port zugreifen:
  5012.  
  5013.       L  PB  1   => Liest  die  angegebene Portadresse aus, und legt den
  5014.                     Inhalt  im Akku 1 ab. Die Portadresse muß vorher mit
  5015.                     dem $P-Steuerbefehl hexadezimal angegeben werden.
  5016.  
  5017.       T  PB  4   => Transferiert  den  Inhalt des Akku 1 zur angegebenen
  5018.                     Portadresse.  Die Portadresse muß vorher mit dem $P-
  5019.                     Steuerbefehl hexadezimal angegeben werden.
  5020.  
  5021.       Achtung:
  5022.  
  5023.       Sie  müssen  unbedingt  vorsichtig  sein,  wenn  Sie  Portadressen
  5024.       angeben. Wenn Sie hier die falschen Portadressen angeben, kann Ihr
  5025.       Rechner abstürzen.
  5026.  
  5027.       5.5.1 Programmierung einer Interface- Karte mit 8255- Port-
  5028.             bausteinen.
  5029.  
  5030.       Dieses    Beispiel    ist   für   eine   Interfacekarte  mit  48
  5031.       freiprogrammierbaren Ein- und Ausgängen (Portbaustein: 2* 8255)
  5032.  
  5033.       Angenommen  die  Karte ist über DIP- Schalter so konfiguriert, daß
  5034.       die   Start-   Portadresse   bei   240hex  (=Basisadresse)  liegt.
  5035.       Gewünschte Konfiguration ist: 24 Eingänge und 24 Ausgänge.
  5036.  
  5037.  
  5038.  
  5039.                             ─── Seite 83 ───
  5040.  
  5041.       STEUERBEFEHLE                                            KAPITEL 5
  5042. ──────────────────────────────────────────────────────────────────────────────
  5043.  
  5044.  
  5045.       Damit   sich   die  Karte  so  verhält,  müssen  sog.  Steuerworte
  5046.       eingestellt werden.
  5047.       Laut  Datenblatt muß dann im 1. Steuerwort 96 hex abgelegt, und im
  5048.       2. Steuerwort 73 hex abgelegt werden.
  5049.  
  5050.       Nach  meinen  Unterladen  liegt  das 1. Steuerwort auf der Adresse
  5051.       "Basisadresse  +  7  hex",  das  zweite Steuerwort auf der Adresse
  5052.       "Basisadresse + B hex".
  5053.  
  5054.       =>
  5055.  
  5056.       Portadressen der Steuerworte:
  5057.  
  5058.         Adresse des 1. Steuerworts = "Basisadresse + 7 hex" = 247 hex
  5059.         Adresse des 2. Steuerworts = "Basisadresse + B hex" = 24B hex
  5060.  
  5061.       Die Portadressen für die Eingänge lauten
  5062.  
  5063.         Adresse des 1. Eingangsbytes = "Basisadresse + 4 hex" = 244 hex
  5064.         Adresse des 2. Eingangsbytes = "Basisadresse + 5 hex" = 245 hex
  5065.         Adresse des 3. Eingangsbytes = "Basisadresse + 6 hex" = 246 hex
  5066.  
  5067.       Portadressen für die Ausgänge lauten:
  5068.  
  5069.         Adresse des 1. Ausgangssbytes = "Basisadresse + 8 hex" = 248 hex
  5070.         Adresse des 2. Ausgangssbytes = "Basisadresse + 9 hex" = 249 hex
  5071.         Adresse des 3. Ausgangssbytes = "Basisadresse + A hex" = 24A hex
  5072.  
  5073.       Da  nun  alle  Adressen  bekannt  sind,  kann der Simulator danach
  5074.       eingestellt werden.
  5075.       Das folgende kurze Programm sollte im OB 21 abgelegt werden.
  5076.       Im  OB  21  deshalb,  weil  dieser nur einmal bei Simulationsstart
  5077.       bearbeitet wird.
  5078.  
  5079.       OB 21:
  5080.  
  5081.       0001     :$P  1       247
  5082.       0002     :$P  2       24B
  5083.       0003     :
  5084.       0004     :$P  3       244       EB0
  5085.       0005     :$P  4       245       EB1
  5086.       0006     :$P  5       246       EB2
  5087.       0007     :
  5088.       0008     :$P  6       248       AB0
  5089.       0009     :$P  7       249       AB1
  5090.       0010     :$P  8       24A       AB2
  5091.       0012     :
  5092.       0013     :L  KH 0096
  5093.       0014     :T  PB 1                 Steuerwort 1 einstellen
  5094.       0015     :L  KH 0073
  5095.       0016     :T  PB 2                 Steuerwort 2 einstellen
  5096.       0017     :
  5097.       0018     :BE
  5098.  
  5099.                             ─── Seite 84 ───
  5100.  
  5101.       STEUERBEFEHLE                                            KAPITEL 5
  5102. ──────────────────────────────────────────────────────────────────────────────
  5103.  
  5104.       Der  OB21  wurde  nun so programmiert, daß in den Steuerworten die
  5105.       richtigen  Werte liegen, damit die Interfacekarte auf 24 Eingängen
  5106.       und 24 Ausgängen eingestellt ist.
  5107.  
  5108.       Dies wurde in den Zeilen 13 bis 16 erledigt.
  5109.       In  den  Zeilen  1  und  2  wurde  das  Peripheriebyte  1  mit der
  5110.       Portadresse  247 hex, und das Peripheriebyte 2 mit der Portadresse
  5111.       24B hex  verknüpft.
  5112.  
  5113.       In  den  Zeilen  4 bis 6 wurden die Eingangsbytes EB0, EB1 und EB2
  5114.       mit  den Portadressen 244 hex, 245 hex und 246 hex verknüpft. Wenn
  5115.       Sie  Portadressen mit Eingangsbytes verknüpfen, werden die Inhalte
  5116.       der   Portadressen   nach   jedem   Zyklus  zu  den  Eingangsbytes
  5117.       transferiert. Das bedeutet, daß Sie die Eingänge nur noch über die
  5118.       Interface- Karte (z.B. mit Schaltern) einstellen können.
  5119.  
  5120.       In  den  Zeilen 8 bis 10 wurden die Ausgangsbytes AB0, AB1 und AB2
  5121.       mit  den Portadressen 248 hex, 249 hex und 24A hex verknüpft. Dies
  5122.       bedeutet nun, daß die Portadressen mit den Inhalten des jeweiligen
  5123.       Ausgangsbytes nach jedem Zyklus beschrieben werden.
  5124.       D.h.  wenn  Sie  einen  den  Ausgang  A  0.0 in Ihrem SPS-Programm
  5125.       setzen,    wird   auch   der   entsprechende   Ausgang   auf   der
  5126.       Interface-Karte gesetzt.
  5127.  
  5128.       Sie  haben nun in Verbindung mit dem SPS-Simulator eine kleine SPS
  5129.       aufgebaut, mit der Sie nun auch extern etwas steuern können !
  5130.  
  5131.  
  5132.  
  5133.       5.5.2  Programmierung  einer  Interface- Karte mit festen Ein-
  5134.              Ausgangsbelegungen.
  5135.  
  5136.       Es gibt auch Interface- Karten, die in den Belegungen der Ein- und
  5137.       Ausgängen    fest   eingestellt   sind.   Dadurch   entfällt   die
  5138.       Programmierung  der  Steuerworte,  und  Sie  brauchen nur noch die
  5139.       Ausgangs- und Eingangsbytes verknüpfen.
  5140.  
  5141.       Eine solche Karte mit 16 Eingängen und 16 Ausgängen kann ich Ihnen
  5142.       z.B. anbieten (siehe Datei "BESTELL.TXT")
  5143.  
  5144.       Das  Programm  für  diese  Interface-  Karte  sieht folgendermaßen
  5145.       aus,  wenn  die  Startportadresse  der  Eingange  172 hex, und die
  5146.       Start- Portadresse der Ausgänge 170 hex ist:
  5147.  
  5148.       OB21:
  5149.  
  5150.       0001     :$P  1       170       AB0
  5151.       0002     :$P  2       171       AB1
  5152.       0003     :
  5153.       0004     :$P  3       172       EB0
  5154.       0005     :$P  4       173       EB1
  5155.       0006     :BE
  5156.  
  5157.  
  5158.  
  5159.                             ─── Seite 85 ───
  5160.  
  5161.       STEUERBEFEHLE                                            KAPITEL 5
  5162. ──────────────────────────────────────────────────────────────────────────────
  5163.  
  5164.       Diese Zeilen erledigen das Gleiche, wie bei der Interface-Karte mit
  5165.       8255- Portbausteinen. Nur die Einstellung der Steuerwörter ist hier
  5166.       nicht  norwendig, da diese Karte definitiv 16 Eingänge und Ausgänge
  5167.       bietet.
  5168.  
  5169.  
  5170.  
  5171.  
  5172.       5.6 Einstellung der PAA und PAE - Anzeige
  5173.  
  5174.       Mit  den  nächsten  drei  Steuerbefehlen  kann man die Anzeige der
  5175.       Eingangs-  und  Ausgangsleiste  beeinflussen. Sie können festlegen
  5176.       mit welchem Startbyte die PAE- bzw. PAA Anzeige beginnen soll.
  5177.  
  5178.       5.6.1 Gemeinsame Einstellung des Startbytes von PAE und PAA
  5179.  
  5180.       Steuerbefehl: $B 33
  5181.                     ││ │
  5182.                     ││ └──── gewünschtes Eingangs- Ausgangsbyte (0..128)
  5183.                     │└────── Kennbuchstabe
  5184.                     └─────── Einleitung des Steuerbefehls
  5185.  
  5186.  
  5187.       5.6.2 Einstellung des aktuellen Eingangsbyte
  5188.  
  5189.       Steuerbefehl: $BE 33
  5190.                     ││  │
  5191.                     ││  └───── gewünschtes Eingangsbyte (0..128)
  5192.                     │└──────── Kennbuchstaben
  5193.                     └───────── Einleitung des Steuerbefehls
  5194.  
  5195.       Mit  diesem  Steuerbefehl  stellen  Sie nur das Start-Eingangsbyte
  5196.       ein, das Start-Ausgangsbyte wird nicht beeinflußt.
  5197.  
  5198.  
  5199.       5.6.3 Einstellung des aktuellen Ausgangsbytes
  5200.  
  5201.       Steuerbefehl: $BA 33
  5202.                     ││  │
  5203.                     ││  └───── gewünschtes Ausgangsbyte (0..128)
  5204.                     │└──────── Kennbuchstaben
  5205.                     └───────── Einleitung des Steuerbefehls
  5206.  
  5207.       Mit  diesem  Steuerbefehl  stellen  Sie nur das Start-Ausgangsbyte
  5208.       ein, das Start-Eingangsbyte wird nicht beeinflußt.
  5209.  
  5210.  
  5211.       Hinweis:
  5212.       Wieviele   Eingangs-   und  Ausgangsbyte  angezeigt  werden,  kann
  5213.       ebenfalls  eingestellt  werden.  Diese Einstellung kann aber nicht
  5214.       mit   Steuerbefehlen   vorgenommen  werden,  sondern  muß  in  der
  5215.       Konfigurationsdatei "SPS.CFG" eingestellt werden.
  5216.       Wenn Sie die Klartextanzeige darstellen wollen können nicht alle 8
  5217.       Eingangsbytes dargestellt werden, sondern maximal 5.
  5218.  
  5219.                             ─── Seite 86 ───
  5220.  
  5221.       STEUERBEFEHLE                                            KAPITEL 5
  5222. ──────────────────────────────────────────────────────────────────────────────
  5223.  
  5224.       5.7 Programmierung der Klartextanzeige
  5225.  
  5226.       Der  nachfolgende  Steuerbefehl unterscheidet sich grundlegend von
  5227.       den  anderen  Steuerbefehlen: Die Ausführung des Steuerbefehls ist
  5228.       vom  VKE  abhänig. Dies wurde so gewählt, damit die Programmierung
  5229.       vereinfacht wird.
  5230.  
  5231.  
  5232.       Steuerbefehl: $K  1  MELDETEXT
  5233.                     ││  │  │
  5234.                     ││  │  └── Meldetext
  5235.                     ││  └───── Zeile der Klartextanzeige (1 bis 6)
  5236.                     │└──────── Kennbuchstaben
  5237.                     └───────── Einleitung des Steuerbefehls
  5238.  
  5239.  
  5240.       Für  die Programmierung einer Zeile der Klartextanzeige sind immer
  5241.       zwei  Steuerbefehle  notwendig.  Der erste Steuerbefehl läßt einen
  5242.       bestimmten  Text  erscheinen,  wenn  irgend eine Bedingung erfüllt
  5243.       ist.
  5244.       Der  zweite  Steuerbefehl  muß diesen Text entweder wieder löschen
  5245.       oder   mit  einem  anderen  Text  belegten,  wenn  eine  bestimmte
  5246.       Bedingung  erfüllt ist.
  5247.       Der  Steuerbefehl  wird nur ausgeführt, wenn das VKE "1" ist.
  5248.       (VKE abhänig)
  5249.  
  5250.       Beispiel:
  5251.       .
  5252.       .
  5253.       0005 U  M  0.0
  5254.       0006 $K 1  STEUERUNG IST EIN
  5255.       0007 UN M  0.0
  5256.       0008 $K 1  STEUERUNG IST AUS
  5257.       .
  5258.       .
  5259.  
  5260.       Wenn  der  Merker  M0.0  "1"  ist  erscheint  in  der 1. Zeile der
  5261.       Klartextanzeige  der Text "Steuerung ist ein", ist der Merker M0.0
  5262.       "0" dann erscheint der Text "Steuerung ist aus".
  5263.  
  5264.       Hinweis:
  5265.  
  5266.       Die  Klartextanzeige kann maximal 6 Zeilen verwalten. Wenn Sie die
  5267.       Klartextanzeige  einsetzen  wollen,  sind  maximal 5 Eingangs- und
  5268.       Ausgangsbytes  (PAE,  PAA)  darstellbar.  Dies  müßte aber bei den
  5269.       meisten Anwendungen ausreichen.
  5270.  
  5271.       Die  "$K"-  Steuerbefehle  dürfen  nicht  in den OB 21 geschrieben
  5272.       werden,  da  der  OB 21 nur einmal bei Simulationsstart bearbeitet
  5273.       wird.  Die  Steuerbefehle  für die Klartextanzeige müssen zyklisch
  5274.       bearbeitet werden !
  5275.  
  5276.  
  5277.  
  5278.  
  5279.                             ─── Seite 87 ───
  5280.  
  5281.       Sonstiges                                                KAPITEL 5
  5282. ──────────────────────────────────────────────────────────────────────────────
  5283.  
  5284.       5.8 Einstellung der Analogeingabe
  5285.  
  5286.       Mit diesem Steuerbefehl können Sie den Eingabetyp (Kanaltyp)
  5287.       des Analogwertes festlegen.
  5288.  
  5289.       Steuerbefehl: $AE   1     3
  5290.                      │    │     │
  5291.                      │    │     └─── Analogtyp (Kanaltyp) von 3..6
  5292.                      │    └───────── Analognr. von 1 .. 6
  5293.                      └────────────── Einleitung des Steuerbefehls
  5294.  
  5295.       Die  Analognummer  gibt  an,  welche  Analogeingabe Sie einstellen
  5296.       möchten.  Da  Sie  insgesamt 6 Analogeingaben zur Verfügung haben,
  5297.       können   Sie   hier  eine  Nummer  von  1  bis  6  angeben.  Diese
  5298.       Analogeingabe können Sie dann mit Hilfe der Tastatur einstellen.
  5299.       (Tastaturbelegung siehe nächsten Abschnitt)
  5300.  
  5301.       Der  Analogtyp  gibt  an, wie der Meßwert dargestellt werden soll,
  5302.       den Sie mit der Tastatur vorgeben.
  5303.  
  5304.       Analogtyp 3 = Betragsdarstellung (4 ... 20 mA)
  5305.       Analogtyp 4 = unipolare Darstellung (kein Vorzeichen)
  5306.       Analogtyp 5 = Betragszahl;    bipolar    (mit   Vorzeichen).   Das
  5307.                     Vorzeichen  wird  mit  dem  Bit  15 dargestellt. Der
  5308.                     Meßwert   wird   nicht   mit   dem  Zweierkomplement
  5309.                     dargestellt !
  5310.       Analogtyp 6 = Festpunktzahl bipolar (Zweierkomplement)
  5311.  
  5312.       Alle Analogeingaben sind standardmäßig auf Analogtyp 4
  5313.       voreingestellt.
  5314.  
  5315.       Mit dem Analogtyp ergeben sich auch die Einheiten (digitalisierter
  5316.       Meßwert), die Sie über die Tastatur einstellen können:
  5317.  
  5318.       ╔══════════╤════════════════════╤══════════════════════════╗
  5319.       ║Analogtyp │  Einheiten         │ Nennbereich (Einheiten)  ║
  5320.       ╠══════════╪════════════════════╪══════════════════════════╣
  5321.       ║    3     │ 0 ... 4096         │ 512 ... 2560             ║
  5322.       ╟──────────┼────────────────────┼──────────────────────────╢
  5323.       ║    4     │ 0 .. 4096          │ 0 ... 2048               ║
  5324.       ╟──────────┼────────────────────┼──────────────────────────╢
  5325.       ║    5     │ - 4096 ... + 4096  │ - 2048 ... + 2048        ║
  5326.       ╟──────────┼────────────────────┼──────────────────────────╢
  5327.       ║    6     │ - 4096 ... + 4096  │ - 2048 .. + 2048         ║
  5328.       ╚══════════╧════════════════════╧══════════════════════════╝
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.                             ─── Seite 88 ───
  5340.  
  5341.       Sonstiges                                                KAPITEL 5
  5342. ──────────────────────────────────────────────────────────────────────────────
  5343.  
  5344.       6.1 Simulation von Analogeingaben
  5345.  
  5346.       Die Periphiewörter 128 bis 138 liefern analoge Werte, die über die
  5347.       Tastatur  eingestellt  werden können. Der zurückgelieferte analoge
  5348.       Wert ist folgendermaßen aufgebaut:
  5349.  
  5350.               ┌── Hi - Byte ──┼─── Lo-Byte ───┐
  5351.               ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
  5352.               │ │ │ │ │ │ │ │ │ │ │ │ │ │T│F│Ü│
  5353.               └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
  5354.   
  5355.       Die ersten 3 Bits haben eine besondere Bedeutung:
  5356.   
  5357.       "Ü" : Überlaufbit. Dieses Bit wird auf "1" gesetzt,
  5358.             wenn der Nennbereich überschritten wird.
  5359.       "F" : Fehlerbit. Wird normalerweise gesetzt, wenn ein Drahtbruch
  5360.             vorliegt. In der Simulation hat dieses Bit immer den
  5361.             Zustand "0".
  5362.       "T" : Tätigkeitsbit. Ist normalerweise "1" wenn der Vorgang 
  5363.             Einzelabtastung noch nicht beendet ist. Bei der Simulation
  5364.             ist dieses Bit immer "0".
  5365.   
  5366.       In den restlichen Bits steht der eigentliche Analogwert, den Sie
  5367.       über die Tastatur eingestellt haben.
  5368.       Wie  der analoge Wert dargestellt wird, ist abhängig vom Analogtyp
  5369.       (Kanaltyp).  Den  Analogtyp können Sie mit Hilfe des Steuerbefehls
  5370.       "$AE" einstellen. (Siehe Abschnitt 5.8)
  5371.  
  5372.       Wenn  Sie  eine  einfache  Darstellung  des  Meßwertes eingestellt
  5373.       haben   (z.B.   Kanaltyp  4)  können  Sie  den  Meßwert  in  einem
  5374.       Funktionsbaustein  direkt  verwenden,  wenn  Sie  den Meßwert über
  5375.       einen  "L PW" einlesen und dann diesen Wert im Akku 1 um 3 Stellen
  5376.       nach rechts schieben ("SRW 3").
  5377.       Wenn Sie einen anderen Kanaltyp eingtestellt haben,sollten Sie den
  5378.       Funktionsbaustein    FB   250   verwenden,   um   ein   normiertes
  5379.       Ausgangssignal zu bekommen.
  5380.  
  5381.       Normalerweise  liefern  analoge  Eingabebaugruppen  einen analogen
  5382.       Wert  in  einem Peripheriewort zurück. In der Simulation geben Sie
  5383.       über  die  Tastatur  diesen Analogwert vor. Diese Peripheriewörter
  5384.       können  über die Tastatur oder durch einen Transferbefehl zu einem
  5385.       Peripheriewort (PW 128 bis PW 138) eingestellt werden.
  5386.       Bitte beachten  Sie, das letzteres nicht STEP5- konform ist. Sie
  5387.       können aber dadurch die Analogeingabe z.B. in einem FB einstellen.
  5388.  
  5389.       Tastenbelegungen:
  5390.   
  5391.       Tastenbelegung PW 128:
  5392.           [STRG/Q] erhöht die Einheit um das eingestellte Raster
  5393.           [STRG/A] setzt die Einheit auf den Anfangswert.
  5394.           [STRG/Y] erniedrigt die Einheit um das eingestellte Raster
  5395.       Tastenbelegung PW 130:
  5396.           [STRG/W] erhöht die Einheit um das eingestellte Raster
  5397.           [STRG/S] setzt die Einheit auf den Anfangswert.
  5398.           [STRG/X] erniedrigt die Einheit um das eingestellte Raster
  5399.                             ─── Seite 89 ───
  5400.  
  5401.       Sonstiges                                                KAPITEL 5
  5402. ──────────────────────────────────────────────────────────────────────────────
  5403.  
  5404.       Tastenbelegung PW 132:
  5405.           [STRG/E] erhöht die Einheit um das eingestellte Raster
  5406.           [STRG/D] setzt die Einheit auf den Anfangswert.
  5407.           [STRG/C] erniedrigt die Einheit um das eingestellte Raster
  5408.       Tastenbelegung PW 134:
  5409.           [STRG/R] erhöht die Einheit um das eingestellte Raster
  5410.           [STRG/F] setzt die Einheit auf den Anfangswert.
  5411.           [STRG/V] erniedrigt die Einheit um das eingestellte Raster
  5412.       Tastenbelegung PW 136:
  5413.           [STRG/T] erhöht die Einheit um das eingestellte Raster
  5414.           [STRG/G] setzt die Einheit auf den Anfangswert.
  5415.           [STRG/B] erniedrigt die Einheit um das eingestellte Raster
  5416.       Tastenbelegung PW 138:
  5417.           [STRG/Z] erhöht die Einheit um das eingestellte Raster
  5418.           [STRG/H] setzt die Einheit auf den Anfangswert.
  5419.           [STRG/N] erniedrigt die Einheit um das eingestellte Raster
  5420.   
  5421.       ! Diese Peripheriewörter können nur dann über die Tastatur !
  5422.       ! gesteuert werden, wenn Sie diese PW's mit keinen         !
  5423.       ! Portadressen verknüpft haben.                            !
  5424.   
  5425.       Das  Raster,  mit  dem  die  Werte  erniedrigt bzw. erhöht werden,
  5426.       können  Sie mit der [F9]- bzw. [F10]- Taste einstellen. Das Raster
  5427.       kann den Wert 1 bis 1000 annehmen. Mit der [F9]- Taste erhöhen Sie
  5428.       das Raster, mit [F10] erniedrigen Sie das Raster.
  5429.  
  5430.       Um  dieses  neue  Feature auszuprobieren, schreiben Sie einfach in
  5431.       einen OB1 die Operation "L PW 128" und in der nächsten Zeile "BE".
  5432.       Gehen  Sie  nun  in  die AWL-Simulation und schalten Sie die Akku-
  5433.       Anzeige  auf  KH. ([H] drücken). Drücken Sie nun die Tasten [STRG]
  5434.       und  [Q]  gleichzeitig.  Sie  sehen, daß nach jedem Drücken dieser
  5435.       Tastenkombination,  sich  der  Wert  im PW 128 um das eingestellte
  5436.       Raster erhöht.
  5437.  
  5438.   
  5439.  
  5440.  
  5441.       6.2  Abfrage des Joysticks
  5442.  
  5443.       Es  stehen  2  Befehle  zur  Verfügung,  die  analoge PC-Joysticks
  5444.       abfragen können. Sie können dann mit dem Joystick einen bestimmten
  5445.       Wert  einstellen,  auf  den  dann  Ihr  SPS-Programm reagiert. Die
  5446.       Befehle lauten:
  5447.  
  5448.  
  5449.       JOYPOS    (die  Nummer  des  Joysticks  (1  oder 2) muß im AKKU 1
  5450.                  stehen)
  5451.  
  5452.       Achtung:
  5453.       Vor  diesem  Befehl muß die Nummer des Joysticks (1 oder 2) in das
  5454.       AKKU  geladen  werden.  Der  Befehl  liefert  dann  in  AKKU1  die
  5455.       horizontale Position zurück, und in AKKU2 die vertikale.
  5456.  
  5457.  
  5458.  
  5459.                             ─── Seite 90 ───
  5460.  
  5461.       Sonstiges                                                KAPITEL 5
  5462. ──────────────────────────────────────────────────────────────────────────────
  5463.  
  5464.  
  5465.       JOYBUT
  5466.  
  5467.       Dieser Befehl liefert den Zustand der Feuerknöpfe beider Joysticks
  5468.       im LOWByte des AKKU1 zurück.
  5469.  
  5470.       Vor  diesem  Befehl ist daher die Joystick-Nummer nicht notwendig.
  5471.       Im 5. und 6. Bit wird der Zustand des 1.Joysticks zurückgeliefert.
  5472.       Im 7. und 8. Bit wird der Zustand des 2.Joysticks zurückgeliefert.
  5473.  
  5474.  
  5475.       6.3 Die Konfigurationsdatei "SPS.CFG".
  5476.  
  5477.       In  dieser  Datei  werden  alle  Einstellungen  des SPS-Simulators
  5478.       abgespeichert.  Die  Einstellungen,  die  öfters  geändert werden,
  5479.       speichert  der  Simulator  eigenständig  ab.  Es  gibt  aber  auch
  5480.       Einstellungen,  die  mit  einem  beliebigen  Editor (z.B. EDIT von
  5481.       MSDOS) eingestellt werden müssen.
  5482.  
  5483.       Folgende Einstellungen sichert der Simulator automatisch:
  5484.  
  5485.       ■ Remanente Timer, Zähler und Merker
  5486.       ■ Einstellungen der PAE/PAA- Leiste
  5487.       ■ Zeilen/Seite beim FUP/AWL-Ausdruck
  5488.       ■ Druckerschnittstelle
  5489.       ■ Linker Rand beim AWL/FUP-Ausdruck
  5490.       ■ Alle Escape-Sequenzen
  5491.       ■ Aktive ESC-Sequenz AWL und FUP
  5492.       ■ alle Verzeichnisse
  5493.       ■ aktueller Baustein 
  5494.       ■ Tastaturgeschwindigkeit
  5495.       ■ Textmodi für FUP und AWL
  5496.       ■ Schnittstellennummer für AG-Funktionen und PC Panel-Kommunikation
  5497.       ■ Datenblock für die PC Panel-Kommunikation
  5498.       ■ Interrupt Nr. für COM3 und COM4
  5499.  
  5500.       Alle anderen Einstellungen können nur mit einem Editor verändert
  5501.       werden. 
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.                             ─── Seite 91 ───
  5520.  
  5521.       Sonstiges                                                KAPITEL 5
  5522. ──────────────────────────────────────────────────────────────────────────────
  5523.  
  5524.       6.3 Die Konfigurationsdateien "FARBEN.VGA" und "FARBEN.MON".
  5525.  
  5526.       Wenn  Sie eine EGA/VGA-Karte besitzen, stehen die Bildschirmfarben
  5527.       in  der  Datei "FARBEN.VGA". Bei Monochromen Bildschirm- karten in
  5528.       der   Datei  "FARBEN.MON".  Da  die  Bildschirmfarben  nur  selten
  5529.       geändert  werden,  können  diese  Dateien  nur  mit einem externen
  5530.       Editor verändert werden.
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.       6.5 Mitgelieferte integrierte Bausteine (nur in der VOLLVERSION)
  5537.  
  5538.       Die   nachfolgenden   Bausteine   sind  als  integrierte  Bauteine
  5539.       abgespeichert.  Diese  Bausteine  können  bei Bedarf angesehen und
  5540.       geändert werden.
  5541.  
  5542.  
  5543.       6.5.1 FB 240 Wandlerbaustein BCD -> DUAL
  5544.  
  5545.       Mit  diesem  Baustein  können  Sie  eine  4-Tetraden  BCD Zahl mit
  5546.       Vorzeichen  in eine Dezimalzahl umwandeln. Da das Vorzeichen nicht
  5547.       in  der  BCD-Zahl enthalten sein kann, muß es mit Hilfe eines Bit-
  5548.       Operanden geliefert werden.
  5549.  
  5550.       FB-Kopf des FB 240:
  5551.  
  5552.       0005     :SPA FB 240                   
  5553.       0006 NAME:COD:B4             
  5554.       0007 BCD :             E  W    Eingabe: BCD-Zahl
  5555.       0008 SBCD:             E  BI   Eingabe: Vorzeichen - "1"=negativ
  5556.       0009 DUAL:             A  W    Ausgabe: DUAL-Zahl
  5557.       0010     :  
  5558.  
  5559.       6.5.2 FB 241 Wandlerbaustein DUAL -> BCD
  5560.  
  5561.       Mit  diesem  Baustein  können  Sie eine DUAL-Zahl in eine BCD-Zahl
  5562.       umwandeln.    Das   Vorzeichen   wird   in   einem   Bit-Operanden
  5563.       zurückgeliefert.
  5564.  
  5565.       FB-Kopf des FB 241:
  5566.  
  5567.       0005     :SPA FB 241                   
  5568.       0006 NAME:COD:16             
  5569.       0007 DUAL:             E  W    Eingabe: DUAL-Zahl
  5570.       0008 SBCD:             A  BI   Eingabe: Vorzeichen - "1"=negativ
  5571.       0009 BCD2:             A  BY   Ausgabe: BCD-Zahl die 4..5. Tetrade
  5572.       0010 BCD1:             A  W    Ausgabe: BCD-Zahl die 0..3. Tetrade
  5573.          .
  5574.          .
  5575.  
  5576.  
  5577.  
  5578.  
  5579.                             ─── Seite 92 ───
  5580.  
  5581.       Sonstiges                                                KAPITEL 5
  5582. ──────────────────────────────────────────────────────────────────────────────
  5583.  
  5584.  
  5585.       6.5.3 FB 242  Rechenbaustein Multiplizierer
  5586.  
  5587.       Dieser Baustein multipliziert zwei Festpunktzahlen.
  5588.  
  5589.       FB-Kopf des FB 242:
  5590.  
  5591.       0005     :SPA FB 242                   
  5592.       0006 NAME:MUL:16             
  5593.       0007 Z1  :             E  W    Eingabe: 1. Festpunktzahl
  5594.       0008 Z2  :             E  W    Eingabe: 2. Festpunktzahl
  5595.       0009 Z3=0:             A  BI   Ausgabe: "1" wenn das Produkt 0 ist
  5596.       0010 Z32 :             A  W    Ausgabe: High-Wort des Ergebnisses
  5597.       0011 Z31 :             A  W    Ausgabe: Low-Wort des Ergebnisses
  5598.          .
  5599.          .
  5600.  
  5601.  
  5602.  
  5603.       6.5.4 FB 243  Rechenbaustein Dividierer
  5604.  
  5605.       Dieser Baustein dividiert zwei Festpunktzahlen.
  5606.  
  5607.       FB-Kopf des FB 243:
  5608.  
  5609.       0005     :SPA FB 243                   
  5610.       0006 NAME:DIV:16             
  5611.       0007 Z1  :             E  W    Eingabe: 1. Festpunktzahl
  5612.       0008 Z2  :             E  W    Eingabe: 2. Festpunktzahl
  5613.       0009 OV  :             A  BI   Ausgabe: "1" falls Überlauf
  5614.       0010 FEH :             A  B    Ausgabe: "1" bei Division durch "0"
  5615.       0011 Z3=0:             A  BI   Ausgabe: "1" wenn Quotient = 0
  5616.       0012 Z4=0:             A  BI   Ausgabe: "1" wenn Rest = 0
  5617.       0013 Z3  :             A  W    Ausgabe: Quotient (Ergebnis)
  5618.       0014 Z4  :             A  W    Ausgabe: Rest
  5619.          .
  5620.          .
  5621.  
  5622.  
  5623.       6.5.5 FB 250 Analogeingabe 
  5624.  
  5625.       Der   Algorithmus   des  FB250  ist  innerhalb  der  Programmdatei
  5626.       abgespeichert.  Deshalb  findet  man, wenn man sich die AWL dieses
  5627.       Bausteins    anschaut,    nur    den    Bausteinkopf    mit    den
  5628.       Formaloperandendeklarationen.
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.                             ─── Seite 93 ───
  5640.  
  5641.       Sonstiges                                                KAPITEL 5
  5642. ──────────────────────────────────────────────────────────────────────────────
  5643.  
  5644.       Aufbau des Bausteinkopfes des FB 250:
  5645.   
  5646.       NAME:RLG:AE
  5647.       BEZ :BG           D   KF  ; Baugruppenadresse = KF+128,
  5648.                                   KF130, ..., KF138
  5649.       BEZ :KNKT         D   KY  ; Kanalnummer und Kanaltyp
  5650.       BEZ :OGR          D   KF  ; Obere Grenze des normierten Wertes
  5651.       BEZ :UGR          D   KF  ; Untere Grenze des normierten Wertes
  5652.       BEZ :EINZ         E   BI  ; Einzelabtastung
  5653.       BEZ :XA           A   W   ; Normierter Wert
  5654.       BEZ :FB           A   BI  ; Fehlerbit
  5655.       BEZ :BU           A   BI  ; Bereichsüberschreitung
  5656.       BEZ :TBIT         A   BI  ; Tätigkeitsbit
  5657.   
  5658.       Erklärung der Formaloperanden:
  5659.     
  5660.       ■ BG
  5661.         Gibt das Peripheriewort an, das eingelesen werden soll.
  5662.         Hier können Sie "KF128" bis "KF138" angeben (in 2er- Schritten)
  5663.         
  5664.       ■ KNKT
  5665.         Kanalnummer wird als Ofset zur Baugruppennummer verwendet.
  5666.         Wenn Sie hier z.B. "KY1,4" und bei BG "KF128" angeben,
  5667.         wird das Peripheriewort Nr. 128+2*1 = 130 verwendet.
  5668.         Der zweite Parameter gibt den Kanaltyp an.
  5669.         Hier   muß   der   Kanaltyp  eingegeben  werden,  der  über  den
  5670.         Steuerbefehl  "$P"  eingestellt  wurde.  Standardmäßig  muß hier
  5671.         eine "4" stehen.
  5672.  
  5673.       ■ OGR
  5674.         Ist die obere Grenze des zurückgelieferten Analogwertes
  5675.         (KF-32768 bis KF+32767)
  5676.   
  5677.       ■ UGR
  5678.         Ist die untere Grenze des zurückgelieferten Analogwertes
  5679.         (KF-32768 bis KF+32767)
  5680.   
  5681.       ■ EINZ
  5682.         Einzelabtastung: Wird beim Simulator nicht verwendet !
  5683.   
  5684.       ■ XA
  5685.         Ist der zurückgegebene normierte Analogwert
  5686.   
  5687.       ■ FB
  5688.         Fehlerbit: Wird gesetzt wenn ein Drahtbruch vorliegt.
  5689.         Wird beim Simulator nicht verwendet.
  5690.   
  5691.       ■ BU
  5692.         Bereichsüberschreiung
  5693.         Wird auf '1' gesetzt, wenn der analoge Wert (in Einheiten)
  5694.         den Nennbereich verläßt. (Nennbereich siehe Abschnitt 5.)
  5695.   
  5696.       ■ TBIT
  5697.         Tätigkeitsbit
  5698.         Wird beim Simulator nicht verwendet !
  5699.                             ─── Seite 94 ───
  5700.  
  5701.       Sonstiges                                                KAPITEL 5
  5702. ──────────────────────────────────────────────────────────────────────────────
  5703.  
  5704.  
  5705.       6.5.6 FB 251 Analogausgabe
  5706.  
  5707.       Aufbau des Bausteinkopfes des FB 251:
  5708.   
  5709.       NAME:RLG:AA
  5710.       BEZ :XE           E   W  ; auszugebender Analogwert (KF-Zahl)
  5711.       BEZ :BG           D   KF ; Baugruppennummer
  5712.       BEZ :KNKT         D   KY ; Kanalnummer und Kanaltyp
  5713.       BEZ :OGR          D   KF ; Obere Grenze des normierten Wertes
  5714.       BEZ :UGR          D   KF ; Untere Grenze des normierten Wertes
  5715.       BEZ :FEH          A   BI ; Fehlerbit
  5716.       BEZ :BU           A   BI ; Bereichsüberschreitung
  5717.   
  5718.       Dieser  Baustein  gibt normalerweise einen analogen Wert mit Hilfe
  5719.       einer analogen Baugruppe aus. Da dies beim Simulator nicht möglich
  5720.       ist,  werden  nur  die Fehlerbits FEH und BU gesetzt. FEH wird auf
  5721.       '1'  gesetzt,  wenn  UGR=OGR ist. BU wird auf '1' gesetzt, wenn XE
  5722.       außerhalb von UGR und OGR liegt.
  5723.      
  5724.   
  5725.   
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.                             ─── Seite 95 ───
  5760.  
  5761.       BEISPIELPROGRAMME                                        KAPITEL 6
  5762. ──────────────────────────────────────────────────────────────────────────────
  5763.  
  5764.       7 Beispielprogramme
  5765.  
  5766.       Hier finden Sie ein paar nützliche Beispielprogramme.
  5767.       Ganzzeilige Kommentare sind mit dem "#"-Zeichen gekennzeichnet.
  5768.         
  5769.  
  5770.  
  5771.       7.1 Auswertung einer ansteigenden Flanke 
  5772.   
  5773.       Baustein:OB1   Name:FLANKE-U
  5774.  
  5775.       0001     #Auswertung einer ansteigenden Flanke
  5776.       0002     #Wechselt der Signalzustand von E1.0 von "0" nach "1",
  5777.       0003     #dann führt M1.0 für einen Zyklus den Signalzustand "1"
  5778.       0004     :
  5779.       0005     :U   E   1.0                  E1.0 WIRD AUSGEWERTET
  5780.       0006     :UN  M   1.1                  HILFSMERKER
  5781.       0007     :=   M   1.0                  WISCHMERKER
  5782.       0008     :U   E   1.0
  5783.       0009     :=   M   1.1                  HILFSMERKER
  5784.       0010     :BE
  5785.  
  5786.  
  5787.  
  5788.       7.2 Auswertung einer abfallenden Flanke
  5789.        
  5790.       Baustein:FB1   Name:FLANKE_D
  5791.  
  5792.       0001     #Auswertung einer abfallenden Flanke
  5793.       0002     #Wechselt der Signalzustand von E1.0 von "1" nach "0",
  5794.       0003     #dann führt M1.0 für einen Zyklus den Signalzustand "1"
  5795.       0004     :UN  E   1.0                  E1.0 WIRD AUSGEWERTET
  5796.       0005     :U   M   1.1                  HILFSMERKER
  5797.       0006     :=   M   1.0
  5798.       0007     :U   E   1.0
  5799.       0008     :=   M   1.1                  HILFSMERKER
  5800.       0009     :U   M   1.0                  WISCHAUSGANG
  5801.       0010     :BE
  5802.  
  5803.  
  5804.       Hinweis:
  5805.  
  5806.       Bei schnellen Rechnern werden Sie nicht sehen, daß der Wischmerker
  5807.       für  einen Zyklus HIGH ist. Abhilfe: Vergrößern Sie die Zykluszeit
  5808.       mit Hilfe der '-'-Taste (Bremse).
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.                             ─── Seite 96 ───
  5820.  
  5821.       BEISPIELPROGRAMME                                        KAPITEL 6
  5822. ──────────────────────────────────────────────────────────────────────────────
  5823.  
  5824.       7.3 Taktgeneratoren
  5825.  
  5826.       7.3.1 Taktgenerator mit einem SV-Glied
  5827.       
  5828.       Baustein:FB1   Name:SV_TAKT
  5829.  
  5830.       0001     #EINFACHER TAKTGENERATOR MIT EINEM SV-ZEITGLIED
  5831.       0002     #MÖGLICHE TAKTFREQUENZEN IN DER 1. EBENE:
  5832.       0003     #1 HZ            KT = 50.0
  5833.       0004     #2 HZ            KT = 25.0
  5834.       0005     #CA. 3 HZ        KT = 12.0
  5835.       0006     #CA. 6 HZ        KT = 6.0
  5836.       0007     #
  5837.       0008     #DIESES BEISPIEL ERZEUGT EINE TAKTFREQUENZ VON 2 HERZ
  5838.       0009     #ZEITKONSTANTE = 25.0
  5839.       0010     :UN  M   10.1                 HILFSMERKER
  5840.       0011     :L   KT  25.0
  5841.       0012     :SV  T   9
  5842.       0013     :U   T   9
  5843.       0014     :=   M   10.1                 TAKTMERKER
  5844.       0015     #1. EBENE
  5845.       0016     :U   M   10.1
  5846.       0017     :BEB
  5847.       0018     :UN  A   1.4
  5848.       0019     :=   A   1.4                  2 HZ TAKT
  5849.       0020     #DURCH HINZUFÜGEN EINES ANWEISUNGSBLOCKS LÄßT SICH DIE
  5850.       0021     #TAKTFREQUENZ IMMER DURCH 2 TEILEN:
  5851.       0022     #2. EBENE
  5852.       0023     :
  5853.       0024     :U   A   1.4
  5854.       0025     :BEB
  5855.       0026     :UN  A   2.5
  5856.       0027     :=   A   2.5                  1 HZ TAKT
  5857.       0028     #3. EBENE
  5858.       0029     :U   A   2.5
  5859.       0030     :BEB
  5860.       0031     :UN  A   3.5
  5861.       0032     :=   A   3.5                  0.5 HZ TAKT
  5862.       0033     :BE
  5863.  
  5864.       
  5865.       7.3.2 Taktgenerator mit zwei SE-Glieder
  5866.  
  5867.       Baustein:OB1   Name:SE_TAKT
  5868.  
  5869.       0001     #Taktgenerator mit zwei SE-Zeitglieder
  5870.       0002     :
  5871.       0003     :U   E   1.7
  5872.       0004     :UN  T   2
  5873.       0005     :L   KT  50.0
  5874.       0006     :SE  T   1
  5875.       0007     :NOP 0
  5876.       0008     :NOP 0
  5877.  
  5878.  
  5879.                             ─── Seite 97 ───
  5880.  
  5881.       BEISPIELPROGRAMME                                        KAPITEL 6
  5882. ──────────────────────────────────────────────────────────────────────────────
  5883.  
  5884.       0009     :NOP 0
  5885.       0010     :U   T   1
  5886.       0011     :L   KT  50.0
  5887.       0012     :SE  T   2
  5888.       0013     :NOP 0
  5889.       0014     :NOP 0
  5890.       0015     :NOP 0
  5891.       0016     :NOP 0
  5892.       0017     :U   T   1
  5893.       0018     :=   A   5.7
  5894.       0019     :BE
  5895.  
  5896.  
  5897.  
  5898.       7.3.3 Taktgenerator mit einem Zeit-OB
  5899.  
  5900.       Dieses Programm besteht aus 2 Bausteinen.
  5901.       
  5902.       Baustein:OB1   Name:SE_TAKT
  5903.  
  5904.       0001     #Taktgenerator mit einem Zeit-OB
  5905.       0002     :
  5906.       0003     :U   M   50.0
  5907.       0004     :=   A   0.0
  5908.       0005     :
  5909.       0006     :BE
  5910.  
  5911.  
  5912.       Baustein:OB12   Name:SE_TAKT
  5913.  
  5914.       0001     #Der OB 12 ist ein Zeit-OB. 
  5915.       0002     #Dieser OB wird alle 1000ms aufgerufen.
  5916.       0003     :UN  M   50.0
  5917.       0004     :=   M   50.0
  5918.       0006     :BE
  5919.  
  5920.  
  5921.  
  5922.       7.4 Anlasserschaltung mit akustischen
  5923.           Ausgängen
  5924.  
  5925.       Dieses Programm kann gerade noch mit der Sharewareversion
  5926.       simuliert werden.
  5927.                 
  5928.       Baustein:OB1   Name:ANLASSER
  5929.  
  5930.       0001     :$A  1       0.4       35
  5931.       0002     :$A  2       0.3       30
  5932.       0003     :$A  3       0.2       25
  5933.       0004     :$A  4       0.1       20
  5934.       0005     :U   E   0.1                  STARTEINGANG
  5935.       0006     :S   M   0.0                  STARTMERKER
  5936.       0007     :U   E   0.0                  STOPPEINGANG
  5937.  
  5938.  
  5939.                             ─── Seite 98 ───
  5940.  
  5941.       BEISPIELPROGRAMME                                        KAPITEL 6
  5942. ──────────────────────────────────────────────────────────────────────────────
  5943.  
  5944.       0008     :R   M   0.0                  STARTMERKER
  5945.       0009     :U   M   0.0                  STARTMERKER
  5946.       0010     :=   A   0.1                  1. WIDERSTAND KURZSCHLIEßEN
  5947.       0011     :U   M   0.0                  STARTMERKER
  5948.       0012     :L   KT  42.1                 0.42 SEKUNDEN LADEN
  5949.       0013     :SE  T   1                    1. ZEITWERK
  5950.       0014     :U   E   0.7                  RUECKSETZEINGANG
  5951.       0015     :R   T   1                    1. ZEITWERK
  5952.       0016     :NOP 0
  5953.       0017     :NOP 0
  5954.       0018     :U   T   1                    1. ZEITWERK
  5955.       0019     :UN  A   0.3                  3. WIDERSTAND KURZSCHLIEßEN
  5956.       0020     :UN  A   0.4                  4. WIDERSTAND KURZSCHLIEßEN
  5957.       0021     :=   A   0.2                  2. WIDERSTAND KURZSCHLIEßEN
  5958.       0022     :U   T   1                    1. ZEITWERK
  5959.       0023     :L   KT  42.1                 0.42 SEKUNDEN LADEN
  5960.       0024     :SE  T   2                    2. ZEITWERK
  5961.       0025     :NOP 0
  5962.       0026     :L   T   2
  5963.       0027     :T   AW  6
  5964.       0028     :NOP 0
  5965.       0029     :U   T   2                    2. ZEITWERK
  5966.       0030     :UN  A   0.4                  4. WIDERSTAND KURZSCHLIEßEN
  5967.       0031     :=   A   0.3                  3. WIDERSTAND KURZSCHLIEßEN
  5968.       0032     :U   T   2                    2. ZEITWERK
  5969.       0033     :L   KT  42.1                 3. ZEITWERK STARTEN
  5970.       0034     :SE  T   3                    3. ZEITWERK
  5971.       0035     :NOP 0
  5972.       0036     :NOP 0
  5973.       0037     :NOP 0
  5974.       0038     :U   T   3                    3. ZEITWERK
  5975.       0039     :=   A   0.4                  4. WIDERSTAND KURZSCHLIEßEN
  5976.       0040     :BE
  5977.  
  5978.  
  5979.  
  5980.  
  5981.  
  5982.  
  5983.  
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999.                             ─── Seite 99 ───
  6000.  
  6001.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6002. ──────────────────────────────────────────────────────────────────────────────
  6003.  
  6004.       Diese  Einführung  soll  Ihnen  einen  ersten  Eindruck  über  die
  6005.       Fähigkeiten   des   SPS-Simulators   vermitteln.   Es  soll  keine
  6006.       Einführung in die Programmierung sein, sondern soll Ihnen vielmehr
  6007.       den Einstieg in das Programm erleichtern. Die Anweisungsliste, die
  6008.       Sie   bei   dieser  Einführung  schreiben  werden,  erfüllt  keine
  6009.       besondere Aufgabe, sondern dient nur zur Demonstration. Sie können
  6010.       den  Simulator  entweder  von  Diskette  oder  von  der Festplatte
  6011.       starten.  Begeben  Sie sich zuerst in das Verzeichnis, in dem sich
  6012.       der  SPS- Simulator befindet, und geben Sie dann 'SPS' ein, um den
  6013.       Simulator   zu  starten.  Nachdem  der  Simulator  geladen  wurde,
  6014.       erscheint  ein  Fenster, in dem  die  Versionsnummer des Programms
  6015.       angezeigt  wird. Nach Drücken einer beliebigen Taste, befinden Sie
  6016.       sich  in  der  Menueleiste.  Sie können nun mit den Cursor- Tasten
  6017.       einen   Menuepunkt   anwählen   und  mit  der  [RETURN]-Taste  das
  6018.       entsprechende Untermenue aktivieren.
  6019.  
  6020.       Gehen   Sie  nun  zum  Menuepunkt  'Datei', und  drücken  Sie  die
  6021.       [RETURN]-Taste.    Bewegen   Sie   nun   den   Auswahlbalken   zum
  6022.       Menueunterpunkt  'Neuer Baustein anlegen' und drücken Sie nochmals
  6023.       die  [RETURN]-Taste. Mit dieser Funktion können Sie neue Bausteine
  6024.       eröffnen.  Geben  Sie nun im 1. Eingabefeld 'OB' im 2. Eingabefeld
  6025.       '1'  und  im dritten Eingabefeld den Bausteinnamen 'TEST' ein. Die
  6026.       einzelnen  Eingabefelder können mit der 'Pfeil nach oben'- und mit
  6027.       der  'Pfeil  nach  unten'-  Taste gewechselt werden. Wenn Sie alle
  6028.       Felder  beschrieben  haben,  drücken  Sie  nun  die  [PGDN]-  oder
  6029.       [BILD]-Taste.  Damit bestätigen Sie das Dialogfester. Sie befinden
  6030.       sich  nun  im  integrierten  Editor,  wo Sie neue Anweisungslisten
  6031.       eingeben können, oder vorhandene verändern können.
  6032.  
  6033.       Bei  der  Eingabe  einer  AWL-Zeile  müssen Sie kein Eingabeformat
  6034.       berücksichtigen.  D.h.  Sie  müssen  keine  Leerzeichen  nach  der
  6035.       Verknüpfung oder nach dem Operanden eingeben. Es stehen zwei Arten
  6036.       von Kommentaren zur Verfügung:
  6037.  
  6038.       1. Kurzkommentare.  Sie  stehen  in  der  gleichen  Zeile  wie die
  6039.          Anweisung  (max.  34  Zeichen).  Wenn  Sie  einen Kurzkommentar
  6040.          eingeben  wollen, müssen Sie den Cursor auf die Kommentarspalte
  6041.          bewegen:  drücken  Sie die [ENDE]-Taste. Jetzt können Sie einen
  6042.          Kommentar eingeben.
  6043.  
  6044.       2. Kommentare über eine ganze Zeile (max. 73 Zeichen). Drücken Sie
  6045.          einmal  die  [F8]-Taste. Der Doppelpunkt vor der AWL- Anweisung
  6046.          wird  nun  invers  dargestellt,  d.h.  daß  die ganze Zeile als
  6047.          Kommentar  behandelt  wird.  Wenn  Sie  nochmal  die [F8]-Taste
  6048.          drücken, wird die Zeile wieder als Anweisung betrachtet.
  6049.  
  6050.       Was  passiert,  wenn  die eingegebene AWL-Zeile syntaktisch falsch
  6051.       ist ?
  6052.  
  6053.       Wenn Sie bei der Eingabe einen Fehler machen, erscheint sofort ein
  6054.       Fenster,  in dem der Fehler angezeigt wird. Nachdem Sie eine Taste
  6055.       betätigt  haben,  wird  die  eingegebene  AWL-Zeile  als Kommentar
  6056.       bezeichnet.  Sie  haben nun Gelegenheit den Fehler zu korrigieren.
  6057.  
  6058.  
  6059.                             ─── Seite 100───
  6060.  
  6061.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6062. ──────────────────────────────────────────────────────────────────────────────
  6063.  
  6064.       Nachdem  Sie  den  Fehler  behoben  haben,  müssen  Sie einmal die
  6065.       [F8]-Taste  drücken um den Kommentarstatus wieder aufzuheben. Nach
  6066.       Drücken der [Return]-Taste wird die eingegebene AWL-Zeile nochmals
  6067.       kontrolliert  und übernommen, falls diese syntaktisch richtig ist.
  6068.       Bei  EGA-  bzw. VGA-Karten werden ganzzeilige Kommentare mit einer
  6069.       besonderen Farbe dargestellt.
  6070.  
  6071.       Geben  Sie  nun  die  folgende  einfache  Anweisungsliste ein (die
  6072.       Leerzeichen  müssen  nicht  eingegeben  werden):  Drücken Sie nach
  6073.       jeder Zeile die [Return]-Taste.
  6074.  
  6075.         0001│    :U   E  0.0
  6076.         0002│    :U   E  0.1
  6077.         0003│    :=   A  0.0
  6078.         0004│    :BE
  6079.  
  6080.       Nachdem  Sie  die  Anweisung  'BE'  eingegeben  haben, springt das
  6081.       Programm   in   die  Menueleiste  zurück.  Jetzt  können  Sie  die
  6082.       Anweisungsliste  sofort simulieren. Das geschriebene Programm legt
  6083.       den Ausgang A0.0 auf High oder "1" wenn die Eingänge E0.0 und E0.1
  6084.       High oder "1" sind.
  6085.  
  6086.  
  6087.       Um  das  zu  kontrollieren, starten Sie nun die AWL-Simulation mit
  6088.       der  [F9]-Taste.  Beachten  Sie  aber:  die [F9]-Taste startet die
  6089.       Simulation nur dann, wenn Sie sich in der Menueleiste befinden.
  6090.  
  6091.       Jetzt  müßten Sie sich im Simulationsmodus befinden. In der ersten
  6092.       Zeile des Bildschirms erscheint der Text "AWL-Simulation aktiv".
  6093.  
  6094.       Schauen  Sie  sich  nun  zuerst  einmal  den Bildschirm an. Ab der
  6095.       zweiten  Bildschirmzeile  sehen Sie die Eingangsleiste. Hier sehen
  6096.       Sie  auf  einen  Blick  die  Eingänge E0.0 bis E4.7. Die einzelnen
  6097.       Eingänge  sind in Eingangsbytes zusammengefaßt. Die Eingangsleiste
  6098.       ist   mit   "PAE"   (Prozeßabbild   der   Eingänge)   ganz   links
  6099.       gekennzeichnet.  Unter  der  Eingangsleiste ist die Ausgangsleiste
  6100.       plaziert.  Hier werden die Ausgänge A0.0 bis A4.7 dargestellt. Die
  6101.       Ausgangsleiste  ist ganz links mit PAA (Prozeßabbild der Ausgänge)
  6102.       gekennzeichnet.
  6103.  
  6104.  
  6105.  
  6106.  
  6107.  
  6108.  
  6109.  
  6110.  
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.                             ─── Seite 101 ───
  6120.  
  6121.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6122. ──────────────────────────────────────────────────────────────────────────────
  6123.  
  6124.       Bildschirmaufbau:
  6125.  
  6126.  
  6127.                   Eingangsleiste──┐ Ausgangsleiste───┐
  6128.                                   │                  │
  6129.       ! SIMULATION LÄUFT !        │                  │
  6130.          ╓──  0───╥──  1───╥──  2─┼─╥──  3───╥──  4──┼╖
  6131.       PAE║76543210║76543210║765432▀0║76543210║7654321│║
  6132.          ╚────────╨────────╨────────╨────────╨───────┼╜
  6133.          ╓──  0───╥──  1───╥──  2───╥──  3───╥──  4──┼╖
  6134.       PAA║76543210║76543210║76543210║76543210║7654321▀║
  6135.          ╚────────╨────────╨────────╨────────╨────────╜
  6136.       │Baustein: OB 1    │ Name: TEST    │Anweisungen im OB: 0004
  6137.       │Zyklus  :1.50 ms                  │[Matthias Habermann]
  6138.       0001│    :U   E   0.0
  6139.       0002│    :U   E   0.1
  6140.       0003│    :=   A   0.0
  6141.       0004│    :BE
  6142.     
  6143.  
  6144.       Wie kann man nun einen Eingang umschalten ?
  6145.  
  6146.       (Ich   gehe   nun   davon   aus,   daß  Sie  sich  noch  immer  im
  6147.       Simulationsmodus  befinden.)  Zuerst müssen Sie festlegen, welches
  6148.       Eingangsbyte  Sie  bearbeiten wollen. Drücken Sie nun mehrmals die
  6149.       "Pfeil  nach  links  Taste".  Sie  sehen  nun,  wie  die einzelnen
  6150.       Eingangsbytes  markiert werden. Markieren Sie nun das Eingangsbyte
  6151.       "0",  da wir ja die Eingänge E0.0 und E0.1 umschalten wollen. Wenn
  6152.       Sie  das  Eingangsbyte  "0" markiert haben, können Sie nun mit den
  6153.       Ziffern  "0"  bis  "7" den jeweiligen Eingang umschalten. Wenn Sie
  6154.       also die Ziffer "0" drücken wird der Eingang E0.0 umgeschaltet, da
  6155.       Sie das Eingangsbyte "0" markiert haben und das Bit "0" ausgewählt
  6156.       haben. Drücken Sie nun mehrmals die Ziffer "0". Sie sehen, daß der
  6157.       Eingang  E0.0  je  nach  Status  ("1" oder "0") hervorgehoben oder
  6158.       neutral dargestellt wird. Schalten Sie nun beide Eingänge auf "1".
  6159.       Wenn  der  Eingang  E0.0  und  gleichzeitig  der  Eingang E0.1 den
  6160.       Signalzustand  "1"  führen,  wird der Ausgang A0.0 auf "1" gelegt.
  6161.       Den  Ausgang  A0.0  sehen  Sie  nun  in der Ausgangsleiste optisch
  6162.       hervorgehoben.
  6163.  
  6164.       Jetzt haben Sie ein Programm eingegeben und simuliert. Drücken Sie
  6165.       nun  die  [ESC]-Taste,  um die Simulation zu beenden. Sie befinden
  6166.       sich nun wieder in der Menueleiste.
  6167.  
  6168.       Ich  will  Ihnen jetzt noch ein paar Features vorführen, die Ihnen
  6169.       helfen werden, Ihr SPS-Programm schneller zu kontrollieren.
  6170.  
  6171.       Ich  möchte  Ihnen  nun die Steuerbefehle vorführen. Diese Befehle
  6172.       sind  keine  SPS-Operationen, sondern dienen einfach nur, um Ihnen
  6173.       die  Arbeit  während  der Simulation zu erleichtern. Zuerst werden
  6174.       wir den Ausgang A0.0 als akustischen Ausgang definieren, d.h. wenn
  6175.       der  Ausgang  A0.0 "1" ist, ertönt ein Signal. Diesen Steuerbefehl
  6176.       können Sie z.B. verwenden, um Motoren oder Hupen zu simulieren.
  6177.  
  6178.  
  6179.                             ─── Seite 102 ───
  6180.  
  6181.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6182. ──────────────────────────────────────────────────────────────────────────────
  6183.  
  6184.       Gehen  Sie  nun  zuerst  in  den  Editor,  indem Sie die "E"-Taste
  6185.       drücken.  Fügen Sie eine Leerzeile mit Hilfe der Tastenkombination
  6186.       [STRG/N]  ein.  In  Worten:  Drücken Sie die Tasten [STRG] und [N]
  6187.       gleichzeitig.  Geben  Sie nun den Steuerbefehl in der ersten Zeile
  6188.       ein:  (Die  einzelnen Parameter des Steuerbefehls müssen mit einem
  6189.       Leerzeichen  getrennt  werden  -  innerhalb  eines Parameters z.B.
  6190.       "0.0" darf kein Leerzeichen stehen!!).
  6191.  
  6192.  
  6193.         0001│    :$A 0.0 30
  6194.         0002│    :U   E  0.0
  6195.         0003│    :U   E  0.1
  6196.         0004│    :=   A  0.0
  6197.         0005│    :BE
  6198.  
  6199.       In  der  ersten  AWL-Zeile  haben  Sie  nun  den  Ausgang A0.0 als
  6200.       akustischen  Ausgang  mit  einer  Frequenz  von  30  Hz definiert.
  6201.       Verlassen  Sie nun den Editor (ESC), und aktivieren Sie wieder die
  6202.       AWL-Simulation.  Nachdem  Sie  die  Eingänge E0.0 und E0.1 auf "1"
  6203.       geschaltet  haben, ertönt ein Signal. Wenn Sie möchten, können Sie
  6204.       nun  auch  andere  Frequenzen  ausprobieren.  So  können  Sie auch
  6205.       ausprobiern, ob Ihr Gehöhr noch einigermaßen intakt ist.
  6206.  
  6207.  
  6208.       Wenn  sich  Ihr Spieltrieb nun allmählich abgebaut hat, möchte ich
  6209.       Ihnen  einen  weiteren sinnvollen Steuerbefehl vorstellen. Mit dem
  6210.       "$E"-  Steuerbefehl  können  Sie Eingänge als Taster oder Schalter
  6211.       definieren. Normalerweise ist ein Eingang ein Schalter, Ausführung
  6212.       Schließer.  Wenn  Sie  einen  Schalter  als Öffner definieren, ist
  6213.       dieser  Eingang  bei  Simulationsstart  bereits auf "1" gelegt. So
  6214.       können Sie z.B. eine Grundstellung definieren.
  6215.  
  6216.       Gehen  Sie  nun in den Editor und ergänzen Sie die Anweisungsliste
  6217.       folgendermaßen:  Beachten Sie dabei, daß das letzte Zeichen in der
  6218.       zweiten Zeile der Buchstabe 'O' ist, und nicht die Zahl "0".
  6219.  
  6220.  
  6221.         0001│    :$A 1 0.0 30
  6222.         0002│    :$E 1 0.0 T O
  6223.         0003│    :U   E  0.0
  6224.         0004│    :U   E  0.1
  6225.         0005│    :=   A  0.0
  6226.         0006│    :BE
  6227.  
  6228.       Sie  haben  nun  in  der zweiten Zeile den Eingang E0.0 als Taster
  6229.       definiert,  Ausführung  Öffner.  Wenn Sie den Editor verlassen und
  6230.       die  Simulation  starten,  führt  der  Eingang  E0.0  bereits "1".
  6231.       Betätigen Sie nun die Ziffer "0". Der Eingang ist nur solange "0",
  6232.       solange Sie die Taste gedrückt halten.
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.                             ─── Seite 103 ───
  6240.  
  6241.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6242. ──────────────────────────────────────────────────────────────────────────────
  6243.  
  6244.       Der  nächste Steuerbefehl ist ebenfalls sehr wichtig. Mit ihm kann
  6245.       man  beliebige Operanden in der Statusanzeige anzeigen lassen. Wir
  6246.       werden  nun  das  Eingangsbyte "0" und das Ausgangsbyte "0" in der
  6247.       Statusanzeige darstellen lassen.
  6248.  
  6249.       Gehen  Sie  wieder in den Editor und fügen sie in der 3 Zeile zwei
  6250.       Leerzeilen ein (2 mal [STRG] und [N] gleichzeitig drücken).
  6251.  
  6252.  
  6253.         0001│    :$A 1 0.0 30
  6254.         0002│    :$E 1 0.0 T O
  6255.         0003│    :$S 1 EB 0 KM
  6256.         0004│    :$S 2 AB 0 KM
  6257.         0005│    :U   E  0.0
  6258.         0006│    :U   E  0.1
  6259.         0007│    :=   A  0.0
  6260.         0008│    :BE
  6261.  
  6262.  
  6263.       In  der  dritten  und  vierten  Zeile  werden  nun 2 Zeilen in der
  6264.       Statusanzeige umdefiniert. In Zeile 3 wird das Eingangsbyte (EB) 0
  6265.       als  Bitmuster  angelegt.  In Zeile 4 wird das Ausgangsbyte (AB) 0
  6266.       ebenfalls als Bitmuster angelegt.
  6267.  
  6268.       In  der  Dokumentation  finden  Sie  genaue  Erläuterungen, welche
  6269.       Steuerbefehle zur Verfügung stehen, und wie sie aufgebaut sind.
  6270.  
  6271.       Wenn  Sie jetzt den Editor verlassen und wieder die AWL-Simulation
  6272.       starten,  sehen  Sie  rechts auf dem Bildschirm die Statusanzeige.
  6273.       Falls  die Statusanzeige ausgeschaltet ist, drücken Sie einmal die
  6274.       [F4]-Taste.
  6275.  
  6276.  
  6277.            Bildschirmaufbau:
  6278.                                                    Statusanzeige─┐
  6279.                                                                  │
  6280.       ! SIMULATION LÄUFT !                                       │
  6281.          ╓──  0───╥──  1───╥──  2───╥──  3───╥──  4───╖          │
  6282.       PAE║76543210║76543210║76543210║76543210║76543210║          │
  6283.          ╚────────╨────────╨────────╨────────╨────────╜          │
  6284.          ╓──  0───╥──  1───╥──  2───╥──  3───╥──  4───╖          │
  6285.       PAA║76543210║76543210║76543210║76543210║76543210║          │
  6286.          ╚────────╨────────╨────────╨────────╨────────╜          │
  6287.       │Baustein: OB 1  │ Name: TEST    │Anweisungen im OB: 0008│ │
  6288.       │Zyklus :2.70 ms │VKE Akku1 Akku2                          ▀
  6289.       0001│    :$A  1       0.0       30   0  +0     +0 EB 000:00000001
  6290.       0002│    :$E  1       0.0       T    0  +0     +0 AB 000:00000000
  6291.       0003│    :$S  1       EB        0    0  +0     +0
  6292.       0004│    :$S  2       AB        0    0  +0     +0
  6293.       0005│    :U   E   0.0                1  +0     +0
  6294.       0006│    :U   E   0.1                0  +0     +0
  6295.       0007│    :=   A   0.0                0  +0     +0
  6296.       0008│    :BE                         0  +0     +0
  6297.  
  6298.  
  6299.                             ─── Seite 104 ───
  6300.  
  6301.       Kurzanleitung bzw. Einstieg in das Programm               ANHANG 1
  6302. ──────────────────────────────────────────────────────────────────────────────
  6303.  
  6304.       Die  Statusanzeige  zeigt  Ihnen  nun  das  Eingangsbyte 0 und das
  6305.       Ausgangsbyte   0.   Die  Statusanzeige  kann  für  jedes  Programm
  6306.       individuell  eingestellt  werden.  Da  die  Steuerbefehle in einem
  6307.       normalen   Baustein   optisch   etwas   stören,  ist  es  sinnvoll
  6308.       Steuerbefehle  in  den  OB 21 (Start-OB) zu schreiben. Das hat den
  6309.       Vorteil,  daß  die  Steuerbefehle  nur einmal am Anfang bearbeitet
  6310.       werden.  Wenn  Sie  den  OB  21  eröffnen möchten ("Neuer Baustein
  6311.       anlegen"),  müssen  Sie  darauf  achten,  daß  dieser den gleichen
  6312.       Bausteinnamen  erhält  wie  der  OB1.  Ansonsten wird dieser nicht
  6313.       bearbeitet.
  6314.  
  6315.       Sie  wissen  jetzt,  wie man einen Baustein eingibt und simuliert.
  6316.       Ich  hoffe,  daß  diese  Kurzanleitung  Ihnen  beim Einstieg etwas
  6317.       hilfreich war.
  6318.  
  6319.       Wenn  Sie  weitere  Möglichkeiten  des SPS-Simulators kennenlernen
  6320.       möchten,  finden  Sie  in  der  Dokumentation  "SPS.DOC" reichlich
  6321.       INPUT.
  6322.  
  6323.       Noch ein paar Hinweise, die für den Einstieg hilfreich sind:
  6324.  
  6325.       ■ Wenn  Sie  ein  Programm  mit  mehreren Bausteinen programmieren
  6326.         möchten, muß jeder Baustein den gleichen Bausteinnamen bekommen.
  6327.  
  6328.       ■ Wenn  Sie  einen neuen Baustein eröffnen wollen, sollten Sie das
  6329.         immer  mit  dem Menuepunkt "Datei - Neuer Baustein anlegen" tun.
  6330.         Dieser  Menuepunkt  ist  auch direkt mit der Funktionstaste [F4]
  6331.         erreichbar.
  6332.  
  6333.       ■ Die  Tastenkombination  [STRG/RETURN]  oder [CTRL/RETURN] ist im
  6334.         Simulator  sehr wichtig. Diese Tastenkombination hat, je nachdem
  6335.         wo   man   sich   gerade   befindet,   verschiedene  Belegungen-
  6336.         ausprobieren oder das Handbuch studieren.
  6337.  
  6338.       ■ In  der  FUP-Simulation  hat  man  nicht  die  Möglichkeit,  den
  6339.         Baustein zu wechseln.
  6340.  
  6341.  
  6342.       ■ Datenbausteine   werden  wie  die  anderen  Bausteine  eröffnet:
  6343.         Menuepunkt "Neuer Baustein anlegen"
  6344.  
  6345.       ■ Machen   Sie   davon   Gebrauch   einen   geeigneten  Videomodus
  6346.         einzustellen (Siehe Handbuch).  Sie haben dann z.B. statt 80 100
  6347.         Spalten  zur  Verfügung.  Besonders der Funktionsplan sieht dann
  6348.         optisch   besser   aus.   Der  Standard-Textmodus  ist  für  den
  6349.         Funktionsplan  nicht  so  gut  geeignet.  (Nur  möglich bei VGA-
  6350.         Karten)
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.                             ─── Seite 105 ───
  6360.  
  6361.       Simulation von Ablaufsteuerungen                          ANHANG 2
  6362. ──────────────────────────────────────────────────────────────────────────────
  6363.  
  6364.       Simulation von Ablaufsteuerungen
  6365.  
  6366.       Ich  habe  noch  spezielle Operationen zur Verfügung gestellt, mit
  6367.       denen  man  Ablaufsteuerungen  besser  simulieren kann. Mit diesen
  6368.       Befehlen  können  Sie  innerhalb  der AWL Eingänge umschalten. Die
  6369.       manipulierten  Eingänge  bleiben  dann auch nach dem Laden des PAE
  6370.       unverändert.   Sie   können   damit  praktisch  einen  Tastendruck
  6371.       simulieren.  Diese Operationen sind keine STEP 5 (R)- Operationen,
  6372.       sondern   dienen   nur   zur  Vereinfachung  der  Simulation.  Sie
  6373.       funktionieren nicht bei Eingängen, die als Taster definiert worden
  6374.       sind !
  6375.  
  6376.       Die  Operationen  "=  E x.x", "S E x.x" und "R E x.x" können diese
  6377.       Funktion nicht leisten, da nach der "BE"- Anweisung im OB1 das PAE
  6378.       (Prozeßabblild der Eingänge) wieder geladen wird.
  6379.  
  6380.       Syntax der Operationen:
  6381.  
  6382.  
  6383.       ■ "=  PAE [Eingangsbyte].[Eingangsbit]"
  6384.         z.B.: "= PAE 0.0"
  6385.  
  6386.       ■ "S  PAE [Eingangsbyte].[Eingangsbit]"
  6387.         z.B.: "S PAE 0.0"
  6388.  
  6389.       ■ "R  PAE [Eingangsbyte].[Eingangsbit]"
  6390.         z.B.: "R PAE 0.0"
  6391.  
  6392.       Beispiel:
  6393.       In  diesem  Beispiel  werden  3 Zeiten nacheinander gestartet. Das
  6394.       nächste Zeitwerk wird aber nur dann gestartet, wenn ein bestimmter
  6395.       Eingang  '1'  ist.  Normalerweise  müßten  Sie  nun  von  Hand den
  6396.       jeweiligen Eingang zur richtigen Zeit auf '1' legen. Mit Hilfe der
  6397.       PAE-Befehlen  können  Sie dies automatisch erledigen. Sie brauchen
  6398.       dann  nur  noch  zuzusehen,  wie das Programm abläuft. Da die PAE-
  6399.       Befehle  nicht  in  einen Funktionsplan umgewandelt werden können,
  6400.       ist  es  sinnvoll,  diese  Befehle  in  einem  eigenen Baustein zu
  6401.       schreiben,  und  diesen  dann  mit  einem absoluten Sprung im OB 1
  6402.       aufzurufen.
  6403.  
  6404.       Im Beispiel stehen ab der AWL-Zeile Nr. 32 die PAE-Befehle.
  6405.  
  6406.       Baustein:OB1   Name:ABLAUF
  6407.  
  6408.       0001     :U   E   0.0
  6409.       0002     :L   KT  200.0
  6410.       0003     :SE  T   1
  6411.       0004     :NOP 0                  RÜCKSETZ-EINGANG
  6412.       0005     :NOP 0                  TIMER ISTWERT TRANSF. DUAL
  6413.       0006     :NOP 0                  TIMER ISTWERT TRANSF. BCD
  6414.       0007     :U   T   1              BINÄRER AUSGANG
  6415.       0008     :=   A   0.0
  6416.       0009     :
  6417.       0010     :U   A   0.0
  6418.  
  6419.                             ─── Seite 106 ───
  6420.  
  6421.             Simulation von Ablaufsteuerungen                    ANHANG 2
  6422. ──────────────────────────────────────────────────────────────────────────────
  6423.  
  6424.  
  6425.       0011     :U   E   0.1
  6426.       0012     :L   KT  200.0
  6427.       0013     :SE  T   2
  6428.       0014     :NOP 0                  RÜCKSETZ-EINGANG
  6429.       0015     :NOP 0                  TIMER ISTWERT TRANSF. DUAL
  6430.       0016     :NOP 0                  TIMER ISTWERT TRANSF. BCD
  6431.       0017     :U   T   2              BINÄRER AUSGANG
  6432.       0018     :=   A   0.1
  6433.       0019     :
  6434.       0020     :U   A   0.1
  6435.       0021     :U   E   0.2
  6436.       0022     :L   KT  200.0
  6437.       0023     :SE  T   3
  6438.       0024     :NOP 0                  RÜCKSETZ-EINGANG
  6439.       0025     :NOP 0                  TIMER ISTWERT TRANSF. DUAL
  6440.       0026     :NOP 0                  TIMER ISTWERT TRANSF. BCD
  6441.       0027     :U   T   3              BINÄRER AUSGANG
  6442.       0028     :=   A   0.2
  6443.       0029     :
  6444.       0030     :
  6445.       0031     :
  6446.       0032     :U   A   0.0            WENN AUSGANG '1' DANN ...
  6447.       0033     :S   PAE 0.1            EINGANG E0.1 AUF '1' SETZEN
  6448.       0034     :U   A   0.1            WENN AUSGANG '1' DANN ...
  6449.       0035     :S   PAE 0.2            EINGANG E0.2 AUF '1' SETZEN
  6450.       0036     :
  6451.       0037     :U   A   0.0            WENN ALLE AUSGÄNGE HIGH, DANN ...
  6452.       0038     :U   A   0.1
  6453.       0039     :U   A   0.2
  6454.       0040     :L   KT  100.0          NACH EINER VERZÖGERUNG ...
  6455.       0041     :SE  T   100         
  6456.       0042     :U   T   100
  6457.       0043     :R   PAE 0.0            ALLE EINGAENGE WIEDER ZURÜCK-
  6458.       0044     :R   PAE 0.1            SETZEN.
  6459.       0045     :R   PAE 0.2
  6460.       0046     :BE
  6461.  
  6462.  
  6463.  
  6464.  
  6465.  
  6466.  
  6467.  
  6468.  
  6469.  
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.                             ─── Seite 107 ───
  6480.  
  6481.       OPERATIONSVORRAT                                          ANHANG 3
  6482. ──────────────────────────────────────────────────────────────────────────────
  6483.  
  6484.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6485.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6486.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6487.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6488.  ║Verknüpfungsoperationen                                                   │
  6489.  ╚═╤═════╤═══════════╤═══╤═════╤═════╤══════════════════════════════════════╡
  6490.    │U    │E/A/M/T/Z/D│   │ X   │     │ UND-Verknüpfung                      │
  6491.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6492.    │UN   │E/A/M/T/Z/D│   │ X   │     │ UND-NICHT-Verknüpfung                │
  6493.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6494.    │O    │E/A/M/T/Z/D│   │ X   │     │ ODER-Verknüpfung                     │
  6495.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6496.    │ON   │E/A/M/T/Z/D│   │ X   │     │ ODER-NICHT-Verknüpfung               │
  6497.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6498.    │O    │           │   │ X   │  X  │ ODER-Verknüpfung von UND-Ausdrücken  │
  6499.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6500.    │U(   │           │   │ X   │  X  │ UND-Verknüpfung von Klammerausdrücken│
  6501.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6502.    │O(   │           │   │ X   │  X  │ ODER-Verknüpfung von Klammerausdrücke│
  6503.    ├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
  6504.    │)    │           │   │ X   │     │ Ende eines Klammerausdrucks          │
  6505.  ╔═╧═════╧═══════════╧═══╧═════╧═════╧══════════════════════════════════════╡
  6506.  ║Speicheroperationen                                                       │
  6507.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6508.    │S    │ E/A/M/D  │ X  │     │  X  │ Setzt den Operand auf logisch '1'    │
  6509.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6510.    │R    │ E/A/M/D  │ X  │     │  X  │ Setzt den Operand auf logisch '0'    │
  6511.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6512.    │=    │ E/A/M/D  │    │     │  X  │ Dem Operanden wird der Wert des VKE  │
  6513.    │     │          │    │     │     │ zugewiesen                           │
  6514.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6515.  ║Ladeoperationen                                                           │
  6516.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6517.    │L    │ EB/AB    │    │     │     │ Ein Eingangs/Ausgangsbyte wird in    │
  6518.    │     │          │    │     │     │ den Akku 1 geladen                   │
  6519.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6520.    │L    │ EW/AW    │    │     │     │ Ein Eingangs/Ausgangswort wird in    │
  6521.    │     │          │    │     │     │ den Akku 1 geladen                   │
  6522.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6523.    │L    │ PB/PW    │    │     │     │ Ein Peripheriebyte/wort wird in      │
  6524.    │     │ PY       │    │     │     │ den Akku 1 geladen                   │
  6525.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6526.    │L    │ MB/MW    │    │     │     │ Ein Merkerbyte/wort wird in          │
  6527.    │     │          │    │     │     │ den Akku 1 geladen                   │
  6528.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6529.    │L    │ DL/DR    │    │     │     │ Linkes (HIGH) oder rechtes (LOW)     │
  6530.    │     │          │    │     │     │ Byte von Datenwort in Akku 1 laden   │
  6531.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6532.          ┌──────────────────────────────┬────────────────────────────────┐
  6533.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6534.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6535.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6536.          └──────────────────────────────┴────────────────────────────────┘
  6537.  
  6538.  
  6539.                             ─── Seite 108 ───
  6540.  
  6541.       OPERATIONSVORRAT                                          ANHANG 3
  6542. ──────────────────────────────────────────────────────────────────────────────
  6543.  
  6544.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6545.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6546.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6547.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6548.    │L    │ DW       │    │     │     │ Ein Datenwort wird in den Akku 1     │
  6549.    │     │          │    │     │     │ geladen                              │
  6550.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6551.    │L    │ KB       │    │     │     │ Eine Konstante (1-Byte-Zahl) wird    │
  6552.    │     │          │    │     │     │ in den Akku 1 geladen                │
  6553.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6554.    │L    │ KF       │    │     │     │ Eine Konstante (Festpunktzahl)       │
  6555.    │     │          │    │     │     │ wird in den Akku 1 geladen           │
  6556.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6557.    │L    │ KH       │    │     │     │ Eine Konstante (im Hexadezimalsystem)│
  6558.    │     │          │    │     │     │ wird in den Akku 1 geladen           │
  6559.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6560.    │L    │ KM       │    │     │     │ Eine konstantes Bitmuster wird in    │
  6561.    │     │          │    │     │     │ den Akku 1 geladen                   │
  6562.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6563.    │L    │ KY       │    │     │     │ Eine Konstante (2-Byte-Zahl: z.B.    │
  6564.    │     │          │    │     │     │ 255,10) wird in den Akku 1 geladen   │
  6565.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6566.    │L    │ KT       │    │     │     │ Ein Zeitwert wird BCD-codiert        │
  6567.    │     │          │    │     │     │ in den Akku 1 geladen                │
  6568.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6569.    │L    │ KZ       │    │     │     │ Ein Zählwert wird BCD-codiert        │
  6570.    │     │          │    │     │     │ in den Akku 1 geladen                │
  6571.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6572.    │L    │ T/Z      │    │     │     │ Ein Zeit- oder Zähl- Istwert         │
  6573.    │     │          │    │     │     │ wird in den Akku 1 geladen           │
  6574.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6575.    │LC   │ T/Z      │    │     │     │ Ein Zeit- oder Zähl- Istwert wird    │
  6576.    │     │          │    │     │     │ BCD-codiert in den Akku 1 geladen    │
  6577.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6578.  ║Transferbefehle                                                           │
  6579.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6580.    │T    │ EB/AB    │    │     │     │ Der Inhalt des Akku 1 (Lowbyte) wird │
  6581.    │     │          │    │     │     │ zu einem Eingangs/Ausgangsbyte trans-│
  6582.    │     │          │    │     │     │ feriert.                             │
  6583.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6584.    │T    │ EW/AW    │    │     │     │ Der Inhalt des Akku 1 wird zu einem  │
  6585.    │     │          │    │     │     │ Eingangs/Ausgangswort transferiert   │
  6586.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6587.    │T    │ PB/PW    │    │     │     │ Der Inhalt des Akku1 wird zu einem   │
  6588.    │     │ PY       │    │     │     │ Pheripheriebyte/wort transferiert    │
  6589.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6590.    │T    │ MB/MW    │    │     │     │ Der Inhalt des Akku 1 wird zu einem  │
  6591.    │     │          │    │     │     │ Merkerbyte/wort transferiert         │
  6592.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6593.          ┌──────────────────────────────┬────────────────────────────────┐
  6594.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6595.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6596.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6597.          └──────────────────────────────┴────────────────────────────────┘
  6598.  
  6599.                             ─── Seite 109 ───
  6600.  
  6601.       OPERATIONSVORRAT                                          ANHANG 3
  6602. ──────────────────────────────────────────────────────────────────────────────
  6603.  
  6604.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6605.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6606.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6607.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6608.    │T    │ DL/DR    │    │     │     │ Das Lowbyte des Akku 1 wird zu einem │
  6609.    │     │          │    │     │     │ Datenwort (linkes oder rechtes Byte) │
  6610.    │     │          │    │     │     │ transferiert.                        │
  6611.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6612.    │T    │ DW       │    │     │     │ Der Inhalt des Akku 1 wird zu einem  │
  6613.    │     │          │    │     │     │ Datenwort transferiert.              │
  6614.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6615.  ║Zeitoperationen                                                           │
  6616.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6617.    │SI   │ T        │ X1 │     │ X   │ Eine Zeit, die im Akku 1 abgelegt    │
  6618.    │     │          │    │     │     │ wurde,  wird als Impuls gestartet    │
  6619.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6620.    │SV   │ T        │    │     │     │ Eine Zeit, die im Akku 1 abgelegt    │
  6621.    │     │          │ X1 │     │ X   │ wurde, wird als verlängerter Impuls  │
  6622.    │     │          │    │     │     │ gestartet                            │
  6623.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6624.    │SE   │ T        │    │     │     │ Eine Zeit, die im Akku 1 abgelegt    │
  6625.    │     │          │ X1 │     │ X   │ wurde, wird einschaltverzögert       │
  6626.    │     │          │    │     │     │ gestartet.                           │
  6627.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6628.    │SS   │ T        │ X1 │     │ X   │ Wie SE nur speichernd.               │
  6629.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6630.    │SA   │ T        │ X0 │     │ X   │ Eine Zeit, die im Akku 1 abgelegt    │
  6631.    │     │          │    │     │     │ wurde, wird ausschaltverzögert       │
  6632.    │     │          │    │     │     │ gestartet                            │
  6633.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6634.    │R    │ T        │ X  │     │ X   │ Eine Zeit wird rückgesetzt.          │
  6635.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6636.    │FR   │ T        │ X1 │     │ X   │ Freigabe einer Zeit                  │
  6637.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6638.  ║Zähloperationen                                                           │
  6639.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6640.    │ZV   │ Z        │ X1 │     │  X  │ Zähler um 1 erhöhen                  │
  6641.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6642.    │ZR   │ Z        │ X1 │     │  X  │ Zähler um 1 erniedrigen              │
  6643.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6644.    │S    │ Z        │ X1 │     │     │ Setzt den Zähler auf einen Wert, der │
  6645.    │     │          │    │     │  X  │ im Akku 1 BCD-kodiert hinterlegt ist.│
  6646.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6647.    │R    │ Z        │ X  │     │  X  │ Ein Zähler rücksetzen                │
  6648.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6649.    │FR   │ Z        │ X1 │     │  X  │ Freigabe eines Zählers               │
  6650.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6651.          ┌──────────────────────────────┬────────────────────────────────┐
  6652.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6653.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6654.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6655.          └──────────────────────────────┴────────────────────────────────┘
  6656.  
  6657.  
  6658.  
  6659.                             ─── Seite 110 ───
  6660.  
  6661.       OPERATIONSVORRAT                                          ANHANG 3
  6662. ──────────────────────────────────────────────────────────────────────────────
  6663.  
  6664.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6665.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6666.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6667.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6668.  ║Arithmetrische Befehle                                                    │
  6669.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6670.    │+F   │          │    │     │     │ Zwei Festpunktzahlen addieren:       │
  6671.    │     │          │    │     │     │ Akku 1 + Akku 2                      │
  6672.    │     │          │    │     │     │ Das Ergebnis steht in Akku 1         │
  6673.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6674.    │-F   │          │    │     │     │ Zwei Festpunktzahlen werden          │
  6675.    │     │          │    │     │     │ subtrahiert: Akku 2 - Akku 1         │
  6676.    │     │          │    │     │     │ Das Ergebnis steht in Akku 1         │
  6677.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6678.    │*F   │          │    │     │     │ Zwei Festpunktzahlen werden multi-   │
  6679.    │     │          │    │     │     │ pliziert: Akku 1 * Akku 2            │
  6680.    │     │          │    │     │     │ Das Ergebnis steht in Akku 1         │
  6681.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6682.    │/F   │          │    │     │     │ Zwei Festpunktzahlen werden divi-    │
  6683.    │     │          │    │     │     │ diert: Akku 2 / Akku 1               │
  6684.    │     │          │    │     │     │ Das Ergebnis steht in Akku 1         │
  6685.    │     │          │    │     │     │ und in Akku 2 (ganzzahliger Rest)    │
  6686.    │     │          │    │     │     │ Bei Division durch Null wird M255.7  │
  6687.    │     │          │    │     │     │ auf '1' gesetzt !!!                  │
  6688.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6689.  ║Vergleichsoperationen                                                     │
  6690.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6691.    │!=F  │          │    │ X   │     │ Wenn Akku 1 = Akku 2 dann wird       │
  6692.    │     │          │    │     │     │ das VKE '1'                          │
  6693.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6694.    │><F  │          │    │ X   │     │ Wenn Akku 1 nicht gleich Akku2 dann  │
  6695.    │     │          │    │     │     │ dann wird das VKE '1'                │
  6696.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6697.    │>F   │          │    │ X   │     │ Wenn Akku 2 > Akku 1 dann wird das   │
  6698.    │     │          │    │     │     │ VKE '1'                              │
  6699.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6700.    │>=F  │          │    │ X   │     │ Wenn Akku 2 >= Akku 1 dann wird das  │
  6701.    │     │          │    │     │     │ VKE '1'                              │
  6702.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6703.    │<F   │          │    │ X   │     │ Wenn Akku 2 < Akku 1 dann wird das   │
  6704.    │     │          │    │     │     │ VKE '1'                              │
  6705.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6706.    │<=F  │          │    │ X   │     │ Wenn Akku 2 <= Akku 1 dann wird das  │
  6707.    │     │          │    │     │     │ VKE '1'                              │
  6708.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6709.  ║Bausteinaufrufoperationen                                                 │
  6710.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6711.    │SPA  │ OB       │    │     │ X   │ Organisationsbaustein absolut auf-   │
  6712.    │     │          │    │     │     │ rufen                                │
  6713.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6714.          ┌──────────────────────────────┬────────────────────────────────┐
  6715.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6716.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6717.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6718.          └──────────────────────────────┴────────────────────────────────┘
  6719.                             ─── Seite 111 ───
  6720.  
  6721.       OPERATIONSVORRAT                                          ANHANG 3
  6722. ──────────────────────────────────────────────────────────────────────────────
  6723.  
  6724.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6725.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6726.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6727.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6728.    │SPA  │ PB       │    │     │ X   │ Programmbaustein absolut aufrufen    │
  6729.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6730.    │SPA  │ FB       │    │     │ X   │ Funktionsbaustein absolut aufrufen   │
  6731.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6732.    │SPA  │ SB       │    │     │ X   │ Schrittbaustein absolut aufrufen     │
  6733.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6734.    │SPB  │ OB       │X   │ X#1 │ X   │ Organisationsbaustein bedingt        │
  6735.    │     │          │    │     │     │ aufrufen                             │
  6736.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6737.    │SPB  │ PB       │X   │ X#1 │ X   │ Progammbaustein bedingt aufrufen     │
  6738.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6739.    │SPB  │ FB       │X   │ X#1 │ X   │ Funktionsbaustein bedingt aufrufen   │
  6740.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6741.    │SPB  │ SB       │X   │ X#1 │ X   │ Schrittbaustein bedingt aufrufen     │
  6742.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6743.  ║Sprungoperationen                                                         │
  6744.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6745.    │SPA= │Symboladr │    │     │     │ Sprung absolut zur Marke (Label)     │
  6746.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6747.    │SPB= │Symboladr │ X  │ X#1 │  X  │ Sprung bedingt zur Marke (Label)     │
  6748.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6749.    │SPZ= │Symboladr │    │     │     │ Sprung bei Null: Wird nur ausgeführt,│
  6750.    │     │          │    │     │     │ wenn Anz0 =0 und Anz1 = 0            │
  6751.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6752.    │SPN= │Symboladr │    │     │     │ Sprung bei nicht Null: Wird nur      │
  6753.    │     │          │    │     │     │ ausgeführt, wenn Anz1 nicht gleich   │
  6754.    │     │          │    │     │     │ Anz0 ist.                            │
  6755.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6756.    │SPP= │Symboladr │    │     │     │ Sprung bei Vorzeichen Plus: Wird nur │
  6757.    │     │          │    │     │     │ ausgeführt, wenn Anz1 = 1 und        │
  6758.    │     │          │    │     │     │ Anz0 = 0 ist.                        │
  6759.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6760.    │SPM= │Symboladr │    │     │     │ Sprung bei Vorzeichen minus: Wird nur│
  6761.    │     │          │    │     │     │ ausgeführt, wenn Anz1 = 0 und        │
  6762.    │     │          │    │     │     │ Anz0 = 1                             │
  6763.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6764.    │SPO= │Syboladr  │    │     │     │ Sprung bei 'Überlauf': Wird nur aus- │
  6765.    │     │          │    │     │     │ geführt, wenn die Overflow Anzeige   │
  6766.    │     │          │    │     │     │ gesetzt ist.                         │
  6767.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6768.  ║Bausteinaufrufoperationen                                                 │
  6769.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6770.    │A    │DB        │    │     │     │ Ein Datenbaustein wird aufgerufen    │
  6771.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6772.          ┌──────────────────────────────┬────────────────────────────────┐
  6773.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6774.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6775.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6776.          └──────────────────────────────┴────────────────────────────────┘
  6777.  
  6778.  
  6779.                             ─── Seite 112 ───
  6780.  
  6781.       OPERATIONSVORRAT                                          ANHANG 3
  6782. ──────────────────────────────────────────────────────────────────────────────
  6783.  
  6784.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6785.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6786.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6787.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6788.    │E    │DB        │    │     │     │ Ein Datenbaustein wird erzeugt, wenn │
  6789.    │     │          │    │     │     │ im Akku 1 ein Wert ungleich "0"      │
  6790.    │     │          │    │     │     │ Steht. Der DB wird gelöscht wenn im  │
  6791.    │     │          │    │     │     │ Akku 1 der Wert "0" steht.           │
  6792.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6793.  ║Rücksprungoperationen                                                     │
  6794.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6795.    │BE   │          │    │     │  X  │ Baustein beenden                     │
  6796.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6797.    │BEB  │          │ X  │     │ X#1 │ Baustein bedingt beenden             │
  6798.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6799.    │BEA  │          │    │     │  X  │ Baustein absolut beenden             │
  6800.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6801.  ║Null-Operationen                                                          │
  6802.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6803.    │NOP0 │          │    │     │     │ dient als Platzhalter                │
  6804.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6805.    │NOP1 │          │    │     │     │ Nulloperation; hat keine Bedeutung   │
  6806.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6807.  ║Stop-Operation                                                            │
  6808.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6809.    │STS  │          │    │     │     │ Der Simulationsvorgang wird beendet  │
  6810.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6811.    │STP  │          │    │     │     │ Der Simulationsvorgang wird beendet  │
  6812.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6813.  ║Bit-Testoperationen                                                       │
  6814.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6815.    │P    │ D        │    │ X   │     │ Bit eines Datenwortes auf '1' prüfen │
  6816.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6817.    │P    │ T/Z      │    │ X   │     │ Bit eines Zeit/Zähler-Istwertes auf  │
  6818.    │     │          │    │     │     │ '1' prüfen                           │
  6819.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6820.    │PN   │ D        │    │ X   │     │ Bit eines Datenwortes auf '0' prüfen │
  6821.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6822.    │PN   │ T/Z      │    │ X   │     │ Bit eines Zeit/Zähler-Istwertes auf  │
  6823.    │     │          │    │     │     │ '0' prüfen                           │
  6824.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6825.    │SU   │ D        │    │     │ X   │ Bit eines Datenwortes auf '1' setzen │
  6826.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6827.    │SU   │ T/Z      │    │     │ X   │ Bit eines Zeit/Zähl-Istwertes setzen │
  6828.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6829.    │RU   │ D        │    │     │ X   │ Bit eines Datenwortes auf '0' setzen │
  6830.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6831.    │RU   │ T/Z      │    │     │ X   │ Bit eines Zeit/Zähler-Istwertes auf  │
  6832.    │     │          │    │     │     │ '0' setzen                           │
  6833.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6834.          ┌──────────────────────────────┬────────────────────────────────┐
  6835.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6836.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6837.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6838.          └──────────────────────────────┴────────────────────────────────┘
  6839.                             ─── Seite 113 ───
  6840.  
  6841.       OPERATIONSVORRAT                                          ANHANG 3
  6842. ──────────────────────────────────────────────────────────────────────────────
  6843.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6844.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6845.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6846.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6847.  ║Umwandlungsoperationen                                                    │
  6848.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6849.    │KEW  │          │    │     │     │ Das 1er-Komplement (Negierung)       │
  6850.    │     │          │    │     │     │ von Akku 1 bilden                    │
  6851.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6852.    │KZW  │          │    │     │     │ Das 1er-Kompelment (Negierung)       │
  6853.    │     │          │    │     │     │ von Akku 1 bilden und 1 addieren     │
  6854.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6855.  ║Schiebeoperationen                                                        │
  6856.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6857.    │SLW  │          │    │     │     │ Inhalt von Akku 1 nach links schieben│
  6858.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6859.    │SRW  │          │    │     │     │ Inhalt von Akku 2 nach rechts        │
  6860.    │     │          │    │     │     │ schieben                             │
  6861.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6862.  ║Arithmetische Operationen                                                 │
  6863.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6864.    │ADD  │ BF       │    │     │     │ Eine 1-Byte Konstante zum Akku 1     │
  6865.    │     │          │    │     │     │ addieren  (-127...+127)              │
  6866.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6867.    │ADD  │ KF       │    │     │     │ Eine 2-Byte Konstante zum Akku 1     │
  6868.    │     │          │    │     │     │ addieren  (-32768...+32767)          │
  6869.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6870.    │D    │          │    │     │     │ Das Low-Byte von Akku 1 um n (0..255)│
  6871.    │     │          │    │     │     │ erniedrigen (dekrementieren)         │
  6872.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6873.    │I    │          │    │     │     │ Das Low-Byte von Akku 1 um n (0..255)│
  6874.    │     │          │    │     │     │ erhöhen (inkrementieren)             │
  6875.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6876.  ║Sonstige Operationen                                                      │
  6877.  ╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6878.    │TAK  │          │    │     │     │ Der Inhalt von Akku 1 und Akku 2     │
  6879.    │     │          │    │     │     │ wird vertauscht                      │
  6880.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6881.    │UW   │          │    │     │     │ UND- Verknüpfung von Akku 1 und      │
  6882.    │     │          │    │     │     │ Akku 2. Das Ergebnis steht in Akku 1 │
  6883.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6884.    │OW   │          │    │     │     │ ODER-Verknüpfung von Akku 1 und      │
  6885.    │     │          │    │     │     │ Akku 2. Das Ergebnis steht in Akku 1 │
  6886.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6887.    │XOW  │          │    │     │     │ EXKLUSIV-Oder Verknüpfung von Akku 1 │
  6888.    │     │          │    │     │     │ und Akku 2. Das Ergebnis steht in    │
  6889.    │     │          │    │     │     │ Akku 1                               │
  6890.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6891.          ┌──────────────────────────────┬────────────────────────────────┐
  6892.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6893.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6894.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6895.          └──────────────────────────────┴────────────────────────────────┘
  6896.  
  6897.  
  6898.  
  6899.                             ─── Seite 114 ───
  6900.  
  6901.       OPERATIONSVORRAT                                          ANHANG 3
  6902. ──────────────────────────────────────────────────────────────────────────────
  6903.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6904.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6905.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6906.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6907.    │B    │ MW       │    │     │     │ Indirekte Adressierung durch ein     │
  6908.    │     │          │    │     │     │ Merkerwort                           │
  6909.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6910.    │B    │ DW       │    │     │     │ Indirekte Adressierung durch ein     │
  6911.    │     │          │    │     │     │ Datenwort.                           │
  6912.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6913.    │DUF  │          │    │     │     │ DUAL (Akku 1) ==> BCD (Akku 1)       │
  6914.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6915.    │DEF  │          │    │     │     │ BCD (Akku 1) ==> DUAL (Akku 1)       │
  6916.  ╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6917.  ║Operationen mit Formaloperanden                                           │
  6918.  ╚═╤════════════════════════════════════════════════════════════════════════╡
  6919.    │Verknüpfungsoperationen                                                 │
  6920.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡ 
  6921.    │U=   │Formal-   │    │ X   │     │ UND-Verknüpfung mit folgenden Aktual-│
  6922.    │     │operand   │    │     │     │ operanden: E/A/M/T/Z                 │
  6923.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6924.    │UN=  │Formal-   │    │ X   │     │ UND-NICHT Verknüpfung mit folgenden  │   
  6925.    │     │operand   │    │     │     │ Aktualoperanden: E/A/M/T/Z           │
  6926.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6927.    │O=   │Formal-   │    │ X   │     │ ODER Verknüpfung mit folgenden       │
  6928.    │     │operand   │    │     │     │ Aktualoperanden: E/A/M/T/Z           │
  6929.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6930.    │ON=  │Formal-   │    │ X   │     │ ODER-NICHT Verknüpfung mit folgenden │
  6931.    │     │operand   │    │     │     │ Aktualoperanden: E/A/M/T/Z           │
  6932.    ╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6933.    │Speicheroperationen                                                     │
  6934.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6935.    │S=   │ Formal-  │ X  │     │  X  │ Setze Formaloperand                  │
  6936.    │     │ operand  │    │     │     │ Mögliche Aktualoperanden: E/A/M      │
  6937.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6938.    │RB=  │ Formal-  │ X  │     │  X  │ Rücksetze binärer Formaloperand      │
  6939.    │     │ operand  │    │     │     │ Mögliche Aktualoperanden: E/A/M      │
  6940.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6941.    │RD=  │ Formal-  │ X  │     │  X  │ Rücksetze digitaler Formaloperand    │
  6942.    │     │ operand  │    │     │     │ Mögliche Aktualoperanden: T/Z        │
  6943.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6944.    │==   │ Formal-  │ X  │     │  X  │ Der Formaloperand wird auf den Wert  │
  6945.    │     │ operand  │    │     │     │ des VKE gesetzt.                     │
  6946.    │     │          │    │     │     │ Mögliche Aktualoperanden: E/A/M      │
  6947.    ╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6948.    │Zeitoperationen                                                         │
  6949.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6950.    │SE=  │ Formal-  │ X1 │     │  X  │ Eine Zeit, die im Akku 1 abgelegt    │
  6951.    │     │ operand  │    │     │     │ wurde, wird einschaltverzögert       │
  6952.    │     │          │    │     │     │ gestartet (SE)                       │
  6953.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  6954.          ┌──────────────────────────────┬────────────────────────────────┐
  6955.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  6956.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  6957.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  6958.          └──────────────────────────────┴────────────────────────────────┘
  6959.                             ─── Seite 115 ───
  6960.  
  6961.       OPERATIONSVORRAT                                          ANHANG 3
  6962. ──────────────────────────────────────────────────────────────────────────────
  6963.  
  6964.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  6965.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  6966.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  6967.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  6968.    │SI=  │ Formal-  │ X1 │     │  X  │ Eine Zeit, die im Akku 1 abgelegt    │
  6969.    │     │ operand  │    │     │     │ wurde, wird als Impuls gestartet (SI)│
  6970.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6971.    │SAR= │ Formal-  │ X0 │     │  X  │ Eine Zeit, die im Akku 1 abgelegt    │
  6972.    │     │ operand  │    │     │     │ wurde, wird ausschaltverzögert       │
  6973.    │     │          │    │     │     │ gestartet (SA).                      │
  6974.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6975.    │SSV= │ Formal-  │ X1 │     │  X  │ Eine Zeit, die im Akku 1 abgelegt    │
  6976.    │     │ operand  │    │     │     │ wurde, wird einschaltverzögert       │
  6977.    │     │          │    │     │     │ (speichernd) gestartet (SS).         │
  6978.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6979.    │SVZ= │ Formal-  │ X1 │     │  X  │ Eine Zeit, die im Akku 1 abgelegt    │
  6980.    │     │ operand  │    │     │     │ wurde, wird als verlängerter Impuls  │
  6981.    │     │          │    │     │     │ gestartet (SV).                      │
  6982.    ╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6983.    │Zähloperationen                                                         │
  6984.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6985.    │SVZ= │ Formal-  │ X1 │     │  X  │ Setzt den Zähler auf einen Wert,     │
  6986.    │     │ operand  │    │     │     │ der im Akku 1 BCD-codiert abgelegt   │
  6987.    │     │          │    │     │     │ wurde. (S  Z)                        │
  6988.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6989.    │SSV= │ Formalop.│ X1 │     │  X  │ Zähleristwert um 1 erhöhen (ZV)      │
  6990.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6991.    │SAR= │ Formalop.│ X1 │     │  X  │ Zähleristwert um 1 erniedrigen (ZR)  │
  6992.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  6993.    │FR=  │ Formalop.│ X1 │     │  X  │ Freigabe eines Zähles                │
  6994.    ╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  6995.    │Ladeoperationen / Transferoperationen                                   │
  6996.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  6997.    │L=   │ Formal-  │    │     │     │ Mögliche Aktualoperanden:            │
  6998.    │     │ operand  │    │     │     │ EB/AB/MB/PB/DR/DL/EW/AW/MW/DW/PW -   │
  6999.    │     │          │    │     │     │ Der Wert des Formaloperanden wird in │
  7000.    │     │          │    │     │     │ den Akku 1 geladen.                  │
  7001.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7002.    │L=   │ Formal-  │    │     │     │ Mögliche Aktualoperanden: T/Z        │
  7003.    │     │ operand  │    │     │     │ Ein Zeit- oder Zählistwert wird in   │
  7004.    │     │          │    │     │     │ den Akku 1 geladen.                  │
  7005.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7006.    │LC=  │ Formal-  │    │     │     │ Mögliche Aktualoperanden: T/Z        │
  7007.    │     │ operand  │    │     │     │ Ein Zeit- oder Zählistwert wird BCD- │
  7008.    │     │          │    │     │     │ codiert in den Akku 1 geladen.       │
  7009.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7010.    │LW=  │ Formal-  │    │     │     │ Laden eines konstanten Bitmusters:   │
  7011.    │     │ operand  │    │     │     │ KF/KH/KM/KY/KT/KZ/KC                 │
  7012.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  7013.          ┌──────────────────────────────┬────────────────────────────────┐
  7014.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  7015.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  7016.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  7017.          └──────────────────────────────┴────────────────────────────────┘
  7018.  
  7019.                             ─── Seite 116 ───
  7020.  
  7021.       OPERATIONSVORRAT                                          ANHANG 3
  7022. ──────────────────────────────────────────────────────────────────────────────
  7023.  
  7024.    ╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
  7025.    │Op.  │ Operand  │VKE │VKE  │VKE  │ Beschreibung                         │
  7026.    │     │          │ABH.│BEEI.│BEGR.│                                      │
  7027.    ╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
  7028.    │T=   │ Formal-  │    │     │     │ Mögliche Aktualoperanden:            │
  7029.    │     │ operand  │    │     │     │ EB/AB/MB/EW/AW/MW/DW/PW/DR/DL/PB     │
  7030.    │     │          │    │     │     │ Der Inhalt des Akku 1 wird zu einem  │
  7031.    │     │          │    │     │     │ Formaloperand transferiert.          │
  7032.    ╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
  7033.    │Bausteinoperationen                                                     │
  7034.    ╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
  7035.    │B =  │ Formal-  │    │     │     │ Aktualoperand: FB                    │
  7036.    │     │ operand  │    │     │     │ Ein FB wird absolut angesprungen.    │
  7037.    │     │          │    │     │     │ (SPA FB)                             │
  7038.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7039.    │B =  │ Formal-  │    │     │     │ Aktualoperand: PB                    │
  7040.    │     │ operand  │    │     │     │ Ein PB wird absolut angesprungen.    │
  7041.    │     │          │    │     │     │ (SPA PB)                             │
  7042.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7043.    │B =  │ Formal-  │    │     │     │ Aktualoperand: SB                    │
  7044.    │     │ operand  │    │     │     │ Ein SB wird absolut angesprungen.    │
  7045.    │     │          │    │     │     │ (SPA SB)                             │
  7046.    ├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
  7047.    │B =  │ Formal-  │    │     │     │ Aktualoperand: DB                    │
  7048.    │     │ operand  │    │     │     │ Ein Datenbaustein wird aufgerufen.   │
  7049.    │     │          │    │     │     │ (A  DB)                              │
  7050.    └─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
  7051.  
  7052.          ┌──────────────────────────────┬────────────────────────────────┐
  7053.          │ X1 : Highflanke des VKE      │   VKE ABH.  = VKE abhängig     │
  7054.          │ X0 : Lowflanke  des VKE      │   VKE BEEI. = VKE beeinflussend│
  7055.          │ X#1: Vke wird auf 1 gesetzt  │   VKE BEGR. = VKE begrenzend   │
  7056.          └──────────────────────────────┴────────────────────────────────┘
  7057.  
  7058.  
  7059.  
  7060.  
  7061.  
  7062.  
  7063.  
  7064.  
  7065.  
  7066.  
  7067.  
  7068.  
  7069.  
  7070.  
  7071.  
  7072.  
  7073.  
  7074.  
  7075.  
  7076.  
  7077.  
  7078.  
  7079.                             ─── Seite 117 ───
  7080.  
  7081.       DIMENSIONEN DER OPERANDEN UND BEFEHLE                     ANHANG 4
  7082. ──────────────────────────────────────────────────────────────────────────────
  7083.  
  7084.  
  7085.                     ┌───────────────────────────────────────┐
  7086.                     │Die Parameter der Operanden            │
  7087.                     ├───────────┬───────────────────────────┤
  7088.                     │Operand    │Parameter:                 │
  7089.                     ╞═══════════╧═══════════════════════════╡
  7090.                     │Binäroperationen                       │
  7091.                     ╞═══════════╤═══════════════════════════╡
  7092.                     │ E         │ 0.0 ... 127.7             │
  7093.                     ├───────────┼───────────────────────────┤
  7094.                     │ A         │ 0.0 ... 127.7             │
  7095.                     ├───────────┼───────────────────────────┤
  7096.                     │ M         │ 0.0 .. 255.7              │
  7097.                     ├───────────┼───────────────────────────┤
  7098.                     │ T         │ 0 ... 255                 │
  7099.                     ├───────────┼───────────────────────────┤
  7100.                     │ Z         │ 0 ... 255                 │
  7101.                     ╞═══════════╧═══════════════════════════╡
  7102.                     │Byteoperationen                        │
  7103.                     ╞═══════════╤═══════════════════════════╡
  7104.                     │ EB        │ 0 ... 127                 │
  7105.                     ├───────────┼───────────────────────────┤
  7106.                     │ AB        │ 0 ... 127                 │
  7107.                     ├───────────┼───────────────────────────┤
  7108.                     │ MB        │ 0 ... 255                 │
  7109.                     ├───────────┼───────────────────────────┤
  7110.                     │ DL/DR     │ 0 ... 255                 │
  7111.                     ├───────────┼───────────────────────────┤
  7112.                     │ PB        │ 0 ... 255                 │
  7113.                     ╞═══════════╧═══════════════════════════╡
  7114.                     │Wortoperationen                        │
  7115.                     ╞═══════════╤═══════════════════════════╡
  7116.                     │ EW        │ 0 ... 126                 │
  7117.                     ├───────────┼───────────────────────────┤
  7118.                     │ AW        │ 0 ... 126                 │
  7119.                     ├───────────┼───────────────────────────┤
  7120.                     │ MW        │ 0 ... 254                 │
  7121.                     ├───────────┼───────────────────────────┤
  7122.                     │ DW        │ 0 ... 255                 │
  7123.                     ├───────────┼───────────────────────────┤
  7124.                     │ PW        │ 0 ... 49                  │
  7125.                     ╞═══════════╧═══════════════════════════╡
  7126.                     │Konstantenoperationen                  │
  7127.                     ╞═══════════╤═══════════════════════════╡
  7128.                     │ KB        │ 0 ... 255                 │
  7129.                     ├───────────┼───────────────────────────┤
  7130.                     │ KF        │ -32768 ... +32767         │
  7131.                     ├───────────┼───────────────────────────┤
  7132.                     │ KH        │ 0 ... FFFF                │
  7133.                     ├───────────┼───────────────────────────┤
  7134.                     │ KM        │ Bitmuster mit 16 Bits     │
  7135.                     ├───────────┼───────────────────────────┤
  7136.                     │ KY        │ 0 ... 255, 0 ... 255      │
  7137.                     └───────────┴───────────────────────────┘
  7138.  
  7139.                             ─── Seite 118 ───
  7140.  
  7141.       DIMENSIONEN DER OPERANDEN UND BEFEHLE                     ANHANG 4
  7142. ──────────────────────────────────────────────────────────────────────────────
  7143.  
  7144.                     ╒═══════════════════════════════════════╕
  7145.                     │Die Parameter der Operanden            │
  7146.                     ╞═══════════╤═══════════════════════════╡
  7147.                     │ KT        │ 2.0 ... 999.3             │
  7148.                     ├───────────┼───────────────────────────┤
  7149.                     │ KZ        │ 0 ... 999                 │
  7150.                     ╞═══════════╧═══════════════════════════╡
  7151.                     │Bausteinaufrufe                        │
  7152.                     ╞═══════════╤═══════════════════════════╡
  7153.                     │ OB        │ 2 ... 31                  │
  7154.                     ├───────────┼───────────────────────────┤
  7155.                     │ PB        │ 0 ... 255                 │
  7156.                     ├───────────┼───────────────────────────┤
  7157.                     │ FB        │ 0 ... 255                 │
  7158.                     ├───────────┼───────────────────────────┤
  7159.                     │ SB        │ 0 ... 255                 │
  7160.                     ╞═══════════╧═══════════════════════════╡
  7161.                     │Sonstiges                              │
  7162.                     ╞═══════════════════════════════════════╡
  7163.                     │Symboladressen: maximal 4 Zeichen      │
  7164.                     ├───────────────────────────────────────┤
  7165.                     │8 Klammerebenen                        │
  7166.                     ├───────────────────────────────────────┤
  7167.                     │15 Bausteinebenen                      │
  7168.                     ├───────────────────────────────────────┤
  7169.                     │20 akustische Ausgänge                 │
  7170.                     ├───────────────────────────────────────┤
  7171.                     │40 Eingangsdefinitionen                │
  7172.                     ├───────────────────────────────────────┤
  7173.                     │300 Kommentarzuweisungen (Zuweisungsl. │
  7174.                     ╘═══════════════════════════════════════╛
  7175.  
  7176.  
  7177.  
  7178.  
  7179.  
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.  
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.  
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  
  7199.                             ─── Seite 119 ───
  7200.  
  7201.