Home
RT- ZBAS - Kolter Electronic
Contents
1. BASIC gestartet Speichergrenze _ ay 31821 Bytes frei ADVANCED BASIC 6 02 C Dr Hehl amp H Kolter Fertig Geben Sie nun folgenden Advanced BASIC Befehl mit abschlie ender Return Enter Taste ein XGETEMP SEPIA meldet nun die aktuelle CPU Temperatur in diesem Fall 32 Grad Celsius 032 Grad C Fertig Im n chsten Beispiel wollen wir nun die CPU Temperatur wiederholt auf dem Bildschirm fromatiert ausgeben lassen bis wir die Endlosschleife mit der Tastenkombination CTRL E manuell unterbrechen Weiter auf der n chsten Seite gt gt gt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 10 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XGETEMP Advanced Befehl Da der BASIC Programmspeicher noch leer ist k nnen wir gleich die ersten Programmzeilen eingeben L schen Sie aber zun chst den Bildschirm mit der folgenden Eingabe CLS gefolgt von der Return Enter Taste und geben Sie nach der Fertig Meldung folgende Programmzeilen ein Fertig 100 CLS 110 LOCATE 10 10 120 XGETEMP PRINT 130 GOTO 110 RUN Das Programm k nnen Sie nun mit dem RUN Befehl starten gefolgt von der Return Enter Taste Die Monitorausgabe der CPU Temperatur erfolgt jetzt permanent in der 10ten Zeile an der 10ten Spalte bis eine manuelle Unterbrechung mit der Tastenkombinat
2. REM direkte Wandlung nach D 150 160 V D 0 0003051804379 10 000 REM Messwert 170 PRINT Volt PRINT USINGYH H H V KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 24 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Analoge Spannung mit DA1 erzeugen Mit der DA1 Karte lassen sich 4 analoge Spannungen zwischen 10 Volt oder kleineren Bereichen komfortabel erzeugen Zur Spannungsausgabe sind nur wenige X Befehle n tig XDAC Word Adresse setzt den digitalen Spannungswert 0 4095 auf die DAC Adresse XDASE T Kartenadresse bergibt die DAC Werte in den Latch und gibt Ausgang frei Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Bipolar Mode alle DAC Kan le 0 Volt 120 XDAC amp 800 amp 98 REM setze Wert auf Kanal 1 130 XDASET amp 98 REM DAC Latch amp Output Freigabe 140 XDAC amp 800 amp 9A REM setze Wert auf Kanal 2 150 XDASET amp 98 REM DAC Latch amp Output Freigabe 160 XDAC amp 800 amp 9C REM setze Wert auf Kanal 3 170 XDASET amp 98 REM DAC Latch amp Output Freigabe 180 XDAC amp 800 amp 9E REM setze Wert auf Kanal 4 190 XDASET amp 98 REM DAC Latch amp Output Freigabe Beispiel 2 100 REM Kanal 1 und Kanal 2 gleichzeitig ausgeben 110 XDAC amp 0A00 amp 98 REM setze 2 5 Volt auf Kana
3. Sprungbehandlung wenn X Wirkungsweise Verzweigt den nachfolgenden Befehl weiter zur angegebenen Zeilennummer im Programm Das Argument muss als Ganzzahl gr er 0 und kleiner als 256 sein Beispiele 10 ON ERROR GOTO 100 20 REM 100 PRINT Fehler gefunden 10X 1 20 ON X GOTO 100 100 PRINT Alles O K ON Z GOTO Zeilennummer A Zeilennummer B usw Die Wirkungsweise ist dieselbe wie beim GOSUB Befehl ein R cksprung kann jedoch nicht erfolgen ON Z GOSUB Zeilennummer A Zeilennummer B usw ON Z RETURN Zeilennummer A Zeilennummer B usw Wie beim GOSUB Befehl kann auch unter bestimmten Bedingungen der RETURN Befehl ausgef hrt werden Hinweis Nach Aktivierung der Fehlerbehandlung bsp ON ERROR am Programmanfang springt der Interpreter bei Auftreten eines Fehlers zu der angegebenen Zeilennummer KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 120 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC OR Verwendungszweck Logischer Operator zur Oder Verk pfung zweier Boolean Ausdr cke oder zum Vergleich zweier numerischer Bitmuster Syntax OR Wirkungsweise Vergleicht gem Wahrheitstabelle ob eine oder beide Bedigungnen erf llt sind Beispiele 10A 1 20B 0 30 PRINT A OR B Ergebnis 1 10A 0 20B 1 30 PRINT A OR B Ergebnis 1 10A 0 20B 0 30 PRI
4. String Operation zum f llen einer Zeichenkette Syntax FIX Befehlsform FIX Variable Zeichenanzahl Wirkungsweise F r Stringoperationen ben tigt man oft eine ganz bestimmte L nge einer Zeichenkette Dieser Befehl f llt eine vorhandene Zeichenkette mit Leerzeichen Space bis zur angegebenen L nge max 255 Zeichen auf oder schneidet sie ab Beispiel 10 INPUT Wort L nge A L 20 IF A E THEN END 30 A FIX A L 40 PRINT A L nge LEN A 50 GOTO 10 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 92 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC FIND Verwendungszweck Suchen von Zeichen bzw Zeichenketten Syntax FIND Trennzeichen Zeichenkette Trennzeichen Zeilenbereich Wirkungsweise Beliebige Zeichenketten z B Variablennamen k nnen in einem Programm ermittelt werden Es werden die Zeilen mit der gesuchten Zeichenkette ausgegeben Als Trennzeichen k nnen beliebige ASCII Zeichen im Bereich von 21h bis 40h verwendet werden mit einigen Ausnahmen keine Zahlen kein Komma Wird ein als Trennzeichen verwendbares Zeichen gesucht darf dieses nat rlich nicht als Trennzeichen verwendet werden FIND ergibt die Fehlermeldung Syntaxfehler und mu als FIND eingegeben werden Beispiel FIND DATA 100 200 lt CR gt Es wird im Programm von
5. Syntax n ERR Wirkungsweise Der in ERR enthaltene nummerische Wert enth lt die zu letzt gespeicherte Fehlernummer Beispiel ERR Hinweis Wurde noch kein Fehler erzeugt ist der Inhalt von ERR 0 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 83 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ERR1 Verwendungszweck Wie ERR jedoch mit angeh ngter Fehlerspeicher Nummer bei der Ausgabe Syntax ERR1 Wirkungsweise Der in ERR enthaltene nummerische Wert enth lt die zu letztgespeicherte Fehlernummer und wird gemeinsam mit der Fehlerspeicher Nummer erzeugt Beispiel gnampf REM irgend ein Text der hier einen Syntaxfehler verursacht ERR5 Ausgabe Syntaxfehler 2 5 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 84 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ERROR Verwendungszweck ERROR simuliert das Auftreten eines Fehlers oder erm glicht dem Benutzer die Definition von Fehlercodes Syntax ERROR Fehlernummer Wirkungsweise Mit Befehl ERROR XY 0 48 kann die Fehlermeldung XY ausgegeben werden Der Wert von Ganzzahlausdruck Fehlernummer mu immer gr er als 0 und kleiner als 255 sein Fehlermeldungen sind beliebig definierbar wo
6. b wird das Byte an die Speicherzelle im RAM bergeben Beide bergabeparameter sind Ganzzahlenausdr cke Write Beispiel 10 ADR amp 10000 20 B 123 30 POKE ADR B Read Beispiel 10 ADR amp 10000 20 B PEEK ADR 30 PRINT B Hinweis Der Wertebereich f r PEEK und POKE Adressen betr gt 0 65525 dezimal bzw 0000h FFFFh Der physikalische Speicher erstreckt sich bei SEPIA auf 8000h FFFFh Es sind jedoch Teil Bereiche von 8000h 8300h und FEOOh FFFFh f r den Interpreter reserviert Wenn eine POKE Anweisung einen wichtigen bereits genutzten Speicherbereich im RAM berschreibt kann es zu einem Systemabsturz kommen da intern genutzte Systemvariablen Flags o a Parameter berschrieben werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 123 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC POS Verwendungszweck Die Funktion POS gibt die augenblickliche Spaltenposition des Text Cursors zur ck Syntax POS 0 Wirkungsweise Der Spalten R ckgabewert wird in der aktuellen Zeile berechnet in der ein Text an den Bildschirm mit PRINT bergeben wurde Beispiel Position der Zeichenausgabe nur mit m glich z B PRINT UUUUUUUUU PRINT POS 0 lt CR gt Ausgabe 9 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com
7. Hinweis Eine Zuweisung zu einer Variablen ergibt die Fehlermeldung Syntaxfehler Zeile XYZ Es d rfen max 255 Leerzeichen f r SPC n als Ganzzahl definiert werden also n lt 256 Ich n gt 255 wird die Fehlermeldung nicht erlaubt Zeile XYZ ausgegeben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 148 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC TAN Verwendungszweck TAN liefert den Tangens von x im Bogenma Syntax TAN x Wirkungsweise F r den im Bogenma angegebenen Wert x wird der Tangens berechnet Beispiel PRINT TAN 45 P1 180 lt CR gt Anzeige 1 Hinweis Bei einem berlauf von TAN wird eine entsprechende Fehlermeldung ausgegeben und die gr te darstellbare Zahl mit entsprechendem Vorzeichen zur ckgegeben Das Programm wird dennoch fortgesetzt Wenn x als Gradangabe vorliegt erfolgt die interne Berechnung von TAN x mit TAN x pi 180 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 149 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC TRACE Verwendungszweck Ausgabe mitverfolgen der bearbeiteten Zeilennummern w hrend der Laufzeit des Interpreters Mit TRACE k nnen schwerwiegende Programmierfehler w hrend der Bearbeitung unt
8. IF L lt gt L1 THEN GOTO 210 470 M1 INP amp 3C IF M lt gt M1 THEN GOTO 210 475 480 REM Loesche HOLD 500 OUT amp 3D 0 REM HOLD 510 520 REM Dezimalsystem deshalb nur 4 bit 540 SEK A B 10 560 MIN C D 10 580 STD E F 10 600 DAY G H 10 620 MO I J 10 640 YER 2000 K L 10 660 WEK M 670 680 PRINT Datum DAY MO 1 YER Uhrzeit STD MIN SEK 700 If M 0 then Print Wochentag Sonntag 710 If M 1 then Print Wochentag Montag 720 If M 2 then Print Wochentag Dienstag 730 I M 3 then Print Wochentag Mittwoch 740 I M 4 then Print Wochentag Donnerstag 750 I M 5 then Print Wochentag Freitag 760 I M 6 then Print Wochentag Samstag 770 800 GOTO 100 REM erneut auf Bildschirm ausgeben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 15 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Textausgabe und Tastatur Zeichen Eingabe Sie k nnen SEPIA im Host oder Remote Modus betreiben Im Host Betrieb hnlich einem PC werden alle Ein Ausgaben z B auf den VGA Port der NET Karte bertragen Umgekehrt werden Tastatureingaben empfangen und der Konsole zur Verf gung gestellt Im Remote Betrieb werden diese Ein Ausgaben ber den COM1 Port der CPU Karte behandelt Die Zuweisung der Konsole erfolgt durch Festlegung
9. Komplexe Automation durch leichte Programmierung Advanced BASIC EXP Verwendungszweck EXP liefert e die Basis des nat rlichen Logarithmus hoch x Syntax EXP x Wirkungsweise Bei berlauf von EXP erscheint eine Ergebnis zu gross BASIC Fehlermeldung Der gr te darstellbare Wert mit entsprechendem Vorzeichen wird als Ergebnis bergeben und die Programmausf hrung wird anschlie end fortgesetzt Beispiel 1 PRINT EE 88 lt CR gt Anzeige 1 6516362552E 38 Beispiel 2 10X 5 20 PRINT EXP X 1 RUN 54 59815 Anzeige des Wertes e hoch 4 Hinweis x mu kleiner als 88 02969 sein KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 87 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC EXIT Verwendungszweck FOR TO STEP EXIT NEXT EXIT ist hier Teil einer FOR NEXT Schleife um diese bei Erreichen zu verlassen Syntax EXIT Zeilennummer Laufvariable Wirkungsweise Mit dem Befehl EXIT wird die Schleife sofort verlassen bevor die jeweilige Laufvariable ihren Endwert erreicht hat Dies kann zwar auch mit dem Befehl GOTO durchgef hrt werden jedoch kommt es dann bei nachfolgenden Schleifen zu der Fehlermeldung NEXT ohne FOR Zeile Beispiel Eine dreidimensionale Matrix wird mit dem Wert 1 aufgef llt Mehrere Laufvariablen k nnen durch ein Komma getrennt
10. Komplexe Automation durch leichte Programmierung Advanced BASIC LVAR Verwendungszweck LVAR unterst tzt die Ausgabe der BASIC Variableninhalte als Listing Syntax LVAR Wirkungsweise Die in einem Programm verwendeten Variablen und ihre Werte k nnen auf den Bildschirm keine Kanalangabe oder 0 bzw auf den Drucker Kanal 2 ausgegeben werden jedoch erst nachdem das Programm mit LOADGO geladen und gestartet oder manuell mit RUN gestartet wurde da bei diesem Vorgang erst eine Zuordnung erfolgt Beispiele LVAR lt CR gt Ausgabe der verwendeten Variablen am Bildschirm LVAR 2 lt CR gt Ausgabe auf den Drucker Hinweis Die Ausgabe kann wie beim LIST Befehl unterbrochen bzw abgebrochen werden siehe LIST Befehl Es werden keine dimensionierten Variablen angezeigt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 106 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LIST Verwendungszweck Es werden die programmierten BASIC Programmzeilen auf den Bildschirm oder Drucker ausgegeben Ohne Kanal Angabe erfolgt die Ausgabe am Bildschirm mit LIST 2 ber den Kanal Nr 2 auf den LPT1 Drucker Syntax LIST lt CR gt Wirkungsweise Mit dem Befehl OPTION kann die vorgegebene Zeilenl nge von 80 Zeichen getrennt f r Bildschirm und Drucker ver ndert werden siehe OPTION Eine Zeilennummer
11. SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC STRING Verwendungszweck Textausgabe eines ASCIlI Zeichen als Zeichenkette Syntax STRING Zeichenkette oder Stringvariable Anzahl X Wirkungsweise Eine bestimmte Zeichenkette wird mit der angegebenen Anzahl X multipliziert d h die neue Zeichenkette enth lt X mal die alte Zeichenkette STRINGS eignet sich ebenso zur formatierten Ausgabe eines oberen und oder unteren Randes auf dem Bildschirm bzw auf dem Drucker Beispiel 10 A 20 B STRING A 10 30 PRINT B Anzeige k k _k_ k K K K K K k Die Summe aller Zeichen darf die Zahl 255 nicht berschreiten Sonst erfolgt die Fehlermeldung nicht erlaubt Zeile 20 Hinweis Es sind nur ganzzahlige Ausdr cke im Bereich von 0 bis 255 erlaubt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 146 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC STEP Verwendungszweck Schrittweite in FOR NEXT Schleifen festlegen Syntax STEP n Wirkungsweise FOR NEXT Befehle dienen zum Aufbau von Befehlsschleifen Mit STEP wird die Schrittweite des Z hlers bestimmt mit der die Schleife inkrementriert wird Beispiel Befehlsform FOR Laufvariable Anfangswert TO Endwert STEP Schrittweite ern beliebige Befehle NEX
12. VT Vertical tab Vertikaletabulator 12 FF Form feed Seitenvorschub 13 CR Carriage return Wagenr cklauf 14 SO Shift out Dauerumschaltung 15 SI Shift in Ende Dauerumschaltung 16 DLE Data link escape Datenverbindungs Fluchtsymbol 17 DC1 Device control 1 Ger tekontrollcode 1 18 DC2 Device control 2 Ger tekontrollcode 2 19 DC3 Device control 3 Ger tekontrollcode 3 20 DC4 Device control 4 Ger tekontrollcode 4 21 NAK Negative acknowledgment Negative Best tigung 22 SYN Synchronous idle Synchronisationssignal 23 ETB End of transmission block Ende des bertragungsblockes 24 CAN Cancel Abbruch 25 EM End of medium Ende des Mediuns 26 SUB Substitute character Ersetzen 27 ESC Escape Fluchtzeichen 28 FS File separator Dateitrenner 29 GS Group separator Gruppentrenner 30 RS Record separator Datensatztrenner 31 US Unit separator Einheitentrenner 127 DEL Delete Entfernen L schen ASCII Code Tabelle der ISO 8359 Familie Byte Werte 00 bis 127 00 NUL 01 SOH 02 STX 03 ETX 04 EOT 05 ENQ 06 ACK 07 BEL 08 BS 09 HT 10 LF 11 VT 12 FF 13 CR 14 so 15 SI 16 DLE 17 DCI 18 DC2 19 DC3 20 Dca 21 NAK 22 SYN 23 ETB 24 CAN 25 EM 26 SUB 27 ESC 28 FS 29 GS 30 RS 31 US 32 SP 33 34 35 36 37 38 amp 39 3 40 41 42 43 44 45 46 47 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 59 60 lt 61 62 gt 63 64 65 A 66 B 67 C 6
13. Zur Ausgabe des Signals kann beispielsweise die LPT2 auf amp 29h oder AUX Schnittstelle auf amp 49h mit TTL Pegel verwendet werden Die LPT2 Schnittstelle mit 8255 Chip wird bereits beim booten von SEPIA auf Ausgabe initialisiert um beipielsweise einen zweiten Drucker anzusteuern Somit l sst sich der Daten Port auch f r andere Zwecke verwenden wenn auf diese Adresse direkt geschrieben wird W hrend der XIPEAK Befehl ausgef hrt wird sollte die CPU keinen Interrupt verarbeiten Alle Impulszeiten ergeben sich bei 20 MHz CPU Takt mit Waitstate DIP Schalter 1 ON DIP Switch auf Bus Backplane Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM XIPEAK Test mit 1 3 ms Impuls 110 120 A amp 29 REM I O Adresse f r TTL Port 140 T 1000 REM 16Bit Variable f r Impulszeit 160 M 0 REM Mode 0 180 200 XIPEAK A T M REM Befehl ausf hren Die folgende Tabelle zeigt den Bezug bei Mode 0 zwischen Impulszeit und Einstelldauer Time word Dauer exakte Dauer td T 1 5 us 5 028 us kleinste Verz gerung T 2 6 5 us 6 430 us T 5 10 us 10 23 us T 10 17 us 16 83 us T 20 30 us 29 83 us T 50 69 us 68 83 us T 100 133 us 133 83 US T 767 1000 us 1 000 ms T 1000 1 3 ms 1 3038 ms wie im Beispiel angegeben T 10000 13 ms 13 003 ms T 16384 21 ms 21 202 ms T 32768 42 ms 42 602 ms T 65535 85 ms 85 199 ms T 0 85 ms 85 200 ms l ngste Verz gerung a td KOLTER ELECTRONIC T
14. anschlie ende Verarbeitung wird mit absoluten Z hlerst nden vorgenommen Auf Grund der int 20 MHz Zeitbasis ist eine Impulserfassung up down count bis 10 MHz m glich Im 4 fach Inkremental Mode betr gt die Abtrastrate 5 MHz Diese Einstellung wird beispielsweise f r digitale Drehgeber und Encoder mit diff TTL CMOS Signal oder inkrementale L ngenme st be an Mehrachsen Systeme und CNC Maschinen ben tigt Ein Z hler Reset kann synchron oder asynchron erfolgen sowie ber die internen Counter als Z hlerstand vorprogrammiert werden Je Z hler werden vier I O Register verwendet Die Zwischenspeicherung erfolgt bei Lesen des Low Bytes W hrend der Daten bertragung der Registerinhalte z hlt der Counter im Hintergrund weiter damit kein Verlust an der augen blicklichen Position des Gebers entsteht ber einen DIP Schalter werden feste Parameter zu jedem Counter separat eingestellt Die O Basisadresse ist einstellbar Dazu wird die Adresslage f r den Port Zugriff mit DIP Schalter DIP SW1 ausgew hlt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 26 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Optokoppler auf E32 Karte abfragen Alle Optokoppler Eing nge lassen sich auf dieser Erweiterungskarte direkt byte weise erfassen so dass INP Befehle auf der zugeh rigen Kartenadresse das jeweilige Eingangs R
15. lt CR gt An Stelle des Befehlswortes PRINT kann auch die Kurzform ein Fragezeichen eingegeben werden In BASIC Zeilen Programmiermodus wird das Fragezeichen jedoch nicht durch PRINT ersetzt auch nicht beim Speichern oder Laden von Programmen Hinweis Die formatierte Textausgabe erfolgt mit PRINT USING Weitere Verweise siehe TAB SPC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 126 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC PRECISION Verwendungszweck Festlegung der Zahlendarstellung und Rechengenauigkeit Syntax PRECISION x Befehlsform PRECISION Zeichenanzahl Wirkungsweise Ergebnisse von mathematischen Berechnungen z B Dezimalbr che werden mit maximal 11 Zeichen ohne Punkt ausgegeben Diese Anzahl kann verringert werden wobei die letzte ausgegebene Stelle gerundet ist Intern wird mit 11 Zahlen weiter gerechnet Die Zahl 0 oder keine Angabe nach dem Befehl ergeben wieder 11 Zeichen Genauigkeit Beispiel PRECISION 5 lt CR gt oder PRECISION 5 Es werden bei Rechenergebnissen Zahlen mit maximal 5 Zeichen ohne Punkt ausgegeben PRINT 10 77 lt CR gt ergibt die Zahl 1 4286 PRINT 100 7 lt CR gt ergibt 14 286 Mit PRECISION 0 lt CR gt wird nach PRINT 10 7 die Zahl 1 4285714286 ausgegeben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci
16. nge werden wie bei der RL8 komfortabel ber LEDs angezeigt Dazu werden die Signale im CPLD intern zwischengespeichert und anschlie end erst zur LED Anzeige ge bracht damit eine sichere optische Gegenkontolle der erfassten Signalzust nde m glich ist Ein interner Vergleicher pr ft alle eingehenden High Pegel mit der Anzeige auf bereinstim mung Bei Zustands nderung blinkt die zugeh rige Kanal LED so lange bis der Rechner mit einem Lesebefehl den Zwischenspeicher bernommen hat Der Lesevorgang wird durch eine weitere LED angezeigt Somit ist eine zus tzliche Kontolle zur bergabe des Registers an die Rechner CPU gegeben Der hohe Aufwand an Kontollm glichkeiten bietet dem Anwen der erhebliche Vorteile bei der Programmierung da jedes einzelne Bit ob high oder low w hrend der Erfassung mitverfolgt werden kann KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 23 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Analoge Messwerte mit AD1 erfassen Mit der AD1 Karte lassen sich analoge Spannungen zwischen 10 Volt oder kleineren Messbereichen komfortabel erfassen Zur Messung sind nur zwei Befehle n tig XSETAD1 Port Kanal stellt den analogen Messkanal ein D XGETAD1 Port gibt das Messergebnis als 16 Bit Wert an eine Variable zur ck Geben Sie das nachfolgende BASIC Programm ein und starten
17. sind hingeben numerische Ausdr cke gt 255 oder lt 0 PRINT CHR 256 lt CR gt PRINT CHR 5 lt CR gt Das BASIC meldet in diesem Fehlerfall nicht elaubt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 69 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CLEAR Verwendungszweck Dieser Befehl l scht alle Variablen im SRAM Speicher In einem Programm mu dieser Befehl zu Beginn stehen sonst werden nachher unn tige Bytes f r Zeichenketten und 182 Bytes f r einen Kanal f r Ein oder Ausgabebetrieb reserviert Syntax CLEARL Ausdruck 1 Ausdruck2 Wirkungsweise CLEAR setzt alle numerischen Variablen auf Null l scht den Inhalt aller Zeichenfolgenvariablen und schlie t alle offenen Dateien Au erdem kann wahlweise die h chste Speichersdresse und der Umfang des f r BASIC verf gbaren Speichers festgelegt werden Das BASIC ordnet Speicherplatz f r Zeichenfolgen immer dynamisch zu Eine Speicher voll Fehlermeldung wird ausgegeben wenn f r BASIC kein freier Speicherbereich mehr verf gbar ist Beispiele CLEAR lt CR gt Alle Variablen und Zeichenfolgen werden gel scht CLEAR 10000 lt CR gt oder CLEAR N1 Variable N1 10000 Es werden nun 10000 Bytes f r Zeichenketten reserviert PRINT FRE X lt CR gt ergibt einen Wert der um 102 Bytes gr er da die Standardrese
18. 7 werden falsche EDIT Befehle akustisch angezeigt KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 79 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ELSE Verwendungszweck ELSE ist Teil der IF THEN ELSE oder GOTO Befehlsgruppe Syntax IF Ausdruck THEN Anweisung en J ELSE Anweisung en IF Ausdruck JGOTO Zeilennummer JELSE Anweisung en Wirkungsweise Dei Anweisung ELSE trifft eine Entscheidung hinsichtlich des Programmablaufs abh ngig vom Ergebnis das ein Ausdruck liefert Befehlsform IF Bedingung THEN oder GOTO Befehlsgruppe 1 ELSE Befehlsgruppe 2 Programmverzweigungen unter bestimmten Bedingungen sind mit dieser Befehlsgruppe m glich ebenso mehrere aufeinanderfolgende IF Befehle die durch logische Operatoren verkn pft sind Klammern sind bei der folgenden Form erforderlich IF X A B THEN sonst erfolgt die Fehlermeldung Datentypen Zahl String vermischt Beispiel 5 INPUT A B 10 IF A 2 AND B E THEN 30 ELSE 40 20 STOP 30 PRINT EINGABE RICHTIG END 40 GOTO 10 Hinweis IF THEN ELSE Anweisungen k nnen auch verschachtelt werden Ein solcher Vorgang ist nur durch die L nge der jeweiligen Zeile eingeschr nkt Das folgende Beispiel stellt eine g ltige Anweisung dar 10 IF X gt Y THEN PRINT GROESSER ALS ELSE IF
19. Advanced BASIC Befehle sollen nun n her erl utert werden Beispiel DRIVE 0 Durch Eingabe des Befehls wird der interne Laufwerkzeiger auf Laufwerk O Master vorein gestellt Alle nachfolgenden Operationen wie DIR SAVE LOAD ERASE beziehen sich fortan auf dieses Laufwerk In der Regel handelt es sich dabei um die CF Karte an IDEO Beispiel DRIVE 1 Durch Eingabe des Befehls wird der interne Laufwerkzeiger auf Laufwerk 1 Slave voreinge stellt Alle nachfolgenden Operationen wie DIR SAVE LOAD ERASE beziehen sich fortan auf dieses Laufwerk In der Regel handelt es sich dabei um die SD Karte an IDE1 oder ein SSD bzw Flash Drive Beispiel DRIVE S Durch Eingabe des Befehls werden alle aktuellen vorhandene Laufwerke angezeigt Beispiel DRIVE P Durch Eingabe des Befehls wird das aktuelle Laufwerk geparkt K pfe auf Spur 0 Beispiel DRIVE T Durch Eingabe des Befehls werden Register Fehler und Statusmeldungen zum aktuellen Laufwerk angezeigt Beispiel RESET Durch Eingabe des Befehls werden alle HDD Register r ckgesetzt bzw grundinitialisiert Beispiel DIR Durch Eingabe des Befehls wird das Disk Inhaltsverzeichnis angezeigt Es kann je Laufwerk und Verzeichnisebene bis zu 255 Dateien enthalten Nach 16 Eintr gen pausiert die DIR Ausgabe Sie kann durch bet tigen der Leertaste fortgef hrt oder durch Eingabe J N auch abgebrochen werden Die Eintr ge werden nach Dateinummer 0 FF sortiert ausgegeben Beispiel ER
20. I In diesem Beispiel werden 21 DATA Anweisungen an beliebiger Stell im Programm gelesen und ihre Werte werden nacheinander A 0 bis einschlie lich A 20 zugewiesen Ist A ein einfach genaues Feld Standartgenauigkeit wird Zeile 10 f r dieses Feld einen Speicherplatz von 84 Bytes bereitstellen also 4 Bytes mal 21 Elemente Hinweis Ein dimensioniertes Feld kann erst innerhalb des Programms neu dimensioniert werden wenn vorher eine CLEAR Anweisung durchgef hrt wurde Der kleinste Wert f r einen Index ist immer 0 Ebenso setzt die DIM Anweisung alle enthaltenen Elemente der angegebenen Felder auf einen Ausgangswert von Null KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 76 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC EE Verwendungszweck Das Argument enth lt die Eulersche Zahl e die Basis der nat rlichen Logarithmen Syntax PRINT EE lt CR gt Beispiel 10X EE 20 PRINT X RUN Anzeige 2 7182818285 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 77 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC EDIT Verwendungszweck BASIC Quell Text nachtr glich editieren EDIT zeigt eine bestimmt Zeile an und positioniert die Schreibmarke auf die erste Stelle der Zeilenn
21. Instruktionen welche mit SEPIA genutzt werden k nnen Dazu werden die Befehle bzw deren Funktion in Syntax Wirkungsweise und Beispiele untergliedert Die Instruktionen werden wie folgt beschrieben Verwendungszweck Funktion zweck einer Anweisung Syntax Vollst ndige Notation der Instruktion Wirkungsweise N tzliche Information ber die Instruktion Beschreibung welche Auswirkungen dieser Befehl w hrend seiner Ausf hrung bewirkt Beispiele Programmbeispiel wie der Befehl in einem Programm angewendet wird Hinweise Spezielle Hinweise zum Befehl KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 56 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Befehls bersicht SEPIA Standard BASIC A I R ABS INP READ AND INPUT RESTORE ASC IF RETURN AUTO INKEYS RANDOMIZE ATN INSTR REM INT RESUME B IMP RENUMBER BYE RUN K RND C KILL RND1 CHR RIGHT CLEAR L REPLACE COS LET CALL LVAR S CONT LIST STOP LOG SIN D LOG10 SGN DATA LEN SQR DIM LEFTS STRS LOCATE STRINGS E STEP EE M SPC EDIT MIDS ELSE MOD T END TAN ERL N TRACE ERR NEW TO ERR1 NEXT THEN ERROR NOT TAB EQV EXP O U EXIT OUT USING OUTBYTE F ON V FOR OR VAL FRE VARPTR FIX P FIXS PI W FIND POKE WAIT POS G PEEK X GOTO PRINT XOR GOSUB PRECISION PRIVACY H HEX KOLTER ELECTRONIC Tel 02235 76707 Fax 0
22. Pause 130 OUT amp 29 O0 REM Port auf Null zur cksetzen Mode Hinweis zur Geschwindigkeit Signal Taktfrequenz bei 20 MHz CPU mit Bus Waitstate DIP Schalter 1 ON Mode 0 150 kHz Mode 1 85 kHz Mode 2 85 kHz Verwendet man Data Bit4 und Bit5 f r Z und Z kann ber den OUT Befehl zus tzlich ein Reset f r den empfangenden Quadraturempf nger programmiert werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 45 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XPULSE Bild Drehgeber Oszillogramm Leitung BitO A und Bit1 B von LPT2 Datenport Befehl XPULSE amp 29 1000 2 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 46 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XIPEAK Einzel Impuls mit variabler Dauer erzeugen Dieser Befehl erzeugt auf einem TTL l O Port einen einzelnen Impuls mit variabler Dauer Toggle byte 01010101 zu 10101010 Somit kann beispielsweise ein Puls St rgenerator oder Trigger f r Spannungsunterbrechungen mit ext Leistungsendstufe realisiert werden Die Dauer wird als 16 Bit Zahl bergeben so dass die Impulszeit von 5us bis zu 85 2ms einstellbar ist Mode wird zur Zeit mit O bergeben und dient f r sp tere Erweiterungen
23. RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC TAB Verwendungszweck Tabulator Befehl Cursor springt auf die Tabulator Position n Syntax TAB n TAB Befehlsform TAB Position X ab linkem Rand Wirkungsweise Bei der Ausgabe eines Zeichens am Bildschirm oder auf den Drucker wird der Cursor oder Druckkopf immer vom linken Rand aus X Zeichen nach rechts versetzt bzw neu positioniert Beispiel Im Beispiel kann der zweite Befehl TAB 5 nicht ausgef hrt werden PRINT TAB 10 TAB 5 lt CR gt Anzeige d 10 Leerzeichen Hinweis Liegt die g ltige Ausgangsposition bereits hinter der Position n geht TAB zur n chsten Position n in der n chsten Zeile vor 1 ist die am weitesten links liegende Position Die am weitesten rechts liegende Position wird von der Bildschirm oder Druckerbreite vorbestimmt n mu im g ltigen Bereich zwischen 1 bis 255 liegen Steht die TAB Funktion am Ende einer Liste von Datenfeldern setzt der Cursor die Schreibmarke nicht in die n chste Zeile TAB kann nur mit den PRINT Anweisungen verwendet werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 153 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC USING Verwendungszweck USING erlaubt eine umfangreiche Formatierung von Zahlen und Texten in Tabellenform
24. Sie mit RUN 100 REM Messwert auf Kanal 1 von A D Karte einlesen 110 REM Basisadresse 90 Hex Messbereich 10 Volt 120 130 XSETADI amp 91 1 REM A D Messkanal einstellen 140 150 D XGETAD1 amp 90 REM Wandlung 16BIT Digits nach D 160 170 V D 0 0003051804379 10 000 REM Messwert 180 PRINT Volt PRINT USINGY H V Hinweise zur Hardware Die AD1 Messkarte dient zur Erfassung analoger Messwerte mit 16 Bit Aufl sung Die A D Karte wird in mehreren Genauigkeitsklassen und Geschwindigkeiten angeboten Je nach Best ckung kann die Messkarte Spannung oder Strom 0 20mA messen Dazu sind ent sprechende Strom Shunts vorgesehen welche auch als Spannungsteiler beschaltet werden k nnen Als high speed low power 16 bit A D converter dient ein Wandler vom Typ AD976 Hersteller Analog Device Diese analoge Messkarte ben tigt f r die gesamte Programmierung nur zwei Bytes im I O Adressraum Um hohe Abtastraten zu erzielen wurde das Advanced BASIC mit entspre chenden X Befehlen erweitert Die R C read convert Steuerung EOC end of conversion Abfrage sowie low und high byte Bildung werden bereits in Maschinensprache intern vor verarbeitet so dass ein fertiger 16 Bit Wert an eine Variable bergeben werden kann Speziell f r den Remote Betrieb gibt es noch eine k rzere Variante als BASIC Befehl 100 REM Messwert auf Kanal 5 von A D Karte einlesen 110 K 5 140 D XRADC K 256 amp 90
25. Zahlen wie PRINT RND Negative Argumente bestimmen den Startpunkt der Zufallszahlenfolge Die folgenden Zufallszahlensequenzen sind nach jedem BASIC Start wiederum identisch A RND 280 lt CR gt PRINT RND lt CR gt Anzeige 1 0207557995E 03 PRINT RND lt CR gt m 94715060253 PRINT RND lt CR gt u 826904723 Der Bereich ganzzahliger Zufallszahlen kann durch Angabe eines Anfangswertes AW und eines gr eren Endwertes EW begrenzt werden B INT EW 1 AW RND AW KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 137 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC RND1 Verwendungszweck Wie RND Syntax x RND1 0 Wirkungsweise Es werden die nachfolgenden Zahlen z B f r Parameter bergaben noch mit angeh ngt Beispiel RND1 0 Anzeige 72796806886 1 0 KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 138 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RIGHT Verwendungszweck F r diesen Befehl gelten die gleichen Bedingungen wie f r LEFT nur wird jetzt der rechte Teil der Zeichenkette bernommen Syntax RIGHT Zeichenkette oder Stringvariable Zeichenanzahl 0 255 Wirkungsweise Kopiert einen Teil String in einen neu
26. Zeile 100 bis Zeile 200 nach der Zeichenkette DATA gesucht Dabei ist zu beachten dass BASIC Befehle nach der Eingabe in Gro buchstaben umgesetzt sind und in Kleinbuchstaben nicht gefunden werden FIND gosub findet nichts FIND Eingabe lt CR gt Es wird das Wort Eingabe im ganzen Programm gesucht KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 93 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC GOTO Verwendungszweck Sprungbefehl zu einer neuen BASIC Zeile Unbedingte Vezweigung aus dem normalen Programmablauf zu einer bestimmten Zeilennummer im BASIC Programm Syntax GOTO Zeilennummer Wirkungsweise Der Befehl kann wie RUN zum Start eines Programmes verwendet werden wenn die Zeilennummer der ersten BASIC Zeile angegeben wird Variableninhalte werden dann nicht gel scht Es kann auch direkt zu einer beliebigen Zeilennummer gesprungen werden um dort das Programm fortzusetzen Existiert die angegebene Zeilennummer nicht ist die Folge eine Fehlermeldung Sprungziel fehlt Beispiel 100 GOTO 200 150 STOP 200 PRINT Zeile 200 Der STOP Befehl in Zeile 150 wird bergangen da von Zeile 100 direkt nach Zeile 200 gesprungen wird Hinweis IF Bedingung THEN GOTO Programmverzweigungen Then GOTO unter bestimmten Bedingungen If sind mit dieser Befehlsgruppe ebenso m gli
27. blk CTRL W x 24 18 CAN cancel CTRL X x 25 19 EM end of medium CTRL Y x 26 1A SUB substitute CTRL Z x 27 1B ESC escape CTRL x x 28 1C FS file separator CTRL 29 1D GS group separator CTRL 30 1E RS record separator CTRL 31 1F US unit separator CTRL _ ESC gefolgt von weiteren Steuerzeichen dient f r formatierte Print Cursor u a Bildschirmausgaben Die ersten 32 Steuerzeichen sind nicht druckend d h sie dienen bei der Ausgabe nur zu Steuerzwecken beispielsweise zur Ubertragung von X Y Koodrinaten bei der Grafikerzeugung oder bei der Cursorsteuerung um Zeichen an einer bestimmten Stelle auf dem Display zu positionieren bzw darzustellen Die Kodierung von ASCIl Zeichen erfolgt bei SPEIA mit 7 bit Das 8te bit wird intern f r zus tzliche Aufgaben und Steuersequenzen verwendet Die Zuordnung der ersten 0 127 Zeichen bzw 128 Bitkombinationen ist gem ASCII American Standard Code for Information Interchange entsprechend der ASCII Code Tabelle festgelegt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 52 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Der Tastatur Prozessor bersicht der vorprogrammierten F Tastenbelegung K rzel Befehl F1 LIST Die beiden F Tasten F1 und F2 werden mit CR amp LF F2 RUN abgeschlossen so dass bei bet tigen der Taste der F3 LOA
28. das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Daten von COM2 empfangen und als Echo zuruecksenden 120 Z XCIN 2 REM Zeichen von COM2 empfangen 130 IF Z gt 0 THEN PRINT CHRS Z REM auf Konsole 140 XCOUT 2 Z REM auf COM2 zur ck senden 150 IF Z 13 THEN PRINT REM LF bei CR mit ausgeben 160 GOTO 120 REM Loop Endlosschleife M chte man ein Zeichen direkt von der Tastatur einlesen ohne in einer Endlosschleife zu verharren bsp INKEY kann der Befehl var XGETKEY timeout angewendet werden Das ASCII Zeichen wird mit 8 bit dezimal an die Variable var bergeben Der Timeout Wert kann dazu von 0 bis 65535 eingestellt werden Wird der Timeout zu klein gew hlt kann das zu lesende Zeichen verpasst werden ist der Wert zu gro eingestellt sind lange Wartezeiten bei der Eingabe an der Tastatur die Folge Ist der Empfangspuffer des UART leer erfolgt die Ausgabe mit dem Wert Null Nach Ablauf von Timeout Faktor ca 10 x us kann das BASIC Programm anschlie end fortgef hrt werden Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 A XGETKEY 20000 REM lese Zeichen nach A 110 IF A gt 0 THEN PRINT CHR A 120 IF A 13 THEN PRINT REM auf CR folgt LF 125 130 IF A gt 0 THEN XCOUT 2 A REM auf COM 2 mitschreiben 135 140 GOTO 100 A In Zeile 110 wird das Zeichen auf COM1 Konsole ausgegeben In Zeile 130 wird das gleiche Zeichen auf COM 2 gesendet
29. der Taste W werden diese Initialisierungen bergangen so dass ein noch vorhandenes BASIC Programm im SRAM Speicher nutzbar bleibt Mit dem LIST Befehl kann man im BASIC Modus dieses Progamm dann einsehen und bearbeiten Somit besteht die u a M glichkeit auch nach einem Hardware RESET bei nicht unterbrochener Spannungsversorgung ein BASIC Prgramm im Speicher weiter nutzen zu k nnen Die Taste R startet den BASIC Interpreter ohne Zeilennummer und R ckmeldungen so dass hierbei eine einfache Remote Kommunikation auf Basis der BASIC Befehle ber die COM Konsolenschnittstelle stattfinden kann Da in diesem Modus ebenfalls alle BASIC Befehle verwendet werden k nnen steht dem Nutzer eine Vielfalt von Einsatzm glichkeiten zur Ansteuerung der Hardware zur Verf gung Alle I O Leitungen k nnen in dieser Betriebs art ber INP und OUT oder den X Advanced Befehlen direkt angesteuert werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 9 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC Mein erstes Programm Das BASIC meldet sich zun chst mit einer Abfrage zur Speichergrenze da man beipielsweise sp ter noch Maschinenprogramme in den oberen RAM Speicher hinterlegen kann Dr cken Sie zun chst nach Speichergrenze die Return Enter Taste bis folgende Meldung auf dem Monitor erscheint
30. die Taste K f r Kaltstart w hlen eingeben Ausf hrliche Erl uterungen finden Sie dazu auf der n chsten Seite Taste R versetzt das System unmittelbar in den Remote I O Betrieb Taste C gilt nur f r speziellen CP M Betrieb in Verbindung mit MEM Karte und Bootloader KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 8 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Booten von SEPIA nach einem RESET Das System l sst sich grunds tzlich in zwei unterschiedlichen Betriebszust nden anwenden Host oder Remote I O Mode Im Host Mode k nnen zus tzliche Erweiterungen wie IDE Ethernet VGA PS 2 MEM sowie RTC mit WatchDog oder weitere COM Schnittstellen erg nzt werden Im Remote I O Betrieb sind diese Erweiterungen nicht zwingend notwendig da alle Steuerbefehle von einem externen Rechner i d R PC ber eine COM Schnittstelle erfolgen Die Kommunikation der Steuerbefehle erfolgt in Klartext mittels Text String so dass andere Laboranwendungen oder aus Hochsprachen heraus leichten Zugriff auf SEPIA erhalten Alle Befehle sind dazu als Direkt Befehl anwendbar F r eigenst ndige Applikatio nen verwendet das System im Host Betrieb neben dem BIOS ein kleines OS Betriebssy stem mit Debugger Monitor f r Maschinensprache sowie ein textbasierter Advanced BASIC Interpreter f r die Automation Di
31. gescrollt oder mit N abgebrochen weiter Taste BASIC verfuegbar Fertig Drive 0 akt Verzeichnis 000 Datei Nr Name Zeit Datum Groesse OT AUTO n N ee ee e o eles ses 23 2 1502 02 TESI esse ooe rennen 1122559 03 CRT TES Po oeoo oe ooer seen ee ne 12 14 29 04 Tonleiter BAS oecon eee ness 20 40 30 OSSTONLELTERR BAS ee 20 46 03 06 AUTOBAS BEEP aoe oee me aeee ass 20 54 55 07 AUTOBAS en ae ae a e e eneo e E o E 23 32 43 08 16BIT R W I O ee 2112 25 0O STEP are 13 33 58 I0 EXIT ee see e E es 13 53 18 11 XPORE XPEER 2 2 020s00000 0 21 42 19 T2 aan A Or 20 54 44 13 XSCAGI ee een ee een eea a ora 21 41 27 14 OUTBYTE oee eeo e e o o o e ehe 14 58 52 FE TEST AUTOBAS 2 0 0 0 0 00 0a elece ee 1122221673551 02 06 2012 25 12 2011 25 12 2011 Zune 127821015 ZU 127210 24 05 2012 02 06 2012 03 06 2012 03 06 2012 03 06 2012 03 06 2012 03 06 2012 03 06 2012 04 06 2012 24 12 2011 3628 0072 0103 0175 0175 0072 3628 0194 0071 0073 0283 0073 0217 0052 0072 Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Bytes Kurze Erl uterung Die Anzeige Drive 0 bedeutet das hier das LaufwerkO an IDE O ausgew hlt wurde Die Anzeige Verzeichnisebene 000 bedeutet das die Directory Ausgaben dem ersten Verzeichnis root zuzuordnen sind Je nach Medium siehe CHS Tabelle Cylinder High k nnen bis zu 255 Verzeichniseben
32. kann durch einen Punkt ersetzt werden Die Leertaste lt SPACE gt stoppt die Ausgabe mit nochmaligem Dr cken wird das Listing fortgesetzt mit lt CTRL E gt abgebrochen Meldung Abbruch Beispiele LIST lt CR gt Das Programm wird von Anfang an am Bildschirm aufgezeigt LIST 100 lt CR gt Die Programmzeile 100 wird angezeigt LIST O ist m glich wenn die Zeile 0 vorhanden ist LIST 130 250 lt CR gt Ausgabe ab Zeilennummer 130 bis 250 einschlie lich LIST 200 lt CR gt Ausgabe ab der ersten Zeile bis zur Zeile 200 LIST 1000 lt CR gt Ausgabe ab Zeile 1000 bis zum Programmende LIST 200 lt CR gt oder LIST lt CR gt Ausgabe ab der zuletzt bearbeiteten Zeile bis Zeile 200 oder bis zum Programmende Hinweis Bei der Programmierung d rfen nur Zeilennummern von 0 bis 65529 verwendet werden Die Ausgabe mit LIST 2 entspricht weitl ufig dem LLIST Befehl KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 107 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LOG Verwendungszweck LOG berechnet den nat rlichen Logarithmus eines Arguments das gr er ist als NULL Syntax v LOG x LOG Es wird der nat rliche Logarithmus Logarithmus zur Basis e berechnet Wirkungsweise Der nat rliche Logarithmus ist nur f r positive Zahlen verwendbar Bei x 0 NULL oder negativ w
33. messen 24 DA1 analoge Spannungen erzeugen 25 CNT Counter 24 Bit Z hler auslesen 26 E32 32x Optokoppler erfassen 27 A32 32x Optokoppler programmieren 28 Spezielles Die AUTOBAS Startdatei 29 VGA Textfarben programmieren 30 IDE Datentr ger Befehle DIR LOAD SAVE 31 DRIVE RESET RENAME ERASE XROOT 32 Sonderfunktionen 16 Bit I O Adresse ansteuern 34 Debugger Funktionen 35 Hilfe zum Debugger einzelne Menuefunktionen 37 IDE Routinen im Debug Untermenue S 38 ROM Adressen Call 40 VGA Terminal Status melden 41 VGA Grafik mit NET Karte 42 EMail ber XPort senden 44 XPULSE PHIO PHIYO Geber Pattern erzeugen 45 XIPEAK Einzel Impuls ab 5 us erzeugen 47 XIRQON amp XIRQOFF Interrupt Generator 49 Anhang Weitere Programmierbeispiele 50 ASCII Tabelle 51 F Tasten Belegung der PS 2 Tastatur 53 Datenbl tter amp Fotos Web Links 54 Funktion zur Zeit noch in Erprobung KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 2 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Einf hrung In der Grundausstattung eines SEPIA Systems werden neben BIOS Debugger und Monitor ein kl OS Betriebssystem sowie ein textbasierender RT Interpreter im EPROM mitgeliefert Damit kann der Anwender SEPIA sofort starten und f r seine Applikationen programmieren Folgende Punkte waren uns bei der Entwicklung ganz besonders wi
34. n s ss lt gt 0 8220 70 2B 54 04 40 00 70 00 14 04 40 00 00 7F 00 1E p T p 8230 0 0 1E 09 00 FF FE 00 00 00 00 00 00 00 00 00 One 8240 00 00 00 00 8E 00 00 3B 00 00 00 00 00 00 00 08 e aa 8250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Oper 8260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 sssesssss ess 8270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ss ssses s weiter Taste KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 39 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Interessante ROM CALLs Es besteht die M glichkeit mittels CALL Befehl ROM Routinen direkt aus dem BASIC heraus zu starten In der folgenden Tabelle sind einige n tzliche Sprungadressen aufgelistet die dem Programmierer der Erfahrung mit Maschinensprache hat Arbeit abnehmen k nnen Die Eingabe hinter dem CALL Befehl erfolgt in Hex als 8 oder 16 Bit Adresse Beispiel in BASIC CALL amp 0000 Adresse Funktionsaufruf 0000h Systemstart 0038h Interrupt Register auslesen ISRO aufrufen 0066h NMI aufrufen erzeugt Neustart mit Kaltstart auf 0000h 0070h CPU Temperatur auf COM1 senden 0074h Beep Ton ausgeben 0078h Uhrzeit auf COM1 senden 007Bh Datum auf COM1 senden 0080h Bildschirm l schen und Debugger Menue starten 0084h IDE Medium check Master auf IDEO 0088h BASI
35. pfung OR logische ODER Verkn pfung XOR logische Exklusiv Oder Verkn pfung EQV logische Gleichwertigkeit IMP logische Ungleichheit Implizierung Bei Operatoren in einer Zeile nimmt die Priorit t von links nach rechts ab Alle logische Operationen setzen ihre Operatoren in 16 Bit Ganzzahlwerte um Dabei ist der Bereich von 0 65535 FFFF oder von 32768 bis 32767 erlaubt sonst Fehlermeldung nicht erlaubt Mathematische Standard Funktionen SIN X Sinus Argument im Bogenma COS X Cosinus Argument im Bogenma TAN X Tangens Argument im Bogenma ATN X Arcus Tangens im Bogenma SQR X Quadratwurzel EXP X Exponentialfunktion LOG X nat rlicher Logarithmus ABS X Absolutbetrag INT X Ganzzahl lt x SGN X Vorzeichen 1 0 oder 1 RND 0 Pseudo Zufallszahl 0 lt y lt 1 Die Klammer nach dem BASIC Befehl dient als Hinweis da immer ein Ausdruck in Klammern folgen mu der auch durch eine numerische Variable oder durch einen arithmetischen Ausdruck ersetzt sein kann Der berech nete Wert kann einer nummerischen Variablen zugewiesen werden Bei Winkelfunktionen mu der Winkel in Bogenma rad angegeben werden Die Umrechnung erfolgt durch Division des Winkelwertes Grad Altgrad mit 180 und Multiplikation mit der Zahl Pi 1 Grad entspricht 0 017453 rad Die Variablen EE und PI enthalten fest gespeichert die Zahlenwerte f r die Eulersche Zahl e und die Kreiszahl Pi Wird eine Division mit diesem BASI
36. 0 C INP amp 1A 280 IF C gt 0 THEN GOTO 140 REM bei ERROR ODER UEBERLAUF wiederholen 300 TY A B 256 REM 16 bit Wert ber zwei 8 bit Register bilden 320 TY TY 68 REM Steilheit der Temperaturkurve Divisor 340 TY TY 192 REM Grund Offset zur Kalibration 350 4 360 PRINT USING CPU Temp TY 380 GOTO 140 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 12 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC Quittungton ausgeben Auf der CPU Karte befindet sich ein kl Piezo Lautsprecher um beispielsweise einen Quittungston zu erzeugen Neben dem typischen BELL Befehl kann die Tonh he und Dauer durch folgenden Advanced Befehl stattfinden XPBELL 200 100 In diesem Beispiel wurde die Tonh he 200 und Tondauer 100 vorgegeben Die variablen Werte werden als Byte dezimal bergeben 0 255 Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Tonausgabe programmieren 110 120 130 140 150 160 170 180 190 XPBELL XPBELL XPBELL XPBELL XPBELL XPBELL XPBELL XPBELL XPBELL 50 250 80 250 100 250 120 250 140 250 160 250 180 250 200 250 255 255 KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 13 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation d
37. 0 END 140 PRINT Nix da 150 END 160 1000A A 1 1100 RETURN 140 RUN Nix da In Beispiel 2 wird die Zeile 120 nie erreicht Stattdessen wird mit RETURN 140 das Programm dort weiter gef hrt So kann ber GOSUB Ebenen hinweg gesprungen werden Ebenso k nnen auch noch mehrere Sprungziele mit angegeben werden die in ihrer Reihenfolge nach und nach Zeilenweise abgearbeitet werden sollen Beispiel 1100 RETURN 200 300 400 500 KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 131 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RANDOMIZE Verwendungszweck Der Befehl RANDOMIZE ergibt einen zuf lligen Startpunkt der Pseudo Zufallszahlenfolge aus dem CPU Refresh Register Syntax RANDOMIZE Wirkungsweise bergabe des R Registers als Startzahl f r RND Anweisung Beispiel 1 10 RANDOMIZE 20 X RND 1 30 PRINT X 40 GOTO 10 RUN Es folgen zuf llige Zahlenreihen zwischen 0 und 1 Beispiel 2 Der Bereich ganzzahliger Zufallszahlen kann durch Angabe eines Anfangswertes AW und eines gr eren Endwertes EW begrenzt werden B INT EW 1 AW RND AW 10 A RND 1 20 B INT A 10 30 PRINT B 40 GOTO 10 RUN Es folgen zuf llige Ganzzahlenreihen zwischen 0 und 10 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http
38. 2235 72048 e mail service pci card com Internet http www kolter de Seite 57 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC BASIC Fehlermeldungen nach Fehlernummer sortiert 1 NEXT ohne FOR 3 RETURN ohne GOSUB 5 nicht erlaubt 7 kein Speicherplatz 9 DIM Befehl falsch oder fehlt 11 durch 0 teilen 13 Datentypen Zahl String vermischt 15 String zu lang 17 CONT geht nicht 19 Dateiende falsch 21 BASIC verf gbar 23 Zeilen Nr fehlt 25 MATRIX nicht definiert 27 RESUME ohne ERROR 29 Extension falsch 31 Datei nicht gefunden 33 Datei geschlossen 35 Dateiname falsch 37 INPUT nicht offen 39 Wahlzugriff geht nicht 41 keine Bin reinheit 43 RECORD Nr falsch 45 EXIT ohne FOR 47 nicht vorhanden 49 Fehler unbekannt Befehlsform ERROR Fehlernummer 2 Syntaxfehler 4 keine Daten 6 Ergebnis zu gross 8 Sprungziel fehlt 10 DIM Befehl doppelt 12 kein Direktbefehl 14 kein Stringplatz 16 Ausdruck zu schwierig 18 USER FN CALL fehlt 20 Zeilen Nr falsch 22 FNRETURN ohne FN CALL 24 RECORD zu lang 26 Kanal falsch 28 Inhaltsverzeichnis voll 30 DISK voll 32 Datei existiert 34 OPEN Modus falsch 36 OPTION falsch 38 OUTPUT nicht offen 40 Datei nicht offen 42 kein Dateiplatz 44 DISK gesch tzt 46 nicht verf gbar 48 kein internes Format 50 Fehler unbekannt Wie bei den Direktbefehlen kann mit dem Befehl ERROR 0 50 eine Fehlermeldung direkt au
39. 240 260 XDELAY 2000 280 XOUTWD amp FFB0 1 REM berschneidung mit BOh 300 XDELAY 2000 320 Y XINPWD amp FFBO REM Lese den Port zur ck nach Y 340 PRINT Register Y A ACHTUNG Verwenden Sie diese Befehle sehr vorsichtig Erweiterungskarten besitzen i d R keine volle Adressdekodierung so dass es bei falscher Programmierung zu berschneidungen mit Datenkollision kommen kann Die Anwendung dieser X Befehle ist erst f r Adressen ab EOh vorgesehen da hier im Normalfall keine Erweiterungskarten mehr installiert sind Zu beachten gilt weiterhin dass der SEPIA Systembus im full speed mode mit 20 MHz betrieben wird Langsame Port l O Bausteine k nnen in diesem Fall nur mittels Wait State Zyklen an diese hohe Bus Geschwindigkeit manuell angepasst werden Dazu bietet der SEPIA Bus Contoller ispLS11032 mittels DIP Schalter mehrere Einstellm glichkeiten zur IORQ Verz gerung gt siehe techn Doku SEPIA Bus KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 34 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Sonderfunktionen Debugger lt gt BASIC Es besteht die M glichkeit zwischen Debugger und BASIC Mode nach belieben hin und her zu schalten Ben tigt man beispielsweise den Debugger zur Einsicht von aktuellen RAM Speicherdaten so kann der BASIC Mode durch den Befehl Bye verlassen w
40. 30 PRINT A L nge LEN A 100 REM IDE Medien scannen mit DRIVE S Befehl 110 CLS 120 LOCATE 2 2 130 DRIVE S 100 REM auf Taste warten 110 XWAITKEY 120 PRINT o k 100 REM ASCII Zeichencode zeigen 110 CLS 120 LOCATE 2 2 130 B ASC INKEYS S 140 PRINT ZEICHEN CHR B DEZ B 150 IF B 5 THEN STOP ELSE GOTO 130 100 INPUT GEBEN SIE EINE ZAHL EIN A 110 LET B A A 120 PRINT DAS QUADRAT VON A IST B 100 INPUT GEBEN SIE EINE POSITIVE ZAHL EIN A 110 IF A gt 0 THEN 140 120 PRINT DIE ZAHL A IST NEGATIV 130 GOTO 100 140 PRINT DIE WURZEL VON A IST SOR A 100 INPUT LAENGE DER 1 KATHETE A 110 INPUT LAENGE DER 2 KATHETE B 120 C SOR A A B B 130 PRINT LAENGE DER HYPOTENUSE C KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 50 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Steuerzeichen It ASCII Tabelle 00 NUL Null character Nullzeichen 01 SOH Start of heading Anfang Dokumentkopf 02 STX Start of text Textanfang 03 ETX End of text Textende 04 EOT End of transmission Ende der bertragung 05 ENQ Enquiry Anfrage 06 ACK Acknowledgment Best tigung 07 BEL Audible bell Tonsignal 08 BS Backspace R ckschritt 09 HT Horizontal tab Horizonaltabulator 10 LF Line feed Zeilenvorschub 11
41. 5 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 14 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Uhrzeit und Datum Programmbeispiel wenn die RTC Register direkt ausgelesen werden sollen 100 REM Uhr und Datum 120 REM RTC nur lesen 140 REM Setze HOLD danach Read 1 50 160 OUT amp 3D 1 REM HOLD 180 REM kann entfallen da BUSY immer da 200 WAIT amp 3D 2 0 REM Maske 2 0010 Bit 1 210 220 A INP amp 30 230 B INP amp 31 240 C INP amp 32 250 D INP amp 33 260 E INP amp 34 270 F INP amp 35 280 G INP amp 36 290 H INP amp 37 300 I INP amp 38 310 J INP amp 39 320 K INP amp 3A 330 L INP amp 3B 340 M INP amp 3C 345 350 A1 INP amp 30 IF A lt gt Al THEN GOTO 210 360 B1 INP amp 31 IF B lt gt B1 THEN GOTO 210 370 C1 INP amp 32 IF C lt gt C1 THEN GOTO 210 380 D1 INP amp 33 IF D lt gt D1 THEN GOTO 210 390 El INP amp 34 IF E lt gt El THEN GOTO 210 400 F1 INP amp 35 IF F lt gt F1 THEN GOTO 210 410 G1 INP amp 36 IF G lt gt G1 THEN GOTO 210 420 H1 INP amp 37 IF H lt gt H1 THEN GOTO 210 430 Il INP amp 38 IF I lt gt Il THEN GOTO 210 440 J1 INP amp 39 IF J lt gt J1 THEN GOTO 210 450 K1 INP amp 3A IF K lt gt K1 THEN GOTO 210 460 L1 INP amp 3B
42. 535 Sprachen Ausgabemeldungen deutsch BASIC Programmierung englisch Unterst tzte ASCII Zeichen US Zeichensatz ohne Umlaute US DE Tastatur Sonstiges VGA ASCII Zeichenzatz 718 Bit 0 127 ohne Umlaute VGA Zeichen p Sekunde 5000 bei 115 200 kBaud Schleifenbefehl p Sekunde 4500 0 100000 For Next Schleife bei 20 MHz KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 4 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC In SEPIA verwendete Standard Befehle A ABS AND ASC AUTO ATN B BYE C CHR CLEAR COS CALL CONT D DATA DIM EB EE EDIT ELSE END ERL ERR ERR1 ERROR EQV EXP EXIT FOR FRE FIX FIX FIND OUT OUTBYTE ON OR PI POKE POS PEEK PRINT PRECISION PRIVACY READ RESTORE RETURN RANDOMIZE REM RESUME RENUMBER RUN RND RND1 RIGHT REPLACE STOP SIN SGN SQR STR STRING STEP SPC TAN TRACE TO THEN TAB USING VAL VARPTR WAIT G GOTO GOSUB H HEX I INP INPUT IF INKEY INSTR INT IMP K KILL L LET LVAR LIST LOG LOG10 LEN LEFT LOCATE M MID MOD N NEW NEXT NOT O P R X z3 lt GHU XOR Eine ausf hrliche Erl uterung zu den hier verwendeten Befehlen finden Sie im Kapitel 2 sowie im HEBAS Benutzerhandbuch Da HEBAS modular strukt
43. 6 270 LOADGO amp 04 280 LOADGO amp 15 290 LOADGO amp 17 REM Starte Dateinummer REM Starte Dateinummer REM Starte Dateinummer REM Starte Dateinummer Anmerkung Die Dateien amp 06 amp 04 amp 15 und amp 17 m ssen auf dem Datentr ger vorhanden sein und jeweils ein startf higes BASIC Programm beinhalten Datei Verzeichnis ausgeben Nutzen Sie den DIR Befehl um das gesamte Directory des Datentr gers anzuzeigen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 19 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC MEM Segmentadressierung und externe Speicherverwaltung Damit das SEPIA BASIC auf den erweiterten Speicher zugreifen kann wurde zus tzlich eine kleine MMU in das CPLD integriert Sie erm glicht eine Segmentadressierung mit 16k Pages zu je vier Bl cken pro 64k Segment Die Speicherverwaltung wird ber die I O Adresse 0000h gesteuert Hier wurden nun neben den Adressleitungen A16 A19 und BANKEN ein PG0 Bit und PG1 Bit f r das Mapping erweitert welche vier 16k Pages je nach Bedarf um schaltet Der Grund f r diese Ma nahme war dass man gr ere Datenmengen z B Messdaten nicht in das eigene BASIC RAM ablegt sondern in einen Schattenspeicher der genug Platz bietet Damit der Anwender sich nicht um die Umschaltung der einzelnen Pages k mmern muss wurden im Advanced BASIC w
44. 7 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 98 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC IF Verwendungszweck IF ist ein Entscheidungsbefehl welcher Bedingungen mit einander vergleicht IF ver ndert entsprechend den weiteren Programmablauf abh ngig vom Ergebnis wahr oder nicht wahr Syntax IF true THEN ELSE GOTO Befehlsform IF Bedingung THEN oder GOTO Befehlsgruppe 1 ELSE Befehlsgruppe 2 Wirkungsweise Mit der IF THEN ELSE Anweisung k nnen mehrere Bedingungen formuliert werden Ist ein Ergebins wahr IF nummerischer Ausdruck nicht NULL ist die Bedingung erf llt so dass THEN weitere Zuweisungen vornehmen oder zu anderen Programmabschnitten mit GOTO springen kann Bei Nichterf llung kann mit ELSE weiter verzweigt werden Beispiel IF THEN GOTO ELSE Programmverzweigungen unter bestimmten Bedingungen sind mit dieser Befehlsgruppe m glich ebenso mehrere aufeinander folgende IF Befehle die durch logische Operatoren verkn pft sind Die Klammern sind bei der folgenden Frageform erforderlich IF X A B THEN sonst erfolgt die Fehlermeldung Datentypen Zahl String vermischt 10 INPUT A B 20 IF A 2 AND B E THEN 30 ELSE 40 25 STOP 30 PRINT EINGABE RICHTIG END 40 GOTO 10 Hinweis Einfach bersetzt kann man IF THEN ELSE auch mit folgenden Worte
45. 8 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 I 92 93 94 95 96 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 1 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 124 125 126 127 DEL KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 51 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CTRL ASCII character table Dec Hex ASCII Function Key SEPIA BASIC CP M 0 00 NUL null CTRL 1 01 SOH start of heading CTRL A x 5 x 2 02 STX start of text CTRL B S xX 3 03 ETX end of text CTRL C x any oE X 4 04 EOT end of transmission CTRL D nE X 5 05 ENQ enquiry CTRL E x SS x 6 06 ACK acknowledge CTRL F Sa X 7 07 BEL bell CTRL G x x 8 08 BS backspace CTRL H X 9 09 HT horizontal tab CTRL I x 10 OA LF line feed CTRL J x 11 0B VT vertical tab CTRL K x 12 0C FF form feed CTRL L x 13 0D CR carriage return CTRL M x 14 0E so shift out CTRLN x 15 OF SI shift in CTRLO x 16 10 DLE data link escape CTRLP x x 17 11 DC1 device control 1 CTRL Q x 18 12 DC2 device control 2 CTRL R x 19 13 DC3 device control 3 CTRLS x 20 14 DC4A device control 4 CTRLT x 21 15 NAK negative acknowledge CTRL U x 22 16 SYN synchronous idle CTRL V x 23 17 ETB end of transmission
46. AIT Schleife kann entweder CTRL E eingegeben oder aber das System per Hardware RESET zur ckgesetzt werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 157 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XOR Verwendungszweck Operator Logische Exklusiv Oder Verkn pfung Syntax n1 XOR n2 Wirkungsweise XOR steht f r exklusives OR Wenn jedoch beide n Vergleichswerte 1 sind wird die Ausgabe r ckgesetzt Ergebnis 0 Beispiel 10A 1 20B 1 30C AXORB 40 PRINT C RUN Anzeige 0 So wie bei OR setzt der XOR Operator im Ergebnis das Bit wenn eines der beiden Bits in N1 und N2 gesetzt ist Sind jedoch beide N Bits gesetzt oder beide N Bits NULL wird das Bit im Ergebnis nicht gesetzt Hinweis XOR wird bei Vergleichen angewendet wenn eine Aussage erf llt sein muss jedoch nicht beide Bedingungen erf llt sein d rfen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 158 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC X Befehle siehe Advanced BASIC in Kapitel 1 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 159 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch lei
47. ASE Durch Eingabe des Befehls wird nach der Dateinummer gefragt welche anschlie end nach J N Abfrage Best tigung gel scht werden soll Die nun freie Dateinummer kann anschlie Bend mit einem neuen BASIC Program berschrieben werden oder frei bleiben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 31 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC HDD DISK Befehle bei Verwendung der IDE Karte 2 Fortsetzung Beispiel LOAD Durch Eingabe des Befehls wird zun chst nach einer Dateinummer 0 FF gefragt Das Programm mit der angegebenen Dateinummer wird nach Best tigung in den RAM Seicher geladen Ein erfolgreicher Load wird nach bertragung durch einen kurzen Quittungston signalisiert Anschlie end kann man mit List das Programm sichten ggf drucken nachberabeiten oder mit RUN starten Beispiel RENAME Durch Eingabe des Befehls wird zun chst die Dateinummer eingegeben welche einen neuen Dateinamen erhalten soll Im zweiten Abschnitt wird der Dateiname berschrieben und abgespeichert Alle Eingaben sind dialog gef hrt Der Dateiname kann alle ASCII Zeichen 32 127 dez enthalten und ist bis zu 32 Zeichen lang Beispiel XROOT x Durch Eingabe des Befehls wird der Zeiger f r die Verzeichnisebene vorbelegt mit der anschlie end alle Dateioperationen durchgef hrt werden Abh
48. C Normales Beispiel zur Temperaturausgabe 100 REM CPU Temperatur ausgeben 110 CLS 120 LOCATE 10 5 130 PRINT CPU Temperatur XGETEMP 140 PRINT 150 XDELAY 10000 160 GOTO 120 RUN Hinweis zum Programm Der Befehl XDELAY arg lt 65535 verz gert den Programmablauf mit einer Variablen zwischen 0 und 65535 W hrend XDELAY ausgef hrt wird ist die Tastenkombination mit CTRL E wirkungslos da die Maschinenroutine in einer geschlossenen Schleife DJNZ Loop ausgef hrt wird bis der Z hlerstand erreicht ist Die Variable wurde nur 16 Bit breit ausge legt damit keine unendlichen Verz gerungen programmiert werden k nnen Ben tigt man dennoch l ngere Zeiten kann der Befehl mehrfach hintereinander angewendet werden Bei einem 20 MHz System liegt die XDELAY Verz gerung bei dem Wert 50000 bei etwa 10 Sekunden 5000 bei etwa 1 Sekunde 1000 bei etwa 200 ms 100 bei etwa 20 ms 10 bei etwa 2 ms Ausf hrliches Beispiel CPU Temperatur ber direkte I O Registerabfrage manuell mit BASIC berechnen 100 REM TMPO4 Temperatursensor Messbereich 40 120 Grad 110 REM Kalibrierte Temperaturkurve 120 140 OUT amp 18 8 4 REM RESET internal two 16 bit counter 160 OUT amp 18 2 1 REM enable counter single shot meas 180 OUT amp 18 0 REM get counts in 2 register from sensor 200 XDELAY 500 REM wait gt 50 ms 220 240 A INP amp 18 REM INP Reihenfolge nicht veraendern 260 B INP amp 19 27
49. C Befehl durchgef hrt so entf llt die Verwendung des INT Befehls wenn ein ganzzahliges Ergebnis ben tigt wird Beispiel PRINT 5DIV 3 lt CR gt Anzeige 1 Der Befehl RANDOMIZE ergibt einen zuf lligen Startpunkt der Pseudo Zufallszahlenfolge aus dem R Register RND Wird als Argument der Wert Null angegeben wird erstmalig eine beliebige Zahl angezeigt und dann wiederholt Beispiel PRINT RND 0 lt CR gt Anzeige z B 5019531548 Werte gr er Null entsprechen dem RND Befehl ohne Argument PRINT RND 1 ergibt die selben Zahlen wie PRINT RND Negative Argumente bestimmen den Startpunkt der Zufallszahlenfolge KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 59 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Variablen Variablen sind in der Mathematik weit verbreitet und dienen mei t als symbolische Platzhalter numerischer Inhalte Das Standard BASIC verwendet hier nur globale Variablen Diese werden in der Regel nicht deklariert sondern sind direkt bei Verwendung durch berladen verf gbar Der Befehl LET weist einen Wert einer Variablen regul r als Ausdruck zu Ein Ausdruck kann eine Konstante eine andere Variable oder ein zuvor berechnetes Zwischenergebnis sein Ein einfaches BASIC Beispiel 10 LETA 1 05 20 LET B 3 30 30 C A B 50 PRINT C Run Ausgabe 4 35 Vorsicht ist jedoch bei
50. C Programm starten wenn im SRAM vorhanden 00FFh CPU Halt ausl sen gt gt gt Alarm Relais testen rote LED auf CLK Karte weitere folgen sp ter KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 40 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung anced BASIC Status von Konsole auf VGA Monitor ausgeben Um eine Statusmeldung der Konsolenverbindung ein oder auszublenden wurden zwei spezielle Direktbefehle in das Advanced BASIC f r die VGA Konsole eingebunden XSTSON XSTSOFF Mit Eingabe des Befehls XSTSON wird die Meldung in einem reservierten Ausgabebereich des unteren Bildschirms erzeugt Alle BASIC Ein Ausgaben k nnen weiterhin gescollt werden unabh ngig der Statusmeldungen Mit XSTSOFF wird die Meldung wieder gel scht Ein CLS Befehl hat die gleiche Wirkung List 100 REM hohe MEM Adresse anCALLen TLORCES 120 130 XSEG 7 140 XPOKE amp 0010 201 REM schreibe RET Befehl nach 70010h 150 160 XSCALL amp 0010 7 REM springe Adresse 70010h an Fertig XSTSON g y KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 41 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Grafik Befehle bei Verwendung der NET Karte mit VGA Ausgang Auf den ersten Seite
51. CTRL E gt beendet die automatische Zeichennummerierung BASIC kehrt wieder zur urspr nglichen Befehlsebene zur ck Wird AUTO nachher mit AUTO Punkt eingeben wieder begonnen so werden die Zeichennummern beginnend mit der letzten Nummer weitergef hrt wobei die Differenz wieder angegeben werden kann z B AUTO 20 bsp f r Differenz 20 Beispiel AUTO 100 50 Generiert die Zeilennummer 100 150 200 usw AUTO Generiert die Zeilennummer 10 20 30 40 usw KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 65 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC BEEP Verwendungszweck Erzeugen eines kurzen Quittungs Ton auf der CPU Karte Syntax BEEP lt CR gt Wirkungsweise Bei BEEP erzeugt eine kleine Unterroutine auf dem 8255 Port ein Rechteck Signal Beispiel 10 REM Test 20 BEEP RUN Bei Erreichen der Zeile 20 wird ein kurzer Audio Ton erzeugt Die Ausgabefrequenz und Dauer ist abh ngig von CPU Takt und eingestellten Waitstates Mit XPBELL n n k nnen Frequenz und Dauer hingegen variiert werden Siehe Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 66 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC BYE Verwendungszweck Verlas
52. D Befehl ohne RETURN unmittelbar ausgef hrt wird F4 SAVE F5 Renumber 100 20 F6 PRINT FRE X F7 LOADGO AN F8 DIR f r CP M reserviert erzeugt Direktory F9 USER 0 f r CP M reserviert schaltet auf Haupt User 0 um F10 STAT DSK f r CP M reserviert Disk Statistik ausgeben F11 STAT VAL f r CP M reserviert Disk Statistik ausgeben F12 RESET f r CP M reserviert ruft Diensprogramm RESET COM auf Shift F1 XSTSON schaltet Terminal Status Parameter in Zeile 37 40 EIN Shift F2 XSTSOFF schaltet Terminal Status Parameter in Zeile 37 40 AUS bei CP M ber Dienstprogramme Falls eine PS 2 Tastatur an der NET Karte betrieben wird welche eine Windows Menue Taste besitzt kann hiermit das Advanced BASIC unmittelbar mir Bye verlassen werden Anschlie end wird das Debugger Menue f r weitere Eingaben aufgerufen Die Druck Taste leitet ein komplettes BASIC Listing falls im Speicher vorhanden auf einen angeschlossenen Drucker an LPT1 um Der manuelle Befehl lautet dazu LIST 2 Die Rollen Taste f hrt ein CTRL R aus Hiermit werden bisherige Eingaben aus dem Zeilen Buffer kopiert und ein weiteres mal zur Ausgabe wiederholt Die Pause Unterbr Taste kann w hrend eines Listings die Ausgabe auf dem Monitor an der aktuellen Zeilennummer einfrieren und bei wiederholter Bet tigung das Listing fortf hren Sie hat die gleiche Funktion wie die Space Taste welche auch zur Pause bzw als Unterbrechun
53. EDIT Kommandos Wird f r n keine Zahl angegeben gilt n 1 nD nFX nKX nR lt SPACE gt lt DEL gt lt CTRL E gt lt ESCAPE gt lt CR gt L scht n Zeichen Die gel schten Zeichen werden mit Hochkomma eingerahmt und angezeigt Beendet das Editieren Die Programmzeile wird durch die Kopie ersetzt aber nicht angezeigt Es erfolgt keine Fertig Meldung des Interpreters Suchbefehl in der Programmzeile Zeigt die Zeile bis zum n ten Zeichen X und setzt anschlie end den Cursor davor L scht alles rechts vom Cursor und wartet auf Eingabe Eingabe von Zeichen ab der Cursorstellung in den Editpuffer und gleichzeitige Anzeige L schbefehl in der Programmzeile L sche alle Zeichen rechts vom Cursor bis zum n ten Zeichen X ohne X zu l schen Zeigt die im Puffer enthaltene Programmzeile und setzt den Cursor nach der Zeilennummer an den Anfang der Zeile Abbruch des Editors die Programmzeile bleibt unver ndert und die Meldung Fertig wird ausgegeben Ersetzt n Zeichen ab dem Cursor durch die dann eingebenen Zeichen Zeigt die Zeile bewegt den Cursor an das Zeilenende und wartet auf Zeichen eingabe I Modus Die Leertaste bewegt den Cursor eine Stelle nach rechts die Zeile wird bis zum Cursor angezeigt bewegt den Pufferzeiger nach links keine Funktion beim EDIT Befehl beendet den Eingabemodus I und bleibt im Editor beendet den Editor Mittels Bell Funktion CHR
54. EN Zeichenkette Wirkungsweise LEN liefert die Anzahl der Zeichen die in einer String Zeichenkette vorhanden sind Beispiel 10 B ABCDEF 20 L LEN B 30 PRINT L RUN 6 Hinweis Da Strings nie mehr als 255 Zeichen enthalten liegt das Ergebnis zwischen 0 und 255 Leer und Sonderzeichen werden mitgez hlt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 110 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC LEFT Verwendungszweck Diese Funktion bergibt n Zeichen einer Zeichenkette von links an Syntax LEFT Zeichenkette n Wirkungsweise Kopiert einen Teil String in einen neuen String mit n Zeichen Beispiel 10 A ABC123 20 B LEFT A 4 30 PRINT B RUN ABC1 Hinweis Siehe auch MID und RIGHTS KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 111 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LOCATE Verwendungszweck Diese Anweisung dient zur direkten X Y Positionierung von Zeichen auf dem Bildschirm Syntax LOCATE x y Wirkungsweise Das auszugebende Zeichen oder String wird an eine bestimmte Stelle ausgegeben Die Koordinate X entspricht der Spalte Y entspricht der Zeile an der die Zeichenfolge erscheinen sol
55. IC und dient zum laden von gespei cherten Dateien in den SEPIA RAM Speicher Mit P l sst sich ein Programm direkt starten mit S wird eine Datei mit Dateinummer und Name abgespeichert Alle Text Ein Ausgaben lassen sich mit H auf den Drucker mit protokollieren Z beendet das Menue und kehrt zum Debugger zur ck KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 38 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC SEPIA IDE Menue Taste I gt I Identify Drive 0 RAM Puffer Adresse Oael esaera ABe Gre leB Ja Asa Be Er DENE SEO ee Arr so 3 70 05532 EEDBERAG 005 00 00822200200 0 0 EA CH 0 AEA AO ED 2 er erg 8180 00 00 00 10 7E 00 02 00 00 3F 00 3B 38E 00 00 Oeeee Pepea 8190 37 41 41 46 30 37 31 33 30 45 36 41 30 30 30 30 T7AAFO7130E6A0000 8140 30 35 33 38 00 02 00 02 00 04 56 65 72 36 2E 30 0538 Ver6 0 STB 0us34122043 4165205436 26452100205205205 205202 IEAREHRReardreree SE 0 21052082082052082052082052052 052 0E20 E20 E20 EEE Be 8 77 052108208208208208208205205205205 3020120020052 BE0 Orr lets 81E0 40 00 02 00 00 00 00 07 OF 20 00 10 00 3F 8E 00 s s Pas 81F0 00 3B 01 01 8E 00 00 3B 00 00 04 07 00 03 00 78 s ereat x 8200 00 78 00 78 00 78 40 00 00 00 00 00 00 00 00 00 X X X s s s 8210 00 00 00 00 00 00 00 00 00 00 00 00 00 30 00 00
56. ION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC NEW Verwendungszweck L scht alle Variablen und startet den BASIC Interpreter neu Syntax NEW Wirkungsweise Das aktuelle Programm wird im Speicher gel scht Alle Variablen werden zur ck gesetzt BASIC wird neu initialisiert Es erfolgt erneut die Startmeldung vom BASIC Interpreter Beispiel NEW lt CR gt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 115 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC NEXT Verwendungszweck Siehe FOR TO STEP EXIT NEXT Diese Befehle dienen zum Aufbau von Befehlsschleifen Befehlsform FOR Laufvariable Anfangswert TO Endwert STEP Schrittweite beliebige Befehle NEXT Laufvariable KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 116 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC NOT Verwendungszweck Logischer bit weiser Operator Syntax IF x NOT 1 THEN Wirkungsweise Berechnet bin re Negation f r einen Boolean Ausdruck Beispiel 10A 1 20 NOT A RUN 2 Hinweis Logische Operatoren wie NOT AND OR XOR EQV und IMP werden im Zusammenhang mit Vergleichsoperationen verwendet Oft werden logi
57. Internet http www kolter de Seite 124 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC PEEK Verwendungszweck Ein Byte direkt aus den Rechner Hauptspeicher lesen Syntax v PEEK adr Wirkungsweise Mit PEEK a wird auf einer g ltigen 16 bit Memory Adresse ein Byte 0 255d ausgelesen Die Variable a steht hier f r eine 16 bit Adresse absolute Adressierung die Variable b enth lt das Byte aus der gelesenen Speicherzelle Beide bergabeparameter sind Ganzzahlenausdr cke Write Beispiel 10 ADR amp 10000 20 B 123 30 POKE ADR B Read Beispiel 10 ADR amp 10000 20 B PEEK ADR 30 PRINT B Hinweis 1 Der Wertebereich f r PEEK und POKE Adressen betr gt 0 65525 dezimal bzw 0000h FFFFh Der physikalische Speicher erstreckt sich bei SEPIA auf 8000h FFFFh Es sind jedoch Teil Bereiche von 8000h 8300h und FEOOh FFFFh f r den Interpreter reserviert Wenn eine POKE Anweisung einen wichtigen bereits genutzten Speicherbereich im RAM berschreibt kann es zu einem Systemabsturz kommen da intern genutzte Systemvariablen Flags o a Parameter berschrieben werden Hinweis 2 Mit PEEK k nnen sowohl RAM als auch EPROM Speicherzellen gelesen weden Das Lesen von Speicherzellen verursacht keine Ver nderung am Speicher Mit PEEK k nnen alle Speicheradressen von 0 bis 65535 gelesen werden Der Inhalt wird dezimal ausgegeben Ande
58. NT STADT LAND PLZ 30 READ S L P 40 DATA Koeln NRW 5000 50 PRINT S L5 P RUN STADT LAND PLZ Koeln NRW 5000 Dieses kleine Beispiel liest Zeichenfolgen und numerische Daten aus der DATA Zeile 40 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 75 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC DIM Verwendungszweck Die DIM Anweisung spezifiziert die maximalen Werte f r Feldvariablenindizes und weist diesen entsprechenden Speicherplatz zu Syntax DIM Variable Indizes Variable Indizes DIM Befehlsform DIM Variable 1 Elementanzahl Variable 2 Elementanzahl usw Wirkungsweise Zur Reservierung des ben tigten Speicherplatzes bei mehr als 10 Elementen dient der DIM Befehl Ohne DIM Befehl am Programmanfang werden pro Matrixvariable 10 Elemente zugelassen 0 9 Matrixvariablen indizierte Variablen sind Variablen vom Typ A I A I A 2 3 oder A 20 8 2 Doppelte Reservierung f r die gleiche Variable ergibt die Fehlermeldung DIM Befehl doppelte Zeile xxx Die maximale Anzahl von Dimensionen f r ein Feld betr gt 255 Beispiel 1 DIM A 100 B 20 20 C 30 30 30 F A D X Y Z Die Elementanzahl einer indizierten Variablen kann selber durch eine Variable angegeben werden Beispiel 2 10 DIM A 20 20 FOR I 0 TO 20 30 READ A I 40 NEXT
59. NT AORB Ergebnis 0 10A 1 20B 1 30 PRINT A OR B Ergebnis 1 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 121 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC PI Verwendungszweck Schl sselwort als konstante Variable Enth lt die Zahl Pi Syntax v PI Wirkungsweise PI ist eine reservierte Konstante und enth lt die Keiszahl Pi Diese Zahl ist wie die eulersche Zahl e EE fest im BASIC Interpreter hinterlegt Somit k nnen Winkelfunktionen in Gleichungen schneller berechnet werden Beispiel X PI PRINTX lt CR gt Ausgabe 3 1415926536 Weitere Besipiele PRINT PI lt CR gt Anzeige 3 1415926536 PRINT PI 180 Anzeige 01745329252 PRINT 4 ATN 1 Anzeige 3 1415926536 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 122 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC POKE Verwendungszweck Ein Byte direkt in den Rechner Hauptspeicher SRAM schreiben Syntax POKE adr byte Wirkungsweise Mit POKE a b wird auf einer g ltigen 16 bit Memory Adresse ein Byte 0 255d in den Speicher geschrieben Mit b PEEK a kann das Byte wieder zur ck gelesen werden Die Variable a steht hier f r eine 16 bit Adresse absolute Adressierung mit Variable
60. Nutzung von bereits vergebenen Schl sselw rtern wie BASIC Befehlen oder Festwerten wie beispielsweise Pi geboten EE ohne Argument enth lt die Eulersche Zahl e die Basis der nat rlichen Logarithmen Beispiel PRINT EE lt CR gt Anzeige 2 7182818285 Alle Variablen bleiben nach Beendigung oder Unterbrechung des Programms verf gbar Dadurch gestaltet sich eine Fehlersuche beim Debuggen der Variablen Inhalte recht einfach Bei nderung des Quelltextes oder neuen Programmzeilen werden Variablen Inhalte jedoch wieder zerst rt Mit dem BASIC Befehl CLEAR kann man ebenfalls s mtliche Variablen l schen Die Inhalte werden mit Null berschrieben Ein einfaches BASIC Beispiel 10 A 123 20 B 456 30 CLEAR 40 C 789 50 PRINT A B C Run Ausgabe 0 0 789 Variablentypen Das Standard BASIC kennt in seiner Grundform nur zwei Variablentypen Eine normale Variable ist numerisch in den meisten F llen ein Byte Integer Wert oder eine Fliesskommazahl Der andere Typ ist eine Textvariable Diese wird im BASIC Quelltext durch ein angeh ngtes String Zeichen kenntlich gemacht Der hinterlegte Dateninhalt einer String Variable enth lt somit ein Character Zeichen und ist daher byte orientiert strukturiert dezimal 0 255 Ein einfaches BASIC Beispiel 10 AS Hallo 20 B Heute 30 C ist einer schoener 40 D Tag 50 PRINT A B C D Run Ausgabe Hallo Heute ist ein schoener T
61. RONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 74 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC DATA Verwendungszweck Dieser Befehl wird ben tigt um in einem BASIC Programm beliebige Variablen bestimmte Werte oder Zeichen statisch zuweisen zu k nnen Syntax DATA Konstantenliste Zahl oder Zeichenkette durch Komma getrennt max 255 Zeichen in einer BASIC Zeile Wirkungsweise DATA speichert numerischen Konstanten und Zeichenfolgen die durch die READ Anweisung en eines Programms angesprochen werden Arithmetische Ausdr cke sind in der Liste nicht zul ssig Weitere Informationen siehe RESTORE und READ Anweisungen Beispiel 1 M gliche Zuweisungen 10 DATA 1 2 HUBER MEIER 4 ZZ Sollen Leerzeichen am Anfang einer Zeichenkette mitgelesen werden so m ssen die Zeichenketten in Anf hrungszeichen gesetzt werden z B HUBERS READ Befehlsform READ nummerische Variable Stringvariable durch Komma getrennt 10 DATA 1 2 HUBER MEIER 4 ZZ 20 READ A B A B C C D 1 1 1 D 1 3 30 PRINT A B A B C C D 1 1 1 D4 1 3 Anzeige 1 2HUBERMEIERO 4 ZZ Die Variable C enth lt den Wert 0 C ist leer Der in der READ Anweisung verwendete Variblentyp numerisch oder Zeichenfolge mu mit dem entsprechenden Konstantentyp in der DATA Anweisung immer bereinstimmen Beispiel 2 10 PRINT 20 PRI
62. S TEST mit XDELAY Lauflicht 110 FOR I 0 TO 7 REM Relais 1 8 in Schleife testen 120 POW 2 I 130 140 OUT amp BO INT POW2 REM Relais gesetzt 150 PRINT SET RELAIS Nr I l 160 170 XDELAY 500 REM 100ms Verzoegern bei 20MHz CPU 180 B INP amp B0 REM Kontakt Zustand zuruecklesen 190 200 IF INT POW2 lt gt B THEN PRINT Fehler bei Relais B 210 NEXT I 220 XDELAY 1000 230 OUT amp B0 0 REM Alle Relais AUS Hinweise zur Hardware Die 8 fach Relais Baugruppe verf gt ber 2 Amp Doppelkontakte Pro Relais ist ein UM Kontakt ber einen 25 pol Sub D Stecker an der Frontplatte zug ngig Der zweite Relais Kontakt wird der Schaltung zur Erh hung der Eigensicherheit wieder r ckgef hrt sodass der Schlie er Zustand per Software Bit weise auf der gleichen I O Adresse von jedem Relais wieder zur ckgelesen werden kann Zur zus tzlichen Kontolle dient eine O LED rechts neben der Power LED die bei jedem OUT Befehl eingeschaltet sowie bei jedem IN Befehl wieder ausgeschaltet wird Damit lassen sich I O Zugriffe auf das Relais Register optisch mitverfolgen Die Adresslage der Karte ist variabel einstellbar Dazu wird ein Byte aus 255 m glichen I O Adressen f r den Zugriff mit DIP Schalter DIP SW1 ausgew hlt RESET WatchDog R ckfallebene Ein DIP Schalter DIP SW2 entscheidet mit Schalter Nr 1 ob der System RESET die Re lais Ausgabe l schen soll oder der aktuelle Registerinhalt un
63. SCII Zeichen Bei der Programmierung d rfen hnlich wie bei einem Taschenrechner bestimmte Grenzen und Bereiche nicht berschritten werden da f r alle Variablen nur ein bestimmter Speicher platz zu Verf gung steht Zudem werden bestimmte Variablen wie die Kreiszahl Pi mit festen Zahlen intern vorbelegt Hinweis Das E bedeutet x 1 hoeh Bit 0 1 Null oder Eins Character 0 127 bsp ASCIl Zeichen Byte 00 FF 0 255 Dez oder 00000000 11111111 Bin Ganze Zahlen ohne Dezimalpunkt 32768 bis 32767 einschl Genauigkeit 1 701411E 38 bis 1 701411E 38 einschl PRINT EXP 88 lt CR gt Anzeige 1 651636255E 38 Print EE lt CR gt Eulersche Zahl Anzeige 2 7182818285 Print Pi lt CR gt Kreiszahl Anzeige 3 1415926536 Zahlengenauigkeit max 12 Stellen Beispiel f r Exponent 234 988E 7 0 0000235988 Beispiel f r Exponent 2359E6 2359000000 int Speicherplatzbedarf BASIC Zeile min 5 Byte Zeilennummer min 2 Byte Pointer min 2 Byte CR Zeilenvorschub 1 Byte Stringvariable min 6 Byte Aktive FOR NEXT Schleife 16 Byte GOSUB ohne Return 6 Byte String Bereich max 255 Zeichen pro String Variable BASIC Zeilennummern 0 bis 65529 L nge einer Programmzeile bis zu 255 Zeichen Speicher 64 kB gesamt ohne Erweiterung MEM Karte Wichtig f r Portzugriff bsp OUT INP Hexadezimale Zahlen 8 bit amp 00 amp FF entspricht 0 255 Hexadezimale Zahlen 16 bit amp 0000 amp FFFF entspricht 0 65
64. SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC SEPIA RT ZBAS Praktische Beispiele Ein Real Time Advanced BASIC Interpreter mit echtzeitf higer Hardware Unterst tzung KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 1 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC Inhalt Kapitel 1 Kapitel 2 Grundlagen Standard Befehle Einf hrung 3 Einf hrung 56 Zahlengenauigkeit Vorbelegung 4 Befehls bersicht implementierte Befehle 57 Standard Befehle siehe auch Kapitel 2 5 SEPIA RT ZBAS Befehle 6 Fehlermeldungen VGA Farben Text Color 7 Software Fehlermeldungen 58 Rechner starten System booten 8 System Fehlermeldungen 58 Erste Beispiele Funktionen Mein erstes Programm 10 Operatoren und math Standardfunktionen 59 CPU Temperatur erfassen Temperatursensor 11 Quittungston mir XPBELL ausgeben 13 Variablen RTC Uhrzeit und Datum 14 Variablen und Variablen Typen 60 RTC Programmbeispiel 15 Daten bertragung Syntax Tastaturabfrage und Zeichenausgabe 16 XSTROUT XSTRINS ser I O Daten bertragung 17 ABS 61 XGETKEY Zeichen ber COM Port lesen 18 Beispiele zur Hardware sei LOADGO mit IDE Karte und CF Karte 19 XOR 158 MEM Memory Karte ansteuern 20 WatchDog auf RTC Karte programmieren 21 RL8 Relais programmieren 22 OIl8 Optokoppler erfassen 23 AD1 analoge Spannungen
65. Seri se Hersteller geben dem Nutzer Schaltpl ne und eine Adress MAP an die Hand aus der die gesamte Adressbelegung s mtlicher I O Bauteile ersichtlich ist KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 118 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC OUTBYTE Verwendungszweck Ausgabe eines Zeichen auf den genannten Kanal Syntax OUTBYTE kanal byte Wirkungsweise Kanal 0 ist die Hauptkonsole sodass bei Angabe von OUTBYTE 0 67 direkt ein Byte auf COM1 ausgegeben wird 67 hat die ASCII Nummer des Gro buchstaben C Das folgende Besipiel gibt nach lt CR gt entsprechend C aus Als Byte sind die Zahlen 0 255 erlaubt Beispiel OUTBYTE 0 67 Ausgabe C Unterschied von OUTBYTE zum Print Befehl 1 REM PRINT 5A 1 10 FORI 1 TO 10 20 PRINT A Ausgabe 1111111111 30 NEXT dagegen 1 REM OUTBYTE 5A 49 10 FOR I 1 TO 10 20 OUTBYTE 0 A Ausgabe 1111111111 30 NEXT KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 119 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ON Verwendungszweck Anweisung dient als Sprungziel mit Zeilennumerrangabe oder zur Fehlerbehandlung Syntax ON ERROR GOTO Fehlerbehandlung ON ERROR GOTO ERR und ERL ON X GOTO
66. Somit l sst sich mit ein paar wenigen BASIC Befehlen ein einfaches Terminal Programm erstellen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 18 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LOADGO Befehl Bei Verwendung der IDE Karte mit einem Datenspeicher CF oder SD Card kann mit dem Direktbefehl LOADGO x aus einem laufenden BASIC Programm ein anderes Programm geladen und gestartet werden Somit lassen sich beispielsweise auch mehrere Programme ber eine eigene Menuestruktur verwalten oder ggf gr ere Programme in mehrere kleine Unterprogramme zerlegen die dann je nach Bedarf nachgeladen werden Da alle BASIC Programme ber Programmnummern verwaltet werden wird die Zieldatei als Nummer zuge wiesen Unabh ngig davon darf der Dateiname bis zu 32 ASCIl Zeichen beinhalten Die Dateinummer erfolgt hierbei in hexadezimaler Schreibweise amp 00 amp FF Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Beispiel f r LOADGO amp xx 110 CLS 120 LOCATE 2 3 130 PRINT Menue mit Unterprogrammen 140 PRINT n 150 PRINT 160 PRINT 1 MASTER SLAVE m 170 PRINT 2 ZIDE6 2 180 PRINT 3 RELAIS TEST m 190 PRINT 4 TONERZEUGUNG 2 200 PRINT 210 220 INPUT W 230 240 ON VAL W GOTO 260 270 280 290 250 260 LOADGO amp 0
67. Syntax PRINT Kanal USING Zeilennummer XYZ Variable 1 Variable 2 usw Befehlsform XYZ Formatierungsangabe 5 MA L R C E Wirkungsweise Bei der Ausgabe von Zahlen und Zeichenketten ergibt sich die Anordnung aus der Zeichen anzahl Ein Tabellenaufbau ist daher oft nur m hsam mit entsprechenden String operationen m glich Der Befehl USING bietet eine einfache Tabellierungsanweisungen die sogar im Programm noch gewechselt werden k nnen Beispiel A Hallo A 12345 67890 lt CR gt PRINT USING A HHHHHH A lt CR gt Anzeige Hallo 12345 6 Hinweise Platzhalter f r eine anzuzeigende Ziffer Hat die darzustellende Zahl weniger Ziffern wird die Zahl rechtsb ndig gestellt und links mit Leerzeichen aufgef llt Pa t eine Zahl nicht in das Nummernfeld wird sie doch ganz ausgegeben und durch ein vor die Zahl gestelltes Prozentzeichen gekennzeichnet Punkt Setzt die Position des Dezimaltrennzeichens nur Zahlenausgabe Reserviert Platz f r ein Vorzeichen zu einer Zahl Das Vorzeichen wird dann immer mit ausgegeben Wird Minus hinter einen Ausdruck verwendet wird das Vorzeichen hinter statt vor der Zahl positioniert Zwei Sternchen am Anfang eines Nummernfeldes bedeuten dass an jede nicht besetzte Position des Nummernfeldes ein Asteriks Sternchen gesetzt wird z B f r Zahlkarten blich _ Vor einer Zahl plaziert bewirkt dass ein Leerzeichen mit Dollarzeichen vor der Zahl
68. T HEX 1000 lt CR gt Anzeige 03E8 A 2020 lt CR gt PRINT HEX A lt CR gt 07E4 PRINT HEX 18 9 lt CR gt 0012 PRINT amp 3E8 lt CR gt 1000 10 INPUT HEX ZAHL A REM Eingabe einer sedezimalen Zahl 20 PRINT VAL amp A REM mit Gro buchstaben Ausgabe der Dezimalzahl Hinweise Sedezimale Zahlen sind Zahlen mit Basis 16 im Gegensatz zu Dezimalzahlen mit Basis 10 Wenn der Wert negativ ist wird das Zweier Komplement bin r verwendet Rechengenauigkeit des Interpreters Die folgenden Beispiele zeigen dass dieser BASIC Interpreter weniger Probleme mit Rundungsfehlern hat als andere X 66 20 lt CR gt PRINT INT 10 X 10 lt CR gt Anzeige 3 3 X SOR 2 lt CR gt PRINT X 2 lt CR gt Anzeige 2 PRINT LOG 0 99995 lt CR gt Anzeige 5 0001249077E 05 Allerdings kann aufgrund der bin ren Zahlendarstellung bei einer Schleife von 1 nach 1 in Schritten 0 1 der Wert Null nie erreicht werden Beispiel 10 FOR N 1 TO 1 STEP 1 Nach der Anzeige der Werte 20 PRINT N 1 9 bis 2 kommen 30 IF N 0 THEN PRINT N 0 099999999999 und 40 NEXT 1 1368683772E 12 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 96 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC INP Verwendungszweck Empf ngt ein I O Byte vom Eingabeanschlu Hardware Port des Rechners Vo
69. T Laufvariable 10 FOR I 1 TO 1 STEP 0 1 20 PRINT I TEST 30 NEXT I Die Angabe der Laufvariable nach dem Befehl NEXT kann bei nur einer Schleife entfallen Bei verschachtelten Schleifen mu die jeweilige Laufvariable angegeben werden Solche Schleifen m ssen nach dem Schema FOR A FOR B FOR C usw NEXT C NEXT B NEXT A aufgebaut sein Da die R cksprungadressen der Schleifen in einem bestimmten Speicherbereich Stack zwischengespeichert werden ist auch die Anzahl der verschachtelten Schleifen begrenzt 5 DIM A 15 15 15 10 FORI 1TO15 20 FORK 1TO15 30 FORL 1TO15 40 A l K L 1 50 NEXT L K I Eine dreidimensionale Matrix wird mit dem Wert 1 aufgef llt Mehrere Laufvariablen k nnen durch ein Komma getrennt in eine Zeile geschrieben werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 147 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC SPC Verwendungszweck Zwischenr ume mit Leerzeichen Space auff llen Syntax SPC n SPC Befehlsform SPC Zahl der Leerzeichen Wirkungsweise Zur Ausgabe von Zwischenr umen dient der Befehl SPC Beispiel PRINT TEST SPC 10 TEST lt CR gt Anzeige TEST TEST In diesem Beispiel werden 10 Leerzeichen zwischen beiden TEST Texten eingef gt Dies spart Speicherplatz da kein weiterer String mit 10 Leerzeichen angelegt werden muss
70. TION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Z hlerst nde digitale counts mit CNT Karte erfassen Mit der CNT Karte lassen sich digitale TTL Impulse komfortabel z hlen oder Positionen an inkrementalen Gebern bsp Winkelgeber L ngenme stab Messtaster erfassen Zur Messung sind nur wenige Input Befehle n tig Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Zaehler 1 auf Basisadresse A0 auslesen 110 A INP amp A0 REM Low Read speichert alle Register 120 B INP amp Al REM Medium 130 C INP amp A2 REM High 140 D INP amp A3 REM nur Vorzeichen Bit in Data Bit 0 150 160 X A B 256 C 65535 REM Z hlerstand berechnen 170 PRINT Alle Register 180 PRINT A B C D 190 PRINT Counter 1 X Hinweise zur Hardware Die CNT Messkarte dient der Erfassung von dig Impulsen Beide Z hler k nnen Pulsraten von 0 bis 10 MHZ in Echtzeit verarbeiten Die Impulserfassung erfolgt intern ber schnelle Quadraturencoder Damit keine Impulse ausbleiben werden 3x 8 Bit Latch plus ein Sign Bit in einem vierten Register immer zwischengespeichert Die Z hler arbeiten vollkommen unabh ngig k nnen jedoch ber einen Triggereingang ebenso synchron betrieben werden Dadurch k nnen beliebig viele Karten parallel betrieben werden um beispielsweise die Ist Position bei L ngenmessungen in Mehrachsensystemen ohne Zeitjitter zu erfassen Die
71. Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 48 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XIRQON und XIRQOFF Interrupt Diese Befehle veranlassen auf der RTC Karte einen Interrupt Generator mit 1 Sek Takt Impuls auszul sen so dass auf der aktuellen Bus Nummer ein Interrupt mit Vector 038h erzeugt wird um beispielsweise eine spezielle ISR Routine mit hoher Priorit t direkt im EPROM oder SRAM anzusteuern Die Schaltung ATMEL Prozessor erzeugt nach Freigabe einen Puls mit 1000 ms Dauer bestehend aus 1 us neg Puls 999 999 ms pos Puls L nge so dass im Endeffekt eine Periodizit t von einer Sekunde erreicht wird Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 XIRQON REM Generator einschalten 110 XDELAY 50000 REM Zeitschleife 120 XIRQOFF REM Generator ausschalten 130 STOP REM Programmende A Hinweis Nach Zeile 100 erfolgt nun eine sek ndliche Konsolenausgabe mit IRQ xx xx Steht f r Bus Steckplatz 1 14 bis die Delay Schleife in Zeile 110 abgearbeitet ist Mit XIRQOFF wird in Zeile 120 der Interrupt Generator wieder abgeschaltet disable und anschlie end mit Zeile 130 das Programm ganz normal beendet Der Anwender hat nun die M glichkeit ber eine Assembler Programmierung mittels neuer Sprungadresse an 038h im EPROM eine eigene ISR Routine im oberen SRAM Bereic
72. UT amp 2D 1 erzeugt die Freigabe der WDC Funktion und mit OUT amp 2F 0 wird ein Re Trigger programmiert welcher vor Ablauf des Zeitfensters erfolgen muss damit kein RESET ausgel st wird Das Relais schaltet mit einer Haltedauer von ca 1 Sekunde bei 8 MHz CPU Takt und l scht dabei das Time out Flag im CPLD sodass keine R ckkopplung mit der RESET Logik entsteht Die RESET Schaltung der CPU Karte bernimmt anschlie end alle Aufgaben der Neuinitialisierung Warmstart Der WDC Befehl OUT amp 2D 0 schaltet die Funktion manuell ab und setzt das Time Out Flag wieder auf Null disable so dass man gezielt Routinen mit oder ohne WDC Unterst tzung programmieren kann Bei einer gewollten Unterbrechung durch den Anwender Tastenkombination CTRL E wird ber das BIOS das WDC Flag ebenfalls r ckgesetzt da sonst bei jeder Umprogrammierung des BASIC Quellcodes ein unn tiger CPU RESET durchgef hrt w rde Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM WDC TEST Watch Dog 110 OUT amp 2C 6 REM Timeout Zeitbasis waehlen 0 15 120 OUT amp 2D 1 REM 1 Enable 0 Disable WDC 130 140 OUT amp 2F O REM Re Trigger vor Timeout 150 160 REM Hier steht eingekapseltes Hauptprogramm 170 XDELAY 2000 REM simuliert die Programmdauer 180 190 GOTO 140 REM WDC Schleife Anmerkung zur Hardware Abh ngig vom Master Clock wird ein Frequenzteiler mittels Vergleicher im CPLD intern vorprogrammi
73. Y lt X THEN PRINT KLEINER ALS ELSE PRINT GLEICH Merke Ist das Ergebnis von Ausdruck nicht Null wahr wird THEN oder GOTO Zeilennummer ausgef hrt Ist das Ergebnis von Ausdruck Null falsch wird THEN oder GOTO Zeilennummer ignoriert und die ELSE Anweisung wenn vorhanden ausgef hrt Andernfalls wird die Programmausf hrung mit der n chstm glichen ausf hrbaren Anweisung fortgesetzt Vor THEN und ELSE kann ein Komma stehen Auf THEN und ELSE kann entweder eine Zeilennummer folgen zu der verzweigt werden soll oder eine oder mehrere auszuf hrende Anweisungen Auf GOTO folgt immer eine Zeilennummer KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 80 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC END Verwendungszweck Beenden der Programmausf hrung Der END Befehl beendet die Programmausf hrung schlie t alle Dateien und kehrt dann zur BASIC Eingabe Befehlsebene zur ck Syntax END Wirkungsweise Nach einer solchen Anweisung in einer BASIC Programmzeile wird das Programm verlassen und die Meldung Fertig angezeigt Direkt Befehle wie LIST EDIT usw k nnen eingegeben werden Der Befehl ist nicht unbedingt als Programmende notwendig er trennt jedoch Unterprogramme die mit GOSUB aufgerufen werden vom Hauptprogramm ab Im Gegensatz zur STOP Anweisung wird bei der END Anweisung ke
74. Zahl als gr te oder ganze Zahl von x ohne Nachkommastellen Syntax z INT x Wirkungsweise Mit INT kann eine Gleitkommazahl in eine ganzzahlige Zahl umgewandelt werden Dabei wird entsprechend der Nachkommastellen auf oder abgerundet Doch Achtung Positive Zahlen werden immer abgerundet negative werden in negativer Richtung aufgerundet Beispiel PRINT INT 45 67 Anzeige 45 PRINT INT 2 89 Anzeige 3 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 102 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC IMP Verwendungszweck Boole scher bit weiser Operator f r logische Ungleichheit Implizierung Syntax v AIMPB Wirkungsweise IMP wird benutzt um logische Folgerungen auszuwerten Die IMP Bedingung gilt dann als erf llt wenn Wert1 A nicht Falsch ist und Wert2 B ist nicht Wahr ist Das Ergebnis ist Wahr true wenn der Wert 1 zur ckgegeben wird Beispiele PRINT 1 IMP 1 lt CR gt Anzeige 1 PRINT 2 IMP 2 lt CR gt Anzeige 1 PRINT 1 IMP 2 lt CR gt Anzeige 2 PRINT 2 IMP 1 lt CR gt Anzeige 3 Hinweis In Klammen gesetzte Operationen haben immer Vorrang Innerhalb der Klammer gilt jedoch die normale Rangfolge der Operatoren Bei Operatoren in einer Zeile nimmt die Priorit t von links nach rechts ab Alle logische Operationen setzen ihre Operatoren in
75. abe wird in ss bersetzt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 53 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Web Links zu technischen Dokumentationen im PDF Format Info Flyer SEPIA Datenblatt bersicht Komponenten Stromverbrauch CE Erkl rung SEPIA Bus Platine CPU IDE NET inkl VGA MEM RTC inkl WatchDog CLK RL8 Relais Ol8 Opto Input AD1 Analog Input CNT Counter E32 Opto Input A32 Opto Output DA1 DAC Ausgang PW1 7 DC Wandler Netzteil Datenblatt Foto 42 TE Geh use Foto 63 TE BGT Foto Frontplatte CLK http www kolter de SEPIA_FlyerO1 pdf http www kolter de SEPIA_dblatt01 pdf http www kolter de SEPIA Konfiguration pdf http www kolter de SEPIA Stromverbrauch pdf http www kolter de ce sepia pdf http www kolter de SEPIA BUS pdf http www kolter de SEPIA CPU pdf http www kolter de SEPIA IDE pdf http www kolter de SEPIA NET pdf http www kolter de SEPIA MEM pdf http www kolter de SEPIA RTC pdf http www kolter de SEPIA CLK pdf http www kolter de SEPIA RL8 pdf http www kolter de SEPIA OI8 pdf http www kolter de SEPIA AD1 pdf http www kolter de SEPIA CNT pdf http www kolter de SEPIA E32 pdf http www kolter de SEPIA A32 pdf http www kolter de SEPIA DA1 pdf http www kolter de SEPIA PVVx pdf http ww
76. abh ngig vom RESET beibe halten werden soll Dies kann bei manchen Anwendungen sehr wichtig sein die nicht durch einen RESET ver ndert oder unterbrochen werden d rfen Die gleiche M glichkeit besteht ebenfalls bei einem Time Out vom WDC WatchDog den 8 Bit Registerinhalt zu l schen und damit die Relais in eine urspr nglich stromlose Ausgangsposition zu versetzen Da der Rechner selbst nach einem kompletten RESET den Relais Zustand der Karte wieder einle sen kann sind sehr sichere Applikationen realisierbar die sonst nur teuren High End Syste men vorbehalten waren KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 22 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Optokoppler auf Ol8 Karte abfragen Alle Optokoppler lassen sich auf dieser Erweiterungskarte direkt byte weise abfragen so dass ein INP Befehl auf der zugeh rigen Kartenadresse das Eingangs Register lesen kann Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 110 O INP amp B8 REM Register Eingang lesen 120 130 PRINT OPTO INPUT HEX HEX O 140 150 FOR I 8 TO O0 STEP 1 160 POW 2 I REM Bit Opto Kanal maskieren 165 170 IF INT O AND POW2 INT POW2 THEN Bin Bin 1 ELSE Bin Bin 0 175 180 NEXT I 190 PRINT OPTO INPUT BIN Bin Hinweise zur Hardware Alle Eing
77. ag KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 60 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ABS Verwendungszweck Liefert den absoluten Wert des Ausdrucks n Damit wird der Absolutwert also der Wert ohne Vorzeichen einer Zahl ermittelt Der Absolutwert einer negativen Zahl ist eine Zahl multipliziert mit 1 ABS kann sowohl auf Zahlen als auch auf komplexe numerische Ausdr cke angewendet werden Syntax ABS n Wirkungsweise n muss ein numerischer Ausdruck sein Beispiel 10 PRINT ABS 1 20 IF ABS N N THEN PRINT POSITIVE ZAHL ODER NULL KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 61 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC AND Verwendungszweck Mathematische Operation einer logischen UND Verkn pfung um Bit Folgen zu testen AND wird bespielsweise zum Maskieren von numerischen Daten verwendet Syntax n1 AND n2 Wirkungsweise n muss ein numerischer Ausdruck sein Beispiel 10X 63 AND 16 20 PRINT X RUN Hier wird X auf den Wert 16 gesetzt Da 63 bin r 00111111 ergibt und 16 bin r 10000 ist ergibt 63 AND 16 bin r 010000 und somit wieder 16 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pc
78. ahl X berechnen Beispiele PRINT SQR 2 lt CR gt Anzeige 1 4142135624 PRINT SQR 5 SQR 5 lt CR gt Anzeige 5 PRINT 10000 1 4 lt CR gt Anzeige 10 4 WURZEL KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 144 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC STR Verwendungszweck Die im Argument X enthaltenen Zahlen werden mit diesem String Befehl als Zeichenkette gekennzeichnet Syntax STR x STR Zahl oder nummerische Variable oder Ausdruck Wirkungsweise Wandelt Zahl in einen Text String um Somit verh lt sich STR x komplement r zu VAL Beispiel 1 A STR 123456 lt CR gt PRINT A lt CR gt Anzeige 123456 PRINT ASC LEFT A 1 lt CR gt Anzeige 32 Das erste Zeichen der Zeichenkette A ist ein Leerzeichen was oft zu einem Fehlverhalten eines BASIC Programmes f hrt Beispiel 2 10 INPUT Eine Zahl eingeben Z 20 ON LEN STR Z GOSUB 100 200 300 30 100 PRINT 100 110 RETURN 200 PRINT 200 210 RETURN 300 PRINT 300 310 RETURN Dieses kleine Besipielprogramm verzweigt mit GOSUB zu verschiedenen Unterprogrammen abh ngig von der Anzahl der Zeichen die als Variable Z eingegeben wurden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 145
79. aten werden im Zeichenfolgenspeicher gesammelt und entsprechend reorganisiert Ungenutzte Daten Fragmente werden entfernt und frei gegeben Beispiel 10 PRINT FRE x RUN 31811 Hinweis Je nach Speicherausbau Belegung liefert Ihr Rechner m glicherweise ein anderes Ergebnis KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 90 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC FIX Verwendungszweck Verk rzt eine Variable zu einer Ganzzahl Syntax FIX X FIX Befehlsform FIX Variable Zeichenanzahl Wirkungsweise FIX rundet Zahlen nicht auf oder ab sondern schneidet einfach den Dezimalpunkt und alle Zeichen rechts vom Dezimalpunkt also auch dahinter ab Beispiel PRINT FIX 58 75 Anzeige 58 A 123 567 PRINT FIX A Anzeige 123 A 05 FIX A PRINT FIX A Anzeige 0 dagegen PRINT INT A Anzeige 1 Hinweise FIX X entspricht SGN X INT ABS X Der Hauptunterschied zwischen FIX und INT besteht darin da FIX nicht die n chstniedrigere Zahl bei negativem X liefert FIX ist ebenso bei der Modulo Arithmetik sehr n tzlich KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 91 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC FIX Verwendungszweck
80. ati ver Impuls an Trigger Eingang CP2 erzeugt Werden die erforderlichen EMail Parameter f r den XPort ber den HTML Browser programmiert Grundkonfiguration kann eine Nachricht bsp ALARM 123 ber das Netzwerk abgesetzt werden Zur Kontrolle wird ein Zeichen auf den jeweiligen COM Port mit ausgegeben Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM EMail Test 110 XSEMAIL 1 REM sende auf COM1 120 STOP A Wichtiger Hinweis zu XPort Damit eine EMail versendet werden kann muss der Administrator neben der Server IP Adresse auch den Domain Namen nebst Unit Namen fest eingeben Der EMail Empf nger ist variabel Die Einstellungen sind dennoch nicht trivial Zum bsp m ssen Einstellungen wie der Triggereingang General Purpose I O als Eingang mit Aktiv Low parametriert oder eine bestimmte Zeichenfolge f r das Ausl sen der EMail vorgenommen werden Weitere Informationen finden Sie in der XPort Beschreibung des Herstellers unter http www lantronix com support downloads p XPORT Anmerkung Um erste TCP IP Winsock Verbindungstests mit XPort durchzuf hren k nnen Programme wie Hyperterminal oder Device Terminal mit zugewiesener IP Adresse verwendet werden Seriell tunneln lassen sich die Daten jedoch nur mit einer Re Direct Software bsp CRP von Lantronix damit ein virtueller COM Port die Pakete entsprechend umlenkt Bevor jedoch irgend eine Verbindung zu stande kommt m
81. ausgegeben wird Kombiniert die Formatierung und Ein Komma links vom Dezimalpunkt im Nummernfeld bedingt dass alle 3 Zeichen ein Komma gesetzt wird MM Vier Pfeile am Ende der Kennzeichnung des Nummernfeldes deuten an dass die Zahl immer in exponentialer Schreibweise angegeben wird E nn oder E nn Ein Dezimalpunkt ist erlaubt L Textformatierungsanweisung linksb ndig Befehlsform LLLL Die Anzahl der L Buchstaben ergibt die max L nge der Zeichenkette eine l ngere wird rechts abgeschnitten R Textformatierungsanweisung rechtsb ndig Befehlsform RRRRRRRR Die Anzahl der R Buchstaben ergibt die max L nge der Zeichenkette eine l ngere wird links abgeschnitten C Textformatierungsanweisung zentrieren Befehlsform CCCCCCCCCCCCCCCCCCCCC Die Zeichenkette wird im C Feld zentriert eine zulange Zeichenkette wird rechts abgeschnitten E Textformatierungsanweisung linksb ndung erg nzen Befehlsform E Es braucht nur ein E angegeben werden da die gesamte Zeichenkette ausgegeben wird KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 154 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC VAL Verwendungszweck VAL Liefert den numerischen Wert einer Zeichenfolge Stringvariable oder Zeichenkette Syntax VAL A Wirkungsweise VAL Str dient zur Umwandlung einer String Zahl in eine
82. begrenzt Mit RET wird zum BASIC Programm wieder zur ckgesprungen Beispiele CALL 2024 lt CR gt Es wird zur Adresse 2042h gesprungen Die Adresse kann auch sedezimal angegeben werden z B CALL amp 7E8 CALL amp 8000 45 3 lt CR gt Ab Adresse 32768 8000h mu sich ein Maschinenprogramm befinden dem die Werte 45 und 3 bergeben werden Register BC bzw CX enth lt 00 02 auf dem Stapel befinden sich 03 00 2D 00 CALL 0 lt CR gt Mit CALL O wird das BASIC abrupt verlassen und es meldet sich das Boot Menue vom Betriebssystem Dieser Zustand entspricht quasi einem Soft RESET hnlich einem NMI wobei SRAM Variablen von BASIC erhalten bleiben Mit W wie Warmstart kann BASIC mit diesen Speicherinhalten weiter rechnen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 72 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CLOSE Verwendungszweck Schlie en von offenen Kan len wird hier nicht verwendet Der Befehl beendet ansonsten die Eingabe Ausgabeoperation einer Datei oder einer E A Einheit bsp Ger t I O Karte Syntax CLOSE lt CR gt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 73 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CONT Verwendungsz
83. bei die Texte den Nummern 0 255 zugeordnet werden k nnen Entsprechend der gew nschten Abbruchbedingung des Programms wird die Fehlernummer angegeben Die Ausf hrung einer ERROR Anweisung f r die keine Fehlerbehandlungsroutine existiert f hrt zu einer erneuten Fehlermeldung und dem Abbruch der Programmausf hrung Beispiele 20 IFA gt 5 THEN ERROR2 Wird w hrend des Programmlaufes die Zeile 20 erreicht und der Wert der Variablen A gr er 5 ist dann wird die Zahl 2 als Fehlernummer zwischengespeichert Zu Beginn des Programms setzt man einen Sprungbefehl 10 ON ERROR GOTO 1000 Im Unterprogramm ab Zeile 1000 kann dann der zugeh rige Text ausgegeben werden 1000 IF ERR 50 THEN PRINT A zu gro GOTO Nach dem Befehl ON ERROR GOTO darf kein CLEAR Befehl enthalten sein Hinweise Eine vollst ndige Liste der bereits in BASIC definierten Fehlercodes und Meldungen finden Sie im vorderen Teil von Kapitel 2 der Betriebsanleitung Ein vom Benutzer definierter Fehlercode mu einen Wert verwenden der gr er ist als alle Werte die f r SEPIA BASIC Fehlercodes verwendet werden Gegenw rtig gibt es 49 BASIC Fehlercodes Es empfiehlt sich daher eine Codenummer zu verwenden die hoch genug ist wenn weitere Fehlercodes zu hinzugef gt werden sollen Fehlerbehandlungsfunktionen ON ERROR GOTO Aufruf der Fehlerbehandlung RESUME R ckkehr aus Fehlerbehandlungsroutine ERL ermittelt Zeilennummer des Fehlers ERR ermit
84. card com Internet http www kolter de Seite 127 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC PRIVACY Verwendungszweck Security Funktion Schutz durch beliebiges Passwort Alle Befehle einkapseln Syntax PRIVACY Befehlsform PRIVACY Zeichenkette oder Variable Wirkungsweise Durch die Angabe eines Schl sselwortes Password an erster Stelle in irgend einer Programmzeile sind alle Befehle gesch tzt mit denen der Inhalt eines BASIC Programmes zug nglich gemacht oder ver ndert werden kann AUTO COPY DELETE EDIT FIND LIST RENUMBER REPLACE In allen F llen wird die Fehlermeldung nicht verf gbar ausgegeben Auch das L schen einer Zeile durch Eingeben der Zeilennummer mit nachfolgendem lt CR gt geht nicht Das Schl ssel bzw Passwort kann irgendeine Konstante Variable oder beliebige Zeichenkette sein Beispiel 10020 Privacy SeCrEt oder 10020 Privacy A In der Zeile 10020 wird als Schl sselwort die Zeichenkette SeCrEt definiert Allen oben aufgef hrten Befehlen mu unmittelbar nach dem Befehl das Schl sselwort in Anf hrungszeichen folgen danach k nnen weitere durch ein Komma getrennte Befehle angegeben werden z B LIST SeCrEt 100 200 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 128 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leich
85. ch 100A 5 110 IF A 5 Then GOTO 200 150 STOP 200 PRINT Zeile 200 GOTO kann ebenso in Kombination mit ON ERROR verwendet werden 10 ON ERROR GOTO 1000 1000 STOP Im Unterprogramm ab Zeile 1000 kann dann STOP oder der zugeh rige Text ausgegeben werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 94 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC GOSUB Verwendungszweck Der Interpreter springt zur angegebenen Zeilenummer und setzt dort seine Arbeit fort bis der Befehl RETURN auftaucht Dabei wird die R cksprungadresse gespeichert Mehrere GOSUB Befehle k nnen nacheinander folgen Syntax GOSUB Zeilennummer RETURN Wirkungsweise Springt zur angegebenen Zeilennummer einer Sub Routine und kehrt mit Return zur ck Beispiel 100A 4 110 IF A 4 Then GOSUB 1000 150 STOP 1000 PRINT A 4 1100 RETURN Andere Beispiele mit GOSUB ON Z GOSUB Zeilennummer A Zeilennummer B usw Entsprechend der Zahl Z 0 255 wird zu den angegebenen Zeilen verzweigt bei Z 2 also zur Zeilennummer B Ist Z 0 oder gr er als die Anzahl der angegebenen Zeilennummern so wird der n chste Befehl nach dem vollst ndigen GOSUB Befehl bearbeitet RETURN Befehlsform RETURN Zeilennummer Nach der Bearbeitung eines mit dem Befehl GOSUB erreichten Unterprogrammes wird nicht hinter diesen Be
86. chte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 160 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 161 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 162 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 163 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 164 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 165
87. chtig Gr tm glicher Anwendernutzen durch hohe Sicherheit und Vielseitigkeit Unabh ngige Plattform mit eigenem BIOS und Betriebssystem ohne weitere Kosten Schneller Projekterfolg durch leichte Programmierung mittels einfacher Hochsprache M glichkeit zum Debuggen und Einbringung von Bin rcode in Maschinensprache Skalierbarkeit der Hardware durch vielf ltige Schnittstellen kein plug and pray Nutzen von vorhandenen Ressourcen bsp VGA Monitor PS 2 Tastatur CF Card M glichkeit zur Vernetzung ber Ethernet virtueller COM Port f r Windows Systeme Programmierung als Host Rechner oder fernbedienbar als Remote I O System RIO RT ZBAS Advanced BASIC ist eine leistungsf hige Programmiersprache die einfach intuitiv und sehr schnell lernbar ist SEPIA kann somit fernab vom blichen Marktgeschehen punk ten da nderungen in der Programmierung quasi vor Ort jederzeit und ohne zus tzlichen PC durchf hrbar sind Die Wahl der Programmiersprache viel gleich zu Anfang auf ein echtzeitf higes BASIC Mit dieser einfachen Hochsprache k nnen alle notwendigen Bedingungen f r die Automation erf llt werden Somit schlie t SEPIA die L cke zwischen einfachen kontaktplangesteuerten SPS Steuerungen und hochkomplizierten wie kostenaufwendigen Automationssystemen In der Praxis werden diese Systeme immer un bersichtlicher und dessen Handhabung bleibt oft nur noch wenigen Spezialisten vorbehalten welche regelm ig Fo
88. die Ausgabe auf vier unterschiedlichen I O Adressen Jedes 8 bit Register dient gleichzeitig als Zwischenspeicher so dass erst durch berschreiben des Bytes ein neuer Wert f r das jeweilige Register auf den Optokoppler Ausgang bertragen wird Es stehen drei verschiedene Kartenvarianten zur Wahl P oder N schaltend sowie Photo MOS Relais bis 350 mA pro Kanal Es sind auch Mischbest ckungen mit P N und Photo MOS m glich Durch Verwendung einer invertierten Logik mit Freigabe FF erster Kartenzugriff werden keine undefinierten Pegelzust nde w hrend der Power Up und RESET Phase erzeugt Ein WatchDog Reset versetzt alle Aus g nge in eine neutrale Ausgangssituation wie man sie nach dem Einschalten des Rechners vorfindet alle Ausg nge OFF bzw hochohmig high Z KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 28 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Die AUTOBAS Startdatei im Hauptverzeichnis Root Eine Besonderheit kommt der ersten Datei auf dem Datentr ger DriveO zu denn sie kann hnlich einer bat Batch Datei ein BASIC Programm direkt nach einem RESET ausf hren ohne weitere Benutzereingaben zu t tigen Dazu muss das Programm zwingend unter dem Namen AUTOBAS in Gro buchstaben als Datei 01 abgespeichert sein A Achtung SEPIA pr ft w hrend des bootens ob die IDE Kar
89. e Daten bertragung erfolgt dazu ber eine interne serielle COM Verbindung mit 115 200 kBaud als einfache Terminal Emulation wie zu einem abgesetzten LCD Display Dies erm glicht ebenso den Einsatz von seriellen ANSI BBS Terminals oder Programmen mit VT 100 Emulation Diese Schaltungsanordnung hat somit mehrere Vorteile 1 Der Hauptprozessor wird komplett mit der Erzeugung von Text und Grafik entlastet 2 Die Daten bertragung kann auch zu anderen COM Ports umgelenkt werden bsp per DFU MODEM oder Ethernet COM mit Windows ZOC Programm 3 Die Datenaufbereitung erfolgt in einem eigenen Prozess unabh ngig von CPU Zeiten Damit sind die Ausgaben immer gleich schnell 4 Die Auslagerung von Text und Grafik Routinen spart viel Platz im EPROM 5 Die Weiterentwicklung von VGA Hard amp Software erfolgt unabh ngig vom Hauptsystem 6 Durch Nutzung g ngiger Aufl sungs Modi sind nahezu alle VGA Monitore verwendbar Standardaufl sung ist 640 x 480 Pixel somit auch f r 5 LCD Display geeignet KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 43 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC EMail versenden mit XPort auf NET Karte Damit SEPIA eine EMail versenden kann wurde der Trigger Eingang des XPort Konverters mit dem CPLD ber ein FlipFlop verkn pft Mittels BASIC Befehl wird darauf hin ein neg
90. e Unterscheidung ob Host oder Remote I O Be trieb trifft der Anwender in der Startmenue Abfrage Im Host Mode erkennt ein Such Mo dus automatisch wenn eine CF Karte am IDE Interface eingeschoben ist welche eine AUTOBAS Start Datei enth lt So kann gleich nach dem Booten eine Initialisierung stattfin den oder weitere Programme nachgeladen werden Nach einem Hardware RESET startet das SEPIA BIOS das Startmenue mit verschiedenen Eingabem glichkeiten die der Nutzer w hlen kann W hrend des bootens pr ft das BIOS mehrere Schaltungen intern ab um festzustellen ob beipielsweise eine RTC oder IDE Karte verbaut wurde Bei Fehlen dieser Hardware wird automatisch eine entsprechende Meldung auf die Konsole COM1 generiert Der Nutzer hat nun die M glichkeit zwischen lt ESC gt Neustart D Debugger L RAM loeschen K BASIC Kaltstart W BASIC Warmstart R REMOTE I O auszuw hlen damit der weitere Verlauf seiner Programmierung stattfinden kann Bei bet ti gen der ESC Taste wird ein erneuter RESET ausgef hrt Warmstart bei D gelangt man direkt in den Debugger Modus mit speziellen Befehlen die eine maschinennahe Program mierung und Analyse zul sst Die Taste L l scht den gesamten SRAM Speicher so dass hier keine zuf lligen Datenfragmente entstehen K startet den BASIC Interpreter im Kalt Modus so dass alle internen BASIC Variablen gel scht und weitere Grundinitialisierungen vorgenommen werden Mit
91. eberspringe CALL ab Adresse C 9000 lt CR gt E RAM aendern ab Adresse E 7000 lt CR gt Leertaste vorwaerts Minustaste zurueck lt CR gt Ende Y Wert1 Wert2 usw suchen Y FE 1A lt CR gt Alle Register auf 0 setzen X lt CR gt R Register zeigen R lt CR gt RB0130 lt CR gt Register BC Wert 0130 R Register Wert z B BC loeschen RBO lt CR gt A AF B BC D DE H HL X 1X Y IY P PC S SP Stapel Wert setzen RS8000 lt CR gt RZBO130 lt CR gt Zweitregister BC Wert P Il Input PORT I O Adresse Direkteingabe PI7F Ausgabe in Hex und Bin r Leertaste beendet Port I O P O Output PORT I O Adresse Wert Direkteingabe PO34 FF lt CR gt lt CR gt wiederholt Befehl Leertaste beendet Port I O Ausgabe Z Zur ck zum Debugger Menue erneuter Aufruf dieser Textseite K Kaltstart RAM wird gel scht alle Schnittstellen werden neu initialisiert W Warmstart alle RAM Variablen bleiben erhalten lt ESC gt Neustart KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 37 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC SEPIA IDE Menue Das IDE Menue umfasst folgende Befehle IDE Editor DRIVE Master 0 Slave 1 Identify MBR lesen Error Status zeigen Drive INIT IDE RESET 1 Sektor lesen ablegen anzeigen Sektoren lesen max 3Eh Sektoren schreiben Sektoren ueberschreibe
92. eder in den Text Mode zur ck XGRESCOL setzt die Farbpalette zur ck original XGRCLS l scht die gesamte Grafik XGRSTCOL V H legt Vordergrund Farbe und Hintergrund Farbe fest XGRTEST erzeugt ein statisches Testbild mit Farbbalken XGRPSET X Y zeichnet einen Pixel an der Koordinate X Y XGRLINE X1 Y1 X2 Y2 zeichnet eine Linie von X1 Y1 nach X2 Y2 I Befehl O Parameter Grafikbefehlssatz X Sonderbefehlssatz Weitere Befehle und Beispiele AS INKEY lie t ein Zeichen von Tastatur COM1 nach A ein CLS L scht Bildschirm Cursor Pos 1 1 ANSI BBS LOCATE x y Text Cursor positionieren ANSI BBS BEEP kurzer Quittungston auf CPU Karte ausgeben RINGBELL wie BEEP jedoch mit ASCII Code 07h auf COoM1 var INP Port direkte Eingabe von I O Port bsp Optokoppler OUT Port byte direkte Ausgabe auf I O Port bsp Relais var INP Port direkte Eingabe von I O Port lesen OPTION Text Ausgaben formatieren CTRL lt E gt Tastenkombination f r Programmabbruch NEW BASIC Programm im Speicher RAM l schen BYE BASIC verlassen zum Debugger Menue wechseln LIST BASIC Listing anzeigen Pause mit Leertaste RENUMBER lt 100 20 gt Listing Zeilennummer neu formatieren CONT nach Abbruch Programm weiter ausf hren RUN ab Programmanfang starten STOP Programm abbrechen AUTO Automatische Zeilennummer bei Eingabe ERROR lt 1 48 gt Fehlermeldung von Nr ausgeben REPLACE Programmtext e
93. egister einlesen kann Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Opto Kanal 1 32 einlesen vier 8 Bit Register 120 CLS LOCATE 2 4 140 150 A INP amp B8 160 B INP amp B9 170 C INP amp BA 180 D INP amp BB 190 200 PRINT 1 BYTE INP A 210 PRINT 2 BYTE INP B 220 PRINT 3 BYTE INP C 230 PRINT 4 BYTE INP D Hinweis zur Hardware Da die 32 bit Karte insgesamt 4 Register zu je 8 bit verwendet erfolgt die Abfrage auf vier unterschiedlichen I O Adressen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 27 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Optokoppler Ausg nge auf A32 Karte programmieren Alle Optokoppler Ausg nge lassen sich auf dieser Erweiterungskarte direkt byte weise erzeugen so dass OUT Befehle auf der zugeh rigen Kartenadresse das jeweilige Ausgabe Register berschreiben kann Das byte wird hierzu invertiert bergeben damit bei einem Hardware RESET alle Ausg nge lachtch up bedingt hochohmig high Z sind Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Ausgabe Opto Kanal 1 Register 110 X 128 REM setzte Bit 7 0x80h 120 OUT amp BC 255 X REM Output Hinweis2 zur Hardware Da die 32 bit Karte insgesamt 4 Register zu je 8 bit verwendet erfolgt
94. eitere Befehle integriert xPOKE und XPEEK Hiermit lassen sich direkt 64k Schreib und Leseoperationen je Segment komfortabel handhaben Die Segementumschaltung erfolgt zuvor ber den Befehl XSEG 1 15 Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 CLS LOCATE 2 2 110 PRINT SEPIA SRAM amp MEM CHECK 32 512 1MB 120 PRINT y 130 PRINT 140 POKE amp FO000 amp A5 150 B PEEK amp F000 160 IF B amp A5 THEN PRINT 32 KB Programmspeicher o k 170 PRINT 200 210 FOR X 1 TO 15 220 XSEG X 230 XPOKE amp F000 amp A5 240 B XPEEK amp F000 250 IF B amp A5 THEN PRINT Test 64k Segment X 260 NEXT X A Anmerkung Um die Funktionen der Speichererweiterung nutzen zu k nnen ben tigen Sie die MEM Karte mit mindestens einem SRAM Speicher Chip Der Befehl XSEG gibt die jeweilige Segmentadresse 64k Block vor Die absolute RAM Adressierung muss gem der tats chlichen Speicherbest ckung entsprechen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 20 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC WDC Watchdog auf RTC Karte programmieren Die gesamte WDC Programmierung erfolgt ber drei I O Register OUT amp 2C x 0 15 setzt 16 verschiedene Zeitfenster f r den Time out O
95. el 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 47 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XIPEAK Fortsetzung mit Mode 1 Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM XIPEAK Test mit Mode 1 f r eine Sekunde Pulse 110 120 A amp 29 REM I O Adresse f r TTL Port 140 T 312 REM 16Bit Variable f r Impulszeit 160 M 1 REM Mode 1 180 200 XIPEAK A T M REM Befehl ausf hren Die folgende Tabelle zeigt den Bezug bei Mode 1 zwischen Impulszeit und Einstelldauer Time word Dauer exakte Dauer td T 1 3 2 ms 3 205 ms kleinste Verz gerung T 2 6 4 ms 6 406 ms T 5 16 ms 16 010 ms T 10 32 ms 32 017 ms T 20 64 ms 64 032 ms T 40 128 ms 128 060 ms T 50 160 ms 160 074 ms T 80 256 ms 256 117 ms T 100 320 ms 320 145 ms T 200 640 ms 640 286 ms T 312 1 Sekunde 998 843 ms wie im Beispiel angegeben T 625 2 Sek 2000 99 ms T 1000 3 2 Sek 3201 41 ms T 2000 6 4 Sek 6402 82 ms T 4000 12 8 Sek 12805 64 ms T 10000 32 Sek 32014 09 ms T 0 210 Sek l ngste Verz gerung Dr td Hinweis Dieser Befehl hat eine sehr hohe Priorit t W hrend der Ausf hrung z hlt die CPU die programmierte Zeitschleife strikt herab Somit k nnen keine anderen Funktionen zeitgleich ausgef hrt oder abgefragt werden auch keine Tastatureingaben KOLTER ELECTRONIC
96. eliebige Befehle NEXT Laufvariable KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 151 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC THEN Verwendungszweck IF THEN Anweisung Logische Weiterverzweigung bei Wahr True Syntax IF Wahr THEN GOTO Verzweigung Wirkungsweise IF weist das Programm an den nachfolgenden logischen oder Vergleichsausdruck zu pr fen Ergibt die Auswertung 1 Wahr bzw True so f hrt der BASIC Interpreter die nachfolgende Anweisung entsprechend aus andernfalls wird die Anweisung zur Verzweigung ignoriert bzw bersprungen THEN verkn pft bei 1 Wahr diese Anweisung mit einem weiteren BASIC Schl sselwort z B GOTO oder GOSUB Es k nnen jedoch auch andere Anweisungen oder Ausgaben stattfinden oder ein Numerischer Ausdruck in einer Variablen ver ndert werden Beispiel 1 10 A 10 20 B 20 30 IF A B 30 THEN GOTO 100 40 REM 100 PRINT Das Ergebnis ist 30 Beispiel 2 10A 10 30C 0 40 IF A B 30 THEN C A B 50 GOTO 100 100 PRINT Das Ergebnis ist C Beispiel 3 10A 10 20 B 50 30 FORX ATOB 40 IF X 30 THEN PRINT Das Ergebnis ist X 50 NEXT 60 END KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 152 SEPIA DOKUMENTATION
97. en String mit n Zeichen Beispiel 10 A ABC123 20 B RIGHT A 4 30 PRINT B RUN C123 Hinweis Siehe auch MID und LEFT KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 139 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC REPLACE Verwendungszweck Ersetzen von Zeichen im Programmteil Syntax REPLACE x y Nummer Befehlsform REPLACE alte Zeichenkette neue Zeichenkette Zeilennummer oder Zeilenbereich Wirkungsweise Eine bestimmte Zeichengruppe kann durch eine andere ersetzt werden Dies erspart viele EDIT Aufrufe wenn z B in allen Programmzeilen einen Variablennamen durch einen anderen ersetzt werden soll Die ver nderten Zeilen werden angezeigt Die Trennzeichen k nnen verschiedenartig sein sie sind bei dem Befehl FIND n her erl utert Allerdings m ssen Anfangs und Endzeichen jeweils gleich sein Da BASIC Befehle nur in Gro buchstaben in Programmen vorhanden sind werden klein geschriebene Zeichenketten nat rlich nicht gefunden Die maximale Zeichenanzahl von 254 Zeichen darf durch die Ver nderung nicht berschritten werden sonst ergibt dies die Fehlermeldung String zu lang Beispiel REPLACE A B 10 2300 Hinweis Die Variable A wird soweit vorhanden in den Zeilen 10 2300 durch die Variable B ersetzt Sind Hochkommas in einer Zeiche
98. en angelegt und sogar einzeln formatiert werden Die Formatierung erfolgt ber das Debugger Menue mit S zum SEPIA IDE Menue mit dem Tastenk rzel F Jede Datei kann zudem beliebig oft mit neuen Programmen berspielt oder einzeln gel scht werden KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 33 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC 16 Bit I O Adressen direkt ansteuern Mit SEPIAs Advanced BASIC k nnen 16 Bit Adressen auf dem Adressbus generiert werden Dazu wird das BC Register des Prozessors verwendet indem die Adressen A8 A15 auf B und A0 A7 auf das C Register eingeschrieben werden Werden anschlie end INP oder OUT Befehle verwendet liegt die Adresse mit dem IORQ Signal an sodass eine Dekoder schaltung diese als 16 Bit Adresse interpretieren kann Zur Unterscheidung wurden hierzu weitere Advanced Befehle integriert die diese Zugriffe behandelt XOUTWD word byte auf 16Bit I O Adresse ein byte schreiben byte XINPWD word auf 16Bit I O Adresse ein byte lesen Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM 16 Bit I O Test 120 CLS 140 LOCATE2 2 160 XOUTWD amp B0 55 REM Schreibe 55 nach BOh Relaiskarte 180 XDELAY 1000 200 X XINPWD amp BO0 REM Lese den Port zur ck nach X 220 PRINT Register X
99. er NET Karte erzeugt werden kann Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Zeichensatz ausgeben 110 For X 0 to 23 120 PRINT 130 NEXT X 150 PRINT CHRS 27 1J 160 PRINT CHRS 27 H 170 PRINT CHR 27 0 0H 180 190 FOR Z 30 TO 255 200 PRINT Z CHRS Z a 210 NEXT Z Mit dem Advanced BASIC Befehl XSTROUT comnr 1 7 lassen sich ASCIl Zeichen als String zu einer anderen COM Schnittstelle einfach umlenken bzw ausgeben Beispiel 100 DIM AS 10 REM Konsole gt Ethernet 110 A Hallo REM Zeichenkette nach A 120 XSTROUT 6 A REM String auf COM6 senden Es geht auch umgekehrt 100 DIM AS S 80 REM Ethernet gt Konsole 110 A XSTRINS 6 REM lese String auf COM6 120 Print A D REM nach lt CR gt String auf Konsole Achtung kein G wie String sondern Bitte Syntax beachten Oder zur Ausgabe ein einzelnes Zeichen auf COM1 7 100 A 66 110 XCOUT 7 A REM Character ASCII Zeichen B REM Zeichen auf COM7 ausgeben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 17 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Zeichensatz und Daten bertragung 2 M chte man die Schnittstelle extern berpr fen kann man beispielsweise Daten als Echo auf dem gleichen COM Port zur cksenden Geben Sie
100. erden ohne das fl chtige Daten oder Zeiger zerst rt werden Im umgekehrten Fall kann der Debugger Betrieb mit W wie Warmstart verlassen werden um sich wieder dem BASIC Programm zu widmen Wird der Debugger mit K verlassen werden alle Zeiger und Teile von Variablen wie Initialisierungstabellen neu gesetzt berschrieben wie RESET Zustand Die Besonderheit dieser Vorgehensweise erlaubt dem Nutzer die optionale Einbringung von Z80 Maschinencode in den BASIC Speicher Durch CALL Adresse wird dieser implizierte Code unter BASIC ansprechbar Bitte nicht vergessen Sprungadresse am Schluss mit RET beenden Wird dieses BASIC Programm anschlie end auf einen Datentr ger abgespeichert so wird auch der implizierte Code mit bernommen Dies hat den Vorteil das man BASIC und Z80 Maschinensprache miteinander beliebig mischen speichern und zur ckladen kann In diesem Fall ist es ratsam sich vorher einen Teilbereich des BASIC Speichers f r die Gr e seines Codes zu reservieren damit keine berschneidungen von Speicherbereichen stattfinden k nnen Die Reservierung kann gleich zu Beginn beim Start des BASIC Interpreters erfolgen Die Return Taste nimmt keine Speicherreservierung vor und weist den gesamten RAM Speicher dem Interpreter zu i d R 31821 Byte Rechenbeispiel Das SRAM besitzt ursp nglich 32768 byte Speicherzellen Davon werden i d R 947 Byte f r interne Zwecke wie Zwischenparameter und Variablen Stack Buf
101. ersucht werden um beispielsweise Programmabst rze noch vor dem Absturz zu sichten Syntax TRACE Befehlsform TRACE Kanal Satznummer Wert Wirkungsweise Die BASIC Zeilennummern der vom Interpreter bearbeiteten Programmzeilen werden nach dem RUN Befehl nacheinander auf den angegebenen Kanal ausgegeben wenn f r den Parameter WERT die Zahl 1 eingesetzt wurde TRACE wird durch den WERT O wieder abgeschaltet Beispiel 10 REM Text 20 PRINT Schalte TRACE in der naechsten Zeile an 30 TRACE 1 40 REM 50 PRINT Schalte TRACE in der naechsten Zeile wieder ab 60 TRACE 0 70 REM Fertig 80 STOP Hinweise TRACE 1 lt CR gt Ausgabe der Zeilennummern der bearbeiteten Programmzeilen in Spitzklammern am Bildschirm lt 10 gt lt 20 gt lt 30 gt lt 145 gt usw Trace 0 schaltet den Befehl wieder ab TRACE 2 1 lt CR gt Ausgabe der Zeilennummern auf den Drucker LPT1 TRACE verh lt sich hnlich wie TRON TROFF bei anderen BASIC Varianten KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 150 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC TO Verwendungszweck Siehe FOR Schleifenbefenhl FOR TO STEP EXIT NEXT Diese Befehle dienen zum Aufbau von Befehlsschleifen Befehlsform FOR Laufvariable Anfangswert TO Endwert STEP Schrittweite u b
102. ert um verschiedene Time Out Zeitfenster zu bestimmen Ein weiteres Kontroll Register schaltet die WatchDog Funktion ein bzw aus Danach muss auf einem O Port ein regelm iger Zugriff durch das Hauptprogramm erfolgen Unterbleibt der Zugriff innerhalb des programmierten Zeitfensters bsp Softwarefehler schaltet das Relais den RESET Vorgang ein damit der Rechner automatisch neu starten kann Dabei schaltet das Relais mittels Ruhestrom als ffner Fail Safe Der anschlie ende RESET Vorgang setzt die Watch Dog Funktion wieder zur ck in eine neutrale Ausgangsposition R ckfallebene bis erneut eine gewollte Freigabe durch das Programm erfolgt Der Relaiskontakt kann zudem f r eine Weiterschaltung bsp als Folgerelais Alarmkontakt Meldelinie genutzt werden Die RESET Leitung zur CPU kann zus tzlich durch einen Jumper je nach Bedarf unterbrochen werden so dass der Relaisausgang f r andere Zwecke nutzbar ist KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 21 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Relais auf RL3 Karte programmieren Alle Relais lassen sich auf dieser Erweiterungskarte direkt byte weise ansteuern so dass ein OUT Befehl auf der zugeh rigen Kartenadresse die Kontaktstellung entsprechend ab ndert Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM RELAI
103. fehl gesprungen sondern zu der angegebenen Zeilennummer So kann ber GOSUB Ebenen hinweg gesprungen werden ON Z RETURN Zeilennummer A Zeilennummer B usw Wie beim GOSUB Befehl kann auch unter bestimmten Bedingungen der RETURN Befehl ausgef hrt werden Hinweise Ein Unterprogramm kann in einem Programm beliebig oft aufgerufen werden Unterprogramme lassen sich ebenso von anderen Unterprogrammen aus aufrufen Die Verschachtelung von Unterprogrammen ist nur durch den verf gbaren RAM Speicherplatz begrenzt Unterprogramme k nnen an beliebiger Stelle des BASIC Programms stehen Der bessern bersicht halber sollten Unterprogramme jedoch deutlich vom Hauptprogramm zu unterscheiden sein KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 95 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC HEX Verwendungszweck Diese Stringfunktion wandelt eine als Argument angegebene Dezimalzahl abgerundeter Wert im Bereich von 65535 bis 65535 in eine Zeichenfolge als String um welcher die Sedezimalzahl in hexadezimaler Schreibweise enth lt Syntax X HEX Zahl Wirkungsweise Bei Hex Zahlen muss das amp Zeichen bei sedezimaler Schreibweise immer vorangestellt werden Die HEX Funktion setzt 16 Bit breite Dezimalwerte in eine hexadezimale Zeichenfolge im Bereich von 0000 bis FFFF als String um Beispiele PRIN
104. fer Drive Tabelle String Buffer Uhrzeit und Sektoren Buffer verwendet Um eine genauere Speicherbelegung der einzelnen Bufferbereiche zu ermitteln kann im Debugger die Taste weiter Auskunft ber die g ngigen Labels geben Darin enthalten sind ebenso BASIC Anfang und BASIC Ende Adresse sowie aktuelle Stapeladresse und freier RAM Bereich KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 35 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC Debugger Menue Der Debugger umfasst folgende Befehle DEBUGGER V2 41 22 04 59 03 06 2012 Sonntag IDE Editor RAM loeschen amp Neustart RAM anzeigen ab Adresse Befehle interpretieren ab Adresse RAM fuellen von bis Wert ASCII Text eingeben max 256 Starten ab Adresse Breakpoint Einzelschritt ab Adresse Einzelschritt ohne CALL RAM aendern ab Adresse Wertl Wert3 suchen DEBUG Register Wert DEBUG Register loeschen Port I O I77 oder 077 35 Uhrzeit Datum stellen CPU Temperatur Protokoll Drucker EIN AUS XSEG Segmentregister Label Adressen Zurueck lt Esc gt Neustart K Kaltstart W Warmstart N Z HS CU KA Kin HaAP gt P HH mu Il Das SEPIA IDE Menu kann direkt mit der Taste S angew hlt werden Hier trifft der Anwender weitere M glichkeiten zur Diagnose oder kann beispiel
105. g f r laufende Programmanwendungen genutzt werden kann CTRL E unterbricht ein laufendes Programm an der aktuellen BASIC Zeilenummer welche gerade vom Interpreter im Speicher bearbeitet wird Mit CONT kann das Programm mit der darauf folgenden Zeilennummer wieder fortgef hrt werden falls keine nderungen am Programmtext vorgenommen wurden Alle Zwischenwerte Variablen bleiben erhalten Die TAB Taste f hrt einen Cursor Sprung Tabulator um 8 Zeichen nach rechts aus Die Shift TAB Tastenkombination macht die letzte TAB Eingabe wieder r ckg ngig ber die AltGR Taste sind viele Sonderzeichen der dritten Tastenebene erreichbar Die Caps Lock Taste Pfeil nach unten ist bei SEPIA als Umschalter definiert Sie schaltet bei Bet tigung jeweils von Klein nach Gro buchstaben oder Gro nach Kleinbuchstaben um Wird die Shift Taste Pfeil nach oben vor einem zweiten Tastendruck mitgew hlt kann vor bergehend von Klein nach Gro buchstaben manuell umgeschaltet werden so lange die Taste gehalten wird Hinweise zum Scan Code der Tastatur Die NUM Lock Taste wird beim Booten nicht aktiviert Damit sind AT Pfeiltasten sofort nutzbar CTRL Zeichen erfolgen unter CP M optional mit vor dem empfangenen Buchstaben Die Zeichen und deutsches Layout werden gem ASCII Tabelle nicht unterst tzt Die deutschen Umlaute werden direkt als Doppelzeichen in ae oe und ue bersetzt Der Buchst
106. h Parallel bergabe ein Byte auf COMx senden x 1 2 3 4 5 6 7 ein Byte von COMx empfangen als Zahlenwert 0 255 empf ngt eine Zeile mit 80 Zeichen von COMx sendet einen String auf COMx x 1 2 3 4 5 6 7 lie t ein Zeichen von Tastatur auf COM1 nach Variable Befehl ohne Parameter l st Hardware SYSTEM RESET aus erzeugt auf I O Adresse byte einen zeitlich def Impuls erzeugt auf I O Adresse byte bis 65535 Burst Pattern Text Ausgabe gibt CPU Temperatur auf Konsole aus auf 16Bit I O Adresse ein byte schreiben auf 16Bit I O Adresse ein byte lesen Programm wartet endlos auf einen Tastendruck Delay 0 65535 50000 ca 10 Sek Rechteck Ton erzeugen bytel Tonh he byte2 Tonl nge Text Ausgabe gibt Uhrzeit auf Konsole aus Text Ausgabe gibt Datum auf Konsole aus von RTCO aktuelle Sekunde nach Variable lesen von RTCO aktuelle Minute nach Variable lesen von RTCO aktuelle Stunde nach Variable lesen Schaltet 1 Sek Interrupt Generator von RTC Karte Ein Aus Byte auf ext MEM Karte hohe Adresse schreiben Byte von ext MEM Karte hohe Adresse lesen 64k Segmentadresse vorw hlen x 1 15 IDE Interface mit CF SD Card x Verzeichnisnummer 0 max 255 0 Root RESET IDE Medien neu initialisieren IDE RESET Command DIR Directory Verzeichnis ausgeben LOAD Programmdatei laden gefolgt von Dateinummer SAVE Programmdatei abspeichern gefolgt von Dateinummer RENAME Programmdatei umbenennen gefolgt
107. h oder im oberen EPROM Bereich 7FFO 7FFEh zu hinterlegen Programmer erforderlich Durch den erzeugten Interrupt vergr ert sich das Zeitverhalten der hier verwendeten Delay Schleife nur marginal um die Ausgabedauer der erzeugten Meldung auf dem Bildschirm Diesen Umstand muss man bei der Programmierung stets mit ber cksichtigen wenn ereignis und oder zeitkritische Unterprogramme ber Interruptanforderungen abgearbeitet werden sollen Hardwaretechnisch befindet sich das Enable Bit auf der I O Adresse 02Eh Data 0 Mit XIRQON wird gleichzeitig ein El Befehl zur CPU abgesetzt Es besteht zus tzlich die M glichkeit noch weitere Interruptanforderungen abzuarbeiten wenn das IRQ Register in die Programmierung einbezogen wird gt gt IRQ Register siene MAPALL ASM KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 49 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Weitere BASIC Beispiele 100 REM Kreisumfang berechnen 110 INPUT Radius R 120 U 2 PI R 130 F PI R R 140 PRINT RADIUS R 150 PRINT UMFANG U 160 PRINT FL CHE F 100 REM Cosinuns 110 PRINT COS PI 130 D 180 140 R D PI 180 150 PRINT COS R 100 REM String Zeichenkette bearbeiten 110 A S Test123 120 BS LEFTS A 3 130 PRINT B 100 INPUT Wort L nge A L 110 IF A E THEN END 120 AS FIX A L 1
108. i card com Internet http www kolter de Seite 62 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ASC Verwendungszweck Erzeugt einen numerischen Wert der den ASCII Code f r das erste Zeichen einer String Zeichenfolge enth lt Syntax ASC X Wirkungsweise Wenn das Ergebnis X Null ist erfolgt eine Fehlermeldung Die ASCII Zahlen 0 9 bewirken nacheinander die Ausgabe 48 57 Weitere Werte Zuordnungen k nnen der ASCIl Tabelle entnommen werden Beispiel 10 X 1Hallo 20 PRINT ASC X RUN Nach Starten der Programmzeile 10 wird der Wert 49 f r 1 als Print Ergebnis auf den Bildschirm ausgegeben KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 63 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ATN Verwendungszweck Das Ergebnis liefert den Arcustangens von X wenn X im Bogenma angegeben wurde Syntax ASC X Wirkungsweise Der berechnete Wert liegt im Bereich von n 2 bis 7 2 Der Ausdruck X kann ein beliebiger numerischer Wert sein Die Umrechnung mit ATN erfolgt mit einfacher Genauigkeit max jedoch mit 12 Stellen Beispiel 10 INPUT X 20 PRINT ATN X RUN Nach Starten der Programmzeile 10 und Input Eingabe von 3 wird der Arcustangens von X berechnet Das Ergebnis liefert den Wert mit 1 249046 zu
109. ieser Adresse enth lt die L nge der Zeichenkette das n chst folgende Byte ist immer 0 Die dann folgenden beiden Bytes enthalten die Adresse der Zeichenkette das LOW Byte zuerst Die letzten beiden Bytes werden nicht ben tzt Beispiel 10A 2 20 A TEST PRINT VARPTR A lt CR gt Ausgabe der dezimalen Adresse PRINT VARPTR A lt CR gt Ausgabe der dezimalen Adresse des Stringzeigers Hinweis VARPTR Variable liefert hier die Zeiger Adresse des ersten Datenbytes der angegebenen Datenvariable Vor der Ausf hrung der VARPTR Funktion mu dem Variablennamen ein zul ssiger Wert zugewiesen werden anderenfalls wird eine Fehlermeldung ausgegeben Der Variablenname kann von beliebigem Typ sein Bei der zur ckgegebenen Adresse handelt es sich immer um einen ganzzahligen Wert zwischen 0 und 65535 Vor dem Aufruf sollten alle einfachen Variablen bereits zugewiesen sein da sich die Adressen jedesmal ndern wenn wieder neue Variablen zugewiesen werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 156 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC WAIT Verwendungszweck Schleifenbefehl unterbricht die Programmausf hrung und wartet bis der Vergleichswert mit dem Eingangsport l O Port bereinstimmt Syntax WAIT Adresse A Maske M Zustand Z Wirkungsweise Der Interpreter wartet in eine
110. in eine Zeile geschrieben werden 10 FOR I 1 TO 10 15 INPUT Eingabe X 20 IF X e THEN 100 25 A l X 30 NEXT 40 END 50 100 FORJ 1 TO 10 110 FOR I 1 TO 10 120 PRINT I J 130 NEXT I 140 NEXT J Hinweis Nach dem Sprung zur Zeile 100 tritt beim ersten NEXT J die Fehlermeldung NEXT ohne FOR Zeile 140 auf Der EXIT Befehl in einer neuen Zeile 20 beseitigt diesen Fehler ndern Sie Zeile 20 in 20 IF X e THEN EXIT 100 1 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 88 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC FOR Verwendungszweck FOR gibt an wie oft eine Reihe von Instruktionen in einer Schleife durchgef hrt weden sollen Syntax FOR Variable x To y STEP z NEXT Variable Variable Wirkungsweise Diese Befehle dienen zum Aufbau von Befehlsschleifen FOR Laufvariable Anfangswert TO Endwert STEP Schrittweite beliebige Befehle NEXT Laufvariable Beispiele 10 FOR I 1 TO 1 STEP 0 1 20 PRINT I TEST 30 NEXT I Die Angabe der Laufvariable nach dem Befehl NEXT kann kei nur einer Schleife entfallen Bei verschachtelten Schleifen mu die jeweilige Laufvariable mit angegeben werden Solche Schleifen m ssen nach dem Schema FOR A FOR B FOR C usw NEXT C NEXT B NEXT A aufgebaut sein Da die R cksprungadressen der Schleife
111. ine Meldung ausgegeben Beispiel 10 IF Z gt 1000 THEN END ELSE GOTO 20 20 REM weiter Wenn der Wert von Z 1000 berschreitet wird das Programm beendet und es erfolgt eine R ckkehr zur Befehlsebene KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 81 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ERL Verwendungszweck ERL bergibt die BASIC Zeilennummer in der ein Fehler w hrend der Programm Laufzeit der Interpreters festgestellt wurde Syntax n ERR Wirkungsweise Der in ERL enthaltene nummerische Wert enth lt die Zeilennummer Beispiel ERL Hinweis Die Variable ERL enth lt die Zeilennummer der Programmzeile in der der Fehler auftrat Ein ERL Fehler bei der Ausf hrung eines Direktbefehles ergibt den Wert 65535 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 82 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC ERR Verwendungszweck ERR bergibt einen Fehlercode welcher in der Fehlertabelle als Nummer f r die Ausgabe zugewiesen wurde ber die Fehlernummer l sst sich der aufgetretene Fehler gem der BASIC Fehlertabelle feststellen Die Fehlertabelle enth lt auch regul re BASIC Meldungen wie beispielsweise Nr 21 mit BASIC verf gbar
112. ion CTRL E f r End Abbruch erfolgt Der Interpreter meldet den Abbruch immer mit Zeilennummer Durch ndern der X und Y Position im LOCATE Befehl l sst sich die Textausgabe auch an anderer Stelle ausgeben Das in X Richtung gro e Spaltenfeld hat max 80 Zeichen das in Y Richtung 36 Zeilen Gr ere Angaben sind nicht erlaubt Die eingegebene X und Y Position zeigt immer auf das erste Zeichen einer Textausgabe A Hinweis zur Hardware Der Temperatursensor befindet sich im 40 pol DIL Sockel unterhalb der CPU Es handelt sich hierbei um einen TMPO4 im TO92 Geh use der Fa Analog Device Der Sensor erzeugt dazu Rechteck Impulse die in einer Statemachine vom CPLD IC in Echtzeit zu einer 32 Bit Zahl zeitlich vorberechnet wird Die Differenz ergibt anschlie end einen 16 Bit Wert welcher proportional zur aktuellen Temperatur intern zur Verf gung steht Damit die Temperatur in Grad Celsius angezeigt werden kann muss die CPU bzw ein Z80 Unterprogramm diesen Wert entsprechend umrechnen Hierzu wird ein Divisor und ein Quotient ben tigt welche auch im BIOS EPROM als Festwerte zur sp teren Kalibration des Sensors hinterlegt sind Der Devisor liegt auf der EPROM Speicherstelle 0020h der Quotient auf 0023h KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 11 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASI
113. ird eine Fehlermeldung nicht erlaubt ausgegeben Daher sollte erst immer eine Plausibilit tskontolle vorausgehen damit x nie lt 0 ist Beispiel PRINT LOG 1000 lt CR gt Anzeige 6 907755279 PRINT LOG EE lt CR gt Anzeige 1 Hinweis LOG ist die kompliment re Umkehrfunktion zu EXP KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 108 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LOG10 Verwendungszweck LOG10 berechnet den nat rlichen Logarithmus eines Arguments das gr er ist als NULL zur Basis 10 Syntax v LOG10 x LOG10 Es erfolgt die Berechnung des dekadischen Logarithmus zur Basis 10 Wirkungsweise Der dekadische Logarithmus ist nur f r positive Zahlen verwendbar Bei x 0 NULL oder negativ wird eine Fehlermeldung nicht erlaubt ausgegeben Daher sollte erst immer eine Plausibilit tskontolle vorausgehen damit x nie lt 0 ist Beispiel PRINT LOG10 1000 lt CR gt Anzeige 3 PRINT LOG10 EE lt CR gt Anzeige 4342944819 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 109 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LEN Verwendungszweck Numerische L nge einer Zeichenkette String ermitteln Syntax y L
114. l Dabei m ssen die Grenzen der m glichen Koordinaten eingehalten werden S mtliche Angaben erfolgen als Ganzzahl Beispiel 10 CLS 20 LOCATE 10 12 30 PRINT Hallo Die Ausgabe Hallo erscheint in Spalte 10 Zeile 12 Hinweise Der Ursprung auf den sich diese XY Koordinaten beziehen liegt oben links an Position 1 1 Da die VGA Karte von SEPIA 80 Zeichen in 35 36 Zeilen darstellt d fen diese Koordinaten nicht berschritten werden Werden dennoch h here Koordinaten verwendet scrollt der Bildschirm entsprechend hoch sodass die Zeichensausgabe stattfinden kann Dabei k nnen zuvor erzeugte Textdarstellungen in den oberen Zeilen gel scht werden nach oben rutschen Die Koordinate 0 0 gibt es nicht und wird wie 80 36 behandelt Merke Min Spalten X Min Zeile Y Max Spalten X Max Zeile Y 1 1 80 35 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 112 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC MID Verwendungszweck Austausch von String Teilen Diese Funktion ersetzt Zeichen einer Zeichenkette mit n Zeichen einer anderen Zeichenkette Syntax x MID Zeichenkette oder Stringvariable Startzeichen Zeichenanzahl Wirkungsweise Kopiert einen Teil String an eine bestimmte Stelle im Haupt String Eine durch das Startzeichen und die Zeichenanzahl bestimm
115. l 1 120 XDAC amp 0OFFF amp 9A REM setze 10 Volt auf Kanal 2 130 XDASET amp 98 REM DAC Latch amp Output Freigabe Hinweise zur Hardware Die DA1 Karte bietet je nach Best ckung wahlweise zwei oder vier D A Kan le mit je 12 Bit Aufl sung an Je nach Referenz Chip REF01 REFO2 und Jumper Einstellung k nnen Ausgangsspannungen von 10 Volt 0 10 Volt oder 5 Volt 0 5 Volt erzeugt werden Die Wandler arbeiten intern mit Latch Zwischenspeicher so dass alle Kan le auch zeitgleich bergeben werden k nnen siehe Beispiel 2 Die Grundeinstellung uni bipolar erfolgt f r jeden Wandler Baustein getrennt Da bei dieser Karte Dual ICs verwendet werden zwei Wandler in einem DIP Geh use gilt die Einstellung immer paarweise Die I O Basisadresse ist einstellbar Dazu wird die Adresslage f r den Port Zugriff mit DIP Schalter DIP SW1 ausgew hlt Insgesamt ben tigt die Karte 8 Register Zwei Lese Register dienen zur bergabe der neuen DAC Werte sowie einem schaltbaren Ausgang welcher w hrend der RESET Phase abge schaltet bleibt disable um keine ungewollten Spannungszust nde zu erzeugen Alle I O Kartenzugriffe werden durch eine LED zus tzlich angezeigt Werkseitig verf gt das Interface ber eine 9pol D Sub Buchse Weitere Angaben k nnen Sie dem Datenblatt entnehmen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 25 SEPIA DOKUMENTA
116. l f r die BASIC Anwendung Syntax RUN Wirkungsweise Initialisiert alle Variablen sowie Zeichenketten und startet das im RAM Speicher befindliche BASIC Programm ab der ersten Programmzeile Beispiel RUN Hinweis Andere RUN Befehlsformen werden nicht unterst tzt Alternativ kann man auch mit GOTO Zeilennummer starten Dabei bleiben die bereits initialisierten Werte beibehalten KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 136 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RND Verwendungszweck Einfacher Zufallszahlengenerator Syntax x RND 1 Wirkungsweise Ohne Argument liefert der RND Befehl Pseudo Zufallszahlen zwischen O und 1 die einem festgelegten Algorithmus entstammen Dadurch ergeben sich nach dem Start des BASIC Interpreters immer dieselben Zahlen Beispiel PRINT RND lt CR gt Anzeige 26943583396 n n n 7 72796806886 n j 089675555242 Der Befehl RANDOMIZE ergibt einen zuf lligen Startpunkt der Pseudo Zufallszahlenfolge Z80 Zahl aus dem Refresh Register Wird als Argument der Wert Null angegeben wird erstmalig eine beliebige Zahl angezeigt und dann wiederholt PRINT RND 0 lt CR gt Anzeige z B 5019531548 PRINT RND 0 lt CR gt n 5019531548 Werte gr er Null entsprechen dem RND Befehl ohne Argument PRINT RND 1 ergibt dieselben
117. mensionierung f r Zahlen in Variable A und B werden gel scht Hinweis Vorsicht Verwechselungsgefahr Der KILL Befehl wird in anderen BASIC Varianten eventuell als Datei L sch Befehl auf Datentr ger verwendet SEPIA benutzt hierzu jedoch nicht den KILL sondern den ERASE Befehl Siehe Advanced BASIC KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 104 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC LET Verwendungszweck LET veranlasst eine Zuweisung von Werten an eine Variable Syntax LET K x Wirkungsweise Die LET Anweisung erlaubt einen Festwert als nummerischen Ausdruck einer zu bildenden Variablen zuzuschreiben Durch die LET Anweisung k nnen Werte f r jedes Abfrageergebnis auch neu berechnet werden Beispiel 10 LET K 1 2345678 20N K 1 30 PRINT K N Bei SEPIA gehts auch ohne 10 K 1 2345678 20N K 1 30 PRINT K N Hinweis In der Regel wird aus Gr nden der bersichtlichkeit die Variable im Programm anschlie end als Konstante verwendet Die Zuweisung kann ebenso direkt also auch ohne LET erfolgen In lteren BASIC Interpretern und oder Beispielprogrammen wird jedoch oft noch die LET Anweisung verwendet KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 105 SEPIA DOKUMENTATION RT ZBAS
118. mit 8255 Chip wird bereits beim booten auf Ausgabe initialisiert um beipielsweise einen zweiten Drucker anzusteuern Somit l sst sich der Daten Port PB auch f r andere Zwecke verwenden wenn auf diese I O Adresse direkt geschrieben wird Mit dem erzeugten Signal lassen sich beipielsweise programmierbare Bursts bis zu 65535 Pulsen mit versetzten Pegeln wie bei einem Drehgeber simulieren oder einfach nur eine bestimmte Anzahl von Impulsen zu Pr fzwecken ausgeben Wendet man den Befehl mehr mals hintereinander an sind entsprechend h here Counter Bursts m glich W hrend der XPULSE Befehl ausgef hrt wird sollte die CPU keinen Interrupt verarbeiten Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN Beispiel Mode 0 einfacher Impulsgenerator 100 REM XPULSE Test Port Toggle 01010101 gt 10101010 110 XPULSE amp 29 65535 0 REM erzeugt jetzt 65535 Pulse 120 XDELAY 5000 REM kleine Pause 130 OUT amp 29 O0 REM Port auf Null zur cksetzen Beispiel Mode 1 Drehgeber Simulation B vor A Signal voreilend 100 REM XPULSE Test Bit0 A Bitl B Bit2 A Bit3 B 110 XPULSE amp 29 1000 1 REM erzeugt jetzt 1000 Pulse 120 XDELAY 5000 REM kleine Pause 130 OUT amp 29 O0 REM Port auf Null zur cksetzen Beispiel Mode 2 Drehgeber Simulation A vor B Signal nacheilend 100 REM XPULSE Test Bit0 A Bitl B Bit2 A Bit3 B 110 XPULSE amp 29 2000 2 REM erzeugt jetzt 2000 Pulse 120 XDELAY 5000 REM kleine
119. n Directory Verzeichnis Nr Formatieren J N Dateiname aendern Datei laden Programm starten Datei speichern Hardcopy EIN AUS lt CR gt Zurueck gt Debugger NEUE Zya DOHRWOKKHSHS Il lt Esc gt Neustart K Kaltstart W Warmstart gt Das Menue ist weitgehend selbsterkl rend Mit V O oder 1 wird der IDE Datentr ger Master oder Slave aktiviert mit l wird die Identifikation des Datentr gers als Hex und ASCII Dump angezeigt mit M l sst sich der Master Boot Record auslesen Mit Taste E wird der IDE Controller angewiesen das jeweilige Medium auf Fehler zu pr fen Mit X wird die Drive Tabelle neu bertragen mit Y wird das Medium neu gestartet Mit Taste Q kann man einen bestimmten Sektor direkt vom Medium laden 512 Byte ins RAM ablegen und anschlie end anzeigen lassen Mit R und T werden Sektoren direkt gelesen geschrieben oder mit O berschrieben Die Taste D hat die gleiche Funktion wie der DIR Befehl in BASIC Mit J kann die Verzeichnisebene Zylinder High bis max 255 gewechselt werden um weitere Dateien zu verwalten Mit F wird der Datentr ger auf dem jeweiligen Zylinder formatiert Somit kann man einzelne Verzeichnisse formatieren ohne Daten in anderen Verzeichnissen zu zerst ren Mit N kann ein Dateiname ber die Dateinummer wieder neu vergeben werden L funktioniert wie LOAD unter BAS
120. n BASIC aus werden mit diesem Befehl die Eingangs Ports direkt angesprochen wobei ein Byte mit 8 bit Breite gelesen und dezimal angezeigt wird Die Ausgabe eines Bytes erfolgt mit dem Befehl OUT Somit ist INP die Komplement rfunktion der OUT Anweisung Syntax INP Port n Wirkungsweise n ist eine g ltige Anschlu nummer Portnummer im Bereich von 0 bis 65535 Bei der hier verwendeten Z80 CPU sind Portnummern gr er 255 jedoch nicht erlaubt 16 bit O Zugriffe sind i d R nur ber 16 bit Prozessoren spezielle Hardware oder mittels spezieller Advanced BASIC Befehle m glich Port 256 ergibt die Fehlermeldung nicht erlaubt Beispiel PRINT INP amp 10 lt CR gt Der Wert kann auch einer Variablen zugewiesen werden 10 A INP amp 10 20 PRINT A Hinweis Bei Ausf hrung enth lt die Variable A den am Anschlu 10h bereitstehenden Dateninhalt Der gelieferte Wert ist 8 bit breit Dezimalwert im Bereich 0 bis 255 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 97 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC INPUT Verwendungszweck INPUT erwartet ein Zeichen ber die Tastatureingabe und bereitet das Programm auf diese Eingabe w hrend der Programmausf hrung vor Syntax INPUT beliebiger Text Variable 1 Variable 2 usw Wirkungsweise Mit diesem Eingabe Befehl werde
121. n Zahlen in nummerische AO Z9 und Zeichenketten in Stringvariablen A0O Z9 eingelesen siehe VARPTR Variablenkennzeichnungen mit mehr als zwei Buchstaben sind erlaubt werden aber nicht unterschieden lt CR gt als Eingabe f hrt nicht zum Programmabbruch sondern bernimmt den Wert O bei nummerischen bzw einen Leerstring bei Stringvariablen siehe auch INPUT Beispiele 10 INPUT EINGABE A Auf dem Bildschirm erscheint nach dem Wort Eingabe ein Fragezeichen siehe OPTION und der Interpreter wartet solange bis eine Zahl ber die Tastatur eingegeben wurde Der Versuch Buchstaben einzugeben ergibt hier die Fehlermeldung Falsche Eingabe Sedezimale Zahlen werden immer mit vorangestelltem amp Zeichen und mit Gro buchstaben eingegeben 10 INPUT Eingabe A1 BA A2 Nach der Ausgabe des Fragezeichens k nnen eine Zahl eine Zeichenkette und wieder eine Zahl durch Komma getrennt eingegeben werden Wird die erste Eingabe mit lt CR gt abge schlossen so erscheinen zwei Fragezeichen ohne dass der Text in Anf hrungszeichen nochmal ausgegeben wird Bei der zweiten Eingabe Variable BA ergibt ein Komma die Fehlermeldung Komma falsch Zeichen nach dem Komma werden nicht bernommen Hinweis Die eingegebene Daten werden den angegebenen Variablen zugewiesen Die Anzahl der bergebenen Daten mu mit der Anzahl der Variablen zwingend bereinstimmen KOLTER ELECTRONIC Tel 02235 7670
122. n darstellen If WENN die nachfolgende Bedingung erf llt ist Then DANN f hre die nachfolgende Anweisung Sprung aus Elese SONST arbeite mit einer anderen Anweisung Sprung weiter Grunds tzlich kann f r die Abfrage vor und hinter dem Vergleichsoperator entweder eine Variable eine Konstante oder ein Rechenausdruck stehen Nach dem Befehlswort THEN k nnen auch mehrere Anweisungen stehen welche die Routine ausf hrt wenn das Ergebnis zuvor als wahr interpretiert wurde Bei Nichterf llung der IF Bedingung Operantenvergleich ist unwahr wird die IF Zeile im Programm bersprungen wenn kein ELSE verwendet wird KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 99 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC INKEY Verwendungszweck Zeichenkettenvariable String welche eine Eingabe an der Tastatur erwartet Syntax A INKEY Wirkungsweise Der Befehl wartet auf eine Tasteneingabe nur ein Zeichen und weist einer String Variablen das Zeichen aus dem Tastaturpuffer zu Beispiel 10 A INKEY 20 PRINT A KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 100 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC INSTR Verwendungszweck Suchen der Position v
123. n in einem bestimmten Speicherbereich zwischengespeichert werden ist auch die Anzahl der verschachtelten Schleifen begrenzt 10 DIM A 15 15 15 20 FORI 1T0 15 30 FORK 1TO15 40 FORL 1TO15 50 A l K L 1 60 NEXT L K I Hinweise Variablen werden als Z hler verwendet Sie sind numerische Ausdr cke STEP gibt die Z hler Schrittweite f r jede Schleife an Der erste numerische Ausdruck ist der Anfangswert des Z hlers Der zweite numerische Ausdruck ist der Endwert des Z hlers Die Programmzeile die auf FOR Anweisung erfolgen werden bis zur NEXT Anweisung ausgef hrt Darauf hin wird der Z hler um die durch STEP eingestellte Schrittweite weitergez hlt Wird STEP nicht deklariert ist die Schrittweite automatisch 1 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 89 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC FRE Verwendungszweck Mit dem Befehl FRE X bzw FRE X wird der noch freie Speicherplatz im RAM ermittelt Syntax FRE X FRE X Wirkungsweise Das numerische Ergebnis enth lt die Byte Zahl der freier SRAM Adressen X ist hier nur eine Hilfsvariable und enth lt keinen relevanten Wert Die Argumente X und X sind daher Blindargumente Bevor FRE X den restl verf gbaren Speicherplatz im zugeordneten Zeichenfolgenspeicher bergibt leitet BASIC eine interne Defragmentation ein Die D
124. n nummerischen Wert Dabei entfernt die VAL Funktion automatisch f hrende alle Leerzeichen Tabulatoren und Zeilenvorsch be aus der String Zeichenfolge VAL Str ist quasi eine Komplement rfunktion von STR Beispiel Die Fehlermeldung Datentypen Zahl String vermischt erscheint wenn man einer nummerischen Variablen den Inhalt einer Zeichenkette zuordnen will Mit dem Befehl VAL ist dies m glich Es werden jedoch nur Zahlen am Anfang einer Zeichenkette ausgewertet A 45 7 lt CR gt PRINT VAL A lt CR gt Anzeige 45 7 PRINT VAL 1234ABC lt CR gt Anzeige 1234 PRINT VAL ABC1234 lt CR gt Anzeige 0 PRINT VAL 123 45A lt CR gt Anzeige 123 45 Hinweis Handelt es sich beim ersten Zeichen nicht um einen numerischen Wert liefert VAL 0 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 155 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC VARPTR Verwendungszweck VARPTR ist eine Adressenangabe von Variablen und Stringzeigern Syntax VARPTR Variable Wirkungsweise Die dezimale Adresse der Inhalte von Variablen und Matritzenelementen im Speicher wird mit diesem Befehl ermittelt und kann z B direkt bei den Befehlen PEEK und POKE angewendet werden Bei Variablen f r Zeichenketten z B A wird die Adresse des Stringzeigers ermittelt und ausgegeben Das erste Byte an d
125. n wurden VGA Grafik Befehle nur kurz vorgestellt Die Handhabung und Wirkungsweise dieser Advanced BASIC Befehle sollen nun n her erl utert werden Da der SEPIA Rechner in erster Linie f r MSR und Automatisierungszwecke dient sind die Grafikfunktionen nur auf wenige Befehle beschr nkt Die Aufl sung betr gt beispielsweise nur 640 x 240 Pixel mit 2 von 64 Farben Auf Textausgaben und Kreisfunktionen wurde aus Platzgr nden im EEPROM ebenfalls verzichtet Die Kommunikation erfolgt hierzu auf COM1 Intern werden spezielle ESC Sequenzen f r Steuerkommandos verwendet die der Grafik Chip mit einem eigenen BIOS interpretiert Somit wird kein SEPIA RAM Speicher f r den Bildaufbau verwendet und der Hauptprozessor vollkommen entlastet Beispiel XGRON Interne ESC Sequenz ESC z1 Schaltet in den Grafik Mode um Der Bildschirm wird dabei gel scht Beispiel XGROFF Interne ESC Sequenz ESC z2 Schaltet in den Text Mode um und inititalisiert den Bildschirm neu Beispiel XGCLS Interne ESC Sequenz ESC z0 L scht den internen Grafik Bildspeicher wie CLS Beispiel XGRTEST Interne ESC Sequenz ESC t Erzeugt ein statisches Testbild als mehrstufige Farbtreppe auf dem Bildschirm Beispiel XGRESCOL Interne ESC Sequenz ESC z3 Setzt die org Farbpalette wieder zur ck wei auf blau Beispiel XGRSTCOL V H Interne ESC Sequenz ESC lt V gt lt H gt Setzt Pixel Farbe f r Vordergrund und Hintergrund zwei byte kompliment Bei
126. ngig vom Speichermedium HDD Kapazit t k nnen bis zu 255 Verzeichnisse verwaltet werden Die Ebenen Nummer entspricht dem Cylinder High aus der ATA CHS Tabelle Besitzt ein Medium lediglich 15 Cylinder High Eintr ge siehe CHS Tabelle k nnen folglich nur 15 Verzeichnisse genutzt werden Bei voller Unterst tzung mit 255 low und 255 high Cylinder k nnen je Medium bis zu 65280 Dateien verwaltet werden Es k nnen jedoch nur Dateinummern von 1 255 vergeben werden da das erste Root Verzeichnis 0 wichtige Daten f r das Directory enth lt Somit ist dieser Cylinder f r den Nutzer i d R tabu Eine Sicherheitsabfrage verhindert zus tzlich den unerlaubten Zugriff auf diesen Bereich Beispiel LOADGO x Durch Eingabe des Befehls kann ber die Dateinummer x ein anderes BASIC Programm nachgeladen und sofort gestartet werden Somit lassen sich beispielsweise auch mehrere Programme untereineander verschachteln Die Dateinummer erfolgt in sedezimaler Schreib weise amp 00 amp FF KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 32 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS BASIC HDD DISK Befehle bei Verwendung der IDE Karte 3 Fortsetzung Beispiel f r eine Directory Ausgabe auf dem Bildschirm Die DIR Ausgabe pausiert nach 16 Eintr gen Durch Tastendruck bsp J oder Leertaste wird die Ausgabe weiter
127. nkette zu ersetzen m ssen andere Trennzeichen wie z B verwendet werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 140 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC STOP Verwendungszweck Laufendes Programm an einer vorbestimmten Stelle Zeile stoppen Syntax STOP Wirkungsweise STOP beendet das Programm in der Zeile in der der Befehl vom Interpreter ausgef hrt wird Alle Variablen und Stringinhalte bleiben erhalten solange keine Ver nderung am Quellcode durchgef hrt wird Beispiel 10 A 12345 67890 20 STOP RUN Abbruch Zeile 20 A lt CR gt Anzeige 12345 6789 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 141 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC SIN Verwendungszweck Die SIN x Funktion liefert den mathematisch Sinus ihres nummerisch Arguments Das Argument muss in Bogenmass angegeben sein Bei Altgrad verwendet man einen Umrechnungsfaktor mit PI 180 Syntax n SIN x Wirkungsweise Das als Argument angegebene Bogenma wird in den Sinus umgerechnet Beispiel 1 PRINT SIN 45 P1 180 lt CR gt Anzeige 70710678119 Beispiel 2 10 INPUT Bogenmass in Grad X 20 A SIN X 0 0174533 30 PRINT G
128. o muss der Befehl RESUME das Unterprogramm erst abschlie en Dieser Befehl entspricht dem RETURN nach einem GOSUB Hinweis Das Programm wird nach dem Befehl fortgesetzt der den Fehler verursachte Am Anfang eines Unterprogrammes zur Fehlerbehandlung kann auch ein weiterer ON ERROR GOTO Befehl stehen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 134 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RENUMBER Verwendungszweck Sortierbefehl welcher die BASIC Zeilennummern neu nummeriert Syntax RENUMBER RENUMBER 100 RENUMBER 100 20 Wirkungsweise Werden w hrend der BASIC Programmierung weitere Zeilen in den Quelltext erg nzt k nnen schnell Platzprobleme entstehen Mit RENUMBER erh lt man weitere freie Zeilen Die alten Zeilennummern werden dabei durch neue Nummer ersetzt Beispiel 10 REM TEST 11 A 44 12 B 33 13C 77 RENUMBER LIST 10 REM TEST 20 A 44 30 B 33 40C 77 Hinweis Mit RENUMER 100 20 wird das Listing dann ab Zeile 100 um jeweils 20 weiter inkrementriert 100 REM TEST 120 A 44 140 B 33 160C 77 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 135 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RUN Verwendungszweck Start Befeh
129. on Zeichen in Strings Syntax INSTR Zeichenkette 1 Zeichenkette 2 Startzeichen Zeichenanzahl Wirkungsweise Dieser Befehl vergleicht den Inhalt von Zeichen und durchsucht in einer Zeichenkette Stringvariable oder Zeichenkette in Anf hrungszeichen nach einer zweiten Zeichenkette Die Suche beginnt ab dem ersten Zeichen oder falls angegeben ab dem Startzeichen und erstreckt sich ber soviele Zeichen wie mit der Zeichenanzahl angegeben sind Beispiele 10 PRINT INSTR aabbccddeeffgg bb lt CR gt Anzeige 3 20 PRINT INSTR aabbcecddeeffgg hh lt CR gt s 0 30 PRINT INSTR abcdefabcdefgh cd 4 lt CR gt 5 9 In Zeile 20 ist das Ergebnis NULL da keine hh gefunden wurden 10 A ABCDEB 20 B B 30 PRINT INSTR A B INSTR 4 A B RUN Anzeige 2 6 In diesem einfachen Beispiel wird das Zeichen B mit dem Inhalt der Zeichenkette A hier ABCDB durchsucht Wird die Zeichenkette von Anfang an verglichen dann wird das Zeichen B an der Text Position 2 gefunden Wird hingegen erst ab Position 4 mit der Suche begonnen dann wird B erst an der Text Position 6 identifiziert KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 101 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC INT Verwendungszweck Bilden einer Integer
130. per DIP Schalter auf den E A Karten Durch vertauschen der COM Hardware Adressen k nnen somit Verbindungen zur Konsole sowie ber andere Karten stattfinden Die COM1 Schnittstelle ist dazu f r die Konsole reserviert Um im Host Betrieb NET Karte muss vorhanden sein Tastatureingaben unter BASIC zu nutzen kann man folgende Befehle anwenden Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM INKEYS und XWAITKEY TEST 110 CLS LOCATE 2 2 120 PRINT Eine Taste druecken 130 140 A INKEYS IF A THEN GOTO 140 150 160 PRINT Die Taste war AS 170 BEEP 180 PRINT VARPTR Zeiger VARPTR A 190 PRINT Taste fuer weiter 200 XWAITKEY 210 GOTO 100 Der Advanced Befehl XWAITKEY unterbricht den Programmablauf und erwartet eine Tasteneingabe durch den User Eine andere Variante zum Vergleich 100 REM Tastatur ASCII Zeichencode anzeigen 110 CLS 120 LOCATE 2 2 130 B ASC INKEYS 140 PRINT ZEICHEN CHR B DEZ B 150 IF B 5 THEN STOP ELSE GOTO 130 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 16 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Zeichensatz und Daten bertragung 1 Das nachfolgende Programm zeigt wie der Zeichensatz auf der Konsole sprich auf COM1 ber die ser Schnittstelle oder dem VGA Bildschirm d
131. r ck Hinweis Der Wert als Variable Pi ist bereits als Festwert im ROM zugewiesen Pi kann somit nicht anders belegt oder berschrieben werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 64 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC AUTO Verwendungszweck Dieser Befehl gibt automatisch Zeichennummern f r Programmzeilen aus Erste Zeichen nummer und Differenz zwischen den Zeichennummern k nnen zus tzlich angegeben werden Syntax AUTO Zeilennummer Schrittweite AUTO Schrittweite AUTO lt CR gt Es wird mit Zeichennummer 10 begonnen Nach jedem n chsten lt CR gt wird zur Zeichen nummer die Zahl 10 addiert und diese ausgegeben AUTO 100 lt CR gt Es wird mit Zeichennummer 100 begonnen und nach jedem lt CR gt 10 dazu addiert AUTO 10 100 lt CR gt Es wird mit Zeichennummer 10 begonnen aber nach jedem lt CR gt wird die Zahl 100 dazu addiert Wird die Zeichennummer 65535 erreicht so erfolgt die Fehlermeldung Zeichen Nr falsch AUTO 10 100 lt CR gt Es wird der Zeichenabstand zum Anfangswert addiert und mit der Summe begonnen Existiert schon eine durch AUTO erhaltene Zeichennummer wird diese mit einem vorangesteltem Zeichen ausgegeben lt CR gt l t die dazugeh rige Programmzeile unver ndert Sie kann durch eine neue berschrieben werden lt
132. r PC Terminal Software kann die Farbausgabe je nach Ger t unterschiedlich ausfallen Intern erfolgen die verwendeten Steuerkommandos bzw ESC Sequenzen in Anlehnung an ein VT100 Terminal Beispiel XTCOLOR 0 9 Die gesamte Textausgabe erfolgt mit schwarzen Zeichen auf hell blauem Hintergrund Beispiel XTCOLOR 8 0 Die gesamte Textausgabe erfolgt mit amber Zeichen auf schwarzem Hintergrund Beispiel XRSTCOL Der Befehl enth lt keine Zusatzparameter Die anschlie ende Textausgabe erfolgt in der boot Einstellung Weisser Text auf dunkelblauen Hintergrund Beispiel XINVERT Der Befehl enth lt keine Zusatzparameter Die anschlie ende Textausgabe ab dem Cursor erfolgt farblich invertiert bis die Invertierung wieder aufgehoben wird Farbe Vordergrund Schwarz Rot Gr n Gelb Blau Rosa Cyan Grau Amber Hell Lila vonavukrkWw N N Ho Base ET Be TE BE Es Farbe Hintergrund Schwarz Rot Dunkel Gr n Khaki Braun Dunkel Blau Mangenta Dunkel Cyan Hell Grau Hell Blau Orange vonauvukrw6e N Ho Base T 1 T T S KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 30 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC HDD DISK Befehle bei Verwendung der IDE Karte 1 Auf den ersten Seiten wurden IDE Disk Befehle nur sehr kurz vorgestellt Die Handhabung und Wirkungsweise dieser
133. r Schleife bis ein Eingangsport mit der dezimalen Adresse A in den mit der Maske M angegebenen Bits den Zustand Z erreicht hat Erst dann wird die n chste Programmzeile weiter bearbeitet So k nnen z B direkt vom Port A der PIO einzelne Bits untersucht werden ob sie den Zustand 0 oder 1 besitzen Der vom Port A eingelesene Wert wird mit dem Wert Z EXKLUSIV ODER verkn pft und das Ergebnis mit dem in M angegeben Wert UND verkn pft Solange das Ergebnis gleich 0 ist wird das Ganze wiederholt Erst dann geht es zum n chsten Befehlsabschnitt Wird der Parameter Z nicht angegeben so ist Z 0 Die Werte A M und Z m ssen dezimal angegeben werden oder sedezimal mit amp angeben Beispiele 100 WAIT 32 2 RUN Das Programm wird solange unterbrochen bis Hardware Port 32 eine 2 als Eingabe erh lt Hinweis Als INPUT Adresse ist nur eine g ltige Anschlu nummer Portnummer des Computers im Bereich 0 bis 255 erlaubt M und Z sind ganzzahlige Ausdr cke im Bereich 0 bis 255 Bei der Ausf hrung des WAIT Befehls wird die Maske auf gesetzte Bits berpr ft Ist eines der Bits gesetzt wird die Programmausf hrung mit der n chsten Anweisung fortgesetzt WAIT wartet nicht bis ein komplettes Bitmuster ansteht Wenn nur ein Bit berpr ft werden soll gen gt bereits der Vergleich mit diesem Bit um den Programmablauf fortzuf hren Mit der WAIT Anweisung besteht die M glichkeit eine Endlosschleife einzubauen Zum manuellen Verlassen der W
134. rad gt nach gt Altgrad A RUN KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 142 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC SGN Verwendungszweck Mathematisches Vorzeichen eines nummerischen Arguments bestimmen Syntax SGN n Wirkungsweise Die Signum Funktion SGN ergibt unabh ngig des Vorzeichens folgende Zahlen f r numerische Argumente aus bei positiven Zahlen 1 bei negativen Zahlen 1 bei Null 0 Beispiele PRINT SGN 123 lt CR gt Anzeige 1 PRINT SGN 4 56 lt CR gt Anzeige 1 PRINT SGN 0 lt CR gt Anzeige 0 Hinweise Wird keine Zahl in Klammern angegeben so erfolgt Fehlermeldung Syntaxfehler Wird keine Klammer angegeben so erfolgt die R ckmeldung mit NULL Es werden nur Zahlen bis zu einem Wert von 1e 38 bis 1e 38 vearbeitet KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 143 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC SQR Verwendungszweck Quadratwurzel aus n berechnen Syntax SQR n Wirkungsweise Es wird die Quadratwurzel der als Argument angegebenen Zahl n berechnet Negative Zahlen ergeben die Fehlermeldung nicht erlaubt H here Wurzeln lassen sich durch den inversen Exponenten der Z
135. re Adressen ergeben die Fehlermeldung nicht erlaubt Der Inhalt einer Speicherstelle kann auch einer Variablen zugewiesen werden PRINT PEEK 4149 lt CR gt oder PRINT PEEK amp 1035 lt CR gt Es wird der dezimale Inhalt der angegebenen Speicherstelle angezeigt KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 125 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC PRINT Verwendungszweck Text auf den Bildschirm oder den Drucker mit PRINT 2 ausgeben Syntax PRINT Kanal Text v x Befehlsform PRINT Kanal Satznummer Konstante oder Variable oder Zeichenkette Wirkungsweise Der PRINT Befehl sendet den Inhalt von Variablen oder Text Stings auf den Bildschirm Beispiele PRINT 123 A Testsatz lt CR gt Am Bildschirm werden die Zahl 123 der Wert der Variablen A und das Wort Testsatz jeweils mit zwei Leerzeichen Abstand von einander ausgegeben Kommas zwischen den Zeichen oder Zeichenketten ergeben einen Ausdruck jede 14 Position solange die Zeichenketten k rzer als 14 Zeichen sind PRINT 2 PRINT 2 kurzer Testsatz lt CR gt Vom Drucker wird nach einer Leerzeile der Satz kurzer Testsatz ausgegeben Je nach Drucker m ssen nach diesem Direktbefehl noch weitere Befehle oder eine Leerzeile folgen damit der Ausdruck stattfindet bsp Formfeed 123
136. rgang wird ein Zeiger auf die n chste Konstante innerhalb der DATA Zeilen gesetzt Am Ende der letzten DATA Zeile eines Programmes zeigt der DATA Zeiger ins Leere ein weiterer Lesezugriff ergibt die Fehlermeldung keine Daten Zeile XYZ Ein RESTORE Befehl setzt den DATA Zeiger auf die erste Konstante zur ck Die Angabe der Zeilennummer einer DATA Zeile setzt den Zeiger auf die erste Konstante in dieser Zeile zur ck Die Fehlermeldung Sprungziel fehlt Zeile XYZ wird durch Angabe einer nicht vorhandenen BASIC Zeile nach dem Befehl RESTORE verursacht Beispiel 10 DATA 10 20 30 20 DATA 50 60 70 30 READ A B 40 PRINT A B 50 60 RESTORE 20 REM hier wird das Datenfeld in Zeile 20 wieder r ckgesetzt TQ 80 READ A B 90 PRINT A B KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 130 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC RETURN Verwendungszweck R cksprung Befehl einer GOSUB Anweisung Syntax RETURN Befehlsform RETURN Zeilennummer Wirkungsweise Der Befehl beendet die Sub Routine einer GOSUB Anweisung und keht eine Zeile unter dem GOSUB Aufruf zur ck um das Programm an dieser Stelle weiter fortzuf hren Beispiel 1 100A 1 110 GOSUB 1000 120 PRINT A 130 END 140 1000A A 1 1100 RETURN RUN 2 Beispiel 2 100A 1 110 GOSUB 1000 120 PRINT A 13
137. rsetzen zeilennummerorientiert TRACE Programmzeilen im Einzelschritt mitverfolgen WAIT Lie t I O Port so lange bis Bedingung erf llt ist KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 7 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung BASIC Boot Menue EPROM Inhalt X Sonderbefehle SEPIA RT ZBAS Advanced BASIC besitzt ein ca 24 kB gro es Standard BASIC inkl mini BDOS plus 8 kB erweiteres Advanced BASIC mit RT Sonderfunktionen Ein Sonderbefehl kennzeichnet sich dadurch dass dieser mit einem X wie XPOKE beginnt und mit keinem normalen BASIC vergleichbar aber dennoch leicht verst ndlich ist Machen Sie dazu gleich den ersten Test und schalten Sie dazu SEPIA ein IN z O SEPIA booten mit eingeschobener CF Card auf IDEO und IDE1 Vorhanden nicht Vorhanden SEPIA PAC Industrie Computer BIOS 4 102A C H Kolter amp Dr Hehl 20M0 IMOS BAUM IDIESIK ETE 1 MB MEM CP M my COMENTE T STOSS BTORTAI EIEE IDE Master DE Slave DET 2A339859 16 03 2015 Montag CPU 026 Grad C lt ESC gt Neustart CP M Boot gt gt MEM Karte my Debugger RAM loeschen BASIC Kaltstart BASIC Warmstart REMOTE I O po e e ER Il Der Nutzer muss jetzt eine Eingabe t tigen Taste D L K W oder R Im ersten Menue s o bitte zun chst
138. rtbildungskurse bei den jeweiligen Herstellern belegen und teure Up Dates nachbestellen und einpflegen m ssen F r SEPIA ben tigen Sie weder ein Seminar noch teure Up Dates Diese Dokumentation reicht vollkommen aus da w hrend der Entstehung alle Beispiele an praxisorientieren Aufbauten ausprobiert wurden Diese lassen sich bei entsprechender Nachbildung sehr einfach wiederholen und nach eigenen Vorstellungen im Rahmen der angeboteten M glichkeiten erweitern Alle Beispiele wurden dazu an der Vollausstattung ausgetestet Die in dieser kleinen Dokumentation gezeigten Beispiele k nnen je nach Revisionsstand in folgenden Angaben zu Ihrem Modell abweichen BIOS Version Datum Debugger Monitor und IDE Version Advanced BASIC Version RTC Zeit und Datum sowie Variablen wie RND und CPU Temperatur Die hier gezeigten Beispiele k nnen nur dann genutzt werden wenn die entsprechenden Erweiterungskarten im System physisch vorhanden sind Die einzelne Komponentenadressierung orientiert sich dazu nach unserer MAPALL ASM Empfehlung Symbole Alle wichtigen Hinweise sind mit diesem Kennzeichen versehen Merker und Hinweise zum Text werden mit einer roten Hand versehen a KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 3 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Zahlengenauigkeit vorbelegte Variablen Strings und A
139. rvierung f r Zeichenketten entf llt Print FRE X lt CR gt ergibt den Wert 10000 Bei zu gro en Zahlen erscheint die Fehlermeldung kein Speicherplatz bei Zahlen ber 65535 die Meldung nicht erlaubt Wurde in einem Programm mit dem CLEAR Befehl zu wenig Speicherplatz f r Zeichenketten reserviert kommt die Fehlermeldung kein Stringplatz Es kann der reservierte Platz auch wieder verkleinert werden CLEAR 0 beseitigt die Standardreservierung von 100 Bytes f r Zeichenketten c CLEAR 1000 2 lt CR gt Es werden 1000 Bytes f r Zeichenketten und zus tzlich zum Standardkanal noch Spei cherplatz f r zwei weitere Kan le f r Ein oder Ausgabebetrieb reserviert Jeder Kanal braucht weitere 182 Bytes wie mit FRE X beobachtet werden kann d CLEAR 1 lt CR gt Es werden alle Variablen gel scht und f r einen weiteren Kanal Speicherplatz reserviert siehe Warmstart Bei ausreichendem Speicherplatz k nnten theoretisch bis zu 254 Kan le reserviert werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 70 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC COS Verwendungszweck Befehl zur Umrechung liefert den Cosinus zur ck Es kann eine beliebige positive oder negative Zahl angegeben werden Syntax COS x Wirkungsweise X Gleitkommawert mu im Bogenma vorliegen COS ist die
140. sche Operatoren bit weise genutzt So kann die bit Antwort bei einem Vergleich Wahr 1 oder Falsch 0 ergeben damit sie als boole sche Anweisung in Programmen Verwendung findet Bei bit weiser Verwendung k nnen so schnelle Entscheidungen zwischen zwei M glichkeiten getroffen werden Sie dienen quasi als schnelle Schalter f r weitere Anweisungen Wahrheitstabelle A NOT T F F T T True F False KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 117 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC OUT Verwendungszweck Gegenst ck zu INP Befehl Mit OUT wird ein Hardware Port ber eine anzugebene 8 16 bit O Adresse byte weise geschrieben Syntax OUT adr byte Wirkungsweise Direkter Port Zugriff auf die Hardware Sendet ein Byte auf ein Ausgabe Register Beispiel 1 OUT amp F2 123 lt CR gt Schreibt 123 auf I O Adresse F2h Beispiel 2 Es geht auch Dezimal ber eine Variable 10 ADR 242 20 OUT ADR 123 RUN Hinweis Bei OUT auf Z80 Systemen sind Adresse und Byte jeweis 8 bit breit 0 255 Bei Nutzung der OUT Befehle muss man jedoch sehr vorsichtig sein da jedes System bereits Adressen f r die eigene Hardware bsp COM Port LPT Port Interrupt Register RTC nutzt und somit nicht alle Adressen in diesem Rahmen frei verf gbar sind Anmerkung
141. sen des BASIC Interpreter zur ck in den Debugger Modus Syntax BYE lt CR gt Wirkungsweise Alle g ltigen Variablen werden beibehalten und k nnen bei W wie Warmstart sp ter wieder weiter verwendet werden Wenn Speicherinhalte SRAM nicht mit dem Debugger ver ndert werden kann ein im Speicher befindliches BASIC Programm nach W mit CONT an der letzten Zeilennummer fortfahren Der Bye Befehl kann auch im Programm selbst angewendet werden um den Debugger w hrend der Laufzeit zu starten Beispiel 10 REM Test 20 PRINT Hier lauft noch BASIC 30 BYE RUN Bei Erreichen der Zeile 30 wird der BASIC Interpreter automatisch verlassen und im Debugger Mode gestartet KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 67 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CLS Verwendungszweck L schen des aktuellen Bildschirminhaltes nur Text bei Verwendung der VGA Ausgabe mit der SEPIA NET Karte Syntax CLS lt CR gt Wirkungsweise Gesamten Text l schen und anschlie end Cursor auf Position links oben lenken Bei erfolgtem CLS wird in der n chsten Zeile die Meldung Fertig quitiert Der CLS Befehl gilt nur im Text Modus anzuwenden Im VT100 Modus beispielsweise bei COM 1 Terminal wird der Befehl CLR verwendet um den ext Bildschirm zu l schen CLR sende
142. sgegeben werden Fehlermeldungen sind aber auch beliebig definierbar wobei die Texte intern den Nummern 0 255 zugeordnet sind Entsprechend der gew nschten Abbruchbedingung des Programmes wird die Fehlernummer dann bei Erreichen dieser Bedingung ausgegeben 10 LETA 6 20 IF A gt 5 THEN ERROR 50 RUN Ausgabe Fehler unbekannt Zeile 20 W hrend das Programm auf die Zeile 20 trifft und der Wert der Variablen A gr er 5 ist wird die Zahl 50 als Fehlernummer gespeichert und zusammen mit der Abbruchzeile nach RUN ausgegeben Systemfehlermeldungen Falsche Eingabe Komma falsch HALT HALT Zeile ZE nicht gefunden Sprungziel fehlt KOLTER ELECTRONIC Tel 02235 76707 e mail service pci card com Fax 02235 72048 Internet http www kolter de Seite 58 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Operatoren Zuweisung bzw ist gleich lt kleiner als gt gr er als lt kleiner oder gleich bzw lt gleich oder kleiner gt gr er oder gleich bzw gt gleich oder gr er lt gt ungleich Ausdruck in Klammern A Exponentialoperator Hochzahl oder auch Potenzierung Negation Zahl oder Ausdruck Multiplikation Division Subtraktion Ganzzahl Division mit Rest MOD modulo Der Rest bei der Division zweier Variable wird als Ergebnis zur ckgegeben NOT bin re Negation AND logische UND Verkn
143. spiel XGRPSET X Y Interne ESC Sequenz ESC lt XMSB gt lt XLSB gt lt Y gt Setzt einen Pixel an Koordinate X Y Xmax 640 Ymax 240 als zwei word kompliment Beispiel XGRLINE X1 Y1 X2 Y2 Interne ESC Sequenz ESC lt XMSB1 gt lt XLSB1 gt lt Y1 gt lt XMSB2 gt lt XLSB2 gt lt Y2 gt Zeichnet eine Linie von Koordinate X1 Y1 zu X2 Y2 vier word kompliment KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 42 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Grafik Befehle bei Verwendung der NET Karte mit VGA Ausgang Teil2 Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Grafik Test 110 XGRON REM Grafik EIN 120 XGRTEST REM Testbild 130 XDELAY 40000 REM Warten 140 XGRCLS REM Grafik l schen 150 XGRSTCOL 255 2 REM Farbe setzen 160 XGRPSET 320 120 REM Pixel zeichnen 170 XGRLINE 10 100 630 100 REM Linie zeichnen 180 XGRLINE 20 200 630 110 REM Linie zeichnen 190 XDELAY 40000 REM Warten 200 XGROFF REM Grafik AUS 210 STOP REM Text Mode Hinweis Alle direkten Advanced BASIC Ein Ausgaben der Konsole erfolgen immer ber COM1 welche durch DIP Schalterstellungen von der CPU Karte auf die NET Karte VGA Ausgang und PS 2 Tastatur umgelenkt werden k nnen Die Grafik erzeugt ein 8 Kern 32 Bit Parallax Prozessor mit 80 MHZ interner Taktfrequenz Die gesamt
144. ssen alle Grundparameter via HTTP Browser voreingestellt werden Die erste Konfiguration erfolgt somit i d R ber den Internet Explorer Als lokale Webadresse nutzt man zun chst die Standard XPort IP http 192 168 1 11 F r den EMail Versand ben tigt man zus tzlich einen Online Zugang zu einem SMTP Server mit automatischer Authentifizierung und fest einstellbarer IP Adresse mit Port 25 Eine gute L sung ist ein Modem Router mit DSL Zugang bsp Fritz Box zu einem Provider der SMTP ohne weitere Anmeldung erlaubt welchen man quasi als Remote IP Server nutzt Folgende Webseiten sind zu diesem Thema sehr hilfreich http www msxfag de internet inetanbindungsmtp htm http www albert rommel de ppp addrconf htm http www elektronik kompendium de sites net 0903081 htm http www avm de de Produkte FRITZBox_an_jedem_Anschluss_Internet html KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 44 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC XPULSE Ein einfacher Befehl f r Burst Patterngenerator als Winkelgeberemulation Mit diesem Befehl lassen sich abwechselnd verschiedene Logik Pattern von 0 FFFF counts auf einer I O Adresse in Echtzeit erzeugen Zur Ausgabe des Signals kann beispielsweise die LPT2 auf amp 29h oder AUX Schnittstelle auf amp 49h mit TTL Pegel verwendet werden Die LPT2 Schnittstelle
145. sweise einzelne Sektoren berschreiben bzw formatieren siehe n chste Seite Alle Debugger und Monitor Funktionen sind weitgehend selbsterkl rend gestaltet um einen einfachen und schnellen Einstieg in die maschinennahe Programmierung zu bieten Die Schreibweise erfolgt i d R Hexadezimal die Ausgabe als Hex Dump kann mit Z80 Labels quasi wie ein Disassembler aus dem RAM Speicher direkt zur ck interpretiert werden Wer einen separaten Crossassembler f r den PC besitzt kann Z80 Maschinenprogramme extern linken und den Bin rcode beipielsweise in ein EPROM bertragen Da die Speicher und Port Schnittstellen alle in der MAPALL ASM dokumentiert sind kann der Programmierer hier sein eigenes System unabh ngig von SEPIA etablieren KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 36 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Debugger Menue DEBUGGER Hilfe im Einzelnen S Springe zum IDE Editor Menue L SRAM l schen und Neustart booten D Zeige Speicher Dump D 100 lt CR gt Adresse hex D 8000 Zeige Z80 Codes 100 lt CR gt Adresse hex I 8000 Anzeige wie ein kleiner Disassembler F Fuelle RAM von bis Wert F 9000 9200 45 lt CR gt A ASCII Eingabe CNTRL D beendet G Starte ab Adresse Breakpoint G 9000 9003 lt CR gt T Step ab Adresse T 9000 lt CR gt C Step u
146. t hier eine andere ESC Sequenz als CLS zum Terminal Beispiel 10 CLS RUN Fertig KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 68 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CHR Verwendungszweck Dieser Befehl wandelt einen nummerischen ASCIlI Code in ein entsprechendes Zeichen um Syntax CHR dezimaler Wert 0 255 oder auch nummerische byte Variable Wirkungsweise Das der angegebenen Zahl entsprechende Zeichen nach ASCII kann ausgegeben oder einer Variablen zugewiesen werden CHR wird im allgemeinen verwendet um ein Sonderzeichen an den Bildschirm oder den Drucker zu schicken So k nnte zum Beispiel bei Einsatz eines COM Terminals ein CHRS 7 gesendet werden um einer Fehlermeldung einen Piepton ber den Lautsprecher vorangehen zu lassen oder es kann ein Formularvorschub CHR 12 an den Drucker geschickt werden Eine Beschreibung der Umwandlung von ASCII Zeichen in numerische Zeichen enth lt sie ASC Funktion ASCII Codes sind im Anhang von Kapitel 1 dieser Betriebsanleitung aufgelistet Beispiele PRINT CHR 66 Ausgabe B Die Umrechung hat die Anzeige des ASCII Zeichencodes 66 zur Folge der den Gro buchstaben B darstellt PRINT CHR 13 CHR 10 Dieser Befehl hat die Anzeige eines Wagenr cklaufzeichens mit anschlie endem Form Feed zur Folge Hinweis Nicht erlaubt
147. te Folge von Zeichen wird von links beginnend in der Zeichenkette gesucht und bernommen Beispiel 10 INPUT Wort AS 20 IF A E THEN END 30 INPUT Startzeichen SZ 40 INPUT Zeichenanzahl ZA 50 BS MIDS AS SZ ZA 60 PRINT B GOTO 10 Eingabe Wort Startzeichen Zeichenanzahl Anzeige Testwort I1 3 Tes n 5 1 WwW 7 0 3 nicht erlaubt ji 1 10 Testwort j lt CR gt lt CR gt nicht erlaubt Hinweis In einem vorhandenen String kann ab einem Startzeichen eine bestimmte Zeichenanzahl mit Zeichen aus einer Zeichenkette berschrieben werden Dies ist wesentlich schneller als eine Teilung und Erg nzung einer Zeichenkette Siehe auch LEFT und RIGHT KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 113 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC MOD Verwendungszweck Mathematische Funktion Modulus Sie gibt den Rest einer Division zur ck Syntax MOD Wirkungsweise Mit MOD wird der verbleibende Zahlenrest einer Ganzzahl Division zur ckgeggeben Beispiel Es wird der Rest ermittelt den man bei der Division des Dividenden durch den Divisor erh lt PRINT9MOD2 lt CR gt Anzeige 1 PRINT 8 MOD2 lt CR gt Anzeige 0 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 114 SEPIA DOKUMENTAT
148. te Programmierung Advanced BASIC READ Verwendungszweck Datenfeld aus einer DATA Anweisung lesen Syntax READ Befehlsform READ nummerische Variable Stringvariable durch Komma getrennt Wirkungsweise Mit READ werden Daten aus einer zuvor getroffenen DATA Anweisung an Variablen zugewiesen Es k nnen nummerische Ausdr cke oder auch Zeichenketten bergeben werden Dabei m ssen jedoch die verwendeten Daten Typen aus DATA und READ zwingend bereinstimmen Beispiel 10 DATA 1 2 HUBER MEIER 4 ZZ 20 READ A B A B C C D 1 1 1 D 1 3 30 PRINT A B A B C C D 1 1 1 D4 1 3 Anzeige 1 2 HUBERMEIERO 4 ZZ Die Variable C enth lt den Wert 0 C ist leer Hinweis Mit jeder READ Anweisung wir der DATA Zeiger automatisch um ein Element inkrementiert Mit dem RESTORE Befehl l sst sich dieser Zeiger wieder auf die erste Stelle zur ckstellen Nach der Zuweisung von Daten in einem DATA Feld muss die READ Anweisung nicht unmittelbar folgen Wegen der besseren bersicht sollte READ dennoch auf DATA folgen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 129 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RESTORE Verwendungszweck DATA Zeiger einer DATA Anweisung wieder auf ersten Wert r cksetzen Syntax RESTORE XYZ Befehlsform RESTORE Zeilennummer Wirkungsweise Mit jedem Lesevo
149. te nebst Speichermedium IDEO und diese Datei vorhanden sind Falls ja wird das Programm unmittelbar vom System geladen und im BASIC Interpreter gestartet Das AUTOBAS BASIC Programm erm glicht somit ein Wiederanlauf von individuellen Programmen beispielsweise nach einem Stromausfall Mit LOADGO k nnen ebenso weitere Programme aus AUTOBAS heraus gestartet werden sowie COM Schnittstellen und oder I O Ports neu initialisiert werden Bei der Nutzung von AUTOBAS gilt die Verwendung des WDC WatchDog zu ber cksichtigen Auch hier wird bei einem RESET die AUTOBAS Datei automatisch geladen und gestartet Da in AUTOBAS der gesamte Befehlsvorrat des BASIC Interpreters verwendet werden kann sind ebenso Protokollausgaben z B auf einem Drucker m glich welche dann Zeit Datum sowie andere Angaben zu diesem Ereignis schriftlich festhalten Wird keine AUTOBAS Datei im Root Verzeichnis abgespeichert startet SEPIA das urspr ngliche Menue zur weiteren Abfrage KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 29 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Bildschirm Befehle bei Verwendung der NET Karte mit VGA Ausgang Auf den ersten Seiten wurden VGA Farb Befehle nur kurz vorgestellt Die Handhabung und Wirkungsweise dieser Advanced BASIC Befehle sollen nun n her erl utert werden Bei Textausgaben auf ext Terminals ode
150. telt Fehlercode ERROR ermittelt Meldungstext zum Fehlercode KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 85 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC EQV Verwendungszweck Boole sche Mathematische Funktion f r logische Gleichwertigkeit Abk rzung f r quivalenz engl equivalence Syntax Ergebnis Ausdruck1 EQV Ausdruck2 Wirkungsweise EQV berechnet bit weise die logische quivalenz zweier Ausdr cke Ergebnis Eine beliebige numerische Variable die das Ergebnis des Vergleichs aufnimmt Ausdruck1 Ausdruck2 Beliebige Ausdr cke die Sie vergleichen m chten Wenn Sie boolesche Ausdr cke auf ihre quivalenz testen ist das Ergebnis True wenn die Ausdr cke entweder beide True oder beide False sind Bei einem bitweisen Vergleich setzt der EQV Operator das entsprechende Bit im Ergebnis nur dann wenn das betreffende Bit entweder in beiden Ausdr cken oder in keinem der beiden Ausdr cke gesetzt ist Beispiele 10A 0 20B 0 30 PRINT A EQV B RUN Ausgabe 1 10A 10 20B 2 30 PRINT A EQV B RUN Ausgabe 9 Hinweis Bit Vergl AND OR XOR E 0 0 U IMP PR Ho DU J Por OOO HHHo oO HHoOo HooH HOhhr KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 86 SEPIA DOKUMENTATION RT ZBAS
151. tern in eine 16 Bit Ganzzahl um Dabei ist der Bereich von 0 65535 FFFFh oder 32768 bis 32767 erlaubt sonst erfolgt Fehlermeldung nicht erlaubt Wahrheitstabelle A A IMP B T T T T F F F T T F F T T True F False KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 103 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC KILL Verwendungszweck Loeschung von DIM reservierten Variablen Bereichen Syntax KILL X Y USW Wirkungsweise Variablen Bereiche welche zuvor mit dem DIM Befehl zugewiesen wurden k nnen mit dem KILL Befehl explizit gel scht werden CLEAR hingegen l scht alle Variablen Beispiel 10 DIM A 10 20 DIM B 10 30 DIM C 10 40 A Nur 50 B ein 60 C Test 70 KILL B 80 PRINT A B C RUN lt CR gt Ausgabe Nur Test Befehlsform KILL erste Variable zweite Variable Sind im Programm f r gr ere Variablenmengen mit dem DIM Befehl entsprechende Speicherbereiche reserviert so kann die Reservierung wieder einzeln aufgehoben werden Das Dollar Zeichen kennzeichnet hier Variablen f r Zeichenketten Es werden die Dimensionierungen von A B und C aufgehoben Die L schung einer nicht existierenden Dimensionierung ergibt keinen Fehler da keine weitere Pr fung erfolgt Beispiel2 KILL A B lt CR gt Die Di
152. trigoniometrische Cosinusfunktion Zur Umwandlung von Grad in Bogenma ist mit PI 180 zu multiplizieren Die Berechnung erfolgt mit h chster 12 stelliger Genauigkeit Beispiel 1 10 X 2 COS 4 20 PRINT X RUN 1 842121988 Beispiel 2 10 REM PI 3 141593 20 PRINT COS PI 30 GRAD 180 40 BOGENMASS GRAD PI 180 50 PRINT COS BOGENMASS RUN 1 1 KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 71 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC CALL Verwendungszweck Aufruf eines in Assemblersprache Z80 Maschinensprache erstellen Unterprogramms im SRAM Speicher Die CALL Anweisung empfielt sich f r die direkte Verbindung von Assemblerprogrammen mit BASIC Das Anwender Unterprogramm hat anschlie end bis zu einem RET Befehl die CPU Steuerung bernommen Syntax CALL numerische Variable Argumentenliste CALL Adresse Wert 1 Wert 2 Wert n Wirkungsweise Die numerische Variable gibt die Startposition des Unterprogramms im SEPIA Speicher an Mit diesem Befehl wird zu der angegebenen Adresse in Maschinenspracheroutinen gesprungen Dabei k nnen mit dem Befehl die angegebenen Werte bertragen werden Sie werden auf dem Stapel abgelegt und sind so zug nglich Das BC bzw CX Register enth lt die Anzahl n der bertragenen Werte diese ist nur durch den Speicher
153. ummer so da die Zeile manuell bearbeitet editiert werden kann Syntax EDIT Zeilennummer oder EDIT Punkt eingeben Wirkungsweise Um Programmzeilen zu korrigieren oder zu erg nzen wird der EDIT Befehl verwendet Anfangs mu man fters in der EDIT Kommandboliste nachschauen Man kann nat rlich bei kurzen Programmzeilen die ganze Zeile neu schreiben was i d R einfacher geht Der Editor bearbeitet eine Kopie der Programmzeile in einem Puffer so dass die eigentliche Programmzeile erst zum Schlu durch die Kopie ersetzt wird Die Aktuelle BASIC Zeile ist immer die letzte Zeile auf die sich eine EDIT Anweisung ein LIST Befehl oder eine Fehlermeldung bezog EDIT ohne Zeilennummer oder Punkt ergibt die Fehlermeldung nicht erlaubt Beispiel 1 EDIT 120 lt CR gt Es wird die Zeilennummer 120 ausgegeben und auf ein EDIT Kommando gewartet Beispiel 2 EDIT lt CR gt Punkt eingeben Nach einer Fehlermeldung bei einem Programmabbruch oder erneutem EDIT Kommando kann die Zeilennummer durch einen Punkt ersetzt werden Erscheint z B nach Eingabe von RUN die Fehlermeldung Syntaxfehler Zeile 115 so kann nach Eingabe von EDIT die Zeile mit den Edit Kommandos verbessert werden KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 78 SEPIA DOKUMENTATION Komplexe Automation durch leichte Programmierung RT ZBAS Advanced BASIC EDIT
154. urch leichte Programmierung Advanced BASIC Uhrzeit und Datum Wenn Sie eine RTC Karte verwenden meldet sich SEPIA beim booten mit Zeit und Datum Die RTC Karte beinhaltet neben einer COM2 und LPT2 Schnittstelle einen Uhren Chip und eine WDC WatchDog Schaltung Damit man den Uhren Chip auch unter BASIC auslesen kann wurden zwei Advanced Befehle integriert XGETIME und XGEDATE Diese Befehle erzeugen eine einfache Print Textausgabe der aktuellen Uhrzeit oder dem Datum Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 REM Uhrzeit amp Datum unter BASIC ausgeben 110 PRINT Zeit STD MIN SEK XGETIME 120 PRINT 130 140 PRINT Datum TAG MONAT JAHR XGEDATE 150 PRINT 160 170 XDELAY 5000 180 GOTO 110 Hinweis zum Programm Der Befehl XDELAY word erm glicht eine Ablaufpause GOTO 110 startet das Programm ab BASIC Zeile 110 erneut Damit der Anwender die Uhrzeit ber eine Variable mit in sein Programm einbinden kann stehen andere Advanced Befehle zur Verf gung XGETSEC XGETMIN und XGETSTD Geben Sie das nachfolgende BASIC Programm ein und starten Sie mit RUN 100 CLS 110 A XGETSEC 0 REM Liesst Sekunde von RTC 0 120 B XGETMIN 0 REM Liesst Minute von RTC 0 130 C XGETSTD 0 REM Liesst Stunde von RTC 0 140 150 LOCATE 10 10 REM Cursorposition X 10 Y 10 160 170 PRINT Uhrzeit C B A i 180 XDELAY 5000 190 GOTO 110 KOLTER ELECTRONIC Tel 0223
155. uriert wurde sind in dieser Unterlage m glicherweise weitere Befehle erl utert die in SEPIA jedoch aus Platzgr nden nicht implementiert wurden Daf r bietet SEPIA jedoch spezielle Advanced Befehle f r die Automation auf welche wir in dieser Anleitung explizit eingehen werden Im Anschluss finden Sie eine bersicht zum erweiterten BASIC Befehlssatz welcher fortan Advanced BASIC genannt wird Manche Advanced BASIC Beispiele k nnen jedoch nur bei Verwendung entsprechender O Hardware genutzt werden So sind beispielsweise alle Laufwerks Befehle wie DRIVE DIR LOAD LOADGO und SAVE nur nutzbar wenn SEPIA ber ein IDE Interface mit Datentr ger bsp CF Card verf gt Alle zeitlichen Angaben beziehen sich auf den Bus Ausbau mit einer 20 MHz CPU Karte einem Waitstate A Wichtiger Hinweis SEPIA pr ft w hrend des bootens nach ob IDE Interface und Datentr ger vorhanden sind F llt die Pr fung negativ aus wird eine entsprechende Mitteilung ausgegeben So auch bei der RTC Karte da diese neben dem WatchDog eine Echtzeituhr enth lt und bei fehlender Hardware keine Angaben zu Uhrzeit und Datum erzeugen kann Die Nutzung der restlichen Hardware ist davon nicht betroffen da im Remote I O Betrieb die IDE und RTC mit WDC m glicherweise nicht ben tigt werden Dies gilt gleichfalls f r den VGA und Ethernet Port da eine Remote Verbindung direkt ber den RS232 Port der CPU Karte erfolgen kann KOLTER ELECTRONIC Tel 02235 76707 Fa
156. von Dateinummer ERASE Programmdatei l schen gefolgt von Dateinummer LOADGO l d Programmdatei ber Nummer und startet Anwendung DRIVE 0 auf Laufwerk 0 umschalten IDE Port0 Master DRIVE 1 auf Laufwerk 1 umschalten IDE Port1 Slave DRIVE S Anschluss auf vorhandene Medien Master amp Slave pr fen DRIVE P Festplatte parken amp in sleep mode versetzen DRIVE T Ausgabe Drive Status amp Error Register f r Testzwecke KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 6 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Fortsetzung Farbtabelle zu Befehl XTCOLOR V H je 10 VGA Textfarben f r Vorder und Hintergrundfarbe Farbe Vordergrund Farbe Hintergrund 0 Schwarz 0 Schwarz 1 Rot 1 Rot 2 Gr n 2 Dunkel Gr n 3 Gelb 3 Oliv Khaki Braun 4 Blau 4 Dunkel Blau 5 Rosa 5 Mangenta 6 Cyan 6 Dunkel Cyan 7 Grau 7 Hell Grau 8 Amber 8 Hell Blau 9 Hell Lila 9 Orange Grafik auf VGA Monitor Die Ausgabe von einfachen Diagrammen und Kurven erfolgt ber einen gesonderten VGA Mode mit 640 x 240 Pixel in zwei von 64 Farben Damit die BASIC Programmierung m glichst bersichtlich bleibt wurden dazu folgende Advanced Befehle etabliert XGRON schaltet VGA Monitor in den Grafik Mode XGROFF schaltet VGA Monitor wi
157. w kolter de GS120 spec pdf http www kolter de TG42 seitlich 002a jpg http www kolter de SEPIA_Bild7 jpg http www kolter de ZMCBTL 001 jpg KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 54 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Diese Seite bleibt frei KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 55 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC Kapitel 2 SEPIA Standard BASIC Befehle Vorwort Neben den Advanced Befehlen welche spezielle SEPIA Funktionen und dessen Hardware unterst tzen sind auch normale BASIC Befehle zur Programmierung anwendbar BASIC Beginners All puropse Smbolic Instruction Code wurde am Dartmouth College von John Kemeny und Thomas Kurtz als Lernmittel grundlegender Programmierkonzepte entwickelt Seitdem hat sie als zeitsparende und universelle Programmiersprache weltweit Anerkennung erlangt Sie wird auch heute noch als eine der am leichtesten Hochsprachen betrachtet Seit 1964 gibt es bis Dato ber hundert verschiede ne Ableger Diese sind in ihrer bestechend einfachen Syntax sehr schnell erlernt und leicht auf jeden Rechner anwendbar Dieses Kapitel enth llt nun eine alphabetische Auflistung der Standard BASIC
158. weck Setzt die BASIC Programmausf hrung nach einer Unterbrechung mit STOP oder BREAK fort Syntax CONT Wirkungsweise Wird lt CTRL E gt w hrend eines Programmablaufes eingegeben oder kommt der Interpreter zu einem STOP Befehl in einer Programmzeile so h lt das Programm mit der Meldung HALT Zeile XYZ an wobei XYZ die Zeilennummer angibt in der abgebrochen wurde Nun kann man mit dem Befehl LVAR die Variablenwerte anschauen mit LVAR 2 ausdrucken oder die Werte ndern z Ba 15 oder a Text Anschlie end wird mit dem Befehl CONT das Programm unter Ber cksichtigung der eventuell ge nderten Werte fortgesetzt So kann man zu Testzwecken die Variable des Schleifenz hlers einer FOR NEXT Schleife ver ndern Nach einer Programm nderung oder nach Auftreten eines Fehlers ergibt der Befehl CONT die Meldung CONT geht nicht Nach Abbruch mit lt CTRL E gt bei einem INPUT Befehl wird die Eingabeaufforderung wiederholt Beispiel CONTINUE lt CR gt oder CONT lt CR gt Hinweis Der CONT Befehl eignet sich bestens f r die Fehlersuche da dies dem Benutzer erm glicht Unterbrecherpunkte break points in Verbindung mit der STOP Anweisungen zu setzen Variablen mit Direktanweisungen abzu ndern die Programmausf hrung fortzuf hren oder mit GOTO die Ausf hrung bei einer bestimmten Zeilennummer wieder fortzusetzen Wurde jedoch eine Programmzeile im BASIC Code ver ndert ist CONT ung ltig KOLTER ELECT
159. www kolter de Seite 132 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC REM Verwendungszweck Kommentar Text zeilenweise erg nzen Syntax REM Wirkungsweise REM Kommentar wird vom BASIC Interpreter w hrend der Programmausf hrung vollst ndig ignoriert verlangsamt aber geringf gig die Rechengeschwindigkeit w hrend der Laufzeit Leider kostet jeder Text Byte f r Byte wertvollen Speicherplatz Daher sollten Kommentare m glichst kurz ausfallen wenn man nicht ganz darauf verzichten kann Beispiel 10 REM Das ist nur ein Kommentar 20 REM der Zeile f r Zeile eingegeben werden kann 30 REM 40 REM Kommentare k nnen auch hinter einem Befehl plaziert werden 50 60 A 123 REM Hier wird der Variable A jetzt der Wert 123 zugewiesen KOLTER ELECTRONIC Tel 02235 76707 Fax 02235 72048 e mail service pci card com Internet http www kolter de Seite 133 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC RESUME Verwendungszweck Diese Anweisung unterst tzt die Fehlerbehandlung und setzt das Programm nach einer Verzweigung in der Fehlerbehandlungsroutine weiter fort Es wird der Befehl wiederholt der den Fehler verursachte Syntax RESUME RESUME 0 RESUME Zeilennunmmer RESUME Next Wirkungsweise Soll nach der Fehlerbehandlung in einem Unterprogramm mit der normalen Programm ausf hrung fortgefahren werden s
160. x 02235 72048 e mail service pci card com Internet http www kolter de Seite 5 SEPIA DOKUMENTATION RT ZBAS Komplexe Automation durch leichte Programmierung Advanced BASIC SEPIA RT ZBAS Advanced Befehle VGA XTCOLOR V H XRSTCOL i XINVERT i XSTSON i XSTSOFF A D und D A Karte XSETAD1 Port Kanal A x XGETADI Port x XRADC Kanalx256 adr XDAC 16Bit_Wert Port XDASET BasisPort P COM Port XCOUT x byte byte XCIN x A XSTRINS S x i XSTROUT COMx A x byte XGETKEY word I O diverse XHWRST r XIPEAK byte time mode XPULSE byte word mode XGETEMP XOUTWD word byte A byte XINPWD word XWAITKEY s XDELAY word XPBELL byte byte i XGETIME F XGEDATE F byte XGETSEC 0 byte XGETMIN 0 byte XGETSTD 0 XIRQON XIRQOFF MEM Befehle XPOKE Adresse byte byte XPEEK Adresse XSEC x Disk Direktbefehle auf XROOT Xx Textfarbe 0 9 setzen V Vordergrund H Hintergrund Textfarbe r cksetzen org Ausgabe Wei auf Blau Textfarbe invertieren r cksetzen mit XRSTCOL Statusmeldung VGA Terninal EIN Statusmeldung VGA Terninal AUS siehe Tabelle gt Sonderbefehle VGA Grafik AD1 Karte Messkanal 1 16 auf MUX einstellen lie t von AD1 16 Bit Wandlung nach Variable x oder Kanal setzen und A D lesen mit nur einem Befehl DAl Karte dig 12 Bit Wert auf DAC Port schreiben Latch Freigabe f r Output Switc
Download Pdf Manuals
Related Search
Related Contents
BEDIENUNGSANLEITUNG - Icon Heath & Fitness Cockpit SX 日本語取扱説明書 Preface Energy Sistem Linnker 7000 Service Manual 9210 Level1/2 Installation station FS36 Out-of-Compartment Microplate Reader Tripp Lite DDR1327NBMSC flat panel desk mount Copyright © All rights reserved.
Failed to retrieve file