18
Positionierungssyste m für motorbetriebene Tafeln Andreas Glausch, Andreas Kerlin, David Weese

Positionierungssystem für motorbetriebene Tafeln

  • Upload
    heidi

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Positionierungssystem für motorbetriebene Tafeln. Andreas Glausch, Andreas Kerlin, David Weese. Produktidee. Problem - optimale Positionierung von Tafeln in Mehr-Tafel-Anlagen - vollständige Nutzung der Tafelflächen - PowerPoint PPT Presentation

Citation preview

Page 1: Positionierungssystem für motorbetriebene Tafeln

Positionierungssystem für motorbetriebene

Tafeln

Andreas Glausch,Andreas Kerlin,David Weese

Page 2: Positionierungssystem für motorbetriebene Tafeln

Produktidee

Problem- optimale Positionierung von Tafeln in Mehr-Tafel-Anlagen- vollständige Nutzung der Tafelflächen

Ziel- vereinfachendes Kontrollsystem für automatische Positionierung der Tafeln

konkret- Nutzung vorhandener Tafelsysteme- Design eines Eingabepanels- Möglichkeit der voll- und halbautomatischen Tafelpositionierung- optionale Verwendung von Reinigungssystemen- zyklisches Bereitstellen der Tafeln

Page 3: Positionierungssystem für motorbetriebene Tafeln

Tafel-Schnittstelle

- max. 4x4 Tafeln mit Schrittmotorik und jeweils einem Eingang für Richtung MRi und Takt MTi

- je Tafel zwei Sensoren SOi und SUi,die genau dann 1 liefern, wenn Tafel iden oberen bzw. unteren Rand erreicht hat

MTi MRi Wirkung 0 1 0 Tafel i fährt einen Schritt

runter 0 1 1 Tafel i fährt einen Schritt

hoch 1 0 x keine Wirkung

Externe Schnittstellen

Anforderungen ans externe Tafellöschsystem (TLS)

- 4 Eingänge für maximal 16 Tafeln- 1 Eingang zum Starten der Löschaktion- 1 Ausgang, der Abschluss der Aktion signalisiert

- Nummerierung von hinten nach vorn, dann von links nach rechts, hinterste Tafelposition durch 4 teilbar, ( Beispiel nebenstehend )

012

456

89

10

Page 4: Positionierungssystem für motorbetriebene Tafeln

Control-Panel

A1LineA

LineB

LineC

LineD

Col1 Col2 Col3 Col4

HolenWeiter

Löschen

Tafel

Tafel

B1

C1

D1

Up

Down

Get

Clear

Auto

Eingänge des Prozessors

A2

B2

C2

D2

A3

B3

C3

D3

A4

B4

C4

D4

Page 5: Positionierungssystem für motorbetriebene Tafeln

Eingänge:

• vom Control Panel 13 Signale: - 8 Tafelbits (LineA, ..., LineD, Col1, ..., Col4) - 5 Aktionsbits (Auto, Up, Down, Get, Clear)

• vom Tafellöschsystem: 1 Fertig-Signal

• Reset

• Stromversorgung 5V

Ausgänge:

• 16 LEDs: L0, ... ,L15

• 16 mal MRi und MTi ( i = 0...15)

• zum Tafellöschsystem: - 4 Tafelbits - 1 Löschbit

Anschlüsse

Page 6: Positionierungssystem für motorbetriebene Tafeln

Speicheraufbau

ROM (32kb)(Programm)

(EPROM)

0x0000

0x7FFF

RAM (16kb)(Daten)

0x8000

0xBFFF

Ein-/Ausgabe0xC000

0xFFFF

Adresse Lesezugriff Schreibzugriff

0xC000...0xC00F(i = 0...15)

Bit0 = SUi , Bit1 = SOi

,Bit2-Bit7 = 0

Bit0 = MTi , Bit1 = MRi ,Bit2-7 unbenutzt

0xC010 Bit0...3 = LineA...D,Bit4...7 = Col1...4

Bit[i] = Li

0xC011 Bit0 = Down, Bit1 = Up, Bit2 = Get, Bit3 = Clear, Bit4 = Auto, Bit 5,6,7 = 0

Bit[i] = Li+8

0xC020(TLS)

Bit0 = FertigBit1-Bit7 = 0

Bit0..3 = Tafel i,Bit4 = Löschbit,Bit5-Bit7 unbenutzt

0xC030 Anzahl Tafelzeilen unbenutzt

0xC031 Anzahl Tafelspalten unbenutzt

sonst unbenutzt unbenutzt

Der Prozessor

Page 7: Positionierungssystem für motorbetriebene Tafeln

Befehlsformat

5Bit 1Bit 2Bit

Opcode Mode Operand

Mode

Beschreibung

0 direkt (Register oder Immediate)

1 indirekt (registerindirekt oder absolut)

Operand

Beschreibung

Befehlslänge

00 Register A

1Byte01 Register B

10 Register C

11 Immediate 3Byte

16Bit-Ein-Adressmaschine

Beispiele: add B Mode = 0, Operand = 01

jmp 0123h Mode = 0, Operand = 11

sub [C] Mode = 1, Operand = 10

and [8002h] Mode = 1, Operand = 11

Befehlsaufbau (1Byte)

Page 8: Positionierungssystem für motorbetriebene Tafeln

Befehlssatz

Opcode

Befehl

Beschreibung

0 ADD A = A + <Operand>

1 SUB A = A - <Operand>

8 OR A = A | <Operand>

9 AND A = A & <Operand>

10 NOT A = ~A

11 SHL A = A << 1

12 SHR A = A >> 1

16 LD A = <Operand>

17 ST <Operand> = A

24 JMP PC = <Operand>

25 JZ IF (Z = 1) PC = <Operand>

26 JC IF (C = 1) PC = <Operand>

27 JNZ IF (Z = 0) PC = <Operand>

28 JNC IF (C = 0) PC = <Operand>

31 NOP No Operation

nicht vorkommende Opcodes entsprechen NOP

Page 9: Positionierungssystem für motorbetriebene Tafeln

CPU - Layout

ROM

RAM

Mikrosteuerwerk

A

B

C

IR

PC

MAR

MDRI/O

Memory Controlle

r

20 Steuerleitungen

R W

ALSUkku

PC- Inkrement

Flags:

CF ZF

Leitungen mit werden vom Mikrosteuerwerk ein- oder ausgeschaltet Registergrößen: A, B, C, PC, MAR, MDR - 16 Bit

IR - 8 Bit (oberen 8 Bits des Busses werden ignoriert)

INTE

RN

ER

BU

S

(nullte

r min

iert)

austauschbar

Page 10: Positionierungssystem für motorbetriebene Tafeln

ALSU

ALSU-Decoder

- ALU benutzt parametrischen Carry-Skip-Adder aus vier 4-Bit-Carry-Lookahead-

Addern (c0 = 0)

a

b

c

ALU

RSU(Right

Shifter)

s3

s2

s1

s0

BAal

rsal rs

Befehl a b c s3

s2 s1 s0 BA al rs

NOP 0 0 0 x x x x x 0 0

ADD 0 0 1 1 0 0 1 0 1 0

SUB 0 1 0 0 1 1 0 0 1 0

AND 0 1 1 1 0 0 0 1 1 0

OR 1 0 0 1 1 1 0 1 1 0

NOT 1 0 1 0 0 1 1 1 1 0

LSHIFT 1 1 0 1 1 1 1 0 1 0

RSHIFT 1 1 1 x x x x x 0 1

AkkuFlags

Bus

ALSU-Decoder:

(ArithmeticLogicShiftUnit)

Page 11: Positionierungssystem für motorbetriebene Tafeln

Mikrosteuerwerk

Steuerspeicher(512x20)

PC

KDekodierschaltung

Resetleitung

IR Flags

decode

Inkr. (/decode)

Steuerleitungen

Dekodierschaltung K setzt PC entsprechend IR und Flags.(Bsp.: JNZ führt mit gesetztem ZF NOP aus, JNZ mit gelöschtem ZF JMP.)

Am Ende jeder Instruktion wird ein Fetch und ein Decode ausgeführt(siehe Microcode)

Page 12: Positionierungssystem für motorbetriebene Tafeln

Memory Controller

16 Bit Daten

RAM

ROM

I/O

15 Bit Adresse

16 Bit Daten

Memory

Controller

14 Bit Adresse

6 Bit Adresse

16 Bit Daten

8 Bit Daten

Read Write

16 Bit Adresse MAR

MDR

R

R W

R W

MAR-Bits 15 und 14

Speicherbereich

Adressbits

0 x ROM 14...0

1 0 RAM 13...0

1 1 I/O 5...0

- R = 1 bedeutet Lese- und W = 1 Schreibzugriff (R W)

austauschbar

Page 13: Positionierungssystem für motorbetriebene Tafeln

LD [B]Schritt Aktion

1. Bout, MARin, R

2. MDRout, Ain

3. PCout, MARin

4. MDRout, IRin, PCinc, decode,

ResetSchritt Aktion

1. Ain, Bin, Cin, PCin

2. ALU:OR (löscht CF, setzt ZF)

3. PCout, MARin

4. MDRout, IRin, PCinc, decode

ADD 0042hSchritt Aktion

1. PCout, MARin, R

2. MDRout, ALU:ADD, PCinc

3. PCinc

4. PCout, MARin

5. MDRout, IRin, PCinc, decode

Microcode

Page 14: Positionierungssystem für motorbetriebene Tafeln

JMP 0123h und erfüllter bed. Sprung Jxx ImmSchritt Aktion

1. PCout, MARin, R

2. MDRout, PCin

3. PCout, MARin

4. MDRout, IRin, PCinc, decode

NOP und unerfüllter bedingter Sprung Jxx RegSchritt Aktion

1. PCout, MARin

2. MDRout, IRin, PCinc, decode

ST [1234h]Schritt Aktion

1. PCout, MARin, R

2. MDRout, MARin, PCinc

3. Aout, MDRin, W, PCinc

4. PCout, MARin

5. MDRout, IRin, PCinc, decode

Page 15: Positionierungssystem für motorbetriebene Tafeln

Definitionen (TASM Syntax)

Assemblercode

motor .EQU 0c000hsensor .EQU 0c000hhoch .EQU 3runter .EQU 1aus .EQU 0zeilen .EQU (0c021h) ;() entspricht indirektspalten .EQU (0c022h)

#DEFINE MOV(x,y) LD x\ST y#DEFINE ADD(x,y) LD x\ADD y\ST x#DEFINE SUB(x,y) LD x\SUB y\ST x#DEFINE INC(x) LD x\ADD 1\ST x#DEFINE DEC(x) LD x\SUB 1\ST x

Initialisierungsphase (Auszug)

LD tafel ;Tafelnummer nach A laden ADD sensor ;A enthält Tafelsensoradr. ST C ;A->C

downloop: ;Tafel ganz runter fahren LD (C) AND 1 ;teste Bit0 = SUTafel

JNZ downend ;stoppe, wenn gesetzt MOV (runter,(C)) ;Motoradr. gleich JMP downloop ;Sensoradr.downend:

MOV (0,B) ;Zähler auf Null setzen

Page 16: Positionierungssystem für motorbetriebene Tafeln

uploop: ;Tafel ganz hoch fahren LD (C) AND 2 ;teste Bit1 = SOTafel

JNZ upend ;stoppe, wenn gesetzt MOV (hoch,(C)) ;Motoradr. gleich INC (B) ;Makro. Nicht mit indirekt

;verwechseln! JMP uploop ;Sensoradr.upnend:

MOV (B,zaehler) ;enthält Anzahl der;Schrittmotorsteps einer;Tafel(von oben nach unten)

In der Initialisierungsphase werden alleTafeln herunter gefahren, und beimWiederhochfahren die Einzelschritte jederTafel gezählt (für spätere Berechnungennotwendig).

Page 17: Positionierungssystem für motorbetriebene Tafeln

Initialisierung:

Programmablauf

n – Anzahl der Tafelnn Sollwerte (Zielpositionen)

n Istwerte – (aktuelle Positionen)n Maxwerte – (maximale Positionen)

n Positionen (Tafelreihenfolge)aktuelle Tafel

Alle Tafeln nach unten fahrenund Istwerte auf 0 setzen

Alle Tafeln nach oben fahrenDabei Istwerte erhöhen

Maxwerte auf Istwerte setzen

Sollwerte berechnen

Panel-Eingabe abfragenTafeltaste gedrückt?

„Weiter“ gedrückt?

neue aktuelle Tafel

ja nein

ja nein

Istwerte anpassen (evtl. Motoren bewegen)

aktuelle Spalte rotieren

„Holen“ gedrückt?

„Runter“ gedrückt?

„Hoch“ gedrückt?

„Löschen“ gedrückt?

Sollwert für aktuelle Tafel dekrementieren

Sollwert für aktuelle Tafel inkrementieren

ja nein

Sollwert für aktuelle Tafel auf 0 setzenja nein

ja nein

Löschvorgang für aktuelle Tafel startenja nein

Sollwerte neu berechnen

Page 18: Positionierungssystem für motorbetriebene Tafeln

Rotation am Beispiel einer 3x2-Tafelmatrix

...

2. Kapitel

3. Kapitel

1. Kapitel

4. Kap...

2. Kapitel

3. Kap...

1. Kapitel

1. Kapitel

2. Kap...1. Kap...

Das 7. Kapitel überschreibt das 1. Kapitel.