东方版主的方法非常好,是最快、最便捷的方式!楼主:自动转换会出现较多的问题,建议用手动转换!这段程序在下试着手动转换了一下,先在S5里面用楼主的源代码做了一个FB11;然后用S5转S7的工具,把楼主的S5程序转换成S7程序,这时会自动生成一个*AC.AWL文件,用文本编辑器打开*AC.AWL文件,复制提取这段转换好的代码到S7 STL Source;再把S7 STL Source编译转换成FC111。我把S7 STL Source代码和编译后S7的FC111的代码贴给楼主参考一下,如下:
S7 STL Source代码:
FUNCTION FC 111 : VOID
NAME: _FB11 // FB11
VAR_INPUT
MIN :int; // MIN
DBSW :block_db; // DBSW
DWMI :word; // DWMI
DWMA :word; // DWMA
END_VAR
VAR_TEMP
conv_akku1 :dword;
conv_akku2 :dword;
conv_stw :word;
END_VAR
BEGIN
NETWORK
OPN #DBSW ;
L #DWMI;
T MW 250;
M002:L #MIN;
T conv_akku1;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
<=I;
JC M001;
T conv_akku1;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
L 0;
==I;
JC M001;
L #MIN;
T conv_akku1;
TAK;
T conv_akku2;
L STW;
T conv_stw;
L MB 251;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku2;
L conv_akku1;
T DBW [ AR1, P#0.0 ];
M001:L MW 250;
INC 1;
T MW 250;
L #DWMA;
<=I;
JC M002;
END_FUNCTION
S7 STL Source编译后生成S7的FC111的代码: