有才人士!现在是什么都想换钱了!你说的这个程序是德国初中技工学校PLC课程中的一个案例!请注意是初中技工学校!!!这难道也能换钱吗??我觉得我的这个程序比你的那个要有用,而且够复杂,而且有很多的知识点,而且不好想,而且不好懂,而且最重要的我免费!FREE万岁!
CALL ";READ_CLK";
RET_VAL:=#RET_VAL
CDT :=#DATE_TIME
LAR1 P##DATE_TIME
L LB [AR1,P#0.0]
T #YEAR
L LB [AR1,P#1.0]
T #MONTH
L LB [AR1,P#2.0]
T #DAY
L LB [AR1,P#3.0]
T #HOUR
L LB [AR1,P#4.0]
T #MINUTE
L LB [AR1,P#5.0]
T #SECOND
L LW [AR1,P#6.0]
SRD 4
T #MILLSEC
L LW [AR1,P#6.0]
AW W#16#F
T #WEEK
SET
SAVE
BE
 ;
真没有想到大家对这个程序挺感兴趣,我在这里详细介绍一下,当初工作中遇到一个比较繁琐的工作就是,要把200多个电动蝶阀编个程序,如果都用梯形图编写太麻烦了,所以就打算作一个功能块,(我使用的是西门子S7 400)输入信号是几个BOOL量的信号,有PLC允许,电源正常,电机正转,电机反转,电机过热等信号,然后放到一个字节里面,比如MB10作为一个总的输入信号,输入到一个我做的FC中,输出也是一个一个字节,比如MB100按顺序排好队,依次是电机正转,电机反转,电机正转指示灯,电机反转指示灯,电机故障指示灯等 ,可以大大节省编程的时间,
CALL "Z_select_bit"
number :=W#16#100
word_in :=#pump_in
bool_out:=#PLC_allow
NOP 0
CALL "Z_select_bit"
number :=W#16#200
word_in :=#pump_in
bool_out:=#power_on
NOP 0
CALL "Z_select_bit"
number :=W#16#400
word_in :=#pump_in
bool_out:=#running
NOP 0
CALL "Z_select_bit"
number :=W#16#800
word_in :=#pump_in
bool_out:=#soft_sta_error
NOP 0
CALL "Z_select_bit"
number :=W#16#1000
word_in :=#pump_in
bool_out:=#local
NOP 0
CALL "Z_select_bit"
number :=W#16#2000
word_in :=#pump_in
bool_out:=#remote
NOP 0
CALL "Z_select_bit"
number :=W#16#4000
word_in :=#pump_in
bool_out:=#run_local
NOP 0
CALL "Z_select_bit"
number :=W#16#8000
word_in :=#pump_in
bool_out:=#stop_local
NOP 0
CALL "Z_select_bit"
number :=W#16#1
word_in :=#pump_in
bool_out:=#run_remote
NOP 0
CALL "Z_select_bit"
number :=W#16#2
word_in :=#pump_in
bool_out:=#stop_remote
NOP 0
CALL "Z_select_bit"
number :=W#16#4
word_in :=#pump_in
bool_out:=#error_reset
NOP 0
CALL "Z_select_bit"
number :=W#16#8
word_in :=#pump_in
bool_out:=#auto
NOP 0
CALL "Z_select_bit"
number :=W#16#10
word_in :=#pump_in
bool_out:=#manual
NOP 0
CALL "Z_select_bit"
number :=W#16#20
word_in :=#pump_in
bool_out:=#spare
NOP 0
CALL "Z_select_bit"
number :=W#16#40
word_in :=#pump_in
bool_out:=#spare_1
NOP 0
CALL "Z_select_bit"
number :=W#16#80
word_in :=#pump_in
bool_out:=#spare_2
NOP 0
这只是其中一部分程序