当前位置: 首页 > news >正文

使用西门子 PLC(以 S7 - 1200 为例)编写梯形图程序来根据转速计算瞬时流量和累计流量的详细步骤

以下是一个使用西门子 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 毫安信号输入和手动输入方式。该程序使用西门子 S7 - 1200 PLC 的梯形图语言编写,并与昆仑通泰触摸屏进行交互。

请注意,以上代码是基于 TIA Portal 编写的梯形图程序示例,实际应用中可能需要根据具体的硬件配置和需求进行调整。

相关文章:

  • 0基础学Linux系统(准备1)
  • 沉浸式翻译插件深度评测:打破语言壁垒的黑科技利器
  • w223信息技术知识赛系统设计与实现
  • aws(学习笔记第二十九课) aws cloudfront hands on
  • Qwen-VL传统方法微调
  • 萝卜头笔作文赏析
  • CMMI评估的五个等级
  • ROS 2机器人开发--话题通信:订阅与发布
  • 52类110个主流Java组件和框架
  • SpringBoot实现异步调用的方法
  • 互联网医院系统源码解析:如何开发智能化的电子处方小程序?
  • 什么是方法
  • 大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行
  • Python天梯赛10分题-念数字、求整数段和、比较大小、计算阶乘和
  • 【数据结构初阶第十五节】堆的应用(堆排序 + Top-K问题)
  • MYSQL学习笔记(九):MYSQL表的“增删改查”
  • 在 Java 中使用 `if` 语句实现双重判定
  • JS:页面事件
  • 深度学习入门--python入门2
  • 《深入理解JVM》实战笔记(二): 类加载机制与类加载器
  • 中方发布会:中美经贸高层会谈取得了实质性进展,达成了重要共识
  • 中方发布会:中美经贸高层会谈氛围是坦诚的、深入的、具有建设性的
  • 四姑娘山一游客疑因高反身亡,镇卫生院:送到时已很严重
  • 人民日报读者点题·共同关注:今天我们为什么还需要图书馆?
  • 梅花奖在上海|朱洁静:穿越了人生暴风雨,舞台是最好良药
  • 巴基斯坦对印度发起网络攻击,致其约70%电网瘫痪