news 2026/6/10 1:16:26

欧姆龙CP1H与2台三菱变频器Modbus RTU通讯那些事儿

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
欧姆龙CP1H与2台三菱变频器Modbus RTU通讯那些事儿

欧姆龙cp1h与2台三菱变频器modbus rtu通讯程序。 程序有注释。 用的电脑在线模拟,选的威纶通mt8102ip,如果是真实触摸屏只需更改com口和买一根威纶通与欧姆龙232的通讯线即可。 控制正反转、状态显示、写入频率、加减速时间和读取频率、电流、输出电压,plc型号为cp1h-x40dt-d,变频器为三菱fr-e700(d700也能用) 零基础、基础差的朋友不适合。 适合有基础,但有某些个知识点不懂的朋友。

最近在研究欧姆龙CP1H与2台三菱变频器通过Modbus RTU进行通讯,这里和大家分享一下相关程序以及一些要点,有基础但在某些知识点上有困惑的朋友可以看过来啦,零基础和基础差的朋友可能不太适合这篇文章哦。

这次我是用电脑在线模拟,选的威纶通MT8102IP,如果是真实触摸屏的话,只需更改COM口并买一根威纶通与欧姆龙232的通讯线即可。PLC型号是CP1H - X40DT - D,变频器是三菱FR - E700(其实D700也能用)。

程序主体部分

// 定义通讯端口参数 #DEFINE COM_PORT 1 // 使用COM1口 #DEFINE BAUD_RATE 9600 // 波特率9600 #DEFINE DATA_BITS 7 // 数据位7位 #DEFINE STOP_BITS 2 // 停止位2位 #DEFINE PARITY EVEN // 偶校验 // 初始化Modbus RTU通讯 SEND_MSG: SET S120.00; // 开启通讯功能 MOV #0001 D100; // 站号设置为1(第一台变频器) MOV #0006 D101; // 功能码06,用于写入单个寄存器 MOV #0000 D102; // 寄存器地址,这里举例一个地址 MOV #0050 D103; // 写入数据,比如设定频率值 MOV #0004 D104; // 数据长度 MOV #0000 D105; // 错误代码暂存 MOV #0000 D106; // 通讯状态暂存 MOV #0000 D107; // 其他相关暂存 // 启动通讯发送 OUT S122.00; WDR; // 防止看门狗复位

代码分析

  1. 端口参数定义:通过#DEFINE来设置通讯端口的基本参数,像COM口、波特率、数据位、停止位和校验方式。这些参数必须和变频器的设置一致,不然通讯肯定出问题。
  2. 初始化通讯:先置位S120.00开启通讯功能,这就像给整个通讯系统上电一样。然后在D100-D107这些寄存器里设置各种通讯相关参数,比如站号、功能码、寄存器地址、写入数据等等。这里的站号要对应变频器实际设置的站号,功能码根据我们要实现的功能来选,像写入频率就选功能码06 。最后通过OUT S122.00启动通讯发送,同时用WDR防止看门狗复位,因为通讯过程可能稍微长一点,别让看门狗以为程序死机把它复位了。

控制正反转部分

// 正转控制 FORWARD_CONTROL: MOV #0001 D102; // 对应正转控制的寄存器地址 MOV #0001 D103; // 正转指令数据 MOV #0004 D104; MOV #0000 D105; MOV #0000 D106; MOV #0000 D107; OUT S122.00; WDR; // 反转控制 REVERSE_CONTROL: MOV #0001 D102; // 对应反转控制的寄存器地址 MOV #0002 D103; // 反转指令数据 MOV #0004 D104; MOV #0000 D105; MOV #0000 D106; MOV #0000 D107; OUT S122.00; WDR;

代码分析

正转和反转控制部分逻辑类似,都是先设置对应的寄存器地址(D102)和指令数据(D103)。正转时写入对应正转指令数据,反转同理。其他参数如数据长度等和初始化部分类似。设置好后同样通过OUT S122.00发送指令,并防止看门狗复位。

状态显示、读取频率、电流和输出电压部分

// 读取频率 READ_FREQUENCY: MOV #0001 D100; // 站号 MOV #0003 D101; // 功能码03,用于读取多个寄存器 MOV #0002 D102; // 频率寄存器起始地址 MOV #0002 D103; // 读取2个寄存器(根据频率数据存储情况) MOV #0004 D104; MOV #0000 D105; MOV #0000 D106; MOV #0000 D107; OUT S122.00; WDR; // 读取电流 READ_CURRENT: MOV #0001 D100; MOV #0003 D101; MOV #0004 D102; // 电流寄存器起始地址 MOV #0002 D103; // 读取2个寄存器 MOV #0004 D104; MOV #0000 D105; MOV #0000 D106; MOV #0000 D107; OUT S122.00; WDR; // 读取输出电压 READ_VOLTAGE: MOV #0001 D100; MOV #0003 D101; MOV #0006 D102; // 电压寄存器起始地址 MOV #0002 D103; // 读取2个寄存器 MOV #0004 D104; MOV #0000 D105; MOV #0000 D106; MOV #0000 D107; OUT S122.00; WDR;

代码分析

读取频率、电流和输出电压都使用功能码03来读取多个寄存器。不同的是寄存器起始地址,根据变频器手册找到频率、电流、电压对应的寄存器地址分别设置在D102里。读取的寄存器个数根据数据存储情况来,一般可能是2个寄存器。设置好这些参数后,同样启动通讯发送并防止看门狗复位。

总的来说,欧姆龙CP1H与三菱变频器通过Modbus RTU通讯,关键在于参数设置准确和指令发送正确,希望这篇文章对有相关疑惑的朋友有所帮助。要是实际连接真实触摸屏,记得按前面说的改COM口和准备好通讯线哦。

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

告别环境配置噩梦:小白也能懂的Z-Image-Turbo快速入门

告别环境配置噩梦:小白也能懂的Z-Image-Turbo快速入门 你是否对AI绘画充满兴趣,却被各种技术术语和环境配置要求吓退?Z-Image-Turbo作为一款强大的文生图模型,能够帮助你轻松实现创意绘画。本文将带你从零开始,无需复杂…

作者头像 李华
网站建设 2026/6/9 18:43:48

通达信能量指标

{}V1:DMA((((HIGH LOW) (CLOSE * 2)) / 4),0.9); HY1:REF(EMA(V1,3),1); 多空趋势:(MA((CLOSE - HY1) * 28,2))*0.1; 换手:V*100/CAPITAL; 主力:MA(换手,4); 大户:MA(换手,9); 中户:MA(换手,17); 散户:MA(换手,34); 均量:(主力大户中户散户)/4; 成交量:V,COLORWHITE,NODRAW; …

作者头像 李华
网站建设 2026/6/9 19:41:20

实战案例分享】利用三菱PLC和组态王实现智能化鸡舍温湿度控制系统,提升养鸡场效益

基于三菱PLC和组态王鸡舍温湿度控制养鸡场鸡舍环境控制是现代化养殖的关键环节。三菱FX3U PLC配合组态王软件搭建的温湿度监控系统,让养鸡场的环境参数管理变得直观可控。这套系统的核心逻辑其实并不复杂——传感器采集数据,PLC处理逻辑,上位…

作者头像 李华
网站建设 2026/6/9 20:12:32

8步出图不是梦:手把手教你用云端Z-Image-Turbo实现高效创作

8步出图不是梦:手把手教你用云端Z-Image-Turbo实现高效创作 作为一名内容创作者,你是否曾被AI图像生成的无限可能所吸引,却又被复杂的框架安装、依赖管理和显存问题劝退?今天我要分享的Z-Image-Turbo镜像,正是为解决这…

作者头像 李华
网站建设 2026/6/9 18:45:24

Z-Image-Turbo创意工坊:无需编码的AI艺术创作平台

Z-Image-Turbo创意工坊:无需编码的AI艺术创作平台 为什么选择Z-Image-Turbo创意工坊 对于儿童编程教育机构来说,引入AI艺术课程最大的挑战是如何让低龄学生也能轻松上手。传统的AI图像生成工具往往需要复杂的代码编写和环境配置,而Z-Image-Tu…

作者头像 李华
网站建设 2026/6/9 19:56:52

AI绘画数据隐私:基于Z-Image-Turbo的本地化部署与云端方案对比

AI绘画数据隐私:基于Z-Image-Turbo的本地化部署与云端方案对比 在医疗、金融等涉及敏感数据的行业中,如何安全地使用AI绘画工具生成图像是一个重要课题。Z-Image-Turbo作为阿里通义实验室开源的6B参数图像生成模型,凭借其高效的8步出图能力和…

作者头像 李华