2026/3/23 0:26:59
网站建设
项目流程
建网站咨询,网站建站卡顿怎么办,网站建设与网页设计教程视频,登录网站定制欧姆龙CP1H MODBUS RTU通讯功能块程序
~ CP1H PLC与变频器使用MODBUS RTU功能通讯#xff0c;走MODBUS-RTU通讯用功能块写的梯形图注释齐全#xff0c;方便理解程序
#Omron/欧姆龙
#Omron/欧姆龙#xff08;直接进入正文#xff09;最近在车间折腾欧姆龙CP1H和变频器的…欧姆龙CP1H MODBUS RTU通讯功能块程序 ~ CP1H PLC与变频器使用MODBUS RTU功能通讯走MODBUS-RTU通讯用功能块写的梯形图注释齐全方便理解程序 #Omron/欧姆龙 #Omron/欧姆龙直接进入正文最近在车间折腾欧姆龙CP1H和变频器的MODBUS RTU通讯发现很多新手卡在功能块配置这一关。其实只要搞清楚MSG指令的脾气这事没想象中那么玄乎。今天就拿手头调试成功的案例拆开说说咱们直接上干货。先唠硬件配置。CP1H自带RS485口记得把终端电阻拨码打开变频器那边站号设成1波特率19200/8N1是实测最稳的组合。重点来了——串口参数必须用MOV指令提前灌到D寄存器// 串口参数设置MOV #0000 D200 // 通讯格式19200bps, 无校验, 1停止位MOV #0001 D201 // 协议模式MODBUS-RTU这俩参数直接决定握手成败。见过有人把校验位设成偶校验结果报文死活对不上折腾一整天最后发现是这里填错了数字血泪教训啊老铁们。核心功能块用的是MSG指令这货的工作逻辑得吃透。写控制字时要特别注意位状态// MSG指令配置示例MSG控制字: D100 // 必须用地址指针!发送区: #0 // 使用D300起始的发送数据区接收区: #1 // 使用D400起始的接收缓冲区超时: 3000 // 3秒超时比较稳妥重点说说控制字D100的结构bit00: 执行标志自动复位bit03: 错误标志常亮说明翻车bit04: 完成标志收到应答会自己跳bit15: 启停控制上升沿触发发送数据区构造是门学问。比如要写变频器频率到40001H寄存器得这么拼报文D300: 0001 // 从站地址D301: 1006 // 功能码06写单寄存器D302: 4000 // 寄存器地址高字D303: 0001 // 寄存器地址低字实际是40001D304: 1388 // 写入值5000对应50.00HzD305: 0000 // 校验码由PLC自动计算这里有个坑——MODBUS地址要减1。比如要操作40001填4000就行千万别手贱1。之前有个小哥填了4001结果变频器直接报非法地址查了三小时才反应过来。接收处理更考验细节。正常应答应该返回同样的数据帧用CMP指令比对前4个字节能快速判断是否通讯成功CMP D400 D300 // 比较返回站号 D400 D300JMP ERROR_HANDLECMP D401 D301 // 比较功能码 D401 D301JMP ERROR_HANDLE错误处理建议做成子程序复用。重点监控A393通道通讯错误代码常见错误码比如E0001端口被占用E0002校验错误E0005应答超时调试时强烈建议用串口监听工具抓包。曾经遇到变频器返回数据长度不对用监听工具发现是站号设成了十进制1而PLC发的是十六进制01这种低级错误没工具辅助真的很难发现。最后说个提速技巧周期性通讯时在MSG完成位后面加个0.5秒的TON定时器再触发下次发送比死等超时更高效。特别是需要轮询多个从站时这个时间差刚好能让总线喘口气。