FUNCTION_BLOCK "Friction_CMD"
TITLE =friction control
VERSION : 0.0
VAR_INPUT
Speed_Input : INT ;
Dimension : INT ; //Speed Dimension
END_VAR
VAR_OUTPUT
Fric_CMD_Output : REAL ;
END_VAR
VAR
Index : INT ;
Value : INT ;
Step : INT ;
Scale1 : REAL ;
Scale2 : REAL ;
Friction_Value : ARRAY [0 .. 20 ] OF REAL ;
Speed : INT ;
END_VAR
BEGIN
NETWORK
TITLE =SCL network
//compiled by SCL compiler version: SCLCOMP K05.03.05.00_01.03.00.01 release
SET ;
SAVE ;
= L 0.1;
L 0;
T #Index;
A7d0: L #Index;
L 20;
<=I ;
JCN A7d1;
L #Dimension;
ITD ;
DTR ;
A L 0.1;
SAVE ;
L 2.000000e+001;
/R ;
JO I007;
JU I008;
I007: CLR ;
= L 0.1;
I008: RND ;
JO I009;
PUSH ;
AD DW#16#FFFF8000;
JZ I00a;
XOD DW#16#FFFF8000;
JZ I00a;
I009: CLR ;
= L 0.1;
I00a: TAK ;
T #Value;
CLR ;
A L 0.1;
SAVE ;
L #Speed_Input;
ITD ;
DTR ;
SAVE ;
ABS ;
SAVE ;
RND ;
JO I00b;
PUSH ;
AD DW#16#FFFF8000;
JZ I00c;
XOD DW#16#FFFF8000;
JZ I00c;
I00b: CLR ;
= L 0.1;
I00c: TAK ;
T #Speed;
CLR ;
A L 0.1;
SAVE ;
L #Speed;
L #Value;
/I ;
JO I00d;
JU I00e;
I00d: CLR ;
= L 0.1;
I00e: T #Step;
L #Step;
L #Index;
==I ;
TAK ;
L 20;
= L 0.2;
A L 0.2;
JCN A7d2;
L #Index;
L 1;
+I ;
JO I00f;
JU I010;
I00f: CLR ;
= L 0.1;
I010: ITD ;
L L#0;
+D ;
JO I011;
JU I012;
I011: CLR ;
= L 0.1;
I012: L L#32;
*D ;
JO I013;
JU I014;
I013: CLR ;
= L 0.1;
I014: TAR2 ;
+D ;
JO I015;
JU I016;
I015: CLR ;
= L 0.1;
I016: L #Index;
ITD ;
TAK ;
T LD 2;
TAK ;
L L#0;
+D ;
JO I017;
JU I018;
I017: CLR ;
= L 0.1;
I018: L L#32;
*D ;
JO I019;
JU I01a;
I019: CLR ;
= L 0.1;
I01a: TAR2 ;
+D ;
JO I01b;
JU I01c;
I01b: CLR ;
= L 0.1;
I01c: LAR1 LD 2;
L DID [AR1,P#22.0];
TAK ;
LAR1 ;
TAK ;
L DID [AR1,P#22.0];
-R ;
JO I01d;
JU I01e;
I01d: CLR ;
= L 0.1;
I01e: L 1.000000e+000;
/R ;
JO I01f;
JU I020;
I01f: CLR ;
= L 0.1;
I020: T #Scale1;
L #Speed;
ITD ;
DTR ;
CLR ;
A L 0.1;
SAVE ;
L #Dimension;
ITD ;
DTR ;
SAVE ;
TAK ;
T LD 2;
TAK ;
L 2.000000e+001;
/R ;
JO I021;
JU I022;
I021: CLR ;
= L 0.1;
I022: L LD 2;
TAK ;
/R ;
JO I023;
JU I024;
I023: CLR ;
= L 0.1;
I024: L #Index;
ITD ;
DTR ;
CLR ;
A L 0.1;
SAVE ;
TAK ;
TAK ;
-R ;
JO I025;
JU I026;
I025: CLR ;
= L 0.1;
I026: T #Scale2;
L #Scale2;
L #Scale1;
*R ;
JO I027;
JU I028;
I027: CLR ;
= L 0.1;
I028: L #Index;
ITD ;
TAK ;
T LD 2;
TAK ;
L L#0;
+D ;
JO I029;
JU I02a;
I029: CLR ;
= L 0.1;
I02a: L L#32;
*D ;
JO I02b;
JU I02c;
I02b: CLR ;
= L 0.1;
I02c: TAR2 ;
+D ;
JO I02d;
JU I02e;
I02d: CLR ;
= L 0.1;
I02e: L LD 2;
TAK ;
LAR1 ;
TAK ;
L DID [AR1,P#22.0];
+R ;
JO I02f;
JU I030;
I02f: CLR ;
= L 0.1;
I030: T #Fric_CMD_Output;
A7d2: L #Step;
L 20;
==I ;
JCN A7d3;
L #Friction_Value[20];
T #Fric_CMD_Output;
A7d3: L #Index;
L 1;
+I ;
JO I031;
JU I032;
I031: CLR ;
= L 0.1;
I032: T #Index;
JU A7d0;
A7d1: CLR ;
A L 0.1;
SAVE ;
BE ;
END_FUNCTION_BLOCK
这个是SCL编程的,通过一些手段只能编译成 SLC样子的 STL源程序……求这个程序的算法,谢谢,本人最近学习SCL,这个正好是公司的程序,但无SCL源程序,想看看这个算法。谢谢各位前辈!哪位前辈有时间的,在您无聊的时候看看能否帮帮我