Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Leute, > > kann mal jemand bitte meinen Code checken. Ich glaube ich habe ein Problem mit einem ordentlichen > Programmdurchlauf. Womöglich arbeit mein thread falsch und ich komme nie zu einer Stelle im Code. > Oder kann ich das Problem irgendwie mit capture und release lösen. > > Danke! > > mfg > > Peter Schmidthaler > > module 1 bis 12 > der Reihe nach von 1 bis 12 in ein Projekt einfügen. > > > //--------------------- a1_notes.c2 -------------------- > > /* > Projektbeschreibeung > > Erstellt am 31. Jänner 2004 > > Dieses Modul (notes.c2) beschreibt die Funktion der einzelnen Module: > > > > a) moth... main-Thread Modul > > Startet die einzelnen Threads > > > b) init... Start- oder Reset-Modul > > Legt die Grundeinstellungen für die digitalen In- und Output-Module fest. > > Adresse, Grundzustand, ... > > > c) abfr... Touchpanel-Kommunikation > > Verarbeitet die Befehle vom Touch-Panel > > > d) digp... digitaler Input und Output > > > e) func... sämtliche Funktionen > > > f) s_out Portfunktionen > > g) s_in Portfunktionen > > h) t_inp ... diverse Funktionen > > i) touch-panel funktionen > > j) drehz ... diverse Funktionen > > k) var ... deklarieren globaler Variablen > > */ > > > //--------------------- a2_var.c2 -------------------- > > //Globale Variablen > > //Inputvariablen definieren > type in > { > int adresse; > int port; > int zustand[2]; > int wert; > } > //Outputvariablen definieren > type out > { > int adresse; > int port; > int wert; > } > > //Variable für Touchpanel-Portausgabe > type var > { > byte switch; > byte wert; > } > > in p[16]; > out y[32]; > var t[32]; // t...Touchpanelport > int mp[16]; > > int adress[2]; > int adressout[2]; > int TB_setzen_ok; > byte TB; > byte textoutput[256]; //Bytebuffervariable für Textausgabe > const breaktime = 5; > int schleifein; //Schleifenvariable beim Input > int schleifeout; //Schleifenvariable beim Output > > int outputmodul[4]; > int datenout[4]; > > byte seite; // in dieser Variablen wird die aktuelle Seitennummer des > // Touchpanels gespeichert > > //--------------------- a3_drehz.c2 -------------------- > > /* > Dieses Modul steuert das Menü "Drehzahlen" am Touchpanel > */ > > //Zyklisches Senden der Drehzahlwerte, wenn die Funktion "Drehzahlen" aufgerufen > //wird > > //--Variablendefinition-- > > const rotor = 1; > const querschnecken = 2; > const foerderband_1 = 3; > const reinigungsschnecke = 4; > const reinigungsbuersten = 5; > const motor = 6; > > int rotor_drehzahl; > int querschnecken_drehzahl; > int foerderband_1_drehzahl; > int reinigungsschnecke_drehzahl; > int reinigungsbuersten_drehzahl; > int motor_drehzahl; > > function drehzahlen() > { > touchlcd.barvalue(rotor, rotor_drehzahl); > touchlcd.barvalue(querschnecken, querschnecken_drehzahl); > touchlcd.barvalue(foerderband_1, foerderband_1_drehzahl); > touchlcd.barvalue(reinigungsschnecke, reinigungsschnecke_drehzahl); > touchlcd.barvalue(reinigungsbuersten, reinigungsbuersten_drehzahl); > touchlcd.barvalue(motor, motor_drehzahl); > } > //--------------------- a4_outp.c2 -------------------- > > /* > Dieses Modul steuert die digitalen Ausgänge der Steuerung > */ > int n; > const EIN = 1; > const AUS = 0; > > const touch_01 = 1; > const touch_02 = 2; > const touch_03 = 3; > const touch_04 = 4; > const touch_05 = 5; > const touch_06 = 6; > const touch_07 = 7; > const touch_08 = 8; > const touch_09 = 9; > const touch_10 = 10; > const touch_11 = 11; > const touch_12 = 12; > const touch_13 = 13; > const touch_14 = 14; > const touch_15 = 15; > const touch_16 = 16; > > int ausgang_01; > int ausgang_02; > int ausgang_03; > int ausgang_04; > int ausgang_05; > int ausgang_06; > int ausgang_07; > int ausgang_08; > int ausgang_09; > int ausgang_10; > int ausgang_11; > int ausgang_12; > int ausgang_13; > int ausgang_14; > int ausgang_15; > int ausgang_16; > > function ausgaenge() > { > touchlcd.setswitch(touch_01, ausgang_01); > touchlcd.setswitch(touch_02, ausgang_02); > touchlcd.setswitch(touch_03, ausgang_03); > touchlcd.setswitch(touch_04, ausgang_04); > touchlcd.setswitch(touch_05, ausgang_05); > touchlcd.setswitch(touch_06, ausgang_06); > touchlcd.setswitch(touch_07, ausgang_07); > touchlcd.setswitch(touch_08, ausgang_08); > touchlcd.setswitch(touch_09, ausgang_09); > touchlcd.setswitch(touch_10, ausgang_10); > touchlcd.setswitch(touch_11, ausgang_11); > touchlcd.setswitch(touch_12, ausgang_12); > touchlcd.setswitch(touch_13, ausgang_13); > touchlcd.setswitch(touch_14, ausgang_14); > touchlcd.setswitch(touch_15, ausgang_15); > touchlcd.setswitch(touch_16, ausgang_16); > } > //--------------------- a5_t_inp.c2 -------------------- > > function menu5() > { > // Displayinhalt löschen, alle Pixel aus > hwcom.put(27); > hwcom.put(68); > hwcom.put(76); > > //wait hwcom.ready(); > > // Terminal Anzeige ist nicht sichtbar, Ausgaben werden weiterhin ausgeführt > hwcom.put(27); > //wait hwcom.ready(); > hwcom.put('T'); > //wait hwcom.ready(); > hwcom.put('A'); > > sleep a2_var.breaktime; > // wait hwcom.ready(); > // Der Touchbereich mit dem Return-Code (Code=0: alle Touchbereiche) wird aus > // der Touchabfrage entfernt. Mit n1=0 bleibt der Bereich im Display sichtbar, > // mit n1=1 wird der Bereich im Display gelöscht. > hwcom.put(27); > // wait hwcom.ready(); > hwcom.put('A'); > // wait hwcom.ready(); > hwcom.put('L'); > // wait hwcom.ready(); > hwcom.put(0); > // wait hwcom.ready(); > hwcom.put(1); > // wait hwcom.ready(); > > > > > sleep a2_var.breaktime; > touchlcd.touchfont(6); > touchlcd.touchzoom(1,1); > > sleep a2_var.breaktime*2; > //Eingang 1 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '1'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(5,7,1,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 2 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '2'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(15,17,2,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 3 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '3'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(25,26,3,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 4 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '4'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(35,37,4,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 5 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '5'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(45,47,5,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 6 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '6'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(55,57,6,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 7 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '7'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(65,67,7,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 8 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '8'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(75,77,8,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 9 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '0'; > a2_var.textoutput[7] = '9'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(8,10,9,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 10 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '0'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(18,20,10,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 11 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '1'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(28,30,11,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 12 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '2'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(38,40,12,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 13 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '3'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(48,50,13,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 14 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '4'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(58,60,14,a2_var.textoutput,9); > > sleep a2_var.breaktime; > //Eingang 15 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '5'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(68,70,15,a2_var.textoutput,9); > sleep a2_var.breaktime; > //Eingang 16 > > a2_var.textoutput[0] = 'V'; > a2_var.textoutput[1] = 'e'; > a2_var.textoutput[2] = 'n'; > a2_var.textoutput[3] = 't'; > a2_var.textoutput[4] = 'i'; > a2_var.textoutput[5] = 'l'; > a2_var.textoutput[6] = '1'; > a2_var.textoutput[7] = '6'; > a2_var.textoutput[8] = 0; > > //touchlcd.textmode(3); > touchlcd.touch_schalter(78,80,16,a2_var.textoutput,9); > > // Touchschalter der Eingänge einstellen > > lcd.init(); > lcd.clear(); > > for a2_var.schleifein = 1 ... 16 > { > sleep a2_var.breaktime; > touchlcd.setswitch(a2_var.p[a2_var.schleifein].port, a2_var.p[a2_var.schleifein].wert); > } > > } > > //Funktion fertig > > > //--------------------- a6_s_in.c2 -------------------- > > byte schalter; > > function eingaenge() > { > > for schalter = 1 ... 8 > { > touchlcd.setswitch(schalter, a2_var.p[schalter].wert); > } > > } > //--------------------- a7_s_out.c2 -------------------- > > byte mist; > byte schalter; > byte wert; > > function ausgaenge() > { > > for schalter = 1 ... 8 > { > if a2_var.y[schalter+16].wert == 1 > { > wert = 0; > } > else > { > wert = 1; > } > touchlcd.setswitch(schalter, wert); > } > > } > > function switch() > { > > mist = hwcom.get(); //wird nicht verwendet > sleep 10; > schalter =hwcom.get(); > sleep 10; > hwcom.put('A'); > //Alle Zustände sind im folgendem Code invertiert. Grund dafür ist der Puffer- > //baustein 74540 der die Zustände invertiert. > > if a2_var.seite == 201 > { > //Ausgang 1 > if schalter == 1 > { > a2_var.y[17].wert = 0; > } > if schalter == 101 > { > a2_var.y[17].wert = 1; > } > > // Ausgang 2 > if schalter == 2 > { > a2_var.y[18].wert = 0; > } > if schalter == 102 > { > a2_var.y[18].wert = 1; > } > > // Ausgang 3 > if schalter == 3 > { > a2_var.y[19].wert = 0; > } > if schalter == 103 > { > a2_var.y[19].wert = 1; > } > > // Ausgang 4 > if schalter == 4 > { > a2_var.y[20].wert = 0; > } > if schalter == 104 > { > a2_var.y[20].wert = 1; > } > > // Ausgang 5 > if schalter == 5 > { > a2_var.y[21].wert = 0; > } > if schalter == 105 > { > a2_var.y[21].wert = 1; > } > > // Ausgang 6 > if schalter == 6 > { > a2_var.y[22].wert = 0; > } > if schalter == 106 > { > a2_var.y[22].wert = 1; > } > > // Ausgang 7 > if schalter == 7 > { > a2_var.y[23].wert = 0; > } > if schalter == 107 > { > a2_var.y[23].wert = 1; > } > > // Ausgang 8 > if schalter == 8 > { > a2_var.y[24].wert = 0; > } > if schalter == 108 > { > a2_var.y[24].wert = 1; > } > > } > } > //--------------------- a8_func.c2 -------------------- > > /* > Peter Schmidthaler > Diplomarbeit: Steuergerät für Obstsammelmaschine > > Datum: 24.06.2003 > Geändert am: 24.06.2003 > > ***Mit diesem Modul werden Steuerbefehle in Funktionen verarbeitet.*** > > Funktionen im Modul: > -------------------- > 1. Schalter() > > Touchschalter werden gelesen und der Wert in die entsprechende Variable > gespeichert. > Die Variablen lauten abfrage.t[x] > > > 2. Bargraph() > > 3. Menueeintrag() > 4. TB_ein() > > */ > byte pos3; > byte switch; > byte data; > byte menue; > byte s; > byte ausgang; > byte zustand; // Zustand des Touchschalters, entweder 1 oder 0 > > > //Menüeinträge > > function menue1() > { > > } > > function menue2() > { > > } > > > function Schalter_setzen() > { > > if a2_var.t[switch].wert == 1 > { > a2_var.t[switch].wert = 0; > } > else > { > a2_var.t[switch].wert = 1; > } > > hwcom.put(27); //ESC > hwcom.put(65); //A > hwcom.put(80); //P > hwcom.put(a2_var.TB); //Code (Schalter) > hwcom.put(a2_var.t[a2_var.TB].wert);//Wert (Zustand) > a2_var.TB_setzen_ok = 0; > > } > > //Funktion noch nicht fertig > function Bargraph() > { > > } > > function a1() > { > if a2_var.mp[1] == 0 > { > a2_var.mp[1] = 1; > } > else > { > a2_var.mp[1] =0; > } > > ports.set(0, a2_var.mp[1]); > } > > function a2() > { > if a2_var.mp[2] == 0 > { > a2_var.mp[2] = 1; > } > else > { > a2_var.mp[2] =0; > } > > ports.set(1, a2_var.mp[2]); > } > > function a3() > { > if a2_var.mp[3] == 0 > { > a2_var.mp[3] = 1; > } > else > { > a2_var.mp[3] =0; > } > > ports.set(2, a2_var.mp[3]); > } > > function a4() > { > if a2_var.mp[4] == 0 > { > a2_var.mp[4] = 1; > } > else > { > a2_var.mp[4] =0; > } > > ports.set(3, a2_var.mp[4]); > } > > function a5() > { > if a2_var.mp[5] == 0 > { > a2_var.mp[5] = 1; > } > else > { > a2_var.mp[5] =0; > } > > ports.set(4, a2_var.mp[5]); > } > > function a6() > { > if a2_var.mp[6] == 0 > { > a2_var.mp[6] = 1; > } > else > { > a2_var.mp[6] =0; > } > > ports.set(5, a2_var.mp[6]); > } > > function a7() > { > if a2_var.mp[7] == 0 > { > a2_var.mp[7] = 1; > } > else > { > a2_var.mp[7] =0; > } > > ports.set(6, a2_var.mp[7]); > } > > function a8() > { > if a2_var.mp[8] == 0 > { > a2_var.mp[8] = 1; > } > else > { > a2_var.mp[8] =0; > } > > ports.set(7, a2_var.mp[8]); > } > > function a9() > { > if a2_var.mp[9] == 0 > { > a2_var.mp[9] = 1; > } > else > { > a2_var.mp[9] =0; > } > > ports.set(8, a2_var.mp[9]); > } > > function a10() > { > if a2_var.mp[10] == 0 > { > a2_var.mp[10] = 1; > } > else > { > a2_var.mp[10] =0; > } > > ports.set(9, a2_var.mp[10]); > } > > function a11() > { > if a2_var.mp[11] == 0 > { > a2_var.mp[11] = 1; > } > else > { > a2_var.mp[11] =0; > } > > ports.set(10, a2_var.mp[11]); > } > > function a12() > { > if a2_var.mp[12] == 0 > { > a2_var.mp[12] = 1; > } > else > { > a2_var.mp[12] =0; > } > > ports.set(11, a2_var.mp[12]); > } > > function a13() > { > if a2_var.mp[13] == 0 > { > a2_var.mp[13] = 1; > } > else > { > a2_var.mp[13] =0; > } > > ports.set(12, a2_var.mp[13]); > } > > function a14() > { > if a2_var.mp[14] == 0 > { > a2_var.mp[14] = 1; > } > else > { > a2_var.mp[14] =0; > } > > ports.set(13, a2_var.mp[14]); > } > > function a15() > { > if a2_var.mp[15] == 0 > { > a2_var.mp[15] = 1; > } > else > { > a2_var.mp[15] =0; > } > > ports.set(14, a2_var.mp[15]); > } > > function a16() > { > if a2_var.mp[16] == 0 > { > a2_var.mp[16] = 1; > } > else > { > a2_var.mp[16] =0; > } > > ports.set(15, a2_var.mp[16]); > } > // Byteports deactivieren > function m20() > { > ports.deactb(0); // P1L-ports deactivieren > } > > function m21() > { > ports.deactb(1); // P1H-ports deactivieren > } > > function m22() > { > ports.setb(0,0); > } > > function m23() > { > ports.setb(1,0); > } > > //Funktion noch nicht fertig > function Menue() > { > sleep 10; > pos3=hwcom.get(); //wird nicht überprüft > sleep 10; > menue=hwcom.get(); > sleep 10; > zustand=hwcom.get(); > > if menue == 201 > { > if zustand == 1 > { > a2_var.seite = 201; > a7_s_out.ausgaenge(); > zustand = 0; > > } > } > > if menue == 202 > { > if zustand == 1 > { > a2_var.seite = 202; > a6_s_in.eingaenge(); > zustand = 0; > } > } > > if menue == 3 > { > a8_func.a3(); > } > > if menue == 4 > { > a8_func.a4(); > } > > if menue == 5 > { > a8_func.a5(); > } > > if menue == 6 > { > a8_func.a6(); > } > > if menue == 7 > { > a8_func.a7(); > } > > if menue == 8 > { > a8_func.a8(); > } > > > if menue == 9 > { > a8_func.a9(); > } > > if menue == 10 > { > a8_func.a10(); > } > > if menue == 11 > { > a8_func.a11(); > } > > if menue == 12 > { > a8_func.a12(); > } > > if menue == 13 > { > a8_func.a13(); > } > > if menue == 14 > { > a8_func.a14(); > } > > if menue == 15 > { > a8_func.a15(); > } > > if menue == 16 > { > a8_func.a16(); > } > > if menue == 20 > { > a8_func.m20(); > } > > if menue == 21 > { > a8_func.m21(); > > } > > if menue == 22 > { > a8_func.m22(); > > } > > if menue == 23 > { > a8_func.m23(); > > } > > > if menue == 101 > { > a8_func.menue1(); > } > if menue == 102 > { > a8_func.menue2(); > } > if menue == 103 > { > > } > > if menue == 104 > { > > } > > if menue == 105 > { > a5_t_inp.menu5(); > } > > if menue == 106 > { > > } > > } > > function Schalter() > { > sleep 10; > //wait hwcom.rxd(); > pos3=hwcom.get(); //wird nicht überprüft > > sleep 10; > //wait hwcom.rxd(); > switch=hwcom.get(); > /* > wait hwcom.rxd(); > data=hwcom.get(); > */ > > if switch == 1 > { > a8_func.a1(); > } > > if switch == 2 > { > a8_func.a2(); > } > > if switch == 3 > { > a8_func.a3(); > } > > if switch == 4 > { > a8_func.a4(); > } > > if switch == 5 > { > a8_func.a5(); > } > > if switch == 6 > { > a8_func.a6(); > } > > if switch == 7 > { > a8_func.a7(); > } > > if switch == 8 > { > a8_func.a8(); > } > > > if switch == 9 > { > a8_func.a9(); > } > > if switch == 10 > { > a8_func.a10(); > } > > if switch == 11 > { > a8_func.a11(); > } > > if switch == 12 > { > a8_func.a12(); > } > > if switch == 13 > { > a8_func.a13(); > } > > if switch == 14 > { > a8_func.a14(); > } > > if switch == 15 > { > a8_func.a15(); > } > > if switch == 16 > { > a8_func.a16(); > } > > if switch == 20 > { > a8_func.m20(); > } > > if switch == 21 > { > a8_func.m21(); > > } > > if switch == 22 > { > a8_func.m22(); > > } > > if switch == 23 > { > a8_func.m23(); > > } > > > } > //Funktion noch nicht fertig > function TB_ein() > { > > } > > > //--------------------- a9_digp.c2 -------------------- > > //Modul: digports > > /* > Peter Schmidthaler > Diplomarbeit: Steuergerät für Obstsammelmaschine > > Datum: 12.08.2002 > Geändert am: 08.03.2004 > > ***Mit diesem Modul werden die Eingangsports abgefragt und je nach Signaleingang > werden die Ausgangsports geschaltet.*** > > Funktionen im Modul: > -------------------- > 1. Variablendefinition > 2. Richtung der Digitalports einstellen > 3. Eingangsports einlesen > 4. Ausgabeports setzen > 5. TB-Schalter setzen > > p(x) ... Inputvariablen > y(x) ... Outputvariablen > > */ > //Ausgaberichtung des Parallelbuses > const dirPH_out = 0; > const dirPH_in = 1; > const dirPL_out = 1; > const dirPL_in = 0; > > //Aktivierungskonstanten für Adresse und Daten > const takeadress = 12; // Adressuebernahme mittels Port P1H.4 > const takedata = 13; // Datenuebernahme mittels Port P1H.5 > > type bgraph > { > byte wert; > } > const ESC = 27; > const Schalter = 65; > const Bargraph = 3; > const Menue = 88; > const TB_ein = 5; > const man_ausgang = 100; > //--------------- > function input() //thread > //--------------- > { > // hwcom.put(a2_var.p[17].wert); > > int P1L_ports; //Adresse der Byteports P1H und P1L > int P1H_ports; > > int turn; //Schleifenvariable > string anzeige1; > string anzeige2; > > int pause; > int pause2; > > int daten1; //Dient nur als Zwischenspeicher > int daten2; //Dient nur als Zwischenspeicher > > pause = 1; > pause2 = 1; > > //+++++++++++++++++++++++++++++++++++++++++++++ > // 2. Richtung der Digitalports einstellen > //+++++++++++++++++++++++++++++++++++++++++++++ > > lcd.init(); > sleep pause; > lcd.clear(); > sleep pause; > //++++++++++++++++++++++++++++++++++++++++++++ > //3. Eingangsports einlesen > //+++++++++++++++++++++++++++++++++++++++++++++ > > P1L_ports = 0; //P1L-Ports Adress- und Datensendeport > P1H_ports = 1; > > // Input-Modul 1 > > for a2_var.schleifein = 1 ... 8//16 > { > ports.deactb(P1L_ports); > ports.deactb(P1H_ports); > ports.setb(P1H_ports,0); > sleep pause; > ports.set(14, dirPH_out); //Output der P.H. Ports gesteuert über Port P1H.6 > sleep pause; > ports.set(15, dirPL_out); //Output der P.L. Ports gesteuert über Port P1H.7 > sleep pause; > ports.setb(P1L_ports, a2_var.p[a2_var.schleifein].adresse); //Adresse der Input-Platine setzen > sleep pause; > ports.set(takeadress,1); //Adresse in die Input-Platine übernehmen > sleep pause; > ports.set(takeadress,0); > sleep pause; > ports.deactb(P1L_ports); //Digitalport PL der CC2-Unit deaktivieren > sleep pause; > ports.set(15, dirPL_in); // Input der P.L. Ports > sleep pause; > ports.set(takedata, 1); // Einlesen der Eingänge > sleep pause; > for turn = 0 ... 1 > { > a2_var.p[a2_var.schleifein].zustand[turn] = ports.get(a2_var.p[a2_var.schleifein].port); > sleep pause; > } > ports.set(takedata, 0); // Einlesen der Eingänge > > a2_var.p[a2_var.schleifein].wert = a2_var.p[a2_var.schleifein].zustand[0] + a2_var.p[a2_var.schleifein].zustand[1]; > > > if a2_var.p[a2_var.schleifein].wert == -2 // setzt sich aus -1 + -1 zusammen > { > // Wenn beide Werte HIGH dann ist auch der Ausgabewert HIGH > a2_var.p[a2_var.schleifein].wert = 49; > lcd.goto(0,a2_var.schleifein-1); > lcd.put(a2_var.p[a2_var.schleifein].wert); > a2_var.p[a2_var.schleifein].wert = 1; > } > else > { > a2_var.p[a2_var.schleifein].wert = 48; // Sonst ist der Ausgabewert LOW > lcd.goto(0,a2_var.schleifein-1); > lcd.put(a2_var.p[a2_var.schleifein].wert); > a2_var.p[a2_var.schleifein].wert = 0; > } > > // ports.deactb(0); //Digitalports der CC2-Unit deaktivieren > // ports.deactb(1); > > /* möglicherweise sind Pullup-Widerstände erforderlich, > da sich sonst der Pufferbaustein des Digital-Input-Moduls sich nicht > im high-impedance Zustand befindet > */ > } > /* > // Input-Modul 2 > > for a2_var.schleifein = 9 ... 16//16 > { > ports.deactb(P1L_ports); > ports.deactb(P1H_ports); > ports.setb(P1H_ports,0); > sleep pause; > ports.set(14, dirPH_out); //Output der P.H. Ports gesteuert über Port P1H.6 > sleep pause; > ports.set(15, dirPL_out); //Output der P.L. Ports gesteuert über Port P1H.7 > sleep pause; > ports.setb(P1L_ports, a2_var.p[a2_var.schleifein].adresse); //Adresse der Input-Platine setzen > sleep pause; > ports.set(takeadress,1); //Adresse in die Input-Platine übernehmen > sleep pause; > ports.set(takeadress,0); > sleep pause; > ports.deactb(P1L_ports); //Digitalport PL der CC2-Unit deaktivieren > sleep pause; > ports.set(15, dirPL_in); // Input der P.L. Ports > sleep pause; > ports.set(takedata, 1); // Einlesen der Eingänge > sleep pause; > for turn = 0 ... 1 > { > a2_var.p[a2_var.schleifein].zustand[turn] = ports.get(a2_var.p[a2_var.schleifein].port); > sleep pause; > } > ports.set(takedata, 0); // Einlesen der Eingänge > > a2_var.p[a2_var.schleifein].wert = a2_var.p[a2_var.schleifein].zustand[0] + a2_var.p[a2_var.schleifein].zustand[1]; > > if a2_var.p[a2_var.schleifein].wert == -2 // setzt sich aus -1 + -1 zusammen > { > // Wenn beide Werte HIGH dann ist auch der Ausgabewert HIGH > a2_var.p[a2_var.schleifein].wert = 49; > lcd.goto(1,a2_var.schleifein-9); > lcd.put(a2_var.p[a2_var.schleifein].wert); > a2_var.p[a2_var.schleifein].wert = 1; > } > else > { > a2_var.p[a2_var.schleifein].wert = 48; // Sonst ist der Ausgabewert LOW > lcd.goto(1,a2_var.schleifein-9); > lcd.put(a2_var.p[a2_var.schleifein].wert); > a2_var.p[a2_var.schleifein].wert = 0; > } > > // ports.deactb(0); //Digitalports der CC2-Unit deaktivieren > // ports.deactb(1); > > > // möglicherweise sind Pullup-Widerstände erforderlich, > // da sich sonst der Pufferbaustein des Digital-Input-Moduls sich nicht > // im high-impedance Zustand befindet > > } > */ > > //+++++++++++++++++++++++++++++++++++++++++++++ > //4. Ausgabeports setzen > //+++++++++++++++++++++++++++++++++++++++++++++ > > // Die Ausgabeports wurden vertauscht, um > //hwcom.put(a4_func.seite); > //hwcom.put(a2_var.p[17].wert); > /* > > a2_var.y[18].wert = 1; > a2_var.y[19].wert = 1; > a2_var.y[20].wert = 1; > a2_var.y[21].wert = 1; > a2_var.y[22].wert = 1; > > */ > a2_var.y[17].wert = 1; > a2_var.y[23].wert = 0; > a2_var.y[24].wert = 0; > > > daten1 = a2_var.y[1].wert*2 + a2_var.y[2].wert*1 + a2_var.y[3].wert*8 + a2_var.y[4].wert*4; > daten2 = a2_var.y[5].wert*64 + a2_var.y[6].wert*128 + a2_var.y[7].wert*16 + a2_var.y[8].wert*32; > a2_var.datenout[1] = daten1 + daten2; > > daten1 = a2_var.y[9].wert*2 + a2_var.y[10].wert*1 + a2_var.y[11].wert*8 + a2_var.y[12].wert*4; > daten2 = a2_var.y[13].wert*64 + a2_var.y[14].wert*128 + a2_var.y[15].wert*16 + a2_var.y[16].wert*32; > a2_var.datenout[2] = daten1 + daten2; > > daten1 = a2_var.y[17].wert*2 + a2_var.y[18].wert*1 + a2_var.y[19].wert*8 + a2_var.y[20].wert*4; > daten2 = a2_var.y[21].wert*64 + a2_var.y[22].wert*128 + a2_var.y[23].wert*16 + a2_var.y[24].wert*32; > a2_var.datenout[3] = daten1 + daten2; > > daten1 = a2_var.y[25].wert*2 + a2_var.y[26].wert*1 + a2_var.y[27].wert*8 + a2_var.y[28].wert*4; > daten2 = a2_var.y[29].wert*64 + a2_var.y[30].wert*128 + a2_var.y[31].wert*16 + a2_var.y[32].wert*32; > a2_var.datenout[4] = daten1 + daten2; > > ports.set(14, dirPH_out); // Output der P.H. Ports > ports.set(15, dirPL_out); // Output der P.L. Ports > sleep pause2; > > for a2_var.schleifeout = 1 ... 4 > { > ports.setb(P1L_ports, a2_var.outputmodul[a2_var.schleifeout]); //Adresse der Output-Platine setzen > sleep pause2; > ports.set(takeadress,1); //Adresse in die Output-Platine übernehmen > sleep pause2; > ports.set(takeadress,0); > sleep pause2; > > ports.setb(P1L_ports, a2_var.datenout[a2_var.schleifeout]); > sleep pause2; > > > > if a2_var.seite == 201 > { > lcd.goto(1,0); > lcd.put('A'); > sleep 500; > } > else > { > lcd.goto(1,0); > lcd.put('B'); > sleep 500; > } > > /* > if a2_var.y[17].wert == 1 > { > a2_var.y[17].wert = 49; > lcd.goto(1,0); > lcd.put(a2_var.y[17].wert); > a2_var.y[17].wert = 1; > } > > if a2_var.y[17].wert == 0 > { > a2_var.y[17].wert = 48; > lcd.goto(1,4); > lcd.put(a2_var.y[17].wert); > a2_var.y[17].wert = 0; > } > */ > /* > str.clear(anzeige1); > str.putint(anzeige1, a2_var.outputmodul[a2_var.schleifeout]); > lcd.clear(); > lcd.goto(1,0); > lcd.print(anzeige1, str.length(anzeige1)); > > str.clear(anzeige2); > str.putint(anzeige2, a2_var.datenout[a2_var.schleifeout]); > lcd.goto(1,4); > lcd.print(anzeige2, str.length(anzeige2)); > */ > ports.set(takedata,1); > sleep pause2; > ports.set(takedata,0); > sleep pause2; > > } > /* > //+++++++++++++++++++++++++++++++++++++++++++++ > //5. TB-Schalter setzen > //+++++++++++++++++++++++++++++++++++++++++++++ > > if a2_var.TB_setzen_ok ==1 > { > //sleep 3000; > for a2_var.TB = 101 ... 116 > { > sleep 10; > func.Schalter_setzen(); > } > } > > //Ausgabe der Werte am LCD Display der Unit > */ > > //run a6_abfrage.abfrage; > > } > //--------------------- a10_abfr.c2 -------------------- > > //Variable zur Bargraphdefinitionn für EA KIT 320-8 > type bgraph > { > byte wert; > } > bgraph bar[255]; > > int display; > int displayanzeige; > > //Konstanten > const ESC = 27; > const Schalter = 65; > const Bargraph = 3; > const Menue = 88; > const TB_ein = 5; > const man_ausgang = 100; > //*********** > thread abfrage > //*********** > { > //Empfangsvariablendefinition > byte pos1; > byte pos2; > > pos1=hwcom.get(); > > if pos1 == ESC > { > sleep 10; > pos2=hwcom.get(); > sleep 10; > > if pos2 == Schalter > { > a7_s_out.switch(); > } > if pos2 == Bargraph > { > a8_func.Bargraph(); > } > if pos2 == Menue > { > a8_func.Menue(); > } > if pos2 == TB_ein > { > a8_func.TB_ein(); > } > > } > > > a9_digp.input(); > halt; > } > > > > > > > //--------------------- a11_init.c2 -------------------- > > //Modul: init > > /* > Peter Schmidthaler > Diplomarbeit: Steuergerät für Obstsammelmaschine > > Datum: 30.06.2003 > Geändert am: 30.06.2003 > > ***Mit diesem Modul werden Initialisierungen vorgenommen.*** > > Funktionen im Modul: > -------------------- > 1. > > */ > > int schleife; > > //Kartenadressen festlegen > /////////////////////////////////// > //Adresse muss noch geaendert werden > ////////////////////////////////// > > /* > > Variablenerklärung: > > Input########### > p[1] ... > p[2] ... > p[3] ... > p[4] ... > p[5] ... > p[6] ... > p[7] ... > p[8] ... > > p[9] ... > p[10] ... > p[11] ... > p[12] ... > p[13] ... > p[14] ... > p[15] ... > p[16] ... > > Output########## > y[1] ... > y[2] ... > y[3] ... > y[4] ... > y[5] ... > y[6] ... > y[7] ... > y[8] ... > > y[9] ... > y[10] ... > y[11] ... > y[12] ... > y[13] ... > y[14] ... > y[15] ... > y[16] ... > > y[17] ... > y[18] ... > y[19] ... > y[20] ... > y[21] ... > y[22] ... > y[23] ... > y[24] ... > > y[25] ... > y[26] ... > y[27] ... > y[28] ... > y[29] ... > y[30] ... > y[31] ... > y[32] ... > > */ > > // Moduladressen > > const inputmodul1 = 224; > const inputmodul2 = 20; //ist nicht sicher > > //--------------- > thread init > //--------------- > { > hwcom.put('i'); > hwcom.put('n'); > hwcom.put('i'); > hwcom.put('t'); > hwcom.put('_'); > hwcom.put('a'); > hwcom.put(' '); > > a2_var.outputmodul[1] = 16; > a2_var.outputmodul[2] = 17; > a2_var.outputmodul[3] = 19; > a2_var.outputmodul[4] = 23; > > int begin; > > ports.deactw(0); > > //Startbedingungen für Digital-Input > > //Zuweisung der Portadressen an die Variablen > > a2_var.p[1].port = 0; // Taster 1 > a2_var.p[2].port = 1; // Taster 2 > a2_var.p[3].port = 2; // Taster 3 > a2_var.p[4].port = 3; // Taster 4 > a2_var.p[5].port = 4; // Taster 5 > a2_var.p[6].port = 5; // Taster 6 > a2_var.p[7].port = 6; // Taster 7 > a2_var.p[8].port = 7; // Taster 8 > > a2_var.p[9].port = 0; // Taster 9 > a2_var.p[10].port = 1; // Taster 10 > a2_var.p[11].port = 2; // Taster 11 > a2_var.p[12].port = 3; // Taster 12 > a2_var.p[13].port = 4; // Taster 13 > a2_var.p[14].port = 5; // Taster 14 > a2_var.p[15].port = 6; // Taster 15 > a2_var.p[16].port = 7; // Taster 16 > > // Zuweisung der Moduladresse an die einzelnen Input-Module > // und die Zustände 1 und 2 werden für den Start auf 0 gesetzt. > > > // Inputmodul 1 > for begin = 1 ... <9 > { > a2_var.p[begin].adresse = inputmodul1; > a2_var.p[begin].zustand[0] = 0; > a2_var.p[begin].zustand[1] = 0; > a2_var.p[begin].wert = 1; //wird vom DigitalOutputModul invertiert > } > > // Inputmodul 2 > for begin = 9 ... <17 > { > a2_var.p[begin].adresse = inputmodul2; > a2_var.p[begin].zustand[0] = 0; > a2_var.p[begin].zustand[1] = 0; > a2_var.p[begin].wert = 1; //wird vom DigitalOutputModul invertiert > } > > // Startbedingungen für Digital Output > // Zuweisung der Portadressen an die Variablen > > a2_var.y[1].port = 0;// Taster 0 > a2_var.y[2].port = 1; // Taster 1 > a2_var.y[3].port = 2; // Taster 2 > a2_var.y[4].port = 3; // Taster 3 > a2_var.y[5].port = 4; // Taster 4 > a2_var.y[6].port = 5; // Taster 5 > a2_var.y[7].port = 6; // Taster 6 > a2_var.y[8].port = 7; // Taster 7 > > a2_var.y[9].port = 0; // Taster 8 > a2_var.y[10].port = 1; // Taster 9 > a2_var.y[11].port = 2; // Taster 10 > a2_var.y[12].port = 3; // Taster 11 > a2_var.y[13].port = 4; // Taster 12 > a2_var.y[14].port = 5; // Taster 13 > a2_var.y[15].port = 6; // Taster 14 > a2_var.y[16].port = 7; // Taster 15 > > a2_var.y[17].port = 0;// Taster 0 > a2_var.y[18].port = 1; // Taster 1 > a2_var.y[19].port = 2; // Taster 2 > a2_var.y[20].port = 3; // Taster 3 > a2_var.y[21].port = 4; // Taster 4 > a2_var.y[22].port = 5; // Taster 5 > a2_var.y[23].port = 6; // Taster 6 > a2_var.y[24].port = 7; // Taster 7 > > a2_var.y[25].port = 0; // Taster 8 > a2_var.y[26].port = 1; // Taster 9 > a2_var.y[27].port = 2; // Taster 10 > a2_var.y[28].port = 3; // Taster 11 > a2_var.y[29].port = 4; // Taster 12 > a2_var.y[30].port = 5; // Taster 13 > a2_var.y[31].port = 6; // Taster 14 > a2_var.y[32].port = 7; // Taster 15 > // Zuweisung der Moduladresse an die einzelnen Input-Module > // und die Zustände 1 und 2 werden für den Start auf 0 gesetzt. > > for begin = 1 ... <9 > { > a2_var.y[begin].adresse = a2_var.outputmodul[1]; > a2_var.y[begin].wert = 1; //Darf während des Programmdurchlaufs nicht erfolgen (invertiert) > } > > for begin = 9 ... <17 > { > a2_var.y[begin].adresse = a2_var.outputmodul[2]; > a2_var.y[begin].wert = 1; //Darf während des Programmdurchlaufs nicht erfolgen (invertiert) > } > > for begin = 17 ... <25 > { > a2_var.y[begin].adresse = a2_var.outputmodul[3]; > a2_var.y[begin].wert = 1; //Darf während des Programmdurchlaufs nicht erfolgen (invertiert) > } > > for begin = 25 ... <33 > { > a2_var.y[begin].adresse = a2_var.outputmodul[4]; > a2_var.y[begin].wert = 1; //Darf während des Programmdurchlaufs nicht erfolgen (invertiert) > } > > //Makro 1 des Touchpanels starten > hwcom.put(27); > hwcom.put('M'); > hwcom.put('N'); > hwcom.put(1); > > run a10_abfr.abfrage; > > hwcom.put('i'); > hwcom.put('n'); > hwcom.put('i'); > hwcom.put('t'); > hwcom.put('_'); > hwcom.put('e'); > hwcom.put(' '); > > halt; > > } > > > > > //--------------------- a12_moth.c2 -------------------- > > //Modul: mother > > //********* > thread main > //********* > { > run a11_init.init; > halt; > }
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB