恭喜,你发布的帖子
发布于 2016-05-13 20:12:06
5楼
以下生成的S7源程序我是通过STEP7做了一个FC来实现一个双字记录位的个数,你可以依照这个思路在200中也可以实现这种简单的方式取位个数。
FUNCTION "Count_Bit" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
In_Dword : DWORD ;
END_VAR
VAR_OUTPUT
Out_Count : INT ;
END_VAR
VAR_TEMP
DWord_Bit : ARRAY [0 .. 31 ] OF BOOL ;
TMP_Count : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
L 0;
T #Out_Count;
T #TMP_Count;
L #In_Dword;
T LD 0;
A #DWord_Bit[0];
JNB W000;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W000: NOP 0;
A #DWord_Bit[1];
JNB W001;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W001: NOP 0;
A #DWord_Bit[2];
JNB W002;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W002: NOP 0;
A #DWord_Bit[3];
JNB W003;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W003: NOP 0;
A #DWord_Bit[4];
JNB W004;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W004: NOP 0;
A #DWord_Bit[5];
JNB W005;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W005: NOP 0;
A #DWord_Bit[6];
JNB W006;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W006: NOP 0;
A #DWord_Bit[7];
JNB W007;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W007: NOP 0;
A #DWord_Bit[8];
JNB W008;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W008: NOP 0;
A #DWord_Bit[9];
JNB W009;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W009: NOP 0;
A #DWord_Bit[10];
JNB W010;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W010: NOP 0;
A #DWord_Bit[11];
JNB W011;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W011: NOP 0;
A #DWord_Bit[12];
JNB W012;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W012: NOP 0;
A #DWord_Bit[13];
JNB W013;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W013: NOP 0;
A #DWord_Bit[14];
JNB W014;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W014: NOP 0;
A #DWord_Bit[15];
JNB W015;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W015: NOP 0;
A #DWord_Bit[16];
JNB W016;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W016: NOP 0;
A #DWord_Bit[17];
JNB W017;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W017: NOP 0;
A #DWord_Bit[18];
JNB W018;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W018: NOP 0;
A #DWord_Bit[19];
JNB W019;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W019: NOP 0;
A #DWord_Bit[20];
JNB W020;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W020: NOP 0;
A #DWord_Bit[21];
JNB W021;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W021: NOP 0;
A #DWord_Bit[22];
JNB W022;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W022: NOP 0;
A #DWord_Bit[23];
JNB W023;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W023: NOP 0;
A #DWord_Bit[24];
JNB W024;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W024: NOP 0;
A #DWord_Bit[25];
JNB W025;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W025: NOP 0;
A #DWord_Bit[26];
JNB W026;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W026: NOP 0;
A #DWord_Bit[27];
JNB W027;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W027: NOP 0;
A #DWord_Bit[28];
JNB W028;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W028: NOP 0;
A #DWord_Bit[29];
JNB W029;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W029: NOP 0;
A #DWord_Bit[30];
JNB W030;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W030: NOP 0;
A #DWord_Bit[31];
JNB W031;
L #TMP_Count;
L 1;
+I ;
T #TMP_Count;
W031: NOP 0;
L #TMP_Count;
T #Out_Count;
SET ;
SAVE ;
END_FUNCTION
请填写推广理由:
分享
只看
楼主