You are on page 1of 144

(/$62)762)7:$5(%(6&+5(,%81* V1.

0/V2_70/Li

Firmware-Funktionen
INHALT
FIRMWARE-FUNKTIONEN............................................................................................................ .............................................. 1
BESCHREIBUNGEN ............................................................................................................................................................................ 4
ee_enable() .................................................................................................................................................................................. 4
ee_disable() ................................................................................................................................................................................. 5
ee_short_wr()............................................................................................................................................................................... 6
ee_short_rd() ............................................................................................................................................................................... 7
ee_long_wr()................................................................................................................................................................................ 8
ee_long_rd() ................................................................................................................................................................................ 9
ee_float_wr() ............................................................................................................................................................................. 10
ee_float_rd() .............................................................................................................................................................................. 11
ee_short_wr2()........................................................................................................................................................................... 12
ee_short_rd2() ........................................................................................................................................................................... 13
ee_long_wr2()............................................................................................................................................................................ 14
ee_long_rd2() ............................................................................................................................................................................ 15
ee_float_wr2()............................................................................................................................................................................ 16
ee_float_rd2() ............................................................................................................................................................................ 17
save_domain() ........................................................................................................................................................................... 18
restore_domain() ....................................................................................................................................................................... 20
can_set() .................................................................................................................................................................................... 21
can_reset() ................................................................................................................................................................................. 23
can_set_distance() ..................................................................................................................................................................... 24
can_send_telegram() ................................................................................................................................................................. 25
can_user_telegram().................................................................................................................................................................. 27
can_req_confirmed() ................................................................................................................................................................. 28
can_req_unconfirmed() ............................................................................................................................................................. 29
can_get_receivequeue() ............................................................................................................................................................. 30
can_mpc2_receive_lock() .......................................................................................................................................................... 31
can_mpc2_get_error() ............................................................................................................................................................... 32
L7_Receive_Protocol1() ............................................................................................................................................................ 33
rs232_init() ................................................................................................................................................................................ 35
rs232_init2() .............................................................................................................................................................................. 36
rs232_in_rdy() ........................................................................................................................................................................... 37
rs232_in() .................................................................................................................................................................................. 38
rs232_out() ................................................................................................................................................................................ 39
rs232_str_out() .......................................................................................................................................................................... 40
setdatetime() .............................................................................................................................................................................. 41
getdatetime() .............................................................................................................................................................................. 43
lcd_init() .................................................................................................................................................................................... 44
lcd_reinit() ................................................................................................................................................................................. 45
lcd_clr() ..................................................................................................................................................................................... 46
lcd_refresh_anzeige() ................................................................................................................................................................ 47
lcd_mode_set()........................................................................................................................................................................... 48
lcd_setloc() ................................................................................................................................................................................ 49
lcd_set_cursor()......................................................................................................................................................................... 50
lcd_vdsp() .................................................................................................................................................................................. 51
lcd_vdsps()................................................................................................................................................................................. 52
lcd_vdspls()................................................................................................................................................................................ 53
lcd_vdspas()............................................................................................................................................................................... 54
lcd_vdsplas().............................................................................................................................................................................. 55
lcd_vdspd() ................................................................................................................................................................................ 56
lcd_vdspad() .............................................................................................................................................................................. 57
lcd_vdspld() ............................................................................................................................................................................... 58
lcd_vdsplad() ............................................................................................................................................................................. 59

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 1 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspal() ............................................................................................................................................................................... 60
lcd_vdspll() ................................................................................................................................................................................ 61
lcd_vdsplal() .............................................................................................................................................................................. 62
lcd_vdspf() ................................................................................................................................................................................. 63
lcd_vdspaf() ............................................................................................................................................................................... 64
lcd_vdsplf() ................................................................................................................................................................................ 65
lcd_vdsplaf() .............................................................................................................................................................................. 66
lcd_draw_set_pos().................................................................................................................................................................... 67
lcd_point() ................................................................................................................................................................................. 68
lcd_draw_line().......................................................................................................................................................................... 69
lcd_draw_box().......................................................................................................................................................................... 70
lcd_block_set()........................................................................................................................................................................... 71
lcd_draw_pyramid() .................................................................................................................................................................. 72
lcd_draw_circle() ...................................................................................................................................................................... 73
lcd_draw_bitmap() .................................................................................................................................................................... 74
lcd_dsp_rom_char() .................................................................................................................................................................. 77
lcd_draw_font_char() ................................................................................................................................................................ 78
lcd_draw_font_str() ................................................................................................................................................................... 79
lcd_draw_zoom_char().............................................................................................................................................................. 81
lcd_draw_zoom_str()................................................................................................................................................................. 82
lcd_resolution_x()...................................................................................................................................................................... 83
lcd_resolution_y()...................................................................................................................................................................... 84
led_display() .............................................................................................................................................................................. 85
led_vdsp() .................................................................................................................................................................................. 86
led_vdsps()................................................................................................................................................................................. 87
led_vdspls()................................................................................................................................................................................ 88
led_vdspas()............................................................................................................................................................................... 89
led_vdspd() ................................................................................................................................................................................ 90
led_vdspad() .............................................................................................................................................................................. 91
led_vdspld() ............................................................................................................................................................................... 92
led_vdsplad() ............................................................................................................................................................................. 93
led_vdspl() ................................................................................................................................................................................. 94
led_vdspal() ............................................................................................................................................................................... 95
led_vdspll() ................................................................................................................................................................................ 96
led_vdsplal() .............................................................................................................................................................................. 97
led_vdspf() ................................................................................................................................................................................. 98
led_vdspaf() ............................................................................................................................................................................... 99
led_vdsplf() .............................................................................................................................................................................. 100
led_vdsplaf() ............................................................................................................................................................................ 101
led_vdsp_dp() .......................................................................................................................................................................... 102
ad_10bit() ................................................................................................................................................................................ 103
ad_12bit() ................................................................................................................................................................................ 104
dac_out().................................................................................................................................................................................. 105
kbbgd()..................................................................................................................................................................................... 106
kbrdy() ..................................................................................................................................................................................... 107
kblasttime() .............................................................................................................................................................................. 108
kbnec() ..................................................................................................................................................................................... 109
kbflush() ................................................................................................................................................................................... 110
kbsetkey() ................................................................................................................................................................................. 111
FieldSetKey() ........................................................................................................................................................................... 112
FieldTranslateKey()................................................................................................................................................................. 113
FieldSetActive() ....................................................................................................................................................................... 114
FieldProcessKey() ................................................................................................................................................................... 115
FieldProcessVirtualKey() ........................................................................................................................................................ 116
FieldStoreToEEPROM().......................................................................................................................................................... 117
FieldReadFromEEPROM() ..................................................................................................................................................... 118
FieldSetEEFunction() .............................................................................................................................................................. 119
feld_get_einheit()..................................................................................................................................................................... 120
feld_get_eingabe() ................................................................................................................................................................... 121
feld_get_nachkomma() ............................................................................................................................................................ 122
feld_get_typ()........................................................................................................................................................................... 123

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 2 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_check_0() ......................................................................................................................................................................... 124


feld_get_float_wert() ............................................................................................................................................................... 125
feld_get_long_wert()................................................................................................................................................................ 126
feld_get_short_wert() .............................................................................................................................................................. 127
feld_set() .................................................................................................................................................................................. 128
feld_set_eingabe().................................................................................................................................................................... 129
feld_set_prio().......................................................................................................................................................................... 130
feld_taste() ............................................................................................................................................................................... 131
feld_set_float()......................................................................................................................................................................... 132
feld_set_long() ......................................................................................................................................................................... 133
feld_set_short() ........................................................................................................................................................................ 134
feld_ink_vorkomma()............................................................................................................................................................... 135
feld_dek_vorkomma() .............................................................................................................................................................. 136
feld_ink_nachkomma() ............................................................................................................................................................ 137
feld_dek_nachkomma()............................................................................................................................................................ 138
feld_ink_dek() .......................................................................................................................................................................... 139
prtc() ........................................................................................................................................................................................ 140
prtreset() .................................................................................................................................................................................. 141
prtstr()...................................................................................................................................................................................... 142
uw_outp()................................................................................................................................................................................. 143
uw_inp()................................................................................................................................................................................... 144

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 3 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Beschreibungen

ee_enable()
Beschreibung
Freigabe, damit auf dem EEPROM-Speicher geschrieben werden kann.
Ein Lesen aus dem EEPROM- Speicher ist jederzeit möglich.

Funktions-Definition
void ee_enable(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel
short short_wr_wert = 0;

void ob1(void)
{
short_wr_wert++;
...
/* Schreiben des aktuellen short-Schreibe-Wertes an der Adresse 4 im EEPROM */
ee_enable();
ee_short_wr(4,short_wr_wert);
ee_disable();
/* Ausgabe des short-Schreibe-Wertes */
sprintf(buffer,"short-Schreibe-Wert: %i",short_wr_wert);
lcd_vdspls(2,0,buffer);
/* Lesen der Adresse 4 im EEPROM */
short_rd_wert = ee_short_rd(4);
...
}

Hinweis
Wird ein „ee_?????_wr()“ Funktion aufgerufen, bevor ein ee_enable() ausgeführt wurde, verharrt die
Steuerung an dieser Programmstelle.

Verwandte Funktionen
ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 4 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_disable()
Beschreibung
Sperren jeglichen Schreibzugriffes auf den EEPROM-Speicher. Falls trotzdem ein Schreibzugriff erfolgt, würde
sich die Steuerung an dieser Stelle festfahren und ggf. durch einen Watchdog-Reset neu starten.

Funktions-Definition
void ee_disable(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel
short short_wr_wert = 0;

void ob1(void)
{
short_wr_wert++;
...
/* Schreiben des aktuellen short-Schreibe-Wertes an der Adresse 4 im EEPROM */
ee_enable();
ee_short_wr(4,short_wr_wert);
ee_disable();
/* Ausgabe des short-Schreibe-Wertes */
sprintf(buffer,"short-Schreibe-Wert: %i",short_wr_wert);
lcd_vdspls(2,0,buffer);
/* Lesen der Adresse 4 im EEPROM */
short_rd_wert = ee_short_rd(4);
...
}

Hinweis

Verwandte Funktionen
ee_enable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 5 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_short_wr()
Beschreibung
Schreiben eines “short”-Wertes (2 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...255 variieren.

Funktions-Definition
void ee_short_wr(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
uchar adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFF:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)

short daten
Die Daten entsprechen einer vorzeichenbehafteten 16-Bit-Zahl.

Beispiel
short short_wr_wert = 0x1234;

void ob1(void)
{
ee_enable();
ee_short_wr(4,short_wr_wert);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.

Verwandte Funktionen
ee_enable, ee_disable, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 6 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_short_rd()
Beschreibung
Lesen eines “short”-Wertes (2 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...255 variieren.

Funktions-Definition
short ee_short_rd(unsigned char adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFF)

Beispiel
short short_rd_wert;

void ob1(void)
{
...
short_rd_wert = ee_short_rd(4);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 7 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_long_wr()
Beschreibung
Schreiben eines “long”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.

Funktions-Definition
void ee_long_wr(unsigned char adresse, long daten)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
unsigned char adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)

long daten
Die Daten entsprechen einer vorzeichenbehafteten 32-Bit-Zahl.

Beispiel
long long_wr_wert = 0x12345678L;

void ob1(void)
{
ee_enable();
ee_long_wr(16,long_wr_wert);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus „adresse“ und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 8 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_long_rd()
Beschreibung
Lesen eines “long”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.

Funktions-Definition
long ee_long_rd(unsigned char adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
long
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFE)

Beispiel
long long_rd_wert;

void ob1(void)
{
...
long_rd_wert = ee_long_rd(0x50);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus „adresse“
und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 9 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_float_wr()
Beschreibung
Schreiben eines “float”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.

Funktions-Definition
void ee_float_wr(unsigned char adresse, float daten)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
unsigned char adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)

float daten
Die Daten entsprechen einer vorzeichenbehafteten Fließkomma-Zahl.

Beispiel
float float_wr_wert = 17,456F;

void ob1(void)
{
ee_enable();
ee_float_wr(24,float_wr_wert);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus „adresse“ und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 10 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_float_rd()
Beschreibung
Lesen eines “float”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.

Funktions-Definition
float ee_float_rd(unsigned char adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
float
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFE)

Beispiel
long long_rd_wert;

void ob1(void)
{
...
long_rd_wert = ee_long_rd(0x50);
...
}

Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c

Hinweis
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus „adresse“
und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 11 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_short_wr2()
Beschreibung
Schreiben eines “short”-Wertes (2 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1023 variieren.

Funktions-Definition
void ee_short_wr2(USIGN16 address, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FF:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).

short wert
Die Daten entsprechen einer vorzeichenbehafteten 16-Bit-Zahl.

Beispiel
short short_wr_wert = 0x1357;
short short_rd_wert;

void ob1(void)
{
ee_enable();
ee_short_wr2(0x31A,short_wr_wert);
short_rd_wert = ee_short_rd(0x1A); /* es wird 0x1357 zurueckgelesen */
...
}

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFF .

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 12 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_short_rd2()
Beschreibung
Lesen eines “short”-Wertes (2 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1023 variieren.

Funktions-Definition
short ee_short_rd2(USIGN16 address)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
short
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FF)

Beispiel
short short_rd_wert1;
short short_rd_wert2;

void ob1(void)
{
...
short_rd_wert1 = ee_short_rd2(0x330);
short_rd_wert2 = ee_short_rd(0x30); /* short_rd_wert1 und short_rd_wert2 haben */
/* identischen Inhalt */
...
}

Hinweis
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFF .

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 13 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_long_wr2()
Beschreibung
Schreiben eines “long”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.

Funktions-Definition
void ee_long_wr2(USIGN16 address, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).

long wert
Die Daten entsprechen einer vorzeichenbehafteten 32-Bit-Zahl.

Beispiel
long long_wr_wert = 1365777L;

void ob1(void)
{
ee_enable();
ee_long_wr2(0x2F0,long_wr_wert);
ee_long_wr2(0x2F2,long_wr_wert + 10L);
...
}

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus “address“ und “address+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 14 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_long_rd2()
Beschreibung
Lesen eines “long”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.

Funktions-Definition
long ee_long_rd2(USIGN16 address)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
long
Inhalt der mit “adress“ definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FE)

Beispiel
long long_rd_wert;

void ob1(void)
{
...
long_rd_wert = ee_long_rd2(0x150);
...
}

Hinweis
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus “address“
und “address+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.
Mit den Adressen 0x300 ... 0x3FE werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den Funktionen ee_short_wr,
ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 15 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_float_wr2()
Beschreibung
Schreiben eines “float”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.

Funktions-Definition
void ee_float_wr2(USIGN16 address, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).

float wert
Die Daten entsprechen einer vorzeichenbehafteten Fließkomma-Zahl.

Beispiel
float float_wr_wert = 3.1415927L;

void ob1(void)
{
ee_enable();
ee_float_wr2(0x300,float_wr_wert);
...
}

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 16 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ee_float_rd2()
Beschreibung
Lesen eines “float”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.

Funktions-Definition
float ee_float_rd2(USIGN16 address)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
float
Inhalt der mit “adress“ definierten Speicherstelle innerhalb des EEPROM

Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FE)

Beispiel
float float_rd_wert;

void ob1(void)
{
...
float_rd_wert = ee_float_rd2(0x300);
if (float_rd_wert == 3.1415927F
{
...
}
...
}

Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus “address“ und “address+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Mit den Adressen 0x300 ... 0x3FE werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .

Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 17 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

save_domain()
Beschreibung
Ermöglicht das Speichern eines Speicherbereiches im FlashEEPROM (nichtflüchtiger Speicher)

Funktions-Definition
int save_domain(int _HUGE* buffer, int size, int _HUGE* dest)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
int
TRUE falls Funktion erfolgreich ausgeführt werden konnte;
FALSE falls Funktion nicht erfolgreich ausgeführt werden konnte, weil
- Zugriff auf nicht vorhandene Speicher bereiche (Adressen),
- das Löschen des Sektors war nicht möglich,
- Schreiben nicht möglich.

Übergabewerte
USIGN8 _HUGE* buffer
Zeiger auf den Beginn des Speicherbereichs, der im FlashEEPROM gespeichert werden soll.

int size
Anzahl der Zeichen, die abgespeichert werden sollen. Ist “size“ gleich 0, so wird der Sektor des FlashEEPROM, in dem sich die Adresse
“dest“ befindet gelöscht.

USIGN8 _HUGE* dest


Zeiger auf den Beginn des Speicherbereichs, in dem gespeichert werden soll.
Bereiche:
CPU167:
0x10000 ... 0xFFFFF, wobei standardmäßig der Bereich bis 0x8FFFF für die USERWARE verwendet wird
CPU960:
0x10000 ... 0x7FFFF, wobei standardmäßig der Bereich bis 0x3FFFF für die USERWARE verwendet wird

Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L

void ob22 (void)


{
ptrParaBuf = (USIGN8 _HUGE*)ParaBuf;
}

void ob1(void)
{
...
if (sema_save_parametersatz == TRUE)
{
if(save_domain(ptrParaBuf, 0, (USIGN8 _HUGE*)SAVESEG) ) /* Segment ab 0x 080000
{ wird gelöscht */
save_domain(ptrParaBuf, 512, (USIGN8 _HUGE*)SAVESEG); /* Parameter abspeichern,
} falls loeschen ok */
else { / Fehlerbehandlung */ ... }
}
...
}

Hinweis
Vor dem Abspeichern in einen Sektor des FlashEEPROM muß dieser gelöscht werden.

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 18 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Es können immer nur 64kByte-Sektoren im Ganzen gelöscht werden.


Kommt es nach dem Löschen und vor dem Anspeichern des Datensatzes zu einer Unterbrechung (z.B. Stromausfall), so ist der Parametersatz
“verloren“. Es ist im Einzelfalle genau zu prüfen, ob eine vorherige “Sicherheitskopie“ des zu löschenden Sektor auf einen anderen Sektor
sinnvoll ist.
Während der Ausführung von save_domain, wird der Programmablauf unterbrochen.
Das Löschen von Sektoren bzw. das Abspeichern von größeren Datenmengen kann unter Umständen einige Sekunden in Anspruch nehmen.
Es ist genau zu prüfen, ob der Sektor, der verwendet werden soll, frei zur Verfügung steht; oder ob dieser unter Umständen von der
USERWARE o. ä. verwendet wird.
Es kann nicht über Sektorgrenzen hinweg gespeichert werden.

Verwandte Funktionen
restore_domain

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 19 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

restore_domain()
Beschreibung
Ermöglicht das Auslesen eines FlashEEPROM (nichtflüchtiger Speicher) in einen Speicherbereiches
Funktions-Definition
int restore_domain(void _HUGE* buffer, void _HUGE* src , int size)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
int
TRUE falls Funktion erfolgreich ausgeführt werden konnte;
FALSE falls Funktion nicht erfolgreich ausgeführt werden konnte, weil
- Zugriff auf nicht vorhandene Speicher bereiche (Adressen),
- das Löschen des Sektors war nicht möglich,
- Schreiben nicht möglich.

Übergabewerte
USIGN8 _HUGE* buffer
Zeiger auf den Beginn des Speicherbereichs, aus dem vom FlashEEPROM rückgespeichert werden soll.
int size
Anzahl der Zeichen, die rückgespeichert werden sollen.
USIGN8 _HUGE* src
Zeiger auf den Beginn des Speicherbereichs, aus dem rückgespeichert werden soll.
Bereiche:
CPU167:
0x10000 ... 0xFFFFF, wobei standardmäßig der Bereich bis 0x8FFFF für die USERWARE verwendet wird
CPU960:
0x10000 ... 0x7FFFF, wobei standardmäßig der Bereich bis 0x3FFFF für die USERWARE verwendet wird

Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L

void ob22 (void)


{
ptrParaBuf = (USIGN8 _HUGE*)ParaBuf;
}

void ob1(void)
{
...
if (sema_restore_parametersatz == TRUE)
{
if( !restore_domain(ptrParaBuf, (USIGN8 _HUGE*)SAVESEG), 512 )
{
/* error handling */
}
}
...
}

Hinweis

Verwandte Funktionen
save_domain

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 20 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_set()
Beschreibung

Mittels dieser Funktion werden in der FIRMWARE diverse interne Zustände gesetzt.
In der Include Datei „can.h“, welche aus „ob.h“ gerufen wird sind folgende Defines vorgegeben :

•CANMODUS_ON_OFFLINE (bis FW 1.00)


wird seit V1.00 nicht mehr unterstützt.

•CANMODUS_BAUDRATE (ab FW 1.00)


setzt im Wertebereich 10...1000 die CAN Bausrate auf 10kBaud ... 1Mbaud.

•CANMODUS_TIMEOUT (ab FW 1.00)


setzt in vielfachen von [10ms] die maximale Wartezeit für das CAN Antworttelegramm in der Funktion „can_send_telegram()“ .

•CANMODUS_MODULADRESSE (ab FW 1.00)


liefert als RETURN Wert die aktuelle Knotennummer dieses Modules.

•CANMODUS_MODUL_NR (ab FW 1.00)


überschreibt die via Hexschalter oder Serviceschalter vorgewählte Knotennummer dieses Modules.

•CANMODUS_OB2_1 (ab FW 1.00)


mit 0 wird der Interruptaufruf von der USERWARE Funnktion ob2_1() gesperrt.

•CANMODUS_OB2_2 (ab FW 1.00)


mit 0 wird der Interruptaufruf von der USERWARE Funnktion ob2_2() gesperrt.

•CYCLE_TIMEOUT (ab FW 1.00)


mit dem Startwert 0 ist die Funktion der Zykluszeitüberwachung deaktiviert.
Ein Wert größer 0 stellt in der Zeitbasis [10ms] die zu überwachende maximale Zykluszeit ein.
Bei Überschreiten dieser Zeitdauer wird die USERWARE Funktion „ob31()„ aufgerufen.

•IMPULS_ZEITBASIS (ab FW 1.00)


Setzt die Zeitbasis für die Frequenzmeßung der eingebauten Impulseingängen. Dabei ist der Wertebereich von 1... 30000 in [10ms]
einzutragen. Bei Vorgabe von 0 werden die Impulseingänge zu Zähleingänge geschaltet und die Frequenzmeßung deaktiviert.

•ZAEHLER1_MODUS (ab FW 1.00)


Hiermit kann zwischen diversen Betriebsarten der Frequenzmeßung gewechselt werden, wie bei dem CAN/MM100 Modul. Entnehmen
Sie die genaue Definition aus der Gerätebeschreibung des Modules.

•CANMODUS_RESET (ab FW 1.00)


führt einen kontrollierten Reset des CAN Bausteines durch.

•HUPE (ab FW 1.20)


bei Bedienpulten kann hiermit die Hupe mit 0=ausgeschaltet, 1=eingeschaltet werden.

•HINTERGRUNDBELEUCHTUNG (ab FW 1.20)


bei Bedienpulten kann hiermit die Hintergrundbeleuchtung mit 0=ausgeschaltet, 1=eingeschaltet werden.

•KEYBOARD_REPITIERMODE (ab FW 1.30)


bei Bedienpulten kann mit 0 ein Unterdrücken der automatischen Tasten Repitierfunktion unterbunden werden.

•CONNECT_CAN_RESPONSE (ab FW 1.40)


mit 0 wird das automatische Antworten auf REQUEST Telegrammen aus der Firmware deaktiviert.

•CANMODUS_STEPM0 (ab FW 1.40)

•CANMODUS_STEPM1 (ab FW 1.40)

•CANMODUS_STEPM2 (ab FW 1.40)

•CANMODUS_STEPM3 (ab FW 1.40)

•OB14_FREQUENCE (ab FW 1.40)

•CANMODUS_STEP_MOTOR_CONTROL (ab FW 1.40)

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 21 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Funktions-Definition
short can_set(char modus, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short
Abhängig vom oben beschriebenen Modus.

Übergabewerte
char modus
Eines der oben beschriebenen Defines.

short wert
Abhängig vom oben beschriebenen Modus.

Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L

void ob22 (void)


{
my_adr = can_set(CANMODUS_MODULADRESSE,0);
}

Hinweis
Diverse Funktionalitäten aus der FIRMWARE können mit der exakt gleichen wirkungsweise mittels
FIRMWARE Variablen erreicht werden. Zum Beispiel die CAN Baudrate kann wahleweise mittels can_set()
oder dem Firmware Datenpunkt „CAN Baudrate“ vorgewählt werden.
Verwandte Funktionen
Zugriff auf FIRMWARE Datenpunkte via der Funktion “can_send_telegram()”.

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 22 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_reset()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde eine neue Funktion zum Reset des CAN Bausteines eingeführt.

Funktions-Definition
USIGN8 can_reset(USIGN8 card, USIGN16 io_address, USIGN16 baudrate,
USIGN8 standard_id)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN16 io_address
Ist nur wegen Kompatibilität zur PC Funktion eingeführt.
USIGN16 baudrate
Vorgabe der CAN Baudrate von 10...1000 entspricht 10Kbaud ... 1MBaud
USIGN16 standard_id
Ist nur wegen Kompatibilität zur PC Funktion eingeführt.

Beispiel

Hinweis

Verwandte Funktionen
can_set

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 23 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_set_distance()
Beschreibung
Damit ein Modul bei diversen Operationen den CAN Bus nicht ausschließlich für sich blockiert, wurde diese
Funktion ab FIRMWARE 1.30 ergänzt. Hiermit kann in vielfachen von 1ms der Abstand zwischen 2 CAN
Telegrammen eingestellt werden. Der Abstand ist sowohl bei Sendeanforderungen als auch bei
Antworttelegrammen wirksam. Ein zu groß vorgewählten Wert wie 100ms führt zu Beeinträchtigung anderer
Bus Teilnehmer, die ggf. Mehrfachanfragen an das Modul stellen, da dieses zu spät seine Antworttelegramme
absendet.

Funktions-Definition
void can_set_distance(USIGN8 card, USIGN8 can_distance)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN8 can_distance
Setz in [1ms] den Abstand zwischen zwei CAN Telegramme.

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 24 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_send_telegram()
Beschreibung
Diese ab FIRMWARE 1.00 existierende Funktion hat eine Doppelfunktionalität.
Zum einen dient Sie zur Kommunikation mit der eigenen FIRMWARE Struktur, falls das Argument „modul“ der
eigenen Modul Knotennummer entspricht, siehe dazu die Funktionsbeschreibung von „L7_Receive_Protocol1()“.

Zum anderen dient Sie zur einfachen CAN Kommunikation mit anderen CAN Knoten auf Basis von Elrest
Protokoll 1.0.

Folgender schematischer Programmauszug aus der FIRMWARE soll den Zusammenhang darstellen :

char can_send_telegram(char modul, can_telegram _HUGE* telegram_daten)


{
if (modul == firm_var_image.eeprom.e.modul_address)
{
...
}
else
{
firm_var_image.intermodul_timer = firm_var_image.eeprom.e.intermodul_timeout;
do
{
while ( can_get_receivequeue(card, &recv_id, &systemtick, &len, recv_dat) )
{
if ( arg_recv_id == recv_id )
{
memcpy(dat,recv_dat,len);
return TRUE;
}
}
if ( !send )
{
send = TRUE;
if ( !can_req_unconfirmed(card, arg_send_id, length, dat) )
return FALSE;
}
}
while (firm_var_image.intermodul_timer);
}
}

Diese Funktion wird demnach vollständig auf die Funktionen :


• can_get_receivequeue
• can_req_unconfirmed
abgebildet.

Funktions-Definition
char can_send telegram(char modul, can_telegramm _HUGE* daten)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
char modul
Entspricht der logischen Knotennummer 0...63 für das Elrest Protokoll 1.0.
can_telegram _HUGE* daten
Entspricht exakt den 6 Bytes zu übertragenden CAN Daten.

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 25 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Beispiel

Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.

Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_user_telegram, L7_Receive_Protocol1

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 26 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_user_telegram()
Beschreibung
Diese ab FIRMWARE 1.24 existierende Funktion dient dazu kundenspezifische Telegramme versenden zu
können.

Funktions-Definition
void can_user_telegram( long send_id, long, recv_id, char len,
char _HUGE* dat)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
long send_id
Sende CAN 2.0A Identifier im Wertebereich von 1...2031.
long recv_id
Empfangs CAN 2.0A Identifier im Wertebereich von 1...2031 als Antwort auf die Anfrage.
char len
Länge des CAN Telegrammes von 0...8 Bytes.
char _HUGE* dat
Zeiger auf die zu sendente Daten.
Falls ein Antworttelegramm empfangen wird dieser Datenspeicher mit der
Antwort überschrieben.

Beispiel

Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.

Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_req_confirmed, can_send_telegram

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 27 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_req_confirmed()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde als Nachfolger der Funktion „can_user_telegram” diese Funktion realisiert.

Funktions-Definition
USIGN8 can_req_confirmed( USIGN8 card, USIGN32 arg_send_id,
USIGN32 arg_recv_id, USIGN8 length,
USIGN8 _HUGE* dat)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_send_id
Sende CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN32 arg_recv_id
Empfangs CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 length
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 _HUGE* dat

Beispiel

Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.

Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_user_telegram, can_send_telegram

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 28 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_req_unconfirmed()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient als Basisfunktion zum Versenden von CAN
Telegrammen. Diese Funktion trägt die Sendeanforderung in einen Senderingspeicher ein, der mittels eines
hochprioren Timer Interrupt alle 750µs abgearbeitet wird.

Funktions-Definition
USIGN8 can_req_unconfirmed( USIGN8 card, USIGN32 arg_send_id,
USIGN8 length, USIGN8 _HUGE* dat)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_send_id
Zu sendende CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 length
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 _HUGE* dat
Zeiger auf die zu sendende Daten.

Beispiel
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.

Hinweis
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_confirmed, can_get_receivequeue, can_user_telegram, can_send_telegram

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 29 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_get_receivequeue()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient als Basisfunktion zum Empfang von CAN
Telegrammen. Diese Funktion liest einen Empfangsringspeicher aus, der mittels eines hochprioren CAN
Interrupt alle CAN Telegramme am CAN Bus empfängt in diesen Empfangsringspeicher einträgt.

Funktions-Definition
USIGN8 can_get_receivequeue( USIGN8 card, USIGN32 _HUGE* arg_recv_id,
USIGN16 _HUGE* systemtick,
USIGN8 _HUGE* len, USIGN8 HUGE* recv_dat)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 _HUGE* arg_recv_id
Empfangene CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN16 _HUGE* systemtick
Zeitstempel zu jeden empfangenen CAN Telegramm in einer Auflösung von [10ms].
USIGN8 HUGE* len
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 HUGE* recv_dat
Zeiger auf die empfangenen Daten.

Beispiel

Hinweis
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_confirmed, can_req_unconfirmed, can_user_telegram, can_send_telegram

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 30 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_mpc2_receive_lock()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient zum Sperren von diversen CAN Identifieren.

Funktions-Definition
USIGN8 can_mpc2_receive_lock(USIGN8 card, USIGN32 arg_id, USIGN8 lock)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_id
CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 lock
Mit TRUE und FALSE kann gesperrt werden oder diese wieder aufgehoben werden.

Beispiel

Hinweis
Diese Funktion ist momentan nicht wirksam, dies wird erst ab einer der nächsten FIRMWARE Funktionsstände
unterstützt.
Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 31 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

can_mpc2_get_error()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient zum Auslesen innerer Fehlerzustände des CAN
Bausteines.

Funktions-Definition
USIGN8 can_mpc2_get_error( USIGN8 card, USIGN32 _HUGE* arg_id,
USIGN8 _HUGE* mac)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 _HUGE* arg_id
CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 _HUGE* mac

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 32 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

L7_Receive_Protocol1()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Mit der Funktion „canset(CONNECT_CAN_RESPONSE, 0);” kann die FIRMWARE Funktionalität deaktiviert
werden.
Falls Sie die FIRMWARE Funktionalität deaktiviert haben und innerhalb der USERWARE mit der Funktion
„can_get_receivequeue()“ alle empfangene CAN Telegramme auswerten, können Sie mit der Funktion
„L7_Receive_Protocol1“ kontrolliert die Funktionalität der FIRMWARE nachbilden.

Folgender schematischer Programmauszug aus der FIRMWARE soll den Zusammenhang darstellen :

char can_send_telegram(char modul, can_telegram * telegram_daten)


{
if (modul == firm_var_image.eeprom.e.modul_address)
{
DISABLE_CAN_INT;
L7_Receive_Protocol1 (modul, telegram_daten);
ENABLE_CAN_INT;
return (TRUE);
}
......
}

Funktions-Definition
USIGN8 L7_Receive_Protocol1(USIGN32 nClientNo, USIGN8 _HUGE pDat)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
USIGN8

Übergabewerte
USIGN32 nClientNo
USIGN8 _HUGE* pDat

Beispiel

void ob22 (void)


{
/* disable the FIRMWARE automatic response mechanismen */
canset(CONNECT_CAN_RESPONSE, 0);
}

void ob1(void)
{
USIGN32 recv_id;
USIGN16 systemtick;
USIGN8 len;
USIGN8 recv_dat[8];
...
while ( can_get_receivequeue(card, &recv_id, &systemtick, &len, recv_dat) )
{
/* my receive id must be calculated respect of protocol 1.0 or 2.0 etc. */

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 33 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

if ( recv_id == my_recv_id )
{
L7_Receive_Protocol1(my_adr, recv_dat);
}
}
...
}

Hinweis

Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_send_telegram, can_user_telegram

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 34 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_init()
Beschreibung
Dient zum Initialisieren der RS232 Schnitstelle und Vorgabe des Betriebsmodus. Abhängig von dem
Übergabeargument „mode“ kann zwischen diversen Modi unterschieden werden.

Funktions-Definition
void rs232_init(char mode)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char mode
Folgenden Modi können unterschieden werden :
•„mode“ == 0
Die empfangenen Zeichen über die RS232 Schnittstelle werden über eine
Empfangsinterruptroutine direkt in einen 256 Zeichen große Empfangsringspeicher
eingetragen. Dieser Empfangsringspeicher kann mittels der Funktion „rs232_in()“
zeichenweise ausgelesen werden. Bevor dieser Empfangsringspeicher ausgelesen wird, muß
mittels der Funktion „rs232_in_rdy()“ geprüft werden, ob ein Zeichen im
Empfangsringspeicher vorhanden ist. Ansonsten wird in der Funktion „rs232_in()“ solange
verharrt, bis ein Zeichen von der Schnittstelle empfangen wurde.

•„mode“ == 1
Jedes empfangene Zeichen über die RS232 Schnittstelle führt zum direkten Aufruf der
Funktion „rs232_interrupt ()“ aus der Interruptroutine. Somit könnte ich Echtzeit gewollte
Synchronisierungen durchgeführt werden. Es ist zu beachten, daß nur reentrant Funktionen
aus einer Interruptroutine aufgerufen werden dürfen und das diese Betriebsart eine
zusätzliche CPU Belastung darstellt.

•„mode“ == 128
Der Empfang eines Zeichen wird direkt in die FIRMWARE umgeleitet. Somit stehen die
Funktionalität der FIRMWARE Dienste wie Download, etc. zu Verfügung.
Die FIRMWARE wird in diese Betriebsart initialisiert.

Beispiel

void ob22 (void)


{
/* received character to the receive queue from 256 elements */
rs232_init(0);
}

Hinweis

Verwandte Funktionen
rs232_init2()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 35 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_init2()
Beschreibung
Entspricht exakt der Funktion „rs232_init()“, es wurde lediglich das zusätzliche Übergabeargument Baudrate
eingeführt.

Funktions-Definition
void rs232_init2(char mode, USIGN16 rs232_baudrate)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
char mode
Folgenden Modi können unterschieden werden :
•„mode“ == 0
Die empfangenen Zeichen über die RS232 Schnittstelle werden über eine
Empfangsinterruptroutine direkt in einen 256 Zeichen große Empfangsringspeicher
eingetragen. Dieser Empfangsringspeicher kann mittels der Funktion „rs232_in()“
zeichenweise ausgelesen werden. Bevor dieser Empfangsringspeicher ausgelesen wird, muß
mittels der Funktion „rs232_in_rdy()“ geprüft werden, ob ein Zeichen im
Empfangsringspeicher vorhanden ist. Ansonsten wird in der Funktion „rs232_in()“ solange
verharrt, bis ein Zeichen von der Schnittstelle empfangen wurde.

•„mode“ == 1
Jedes empfangene Zeichen über die RS232 Schnittstelle führt zum direkten Aufruf der
Funktion „rs232_interrupt ()“ aus der Interruptroutine. Somit könnte ich Echtzeit gewollte
Synchronisierungen durchgeführt werden. Es ist zu beachten, daß nur reentrant Funktionen
aus einer Interruptroutine aufgerufen werden dürfen und das diese Betriebsart eine
zusätzliche CPU Belastung darstellt.

„mode“ == 128
Der Empfang eines Zeichen wird direkt in die FIRMWARE umgeleitet. Somit stehen die
Funktionalität der FIRMWARE Dienste wie Download, etc. zu Verfügung.
Die FIRMWARE wird in diese Betriebsart initialisiert.

USIGN16 rs232_baudrate
Es kann zwischen 9600 und 38400 gewechselt werden.

Beispiel
void ob22 (void)
{
/* received character to the receive queue from 256 elements and set to 38400 baud */
rs232_init2(0, 38400);
}

Hinweis

Verwandte Funktionen
rs232_init()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 36 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_in_rdy()
Beschreibung
Dient zum Erkennen von empfangenen Zeichen in dem RS232 Empfangsringspeicher.

Funktions-Definition
bit rs232_in_rdy(void)
char

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
bit
bei CPU515
char
bei CPU167 / CPU960
Wird TRUE zurückgegeben, so sind ein oder mehrere Zeichen im Empfangsspeicher vorhanden.

Übergabewerte
void

Beispiel

void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
}
...
}

Hinweis

Verwandte Funktionen
rs232_in()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 37 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_in()
Beschreibung
Dient zum Auslesen von empfangenen Zeichen aus dem RS232 Empfangsringspeicher. Wird diese Funktion
aufgerufen und es sind keine Zeichen in dem Empfangsringspeicher vorhanden, so wird in der Funktion solange
verharrt, bis das nächste Zeichen empfangen wurde.

Funktions-Definition
char rs232_in(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
char
Das empfangene 8-bit ASCII Zeichen.

Übergabewerte
void

Beispiel

void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
}
...
}

Hinweis

Verwandte Funktionen
rs232_in_rdy()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 38 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_out()
Beschreibung
Dient zum Versenden eines Zeichen auf der RS232 Schnittstelle.

Funktions-Definition
void rs232_out(char c)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char c

Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
if ( c == ETX )
{
rs232_out(ACK);
}
}
...
}

Hinweis
Werden Zeichen schneller versendet, als es der Senderingspeicher tatsächlich abarbeiten kann so werden diese
Zeichen verworfen.

Verwandte Funktionen
rs232_str_out()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 39 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

rs232_str_out()
Beschreibung
Dient zum Versenden einer mit dem Nullzeichen abgeschlossene Zeichenkette auf der RS232 Schnittstelle.

Funktions-Definition
void rs232_str_out(char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char _HUGE* str

Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
if ( c == ETX )
{
rs232_str_out(“this is a string”);
}
}
...
}

Hinweis
Werden Zeichen schneller versendet, als es der Senderingspeicher tatsächlich abarbeiten kann so werden diese
Zeichen verworfen.

Verwandte Funktionen
rs232_out()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 40 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

setdatetime()
Beschreibung
Hiermit können alle Werte der Echtzeituhr gesetzt werden.
Die Echtzeituhr ist in aller Regel mittels einer Batterie gepuffert. Ist die Batterieladung erschöpft, läuft die
Uhr lediglich unter Betriebsspannung.

Funktions-Definition
void setdatetime(char modus, char wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char modus
#define GETDATETIME_STUNDE 0 Wertebereich : 0...23
#define GETDATETIME_MINUTE 1 Wertebereich : 0...59
#define GETDATETIME_SEKUNDE 2 Wertebereich : 0...59
#define GETDATETIME_TAG 3 Wertebereich : 1...31
#define GETDATETIME_MONAT 4 Wertebereich : 1...12
#define GETDATETIME_JAHR 5 Wertebereich : 90...127 entspricht 1990...2027

char wert

Beispiel

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 41 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Æ ...\Projekte\DemoSim\P200_CNT\ElaSim\ob.c

. . .
short short_wr_wert = 0, short_rd_wert;
long long_wr_wert = 0L, long_rd_wert;
float float_wr_wert = 0.0F, float_rd_wert;
. . .

if (beispiel_nr == 1)
{
sprintf(buffer," Beispiel %i: Echtzeituhr ", beispiel_nr);
lcd_vdspls(2,0,buffer);
/* Abfragen der Echtzeituhr */
set_tag = getdatetime(GETDATETIME_TAG);
set_monat = getdatetime(GETDATETIME_MONAT);
set_jahr = getdatetime(GETDATETIME_JAHR);
if(set_jahr > 80)
set_jahr += 1900;
else
set_jahr += 2000;
set_stunde = getdatetime(GETDATETIME_STUNDE);
set_minute = getdatetime(GETDATETIME_MINUTE);
set_sekunde = getdatetime(GETDATETIME_SEKUNDE);
l cd_vdspls(4,1,"Datum:");
lcd_vdspld(4,8 ,-2, set_tag);
lcd_vdsps ( ".");
lcd_vdspd ( -2, set_monat);
lcd_vdsps ( ".");
lcd_vdspd ( -2, set_jahr);
lcd_vdspls(4,21,"Uhrzeit:");
lcd_vdspld(4,30,-2, set_stunde);
lcd_vdsps ( ":");
lcd_vdspd ( -2, set_minute);
lcd_vdsps ( ":");
lcd_vdspd ( -2, set_sekunde);
}

Hinweis

Verwandte Funktionen
getdatetime()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 42 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

getdatetime()
Beschreibung
Hiermit können alle Werte der Echtzeituhr abgefragt werden :

Funktions-Definition
char getdatetime(char modus)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
char modus
#define GETDATETIME_STUNDE 0 Wertebereich : 0...23
#define GETDATETIME_MINUTE 1 Wertebereich : 0...59
#define GETDATETIME_SEKUNDE 2 Wertebereich : 0...59
#define GETDATETIME_TAG 3 Wertebereich : 1...31
#define GETDATETIME_MONAT 4 Wertebereich : 1...12
#define GETDATETIME_JAHR 5 Wertebereich : 90...127 entspricht 1990...2027

Beispiel

Hinweis

Verwandte Funktionen
setdatetime()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 43 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_init()
Beschreibung
Dient zum low level initialisieren des LCD controllers. Bei einem low level werden alle interne Register des
LCD Controllers zurückgesetzt. Dies äußert sich durch ein Flacken am LCD Bildschirm.

Funktions-Definition
void lcd_init(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen
lcd_reinit()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 44 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_reinit()
Beschreibung
Reinitialisieren des LCD-Controllers.
Dies ist auf dem LCD Bildschirm nicht zu erkennen wie dies bei der Funktion „lcd_init()“ der Fall ist.

Funktions-Definition
void lcd_reinit(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis
In stark EMV beeinträchtigter Industrieumgebung wird empfohlen, diese Funktion zyklisch aufzurufen.
Dies dient dazu, daß keine unerwünschte Pixel auf dem LCD Bildschirm stehen bleiben.

Verwandte Funktionen
lcd_init()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 45 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_clr()
Beschreibung
Löschen des gesamten LCD-Bildschirminhaltes.

Funktions-Definition
void lcd_clr(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 46 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_refresh_anzeige()
Beschreibung
Diese Funktion wird ab FIRMWARE 1.00 nicht mehr unterstützt.

Funktions-Definition
void lcd_refresh_anzeige(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 47 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_mode_set()
Beschreibung
Wechseln vom Text- (draw_mode = M_TEXT) in den Grafik-Modus (draw_mode = M_GRAFIK) und zurück.

In der Grundeinstellung befindet sich das Modul im Text-Modus. Um die im Anschluß beschriebenen LCD-
Ausgabe-Funktionen nutzen zu können, muß in den Grafik-Modus gewechselt werden; um das Attribut
LCD_BLINK nutzen zu können, muß zuvor der Text-Modus aktiviert sein..

Funktions-Definition
void lcd_mode_set(char draw_mode)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char draw_mode
M_OR Logische "OR" Operation zweier Pixel
M_XOR Logische "EXOR" Operation zweier Pixel
M_COPY Logische "AND" Operation zweier Pixel
M_GRAFIK Umschalten in den Graphikmodus
M_TEXT Umschalten in den Textmodus

Beispiel
void ob22 (void)
{
...
lcd_mode(M_GRAFIK | M_XOR);
...
}

Hinweis
Einen Wechsel zwischen Text- und Graphikmode wird nicht empfohlen. Die Simulation mittels ElaSim erfolgt
ausschließlich im Graphikmode.

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 48 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_setloc()
Beschreibung
Positionieren der aktuellen Cursor-Position im Textmodus.

Funktions-Definition
void lcd_setloc(char row, char col)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
Die aktuelle Zeile bei 0 beginned.
char col
Die aktuelle Spalte bei 0 beginned.

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 49 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_set_cursor()
Beschreibung
Ausgabe eines Cursors im Textmodus.

Funktions-Definition
void lcd_set_cursor(char row, char col)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
Die aktuelle Zeile bei 0 beginned.
char col
Die aktuelle Spalte bei 0 beginned.

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 50 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsp()
Beschreibung
Dies ist die Basisfunktion für alle lcd_vdsp.... (lcd video display) Funktionen.
Diese Familie von Funktionen sind im Text- sowie Graphikmodus gleichermaßen aktiv. Im Graphikmodus kann
lediglich das Attribute blinkend nicht verwendet werden.

Funktions-Definition
void lcd_vdsp(vdsp_struct HUGE* dsp)
lcd_vdsp(char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
vdsp_struct _HUGE* dsp
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 51 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsps()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (string).
Ausgabe einer Zeichenkette ab der aktuellen Cursor-Position.

Funktions-Definition
void lcd_vdsps(char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 52 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspls()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local string).
Ausgabe einer Zeichenkette ab der Cursor-Position „row“, „col“.
Dabei entspricht “row” der Zeile (beginnend mit 0) und “col” der Spalte (beginnend bei 0).
Funktions-Definition
void lcd_vdspls(char row, char col, char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 53 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspas()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute string).
Ausgabe einer Zeichenkette ab der aktuellen Cursor-Position mit einem Attribut.

Funktions-Definition
void lcd_vdspas(char attribute, char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char attribute
Attribute der LCD-Routinen aus can.h :
#define LCD_NORMAL 0x7F
#define LCD_BLINK 0x01
#define LCD_REVVID 0x02

char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 54 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsplas()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute string).
Ausgabe einer Zeichenkette ab der angegebenen Cursor-Position mit einem Attribut.

Funktions-Definition
void lcd_vdsplas( char row, char col, char attribute,
char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char attribute
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 55 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspd()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (decimal).
Ausgabe einer Short-Zahl ab der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdspd(char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 56 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspad()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute decimal).
Ausgabe einer Short-Zahl ab der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdspad(char att, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
char att
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 57 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspld()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local decimal).
Ausgabe einer Short-Zahl ab der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdspld(char row, char col, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 58 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsplad()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute decimal).
Ausgabe einer Short-Zahl ab der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdsplad(char row, char col, char att, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 59 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspal()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute long).
Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdspal(char att, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char att
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 60 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspll()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local long).
Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdspll(char row, char col, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 61 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsplal()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute long).
Ausgabe einer Longt-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void lcd_vdsplal(char row, char col, char att, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
long wert

Beispiel
lcd_vdspls(0,0,"BUS OFF");
lcd_vdspas(LCD_BLINK,"Kabelbruch");
lcd_vdspld(1,0,5,swert); /* "12345" fünfstellige Anzeige eines short-Wertes */
lcd_vdspls(0,0,"BUS OFF");
lcd_vdspas(LCD_BLINK,"Kabelbruch");
lcd_vdspas(LCD_BLINK | LCD_REVVID,"Rev.Darstellung blinkend");
sprintf(buffer,"Istwert = %5.2f",125.5F);
lcd_vdspls(1,0,buffer);

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 62 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (float).
Ausgabe einer Float-Zahl ab der aktuellen Cursor-Position im Format vk-Stellen, davon nk-Stellen für Nachkomma.

Funktions-Definition
void lcd_vdspf(char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 63 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdspaf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute float).
Ausgabe einer Float-Zahl ab der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.

Funktions-Definition
void lcd_vdspaf(char att, char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char att
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 64 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsplf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local float).
Ausgabe einer Float-Zahl ab der angegebenen Cursor-Position im Format vk-Stellen,
davon nk-Stellen für Nachkomma.

Funktions-Definition
void lcd_vdsplf(char row, char col, char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 65 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_vdsplaf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute float).
Ausgabe einer Float-Zahl ab der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma

Funktions-Definition
void lcd_vdsplaf( char row, char col, char att, char vk, char nk,
float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 66 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_set_pos()
Beschreibung
Positionieren des Anfangspunktes einer Linie.

Funktions-Definition
void lcd_draw_set_pos(int x, int y)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
Pixelgenau Poition in x-Richtung bei 0 beginnend.

int y
Pixelgenau Poition in y-Richtung bei 0 beginnend.

Beispiel

Hinweis

Verwandte Funktionen
lcd_draw_line()

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 67 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_point()
Beschreibung
Ausgabe eines Punktes an den Koordinaten (x,y). Die Position des Punktes wird in Pixeln angegeben.
Der Nullpunkt des Koordinatensystems liegt in der linken, oberen Ecke der LCD-Anzeige. Die positive
x-Richtung zeigt nach rechts, die positive y-Richtung zeigt nach unten.
Zur Angabe der Farbe des Punkes können folgende defines verwendet werden:

Funktions-Definition
void lcd_point(int x, int y, long color, RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
Pixelgenau Poition in x-Richtung bei 0 beginnend.

int y
Pixelgenau Poition in y-Richtung bei 0 beginnend.

long color
Vordefinierte Farben aus can.h :
#define COLOR_BLACK 0x000000L /* 0 */
#define COLOR_BROWN 0x000080L /* 1 */
#define COLOR_GREEN 0x008000L /* 2 */
#define COLOR_DKGREEN 0x008080L /* 3 */
#define COLOR_DKBLUE 0x800000L /* 4 */
#define COLOR_DKMAGENTA 0x800080L /* 5 */
#define COLOR_BLUE_GREEN 0x808000L /* 6 */
#define COLOR_DKGRAY 0x808080L /* 7 */
#define COLOR_GRAY 0xC0C0C0L /* 8 */
#define COLOR_RED 0x0000FFL /* 9 */
#define COLOR_LTGREEN 0x00FF00L /* 10 */
#define COLOR_YELLOW 0x00FFFFL /* 11 */
#define COLOR_BLUE 0xFF0000L /* 12 */
#define COLOR_MAGENTA 0xFF00FFL /* 13 */
#define COLOR_CYAN 0xFFFF00L /* 14 */
#define COLOR_WHITE 0xFFFFFFL /* 15 */

RECTANGLE _HUGE* pRect


Ist pRect ein Zeiger auf Null, so erfolgt die Ausgabe der Linie ohne Einschränkungen.
Ist pRect ein gültiger Zeiger auf ein Rechteck, so entspricht dieses Rechteck dem Clipping
Rechteck.

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 68 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_line()
Beschreibung
Zeichnen einer Linie. Der Anfangspunkt ist der gerade aktuelle Punkt. Er kann zuvor mit der Funktion
„lcd_draw_set_pos“ gesetzt werden. Soll eine Folge von zusammenhängenden Linien gezeichnet werden, so genügt
die einmalige Positionierung des Anfangspunktes. Wenn danach mehrfach die Funktion „lcd_draw_line“ aufgerufen
wird, ist der Anfangspunkt einer weiteren Linie der Endpunkt der vorherigen Linie. Über „pRect“ kann die
Zugehörigkeit zu einem Fenster im Display definiert werden.

Funktions-Definition
void lcd_draw_line( int to_pos_x, int to_pos_y, long color,
RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int to_pos_x
int to_pos_y
long color
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen
lcd_draw_set_pos

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 69 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_box()
Beschreibung
Zeichnen eines Rahmens.
Eine Ecke des Rahmens hat die Koordinaten (xa1/ya1) die diagonal, gegenüberliegende Ecke hat die Koordinaten
(xa2/ya2).
Mit „forecolor“ wird die Farbe des Rahmens übergeben.
Mit dem Übergabeparameter „d_box“ ist die Darstellung vorgebbar.
Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.

Funktions-Definition
Void lcd_draw_box( int xa1, int ya1, int xa2, int ya2, int d_box,
long forecolor, RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
Void

Übergabewerte
int xa1
int ya1
int xa2
int ya2
int d_box
Vordefinierte Rahmen:
#define BOX_3D_DOWNLIGHTED 0x01
#define BOX_3D_HIGHLIGHTED 0x02
#define BOX_FILLED 0x04
#define BOX_2D 0x08

long forecolor
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen
lcd_point

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 70 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_block_set()
Beschreibung

Funktions-Definition
void lcd_block_set( int x1, int y1, int x2, int y2,
long color, RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x1
int y1
int x2
int y2
long color
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 71 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_pyramid()
Beschreibung
Mit dieser Funktion kann ein Dreieck ausgegeben werden. Die Koordinaten (xa1/ya1) sind die Spitze der
Pyramide. „npixel“ bezeichnet die Höhe der Pyramide. Mit dem Parameter „filled“ kann bestimmt werden,
ob nur der Umriß oder eine dreieckige Fläche ausgegeben werden soll. Über „forecolor“ kann die Farbe
übergeben werde. Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.

Funktions-Definition
void lcd_draw_pyramid(int xa1, int ya1, int npixel, BOOL top,
BOOL filled, long forecolor,
RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int xa1
int ya1
int npixel
BOOL top
BOOL filled
long forecolor
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 72 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_circle()
Beschreibung
Zeichnen eines Kreises um den Mittlepunkt (xr, yr) mit dem Radius „r“ und der Farbe „color“. Über „pRect“ kann
die Zugehörigkeit zu einem Fenster im Display definiert werden.

Funktions-Definition
void lcd_draw_circle( int xr, int yr, int r, long color,
RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int xr
int yr
int r
long color
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 73 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_bitmap()
Beschreibung
Mit dieser Funktion kann eine Grafik ausgegeben werden.

Funktions-Definition
void lcd_draw_bitmap( int xa1, int ya1, int xa2, int ya2,
long forecolor, long backcolor, USIGN8 scale,
USIGN8 opaque, BITMAP_STRUCT _HUGE* bmp,
RECTANGLE _HUGE* pRect)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int xa1
int ya1
int xa2
int ya2
long forecolor
long backcolor
USIGN8 scale
USIGN8 opaque
BITMAP_STRUCT _HUGE* bmp
RECTANGLE _HUGE* pRect

Beispiel

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 74 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Voraussetzungen zum erfolgreichen Einsatz der Funktion:


Die Grafik muß zunächst im Windows-Bitmap-Format (BMP) vorliegen. Anschließend muß die
Bitmap-Datei in ein C-Format konvertiert werden. Dafür steht das Programm „bmp2c“ zur Verfügung, das
auf DOS-Ebene aufgerufen wird:
Gebrauch:bmp2c <Name der Bitmap-Datei mit Endung> <Name der neuen C-Datei>
Beispiel: bmp2c bild.bmp bild
„bmp2c“ muß in dem Verzeichnis aufgerufen werden, in dem sich auch die zu konvertierende Bitmap-Datei
befindet. Die durch das Programm erzeugte C-Datei wird unter dem selben Pfad abgelegt.
Die auf diese Weise erzeugte C-Datei der Grafik muß in „ob.c“ eingebunden werden.
Beispiel: #include "\Projekte\Projektname\Geraetename\ElaSim\bild.c"

Wenn diese Vorarbeiten durchgeführt sind, kann „lcd_draw_bitmap“ in „ob.c“ aufgerufen werden. Die
Koordinaten (xa1/ya1) geben die linke, obere Ecke der Grafik auf dem Dispay an. Die Koordinaten
(xa2/ya2) entspricht der rechten unteren Ecke des Bildes. Über den Parameter „scale“ kann ein
Vergrößerungsfaktor übergeben werden. „opaque“ gibt an, ob das Bild durchscheinend oder deckend sein
soll. Für „*bmp“ muß der Name der Struktur „BITMAP_STRUCT“ angegeben werden. Dieser Name kann
der C-Datei der Grafik entnommen werden. Er setzt sich aber immer aus der Zeichenfolge „bm_“ und dem
Namen der C-Datei zusammen.
Beispiel: lcd_draw_bitmap(20,20,40,40,0,COLOR_WHITE,1,0,&bm_bild,0);

Eine Anwendung für diese Funktionen finden Sie unter ...\Projekte\DemoSim\P200_Wnd\ElaSim\ob.c


In diesem Beispiel werden die „lcd_draw_...“-Funktionen zur Erzeugung eine Fenster-Oberfläche genutzt.

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 75 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

In diesem Beispiel sind drei Fenster realisiert die jeweils


mit den Tasten F1, F2 und F3 erzeugen lassen. Mit den
Tasten S1, S2 und S3 kann das gewünschte Fenster in
den Vordergrund gebracht werden. S5, S6 und S7
schließen die Fenster W0, W1 und W3.
Die Fenster W0 und W2 können mit den Tasten „+“ und
„-„ vergrößert und verkleinert werden. Mit den Pfeil-
Tasten lassen sich die beiden Fenster verschieben.
Im Fenster W1 werden die Pfeil-Tasten für den Wechsel
zwischen drei Eingagewerten verwendet. In diesem
Fenster können Werte über die Ziffer-Tasten eingegeben
und mit Enter gespeichert werden.
.

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 76 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_dsp_rom_char()
Beschreibung

Funktions-Definition
void lcd_dsp_rom_char(short x, short y, char attribute, USIGN8 ch)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
short x
short y
char attribute
USIGN8 ch

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 77 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_font_char()
Beschreibung

Funktions-Definition
void lcd_draw_font_char( int x, int y, char ch, int scale,
long color,.FONT _HUGE* pFont,
RECTANGLE _HUGE* pRECT)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
int y
char ch
int scale
long color
FONT _HUGE* pFont
RECTANGLE _HUGE* pRect

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 78 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_font_str()
Beschreibung
Voraussetzungen zum erfolgreichen Einsatz der Funktionen:
Der Zeichensatz muß zunächst im *.fnt-Format vorliegen. Anschließend muß die Font-Datei in ein
C-Format konvertiert werden. Dafür steht das Programm „font2c“ zur Verfügung, das auf DOS-Ebene aufgerufen
wird:
Gebrauch: font2c <Name der Font-Datei mit Endung> <Name der neuen C-Datei>
Beispiel: font2c rom8x6.fnt rom8x6
„font2c“ muß in dem Verzeichnis aufgerufen werden, in dem sich auch die zu konvertierende Font-Datei befindet.
Die durch das Programm erzeugte C-Datei wird unter dem selben Pfad abgelegt.
Die auf diese Weise erzeugte C-Datei des Fonts muß in „ob.c“ eingebunden werden.
Beispiel: #include "\Projekte\Projektname\Geraetename\ElaSim\rom6x8.c"

Wenn diese Vorarbeiten durchgeführt sind, können „lcd_draw_font_char“ und „lcd_draw_font_str“ in „ob.c“
aufgerufen werden.
Die Koordinaten (off_x, off_y) geben die Startkoordinate der Schrift auf dem Dispay an. „ch“ ist das
auszugebende Zeichen. „str“ ist der Pointer auf die auszugebende Zeichenfolge. „scale“ ist der
Vergrößerungsfaktor. Mit „color“ kann die Farbe der Schrift übergeben werden. Für „pFont“ muß der Name der
Zeichenfolge im Format „FONT“ angegeben werden. Dieser Name kann der C-Datei des Zeichensatzes
entnommen werden. „font2c“ nennt die Zeichenfolge immer „font“. Falls mehr als einen Zeichensatz verwendet
werden soll ist es erforderlich den Zeichensatz in der *.c-Datei umzubenennen. Zum Beispiel von „font“ auf
„fnt_rom8x6“. Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.
Beispiel: lcd_draw_font_str(20,20,"Hallo",1,COLOR_BLACK,&fnt_rom8x6,0);
Ausgabe der Zeichenfolge „Hallo“ an der Position (20/20) in der Originalgröße, in der Farbe Schwarz, mit
Zeichen aus dem Zeichensatz „fnt_rom8x6“.

Funktions-Definition
void lcd_draw_font_str( int x, int y, char _HUGE* str, int scale,
long color,.FONT _HUGE* pFont,
RECTANGLE _HUGE* pRECT)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
int y
char _HUIGE* str
int scale
long color
FONT _HUGE* pFont
RECTANGLE _HUGE* pRect

Beispiel

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 79 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 80 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_zoom_char()
Beschreibung

Funktions-Definition
void lcd_draw_zoom_char( int x, int y, char ch, int scale,
long color)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
int y
char ch
int scale
long color

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 81 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_draw_zoom_str()
Beschreibung

Funktions-Definition
void lcd_draw_zoom_str( int x, int y, char _HUGE* str, int scale,
long color)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int x
int y
char _HUGE* str
int scale
long color

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 82 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_resolution_x()
Beschreibung
Bestimmen der Breite der LCD-Anzeige in Pixeln.

Funktions-Definition
short lcd_resolution_x(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 83 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

lcd_resolution_y()
Beschreibung

Bestimmen der Höhe der LCD-Anzeige in Pixeln.

Funktions-Definition
short lcd_resolution_y(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 84 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_display()
Beschreibung
Des weiteren können auf einem Frontpult zusätzliche Leuchtdioden (LEDs) untergebracht sein, z.B. bei
Funktionstasten. Mittels dieser Funktion können diese LEDs ein-, aus- und blinkend geschaltet werden. Die
Numerierung beginnt oben rechts mit 0x11 und ist in der ersten Zeile aufsteigend von 0x11 ... 0x1F. In der zweiten
Zeile von 0x21 ... 0x2F u.s.w..
Attribute der LED-Routinen :
#define LED_AUS 0x00
#define LED_EIN 0x01
#define LED_BLINK 0x02

Funktions-Definition
void led_display(unsigned char nr, char mode)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
unsigned char nr
char mode

Beispiel
led_vdspls(0,0,"BUS");
led_vdspls(1,0,"OFF");

Weitere Beispiele finden Sie in ... \Projekte\DemoSim\P200_Key\ElaSim\ob.c

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 85 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsp()
Beschreibung

Funktions-Definition
void led_vdsp(vdsp_struct _HUGE* dsp)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
vdsp_struct _HUGE* dsp

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 86 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsps()
Beschreibung
Ausgabe einer Zeichenkette auf der aktuellen Cursor-Position.

Funktions-Definition
void led_vdsps(char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 87 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspls()
Beschreibung

Funktions-Definition
void led_vdspls(char row, char col, char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 88 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspas()
Beschreibung

Funktions-Definition
void led_vdspas(char attribut, char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char attribute
char _HUGE* str

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 89 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspd()
Beschreibung
Ausgabe einer Short-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspd(char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 90 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspad()
Beschreibung

Ausgabe einer Short-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspad(char att, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char att
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 91 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspld()
Beschreibung

Ausgabe einer Short-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine
negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspld(char row, char col, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 92 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsplad()
Beschreibung

Ausgabe einer Short-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdsplad(char row, char col, char att, char vk, short wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
short wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 93 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspl()
Beschreibung

Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspl(char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 94 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspal()
Beschreibung

Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspl(char att, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char att
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 95 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspll()
Beschreibung

Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdspll(char row, char col, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 96 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsplal()
Beschreibung

Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.

Funktions-Definition
void led_vdsplal(char row, char col, char att, char vk, long wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
long wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 97 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspf()
Beschreibung
Ausgabe einer Float-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, davon nk-Stellen für Nachkomma.

Funktions-Definition
void led_vdspf(char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 98 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdspaf()
Beschreibung

Ausgabe einer Float-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.

Funktions-Definition
void led_vdspaf(char att, char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char att
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 99 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsplf()
Beschreibung
Ausgabe einer Float-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, davon nk-Stellen für
Nachkomma.

Funktions-Definition
void led_vdsplf(char row, char col, char vk, char nk, float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 100 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsplaf()
Beschreibung
Ausgabe einer Float-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.

Funktions-Definition
void led_vdsplf( char row, char col, char att, char vk, char nk,
float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char att
char vk
char nk
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 101 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

led_vdsp_dp()
Beschreibung
Jede Sieben-Segment-Anzeige kann zusätzlich noch einen Dezimalpunkt aufweisen. Die Ansteuerung der
Koordinaten erfolgt in gleicher Konvention wie die Ausgabe. Mit dem Parameter “ON” kann über TRUE oder
FALSE der Dezimalpunkt ein- bzw. ausgeschaltet werden.

Funktions-Definition
void led_vdsp_dp(char row, char col, char on)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char row
char col
char on

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 102 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ad_10bit()
Beschreibung

Funktions-Definition
short ad_10bit(char nr)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
char nr

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 103 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

ad_12bit()
Beschreibung

Funktions-Definition
short ad_12bit(char nr)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
char nr

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 104 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

dac_out()
Beschreibung

Funktions-Definition
void dac_out(int nr, int wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
int nr
int wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 105 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kbbgd()
Beschreibung

Funktions-Definition
char kbbgd(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 106 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kbrdy()
Beschreibung
Abfrage, ob ein Tastencode gespeichert ist.

Funktions-Definition
bit kbrdy(void)
char

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
bit
char

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 107 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kblasttime()
Beschreibung
Abfrage wieviele Zehntelsekunden eine Taste bereits gedrückt wurde. Hiermit können inkrementierende
Tasteninterpretationen realisiert werden.

Funktions-Definition
short kblasttime(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 108 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kbnec()
Beschreibung

Auslesen des Tastaturspeichers. Falls der Tastaturspeicher leer ist, wird solange gewartet, bis ein gültiges Zeichen
vorliegt.

MERKE : Bevor ein Zeichen ausgelesen wird, sollte abgefragt werden ob ein gültiges
Zeichen ansteht, sonst wird der komplette Steuerungsablauf angehalten.

Funktions-Definition
short kbnec(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 109 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kbflush()
Beschreibung
Löschen des gesamten Tastaturspeichers. Wird eine nicht speichernde Tastenverarbeitung gewünscht, so muß nach
jeder kbnec() Funktion die kbflush() aufgerufen werden.

Funktions-Definition
void kbflush(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 110 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

kbsetkey()
Beschreibung
Simulieren eines Tastendruckes. Mit dieser Funktion können Tasteninformationen in den Tastaturspeicher
geschrieben werden.
Die Tasten liefern einen hexadezimalen Code entsprechend ihrer Anordnung. Die linke obere Taste ist die
Taste mit der Codezahl 0x11, die Taste rechts daneben 0x12, die Taste rechts daneben 0x13 u. s. w. Die
Tasten in der zweiten Reihe beginnen mit 0x21 u.s.w. Die Beschriftung auf der Frontfolie ist wahlfrei und
kann über #define-Anweisungen beschriftet werden .
z.B. #define Taste_Pfeil_oben 0x12

Das Modul beinhaltet einen Tastaturspeicher von 16 Zeichen.


Ein Zeichen kann von diesem Speicher mit der Funktion „kbnec()“ gelesen werden.
Funktions-Definition
void kbsetkey(short key)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
short key

Beispiel
Beispiele :
#define KB_F1 0x11
#define KB_F2 0x12
#define KB_STOP 0x31
....
if ( M0_E1 ) /* Falls E1 von Modul 0 aktiv ist muß die Anlage gestoppt werden. */
kbsetkey(KB_STOP);
if ( kbrdy() )
{
switch (kbnec())
{
case KB_F1:
lcd_vdspls(0,0,"Taste F1 wurde gedrückt.");
break;
case KB_F2:
lcd_vdspls(0,0,"Taste F2 wurde gedrückt.");
break;
case KB_STOP:
lcd_vdspls(0,0,"Taste STOP wurde gedrückt.");
kbflush(); /* Tastatusspeicher löschen */
break;
}
}

Weitere Beispiele finden Sie in ... \Projekte\DemoSim\P200_Key\ElaSim\ob.c, ...\P200_LCD\...,


...\P200Feld\..., ...\P200_EE\..., ...\P200_CAN\..., \P200_EA\... .
Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 111 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldSetKey()
Beschreibung

Funktions-Definition
void FieldSetKey(short virtual_key, short physikal_key)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short virtual_key
short physical_key

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 112 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldTranslateKey()
Beschreibung

Funktions-Definition
short FieldTranslateKey(short physikal_key)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
short

Übergabewerte
short physical_key

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 113 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldSetActive()
Beschreibung

Funktions-Definition
void FieldSetActive( FIELD _HUGE* pField, void _HUGE* pOrgValue,
char _HUGE* pszTitle, char _HUGE* pszUnit,
int nDataType, DATABUFFER4 db4MinValue,
DATABUFFER4 db4MaxValue,
DATABUFFER4 db4DefaultValue,
long nEEpromAdress, short nPosX, short nPosY,
char nPrePrecision, char nPostPrecision,
char nPasswordLevel,
void _HUGE* pHandleDatapoint)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
FIELD _HUGE* pField
void _HUGE* pOrgValue
char _HUGE* pszTitle
char _HUGE* pszUnit
int nDataType
DATABUFFER4 db4MinValue
DATABUFFER4 db4MaxValue
DATABUFFER4 db4DefaultValue
long nEEpromAdress
short nPosX
short nPosY
char nPrePrecision
char nPostPrecision
char nPasswordLevel
void _HUGE* pHandleDatapoint

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 114 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldProcessKey()
Beschreibung

Funktions-Definition
void FieldProcessKey(FIELD _HUGE* pField, WND _HUGE* pWnd,short key)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
FIELD _HUGE* pField
WND _HUGE* pWnd
short key

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 115 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldProcessVirtualKey()
Beschreibung

Funktions-Definition
void FieldProcessVirtualKey(FIELD _HUGE* pField, WND _HUGE* pWnd,
short key, char translate)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
FIELD _HUGE* pField
WND _HUGE* pWnd
short key
char translate

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 116 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldStoreToEEPROM()
Beschreibung

Funktions-Definition
void FieldStoreToEEPROM( long nEEpromAdress, int nDataType,
DATABUFFER4 db4Value)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
long nEEpromAdress
int nDataType
DATABUFFER4 db4Value

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 117 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldReadFromEEPROM()
Beschreibung

Funktions-Definition
void FieldReadFromEEPROM( long nEEpromAdress, int nDataType,
DATABUFFER4 _HUGE* pdb4EditValue)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
long nEEpromAdress
int nDataType
DATABUFFER4 _HUGE* pdb4EditValue

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 118 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

FieldSetEEFunction()
Beschreibung

Funktions-Definition
void FieldSetEEFunction( P_EE_ENABLE pArgEEenable,
P_EE_DISABLE pArgEEdisable,
P_EE_SHORT_RD pArgEEshortRD,
P_EE_SHORT_WR pArgEEshortWR)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
P_EE_ENABLE pArgEEenable
P_EE_DISABLE pArgEEdisable
P_EE_SHORT_RD pArgEEshortRD
P_EE_SHORT_WR pArgEEshortWR

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 119 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_einheit()
Beschreibung
Liefert die pyhsikalische Einheit der aktuellen Eingabe.

Funktions-Definition
char _HUGE* feld_get_einheit(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
char _HUGE*

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 120 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_eingabe()
Beschreibung
Liefert mittels TRUE oder FALSE den Zustand der Eingabe.

Funktions-Definition
char feld_get_eingabe(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 121 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_nachkomma()
Beschreibung
Liefert die Anzahl Nachkommastellen.

Funktions-Definition
char feld_get_nachkomma(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 122 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_typ()
Beschreibung

Liefert den aktuellen Typ einer Feldeingabe, dieser kann sein : FELD_TYP_SHORT, FELD_TYP_FLOAT,
FELD_TYP_LONG bis FW < 1.20.
Ab FW 1.20 wurde für CPU515/CPU960/CPU167 einheitlich geändert und umbenannt :
FELD_TYP_SHORT ersetz durch DATATYPE_SHORT
FELD_TYP_LONG ersetz durch DATATYPE_LONG
FELD_TYP_FLOAT ersetz durch DATATYPE_FLOAT

Funktions-Definition
char feld_get_typ(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
char

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 123 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_check_0()
Beschreibung
Prüft einen eingegebenen “Float”-Wert auf 0 ab.

Funktions-Definition
float feld_check_0(float wert)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
float

Übergabewerte
float wert

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 124 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_float_wert()
Beschreibung
Liefert den aktuell eingegebenen “Float”-Wert.

Funktions-Definition
float feld_get_float_wert(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
float

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 125 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_long_wert()
Beschreibung

Liefert den aktuell eingegebenen “Long”-Wert.

Funktions-Definition
long feld_get_long_wert(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
long

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 126 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_get_short_wert()
Beschreibung

Liefert den aktuell eingegebenen “Short”-Wert.

Funktions-Definition
short feld_get_short_wert(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
short

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 127 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set()
Beschreibung

Funktions-Definition
void feld_set(feld_struct _HUGE* pfeld)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
feld_struct _HUGE* pfeld

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 128 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set_eingabe()
Beschreibung

Funktions-Definition
void feld_set_eingabe(char eingabe)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char eingabe

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 129 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set_prio()
Beschreibung

Funktions-Definition
void feld_set_prio(char prio)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char prio

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 130 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_taste()
Beschreibung

Übermittelt die aktuell gedrückte Taste zur Feldeingabe.

Funktions-Definition
void feld_taste(short key)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
short key

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 131 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set_float()
Beschreibung
Eingabe einer “Float”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Darstellung beträgt “nachkomma” Nachkommastellen, die Kennwortpriorität
entspricht “kennwort_prio” und die Adresse im EEPROM-Speicher entspricht “eeprom_adresse”.

Funktions-Definition
void feld_set_float( float HUGE* wert, float min, float max,
float memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
float _HUGE* wert
float min
float max
float memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 132 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set_long()
Beschreibung

Eingabe einer “Long”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Kennwortpriorität entspricht “kennwort_prio” und die Adresse im EEPROM-
Speicher entspricht “eeprom_adresse”.

Funktions-Definition
void feld_set_long( long HUGE* wert, long min, long max,
long memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
long _HUGE* wert
long min
long max
long memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 133 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_set_short()
Beschreibung

Eingabe einer “Short”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Kennwortpriorität entspricht “kennwort_prio” und die Adresse im EEPROM-
Speicher entspricht “eeprom_adresse”.

Funktions-Definition
void feld_set_short( short HUGE* wert, short min, short max,
short memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short _HUGE* wert
short min
short max
short memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 134 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_ink_vorkomma()
Beschreibung
Hochzählen der Vorkommastellen eines Feldwertes mit der „FELD_TASTE_PLUS“ und Dekrementieren der
Nachkommastellen eines Feldwertes mit der „FELD_TASTE_MINUS“. Am Anfang wird mit 1er Schritten
inkrementiert. Nach „sek1“ Zehntelsekunden und Übertrag von 9.?? Auf 10.?? Wird in „ink1“er Schritten
inkrementiert. Nach „sek2“ Zehntelekunden und Übertrag von 9.?? auf 10.?? wird in „ink2“er Schritten
inkrementiert. Nach „sek3“ Zehntelsekunden und Übertrag von 99.?? auf 100.?? wird in „ink3“ er Schritten
inkrementiert.
Den Parametern „sek...“ müssen Werte > 0 übergeben werden.

Funktions-Definition
void feld_ink_vorkomma( short sek1, short ink1, short sek2,
short ink2, short sek3, short ink3)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short sek1
short ink1
short sek2
short ink2
short sek3
short ink3

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 135 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_dek_vorkomma()
Beschreibung

Funktions-Definition
void feld_dek_vorkomma( short sek1, short dek1, short sek2,
short dek2, short sek3, short dek3)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short sek1
short dek1
short sek2
short dek2
short sek3
short dek3

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 136 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_ink_nachkomma()
Beschreibung
Hochzählen der Nachkommastellen eines Feldwertes mit der „FELD_TASTE_PLUS“ und Dekrementieren der
Nachkommastellen eines Feldwertes mit der „FELD_TASTE_MINUS“.
Am Anfang wird in 1er Schritten inkrementiert, d. h.:
bei 1 Nachkomma : 0.0 ==> 0.1 ==> 0.2 ==> 0.3 ==> u.s.w.
bei 2 Nachkomma : 0.00 ==> 0.01 ==> 0.02 ==> 0.03 ==> u.s.w.
bei 3 Nachkomma : 0.000 ==> 0.001 ==> 0.002 ==> 0.003 ==> u.s.w.
bei 4 Nachkomma : 0.0000 ==> 0.0001 ==> 0.0002 ==> 0.0003 ==> u.s.w.
Hinweis : maximal 4 Nachkommastellen !!!
Nach „sek1“ 1/10sec wird in „ink1“er Schritten inkrementiert
Nach „sek2“ 1/10sec wird in „ink2“er Schritten inkrementiert.
Erfolgt einmal der Übertrag auf Vorkomma-Inkrementierung, so wird nur noch die Vorkommastelle bearbeitet,
bis die Taste (+) losgelassen und erneut gedrückt wird.
Wichtig : Der Übertrag auf Vorkomma findet statt, falls der Nachkommawert zahlenwertmäßig über den
Wert der angegebenen Dekade läuft.

Funktions-Definition
void feld_ink_nachkomma( short sek1, short ink1, short sek2,
short ink2, short sek3, short ink3)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short sek1
short ink1
short sek2
short ink2
short sek3
short ink3

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 137 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_dek_nachkomma()
Beschreibung

Funktions-Definition
void feld_dek_nachkomma( short sek1, short dek1, short sek2,
short dek2, short sek3, short dek3)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
void

Übergabewerte
short sek1
short dek1
short sek2
short dek2
short sek3
short dek3

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 138 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

feld_ink_dek()
Beschreibung

Funktions-Definition
void feld_ink_dek(char fun_idx, short _HUGE* pvalues)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char fun_idx
short _HUGE* pvalues

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 139 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

prtc()
Beschreibung

Ausgabe eines einzelnen Zeichens.

Funktions-Definition
void prtc(char c)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char c

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 140 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

prtreset()
Beschreibung
Zurücksetzen der parallelen Schnittstelle (CENTRONICS).

Funktions-Definition
void prtreset(void)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
void

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 141 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

prtstr()
Beschreibung
Ausgabe einer Zeichenkette auf der aktuellen Position auf dem Blatt.

Funktions-Definition
void prtstr(char _HUGE* str)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
; ; ;
Bibliotheken

Rückgabewert
void

Übergabewerte
char _HUGE* str

Beispiel
Beispiele :
#define ESC 27
char buffer[256];
....
prtc(ESC),prtc(0x1A),prtc(0x2E); /* Ausgabe einer druckerspezifischen ESC-Sequenz */
prtstr("Dies ist eine Zeile auf dem Drucker\n\r");
prtstr("Dies ist eine zweite Zeile auf dem Drucker\n\r");
prtstr("Dies ist eine dritte Zeile auf dem Drucker\n\r");
sprintf(buffer,"Dies ist eine vierte formatierte Zeile auf dem Drucker mit Zahl :\
%d\n\r", 25);
prtstr(buffer);

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 142 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

uw_outp()
Beschreibung

Funktions-Definition
USIGN32 uw_outp(USIGN32 port, USIGN32 value, USIGN32 write_mask)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
USIGN32

Übergabewerte
USIGN32 port
USIGN32 value
USIGN32 write_mask

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 143 von 144
(/$62)762)7:$5(%(6&+5(,%81* V1.0/V2_70/Li

uw_inp()
Beschreibung

Funktions-Definition
USIGN32 uw_inp(USIGN32 port, USIGN32 read_mask)

Informationsdateien CPU515 CPU167 CPU960


#include ”ob.h”
;
Bibliotheken

Rückgabewert
USIGN32

Übergabewerte
USIGN32 port
USIGN32 read_mask

Beispiel

Hinweis

Verwandte Funktionen

Best.-Nr: E5000 ELASIM_FIRMWARE_FUNKTIONEN.DOC


elrest Automationssysteme Seite 144 von 144

You might also like