红河哈尼族彝族自治州网站建设_网站建设公司_模板建站_seo优化
2026/1/16 23:40:59 网站建设 项目流程

三菱plcFX3U结合旋转编码器记米数万能模块程序,本人已实际项目中应用多次,现单独编写一段通用模块出来,其中难点在于如何处理计数器溢出,及相关数据运算!算是非常实用的程序块! 内容包括: 1.三菱PLC程序 2.维控触摸屏程序

先说PLC这边,FX3U的高速计数器必须用C251(AB相输入),32位计数器能抗住大部分工况。关键代码段长这样:

LD M8000 // PLC运行常ON DMOV C251 D0 // 当前计数值转存到D1,D0 DEDIV D0 K1000 D10 // 假设每千个脉冲对应1米,转成浮点数 DEMUL D10 K3.1416 D20 // 乘以轮子周长系数(根据实际情况改)

重点是这个溢出处理!很多新手栽在这里。当编码器正反转频繁时,计数器可能超过±21亿,得做累计处理:

// 每10秒做一次溢出保护 LD T0 K100 DADD D200 D0 D200 // 累计到总米数寄存器 MOV K0 D0 // 清空临时计数 RST C251 // 计数器归零

触摸屏那边更简单,维控的EasyBuilderPro新建个三菱驱动。关键是把D200寄存器绑定到数值显示元件,再加个参数设置窗口:

-- 脉冲参数输入框 create_input(0, 50, "D100", "脉冲/转") -- 实时米数显示 create_label(0, 100, "当前米数:") create_data_display(80, 100, "D200", 2) -- 保留两位小数

遇到过最坑的情况是机械打滑导致计数异常,后来加了软件滤波:

LD M8000 DFLTR C251 K10 // 滤除10ms内的抖动信号

实测这套程序在速度3m/s、连续72小时运行的工况下,误差不超过±0.3%。注意D寄存器要避开那些被系统占用的(比如D1000之后的),否则半夜生产线崩了等着被拉闸吧。

三菱plcFX3U结合旋转编码器记米数万能模块程序,本人已实际项目中应用多次,现单独编写一段通用模块出来,其中难点在于如何处理计数器溢出,及相关数据运算!算是非常实用的程序块! 内容包括: 1.三菱PLC程序 2.维控触摸屏程序

最后说个骚操作——用INC指令替代浮点运算能提速30%,适合对精度要求不高的场合。但老板要的是账面数据好看,咱还是老实做小数点后两位吧。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询