news 2026/6/15 20:03:58

最近在搞一个FX3u轮训27个压力表的程序,写完之后感觉思路还挺清晰的,代码也很简洁,分享出来给大家参考一下

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
最近在搞一个FX3u轮训27个压力表的程序,写完之后感觉思路还挺清晰的,代码也很简洁,分享出来给大家参考一下

FX3u轮训27个压力表程序,思路清晰简洁,备注明确。 程序中只用了一条通讯程序轮训, 全部程序加起来步数622, 实现以下功能: 1:压力表当前数据 2:压力表通讯状态数据 3:压力表错误通讯数据 4:压力表上下限位判断数据 5:对应的压力表故障输出数据 6:查看单周期通讯时间及全周期时间。 程序中压力表数量可实时调整。

首先,这个程序的核心就是一条通讯程序轮训。没错,就一条!轮训27个压力表,所有的功能都靠这条通讯程序搞定。整个程序加起来才622步,算是相当精简了。

FX3u轮训27个压力表程序,思路清晰简洁,备注明确。 程序中只用了一条通讯程序轮训, 全部程序加起来步数622, 实现以下功能: 1:压力表当前数据 2:压力表通讯状态数据 3:压力表错误通讯数据 4:压力表上下限位判断数据 5:对应的压力表故障输出数据 6:查看单周期通讯时间及全周期时间。 程序中压力表数量可实时调整。

先来看看实现的功能:

  1. 压力表当前数据
  2. 压力表通讯状态数据
  3. 压力表错误通讯数据
  4. 压力表上下限位判断数据
  5. 对应的压力表故障输出数据
  6. 查看单周期通讯时间及全周期时间

而且,程序里的压力表数量还可以实时调整,灵活性相当不错。

核心代码分析

LD M8000 OUT M8122

这段代码的作用是启动通讯。M8000是PLC的常开触点,M8122是通讯启动信号。简单粗暴,直接启动通讯轮训。

MOV K27 D100

这里用MOV指令将常数K27(表示27个压力表)传送到数据寄存器D100中。这个D100就是用来存储压力表数量的,后续的轮训逻辑会根据这个值来决定轮训的次数。

FOR K0 TO D100

FOR循环指令,从K0开始,到D100结束,循环次数就是压力表的数量。这个循环是轮训的核心,每次循环都会处理一个压力表的数据。

CALL P100

CALL指令调用子程序P100,这个子程序就是处理单个压力表数据的逻辑。每次循环都会调用一次,处理一个压力表。

P100: LD M8122 OUT M8123 MOV D200 D201 CMP D201 K100 OUT Y0 RET

子程序P100的逻辑也很简单:

  1. LD M8122OUT M8123是通讯处理的一部分,确保通讯正常进行。
  2. MOV D200 D201将压力表的数据从D200传送到D201
  3. CMP D201 K100比较D201K100,判断压力是否超过上限。
  4. OUT Y0根据比较结果输出故障信号。

轮训时间监控

LD M8000 OUT T0

这段代码用来监控单周期通讯时间。M8000是常开触点,T0是定时器,记录每次轮训的时间。

LD T0 OUT D300

将定时器T0的值传送到D300,这样就可以在程序中查看单周期通讯时间了。

压力表数量调整

MOV K10 D100

如果需要调整压力表数量,直接修改D100的值即可。比如这里将压力表数量改为10,程序会自动调整轮训次数。

总结

这个程序虽然功能不少,但代码非常简洁,核心就是一条通讯程序轮训27个压力表。通过FOR循环和子程序调用,实现了对每个压力表的数据处理。压力表数量可以实时调整,灵活性很高。

代码中的注释也很明确,每个指令的作用都一目了然。如果你也在搞类似的轮训程序,可以参考这个思路,简洁高效,值得一试。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:14:53

SQLite浏览器工具完整指南:零安装本地数据库管理解决方案

SQLite浏览器工具完整指南:零安装本地数据库管理解决方案 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数据驱动的工作环境中,SQLite数据库文件的查看与管理已成为开发…

作者头像 李华
网站建设 2026/6/15 12:14:17

零基础也能用!GLM-4.6V-Flash-WEB视觉模型一键启动教程

零基础也能用!GLM-4.6V-Flash-WEB视觉模型一键启动教程 1. 教程目标与适用人群 本教程面向零基础开发者、AI初学者以及希望快速验证多模态能力的产品经理和技术团队,旨在帮助你无需任何复杂配置,仅通过几个简单步骤即可在本地或服务器上部署…

作者头像 李华
网站建设 2026/6/15 13:08:26

基于layui-admin构建企业级后台管理系统完整指南

基于layui-admin构建企业级后台管理系统完整指南 【免费下载链接】layui-admin 基于layui2.x的带后台的通用管理系统 项目地址: https://gitcode.com/gh_mirrors/la/layui-admin 还在为开发复杂的企业管理系统而烦恼吗?面对繁琐的权限配置、重复的业务模块开…

作者头像 李华
网站建设 2026/6/15 18:04:03

ms-swift迁移学习实践:基于预训练模型二次开发

ms-swift迁移学习实践:基于预训练模型二次开发 1. 引言 在大模型时代,从零开始训练一个高性能的语言模型成本极高。迁移学习通过在预训练模型基础上进行微调(Fine-tuning),成为实现高效模型定制的核心手段。本文将围…

作者头像 李华
网站建设 2026/6/15 14:03:37

手把手教你依据SSD1306中文手册编写Arduino驱动

从零开始,用《SSD1306中文手册》手写Arduino驱动:不只是“点亮屏幕”你有没有过这样的经历?接上一块OLED屏,调用几行库函数,display.begin()、display.print("Hello")——屏幕亮了,但一旦出问题&…

作者头像 李华