小时产量编程的实现方法取决于你使用的编程语言和具体的应用场景。以下是几种不同编程语言实现小时产量的示例:
1. 使用DINT数组记录每小时产量
```pascal
VAR
VAR_GLOBAL2: DINT; // 产品计数器
不合格品计数器: DINT;
生产速度: REAL; // 单位:件/分钟
小时产量: ARRAY[0..23] OF DINT; // 每小时产量数组
当前小时: INT;
传感器触发: BOOL;
编码器脉冲: BOOL;
END_VAR
// 主程序实现
IF 传感器触发 AND NOT 传感器触发前沿 THEN
产品计数器 := 产品计数器 + 1;
END_IF;
传感器触发前沿 := 传感器触发;
// 计算生产速度(每分钟)
生产速度 := DINT_TO_REAL(产品计数器) / TIME_TO_REAL(系统运行时间) * 60.0;
// 每小时记录数据
IF 当前小时 = HOUR(系统时间) THEN
小时产量[当前小时] := 产品计数器;
当前小时 := HOUR(系统时间);
产品计数器 := 0; // 重置计数器
END_IF;
```
2. 使用PLC编程实现每小时产量计算
```text
VAR
Counter: INT := 0; // 瓶数计数器变量
HourTimer: TON := (PT: 'H' , ET: TIME1H); // 一个小时的定时器
HourlyOutput: REAL; // 每小时产量变量
END_VAR
WHILE TRUE DO
Counter := Counter + 1; // 计数器自增1
IF HourTimer.Q THEN // 如果一个小时已经过去,触发定时器
HourlyOutput := Counter / 1; // 计算每小时产量
Counter := 0; // 计数器清零
HourTimer(INIT := TRUE); // 重新开始计时
END_IF
DELAY 100 MS; // 等待一段时间,再次循环
END_WHILE
```
3. 使用Excel公式计算每小时产量
在Excel中,你可以使用以下公式来计算每小时产量:
```excel
=A1/B1
```
其中,A1单元格记录总产量,B1单元格记录总工时。
4. 使用PLC程序计算每小时产量
```pascal
VAR
DATERD(1,时间读取);
白班:=(时间读取<21 AND 7<时间读取);
夜班:=(时间读取<8 OR 20<时间读取);
INC(LDP(1,OK产品) AND 白班,白班产量);
INC(LDP(1,OK产品) AND 夜班,夜班产量);
总产量:=(白班产量+夜班产量);
FOR var1:=0 TO 24 BY 1 DO
IF 时间读取=var1 THEN
INC(LDP(1,OK产品),小时产量[var1]);
END_IF;
END_FOR;
MOV(var1=25,0,var1);
END_VAR
```
5. 使用功能块计算每小时产量
```pascal
FUNCTION_BLOCK FB6
VAR_input n : INT; // 输入变量
VAR_OUTPUT out : INT; // 输出变量
VAR_TEMP // 临时变量
VAR V_1:BOOL;
VAR V_2:BOOL;
n_1:INT;
n_2:INT;
RTC_MINUTES: INT;
RET_VAL_SFC : INT;
DAT :
END_VAR
VAR
Tag_Result: INT;
Tag_Value: INT;
Tag_Number: INT;
END_VAR
// 输入用来给入,产量的计数
// 输出用来发出,1小时的产量是多少
```
这些示例展示了如何在不同的编程环境中实现小时产量的计算。你可以根据具体的应用场景选择合适的方法进行编程。