以下是一个使用西门子 PLC(以 S7 - 1200 为例)编写梯形图程序来根据转速计算瞬时流量和累计流量的详细步骤,同时会考虑与昆仑通泰触摸屏的交互。该程序支持 4 - 20 毫安信号输入和另一种模拟的手动输入方式。
需求理解
- 流量计算原理:每圈流量自定义(设为 4.38 升),一分钟转
N
圈,一分钟排量为N * 4.38
升,一小时排量为N * 4.38 * 60
升。 - 输入方式:
- 4 - 20 毫安信号:该信号对应不同的转速值。
- 另一种输入方式:模拟为通过昆仑通泰触摸屏手动输入转速。
硬件连接
- 4 - 20 毫安信号:将信号源连接到西门子 PLC 的模拟量输入模块(如 SM1231 AI 4xU/I)。
- 昆仑通泰触摸屏:通过以太网或串口与西门子 PLC 连接。
程序实现
1. 数据块定义
在 TIA Portal 中创建一个数据块(DB),用于存储相关数据:
DB1:
- 每圈流量(Real): DB1.DBW0
- 4 - 20 毫安输入值(Int): DB1.DBW4
- 手动输入转速(Real): DB1.DBW6
- 选择输入方式(Bool): DB1.DBX8.0 (0: 4 - 20 毫安信号,1: 手动输入)
- 转速(Real): DB1.DBW10
- 瞬时流量(升/分钟)(Real): DB1.DBW14
- 累计流量(升)(Real): DB1.DBW18
2. 梯形图程序
步骤 1:初始化每圈流量
在 OB1 中,使用 MOVE
指令将每圈流量(4.38 升)赋值给 DB1.DBW0
:
Network 1: 初始化每圈流量
A SM0.1 // 仅在 CPU 启动时执行一次
L 4.38
T DB1.DBW0
步骤 2:处理 4 - 20 毫安信号输入
将模拟量输入值(4 - 20 毫安对应的数值)转换为转速值。假设 4 毫安对应 0 转/分钟,20 毫安对应 1000 转/分钟:
Network 2: 处理 4 - 20 毫安信号输入
L PIW256 // 读取模拟量输入值
T DB1.DBW4
L DB1.DBW4
L 6400 // 4 毫安对应的数值
-I
L 25600 // 20 毫安对应的数值 - 4 毫安对应的数值
/I
L 1000.0 // 最大转速
*R
T DB1.DBW10 // 转换后的转速值
步骤 3:处理手动输入转速
当选择手动输入方式时,将手动输入的转速值赋值给 DB1.DBW10
:
Network 3: 处理手动输入转速
A DB1.DBX8.0 // 选择手动输入方式
L DB1.DBW6
T DB1.DBW10
步骤 4:计算瞬时流量
根据转速和每圈流量计算瞬时流量(升/分钟):
Network 4: 计算瞬时流量
L DB1.DBW10 // 转速
L DB1.DBW0 // 每圈流量
*R
T DB1.DBW14 // 瞬时流量(升/分钟)
步骤 5:计算累计流量
使用定时器(如 S_PULSE)每隔一分钟累加一次瞬时流量到累计流量中:
Network 5: 计算累计流量
A SM0.0 // 始终为 1
CALL S_PULSE,IN := 1,PT := T#1M,Q => M0.0
A M0.0
L DB1.DBW14 // 瞬时流量
L DB1.DBW18 // 累计流量
+R
T DB1.DBW18 // 更新累计流量
昆仑通泰触摸屏配置
- 创建变量:在昆仑通泰触摸屏的组态软件中,创建与 PLC 数据块中变量对应的变量。
- 设计界面:
- 添加一个选择开关,用于选择输入方式(4 - 20 毫安信号或手动输入),关联到
DB1.DBX8.0
。 - 添加一个数值输入框,用于手动输入转速,关联到
DB1.DBW6
。 - 添加两个数值显示框,分别显示瞬时流量(
DB1.DBW14
)和累计流量(DB1.DBW18
)。
- 添加一个选择开关,用于选择输入方式(4 - 20 毫安信号或手动输入),关联到
总结
通过以上步骤,你可以实现一个根据转速计算瞬时流量和累计流量的程序,支持 4 - 20 毫安信号输入和手动输入方式。该程序使用西门子 S7 - 1200 PLC 的梯形图语言编写,并与昆仑通泰触摸屏进行交互。
请注意,以上代码是基于 TIA Portal 编写的梯形图程序示例,实际应用中可能需要根据具体的硬件配置和需求进行调整。