CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Mo Sep 16, 2019 6:44 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Funktion erstellen
BeitragVerfasst: Fr Mai 17, 2019 9:25 am 
Offline

Registriert: Mo Feb 05, 2018 9:50 am
Beiträge: 2
Liebe Community

Ich will eine Funktion erstellen, mit der ich einen Schrittmotor Referenzieren will.

Die Funktion sieht folgendermassen aus:

FUNCTION Stepper_Homing : BOOL
VAR_INPUT

Start: BOOL;

END_VAR

VAR

single_scan: BOOL := FALSE;
Motor_Init: INT := 0;

END_VAR

-------------------------------------------------------------------------------------------------

IF Start AND NOT single_scan THEN

Motor_Init := 10;
single_scan := TRUE;

END_IF

CASE Motor_Init OF

10:
GVL.Motor_Controlword := 6; //Enable Voltage, Disable Quickstop

IF GVL.Motor_Statusword.4 THEN

Motor_Init := 20;

END_IF

20:
GVL.Motor_OPMode := 6; //Homing Mode

IF GVL.Motor_OPMode_Display = 6 THEN

Motor_Init := 30;

END_IF

30:
GVL.Motor_Controlword := 7; //Switch on

IF GVL.Motor_Statusword.1 THEN

Motor_Init := 40;

END_IF

40:
GVL.Motor_Controlword := 15; //Enable Operation

IF GVL.Motor_Statusword.2 THEN

GVL.Motor_Homing_Method := 27;
GVL.Motor_HomingVelF := 500000;
GVL.Motor_HomingVelS := 50000;
GVL.Motor_HomingAcc := 1000000;
Motor_Init := 50;

END_IF

50:
GVL.Motor_Controlword := 31; //Start Motion

IF GVL.Motor_Statusword.10 THEN

GVL.Motor_Controlword := 7;
Stepper_Homing := TRUE;

END_IF

END_CASE

Diese Funktion rufe ich folgendermassen auf:

PROGRAM Homing_Function
VAR

Stepper_Homed : BOOL;

END_VAR

-------------------------------------------------------------------------------------------------------------

IF NOT Stepper_Homed THEN

Stepper_Homed := Stepper_Homing(Start := TRUE);

END_IF

Jedoch funktioniert das ganze nicht. In der Funktion werden im Betrieb nur Fragezeichen anstatt den Werten angezeigt.
Kann mir jemand sagen, was ich falsch mache?

Vielen Dank für eure Hilfe!

Gruss caprez95


Nach oben
   
 Betreff des Beitrags: Re: Funktion erstellen
BeitragVerfasst: Mo Jun 10, 2019 3:24 pm 
Offline
Benutzeravatar

Registriert: Sa Aug 08, 2015 9:01 am
Beiträge: 56
Eine Function kann keine Zustände speichern.
Du solltest dazu einen Functionblock verwenden.


Nach oben
   
 Betreff des Beitrags: Re: Funktion erstellen
BeitragVerfasst: Mi Jun 19, 2019 9:31 am 
Offline

Registriert: Mo Aug 14, 2017 8:33 am
Beiträge: 45
Oder ein komplette PRG in AS programmieren... da tut man sich meiner Meinung nach bei Schrittketten etwas leichter.

Ansonsten kannst du dir in der Funktion mal einen Breakpoint setzen, dann werden die die Werte in diesem Moment angezeigt.

Gruß Chris


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de