下面是用SCL语言编写的将系统时间转成整数显示的程序:
[code]FUNCTION_BLOCK FB_SystemTimeToIntegers
VAR_INPUT
SystemTime: DATE_AND_TIME; // 系统时间
END_VAR
VAR_OUTPUT
Year: INT; // 年份
Month: INT; // 月份
Day: INT; // 天数
Hour: INT; // 小时
Minute: INT; // 分钟
Second: INT; // 秒钟
END_VAR
VAR
TempDate: DATE; // 临时变量,存储日期
TempTime: TIME_OF_DAY; // 临时变量,存储时间
TempInt: INT; // 临时变量,用于存储整数值
END_VAR
// 将日期转成整数
TempDate := SystemTime.DATE;
Year := TempDate / 10000;
Month := MOD(TempDate, 10000) / 100;
Day := MOD(TempDate, 100);
// 将时间转成整数
TempTime := SystemTime.TIME;
Hour := TempTime / 3600000;
Minute := MOD(TempTime, 3600000) / 60000;
Second := MOD(MOD(TempTime, 3600000), 60000) / 1000;[/code]
程序的输入为系统时间,类型为DATE_AND_TIME。输出是年、月、日、小时、分钟、秒钟,类型为INT。
程序通过将日期和时间分别转成整数来实现,由于DATE_AND_TIME包含日期和时间两个部分,所以需要使用临时变量来存储日期和时间,然后分别计算年、月、日、小时、分钟、秒钟的整数值。
使用该程序的方法为,在需要调用的地方声明一个FB_SystemTimeToIntegers类型的变量,在输入参数中传入当前的系统时间,然后调用该变量并读取输出参数中的各个整数值。 |