博图16 中多电机时间排序启动 SCL 功能块实现
时间排序启动电机(阀门功能块 博图程序 多电机均匀 SCL功能块博图16编写时间排序启动功能块scl语言可用于各种泵站水处理工况通过比较运行时间选择启动最短时间的几台泵启动泵的台数可以设置总泵数可以设置默认10台时间为Ms 自行更改原理一样程序精炼调用方便小程序块可以扩展更改为其他非时间排序适合工控中各种排序启动模式启停方便。 为了监视方便使用数组其他支持ST语言编程也适用用冒泡排序 本程序用于研究学习在工控领域泵站、水处理等工况中常常需要对多台电机或阀门按照一定规则排序启动。今天咱就聊聊在博图16里用SCL语言写一个时间排序启动的功能块这功能块就像个瑞士军刀改改还能适应各种排序启动模式。功能概述这个功能块能通过比较运行时间从一堆电机或阀门里选出运行时间最短的几台来启动启动的台数能自己设置总电机数默认10台时间单位是毫秒Ms 要改时间单位啥的原理不变。而且为了监视方便咱用数组来实现ST语言编程的环境也能用排序算法用冒泡排序。这程序主要就是用来研究学习的。SCL 代码实现FUNCTION TimeSortStart : VOID VAR_INPUT TotalPumps : INT : 10; // 总泵数默认10台 StartPumps : INT; // 要启动的泵数 RunTime : ARRAY[1..10] OF DINT; // 每台泵的运行时间单位Ms END_VAR VAR i, j, temp : DINT; IndexArray : ARRAY[1..10] OF INT; END_VAR BEGIN // 初始化索引数组 FOR i : 1 TO TotalPumps DO IndexArray[i] : i; END_FOR; // 冒泡排序按照运行时间对索引数组排序 FOR i : 1 TO TotalPumps - 1 DO FOR j : 1 TO TotalPumps - i DO IF RunTime[IndexArray[j]] RunTime[IndexArray[j 1]] THEN temp : IndexArray[j]; IndexArray[j] : IndexArray[j 1]; IndexArray[j 1] : temp; END_IF; END_FOR; END_FOR; // 这里就可以根据IndexArray里前StartPumps个索引去启动对应的泵啦 // 实际应用中这里应该是启动泵的逻辑比如置位对应泵的启动位 // 这里简单打印一下要启动的泵的索引示意 FOR i : 1 TO StartPumps DO // 假设这里有个输出数组用来标记要启动的泵 // StartFlag[IndexArray[i]] : TRUE; // 实际没有StartFlag数组这里只是示意以下打印代替 PRINTF(要启动的泵索引%d, IndexArray[i]); END_FOR; END_FUNCTION代码分析变量定义-TotalPumps是输入变量定义了总的泵数量默认设为10台。要是实际项目里泵多了少了改这个数就行。-StartPumps也是输入变量决定要启动几台泵。-RunTime数组用来存每台泵的运行时间这里就10个元素对应10台泵要是泵数变了数组范围也得跟着改。- 局部变量i、j用来循环计数temp用于交换数据IndexArray数组是用来存泵的索引方便后面排序操作。初始化索引数组FOR i : 1 TO TotalPumps DO IndexArray[i] : i; END_FOR;这段代码给IndexArray数组赋值每个元素的值就是对应的泵索引从1到TotalPumps这样后续排序就可以通过操作索引而不直接动RunTime数组的数据。冒泡排序FOR i : 1 TO TotalPumps - 1 DO FOR j : 1 TO TotalPumps - i DO IF RunTime[IndexArray[j]] RunTime[IndexArray[j 1]] THEN temp : IndexArray[j]; IndexArray[j] : IndexArray[j 1]; IndexArray[j 1] : temp; END_IF; END_FOR; END_FOR;冒泡排序大家应该都熟这里通过比较RunTime数组里对应索引位置的运行时间把IndexArray数组按照运行时间从小到大排序。每次比较如果前面泵的运行时间比后面的大就交换它们在IndexArray里的位置。选择并启动泵FOR i : 1 TO StartPumps DO // 假设这里有个输出数组用来标记要启动的泵 // StartFlag[IndexArray[i]] : TRUE; // 实际没有StartFlag数组这里只是示意以下打印代替 PRINTF(要启动的泵索引%d, IndexArray[i]); END_FOR;这里根据StartPumps的设定遍历IndexArray数组的前StartPumps个元素这些元素就是运行时间最短的泵的索引。实际应用中这里应该是控制启动泵的逻辑比如给对应的泵置位启动信号。这里为了演示就简单打印要启动泵的索引。时间排序启动电机(阀门功能块 博图程序 多电机均匀 SCL功能块博图16编写时间排序启动功能块scl语言可用于各种泵站水处理工况通过比较运行时间选择启动最短时间的几台泵启动泵的台数可以设置总泵数可以设置默认10台时间为Ms 自行更改原理一样程序精炼调用方便小程序块可以扩展更改为其他非时间排序适合工控中各种排序启动模式启停方便。 为了监视方便使用数组其他支持ST语言编程也适用用冒泡排序 本程序用于研究学习这个功能块代码精炼调用方便后续要是想改成其他排序启动模式比如按优先级排序修改冒泡排序部分的比较逻辑就好啦很适合在工控项目里研究学习和扩展应用。

相关新闻

Python实战日志_第31篇_多模态模型入门_CLIP与图文理解

Python实战日志_第31篇_多模态模型入门_CLIP与图文理解

Python实战日志 第31篇:多模态模型入门——CLIP与图文理解 学习目标 理解多模态学习的基本概念 掌握CLIP模型的原理和应用 实现图文检索与匹配系统 构建图书封面+简介联合理解系统 前置知识 第18篇:卷积神经网络(CNN)基础 第21篇:BERT与预训练模型 第30篇:大模型部署与推…

2026/7/7 2:49:59 阅读更多 →
vxe-table 如何实现分组列头折叠列功能

vxe-table 如何实现分组列头折叠列功能

实现 vxe-table 分组列头折叠列功能非常简单&#xff0c;只需改变列的 visible 就可以实现 https://vxetable.cn 通过修改列的 visible 属性来精确控制列的显示隐藏 <template><div><vxe-tableborderheight"400":data"tableData"><…

2026/5/17 10:42:04 阅读更多 →
在python中使用c语言

在python中使用c语言

1.前言工作以后一直做AI领域的研究&#xff0c;python在数据处理上我一直感觉很麻烦&#xff0c;尤其是一直扎根在底层上&#xff0c;对pyhton的数据架构感觉很不习惯&#xff0c;尤其是最近做一个比赛&#xff0c;就是数据清洗的项目。于是还是想把c语言的特性融入python里&am…

2026/7/7 2:41:30 阅读更多 →

最新新闻

Docker镜像传播延迟介绍(Propagation Delay)(GitHub Container Registry - GHCR)manifest、镜像同步、节点同步、最终一致性

Docker镜像传播延迟介绍(Propagation Delay)(GitHub Container Registry - GHCR)manifest、镜像同步、节点同步、最终一致性

在 set -euo pipefail 下&#xff0c;命令替换内 docker buildx imagetools inspect 失败会直接终止脚本&#xff0c;设计好的诊断信息永远不会打印&#xff08;在 CD 刚变绿、GHCR manifest 尚未传播完成时实际触发过一次静默失败&#xff09;。给命令替换加 || true 使空 dig…

2026/7/7 3:53:36 阅读更多 →
PgBouncer 的 session 模式详解

PgBouncer 的 session 模式详解

1. 什么是 PgBouncer? PgBouncer 是一个轻量级的 PostgreSQL 连接池工具,主要用于管理和复用数据库连接,减少频繁建立和断开连接的开销,从而提升数据库性能和并发处理能力。 2. PgBouncer 的三种连接池模式 PgBouncer 支持三种主要的连接池模式,每种模式对应不同的会话…

2026/7/7 3:51:36 阅读更多 →
Linux内存Overcommit机制:三种策略、OOM Killer算法与cgroup限制行为的工程化分析

Linux内存Overcommit机制:三种策略、OOM Killer算法与cgroup限制行为的工程化分析

Linux内存Overcommit机制&#xff1a;三种策略、OOM Killer算法与cgroup限制行为的工程化分析 一、为什么Linux允许超额分配内存 物理内存是有限资源&#xff0c;但进程的内存请求远大于实际使用量。典型场景&#xff1a;进程malloc了1GB但只写了100MB&#xff0c;剩余900MB从未…

2026/7/7 3:49:35 阅读更多 →
移动端SoC选购避坑:3个关键参数(CPU/GPU/制程)解读与2024年芯片性能天梯图

移动端SoC选购避坑:3个关键参数(CPU/GPU/制程)解读与2024年芯片性能天梯图

移动端SoC选购避坑&#xff1a;3个关键参数&#xff08;CPU/GPU/制程&#xff09;解读与2024年芯片性能天梯图当你在手机卖场被各种"旗舰芯片""性能怪兽"的宣传语包围时&#xff0c;是否真正清楚这些参数背后的含义&#xff1f;本文将带你穿透营销迷雾&…

2026/7/7 3:49:35 阅读更多 →
小程序域名如何进行安全防护?一篇讲透

小程序域名如何进行安全防护?一篇讲透

随着小程序生态的快速发展&#xff0c;越来越多的企业将核心业务迁移到小程序上。然而&#xff0c;小程序同样面临着Web应用常见的各类安全威胁——SQL注入、XSS攻击、恶意爬虫、CC攻击、DDoS攻击等。那么&#xff0c;小程序的域名应该如何进行安全防护呢&#xff1f;本文将为你…

2026/7/7 3:47:35 阅读更多 →
AI 金融助手如何真正落地:ClaudeAPI 在银行业务里的应用思路

AI 金融助手如何真正落地:ClaudeAPI 在银行业务里的应用思路

银行业对 AI 的态度&#xff0c;正在从过去的“这个东西能不能用”&#xff0c;慢慢转向更现实的问题&#xff1a;怎么用才安全&#xff1f;怎么用才可控&#xff1f;出了问题能不能追溯&#xff1f;和普通聊天机器人相比&#xff0c;真正能在银行里跑起来的 AI 金融助手&#…

2026/7/7 3:47:35 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集&#xff0c;从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高&#xff1a;流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广&#xff0c;是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队&#xff0c;往往容易卡在一容易踩坑的选型难题&#xff1a; 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定&#xff0c;必须同时依赖「文本语义理解 实体关系推理」时&#xff0c;到底是做「向量图谱混合检索」就够了&#xff0c;还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻