技术论坛

 回复:Pulse generator information

返回主题列表
作者 主题
garbage
新手

经验值:37
发帖数:18
精华帖:2
楼主    2004-10-05 22:18:13
主题:Pulse generator management 精华帖 
FUNCTION "PG_Mng" : VOID
TITLE ="Pulse generator management"
AUTHOR : BenBen
VERSION : 1.1


VAR_INPUT
PG : INT ; //Pulse generator value
NbTurn : INT ; //Number of turn
END_VAR
VAR_OUTPUT
Pos : REAL ; //Rotor position (?
Angle : REAL ; //Angle executed during cycle
Fw : BOOL ; //Forward rotation
Bw : BOOL ; //Backward rotation
Stop : BOOL ; //Stop
END_VAR
VAR_IN_OUT
Pos_Last : REAL ; //Last rotor position
NbTurn_Last : INT ; //last number of turn
END_VAR
VAR_TEMP
PG_real : REAL ; //Pulse generator value
Delta_Turn : REAL ; //Number of turn executed
Delta_Pos : REAL ; //Difference position beetween 2 cycle
END_VAR
BEGIN
NETWORK
TITLE =Integer --> Real

L #PG;
ITD ;
DTR ;
T #PG_real;
NETWORK
TITLE =Position rotor

L #PG;
L 0;
>=I ;
JC jp1;

// If 0 < Input < -32768
CALL "Scale_r" (
X := #PG_real,
Xmin := -3.276800e+004,
Xmax := 0.000000e+000,
Ymin := 1.800000e+002,
Ymax := 3.600000e+002,
Y := #Pos);
NOP 0;
JU jp2;

// If 0 < Input < 32767
jp1: CALL "Scale_r" (
X := #PG_real,
Xmin := 0.000000e+000,
Xmax := 3.276700e+004,
Ymin := 0.000000e+000,
Ymax := 1.800000e+002,
Y := #Pos);
NOP 0;
jp2: NOP 0;
NETWORK
TITLE =Number of turn executed

L #NbTurn;
L #NbTurn_Last;
-I ;
ITD ;
DTR ;
T #Delta_Turn;
L -1.000000e+004;
JC jp3; // If rotation fw et bascule de 32767 --> 0 turn
L #Delta_Turn;
L 1.000000e+004;
>R ;
JC jp4; // If rotation bw et bascule de -32768 --> 0 turn
JU jp5;
jp3: L #Delta_Turn;
L 3.276700e+004;
+R ;
T #Delta_Turn;
JU jp5;
jp4: L #Delta_Turn;
L -3.276800e+004;
+R ;
T #Delta_Turn;
jp5: NOP 0;
NETWORK
TITLE =Angle executed during cycle

L #Pos;
L #Pos_Last;
-R ;
T #Delta_Pos;

L 3.600000e+002;
L #Delta_Turn;
*R ;
L #Delta_Pos;
+R ;
T #Angle;
NETWORK
TITLE =Test sens rotation

L #Angle;
L 2.000000e+000;
>R ;
JC jp6;
L #Angle;
L -2.000000e+000;
JC jp7;
R #Fw;
R #Bw;
S #Stop;
JU jp8;
jp6: R #Stop;
R #Bw;
S #Fw;
JU jp8;
jp7: R #Stop;
R #Fw;
S #Bw;
jp8: NOP 0;
NETWORK
TITLE =Information copie

L #NbTurn;
T #NbTurn_Last;

L #Pos;
T #Pos_Last;
END_FUNCTION

garbage
新手

经验值:37
发帖数:18
精华帖:2
    2004-10-05 22:19:17
精华帖  主题:回复:Pulse generator information
FUNCTION "PG_Info" : VOID
TITLE ="Pulse generator information"
AUTHOR : BenBen
VERSION : 1.1


VAR_INPUT
Angle : REAL ; //Angle executed during cycle (?
Diam : REAL ; //Diameter (mm)
G : REAL ; //Gear box
Tc : REAL ; //Cycle time (ms)
END_VAR
VAR_OUTPUT
Length : REAL ; //Length covered during the last scan (mm)
END_VAR
VAR_IN_OUT
AngSp : REAL ; //Angular speed (rpm)
LinSp : REAL ; //Linear speed (m/min)
END_VAR
BEGIN
NETWORK
TITLE =AngSp = Angle x 60 x 1000 / ( 360 x Tc )
// If Gearbox <= 0
L #G;
L 0.000000e+000;
<=R ;
JC jp1;

// If Cycle time <= 0
L #Tc;
L 0.000000e+000;
<=R ;
JC jp1;

L #Angle;
L 1.000000e+003;
*R ;
L 6.000000e+000;
/R ;
L #Tc;
/R ;
T #AngSp;
JU jp2;

// If conditions TRUE
jp1: L 0.000000e+000;
T #AngSp;
jp2: NOP 0;
NETWORK
TITLE =LinSp = AngSp x Diam x pi / (1000 * G)

L #AngSp;
L #Diam;
*R ;
L 3.141590e+000;
*R ;
L 1.000000e+003;
/R ;
L #G;
/R ;
T #LinSp;
NETWORK
TITLE =Length = LinSp x Tc / 60
// If Cycle time <= 0
L #Tc;
L 0.000000e+000;
<=R ;
JC jp3;

L #LinSp;
L #Tc;
*R ;
L 6.000000e+001;
/R ;
T #Length;
JU jp4;

// If conditions TRUE
jp3: L 0.000000e+000;
T #Length;
jp4: NOP 0;
END_FUNCTION

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。