PC --> S/PCPAR --> S/PARLCD16 --> TL2004
LCD 4x20 |
LCD 2x16 |
S11.991V 0.2399A >US I-0.320V 0.0015A IS -465.uW 00:47:52 KA 1.162mAh 65.8C RS |
11.20V 1.679A>US 1.926V 1.700A IS |
Durch Drehen kann die Vorwahl umgeschaltet werden:
>US (Sollwert Spannung) nach >IS (Sollwert Strom) umgeschaltet
Durch Drücken des Tasters wird der entsprechende Menüpunkt
aktiviert. Das wird angezeigt durch den Stern: *US oder *IS.
LCD 4x20 | LCD 2x16 |
S0.5273V 0.3000A US I27.977V 0.8821A *IS 24.68 W 00:01:50 KA 29.46mAh 20.9C RS |
11.20V 1.679A US 1.926V 1.700A*IS |
Durch Drehen kann jetzt der Sollwert verändert werden.
Durch nochmaliges Drücken des Tasters wird der Menüpunkt
*IS deaktiviert, bleibt aber vorgewählt und wird angezeigt als
">IS"
Das LCD-Hauptmenü hat die Funktionen:
S14.399V 1.600 A US I 7.365V 775.0mA IS 5.708 W 00:09:45 >KA 128.1mAh 63.2C RS |
S24.020V 10.050A >US I32.141V 3.3120A IS UI II |
Wenn durch Drehen weiter hinunterpositioniert wird, dann erscheinen
die weiteren Menüpunkte, SP und X:
S24.020V 10.050A UI I32.141V 3.3120A >II SP X |
LCD 4x20 |
LCD 2x16 |
S2.942V 0.000A >N I2.942V 0.124A F kal UIst N0 X UsollF3313 |
US Kalib 5.62>NU |
S0.0092V 0.0000A >UM I26.804V 0.9270A IM Umax:5.2496V X Imax:0.3000A |
Die zweite serielle Schnittstelle eines Atmega644P ist da: (RxD1 = Pin 16, PD2) (TxD1 = Pin 17, PD3). Ein Atmega32 hat keine zweite serielle Schnittstelle.
Es gibt für die Verwendung der seriellen Schnittstellen also
diese
Möglichkeiten
Definition | |
OPT_SER_DIAL 0 MODBUSADDRS 0 |
Gar keine serielle Schnittstelle wird verwendet. Die Bedienung erfolgt alleine durch den Drehencoder und die LCD-Anzeige |
OPT_SER_DIAL 0 MODBUSADDRS 20 |
Die erste serielle Schnittstelle wird für die MODBUS-Kommunikation verwendet. |
OPT_SER_DIAL 1 MODBUSADDRS 0 |
Die erste serielle Schnittstelle wird für den Text-Dialog verwendet. |
OPT_SER_DIAL 1 MODBUSADDRS 20 |
Verbotene Kombination |
OPT_SER_DIAL 2 MODBUSADDRS 20 |
Die zweite serielle Schnittstelle eines Atmega644P wird für den Text-Dialog verwendet. |
OPT_SER_DIAL 2 MODBUSADDRS 20 |
Die erste serielle Schnittstelle wird für
die MODBUS-Kommunikation
verwendet. Die zweite serielle Schnittstelle eines Atmega644P wird für den Text-Dialog verwendet. |
Wenn das Programm mispav auf einem PC ausgeführt wird, dann läuft der Text-Dialog durch die Konsole (vt.cpp) und die MODBUS-Kommunikation läuft durch die Schnittstelle, die in C:\CCKonfig.h spezifiziert ist: #define SFMODBUS_MDOS40_COM "COM1"
Durch die Eingabe von '?' kann die Hilfe angezeigt werden:
mispav:? ?: Hilfe
U_I_Steller mispav |
Auf HAMDUS unter Win95 (MDOS50) zeigt z an:
z: Stackverwendung DIA:Stapel frei =1584 verwendet =416 von =2000 LCD:Stapel frei =1855 verwendet =145 von =2000 ONE:Stapel frei =1955 verwendet =45 von =2000 MES:Stapel frei =0 verwendet =2000 von =2000 1s =1193180gettick() =3181810815 Schleife=0.469716s LCD=0.606489s z: Stackverwendung DIA:Stapel frei =1584 verwendet =416 von =2000 LCD:Stapel frei =1855 verwendet =145 von =2000 ONE:Stapel frei =1955 verwendet =45 von =2000 MES:Stapel frei =0 verwendet =2000 von =2000 1s =1193180gettick() =3183907869 Schleife=0.121617s LCD=0.630398s |
Auf dem ATmega644P am 2020-11-17
z: Stackverwendung DIA:Stapel frei =6 verwendet =54 von =60 LCD:Stapel frei =18 verwendet =42 von =60 ONE:Stapel frei =38 verwendet =22 von =60 MES:Stapel frei =39 verwendet =21 von =60 1s =2001122gettick() =183194294 Schleife=0.002377s LCD=0.221448s |
Auf dem Windows XP, MDOS50, nur Simulation, ohne ADC/DAC am
2020-11-20
mispav:z z: Stackverwendung DIA:Stapel frei =1384 verwendet =616 von =2000 LCD:Stapel frei =1887 verwendet =113 von =2000 ONE:Stapel frei =1976 verwendet =24 von =2000 MES:Stapel frei =1966 verwendet =34 von =2000 1s =1789772gettick() =69338856 Schleife=0.015865s LCD=1.156299s |
mispav:u 0.000V Usoll?14.4 14.399V |
Es werden nur erlaubte Spannungswerte angenommen.
mispav:u 14.399V Usoll?65.7 Wert wird
begrenzt 24.000V |
mispav:i 0.000 A Isoll?0.833 832.9mA |
Es werden nur erlaubte Stromwerte angenommen.
mispav:i 832.9mA Isoll?5 Wert wird begrenzt
1.600 A |
mispav:m US:13.998V IS:919.9mA UI:-10.990V II:732.7mA |
mispav:a a: laufende Anzeige EINgeschaltet
US:13.998V IS:919.9mA UI:18.719V II:-1.25 A |
Anzeige | Bedeutung |
mispav:b MR0=0 MR1=0 MR2=0 MR3=0 MR4=0 MR5=0 MR6=2021 MR7=303 MR8=25971 MR9=26226 MR10=28524 MR11=29793 MR12=0 in0 0 0 0 0 0 0 0 0 in8 0 0 0 0 0 0 0 0 in16 0 0 0 0 0 0 0 0 in24 0 0 0 0 0 0 |
MR0 = Anzahl der empfangenen Telegramme. MR1 = Anzahl der Rahmenfehler, falsches Stoppbit (FRAME) MR2 = Anzahl der Fehler Datenüberlauf (DOR) MR3 = Anzahl der Paritätsfehler MR4 = Anzahl der gesendeten Antworttelegramme MR5 = Anzahl der Zeitüberschreitungen beim Empfang von Telegrammen MR6 = Version der Software: Jahr MR7 = Version der Software: Monat * 100 + Tag als Zahl 101...1231 MR8...MR12 = Name der Software, ASCII, "mispav" in0 ... = Die Bytes des zuletzt empfangenen Telegramms vom MASTER |
Kanal Roh 'n'Nul 'f'Fak
Darst 'a'Roh 'v'Ref 'b'Roh 'w'Ref 'g'Grenze 0*US 2264 -4 40.766 5.623V 0 0.0000 0 0.0000 12.498 1:IS 3644 -61 1.7034 0.373A 0 0.0000 0 0.0000 1.6966 2:UM 36 -5 40.935 0.077V 0 0.0000 0 0.0000 3:IM 3641 -62 1.7072 0.373A 0 0.0000 0 0.0000 4:TM 5168 -3736 690.07 60.3C 0 0.0000 0 0.0000 5:UK 1377 0 30.000 2.52V 0 0.0000 0 0.0000 Kanal adc0[%] adc1[%] adc2[%] adc3[%] adc4[%] adc5[%] adc6[%] adc7[%] min 0.20 22.17 99.98 22.14 13.77 22.17 31.54 8.40 mit 0.22 22.22 99.98 22.22 13.77 22.19 31.54 8.41 max 0.22 22.27 99.98 22.24 13.77 22.19 31.54 8.42 Befehle im Kalibriermenue: u i - Spannung / Strom neu vorgeben a b - Rohwert a b von ADC-Wert uebernehmen c d - Rohwert a b vorgeben v w - Referenzwert v w vorgeben l - Lineare Gerade berechnen g - Grenzwert einstellen n f - Nullpukt, Faktor neu eingeben 0..3 - Auswahl der Zeile K# zur Bearbeitung s - EEPROM schreiben x - Kalibrierdialog verlassen |
Auch im Kalibrierdialog können die beiden Sollwerte vorgegeben werden.
Die Kalibrierung erfolgt dadurch, dass der Versatz 'n'Nul und der
Faktor
'f'Fak so verändert wird, dass die angezeigten Werte mit einem
Vergleichsmessgerät
übereinstimmen.
Hierzu wird z.B. ein Referenz-Voltmeter angeschlossen und es werden
verschiedene Spanungen vorgegeben. Die Anzeige wird mit dem
tatsächlichen
Wert verglichen.
Es gibt zwei Möglichkeiten die Anzeige zu korrigieren:
Im Kalibriermenü können auch die Einstellwerte
für den
entsprechenden Kanal neu eingegeben werden.
'g' - Maximale Grenze des einstellbaren Sollwertes neu eingeben.
Wenn mispav.exe im PC ausgeführt wird, dann wird in der
LOG-Datei
C:\TEMP\mispav\A.log die aktuelle Definition für JAVA erzeugt:
public static final int sfm_Usoll = 14;
public static final int sfm_Isoll = 16; public static final int sfm_Usollgrenz = 18; public static final int sfm_Isollgrenz = 20; public static final int sfm_USnull = 22; public static final int sfm_ISnull = 23; public static final int sfm_USfak = 24; public static final int sfm_ISfak = 26; public static final int sfm_UInull = 28; public static final int sfm_IInull = 29; public static final int sfm_UIfak = 30; public static final int sfm_IIfak = 32; public static final int sfm_UKEnull = 34; public static final int sfm_Tnull = 35; public static final int sfm_UKEfak = 36; public static final int sfm_Tfak = 38; public static final int sfm_Umess = 40; public static final int sfm_Imess = 42; public static final int sfm_Takt = 44; public static final int sfm_UKE = 46; public static final int sfm_adc = 48; |
Ursache |
Das wurde verursacht durch einen MCP3551,
welcher an dem unbenutzten Port SS=0x20 angeschlossen war. #define SSMCP3551_0 0x20 // Bitmaske fuer den ersten Slave Select fuer MCP3551 22 Bit ADC |
Abhilfe |
Den 6-poligen pmod-Stecker vom Adapter spi6_lpt1
abziehen. |
Slave 20 : mispav 2023-12-27 Antwortet manchmal mit 8A statt 14 qqmodbio: r 2024-08-16 14:09:13.937Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 qqcrc16 14 04 04 07 E7 04 CB 4D 51 i.O. 0x7E7,0x4CB, 6:2023=0x7E7=F 0.000000 7:1227=0x4CB=F 0.000000 qqmodbio: r 2024-08-16 14:09:34.375Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=12000 qqcrc16 FEHLER qqmodbio: r 2024-08-16 14:09:40.656Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=12000 qqcrc16 FEHLER qqmodbio: r 2024-08-16 14:09:41.484Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 8A 04 04 07 1E 70 B9 2A FD FEHLER qqmodbio: r 2024-08-16 14:09:42.109Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 8A 04 04 07 E7 04 CB 4D 51 FEHLER qqmodbio: r 2024-08-16 14:09:43.015Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 8A 04 04 07 E7 04 CB 4D 51 FEHLER qqmodbio: r 2024-08-16 14:09:43.796Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 8A 04 04 07 E7 04 CB 4D 51 FEHLER qqmodbio: r 2024-08-16 14:09:44.406Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 8A 10 D0 F0 1E D0 FE 53 FEHLER qqmodbio: r 2024-08-16 14:09:44.984Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 qqcrc16 14 04 04 07 E7 04 CB 4D 51 i.O. 0x7E7,0x4CB, 6:2023=0x7E7=F 0.000000 7:1227=0x4CB=F 0.000000 qqmodbio: r 2024-08-16 14:09:45.765Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=735 qqcrc16 18 04 04 07 1E 70 B9 2A FD FEHLER qqmodbio: |
y 2024-08-16 14:50:09.859 Slave 11 : modone_n 2024-7-26 Slave 13 : modadc4 2024-4-1 Slave 16 : temppid1 2022-12-13 Slave 17 : modverhk 2024-1-4 Slave 20 : mispav 2024-5-4 Slave 24 : temppid2 2024-4-1 Slave 25 : modspiw 2023-11-9 Slave 26 : moddht11 2024-7-25 Slave 105 : moddvm4 2011-5-27 Slave 106 : moddvm4 2020-9-16 qqmodbio: s 2024-08-16 14:51:23.031Eingabe Slaveadresse : 20 ? abgebrochen MSG2024-08-16 14:51:25.781 Slaveadresse 's'=20=0x14 qqmodbio: r 2024-08-16 14:51:26.984Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 crc.exe 14 04 04 07 E8 01 F8 ergibt: 3E 17 i.O. 0x7E8,0x1F8, 6:2024=0x7E8=F 0.000000 7:504=0x1F8=F 0.000000 qqmodbio: r 2024-08-16 14:51:27.796Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 crc.exe 14 04 04 07 E8 01 F8 ergibt: 3E 17 i.O. 0x7E8,0x1F8, 6:2024=0x7E8=F 0.000000 7:504=0x1F8=F 0.000000 qqmodbio: r 2024-08-16 14:51:28.625Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 crc.exe 14 04 04 07 E8 01 F8 ergibt: 3E 17 i.O. 0x7E8,0x1F8, 6:2024=0x7E8=F 0.000000 7:504=0x1F8=F 0.000000 qqmodbio: r 2024-08-16 14:51:33.328Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 crc.exe 14 04 04 07 E8 01 F8 ergibt: 3E 17 i.O. 0x7E8,0x1F8, 6:2024=0x7E8=F 0.000000 7:504=0x1F8=F 0.000000 qqmodbio: r 2024-08-16 14:51:34.078Lese von 's'Slave=20 'a'Wortadresse=6 'n'Anzahl=2 modbus_read_reg() rva=0 crc.exe 14 04 04 07 E8 01 F8 ergibt: 3E 17 i.O. 0x7E8,0x1F8, 6:2024=0x7E8=F 0.000000 7:504=0x1F8=F 0.000000 qqmodbio: |
Stand | Speicherbedarf | |
2020-11-19 | ROM: 22912 (5980H), RAM: 1257 (4E9H) | MDOS50 für PC - Vortest |
2021-02-03 | ROM: 28454 (6F26H), RAM: 1629 (65DH) | Serieller Dialog in Ordnung, Kann Spannungen
vorgeben und
Messen. Kalibrierwerde ermittelt. Aber Kal:s EEPROM schreiben?jEEPROM schreiben FEHLER EEPROM ls1 FEHLER EEPROM ls2 |
2021-02-04 | ROM: 28768 (7060H), RAM: 1625 (659H) | Jetzt auch mit Digitalpoti und LCD-Anzeige
EEPROM kann auch geschrieben werden. |
2021-02-23 | ROM: 29686 (73F6H), RAM: 1649 (671H) | auch mit Temperaturerfassung, läuft in Seriennummer 2, auf ATMega644P |
2021-03-01 | ROM: 29670 (73E6H), RAM: 1667 (683H) | Fehlerkorrektur, DAC-Normierung bis 16383 |
2021-03-13 | ROM: 32416 (7EA0H), RAM: 1858 (742H) | MODBUS |
2021-03-17 | ROM: 30912 (78C0H), RAM: 1909 (775H) | tsonewin entfernt, jetzt auch mit adc6 =Temperatur, adc7 = UKE mit Dialog, MODBUS |
2021-04-06 | ROM: 30800 (7850H), RAM: 1806 (70EH) | Digitalpoti geht, MODBUS geht, wenn alleine dann auch sehr zuverlässig Dialog geht |
2021-04-08 | ROM: 30476 (770CH), RAM: 1806 (70EH) | Digitalpoti geht, MODBUS geht, auch wenn 11=modone_n und Brose und PDA48 am BUS hängt. LCD-Kalibrierdialog mit Umpolung des Faktors. Temperaturerfassung KTY81 korrigiert |
2022-01-05 |
ROM: 30836 (7874H), RAM: 1713 (6B1H) |
Poti.-Beschleunigung verbessert. Kann jetzt
schneller bedienen. |
2022-01-05 | ROM: 30878 (789EH), RAM: 1713 (6B1H) |
Mit Filter 0.5/16 |
2023-11-13 |
ROM: 35778 (8BC2H), RAM: 1738 (6CAH) |
TODO: Kann nicht mehr %5f - Format !!! |
2023-11-14 |
ROM: 29616 (73B0H), RAM: 1784 (6F8H) |
Repariert otprintf.cpp - jetzt include,
repariert adcm3208.cpp |
2023-12-27 |
ROM: 29638 (73C6H), RAM: 1784 (6F8H) |
Kann jetzt auch FC=16 - korrigiert |
2024-04-29 |
ROM: 29718 (7416H), RAM: 1874 (752H) |
Für SN=2, Anzeige 4 x 20 %3k ersetzt durch
%8k |
2024-05-04 |
ROM: 30126 (75AEH), RAM: 1874 (752H) |
Für SN=2, RS485=44 |
2024-08-16 |
ROM: 29906 (74D2H), RAM: 1776 (6F0H) |
Für SN=3 |