首页 调试点滴记录 正文

回复

modbus的新起点连载3——台达PLC的modbus主站

调试点滴记录 浏览:3451 回复:34 收藏

we9322025  2018-07-15 13:06

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,81e。分别设定参数P89=01P92=04

image.png

image.png

第二步 查找变频器运行频率的modbus地址。查找后为2103H

image.png

第四步 使用PLC的通信向导

1)打开WPLsoft,创建一个空程序

2)在工具栏,找到通讯程序按钮,点击,弹出通讯程序向导

image.png

(1)       选择CCOM2,然后点击“下一步”。配置通讯参数。

条件表达式,设置成LD M1002//程序初始化的时候进行通讯初始化

勾选通讯保存

勾选RTU模式

通讯参数,9600,8,1,E

通讯站号:1

image.png

(2)       配置好通讯参数后点击“下一步”。选择通讯应用指令。

image.png

(3)       在点击下一步,进行通讯参数配置。当M0导通的时候读取变频器的运行频率(H2103)。配置参数如下:

image.png

(4)       点击“完成”后,自动生成了通讯程序。

image.png

image.png

第五步 修改PLC的通讯程序。由于变频器的频率需要一直读取,所以需要完成对M0的导通控制,才能进行通讯。我的常规习惯是,在通讯完成后的500ms,再次进行频率读取。对M0的信号进行控制。我个人的习惯是,通讯分为请求开始,轮询间隔,通讯复位,超时判断四个阶段。

修改之后如下:

image.png

image.png

第六步 报文解析。修改完程序之后就算是可以进行通讯了。通过监控可以看到回复的报文:

image.png

参看前面基础篇中的03报文格式。基础篇链接——http://bbs.gongkong.com/d/201807/764982_1.shtml 

image.png

整理在excel中(从报文中可以看出,一个寄存器表示一个byte):

D0

H0001

站号

D1

H0003

功能码

D2

H0002

字节数

D3

H0011

寄存器值高位

D4

H005C

寄存器的低位

D5

H00B4

CRC高位

D6

H002D

CRC低位

所以变频器的的频率为D3D4的组合H115C

新增解析程序

image.png

D101就是所需的变频器的值。其中有偏移两位小数点就是44.44


正在下载,请等待……
下载附件需 1 积分!

我知道了