Autor Thema: Oscat auf 750-837 CANopen-Controller  (Gelesen 21439 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Dorfmeister

  • Gast
Oscat auf 750-837 CANopen-Controller
« am: 12. November 2007, 09:35:21 »
Hallo,

ich bin gerade dabei einige FBs aus der OSCAT-Lib auf dem WAGO 750-837 CANopen-Controller zu verwenden. Dabei habe ich festgestellt, dass z.B. der FT_PID ohne zu murren auf das Zielsystem geladen wird dort aber nicht läuft.
Was mach ich falsch, bzw. kann mein Zielsystem den Baustein überhaupt verwerten?

Gruß

Jürgen

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #1 am: 12. November 2007, 11:22:14 »
was bekommst du den für meldungen fehler warnungen?

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #2 am: 12. November 2007, 12:12:59 »
bist du sicher das der baustein auch aufgerufen wird?

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #3 am: 12. November 2007, 12:17:20 »
Ich bekomme weder Warnings noch Errors. Habe das Problem weiter eingegrenzt und festgestellt, dass die Funktion T_PLC_US nur eine 0 zurückliefert. Ich vermute der 750-837 hat auch garkeine RTC. Habe inzwischen den PID-Regler aus der util.lib verwendet, dieser funktioniert.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #4 am: 12. November 2007, 12:41:11 »
die t_plc_us() benutzt auch gar keine RTC, sie liest den hardware timer der sps aus.
jede sps hat so einen hardware timer sonst wäre sie auch gar keine sps.
bei wago wirtd der befeht time() zum auslesen dieses timewrs benutzt.
der sps timer ist ein 32 bit zähler der millisekunden vom start an nach oben zählt.

mich würde gerne interessieren warum das auf der 837 nicht funktioniert.
der spos timer ist streng von der iec vorgeschrieben und auch auf allen sps en vorhanden.
lkannst du bitte mal prüfen ob die funktion time() funktioniert und dieses millisekunden  timer ausliest.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #5 am: 12. November 2007, 12:46:34 »
kann nes sein das dein controller (750-837) keine dword unterstützt?
welche version des codesys verwendest du?
hast du die aktuelle firmware des conrtrollers

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #6 am: 12. November 2007, 13:03:56 »
Bei Verwendung der Funktion TIME liefert mir Codesys den Fehler 4338 "Baustein 'TIME' hat keine echten Eingänge" zurück.
Codesys-Version: 2.3.4.7
Firmware:            1.11
HW-Version:          7

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #7 am: 12. November 2007, 13:06:10 »
Den Controller habe ich vor zwei Wochen direkt von WAGO geliefert bekommen, denke die Version ist aktuell. Deiner Vermutung mit dem DWORD werde ich mal weiter nachgehen.

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #8 am: 12. November 2007, 13:32:36 »
Das Addieren zweier DWORDS klappt

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #9 am: 12. November 2007, 14:54:33 »
time kannst du nicht im cfc editor anwenden weil eine funktion ohne eingang dort aus welchem grund auch immer nicht zulässig ist.
time() kannst du nur im st verwenden

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #10 am: 12. November 2007, 16:04:58 »
Danke, jetzt funktioniert es. Ich bekomme die Zeit in ms

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #11 am: 12. November 2007, 16:06:06 »
Korrektur, Bekomme die Zeit im normalen Format m s ms

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #12 am: 12. November 2007, 16:27:03 »
ja das ist richtig, es ist ein ms 32 bit wert, den du als m, s, ms angezeigt bekommst
aber dann muss auch unsere t_plc_us() diesen wert auslesen koennen

Dorfmeister

  • Gast
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #13 am: 12. November 2007, 17:07:57 »
Ja, ich habe gerade mal folgendes ausprobiert:

systime:=TIME();
tx:=TIME_TO_DWORD(systime)*1000;
es funktioniert
-------------------------------------
tx:=T_PLC_US();
funktioniert nicht;

 ???


Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Oscat auf 750-837 CANopen-Controller
« Antwort #14 am: 12. November 2007, 17:10:54 »
probier bitte mal folgende zeile aus das ist exact der code den wir in t_plc_us verwenden:

T_PLC_US := TIME_TO_DWORD(TIME())*1000;