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

Bug in Software - aber wo? Kategorie: Programmierung (von Jacke - 17.01.2005 13:37)
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
Hallo C2-Experten!

Nun habe ich mit Hilfe einiger Beispielprogramme mein Problem des Ansteuerns eines Frequenz-
umrichters über zwei Potis leidlich hinbekommen. �ber ein Poti wird die Vorgabe der Geschwindikeit
des FU vorgegeben (Ausgabe auf Analogausgang PLM) das andere Poti ist die Zeitvorgabe.
 Ich habe jetzt das ganze Wochenende damit zugebracht den Fehler:
 fu(94) : ; expected

ohne Kenntnis der Programmierung auszumerzen. Finde allerdings den Fehler nicht.
Verstehen kann ich es auch nicht, da es im einem anderen Programmteil funzt.  
hier der code:



/* Projekt Ansteuerung Frequenzumrichter */

/* Autor: jacke       */

/* Eine Steuerung für einen Frequenzumrichter
/* Vorgabe der Ausgangsspannung und der Zeit über Potis
/* Erweiterung durch Multiplexer auf 2x 7 Analogeingänge*/






//------------------------------------------
function beep(int ton, int laenge,int pause)
//------------------------------------------
{
  plm.beep(ton);
  sleep laenge;
  plm.beep(plm.TONE_OFF); // Signal abgeschaltet, Analogport wird benutzt
  sleep pause;
}

function SetFu(int Kanal,float Value)
{
   
   int outvalue;
   string s1;

// was auf den ausgang geht

   outvalue=700+(21*Value);
   plm.out(1,outvalue);
   lcdext.goto(2,0);
   s1 = "fa=";
   str.putfloatf(s1,Value,2);
   lcdext.print(s1) ;
}

//---------
thread main
//---------
{
  float x;
  string s1;
  float  voltage;
  string output;
  float  zeit;
  string time;
  int starten;
  string anfangen;
 
 
 
 
  // Initial LCD
  lcdext.init();
  wait lcd.ready();
  lcdext.clear();
  lcdext.home();
  lcdext.goto(1,0);
 
  // initialisieren PLM
  plm.settimebase(0,1); //Base_800 ns
  plm.setmode(0,0); //Mode=digital
  plm.setperiod(0,2500); //Periodenlänge=
  SetFu(0,0); //Startpunkt
 

  loop
  {

      // Einlesen der Eingänge
      //Spannung
   
    voltage = ports.adc(1) * 0.004;  // 4 mV per ADC Digit An Eingang A1
    output = "Ve=";
    str.putfloatf (output, voltage, 2);
    lcdext.goto(1,0);
    lcdext.print(output);
   
      // Zeit
    zeit = ports.adc(0);  // Zeit entspricht Spannung am Eingang A0
    time = "t=";
    str.putfloatf (time, zeit, 2);
    lcdext.goto(1,8);
    lcdext.print(time);
   
     sleep zeit*10;
   
    // Einlesen der digitalen Eingänge
      //Start

    starten = ports.get(0)   // High-Pegel auf E0
    anfangen = "t=";
    str.putfloatf (anfangen, starten, 2);
    lcdext.goto(2,8);
    lcdext.print(anfangen);

   
    //Ausgabe auf Ausgang
    SetFu(0,voltage);

   

  }
}



//ENDE




der Fehler wird in der Zeile:

anfangen = "t=";

angezeigt.

Drei Anzeigen auf dem Display funktionieren, die vierte, unten links, Variable "anfangen"
scheint wegzulaufen, d.h. es schreibt das Display in Richtung links voll (sieht man aber nicht).




Dann hab ich noch eine Herausforderung:
wie repariert man einen Analogausgang? Hab den PAD3 / 0 zerschossen.


Schon mal danke fürs lesen - gro�en Dank fürs Helfen!


jacke


    Antwort schreiben


Antworten:

Re: Bug in Software - aber wo? (von André H. - 21.01.2005 17:21)
Re: Bug in Software - aber wo? (von Horst - 17.01.2005 13:46)
    Re: Bug in Software - aber wo? (von Jacke - 17.01.2005 14:04)
        Re: Bug in Software - aber wo? (von Horst - 18.01.2005 10:33)