modbus新起点1--基础篇:http://bbs.gongkong.com/d/201807/764982_1.shtml
modbus新起点连载2--modbus台达篇:http://bbs.gongkong.com/d/201807/765040_1.shtml
modbus的新起点连载3——台达PLC的modbus主站:http://bbs.gongkong.com/d/201807/765110_1.shtml
modbus新起点连载4--台达PLC以太网的数据交换:http://bbs.gongkong.com/D/201807/765957_1.shtml
modbus新起点连载5--台达PLC的modbusTCP客户端程序:http://bbs.gongkong.com/D/201807/765961_1.shtml
modbus新起点连载6——西门子200的modbusRTU: http://bbs.gongkong.com/D/201807/766167_1.shtml
看了前两天的modbus新起点,大家好像都不太积极。总结了一下,大概是我标题不够明确,内容看不到。所以在此把原文给直接贴出来给各位。您的点赞和回复,就是对原创的认可,希望大家让我的帖子火起来。附件是modbus 对应程序。
再次打岔一下,调试中遇到问题可以加我微信we9322025
台达的modbus 主站可以通过通讯向导来完成。在这里给大家简单介绍一个如何快速获取变频器的运行频率。
场景每隔500ms读取一次变频器的运行频率,存到D101中。
第一步 设定变频器的通讯格式为RTU模式,9600,8,1,e。分别设定参数P89=01,P92=04。
第二步 查找变频器运行频率的modbus地址。查找后为2103H
第四步 使用PLC的通信向导
(1)打开WPLsoft,创建一个空程序
(2)在工具栏,找到通讯程序按钮,点击,弹出通讯程序向导
(1) 选择CCOM2,然后点击“下一步”。配置通讯参数。
条件表达式,设置成LD M1002//程序初始化的时候进行通讯初始化
勾选通讯保存
勾选RTU模式
通讯参数,9600,8,1,E
通讯站号:1
(2) 配置好通讯参数后点击“下一步”。选择通讯应用指令。
(3) 在点击下一步,进行通讯参数配置。当M0导通的时候读取变频器的运行频率(H2103)。配置参数如下:
(4) 点击“完成”后,自动生成了通讯程序。
第五步 修改PLC的通讯程序。由于变频器的频率需要一直读取,所以需要完成对M0的导通控制,才能进行通讯。我的常规习惯是,在通讯完成后的500ms,再次进行频率读取。对M0的信号进行控制。我个人的习惯是,通讯分为请求开始,轮询间隔,通讯复位,超时判断四个阶段。
修改之后如下:
第六步 报文解析。修改完程序之后就算是可以进行通讯了。通过监控可以看到回复的报文:
参看前面基础篇中的03报文格式。基础篇链接——http://bbs.gongkong.com/d/201807/764982_1.shtml
整理在excel中(从报文中可以看出,一个寄存器表示一个byte):
D0 | H0001 | 站号 |
D1 | H0003 | 功能码 |
D2 | H0002 | 字节数 |
D3 | H0011 | 寄存器值高位 |
D4 | H005C | 寄存器的低位 |
D5 | H00B4 | CRC高位 |
D6 | H002D | CRC低位 |
所以变频器的的频率为D3和D4的组合H115C
新增解析程序
即D101就是所需的变频器的值。其中有偏移两位小数点就是44.44
楼主最近还看过
多谢大家的支持!
由于发的第一个帖子已经被设置成精华帖了。
之后帖会在后面之前的第一个帖持续更新。
http://bbs.gongkong.com/d/201807/764982_1.shtml
给大家打来不便,真是不好意思。