Hilfe für nichtkundigen WinCC7 VBS/C Aktion Systemzeit

PBO-WE

Level-1
Beiträge
165
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich habe so gut wie keine Ahnung von VBS oder C, aber würde gerne meine SystemZeit, die ich über eine DCF77 Uhr aktuell halte, in meine CPU 315-2DP bekommen.
Habe jetzt folgendes script probiert, aber er meldet fehler beim übersetzen.

VBS Editor
Projekt-Module

Code:
Sub Modul1
#pragma code("kernel32.dll")
VOID GetLocalTime(SYSTEMTIME *lpst);
#pragma code();
SYSTEMTIME zeit;
GetLocalTime(&zeit);
SetTagRaw("varname",(Byte*)&zeit,sizeof (SYSTEMTIME));
End Sub

Fehler:
Anweisung erwartet in Zeile 2 #pragma code("kernel32.dll")


C Editor
globale aktionen

Code:
#include "apdefap.h"
int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
#pragma code("kernel32.dll")
VOID GetLocalTime(SYSTEMTIME *lpst);
#pragma code();
SYSTEMTIME zeit;
GetLocalTime(&zeit);
SetTagRaw("varname",(Byte*)&zeit,sizeof (SYSTEMTIME));
return 0; 
}

Fehler:
line 19 undifined identifier 'Byte'
line 19 <ident> expected before ")"
line 21 <ident> expected before "<eof>"


Kann mir jemand weiterhelfen???
Ist der Ort überhaupt richtig?
Wie kann ich die Aktion zyklisch ausführen?
Kann ich einen Rohdatentyp überhaupt als Date&Time in der CPU auswerten, oder muß ich es auf Int Basis machen?

DANKE!!!
 
Zeit

Hi,
für SetTagRow muss noch Variable deklariert werden..

Abgesehen davon könnte man die SPS mit dem PC syncronisieren, somit ist Datum/Uhrzeit in der Steuerung richtig.Warum nicht so?


Gruss: V.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

line 19 undifined identifier 'Byte'

Also im C-Skript müsste das Byte auf jeden Fall schon mal "BYTE" geschrieben werden.

Also ich benutze für die Uhrzeitsyncronisation immer den SCF0 (SET_CLK).
Man muss halt nur aufpassen weil die einzelnen stellen BCD-Codiert sind.

Gruß Dirk
 
Hi

in Zeile zwei würde ich mal ein ";" am Ende einfügen.
Und des so nochmal testen.

Hallo.

Code:
Sub Modul1
#pragma code("kernel32.dll"); <- ist wohl wichtig das ";"
VOID GetLocalTime(SYSTEMTIME *lpst);
#pragma code();
SYSTEMTIME zeit;
GetLocalTime(&zeit);
SetTagRaw("varname",(Byte*)&zeit,sizeof (SYSTEMTIME));
End Sub
Fehler:
Anweisung erwartet in Zeile 2 #pragma code("kernel32.dll")

Nur ne Vermutung auf die Schnelle.

Gruss
 
Zurück
Oben